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