]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of dead registers.
[gcc.git] / gcc / ChangeLog
CommitLineData
eedf2f55
JH
1Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz>
2
3 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
4 dead registers.
5
564d80f4
JH
6Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz>
7
8 * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
9 (FIXED_REGISTERS, CALL_USED_REGISTERS,
10 REG_ALLOC_ORDER): Add frame pointer
11 (FRAME_POINTER_REGNUM): Set to 20
12 (HARD_FRAME_POINTER_REGNUM): New macro.
13 (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
14 to HARD_FRAME_POINTER.
15 (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
16 (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
17 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
18 (HI_REGISTER_NAMES): Add "frame".
19 (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
20 (debug_reg): Handle FRAME_POINTER_REGNUM.
21 (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
22 GENERAL_REGS and INDEX_REGS.
23 * i386.c (SAVED_REGS_FIRST): new macro.
24 (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
25 (ix86_decompose_address, memory_address_length): Likewise.
26 (regclass_map): Add frame pointer.
27 (call_insn_operand): Handle frame_pointer_rtx.
28 (reg_no_sp_operand): Likewise.
29 (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
30 (print_operand, legitimize_pic_address): Fix formating.
31 (ix86_compute_frame_size): Make static, update prototype, new
32 parameters padding1, padding2, use ix86_nsaved_regs, use
33 stack_alignment_needed.
34 (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
35 to HARD_FRAME_POINTER_REGNUM conversions.
36 (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
37 (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
38 (print_reg): Abort on FRAME_POINTER_REGNUM
39
2247f6ed
JH
40Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz>
41
42 * i386.h (PREDICATE_CODES): Add aligned_operand.
43 * i386.c (aligned_operand): New function.
44 (ix86_aligned_p): Kill.
45 * i386.md (movhi_1): Emit mov for aligned operands.
46 (promoting peep2s): Use aligned_operand.
47
3a2e9dd2
ZW
482000-01-23 Zack Weinberg <zack@wolery.cumb.org>
49
50 * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
51 expression to allow underscores in macro names.
52 (fix_char_macro_defines): Increment scanning pointer.
53
5495cc55
RH
542000-01-23 Richard Henderson <rth@cygnus.com>
55
56 * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
57 * alpha/osf5.h: New file.
58 * configure.in (alpha-*-osf5): Add it to tm_file.
59
60 * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
61
62 * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
63 (alpha_emit_xfloating_cvt, function_arg): Declare.
64 * alpha.c (alpha_emit_conditional_branch): Call
65 alpha_emit_xfloating_compare for TFmode compares.
66 (alpha_lookup_xfloating_lib_func): New.
67 (alpha_compute_xfloating_mode_arg): New.
68 (alpha_emit_xfloating_libcall): New.
69 (alpha_emit_xfloating_arith): New.
70 (alpha_emit_xfloating_compare): New.
71 (alpha_emit_xfloating_cvt): New.
72 (print_operand): Add default abort case.
73 (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
74 * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
75 (BIGGEST_ALIGNMENT): Increase to 128 bits.
76 (RETURN_IN_MEMORY): True for TF/TCmode.
77 (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
78 (FUNCTION_ARG): Move to function_arg.
79 (FUNCTION_ARG_PASS_BY_REFERENCE): New.
80 (ASM_OUTPUT_LONG_DOUBLE): New.
81 (ASM_OUTPUT_DOUBLE): Always output bits.
82 * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
83 (fix_trunctfdi2, floatditf2, floatunsditf2): New.
84 (extenddftf2, trunctfdf2): New.
85
ac490444
AO
862000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
87
88 * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
89 * config/sparc/sol2.h: ... here.
90
d6181b1b
MH
912000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
92
93 * basic-block.h (struct loops): New field `levels'.
94 * flow.c (flow_loops_level_compute): Traverse all outer loops.
95 (flow_loop_level_compute): Initialise level to 1.
96 (flow_loops_find): Set loops->levels.
97 (flow_loops_dump): Print loops->levels.
98
7e259f25
RH
992000-01-23 Richard Henderson <rth@cygnus.com>
100
101 * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
102 (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
103
83774849
RH
1042000-01-23 Richard Henderson <rth@cygnus.com>
105
106 * i386.c (dbx_register_map, svr4_dbx_register_map): New.
107 * i386.h (DBX_REGISTER_NUMBER): Use them.
108 * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
109 * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
110 * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
111 * i386/sequent.h: Kill incorrect comment.
112
ae373eda
MM
1132000-01-23 Mark Mitchell <mark@codesourcery.com>
114
115 * ggc-page.c (struct page_entry): Make `context_depth' an
116 `unsigned short'.
d416576b 117 (struct globals): Likewise.
ae373eda 118
5c75f60e
CP
1192000-01-23 Clinton Popetz <cpopetz@cygnus.com>
120
121 * loop.c (check_dbra_loop): When checking a loop for
122 reversability, check the source of any stores to ensure
123 they don't depend on an initial value.
124
7bea4e7a
MH
1252000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
126
127 * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
128
ae5c839b
ZW
1292000-01-22 Zack Weinberg <zack@wolery.cumb.org>
130
131 * fixinc/fixincl.c: Move declarations of 'pz_fname' and
132 'pz_scan' into scope of entire function. Only affects
133 compiles with -DDEBUG.
134
e8c3586a
AM
1352000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
136
137 * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
138 section naming to that prior to 2000-01-07 patch.
139 * config/mips/elf.h (UNIQUE_SECTION): Ditto.
140 * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
141 * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
142 * config/i386/interix.c (UNIQUE_SECTION): Ditto.
143 * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
144
37b80d2e
BS
1452000-01-22 Bernd Schmidt <bernds@cygnus.co.uk>
146
147 * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
148 constant.
149
5787d8da
JW
1502000-01-21 Jim Wilson <wilson@cygnus.com>
151
152 * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
153 * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
154
4571dc27
ZW
1552000-01-21 Zack Weinberg <zack@wolery.cumb.org>
156
157 * cpphash.c (change_newlines): Delete function.
158 (struct argdata): Delete 'newlines' and 'use_count' fields.
159 (macroexpand): Remove code referencing those fields.
160
4cda35d4
MH
1612000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
162
163 * loop.c (loops_info): New variable.
164 (loop_optimize): Allocate loops->array and free it on exit.
165 Allocate memory for loops_info and assign to each loop,
166 replacing alloca.
167 (find_and_verify_loops): Do not allocate loops->array.
168
84c70dec
ZW
1692000-01-21 Zack Weinberg <zack@wolery.cumb.org>
170
171 * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
172
7652adb5
JJ
1732000-01-21 Jakub Jelinek <jakub@redhat.com>
174
175 * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
176 pseudos if expanded after first flow.
177 (movdi_pic_label_ref): Likewise.
178
7c22ee2b
RH
1792000-01-20 Richard Henderson <rth@cygnus.com>
180
181 * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
182
52c207e2
ZW
1832000-01-20 Zack Weinberg <zack@wolery.cumb.org>
184
185 * Makefile.in (fixinc.sh): Depend on specs.
186 * fixinc/Makefile.in: Add rule to create machname.h.
187 (fixlib.o): Depend on machname.h.
188 * fixinc/fixtests.c (machine_name): New test.
189 * fixinc/fixfixes.c (machine_name): New fix.
190 * fixinc/fixlib.c (mn_get_regexps): New helper function for
191 the machine_name test and fix.
192 * fixinc/fixlib.h: Prototype it.
193 * fixinc/inclhack.def (machine_name): Use the C test and fix.
194 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
195
196 * gcc.c (do_spec_1) [case P]: Take care not to create
197 identifiers with three leading or trailing underscores.
198
199 * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
200 (fixincl): Don't specify libraries twice on link line.
201 (gnu-regex.o): Remove special rule.
202 * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
203 defined by config.h. Do not define _REGEX_RE_COMP.
204 (regcomp): Allocate and initialize a fastmap.
205 * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
52c207e2 206
d3de1cf7
BL
2072000-01-20 Brad Lucier <lucier@math.purdue.edu>
208
209 * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
210
65f6fa24
RH
2112000-01-19 Richard Henderson <rth@cygnus.com>
212
213 * flow.c (propagate_block): Replace FIRST, LAST and BNUM
214 arguments with BB. Update all callers. Tidy line wrapping.
215
ba52f355
CP
2162000-01-19 Clinton Popetz <cpopetz@cygnus.com>
217
218 * emit-rtl.c (try_split): Return last_insn if we split the
219 last_insn.
220
0903fcab
JH
221Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz>
222
223 * i386-protos.h (ix86_compute_frame_size): Remove prototype.
224 (ix86_initial_elimination_offset): Declare.
225 * i386.c (ix86_nsaved_regs): Break out from ...
226 (ix86_can_use_return_insn_p): ... here.
227 (ix86_emit_save_regs): Break out from ...
228 (ix86_expand_prologue): ... here.
229 (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
230 out from ...
231 (ix86_expand_epilogue): ... here.
232 (ix86_compute_frame_size): Make static, add prototype.
233 (ix86_initial_elimination_offset): Break out from ...
234 * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
235
0bee0290
KG
2362000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
237
238 * recog.h (OUT_FCN): Delete.
239
240 * vax.md: Call `get_insn_template' instead of OUT_FCN.
241
299d06ad 2422000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
f84c2018
KG
243
244 * cppalloc.c: PROTO -> PARAMS.
245 * cpperror.c: Likewise.
246 * cppfiles.c: Likewise.
247 * cpplib.c: Likewise.
248 * cpplib.h: Likewise.
299d06ad
KG
249
250 * config/arm/arm-protos.h: PROTO -> PARAMS.
251 * config/arm/arm.c: Likewise.
252 * config/c4x/c4x.c: Likewise.
253 * config/fr30/fr30-protos.h: Likewise.
254 * config/nextstep.c: Likewise.
255 * config/pa/pa.c: Likewise.
256 * config/pj/pj.c: Likewise.
257 * config/rs6000/rs6000.c: Likewise.
258 * config/v850/v850-protos.h: Likewise.
259 * config/v850/v850.c: Likewise.
260
f50ec635
KG
2612000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
262
263 * i370-protos.h: New file.
264
265 * i370.c: Include tm_p.h. Fix compile time warnings.
266
267 * i370.h: Move prototypes to i370-protos.h. Fix compile time
268 warnings.
269
270 * i370.md: Likewise.
271
b42b4d2c
KG
2722000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
273
274 * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
275 (target_isinf, target_isnan, eisnan): Mark parameter with
276 ATTRIBUTE_UNUSED.
277 (eiisinf): Wrap in INFINITY.
278 (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
279 (ibmtoe): Remove unused variable `rndsav'.
280
229f17cf
R
281Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
282
283 * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
284 (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
285
5c0d5b94
ZW
2862000-01-19 Zack Weinberg <zack@wolery.cumb.org>
287
288 * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
289 * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
290 (fix_char_macro_defines, fix_char_macro_uses): New functions.
291
292 * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
293 Recognize Emacs mode markers also.
294 * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
295 C++ comments in C++ headers. Call is_cxx_header only if
296 necessary.
297
298 * fixinc/inclhack.def (avoid_bool): Add select for the problem and
299 bypass for ncurses.
300 (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
301 (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
302 ... these, which use the new C fixes.
303 (math_exception): Escape literal '+' in bypass expression.
304
305 * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
306 Regenerate.
307
0d3ffb5a
GK
3082000-01-19 Geoff Keating <geoffk@cygnus.com>
309
310 * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
311 inside the MEM.
312
78458962
MH
3132000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
314
315 * loop.c (loop_optimize): Allocate loop_info structure for each loop
316 prior to calling scan_loop.
317
eda44c78
R
318Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
319
10db12e0
R
320 * sh.c (find_barrier, gen_block_redirect): Fix indentation.
321 (split_branches, calc_live_regs): Likewise.
eda44c78 322
d64264ff
R
323Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
324
325 * sh.md (fpu_single, fp_mode): New attributes.
326
e4b68ced
MH
3272000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
328
329 * loop.c (current_loop_info): Renamed from loop_info_data
330 and changed to a pointer.
331 (loop_optimize): Allocate loop_info structure for each loop
332 and initialise to zero.
333 (scan_loop): Set current_loop_info.
334
335 * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
336 on iteration_var.
337
d29c259b
RH
3382000-01-19 Richard Henderson <rth@cygnus.com>
339
340 * stupid.c: Die die die.
341 * Makefile.in (OBJS): Remove stupid.o.
342 (stupid.o): Likewise.
343
344 * except.c (emit_eh_context): Don't emit USEs for stupid.
345 * explow.c (probe_stack_range): Likewise.
346 * flags.h (obey_regdecls): Remove.
347 * flow.c (find_basic_blocks): Don't run try_merge_blocks
348 when not optimizing.
349 (life_analysis): Limit data collection when not optimizing.
350 (mark_regs_live_at_end): Always mark the return value registers.
351 (mark_used_regs): Remove dummy RETURN case.
352 (print_rtl_with_bb): Don't consult obey_regdecls.
353 * function.c (use_variable, use_variable_after): Remove.
354 (assign_parms): Consult optimize not obey_regdecls.
355 (expand_function_start): Don't emit USEs for stupid.
356 (expand_function_end): Likewise.
357 * global.c (build_insn_chain): Export.
358 * integrate.c (expand_inline_function): Kill return-value USE
359 handling code.
360 * jump.c (jump_optimize_1): Do simple jump optimizations and
361 dead code elimination.
362 (calculate_can_reach_end): Remove check_deleted argument.
363 (delete_insn): Patch out insns even when not optimizing.
364 * local-alloc.c (block_alloc): Don't do tying when not optimizing.
365 * rtl.h (use_variable, use_variable_after): Remove declarations.
366 (build_insn_chain): Declare.
367 * stmt.c (expand_value_return): Don't emit USEs for stupid.
368 (expand_end_bindings): Likewise.
369 (expand_decl): Likewise. Consult optimize not obey_regdecls.
370 * toplev.c (obey_regdecls): Remove.
371 (rest_of_compilation): Don't set it. Kill stupid in favour of
372 flow1, local-alloc, and reload.
373 (main): Don't set obey_regdecls.
374
375 * config/nextstep.c (handle_pragma): Likewise.
376
377 * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
378
379 * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
380
f6da8bc3
KG
3812000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
382
383 * alpha-protos.h: PROTO -> PARAMS.
384 * alpha.c: Likewise.
385 * elf.h: Likewise.
386 * h8300.c: Likewise.
387 * i386-protos.h: Likewise.
388 * i386.c: Likewise.
389 * m32r-protos.h: Likewise.
390 * m32r.c: Likewise.
391 * mips.c: Likewise.
392 * mips.md: Likewise.
393 * gmon-sol2.c: Likewise.
394 * sparc.c: Likewise.
395
fabf04b6
KG
3962000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
397
398 * ns32k-protos.h: New file.
399
400 * ns32k.c: Fix compile time warnings.
401
402 * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time
403 warnings.
404
405 * ns32k.md: Likewise.
406
2fd58acb
KG
4072000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
408
409 * vax-protos.h: New file.
410
411 * vax.c: Fix compile time warnings.
412
413 * vax.h: Move prototypes to vax-protos.h. Fix compile time
414 warnings.
415
416 * vax.md: Likewise.
417
418 * vaxv.md: Likewise.
419
13d516d9
KG
4202000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
421
422 * romp-protos.h: New file.
423
424 * romp.c: Fix compile time warnings.
425
426 * romp.h: Move prototypes to romp-protos.h. Fix compile time
427 warnings.
428
429 * romp.md: Likewise.
430
253f1045
KG
4312000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
432
433 * we32k-protos.h: New file.
434
435 * we32k.c: Fix compile time warnings.
436
437 * we32k.h: Move prototypes to we32k-protos.h. Fix compile time
438 warnings.
439
962f1324
KG
4402000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
441
442 * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
443
444 * except.c (eh_regs): Likewise.
445
446 * final.c (output_operand): Likewise.
447
448 * fold-const.c (target_isinf, target_isnan): Likewise.
449
e2e52e1b
JH
450Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
451
17f24ff0
JH
452 * i386.h (BIGGEST_ALIGNMENT): Set to 128.
453 (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
454
e2e52e1b
JH
455 * i386.md (memstr): Do not use rep stosb for counts divisible by 4
456 when optimize_size.
457 (clrstrsi): Rewrite.
458 (strsethi, strsetqi): New expanders.
459 (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
460 (cmpstrsi): Emit compare insn before cmpstrsi_1
461 (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
462 (strlensi_1): Likewise.
463 (cmpstrsi_1): Likewise; do not output compare.
464 (strlen expander): Do not unroll when optimizing for size.
465 (*subsi3_carry): Rename to subsi3_carry
466 (addqi3_cc): New pattern.
467 * i386.h (processor_costs): Add move_ratio field.
468 (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
469 * i386.c (*_cost): Set move_ratio.
470 (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
471 (x86_expand_strlensi_1): Rewrite the main loop.
472
12530dbe
RH
4732000-01-17 Richard Henderson <rth@cygnus.com>
474
475 * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
476 * cse.c (find_comparison_args, fold_rtx): Likewise.
477 * integrate.c (subst_constants): Likewise.
478 * loop.c (get_condition): Likewise.
479
480 * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
481
482 * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
483
101e59f4
ML
484