]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
configure.in: Comment out --enable-c-cpplib stanza.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
694f020b
ZW
12000-03-30 Zack Weinberg <zack@wolery.cumb.org>
2
3 * configure.in: Comment out --enable-c-cpplib stanza.
4 * configure: Regenerate.
5
0e805f81
RK
6Thu 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
14Thu 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
19Thu 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
802000-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
892000-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
942000-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
109Wed 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
1172000-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
122Wed 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
1302000-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
1372000-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
1422000-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
147Wed 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
1512000-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
1572000-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
162Wed 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
206Wed 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
2212000-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
2262000-03-29 Nathan Sidwell <nathan@codesourcery.com>
227
228 * except.c (add_eh_table_entry): Mark type_info's as referenced.
229
d6121128
AO
2302000-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
2382000-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
2452000-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
2672000-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
2762000-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
281Tue 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
292Tue 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
3032000-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
3112000-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
3212000-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
3592000-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
3702000-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
3782000-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
3832000-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
388Mon 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
394Sun 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
4152000-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
4242000-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
4332000-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
4382000-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
443Sun 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
4722000-03-26 Bernd Schmidt <bernds@cygnus.co.uk>
473
474 * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
475
770ae6cc
RK
476Sat 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
756Fri 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
7752000-03-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
776
777 * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
778
194c7c45
RH
7792000-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
7892000-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
7942000-03-24 Richard Henderson <rth@cygnus.com>
795
796 * builtins.c (expand_builtin_bzero): Convert `length' argument
797 to sizetype.
798
7d167afd
JJ
7992000-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
844Fri 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
8492000-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
8592000-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
8652000-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
8722000-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
876Thu 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
8812000-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
890Thu 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
896Thu 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
9012000-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
9112000-03-22 Richard Henderson <rth@cygnus.com>
912
913 * stmt.c (expand_asm_operands): Don't promote the temporary.
914
2f939d94
TP
9152000-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
9322000-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
9602000-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
9702000-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
9752000-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
9802000-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
9852000-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
990Wed 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
9942000-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
10002000-03-21 Richard Henderson <rth@cygnus.com>
1001
e3c2afab 1002 * flow.c (delete_block): Fix typo last change.
1fa4609a 1003
b8de2d02
MM
10042000-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
10092000-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
10172000-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
10462000-03-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1047
1048 * config/c4x/rtems.h: Include config/rtems.h.
1049
8053f393
DC
1050Tue 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
1055Mon 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
10652000-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
10812000-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
10882000-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
10962000-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
11032000-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