]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify condition.
[gcc.git] / gcc / ChangeLog
CommitLineData
a1cbdd7f
JH
1Fri Dec 17 01:32:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
2
3 * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
4 condition.
5 (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
6
a97901e6
MM
71999-12-16 Mark Mitchell <mark@codesourcery.com>
8
9 * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
10 * function.c (insert_block_after_note): Remove.
11 (retrofit_block): Likewise.
12 (identify_blocks): Fix indentation.
13 (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
14 NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
15 * function.h (insert_block_after_note): Remove prototype.
16 (retrofit_block): Likewise.
17 * integrate.c (expand_inline_function): Don't call
18 find_loop_tree_blocks. Use expand_start_bindings_and_block, not
19 just expand_start_bindings. Use the block_map to remap old
20 NOTE_BLOCKs to new ones.
21 (integrate_decl_tree): Keep track of remapped blocks.
22 * integrate.h (struct inline_remap): Add block_map.
23 * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set
24 NOTE_BLOCK on the notes.
25 (expand_start_bindings): Rename to ...
26 (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK.
27 (expand_end_bindings): Set NOTE_BLOCK.
28 * toplev.c (rest_of_compilation): In function-at-a-time-mode,
29 reconstruct the BLOCK tree.
30 * tree.h (expand_start_bindings): Macroize. Call ...
31 (expand_start_bindings_and_block): New function.
32
0d9484c5
JJ
331999-12-16 Jakub Jelinek <jakub@redhat.com>
34
35 * config/sparc/sparc.c (print_operand): Cast fprintf arguments
36 to match the format.
37
235ae7be
DM
381999-12-16 David S. Miller <davem@redhat.com>
39
40 * expr.c (emit_move_insn_1): Only emit clobbers if one of
41 the outputs is a SUBREG.
42 * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
43 change.
44
76a7c776
DM
45 * config/sparc/sparc.c (epilogue_renumber): Add default case
46 to switch stmt.
47
954d8e99
JH
48Thu Dec 16 11:33:57 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
49
5b772bbd
JH
50 * toplev.c (rest_of_compilation): Run branch shortening after
51 reg-stack.
52
954d8e99
JH
53 * regclass.c (loop_depth): Remove
54 (scan_one_insn): Do not handle LOOP_NOTE insns.
55 (regclass): Go through basic blocks and set loop_cost
56
3d62d651
ZW
57Thu Dec 16 02:56:25 1999 Zack Weinberg <zack@bitmover.com>
58
59 * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
60
4cbfbb1b
JH
61Thu Dec 16 10:43:35 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
62
63 * i386.md (movqi): Use "nonimmediate_operand" for output operand.
64 (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
65 (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
66
0bd4b461
RH
67Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com)
68
27114460
RH
69 * loop.c (insert_loop_mem): Ignore memory clobbers.
70
0bd4b461
RH
71 * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
72 to (OP A B).
73
41adf898
JL
74Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com)
75
df55ea09
JL
76 * profile.c: Remove redundant #include "output.h".
77
41adf898
JL
78 * h8300.md (HImode preinc peephole): Fix typo.
79
5afb79e7
JM
801999-12-15 Jason Merrill <jason@casey.cygnus.com>
81
82 * function.c (retrofit_block): Abort if we don't find a suitable insn.
83 (insert_block_after_note): Abort if we don't have a previous block.
84 Remove FN parameter.
85 * function.h: Adjust.
86
5a626f11
MM
871999-12-15 Mark Mitchell <mark@codesourcery.com>
88
89 * builtins.c (expand_builtin_mathfn): Make sure not to expand the
90 argument more than once.
91
4d9af632
JM
921999-12-15 Jason Merrill <jason@casey.cygnus.com>
93
94 * stmt.c (expand_decl): Expand upper bound of a dynamic array.
95
8b725198
JJ
961999-12-15 Jakub Jelinek <jakub@redhat.com>
97
98 * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
99
a0871656
JH
100Wed Dec 15 16:11:55 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
101
102 * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
103 (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
104 update stack_alignment_needed.
105 (prepare_function_start): Initialize stack_alignment_needed
106 * function.h (struct function): Add field stack_alignment_needed.
107
285f3cf0
R
108Wed Dec 15 14:55:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
109
110 * caller-save.c (insert_one_insn): Returns struct insn_chain *.
111 Handle live_throughout / dead_or_set instead of live_before /
112 live_after.
113 (save_call_clobbered_regs): Get register livenessinformation from
114 chain->live_throughout.
115 (add_stored_regs): New function.
116 (insert_restore, insert_save): Add restored / saved registers to
117 dead_or_set.
118 * global.c (reg_dies): New parameter chain.
119 (reg_becomes_live): Third parameter is regs_set now.
120 Changed all callers.
121 (reg_dies): New parameter chain. Changed all callers.
122 (build_insn_chain): Set live_throughout instead of
123 live_before / live_after.
124 * reload.h (struct insn_chain): Replace members live_before /
125 live_after with live_throughout / dead_or_set.
126 * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
127 instead of live_before / live_after.
128 (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
129 (order_regs_for_reload, find_reg, finish_spills): Likewise.
130 (choose_reload_regs_init): Likewise.
131 * stupid.c (current_chain, find_clobbered_regs): Delete.
132 (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
133 instead of chain->live_before / chain->live_after.
134 (mark_hard_ref): New function.
135 (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
136
4940cd60
DM
1371999-12-15 David S. Miller <davem@redhat.com>
138
139 * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
140
ce4bbac7
JH
141Wed Dec 15 15:05:30 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
142
35836a43
JH
143 * flow.c (calculate_loop_depth): Make global, remove prototype,
144 rewrite to use new loop infrastructure.
145 (find_basic_block): Remove calculate_loop_depth call.
146 * toplev.c (rest_of_compilation): Call find_basic_block.
147 * output.h (calculate_loop_depth): Declare.
148
ce4bbac7
JH
149 * flow.c (dump_flow_info): Dump loop_depth.
150 (flow_loops_nodes_find): Increase loop_depth for basic block in the
151 body.
152 (flow_loops_find): Initialize the loop_depth for each basic block.
153
6ff7fb95
JM
1541999-12-15 Jason Merrill <jason@casey.cygnus.com>
155
156 * tree.c (decl_function_context): Handle virtual functions.
157
158 * tlink.c (scan_linker_output): Don't look in demangled name when
159 looking for linker output keywords.
160
161 * dwarfout.c (output_type): We can defer namespace-scope classes.
162
accef103
JL
163Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com)
164
165 * regclass.c (record_reg_classes): Update comment for merging
166 register class preferences in reg->reg copies. Tighten conditions
167 for merging register class preferences in reg->reg copies.
168
fd2a1092
DE
169Wed Dec 15 02:19:32 1999 David Edelsohn <edelsohn@gnu.org>
170
171 * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
172
f4f1acad
GK
1731999-12-14 Geoff Keating <geoffk@cygnus.com>
174
175 * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
176 (INIT_SECTION_ASM_OP): Delete.
177 (FINI_SECTION_ASM_OP): Delete.
178 (STARTFILE_SPEC): Define to hold just crtbegin.o.
179
9765e357
JM
1801999-12-14 Jason Merrill <jason@casey.cygnus.com>
181
1ae8994f
JM
182 * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
183 the abstract origin wasn't emitted.
184
9765e357
JM
185 * dwarf2out.c (class_scope_p): New fn.
186 (gen_subprogram_die): Use it.
187 (gen_variable_die): Use it. Tweak logic.
188 (gen_struct_or_union_type_die): Check context_die to determine
189 if we're function-local.
190 (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
191
6979065c
BS
1921999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
193
194 * loop.c (check_dbra_loop): Can't reverse a biv that has
195 maybe_multiple set.
196
a120a3bd
NC
1971999-12-14 Nick Clifton <nickc@cygnus.com>
198
199 * config/arm/arm.c: Add support for -mcpu=arm720 command line
200 switch.
201
e1bb2458
R
202Tue Dec 14 18:13:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
203
204 * loop.c (strength_reduce): Fix sign of giv lifetime calculation
205 for givs made from biv increments.
206
d8ee3e20
RH
207Tue Dec 14 08:11:27 1999 Richard Henderson <rth@cygnus.com>
208
209 * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
210 * alpha.c (override_options): Recognize -mcpu=ev67.
211 * alpha.h (CPP_CPU_EV67_SPEC): New.
212 (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
213 (EXTRA_SPECS): Update.
214
215Tue Dec 14 08:04:28 1999 Richard Henderson <rth@cygnus.com>
216
217 * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
218 appropriate for -lang-c89 and -std=*.
219 * cppinit.c (cpp_handle_option): Likewise.
220 (new_pending_define): New, split out from cpp_handle_option.
221 * gcc.c (default_compilers): Don't define __STRICT_ANSI__
222 or enable trigraphs for -ansi/-std=*.
223
224 * ginclude/stdarg.h (__va_copy): New.
225 (va_copy): Don't define for C89.
226
9e3fc430
CP
227Tue Dec 14 08:37:27 CST 1999 Clinton Popetz <cpopetz@cygnus.com>
228
229 * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
230 for long long multiply-accumulate.
231
2f12c89d
JH
232Tue Dec 14 13:51:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
233
234 * regclass.c (scan_one_insn): Set loop_cost to 1 when
235 optimizing for size.
236
0a326ec9
BS
2371999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
238
e483bf9c
BS
239 * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
240 if something changed. Back out that part of yesterday's changes.
241
0a326ec9
BS
242 * loop.c (loop_max_reg): New static variable.
243 (loop_optimize): Initialize it. Eliminate one unnecessary call to
244 max_reg_num.
245 (scan_loop): Call reg_scan_update whenever we may have added new
246 registers, and update loop_max_reg.
247
d5e2075d
JH
248Tue Dec 14 12:07:29 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
249
0dc0641b
JH
250 * regclass.c (record_reg_classes): Do not do the copying preferrencing
251 when source does not die.
252
d5e2075d
JH
253 * regclass.c (record_reg_classes): Handle INOUT operands propertly.
254
5a5e9ce6
JJ
2551999-12-14 Jakub Jelinek <jakub@redhat.com>
256
257 * config/sparc/linux64.h (TARGET_LIVE_G0,
258 TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
259 variants on Linux.
260 * config/sparc/linux.h (TARGET_LIVE_G0,
261 TARGET_BROKEN_SAVERESTORE): Likewise.
262 * config/sparc/linux-aout.h (TARGET_LIVE_G0,
263 TARGET_BROKEN_SAVERESTORE): Likewise.
264
a330e73b
JJ
265 * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
266 (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
267 not %g2.
268 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
269 as sparc64 block profiling register.
270 * config/sparc/sparc.c (sparc_override_options): Allow block
271 profiling with -m32.
272 (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
273 profiling register.
274 * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
275 macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
276 * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
277
afdac905
JJ
278 * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
279 for sparc64.
280 * config/sparc/sparc.h: Likewise.
281 * config/sparc/xm-sysv4-64.h: Likewise.
282 * config/float-sparc.h: Likewise.
283 * glimits.h: Likewise.
284 * longlong.h: Likewise.
285
9ac190b5
JJ
286 * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
287 (ASM_IDENTIFY_GCC): Remove.
288
3749f4ca
BS
2891999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
290
291 * combine.c (combine_simplify_rtx): Don't make shared rtl.
292 (simplify_logical): Likewise.
293
b9a341ba
MK
2941999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
295
296 * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
297 * cppfiles.c (INO_T_EQ): Likewise.
298
9b0b6c51
MK
2991999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
300
301 * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
302 * i386/mingw32.h (LIB_SPEC): Likewise.
303 (STARTFILE_SPEC): Likewise.
304 * i386/uwin.h (LIB_SPEC): Likewise.
305 (STARTFILE_SPEC): Likewise.
306
307 * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
308 * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
309
37ac53d9
JL
310Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com)
311
312 * combine.c (combine_simplify_rtx): Fix order of checks for
313 (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
314
8debd288
CP
3151999-12-13 Clinton Popetz <cpopetz@cygnus.com>
316
317 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out
318 12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
319
f5d8c9f4
BS
3201999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
321
322 * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
323 defined.
324 * regclass.c (inv_reg_alloc_order): New array.
325 (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
326
327 * reload.h (struct insn_chain): Delete fields group_size, group_mode,
328 counted_for_groups, counted_for_nongroups. Add fields rld and
329 n_reloads.
330 * reload.c (push_secondary_reload): Don't set nongroup field of
331 new reloads.
332 (push_reload): Likewise.
333 (find_reloads): Delete code to compute nongroup fields.
334 * reload1.c (reload_insn_firstobj): New static variable.
335 (pseudos_counted, spilled_pseudos): Now of type regset_head. All
336 users changed.
337 (calculate_needs, find_tworeg_group, find_group, possible_group_p,
338 count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
339 dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
340 functions.
341 (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
342 functions.
343 (struct hard_reg_n_uses): Deleted.
344 (potential_reload_regs): Deleted.
345 (init_reload): Initialize spilled_pseudos and pseudos_counted.
346 (reload): Don't try to allocate reload registers if we already know
347 we have to make another pass. Call select_reload_regs. Free memory
348 starting with reload_firstobj when starting another pass.
349 Don't allocate spilled_pseudos.
350 (calculate_needs_all_insns): Call copy_reloads for an insn that
351 needs reloads; don't call calculate_needs.
352 (spill_cost): New static array.
353 (used_spill_regs_local): New static variable.
354 (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
355 to compute potential_reload_regs.
356 (find_reload_regs): Completely rewritten to use find_reg.
357 (allocate_reload_reg): Don't test counted_for_groups or
358 counted_for_nongroups. Lose NOERROR arg and code to give an error;
359 all cllers changed.
360 (choose_reload_regs): Add fallback code that uses the existing
361 register allocation from find_reload_regs.
362
2c852885
JL
363Mon Dec 13 00:54:14 1999 Philippe De Muyter <phdm@macqel.be>
364
365 * flow.c (create_edge_list): Cast xmalloc return value.
366
367Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com)
368
2ecac433
JL
369 * doprnt.c: Remove incorrect comment closure.
370
2c852885
JL
371 * cse.c: Fix a few minor whitespace goofs.
372
fe0f7c16
DB
3731999-12-13 Don Bowman <don@pixstream.com>
374
375 * mips/vxworks.h: Fix problem with comment termination.
376 (EXTRA_SECTIONS): Add in_sbss.
377 (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
378
9b1549b8
DM
3791999-12-12 David S. Miller <davem@redhat.com>
380
381 * cse.c (struct cse_reg_info): Add hash_next member,
382 reorder rest of struct for better packing on 64-bit
383 hosts.
384 (cse_reg_info_tree): Kill.
385 (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
386 REGHASH_FN): New custom pow2 hash mechanism.
387 (NBUCKETS): Kill.
388 (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
389 use a pow2 hash table.
390 (get_cse_reg_info): Rework to use new REGHASH.
391 (new_basic_block): Likewise, use HASH_SIZE, and inline
392 free_element call.
393 (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
394 and inline free_element call.
395 (lookup_as_function, insert, flush_hash_table, invalidate,
396 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
397 invalidate_for_call, use_related_value, find_comparison_args,
398 fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
399 (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
400 get_element): Kill.
401
fa0933ba
JL
402Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com)
403
404 * cse.c (cse_basic_block): Free qty_table consistently.
405
ccd61a80
DM
4061999-12-12 David S. Miller <davem@redhat.com>
407 Jakub Jelinek <jakub@redhat.com>
408
409 * config/sparc/sparc.md (movtf reg/reg split): Don't generate
410 SUBREGs by hand, gen the appropriate hard reg directly.
411 (movtf reg/mem split): Likewise and alter_subreg on destination
412 if necessary.
413 (movtf mem/reg split): Similarly.
414 (movdf_cc_sp64): Rename from hidden pattern.
415 (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
416 (movtf_cc_sp64, following split): New pattern and splitter.
417 (movdf_cc_reg_sp64): Rename from hidden pattern.
418 (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
419 TARGET_HARD_QUAD.
420 (movtf_cc_reg_sp64, following split): New pattern and splitter.
421
f0b60c1c
SM
4221999-12-12 Stephen L Moshier <moshier@mediaone.net>
423
424 * loop.c (load_mems): Don't hoist written floating point mem
425 if -ffloat-store.
426
f54a7f6f
MM
4271999-12-12 Mark Mitchell <mark@codesourcery.com>
428
429 * except.h (struct eh_queue): Add `next' pointer.
430 (struct eh_status): Make x_ehqueue a pointer.
431 (push_ehqueue): Declare.
432 (pop_ehqueue): Likewise.
433 * except.c (expand_eh_region_end): Adjust now that ehqueue is a
434 pointer.
435 (expand_fixup_region_end): Likewise.
436 (expand_leftover_cleanups): Likewise.
437 (push_ehqueue): Define.
438 (pop_ehqueue): Likewise.
439 (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
440 than doing it inline.
441 (expand_start_all_catch): Adjust now that ehqueue is a
442 pointer.
443 (mark_eh_queue): Mark all level of the queue.
444 (mark_eh_status): Adjust now that ehqueue is a
445 pointer.
446 (init_eh_for_function): Allocate ehqueue.
447 (free_eh_status): Free it.
448 * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
449 expansion for a fixup.
450
3e7d8ef1
KG
4511999-12-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
452
453 * gthr-single.h (__gthread_active_p): Add prototype arguments.
454
455 * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
456 (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
457 __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
458 function_ptr, getpagesize, __enable_execute_stack,
459 __enable_execute_stack, __clear_insn_cache,
460 __enable_execute_stack, __do_global_dtors, __do_global_ctors,
461 _cleanup, _exit, __default_terminate, __terminate_func,
462 __terminate, __empty, __throw, new_eh_context,
463 eh_context_initialize, eh_context_static, eh_context_specific,
464 get_eh_context, __get_eh_context, __get_eh_info,
465 init_reg_size_table, eh_threads_initialize,
466 __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
467 __unwinding_cleanup, throw_helper, __throw, __rethrow,
468 __pure_virtual): Add prototype arguments.
469 (__bb_exit_func): Cast a sizeof to long when comparing against one.
470 Cast a signed value to unsigned long when comparing against one.
471 (new_eh_context): Wrap in _GTHREADS macro.
472 (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
473 declaration.
474 (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
475 (throw_helper): Initialize variables `handler_p' and `pc_p'.
476
4a71b24f
KG
4771999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
478
479 * combine.c (record_promoted_value): Remove unused variable
480 `links2'.
481
482 * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
483
484 * global.c (record_conflicts): Likewise for `j'.
485
486 * genoutput.c (output_insn_data): Don't unnecessarily cast away
487 const-ness.
488
69ddee61
KG
4891999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
490
491 * i386-protos.h (output_387_binary_op, output_fix_trunc,
492 output_fp_compare): Constify a char*.
493
494 * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
495 static prototypes.
496 (override_options, ix86_comp_type_attributes, print_operand,
497 output_387_binary_op, output_fix_trunc, output_fp_compare):
498 Constify a char*.
499 (ix86_sched_reorder): Mark parameter `clock_var' with
500 ATTRIBUTE_UNUSED.
501
502 * i386.h (DEBUG_PRINT_REG): Constify a char*.
503
be821c5e
APB
504Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
505
506 * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
507 operand, for use in the Java front-end.
508
8a90b95d
BC
5091999-12-10 Ben Collins <bcollins@debian.org>
510
d8ee3e20 511 * configure.in: Fix typo for "-64" in 64bit as check.
8a90b95d
BC
512 * configure: Rebuilt.
513
d64554f9
JJ
5141999-12-10 Jakub Jelinek <jakub@redhat.com>
515
516 * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
517 appropriate.
518
bb66adca
KG
5191999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
520
521 * c-parse.in (string): With -Wtraditional, warn if ANSI string
522 concatenation is utilized.
523
524 * invoke.texi (-Wtraditional): Document it.
525
d92398a2
KG
5261999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
527
528 * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
529 Cast a ptrdiff_t to long and pass it to printf with %ld.
530
15a17b72
GK
5311999-12-10 Geoff Keating <geoffk@cygnus.com>
532
533 * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
534 68881, we have no 68881 registers at all.
535 (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
536 value in a 68881 register if it is available.
537
ff8ee66b
CP
5381999-12-10 Clinton Popetz <cpopetz@cygnus.com>
539
540 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
541 for long long multiply-accumulate.
542
22d37998
BS
5431999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
544
545 * loop.c (insert_loop_mem): Undo last change.
546
62190128
DM
5471999-12-10 David S. Miller <davem@redhat.com>
548
549 * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
550 New functions.
551 * config/sparc/sparc-protos.h: Add them.
552 * config/sparc/sparc.h: Add them to PREDICATE_CODES.
553 (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
554 constraints which use those helpers.
555 (EXTRA_CONSTRAINT): Use this new macro.
556 * md.texi: Update sparc target constraints documentation.
557 * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
558 movsf_const_high, movsf_const_lo, movsf_insn): Delete.
559 (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
560 movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
561 (movsf high/lo_sum split): Rework for new patterns.
562 (movsf expander): Allow storing fp_zero to memory if ! live_g0.
563
29ae8f10
GRK
5641999-12-09 Gavin Romig-Koch <gavin@cetus.cygnus.com>
565
566 * c-common.c (c_common_nodes_and_builtins):
567 Create __builtin_ptrdiff_t and __builtin_size_t.
568
27def0aa
JL
569Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com)
570
571 * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
572
c07c7c9d
R
573Fri Dec 10 00:53:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
574
575 * regclass.c (globalize_reg): Re-instate test that allows
576 fixed registers to be declared as a variable even after functions
577 are defined.
578
309ada50
JH
579Fri Dec 10 00:52:13 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
580
581 * i386.md (cpu attribute): Add "athlon".
582 (athlon_decode): New attribute.
583 (Athlon scheduling units definitions): New.
584 (fcmp and shld patterns): Set athlon_decode to "vector".
585 * i386.c (athlon_cost): New.
586 (m_ATHLON): New.
587 (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
588 x86_use_sahf): Set for Athlon.
589 (x86_use_fiop): Unset for Athlon.
590 (override_options): Define Athlon alignments and "athlon" name.
591 (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
592 * i386.h (TARGET_ATHLON): New.
593 (enum processor_type): Add PROCESSOR_ATHLON.
594 (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
595 for CPU_DEFAULT==5
596 (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
597
009fef52
AJ
5981999-12-09 Andreas Jaeger <aj@suse.de>
599
600 * loop.c (record_biv): Declare parameter as int.
601
602 * config/i386/i386-protos.h: Declare long_memory_operand.
603
1e54d32b
MM
6041999-12-09 Mark Mitchell <mark@codesourcery.com>
605
606 * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
607 EXPR_WITH_FILE_LOCATION.
608
e73ccf83
JH
609Thu Dec 9 11:36:24 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
610
2756c3d8
JH
611 * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
612 in expander.
613
5dd56a93
JH
614 * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
615
e73ccf83
JH
616 * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
617 updating code.
618
699a42a6
JJ
6191999-12-09 Jakub Jelinek <jakub@redhat.com>
620
621 * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
622 default on linux64 again.
623 * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
624 models for multilibing.
625 * genmultilib: Accept | as alternative separator within a set in
626 MULTILIB_OPTIONS.
627
47841d1b
JJ
628 * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
629
630 * calls.c (precompute_arguments): Make sure initial_value contains
631 value pseudo which CSE expects.
632 * cse.c (struct set): New entry orig_src.
633 (cse_insn): Set it early on entry, use it for libcall EQUIV note
634 replacement.
635
f1fcc261
RH
636Wed Dec 8 22:24:15 1999 Richard Henderson <rth@cygnus.com>
637
638 * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
639
cd8998a3
BS
6401999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
641
642 * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
643
1f0e6e28
JJ
6441999-12-08 Jakub Jelinek <jakub@redhat.com>
645
646 * config/sparc/sparc.c (ultra_cmove_results_ready_p,
647 ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
648
dd4be5a1
JJ
649 * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
650 if TARGET_ARCH32.
651
021b3949
JJ
652 * longlong.h: Merge in changes from glibc.
653 Also don't clobber %g2 register in 32bit SPARC assembly, so that
654 -mno-app-regs libgcc can be compiled.
655 * libgcc2.c: Add defines so that the updated longlong.h
656 can be used in libgcc2.a. Also, make sure on most architectures
657 (at least on all which have optimized code in longlong.h defined
658 for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
659
3b1c302f
AO
6601999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
661
662 * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
663 `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
664 * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
665 is GNU ld.
666 * configure: Rebuilt.
667
35a414df
RH
668Wed Dec 8 03:45:40 1999 Richard Henderson <rth@cygnus.com>
669
670 * alpha.c (secondary_reload_class): For !BWX, sub-simode
671 outputs require a register.
672
8dcd865f
BK
6731999-12-08 Brendan Kehoe <brendan@cygnus.com>
674
675 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
676 _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to
677 functions like dptoul will be resolved.
678 (libgcc2.a): Make sure that the object files from DPBIT are named
679 differently (prefix `_dp') from those that would be coming from
680 FPBIT.
681
5b68c389
AO
6821999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>, Jakub Jelinek <jakub@redhat.com>
683
684 * configure.in: When target is sparc* and tm_file contains 64,
685 test for 64bit support in assembler. If not supported, remove
686 sparc/t-sol2-64 from target-dependent Makefile fragments.
687 (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
688 (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
689 (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
690 * acconfig.h (AS_SPARC64_FLAG): Added.
691 * configure, config.in: Rebuilt.
692 * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
693 support. Use AS_SPARC64_FLAG.
694
d0cee9ba
JJ
6951999-12-07 Jakub Jelinek <jakub@redhat.com>
696
697 * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
698 suitable for holding OFmode values so that gcc works with complex
699 quad long doubles.
700 (hard_64bit_mode_classes): Likewise.
701
e1a2f7ae
JJ
702 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
703 so that it is actually matched.
704 (sethi_di_medlow): Likewise.
705
0f63333c
JJ
706 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
707 as legitimate constant if -mvis.
708 * config/sparc/sparc.md (movtf): Likewise.
709 (clear_sf): Use const_double_operand.
710 (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
711
47ac041c
JJ
712 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
713 * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
714 * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
715 routines, _Qp_* cannot be handled like that now.
716 (INIT_TARGET_OPTABS): Likewise.
717 * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
718 (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
719 sparc_emit_float_lib_cmp if ARCH64 and soft float.
720 (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
721 floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
722 divtf3, sqrttf3): New expanders.
723 (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
724 floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
725 addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
726 non-_hq patterns.
727
9ce13279
JJ
728 * configure.in (sparc64-*-linux*): Use posix threads if enabled.
729 * configure: Rebuilt.
730 * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
731 -mcpu is given and we're doing 64bit compiles.
732
60fb6df9
RH
733Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
734
735 * loop.h (struct induction): Add multi_insn_incr.
736 * loop.c (basic_induction_var): New multi_insn_incr argument.
737 Set it if we search back through previous insns for the biv.
738 (record_biv): New multi_insn_incr argument; fill in struct induction.
739 (strength_reduce): Discard an iv with multiple bivs, any of
740 which require multiple insns to increment.
741
3043b30e
ML
742