]>
Commit | Line | Data |
---|---|---|
fc9e8a14 JJ |
1 | 2000-03-29 Jakub Jelinek <jakub@redhat.com> |
2 | ||
3 | * dwarf2out.c (gen_enumeration_type_die): If enum has a negative | |
4 | value, don't output it as unsigned. | |
5 | ||
930b9832 JL |
6 | Wed Mar 29 10:53:49 2000 Jeffrey A Law (law@cygnus.com) |
7 | ||
8 | * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL. | |
9 | ||
dc1c86cb KG |
10 | 2000-03-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
11 | ||
12 | * c-common.c (c_common_nodes_and_builtins): Don't special case | |
13 | cplus_mode when declaring builtin bzero/bcmp, always avoid | |
14 | prototype arguments. | |
15 | ||
a40165e0 BK |
16 | 2000-03-29 Bruce Korb <bkorb@gnu.org> |
17 | ||
18 | * fixinc/mkfixinc.sh: Initially set the variable "fixincludes" | |
19 | to a non-file | |
20 | ||
f73ad30e JH |
21 | Wed Mar 29 15:08:01 MET DST 2000 Jan Hubicka <jh@suse.cz> |
22 | ||
23 | Convert ACCUMULATE_OUTGOING_ARGS to an expression. | |
24 | * calls.c (PUSH_ARGS_REVERSED) Change to expression. | |
25 | (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value. | |
26 | (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS. | |
27 | (save_fixed_argument_area, restore_fixed_argument_area): | |
28 | conditionize by #ifdef REG_PARM_STACK_SPACE only. | |
29 | (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS | |
30 | to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS. | |
31 | (precompute_register_parameters): Avoid #ifdefs on | |
32 | ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED. | |
33 | (stire_one_args): Likewise. | |
34 | (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS. | |
35 | (emit_library_call_value_1): Likewise. | |
36 | (compute_argument_block_size): Align to STACK_BOUNDARY only for | |
37 | ACCUMULATE_OUTGOING_ARGS. | |
38 | * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default | |
39 | value. | |
40 | (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH. | |
41 | (use_crosses_set_p): Likewise. | |
42 | * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to | |
43 | #define ACCUMULATE_OUTGOING_ARGS 1. | |
44 | * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS | |
45 | frames. | |
46 | * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New | |
47 | constants. | |
48 | (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros. | |
49 | (TARGET_SWITCHES): Add push-args, no-push-args, | |
50 | accumulate-outgoing-args and no-accumulate-outgoing-args. | |
51 | (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro. | |
52 | * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default. | |
53 | (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS | |
54 | and PUSH_ROUNDING. | |
55 | (emit_push_insn): Likewise. | |
56 | * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default. | |
57 | (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS. | |
58 | * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default. | |
59 | (STACK_DYNAMIC_OFFSET): Define correctly for both | |
60 | ACCUMULATE_OUTGOING_ARGS and normal mode. | |
61 | * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document. | |
62 | * tm.texi (PUSH_ARGS): Document. | |
63 | (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation. | |
64 | ||
db8cb48e JH |
65 | Wed Mar 29 11:51:13 MET DST 2000 Jan Hubicka <jh@suse.cz> |
66 | ||
67 | * flags.h (flag_optimize_sibling_calls): Declare. | |
68 | * calls.c (expand_call): Fail sibcall when | |
69 | !flag_optimize_sibling_calls | |
70 | * invoke.texi (flag_optimize_sibling_calls): Document. | |
71 | * toplev.c (flag_optimize_sibling_calls): New global variable. | |
72 | (f_options): Add flag_optimize_sibling_calls. | |
73 | (rest_of_compilation): Conditionize | |
74 | optimize_sibling_and_tail_recursive_calls by | |
75 | flag_optimize_sibling_calls. | |
76 | (main): Set flag_optimize_sibling_calls for -O2. | |
77 | * stmt.c (expand_return): Conditionize tail recursion by | |
78 | flag_optimize_sibling_calls. | |
79 | ||
402eec87 RH |
80 | 2000-03-29 Richard Henderson <rth@cygnus.com> |
81 | ||
82 | * config/i386/att.h (LOCAL_LABEL_PREFIX): Define. | |
83 | (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it. | |
84 | ||
8a4451aa NS |
85 | 2000-03-29 Nathan Sidwell <nathan@codesourcery.com> |
86 | ||
87 | * except.c (add_eh_table_entry): Mark type_info's as referenced. | |
88 | ||
d6121128 AO |
89 | 2000-03-29 Alexandre Oliva <oliva@lsd.ic.unicamp.br> |
90 | ||
91 | * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi | |
92 | is given. | |
93 | * config/rs6000/aix43.h (CPP_SPEC): Likewise. | |
94 | * config/rs6000/rs6000.h (CPP_SPEC): Moved to... | |
95 | * config/rs6000/aix.h: then modified likewise. | |
96 | ||
f590cca1 RH |
97 | 2000-03-28 Richard Henderson <rth@cygnus.com> |
98 | ||
99 | * rtl.h: Redistribute enum reg_note documentation. | |
100 | Kill trailing whitespace. | |
101 | * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks. | |
102 | Kill trailing whitespace. | |
103 | ||
29a72a4f ZW |
104 | 2000-03-28 Zack Weinberg <zack@wolery.cumb.org> |
105 | ||
106 | * cppfiles.c (hash_IHASH): Just return i->hash. | |
107 | (cpp_included): Set dummy.hash using _cpp_calc_hash. Use | |
108 | htab_find_with_hash. | |
109 | (cpp_read_file): Likewise. | |
110 | (find_include_file): Likewise. Properly initialize | |
111 | ih->nshort. Share ih->name and ih->nshort if possible. | |
112 | * cpphash.c (_cpp_calc_hash): New function. | |
113 | (hash_HASHNODE): Just return h->hash. | |
114 | (_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use | |
115 | htab_find_with_hash. | |
116 | * cpphash.h: Prototype _cpp_calc_hash. | |
117 | * cppinit.c (initialize_builtins): Provide a valid hash | |
118 | to _cpp_make_hashnode, using _cpp_calc_hash. | |
119 | ||
120 | * cpphash.c (collect_expansion): # is not a special character | |
121 | in object-like macros. In -traditional mode, /**/ is not | |
122 | token paste at the beginning or end of the line. | |
123 | * cpplib.c (do_include, do_import, do_include_next): If | |
124 | parse_include fails, return immediately. | |
125 | ||
46406379 JM |
126 | 2000-03-28 Jason Merrill <jason@casey.cygnus.com> |
127 | ||
128 | * config/arm/arm.md (return peepholes): Update to reflect the new | |
129 | call insn patterns. | |
130 | * config/arm/arm.c (arm_volatile_func): Also check | |
131 | current_function_nothrow. | |
132 | (output_return_instruction, output_func_prologue): Use it. | |
133 | (arm_output_epilogue, arm_expand_prologue): Likewise. | |
134 | ||
1f58da7f TT |
135 | 2000-03-27 Tom Tromey <tromey@cygnus.com> |
136 | ||
137 | * gcc.c (handle_braces): In {x*...} case, break out of loop if | |
138 | switch is found. | |
139 | ||
13eb1f7f RK |
140 | Tue Mar 28 11:55:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
141 | ||
142 | * expr.c (store_constructor): SIZE now signed. | |
143 | For EXPR_SIZE, don't evaluate size; just needed if constant. | |
144 | * fold-const.c (fold): Fix a number of cases when folded tree is | |
145 | wrong type. | |
146 | * function.c (flush_addressof): Reenable. | |
147 | * tree.h (flush_addressof): Likewise. | |
148 | * toplev.c (independent_decode_option): Look at strings_processed. | |
149 | * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned. | |
150 | ||
5a97f7c2 JH |
151 | Tue Mar 28 08:29:46 2000 Jan Hubicka <jh@suse.cz> |
152 | ||
1e9d75e8 JH |
153 | * sibcall.c (indentify_call_return_value): Find last call in the chain; |
154 | Allow stack adjustment after function call. | |
155 | ||
5a97f7c2 JH |
156 | * regmove.c (struct csa_memlist): Make mem field rtx *. |
157 | (record_one_stack_ref): Accept rtx * instead of rtx as parameter. | |
158 | (try_apply_stack_adjustment): Replace whole MEM rtx. | |
159 | (combine_stack_adjustments_for_block): Update calls | |
160 | to record_one_stack_ref. | |
161 | ||
04e3ec78 NB |
162 | 2000-03-28 Neil Booth <NeilB@earthling.net> |
163 | ||
29a72a4f | 164 | * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with |
04e3ec78 NB |
165 | '\\' rather than a null character, so nulls are not special. Fix |
166 | "\\\n" handling in end-of-buffer conditions. Use trigraph map to | |
167 | speed trigraph conversion. | |
29a72a4f | 168 | (_cpp_init_input_buffer): Initialize trigraph map. |
04e3ec78 | 169 | |
e3c2afab AM |
170 | 2000-03-27 Alan Modra <alan@linuxcare.com.au> |
171 | ||
172 | * config/i386/i386.c (output_387_binary_op): Correct intel | |
173 | mode assembly output, and add spaces after commas in AT&T | |
174 | output. Correct Unixware assembler comment. Document input | |
175 | constraints. Comment fp operations. Reduce profligate buffer | |
176 | size. Remove extraneous abort. Localize temp var. | |
177 | (SYSV386_COMPAT): Define. Add !SYSV386_COMPAT code. | |
178 | (output_fix_trunc): Add spaces after commas in assembly output. | |
179 | ||
16189740 RH |
180 | 2000-03-27 Richard Henderson <rth@cygnus.com> |
181 | ||
182 | * i386-protos.h (ix86_match_ccmode): Declare. | |
183 | * i386.c (ix86_match_ccmode): New. | |
184 | (ix86_expand_fp_compare): Update for pattern renames. | |
185 | (ix86_expand_strlensi_unroll_1): Likewise. | |
186 | * i386.h (EXTRA_CC_MODES): Add CCZ. | |
187 | (SELECT_CC_MODE): Use it for EQ/NE zero. | |
188 | * i386.md (cmpsi_ccz_1): New. | |
189 | (cmpqi_ccz_1): New. | |
190 | (*testsi_ccz_1): New. | |
191 | (testqi_ccz_1): New. | |
192 | (cmpsi_ccno_1): Rename from cmpsi_0. | |
193 | (testsi_ccno_1): Rename from testsi_1. | |
194 | (testqi_ccno_1): Rename from testqi_1. | |
195 | (*testqi_ext_ccz_0): Rename from testqi_ext_0. | |
196 | (testqi_ext_ccno_0): Rename from *testqi_ext_1. | |
197 | (*cmphi_0): Use ix86_match_ccmode. | |
198 | (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise. | |
199 | (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise. | |
200 | (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise. | |
201 | (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise. | |
202 | (*iorsi_2, *iorhi_2, *iorqi_2): Likewise. | |
203 | (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise. | |
204 | (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise. | |
205 | (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise. | |
206 | (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise. | |
207 | (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise. | |
208 | (appropriate peepholes): Likewise. | |
209 | (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name. | |
210 | (*subsi_3, *subhi_3, *subqi_3): Remove. | |
211 | (*negdi2_1+1 splitter): Use CCZ for neg patterns. | |
212 | (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove. | |
213 | (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ. | |
214 | (*neghi2_cmpz, *negqi2_cmpz): Similarly. | |
215 | (x86_shift_adj_1): Use CCZ. | |
216 | (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise. | |
217 | ||
73780b74 SC |
218 | 2000-03-27 Stan Cox <scox@cygnus.com> |
219 | ||
220 | * resource.h (mark_resource_type): New. | |
221 | * resource.c (find_dead_or_set_registers, mark_target_live_regs, | |
222 | find_free_register): Use mark_resource_type. | |
223 | (mark_set_resources): Change include_delayed_effects | |
224 | to mark_resource_type. | |
225 | * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, | |
226 | redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): | |
227 | Use mark_resource_type. | |
228 | ||
94bb5d0c RH |
229 | 2000-03-27 Richard Henderson <rth@cygnus.com> |
230 | ||
231 | * i386.md (call_pop_0, call_value_pop_0): New. | |
232 | (call_pop_1): Remove constraint from unused arg. Support sibcalls. | |
233 | (call_value_pop_1): Likewise. | |
234 | (call_0, call_value_0): New. | |
235 | (call_1, call_value_1): Remove constraint from unused arg. | |
236 | ||
d630442f NC |
237 | 2000-03-27 Nick Clifton <nickc@cygnus.com> |
238 | ||
239 | * invoke.texi (Spec Files): Document new spec % command created by | |
240 | Tom Tromey's recent patch. | |
241 | ||
32b32c8f JJ |
242 | 2000-03-27 Jakub Jelinek <jakub@redhat.com> |
243 | ||
244 | * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD | |
245 | if not defined. | |
246 | ||
aa63d244 RK |
247 | Mon Mar 27 06:04:22 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
248 | ||
693e30e3 RK |
249 | * expr.c (expand_assignment): Fix typo in last change. |
250 | ||
aa63d244 RK |
251 | * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD. |
252 | ||
17aec3eb RK |
253 | Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
254 | ||
255 | * c-convert.c (convert): Return if output or input type is ERROR_MARK. | |
256 | * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI | |
257 | and DECL_INLINE if FUNCTION_DECL. | |
258 | (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE. | |
259 | (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK. | |
260 | Use DECL_WEAK, not DECL_RESULT, to flag for already seen. | |
261 | (combine_parm_decls): Likewise. | |
262 | * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD. | |
263 | * print-tree.c (print_node): Likewise. | |
264 | Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and | |
265 | DECL_TRANSPARENT_UNION on proper decl types. | |
266 | Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS. | |
267 | * stor-layout.c (layout_decl): Only check DECL_PACKED and | |
268 | DECL_BIT_FIELD of FIELD_DECL. | |
269 | * tree.h (DECL_RESULT_FLD): New macro. | |
270 | ||
28b98868 RK |
271 | * expr.c (expand_assignment): Add code to handle variable-sized |
272 | BLKmode case. | |
273 | ||
b06775f9 RH |
274 | 2000-03-26 Richard Henderson <rth@cygnus.com> |
275 | ||
276 | * calls.c (expand_call): Pass parms not original exp to | |
277 | optimize_tail_recursion. Mind return value instead of looking | |
278 | for a barrier. | |
279 | * stmt.c (optimize_tail_recursion): Take parameter list, not entire | |
280 | call_expr. Move checks for call_expr and current_function_decl ... | |
281 | (expand_return): ... here. | |
282 | ||
8097c429 TT |
283 | 2000-03-26 Tom Tromey <tromey@cygnus.com> |
284 | ||
285 | * gcc.c (handle_braces): Recognize `%{<S}' construct. | |
286 | (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New | |
287 | defines. | |
288 | (process_command): Use them. | |
289 | (check_live_switch): Likewise. | |
290 | (give_switch): Skip ignored switches. | |
291 | ||
751b8992 JH |
292 | 2000-03-26 Jan Hubicka <jh@suse.cz> |
293 | ||
294 | * jump.c (jump_optimize_1): Fix typo in elide optimizations | |
295 | for minimal jump pass test. | |
296 | ||
f8013343 MM |
297 | 2000-03-26 Mark Mitchell <mark@codesourcery.com> |
298 | ||
299 | * integrate.c (function_cannot_inline_p): Do inline functions that | |
300 | return `void'. | |
301 | ||
75131237 RK |
302 | Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
303 | ||
ad41cc2a RK |
304 | * stor-layout.c (layout_type, set_sizetype): early_type_list is |
305 | now a list of TREE_LIST entries, not types. | |
306 | * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets. | |
307 | ||
75131237 RK |
308 | * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX. |
309 | * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and | |
310 | int_bit_position. | |
311 | * config/mips/mips.c (function_arg): Likewise; also remove cast | |
312 | and make variables unsigned or HOST_WIDE_INT and use tree_low_cst. | |
313 | (mips_function_value): Use int_byte_position and make HOST_WIDE_INT. | |
314 | * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned. | |
315 | * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned. | |
316 | (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise. | |
317 | (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise. | |
318 | (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed. | |
319 | (struct mips_arg): arg_number, arg_words, fp_arg_words, and | |
320 | num_adjusts now unsigned. | |
321 | (FUNCTION_ARG_BOUNDARY): Remove unneeded cast. | |
322 | * config/sparc/sparc.c (struct function_arg_record_value_parms): | |
323 | NREGS now unsigned. | |
324 | (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT | |
325 | as is BITPOS variable; use host_integerp and int_bit_position. | |
326 | (function_arg_record_value_2): Likewise. | |
327 | (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT. | |
328 | Variable REGNO now unsigned. | |
329 | (function_arg_record_value): NREGS now unsigned. | |
330 | ||
210ee0dd BS |
331 | 2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk> |
332 | ||
333 | * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs. | |
334 | ||
770ae6cc RK |
335 | Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
336 | ||
337 | * Rework fields used to describe positions of bitfields and | |
338 | modify sizes to be unsigned and use HOST_WIDE_INT. | |
339 | * alias.c (reg_known_value_size): Now unsigned. | |
340 | * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position. | |
341 | (really_start_incremental_init): Use bitsize_zero_node. | |
342 | (push_init_level, pop_init_level, output_init_element): Likewise. | |
343 | Use bitsize_unit_node and bitsize_one_node. | |
344 | (output_pending_init_elements, process_init_element): Likewise. | |
345 | * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned. | |
346 | (make_extraction): Position and length HOST_WIDE_INT and unsigned | |
347 | HOST_WIDE_INT, respectively. | |
348 | (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT. | |
349 | (num_sign_bit_copies): Returns unsigned. | |
350 | BITWIDTH now unsigned; rework arithmetic. | |
351 | Remove recursive call from arg to MAX. | |
352 | (combine_instructions, init_reg_last_arrays): NREGS now unsigned. | |
353 | (setup_incoming_promotions, can_combine_p, try_combine, simplify_set): | |
354 | REGNO now unsigned. | |
355 | (set_nonzero_bit_and_sign_copies): NUM now unsigned. | |
356 | (find_split_point, expand_compound_operation, make_extraction): LEN | |
357 | now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT. | |
358 | (make_field_assignment): Likewise. | |
359 | (combine_simplify_rtx): Add cast. | |
360 | (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic. | |
361 | (force_to_mode): WIDTH now unsigned; add cast. | |
362 | (if_then_else_cond): SIZE now unsigned. | |
363 | (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned. | |
364 | (extended_count): Now returns unsigned. | |
365 | (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT. | |
366 | Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned. | |
367 | (simplify_comparison): MODE_WIDTH now unsigned. | |
368 | (update_table_tick): REGNO and ENDREGNO now unsigned; new var R. | |
369 | (mark_used_regs_combine): Likewise; rework arithmetic. | |
370 | (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned. | |
371 | (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise. | |
372 | (record_promoted_value): REGNO now unsigned. | |
373 | (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned. | |
374 | (get_last_value): REGNO now unsigned. | |
375 | (use_crosses_set_p): REGNO and ENDREGNO now unsigned. | |
376 | (reg_dead_regno, reg_dead_endregno): Now unsigned. | |
377 | (remove_death): Arg REGNO now unsigned. | |
378 | (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned. | |
379 | (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO | |
380 | now unsigned. | |
381 | * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned. | |
382 | * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned. | |
383 | (struct cse_reg_info): REGNO now unsigned. | |
384 | (cached_regno): Now unsigned. | |
385 | (REGNO_QTY_VALID_P): Add cast. | |
386 | (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned. | |
387 | (remove_invalid_regs): Likewise. | |
388 | (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned | |
389 | as are variables END and I. | |
390 | (get_cse_reg_info, insert): Likewise. | |
391 | (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned. | |
392 | (canon_hash): Likewise. | |
393 | (insert_regs, lookup_for_remove): REGNO now unsigned. | |
394 | (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned. | |
395 | New variable RN. | |
396 | * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0. | |
397 | * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast. | |
398 | * emit-rtl.c (subreg_realpart_p): Add cast. | |
399 | (operand_subword): Arg I is now unsigned as is var PARTWORDS. | |
400 | (operand_subword_force): Arg I is now unsigned. | |
401 | * except.c (eh_regs): Variable I is now unsigned. | |
402 | * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT. | |
403 | * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT; | |
404 | length is unsigned HOST_WIDE_INT; likewise for internal variables. | |
405 | (store_split_bit_field, extract_fixed_bit_field): Likewise. | |
406 | (extract_split_bit_field, store_bit_field, extract_bit_field): | |
407 | Likewise. | |
408 | * expr.c (store_constructor_fields, store_constructor, store_field): | |
409 | Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT. | |
410 | (expand_assignment, expand_expr, expand_expr_unaligned): Likewise. | |
411 | (do_jump): Likewise. | |
412 | (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces): | |
413 | MAX_SIZE is now unsigned. | |
414 | (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned. | |
415 | (emit_group_store): Likewise. | |
416 | (emit_move_insn): I now unsigned. | |
417 | (store_constructor): Use host_integerp, tree_low_cst, and | |
418 | bitsize_unit_node. | |
419 | (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT. | |
420 | Rework all calculations to use trees and new fields. | |
421 | * expr.h (promoted_input_arg): Regno now unsigned. | |
422 | (store_bit_field, extract_bit_field): Adjust types of pos and size. | |
423 | (mark_seen_cases): Arg is HOST_WIDE_INT. | |
424 | * flow.c (verify_wide_reg_1): REGNO now unsigned. | |
425 | * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT; | |
426 | precisions and alignments are unsigned. | |
427 | (optimize_bit_field_compare, fold_truthop): Likewise. | |
428 | (int_const_binop): Adjust threshold for size_int_type_wide call. | |
429 | (fold_convert): Likewise. | |
430 | (size_int_type_wide): Make table larger and fix thinko that only | |
431 | had half of table used. | |
432 | (all_ones_mask_p, fold): Precisions are unsigned. | |
433 | * function.c (put_reg_info_stack): REGNO is unsigned. | |
434 | (instantiate_decl): Size is HOST_WIDE_INT. | |
435 | (instantiate_virtual_regs): I is unsigned. | |
436 | (assign_parms): REGNO, REGNOI, and REGNOR are unsigned. | |
437 | (promoted_input_arg): REGNO is unsigned. | |
438 | * function.h (struct function): x_max_parm_reg is now unsigned. | |
439 | * gcse.c (max_gcse_regno): Now unsigned. | |
440 | (struct null_pointer_info): min_reg and max_reg now unsigned. | |
441 | (lookup_set, next_set): REGNO arg now unsigned. | |
442 | (compute_hash_table): REGNO and I now unsigned. | |
443 | (handle_avail_expr): regnum_for_replacing now unsigned. | |
444 | (cprop_insn): REGNO now unsigned. | |
445 | (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned. | |
446 | * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case. | |
447 | * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned. | |
448 | * hard-reg-set.h (reg_class_size): Now unsigned. | |
449 | * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO. | |
450 | * jump.c (mark_modified_reg): I now unsigned; add cast. | |
451 | (rtx_equal_for_thread_p): Add cast. | |
452 | * loop.c (max_reg_before_loop): Now unsigned. | |
453 | (struct_movable): REGNO now unsigned. | |
454 | (try_copy_prop): REGNO arg unsigned. | |
455 | (regs_match_p): XN and YN now unsigned. | |
456 | (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned. | |
457 | (strength_reduce): Likewise; NREGS also unsigned. | |
458 | (first_increment_giv, last_increment_giv unsigned): Now unsigned. | |
459 | * loop.h (struct iv_class): REGNO now unsigned. | |
460 | (max_reg_before_loop, first_increment_giv, last_increment_giv): | |
461 | Now unsigned. | |
462 | * machmode.h (mode_size, mode_unit_size): Now unsigned. | |
463 | (mode_for_size, smallest_mode_for_size): Pass size as unsigned. | |
464 | * optabs.c (expand_binop): I and NWORDS now unsigned. | |
465 | (expand_unop): I now unsigned. | |
466 | * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do | |
467 | print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET. | |
468 | * real.c (significand_size): Now returns unsigned. | |
469 | * real.h (significand_size): Likewise. | |
470 | * regclass.c (reg_class_size): Now unsigned. | |
471 | (choose_hard_reg_mode): Both operands now unsigned. | |
472 | (record_reg_classes): REGNO and NR now unsigned. | |
473 | (reg_scan): NREGS now unsigned. | |
474 | (reg_scan_update): old_max_regno now unsigned. | |
475 | (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned. | |
476 | * reload.c (find_valid_class): BEST_SIZE now unsigned. | |
477 | (find_dummy_reload): REGNO, NWORDS, and I now unsigned. | |
478 | (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned. | |
479 | Likewise for variable R. | |
480 | (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned, | |
481 | as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R. | |
482 | (find_equiv_reg): Add casts. | |
483 | (regno_clobbered_p): Arg REGNO now unsigned. | |
484 | * reload.h (struct reload): NREGS now unsigned. | |
485 | (refers_to_regno_for_reload_p): Regno args are unsigned. | |
486 | (regno_clobbered_p): Likewise. | |
487 | * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned. | |
488 | (compute_use_by_pseudos): REGNO now unsigned. | |
489 | (find_reg): I and J now unsigned, new variable K, and change loop | |
490 | variables accordingly; THIS_NREGS now unsigned. | |
491 | (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned. | |
492 | (spill_hard_reg): REGNO arg now unsigned; add casts. | |
493 | (forget_old_reloads_1): REGNO, NR, and I now unsigned. | |
494 | (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned. | |
495 | (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO, | |
496 | END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned. | |
497 | (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned. | |
498 | (choose_reload_regs): MAX_GROUP_SIZE now unsigned. | |
499 | (emit_reload_insns): REGNO now unsigned. | |
500 | (reload_cse_move2add): Add cast. | |
501 | (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO | |
502 | and rework loop. | |
503 | * resource.c (mark_referenced_resources, mark_set_resources): New | |
504 | variable R; REGNO and LAST_REGNO now unsigned. | |
505 | (mark_target_live_regs): J and REGNO now unsigned. | |
506 | * rtl.c (mode_size, mode_unit_size): Now unsigned. | |
507 | * rtl.h (union rtunion_def): New field rtuint. | |
508 | (XCUINT): New macro. | |
509 | (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT. | |
510 | (operand_subword, operand_subword_force): Word number is unsigned. | |
511 | (choose_hard_reg_mode): Operands are unsigned. | |
512 | (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned. | |
513 | (find_regno_note, find_regno_fusage, replace_regs): Likewise. | |
514 | (regno_use_in, combine_instructions, remove_death): Likewise. | |
515 | (reg_scan, reg_scan_update): Likewise. | |
516 | (extended_count): Return is unsigned. | |
517 | * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I, | |
518 | INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO. | |
519 | (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned. | |
520 | (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned. | |
521 | (reg_reg_last_1): FIRS and LAST now unsigned. | |
522 | (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned. | |
523 | (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO | |
524 | now unsigned. | |
525 | (find_regno_note, regno_use_in): Arg REGNO now unsigned. | |
526 | (find_regno_fusage): Likewise; also var REGNOTE now unsigned. | |
527 | (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned. | |
528 | (replace_regs): Arg NREGS now unsigned. | |
529 | * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0. | |
530 | * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned. | |
531 | (simplify_binary_operation): Likewise. | |
532 | (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and | |
533 | THIS_LAST now unsigned. | |
534 | (cselib_record_set): Add cast. | |
535 | * ssa.c (ssa_max_reg_num): Now unsigned. | |
536 | (rename_block): REGNO now unsigned. | |
537 | * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT; | |
538 | sizes now unsigned. | |
539 | (all_cases_count): Just return -1 not -2. | |
540 | COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT. | |
541 | Rework tests to use trees whenever possible. | |
542 | Use host_integerp and tree_low_cst. | |
543 | (mark_seen_cases): COUNT arg now HOST_WIDE_INT; | |
544 | Likewise variable NEXT_NODE_OFFSET; XLO now unsigned. | |
545 | (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT. | |
546 | * stor-layout.c (mode_for_size): SIZE arg now unsigned. | |
547 | (smallest_mode_for_size): Likewise. | |
548 | (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT. | |
549 | KNOWN_ALIGN is now an alignment, so simplify code. | |
550 | Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type. | |
551 | (start_record_layout): Renamed from new_record_layout_info. | |
552 | Update to new fields. | |
553 | (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far): | |
554 | New functions. | |
555 | (place_union_field): Renamed from layout_union_field. | |
556 | Update to use new fields in rli. | |
557 | (place_field): Renamed from layout_field. | |
558 | Major rewrite to use new fields in rli; pass alignment to layout_decl. | |
559 | (finalize_record_size): Rework to use new fields in rli and handle | |
560 | union. | |
561 | (compute_record_mode): Rework to simplify and to use new DECL fields. | |
562 | (finalize_type_size): Make rounding more consistent. | |
563 | (finish_union_layout): Deleted. | |
564 | (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either. | |
565 | (layout_type, case RECORD_TYPE): Call new function names. | |
566 | (initialize_sizetypes): Set TYPE_IS_SIZETYPE. | |
567 | (set_sizetype): Set TYPE_IS_SIZETYPE earlier. | |
568 | (get_best_mode): UNIT is now unsigned; remove casts. | |
569 | * tree.c (bit_position): Compute from new fields. | |
570 | (byte_position, int_byte_position): New functions. | |
571 | (print_type_hash_statistics): Cast to remove warning. | |
572 | (build_range_type): Use host_integerp and tree_low_cst to try to hash. | |
573 | (build_index_type): Likewise; make subtype of sizetype. | |
574 | (build_index_2_type): Pass sizetype to build_range_type. | |
575 | (build_common_tree_nodes): Use size_int and bitsize_int to | |
576 | initialize nodes; add bitsize_{zero,one,unit}_node. | |
577 | * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK. | |
578 | (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise. | |
579 | (DECL_PACKED, DECL_BIT_FIELD): Likewise. | |
580 | (DECL_FIELD_BITPOS): Deleted. | |
581 | (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields. | |
582 | (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK. | |
583 | (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise. | |
584 | (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise. | |
585 | (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise. | |
586 | (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise. | |
587 | (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise. | |
588 | (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK. | |
589 | (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK. | |
590 | (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise. | |
591 | (DECL_ALIGN): Adjust to new field in union. | |
592 | (DECL_OFFSET_ALIGN): New field. | |
593 | (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK. | |
594 | (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK. | |
595 | (union tree_decl): Add struct for both aligns. | |
596 | (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}. | |
597 | (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added. | |
598 | (struct record_layout_info): Rework fields to have offset | |
599 | alignment and byte and bit position. | |
600 | (start_record_layout, place_field): Renamed from old names. | |
601 | (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls. | |
602 | (byte_position, int_byte_position): Likewise. | |
603 | (get_inner_reference): Change types of position and length. | |
604 | * unroll.c (unroll_loop): New variable R; use for some loops. | |
605 | MAX_LOCAL_REGNUM and MAXREGNUM now unsigned. | |
606 | (calculate_giv_inc): Arg REGNO now unsigned. | |
607 | (copy_loop_body): REGNO and SRC_REGNO now unsigned. | |
608 | * varasm.c (assemble_variable): Clean up handling of size using | |
609 | host_integerp and tree_low_cst. | |
610 | (decode_addr_const): Use byte, not bit, position. | |
611 | (output_constructor): bitpos and offsets are HOST_WIDE_INT; | |
612 | use tree_low_cst and int_bit_position. | |
613 | * objc/objc-act.c (build_ivar_list_initializer): Use byte_position. | |
614 | ||
db525e17 JE |
615 | Fri Mar 24 20:13:49 2000 Jason Eckhardt <jle@cygnus.com> |
616 | ||
617 | * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed. | |
618 | (reorder_block_def): New members eff_head and eff_end. | |
619 | (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros. | |
620 | (verify_insn_chain): New function. | |
621 | (skip_insns_between_block): Add code to skip deleted insns. | |
622 | Check for note before using. | |
623 | (chain_reorder_blocks): Replace calls to skip_insns_between_block | |
624 | with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END. | |
625 | Check for note before using. | |
626 | (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB. | |
627 | (fixup_reorder_chain): Restructure, clean up, defect removal. | |
628 | (reorder_basic_blocks): Remove last_insn and references to it. | |
629 | Moved insn chain verification code into a new function (see above). | |
630 | Delete defective code that sets last insn. | |
631 | Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for | |
632 | all blocks. | |
633 | ||
0d74d20f MH |
634 | 2000-03-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
635 | ||
636 | * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space. | |
637 | ||
194c7c45 RH |
638 | 2000-03-24 Richard Henderson <rth@cygnus.com> |
639 | ||
640 | * tree.c (lang_safe_for_unsave): Remove. | |
641 | (unsafe_for_reeval): Transmute and rename from safe_for_unsave, | |
642 | allowing for two levels of unsafeness. Remove lang hook. | |
643 | * tree.h: Update declarations. | |
644 | * calls.c (expand_call): Rename safe_for_reeval to try_tail_call. | |
645 | Create temporary VAR_DECLs to protect very unsafe_for_reeval trees. | |
646 | Always fail sibcalls when there are pending cleanups. | |
647 | ||
02ce8f4e GK |
648 | 2000-03-24 Geoff Keating <geoffk@cygnus.com> |
649 | ||
650 | * flow.c (propagate_block): When we delete an ADDR_VEC, | |
651 | also delete the BARRIER following it if there is one. | |
652 | ||
3477addf RH |
653 | 2000-03-24 Richard Henderson <rth@cygnus.com> |
654 | ||
655 | * builtins.c (expand_builtin_bzero): Convert `length' argument | |
656 | to sizetype. | |
657 | ||
7d167afd JJ |
658 | 2000-03-24 Jakub Jelinek <jakub@redhat.com> |
659 | ||
660 | * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for | |
661 | comparison if regno's are equal. | |
662 | * calls.c (initialize_argument_informat): Add ecf_flags argument. | |
663 | Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. | |
664 | (expand_call): Update caller. | |
665 | Avoid making a sibling call if argument size of the callee is larger | |
666 | than argument size of the caller. | |
667 | Call hard_function_value with outgoing set if in sibcall pass. | |
668 | Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. | |
669 | ||
670 | * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used): | |
671 | Change LEAF_REGISTERS from an array initializer to actual array | |
672 | identifier. Move static global variable into the function. | |
673 | (leaf_function_p): Allow SIBLING_CALL_P calls even outside of | |
674 | sequences for leaf functions. | |
675 | * global.c (global_alloc): Likewise. | |
676 | * tm.texi (LEAF_REGISTERS): Update documentation. | |
677 | ||
678 | * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly | |
679 | TARGET_FLAT leaf disabling hack. | |
680 | (LEAF_REGISTERS): Changed from an array initializer to actual array | |
681 | identifier to avoid duplication and remove the above hack. | |
682 | (FUNCTION_OK_FOR_SIBCALL): Define. | |
683 | * config/sparc/sparc.md (sibcall): New attr type. Use it almost | |
684 | always like call attribute. | |
685 | (eligible_for_sibcall_delay): New attribute. | |
686 | (sibcall): New delay type. | |
687 | (sibcall, sibcall_value, sibcall_epilogue): New expands. | |
688 | (sibcall_symbolic_sp32, sibcall_symbolic_sp64, | |
689 | sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns. | |
690 | * config/sparc/sparc.c (sparc_leaf_regs): New array. | |
691 | (eligible_for_sibcall_delay, output_restore_regs, output_sibcall): | |
692 | New functions. | |
693 | (output_function_epilogue): Move part of the code into | |
694 | output_restore_regs. | |
695 | (ultra_code_from_mask, ultrasparc_sched_reorder): Handle | |
696 | TYPE_SIBCALL. | |
697 | * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New | |
698 | prototypes. | |
699 | ||
46238b7d JJ |
700 | * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change |
701 | until infrastructure is finished. | |
702 | ||
eef9a168 JL |
703 | Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com) |
704 | ||
705 | * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here. | |
706 | (save_parm_insns): Not here. | |
707 | ||
e3a709be KG |
708 | 2000-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
709 | ||
710 | * builtins.c (expand_builtin_bzero): New function. | |
711 | (expand_builtin): Handle bzero. | |
712 | ||
713 | * builtins.def: Add BUILT_IN_BZERO. | |
714 | ||
715 | * c-common.c (c_common_nodes_and_builtins): Provide builtin | |
716 | prototype & function for bzero. | |
717 | ||
265ae617 MM |
718 | 2000-03-23 Michael Meissner <meissner@redhat.com> |
719 | ||
720 | * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21 | |
721 | change adding TARGET_FP to the TF floating point insns, except for | |
722 | trunctfsf2, which generates direct calls to truncdfsf2. | |
723 | ||
1751425f GK |
724 | 2000-03-23 Geoff Keating <geoffk@cygnus.com> |
725 | ||
726 | * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition, | |
727 | try to protect against middle-end changes that break binary | |
728 | compatibility. | |
729 | (DWARF_FRAME_REGISTERS): New definition, likewise for backend. | |
730 | ||
cf92d7df MH |
731 | 2000-03-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
732 | ||
733 | * config/c4x/c4x.md (load_immed_address): Add DP reg clobber. | |
734 | ||
25a1fcb4 RK |
735 | Thu Mar 23 17:10:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
736 | ||
737 | * calls.c (expand_call): If TARGET is passed by reference and | |
738 | is readonly, write a CLOBBER. | |
739 | ||
4b2a62db KG |
740 | 2000-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
741 | ||
742 | * builtins.c (expand_builtin): Handle bcmp. | |
743 | ||
744 | * builtins.def: Add BUILT_IN_BCMP. | |
745 | ||
746 | * c-common.c (c_common_nodes_and_builtins): Provide builtin | |
747 | prototype & function for bcmp. | |
748 | ||
d4daa0b4 JW |
749 | Thu Mar 23 11:34:39 2000 Jim Wilson <wilson@cygnus.com> |
750 | ||
751 | * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6... | |
752 | (rtx_needs_barrier, case UNSPEC_VOLATILE): to here. | |
753 | * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE. | |
754 | ||
fc5b7cda AH |
755 | Thu Mar 23 16:04:40 2000 Andrew Haley <aph@cygnus.com> |
756 | ||
e3c2afab AM |
757 | * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F') |
758 | alternative when using -fp64 -gp32. | |
fc5b7cda | 759 | |
8034da37 JM |
760 | 2000-03-22 Jason Merrill <jason@casey.cygnus.com> |
761 | ||
762 | * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define. | |
763 | * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define. | |
764 | * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define. | |
765 | ||
766 | * frame.h (frame_state): Revert last change. | |
767 | * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg. | |
768 | * libgcc2.c (throw_helper): Revert last change. | |
769 | ||
17e71da2 RH |
770 | 2000-03-22 Richard Henderson <rth@cygnus.com> |
771 | ||
772 | * stmt.c (expand_asm_operands): Don't promote the temporary. | |
773 | ||
2f939d94 TP |
774 | 2000-03-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> |
775 | ||
e3c2afab | 776 | * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros. |
2f939d94 TP |
777 | * c-common.c (decl_attributes,check_format_info,truthvalue_conversion, |
778 | c_get_alias_set): Likewise. | |
779 | * c-decl.c (duplicate_decls): Likewise. | |
780 | * c-typeck.c (default_conversion,build_unary_op): Likewise. | |
781 | * calls.c (initialize_argument_information): Likewise. | |
782 | * dwarf2out.c (decl_class_context,add_abstract_origin_attribute): | |
783 | Likewise. | |
784 | * dwarfout.c (decl_class_context,output_type): Likewise. | |
785 | * expr.c (get_inner_reference): Likewise. | |
786 | * fold-const.c (simple_operand_p,fold): Likewise. | |
787 | * function.c (aggregate_value_p): Likewise. | |
788 | * stmt.c (expand_asm_operands): Likewise. | |
789 | * varasm.c (named_section): Likewise. | |
790 | ||
2c849145 JM |
791 | 2000-03-22 Jason Merrill <jason@casey.cygnus.com> |
792 | ||
2c849145 JM |
793 | Implement dwarf2 exception handling for the ARM. |
794 | * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define. | |
795 | (DWARF_FRAME_RETURN_COLUMN): Define. | |
796 | * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach | |
797 | REG_FRAME_RELATED_EXPR note. | |
798 | (emit_sfm): Likewise. | |
799 | (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything. | |
800 | * dwarf2out.c (reg_save): Handle saving a register to itself. | |
801 | (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg. | |
802 | * except.c (eh_regs): Don't use the static chain reg if it's | |
803 | callee-saved. | |
804 | * frame.h (frame_state): Add cfa_saved field. | |
805 | * frame.c (execute_cfa_insn): Set it. | |
806 | * libgcc2.c (throw_helper): Don't adjust sp if it's restored in | |
807 | the epilogue. | |
808 | * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET. | |
809 | Now takes a parm. | |
810 | (instantiate_virtual_regs): Adjust. | |
811 | * tm.texi: Adjust. | |
812 | * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define. | |
813 | * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define. | |
814 | * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm. | |
815 | ||
816 | * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER. | |
817 | (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number. | |
818 | ||
cb1072f4 KG |
819 | 2000-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
820 | ||
821 | * builtins.def: New file. | |
822 | ||
823 | * Makefile.in (TREE_H): Depend on builtins.def. | |
824 | ||
825 | * builtins.c (built_in_names): Use builtins.def. | |
826 | ||
827 | * tree.h (built_in_function): Likewise. | |
828 | ||
dc397323 MM |
829 | 2000-03-22 Mark Mitchell <mark@codesourcery.com> |
830 | ||
831 | * tree.c (size_in_bytes): Return size_zero_node, not | |
832 | integer_zero_node. | |
833 | ||
fae8209a GK |
834 | 2000-03-22 Geoff Keating <geoffk@cygnus.com> |
835 | ||
836 | * config/fp-bit.c (pack_d): Correct the case when a denormal | |
837 | is rounded up and stops being denormal. | |
838 | ||
ea2e5dbe RH |
839 | 2000-03-21 Richard Henderson <rth@cygnus.com> |
840 | ||
841 | * config/alpha/alpha.c (function_arg): Check for void_type_node | |
842 | before using MUST_PASS_IN_STACK. | |
843 | ||
5d64361b SC |
844 | 2000-03-21 Stephane Carrez <stcarrez@worldnet.fr> |
845 | ||
846 | * regmove.c (combine_stack_adjustments_for_block): Check that | |
847 | the stack pointer is a valid memory address. | |
848 | ||
de76b467 JH |
849 | Wed Mar 22 11:44:50 MET 2000 Jan Hubicka <jh@suse.cz> |
850 | ||
851 | * calls.c: re-install Mar 16 emit_library_call merge. | |
852 | ||
021e2ecc JJ |
853 | 2000-03-21 Jakub Jelinek <jakub@redhat.com> |
854 | ||
855 | * config/sparc/sparc.c (mem_min_alignment): If not optimizing, | |
856 | we cannot be sure that if reload_completed base register will | |
857 | be properly aligned. | |
858 | ||
1fa4609a RH |
859 | 2000-03-21 Richard Henderson <rth@cygnus.com> |
860 | ||
e3c2afab | 861 | * flow.c (delete_block): Fix typo last change. |
1fa4609a | 862 | |
b8de2d02 MM |
863 | 2000-03-21 Mark Mitchell <mark@codesourcery.com> |
864 | ||
865 | * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P, | |
866 | not COMPLETE_TYPE_P, to check the type of the expression. | |
867 | ||
4287843d MM |
868 | 2000-03-21 Michael Meissner <meissner@redhat.com> |
869 | ||
870 | * config/alpha/alpha.md (floating point insns): Add TARGET_FP to | |
871 | all floating point insns that just tested the macro | |
872 | TARGET_HAS_XFLOATING_LIBS. | |
873 | (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is | |
874 | used to only use the gprs. | |
875 | ||
d0f062fb NS |
876 | 2000-03-21 Nathan Sidwell <nathan@codesourcery.com> |
877 | ||
878 | * tree.h (COMPLETE_TYPE_P): New macro. | |
879 | (COMPLETE_OR_VOID_TYPE_P): New macro. | |
880 | (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro. | |
881 | * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE. | |
882 | * c-aux-info.c (gen_type): Use them. | |
883 | * c-common.c (c_expand_expr_stmt): Likewise. | |
884 | * c-decl.c (poplevel, pushdecl, start_decl, finish_decl, | |
885 | grokdeclarator, grokparms, finish_struct, start_function, | |
886 | store_parm_decls, combine_parm_decls): Likewise. | |
887 | * c-parse.y (cast_expr): Likewise. | |
888 | * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn, | |
889 | c_size_in_bytes, c_alignof, build_component_ref, | |
890 | build_indirect_ref, build_array_ref, convert_arguments, | |
891 | build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise. | |
892 | * calls.c (initialize_argument_information): Likewise. | |
893 | * convert.c (convert_to_integer): Likewise. | |
894 | * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise. | |
895 | * dwarfout.c (location_or_const_value_attribute, | |
896 | output_enumeration_type_die, output_structure_type_die, | |
897 | output_union_type_die, output_type): Likewise. | |
898 | * expr.c (safe_from_p, expand_expr): Likewise. | |
899 | * function.c (assign_parms): Likewise. | |
900 | * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise. | |
901 | * tree.c (build_array_type, build_function_type, | |
902 | build_method_type, build_offset_type, build_complex_type): Likewise. | |
903 | * c-parse.c, c-parse.h: Regenerated. | |
904 | ||
7d6e6314 MH |
905 | 2000-03-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
906 | ||
907 | * config/c4x/rtems.h: Include config/rtems.h. | |
908 | ||
8053f393 DC |
909 | Tue Mar 21 09:24:00 2000 Denis Chertykov <denisc@overta.ru> |
910 | ||
911 | * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if | |
912 | decl is a FUNCTION_DECL | |
913 | ||
1ff5b671 JW |
914 | Mon Mar 20 19:53:53 2000 Jim Wilson <wilson@cygnus.com> |
915 | ||
916 | * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf | |
917 | function uses output registers. Don't save RP for leaf functions. | |
918 | Do save RP even if no epilogue. | |
919 | * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers. | |
920 | (CALL_USED_REGISTERS): Unmark in registers. | |
921 | (REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up, | |
922 | to near the middle. | |
923 | ||
1c882ea4 GK |
924 | 2000-03-20 Geoff Keating <geoffk@cygnus.com> |
925 | ||
926 | * config/rs6000/rs6000.md (bunordered): New expander. | |
927 | (bordered): New expander. | |
928 | (buneq): New expander. | |
929 | (bunge): New expander. | |
930 | (bungt): New expander. | |
931 | (bunle): New expander. | |
932 | (bunlt): New expander. | |
933 | (bltgt): New expander. | |
934 | ||
935 | * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons. | |
936 | (ccr_bit_negated_p): New function. | |
937 | (print_operand): For %C, generate appropriate cror for UNEQ, | |
938 | UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p. | |
939 | ||
bf5e8d0c AJ |
940 | 2000-03-20 Andreas Jaeger <aj@suse.de> |
941 | ||
942 | * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else" | |
943 | warning. | |
944 | ||
8c57aea6 AJ |
945 | * tree.h (safe_for_unsave): Prototype. |
946 | ||
9e11785b RH |
947 | 2000-03-20 Richard Henderson <rth@cygnus.com> |
948 | ||
949 | * regmove.c (stack_memref_p): Fix typo, reorg for readability. | |
950 | (combine_stack_adjustments_for_block): Don't allow sp references | |
951 | in the side of a set we're not fixing up. | |
952 | * toplev.c (rest_of_compilation): Run combine_stack_adjustments | |
953 | after life_analysis. | |
954 | ||
e245d3af RH |
955 | 2000-03-20 Richard Henderson <rth@cygnus.com> |
956 | ||
957 | * calls.c (expand_call): Don't bother generating tail call | |
958 | sequences if there are pending cleanups. Use | |
959 | expand_start_target_temps/expand_end_target_temps to elide | |
960 | cleanups created during sibcall expansion. | |
961 | ||
1c521d41 GK |
962 | 2000-03-20 Geoff Keating <geoffk@cygnus.com> |
963 | ||
964 | * configure.in: Set $IFS to a value if it doesn't already have one | |
965 | in the --enable-checking handling. | |
966 | * configure: Regenerate. | |
967 | ||
949d707d ML |
968 |