]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
Bob Manson <manson@charmed.cygnus.com>
[gcc.git] / gcc / ChangeLog
CommitLineData
ca545bb5
BM
1Fri Jan 29 21:00:56 1999 Bob Manson <manson@charmed.cygnus.com>
2
3 * resource.c, resource.h: New files.
4
5 * haifa-sched.c (regno_use_in): Moved to rtlanal.c.
6 (split_block_insns): Moved to recog.c.
7 (update_flow_info): Make public.
8
9 * reorg.c: Moved the functions dealing with computing resource
10 usage to resource.c.
11
12 * sched.c (regno_use_in): Moved to rtlanal.c.
13 (update_flow_info): Make public.
14 (schedule_insns): Use split_block_insns.
15
16 * recog.c (split_block_insns): New function.
17
ee0d2cf3
DE
18Tue Feb 2 22:03:26 1999 David Edelsohn <edelsohn@mhpcc.edu>
19
20 * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused.
21 (LINK_OS_DEFAULT_SPEC): Delete, unused.
22
cbca921c
CM
23Tue Feb 2 20:29:34 1999 Catherine Moore <clm@cygnus.com>
24
25 * configure.in (arm-*-oabi): Support.
26 * configure: Regenerate.
27 * config/arm/unknown-elf-oabi.h: New file.
28
c4e3884d
JL
29Tue Feb 2 19:43:59 1999 Jeffrey A Law (law@cygnus.com)
30
47f59fd4
JL
31 * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern.
32 Make the anonymous pattern match when ! optimize_size.
33 (ashlsi3 size optimizer): New pattern.
34
c4e3884d
JL
35 * intl/Makefile.in (uninstall): Add missing "; \".
36
809934df
SC
37Tue Feb 2 18:21:23 1999 Stan Cox <scox@cygnus.com>
38
ee0d2cf3
DE
39 * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x
40 synonym.
809934df 41
e318cec0
R
42Tue Feb 2 20:24:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
43
44 * loop.c (loop_optimize): Fix value max_uid_for_loop is reset
45 to after find_and_verify_loops call.
46
7221f080
R
47Tue Feb 2 19:48:29 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
48
49 * (recombine_givs): Don't use a giv that's likely to be dead to
50 derive others.
51
52 * loop.c (recombine_givs): Fix test for lifetime overlaps / loop
53 wrap around when deriving givs.
54
1afbe1c4
RH
55Mon Feb 1 20:00:40 1999 Richard Henderson <rth@cygnus.com>
56
57 * recog.c (check_asm_operands): Treat indeterminate operand ok
58 results as success. Try harder to resolve a matching constraint.
59 * stmt.c (expand_asm_operands): Recognize when an output operand's
60 constraint does not allow memory. Treat indeterminate operand ok
61 results as failure. Try harder to resolve a matching constraint.
62
c68da89c
KR
63Mon Feb 1 15:00:02 1999 Ken Raeburn <raeburn@cygnus.com>
64
65 Use varrays for constant-equivalence data:
66
67 * varray.h (struct const_equiv_data): New type.
68 (union varray_data_tag): New element const_equiv.
69 (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
70 (VARRAY_SIZE): New macro, returns number of elements.
71 * integrate.h: Include varray.h.
72 (struct inline_remap): Replace const_equiv_map, const_age_map and
73 const_equiv_map_size with a const_equiv_varray element.
74 (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if
75 needed.
76 (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields
77 simultaneously, growing the varray if needed.
78
79 * integrate.c (global_const_equiv_map,
80 global_const_equiv_map_size): Deleted, replaced by....
81 (global_const_equiv_varray): New variable.
82 (expand_inline_function): References changed.
83 * integrate.h: Update declarations.
84
85 * integrate.c (process_reg_parm, expand_inline_function,
86 copy_rtx_and_substitute, try_constants, subst_constants,
87 mark_stores): Use varray allocation and accessor macros, new
88 integrate.h macros, and global_const_equiv_varray. Don't
89 conditionalize non-NULL stores on array size; instead, expand the
90 array as needed.
91 * unroll.c (unroll_loop): Likewise.
92
93 * unroll.c (unroll_loop): Initialize const_equiv_varray element to
94 zero. After allocating varray, always exit through bottom of
95 function, where it can be deallocated if needed. Don't explicitly
96 reallocate const_equiv_map storage; instead, just ensure the
97 varray has been initialized, and update the global reference.
98
ab7c205e
KG
99Mon Feb 1 09:40:25 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
100
101 * system.h (inline, const): Handle these for stage2 (and later) gcc.
102
103 * dwarf2out.c (inline): Don't define.
104
105 * dwarfout.c (inline): Likewise.
106
516e5fa6
RH
107Sun Jan 31 22:04:37 1999 Richard Henderson <rth@cygnus.com>
108
109 * loop.c (recombine_givs): Dump recombination and derivation data.
110
f64d8234
ZW
111Sun Jan 31 20:34:29 1999 Zack Weinberg <zack@rabi.columbia.edu>
112
113 * flags.h: Declare flag_no_ident.
114 * toplev.c: Define flag_no_ident. Process -f(no-)ident here.
115 * c-tree.h: Don't declare flag_no_ident.
116 * c-decl.c: Don't define flag_no_ident. Don't process
117 -f(no-)ident switches here.
118
119 * config/elfos.h (ASM_FILE_END): Output final .ident directive
120 only if !flag_no_ident.
121 * config/ptx4.h: Likewise.
122 * config/svr4.h: Likewise.
123 * config/alpha/elf.h: Likewise.
124 * config/arm/linux-elf.h: Likewise.
125 * config/i386/sco5.h: Likewise.
126 * config/i860/fx2800.h: Likewise.
127 * config/mips/gnu.h: Likewise.
128 * config/i386/osfrose.h: Likewise.
129
130 * gcc.c (C specs): Map -Qn to -fno-ident.
131 * objc/lang-specs.h: Likewise.
132
81814e35
MH
133Mon Feb 1 10:52:07 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
134
135 * configure.in: Don't remove loop.o and unroll.o when
136 enable-haifa is selected.
137 * configure: Rebuilt.
138
3aeae608
JW
139Sun Jan 31 13:22:02 1999 John Wehle (john@feith.com)
140
141 * i386.md (movsicc, movhicc, movsfcc, movdfcc,
142 movxfcc, movdicc): Delete unconstrained alternatives.
143 * i386.c (output_fp_conditional_move,
144 output_int_conditional_move): Delete unused case.
145
4d7c4246
JL
146Sun Jan 31 01:15:04 PST 1999 Jeff Law (law@cygnus.com)
147
148 * version.c: Bump for snapshot.
149
6ce652e0
RH
150Sun Jan 31 00:52:37 1999 Richard Henderson <rth@cygnus.com>
151
152 * alpha.md (mov patterns): Emit the assembler aliases mov and fmov
153 instead of bis and cpys. Combine alternatives where possible.
154
644f3d7e
KG
155Sat Jan 30 23:14:13 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
156
157 * gcov.c (fnotice): Add missing FILE* parameter.
158 (function_summary): Fix format specifiers in calls to `fnotice'.
159 (output_data): Likewise.
160
161 * toplev.c (fnotice): Constify char* parameter.
162
163 * toplev.h (fnotice): Add prototype.
fa6ac85e
KG
164 Wrap prototype with BUFSIZ to protect FILE* usage.
165
9acfe55c
MH
166Sun Jan 31 15:33:09 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
167
168 * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs.
169
9eab30bc
JL
170Sat Jan 30 08:27:23 1999 Jeffrey A Law (law@cygnus.com)
171
4b7c585f
JL
172 * combine.c (distribute_notes): Handle REG_EH_REGION notes.
173
2c72b78f
JL
174 * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to
175 function definition.
176 (aliases_everything_p, write_dependence_p):Likewise.
177
3ad13ada
JL
178 * install.texi: Fix merge lossages.
179
d9b53430
JL
180 * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES
181 is defined.
182 * collect2.c (main): Likewise.
183 * cppmain.c (main): Likewise.
184 * gcc.c (main): Likewise.
185 * gcov.c (main): Likewise.
186 * protoize.c (main): Likewise.
187 * toplev.c (main): Likewise.
188
5989c468
JL
189 * pa.md (parallel shift and shiftadd): Mark output of shift as an
190 earlyclobber.
191
9eab30bc
JL
192 * loop.c: Disable recent loop changes. Temporary as Joern
193 continues to fix problems.
194
97ec0ad8
R
195Sat Jan 30 03:24:37 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
196
197 * loop.c (strength_reduce): Size reg_map according to reg_iv_type.
198
89e99eea
DB
199Fri Jan 29 18:26:07 1999 Dave Brolley <brolley@cygnus.com>
200
201 * emit-rtl.c (remove_insn): New function.
202 * rtl.h (remove_insn): Add prototype.
203 * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn.
204
5310566c
R
205Fri Jan 29 22:34:41 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
206
207 * loop.c (recombine_givs): Don't try to derive givs that have combined.
208
96df87b8
KG
209Fri Jan 29 15:00:39 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
210
211 * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__,
212 when declaring arguments and calling va_arg() to initialize them.
213
214 * collect2.c (notice): Likewise.
215
216 * loop.c (find_life_end): Use PROTO() macro in the prototype.
217
1c5d09e4
KG
218Fri Jan 29 14:36:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
219
220 * collect2.c (error): Fix typo in declaration.
221
222 * cpperror.c (cpp_message): Likewise.
223
224 * cpplib.c (cpp_warning): Likewise.
225
226 * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add
227 ATTRIBUTE_PRINTF_1.
228
229 * toplev.c (error): Fix typo in declaration.
230
22b4cc65
R
231Fri Jan 29 15:44:13 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
232
233 * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning
234 forward from cont dominator.
235
aa1b0f8c
KG
236Fri Jan 29 07:10:27 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
237
238 * cccp.c (eprint_string): Constify a char*.
239 (notice): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
240 (vnotice): Constify a char*.
241 (error): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
242 (verror): Constify a char*.
243 (warning): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
244 (vwarning): Constify a char*.
245 (error_with_line): Likewise. Use PVPROTO not VPROTO, add
246 ATTRIBUTE_PRINTF_2.
247 (verror_with_line): Constify a char*.
248 (vwarning_with_line): Likewise.
249 (warning_with_line): Likewise. Use PVPROTO not VPROTO, add
250 ATTRIBUTE_PRINTF_2.
251 (pedwarn): Constify a char*. Use PVPROTO not VPROTO, add
252 ATTRIBUTE_PRINTF_1.
253 (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2.
254 (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4.
255 Also correct typo in parameter name declaration.
256 (make_assertion): Constify a char*.
257 (quote_string_for_make): Likewise.
258 (deps_output): Likewise.
259 (fatal): Likewise. Use PVPROTO not VPROTO, add
260 ATTRIBUTE_PRINTF_1. Use ATTRIBUTE_NORETURN not an explicit
261 "__attribute__ ((noreturn))".
262 (fancy_abort): Likewise for ATTRIBUTE_NORETURN.
263 (pfatal_with_name): Likewise.
264 (pipe_closed): Likewise.
265 (memory_full): Likewise.
266
f56246be
R
267Fri Jan 29 00:14:55 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
268
269 * loop.c (strength_reduce): Grow set_in_loop / n_times_set /
270 may_not_optimize to proper size when converting biv increments
271 into givs.
272 If necessary, reallocate reg_iv_type / reg_iv_info before calling
273 recombine_givs.
274
53dc05e4
R
275Thu Jan 28 23:24:08 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
276
277 * loop.c (recombine_givs): New parameter unroll_p. If set, don't
278 generate complex adds. Changed caller.
279 Don't generate adds that cost more than the original one.
280 (strength_reduce): Warning fixes.
281
661c7909
JL
282Thu Jan 28 09:41:11 1999 Jeffrey A Law (law@cygnus.com)
283
284 * configure.in (hppa1.0-hp-hpux10*): Use t-pa.
285 * configure: Rebuilt.
286
3ec2b590
R
287Wed Jan 27 23:39:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
288
289 * rtl.h (insn_first_p): Declare.
290 * rtlanal.c (insn_first_p): New function.
291 * loop.h (varray.h): Include.
292 (struct induction): Change combined_with to unsigned.
293 New members derived, ix and last_use.
294 (reg_iv_type, reg_iv_info): Now varray_type. All references changed.
295 (REG_IV_TYPE, REG_IV_INFO): Define.
296 (first_increment_giv, last_increment_giv): Declare.
297 * loop.c (loop_number_loop_cont): New static variable.
298 (loop_number_cont_dominator): Likewise.
299 (reg_iv_type, reg_iv_info): Now varray_type.
300 (first_increment_giv, last_increment_giv): New variables.
301 (compute_luids, verify_dominator, find_life_end): New functions.
302 (cmp_recombine_givs_stats, recombine_givs): Likewise.
303 (loop_optimize): Allocate loop_number_loop_cont and
304 loop_number_cont_dominator. Use compute_luids.
305 (find_and_verify_loops): Initialize loop_number_loop_cont and
306 loop_number_cont_dominator.
307 (strength_reduce): Try to find bivs that can be expressed as givs
308 of another biv, and to convert biv increments into givs.
309 Call recombine_givs. Handle derived givs.
310 (record_biv): New argument location. All callers changed.
311 (record_giv): Initialize derived and last_use fields.
312 (basic_induction_var): New argument location. All callers changed.
313 (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv.
314 Increment combined_with instead of setting to 1.
315 * unroll.c (derived_regs): New static variable.
316 (unroll_loop): Initialize it.
317 Allocate local_regno according to max_reg_num.
318 (copy_loop_body): Cope with derived givs.
319 (find_splittable_givs): Check for Givs made from biv increments.
320 Set derived_regs for givs.
321 * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h .
322
d91dfff4
R
323Wed Jan 27 19:31:36 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
324
325 * function.c (purge_addressof_1): Handle case when a register
326 has been used in a wider mode.
327
d5a06ad9
DB
328Wed Jan 27 11:58:18 1999 Dave Brolley <brolley@cygnus.com>
329
330 * cpplib.h (cpp_notice): Add prototype.
331
ab87f8c8
JL
332Wed Jan 27 02:20:48 1999 Jeffrey A Law (law@cygnus.com)
333
334 * Merge gcc2 snapshot 19980929.
335
336 * cccp.c (PRINTF_PROTO): Remove.
337 (PRINTF_PROTO_{1,2,3,4}: Likewise.
338 * cexp.y: Likewise.
339 * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}.
340
341 * fix-header.c (cpp_file_lin_for_message): Delete. In libcpp.
342 (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise.
343 (cpp_fatal, cpp-Pfatal_with_name): Likewise.
344
345 * gen-protos.c (hashf): Delete in cpphash.o
346 * gen-protos.c (hashf): Delete in cpphash.o
347
348 * expr.c: Do not merge SAVE_STACKAREA_MODE changes.
349 * expmed.c: Likewise.
350 * rs6000.md: Likewise.
351
352 * rs6000.c, rs6000.md: Do not merge formatting changes yet.
353
01b4cf2b
RH
354Wed Jan 27 01:13:42 1999 Richard Henderson <rth@cygnus.com>
355
356 * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX.
357 * rs6000.md (movsi, movdi): Likewise.
358
ea0f9a85
JW
359Tue Jan 26 13:31:38 1999 Jim Wilson <wilson@cygnus.com>
360
361 * function.c (expand_function_end): Pass arg_pointer_save_area to
362 validize_mem before using it. Emit code into a sequence.
363
aa9bc2fc
DE
364Tue Jan 26 13:41:38 1999 David Edelsohn <edelsohn@mhpcc.edu>
365
366 * rs6000.md (doz + set cr and or + set cr patterns): Add missing
367 '#' to split patterns. Correct indentation of some new patterns.
368
554fbeef
ZW
3691999-01-26 12:11 -0500 Zack Weinberg <zack@midnite.ec.rhno.columbia.edu>
370
371 * cppfiles.c (safe_read): Deleted.
372 (read_and_prescan): New function, replaces safe_read, converts
373 and/or warns about trigraphs, silently converts odd line
374 terminators (\r, \n\r, \r\n). Warns about no newline at EOF.
375 (finclude): Use read_and_prescan; turn off nonblocking mode on
376 the input descriptor; remove file-size-examination and
377 no-newline-at-EOF gunk which is longer necessary; be more
378 careful about checking that we've been handed a legitimate
379 file to read (only real files, pipes, and ttys are acceptable).
380 * cpplib.h (cpp_options): Rename no_trigraphs flag to
381 `trigraphs' and invert its sense.
382 (trigraph_table): Declare.
383 (cpp_warning_with_line): Prototype.
384 * cpplib.c: Remove all references to trigraph_pcp. Define
385 trigraph_table; initialize it in initialize_char_syntax. Open
386 files in nonblocking mode. s/no_trigraphs/trigraphs/
387 throughout, and invert sense. Put cpp_warning_with_line back
388 in and export it.
389
4a6330ac
MH
390Tue Jan 26 23:21:49 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
391
392 * config/c4x/c4x.h (COUNTER_REGS): New register class.
393 * config/c4x/c4x.md (*rptb_init): Change constraints.
394 (rptb_end): Emit alternate looping instructions if
395 RC register not allocated for loop counter.
396 (decrement_and_branch_on_count): Allow other registers
397 for loop counter.
398
f13eb63a
ZW
3991999-01-25 14:26 -0500 Zack Weinberg <zack@rabi.columbia.edu>
400
aa9bc2fc
DE
401 * cppexp.c (struct arglist): Removed.
402 (parse_number): Use HOST_WIDE_INT for the accumulator.
403 Allow two `l' suffixes unless C89. Clean up. Make static.
404 (parse_charconst): New function broken out of cpp_lex.
405 Code cleaned up drastically. Don't use a token_buffer.
406 (token_buffer): Removed.
407 (cpp_lex): Don't call parse_number on a constant string.
408 Use parse_charconst.
409 (cpp_parse_expr): Properly handle an ERROR op returned by
410 cpp_lex.
f13eb63a 411
20dc7361
ZW
4121999-01-25 14:10 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
413
414 * cpplib.c: Don't include signal.h, sys/times.h, or
415 sys/resource.h. Don't declare localtime.
416 (macroexpand): Handle special symbols here.
417 (push_macro_expansion): Chop off the trailing '@ ' if possible
418 here.
419 (cpp_get_token): Don't do either of the above two things here.
420 Move `string' label just after case '"' so that wide strings
421 don't crash the preprocessor.
422
75d39459
DE
423Sun Jan 24 20:13:45 1999 David Edelsohn <edelsohn@mhpcc.edu>
424
425 * rs6000.md (left shift + set cr patterns): Add missing '#' to
426 split patterns.
427 (move register + set cr pattern): Ditto.
4e1efdd3
MM
428 (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch,
429 inadvertently deleted.
75d39459 430
09554da9
JL
431Sun Jan 24 08:07:59 1999 Jeffrey A Law (law@cygnus.com)
432
75d39459
DE
433 * stmt.c (stmt_loop_nest_empty): New function.
434 * tree.h (stmt_loop_nest_empty): Declare it.
09554da9
JL
435 * rtl.def (CALL_PLACEHOLDER): New rtx code.
436
50c33087
MH
437Sun Jan 24 21:24:43 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
438
439 * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
440 New functions.
441 (c4x_check_legit_addr): Remove USE and PLUS, allow
442 LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
443 (c4x_legitimize_address): Penalise SYMBOL_REF, LABEL_REF, and
444 CONST cases. Add LO_SUM.
445 (c4x_print_operand): Modified 'C' and 'R' cases for calls.
446 Added 'U' case. Remove dependence on SYMBOL_REF_FLAG.
447 (c4x_print_operand_address): Handle LO_SUM.
448 (c4x_scan_for_ldp): Delete. Hooray!
449 (c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
450 Split all insns.
451 (c4x_immed_int_constant): Renamed from c4x_int_constant. All callers
452 changed.
453 (c4x_immed_float_constant): Renamed from c4x_float_constant. All
454 callers changed.
455 (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF,
456 and CONST.
457 (c4x_U_constraint, symbolic_operand): New functions.
458 (src_operand): Allow 'I' constants in HImode. Allow LO_SUM,
459 disable SYMBOL_REF, LABEL_REF, and CONST.
460 (lsrc_operand, tsrc_operand): Call src_operand instead of
461 general_operand.
462 (c4x_operand_subword): Update comments.
463
464 * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
465 (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
466 plus HIGH and LO_SUM for the C40.
467 (ENCODE_SECTION_INFO): Define macro.
468 (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
469 prototypes.
470 (PREDICATE_CODES): Add symbolic_operand.
471
472 * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
473 c4x_emit_move_sequence.
474 (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
475 to avoid symbol references.
476 (all patterns with g constraint): Replace 'g' constraint with 'rIm'.
477 (set_high): Renamed from set_high_use.
478 (set_lo_sum): Renamed from set_ior_lo_use.
479 (all call patterns): Make MEM explicit in call address operands.
480 Modified output templates to use 'U' modifier.
481
4c1d5c87
JL
482Sun Jan 24 01:15:05 PST 1999 Jeff Law (law@cygnus.com)
483
484 * version.c: Bump for snapshot.
485
9b3142b3
KG
486Sat Jan 23 22:34:57 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
487
488 * final.c (bb_str): Qualify a char* with the keyword `const'.
489 (add_bb_string, final_scan_insn, output_asm_insn): Likewise.
490
491 * fix-header.c (read_scan_file): Likewise.
492
493 * genoutput.c (output_epilogue, process_template): Likewise.
494
495 * local-alloc.c (requires_inout, block_alloc): Likewise.
496
497 * output.h (output_asm_insn, assemble_string): Likewise.
498
499 * recog.c (recog_constraints, check_asm_operands,
500 decode_asm_operands, extract_insn, preprocess_constraints,
501 constrain_operands): Likewise.
502
503 * recog.h (operand_alternative, recog_constraints, insn_template,
504 insn_outfun, insn_operand_constraint, insn_name): Likewise.
505
506 * regclass.c (record_reg_classes, scan_one_insn): Likewise.
507
508 * regmove.c (find_matches): Likewise.
509
510 * reload.c (alternative_allows_memconst): Likewise.
511
512 * reload1.c (constraint_accepts_reg_p,
513 reload_cse_simplify_operands): Likewise.
514
515 * rtl.h (decode_asm_operands): Likewise.
516
517 * scan.h (fn_decl): Likewise.
518
519 * varasm.c (assemble_string): Likewise.
520
82cbf8f7
JL
521Sat Jan 23 01:37:36 1999 Jeffrey A Law (law@cygnus.com)
522
5949a9fc
JL
523 * configure.in (gcc_tooldir): Handle case where exec_prefix has
524 not been explicitly set.
525 * configure: Rebuilt.
526
ac4d524d
JL
527 * fold-const.c (lshift_double): Mark 'prec' arguments as possibly
528 unused.
529
83fb95ed
JL
530 * bitmap.h (bitmap_head_def): Make indx field unsigned.
531
82cbf8f7
JL
532 * configure.in (gcc_tooldir): When not making a relative gcc_tooldir,
533 use $exec_prefix/$target_alias for gcc_tooldir.
5949a9fc 534 * configure: Rebuilt.
82cbf8f7 535
09d83d25
RH
536Fri Jan 22 11:48:56 1999 Richard Henderson <rth@cygnus.com>
537
538 * cppp.c (xrealloc): Fix typo last change.
539 * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise.
540 * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise.
541 * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
542
815cdc52
MM
5431999-01-22 Michael Meissner <meissner@cygnus.com>
544
545 * rs6000.h (CR0_REGNO_P): New macro to test if cr0.
546 (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0.
547 (PREDICATE_CODES): Add cc_reg_not_cr0_operand.
548 (cc_reg_not_cr0_operand): Add declaration.
549
550 * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a
551 pseudo register, or a control register that is not CR0.
552
553 * rs6000.md (all combiner patterns building . instructions): For
554 all `.' instructions that do something and set cr0, add an
555 alternative that does the operation, and then sets a different
556 flag, in order to avoid using the costly mcrf instruction and also
557 allow cr0 to be clobbered in asm statements. Also fix a few
558 patterns that used the wrong register.
559
560 * rs6000.h (rs6000_cpu_select): Make string, names be const char *.
561 (rs6000_debug_name): Make const char *, not char *.
562
563 * sysv4.h (rs6000_{abi,sdata}_name): Make const char *.
564
565 * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *.
566 (rs6000_select): Use const char * in casts.
567
91c7bd9b 568Fri Jan 22 07:43:01 1999 Jeffrey A Law (law@cygnus.com)
d062c304
JL
569
570 * Makefile.in (gcc_tooldir): Move before first reference.
571 Let autoconf substitute in a value.
572 * configure.in (gcc_tooldir): Only use a relative path to the
573 tool directory if $exec_prefix == $prefix.
574 * configure: Rebuilt.
91c7bd9b
JL
575
576 * Makefile.in (tooldir): Replace with gcc_tooldir.
577
c2ad275a
JL
578Thu Jan 21 23:21:57 1999 Jeffrey A Law (law@cygnus.com)
579
580 * m68k.md (ashldi_const): Disable for !TARGET_5200. Fix indention.
581 (ashldi3 expander): Similarly. Update comments.
582 (ashrdi_const, lshrdi_const): Fix indention.
583 (ashrdi3, lshrdi3): FIx indention. Update comments.
584
23886015
RH
585Thu Jan 21 21:53:36 1999 Richard Henderson <rth@cygnus.com>
586
587 * emit-rtl.c (try_split): Don't try to split non-instructions.
588
15914757
AM
589Thu Jan 21 23:47:30 EST 1999 Andrew MacLeod <amacleod@cygnus.com>
590
591 * expr.c (emit_push_insn): Fix dumb typo.
592
c8ab9901
RH
593Thu Jan 21 20:24:02 1999 Richard Henderson <rth@cygnus.com>
594
595 * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
596 transformations that we have performed earlier.
597 * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
598
599 * alpha.md (prologue_stack_probe_loop): Don't do our own label
600 handling, call gen_label_rtx instead.
601
470b68c0
RH
602Thu Jan 21 17:45:18 1999 Richard Henderson <rth@cygnus.com>
603
604 * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'.
605
606 * cccp.c (xrealloc): Call malloc given a NULL old pointer.
607 * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise.
608 * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
609 * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise.
610 * genrecog.c, mips-tfile.c, protoize.c: Likewise.
611
20fced2c
MM
612Thu Jan 21 19:44:55 1999 Michael Meissner <meissner@cygnus.com>
613
614 * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If
615 --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress
616 adding -Wl,-bbigtoc to BOOT_LDFLAGS.
617 * configure: Regenerate.
618
619 * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS.
620
939b4a73
DB
621Thu Jan 21 15:48:03 1999 Dave Brolley <brolley@cygnus.com>
622
623 * cppexp.c (cpp_lex): Allocate token_buffer dynamically.
624
fbe1758d
AM
625Thu Jan 21 14:18:04 EST 1999 Andrew MacLeod <amacleod@cygnus.com>
626
627 * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
628 move_by_pieces.
629 (MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
630 (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
631 (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
632 (move_by_pieces): Use new macros.
633 (emit_block_move): Use new macros.
634 (clear_by_pieces): Use new macros.
635 (clear_storage): Use new macros.
636 (emit_push_insn): Use new macros.
637 (expand_expr): Use new macros.
638 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT):
639 Define.
640 (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
641 (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
642 (MOVE_MAX_PIECES): move 8 bytes on SH4.
643 * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
644 USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT,
645 USE_STORE_PRE_DECREMENT): Describe new macros.
646
0003feb2
VM
647Thu Jan 21 14:13:31 1999 Vladimir N. Makarov <vmakarov@cygnus.com>
648
649 * varasm.c (output_constant_pool): Use floor_log2 instead of
650 exact_log2 for ASM_OUTPUT_ALIGN.
651
652 * stor-layout.c (layout_type): Do machine-dependent extra alignment.
653
654 * emit-rtl.c (operand_subword): Handle case when a subword outside
655 the operand.
656
657 * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
658 the macros.
659
ee5332b8
RH
660Thu Jan 21 01:59:30 1999 Richard Henderson <rth@cygnus.com>
661
662 * cse.c (fold_rtx): Revert 29 Dec change.
663 (cse_insn): Revert 12 Jan change.
664 * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX.
665 * regclass.c (reg_scan_mark_refs): Revert 29 Dec change.
666 * rtl.def: Likewise.
667 * rtl.h (CONSTANT_P): Likewise.
668
669 * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX
670 to memory.
671 * recog.c (immediate_operand): Accept CONSTANT_P_RTX.
672 * alpha.c (input_operand): Likewise.
673 * c4x.c (const_operand): Likewise.
674
675 * explow.c (allocate_dynamic_stack_space): Use register_operand
676 instead of arith_operand, which does not exist.
677
678 * 1750a.h: Fix comment closure.
679 * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change.
680 * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch.
681 * arm.h (TARGET_SWITCHES): Fix typo.
682 * i370.md (anon mult and div patterns): Fix set mode mismatch.
683 * i860.c (output_delayed_branch): Fix operands to constrain_operands.
684 (output_delay_insn): Likewise.
685 * m88k.md (anon rotate insns): Fix set mode mismatch.
686 (anon BLKmode moves): Commonize and fix set mode mismatches.
687 * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch.
688 * romp.md (movdf): Fix typo.
689
f1cc886f
NS
690Thu Jan 21 00:29:35 1999 Nathan Sidwell <nathan@acm.org>
691
692 * Makefile.in (install-common): Remove extraneous chmod for gcov
693 install.
694
efd8cba0
DB
695Wed Jan 20 18:15:08 1999 Dave Brolley <brolley@cygnus.com>
696
697 * function.c (assign_parms): Save and restore setting of
698 TREE_USED (parm).
699
876d1fa3
MM
700Wed Jan 20 12:51:42 1999 Mark Mitchell <mark@markmitchell.com>
701
702 * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
703 Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
704
d804ed43
RH
705Tue Jan 19 21:20:52 1999 Richard Henderson <rth@cygnus.com>
706
6fbe9bd8
RH
707 * recog.c (pop_operand): New function.
708 * recog.h (pop_operand): Declare it.
709 * genrecog.c (preds): Define it.
710
d804ed43
RH
711 * expr.c (do_jump_for_compare): Handle conditional branch expanders
712 emitting multiple jump instructions.
713 * jump.c (condjump_label): New function.
714 * rtl.h (condjump_label): Declare it.
715
c14c6529
RH
716Tue Jan 19 21:08:20 1999 Richard Henderson <rth@cygnus.com>
717
718 * expr.c (emit_move_insn_1): Revert 17 Dec change. Don't emit
719 clobber during or after reload.
720
8aeba909
RH
721Tue Jan 19 16:56:03 1999 Richard Henderson <rth@cygnus.com>
722
723 * genoutput.c (name_for_index): New function.
724 (scan_operands, validate_insn_alternatives): Use it.
725 * genrecog.c (insn_name_ptr_size): New variable.
726 (make_insn_sequence): Fill in insn_name_ptr.
727 (merge_trees): Use it.
728
67e5db2c
RH
729Tue Jan 19 16:37:36 1999 Richard Henderson <rth@cygnus.com>
730
731 * i386/isc.h (TARGET_DEFAULT): Define symbolicly.
732 * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise.
733 * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise.
734
196fb9ff
JL
735Tue Jan 19 15:00:10 1999 Jeffrey A Law (law@cygnus.com)
736
d2551ee4
JL
737 * loop.c (NUM_STORES): Delete.
738 (loop_store_mems): Turn into an EXPR_LIST of MEMs.
739 (prescan_loop): Properly initialize loop_mems_idx.
740 (note_addr_stored): Simplify using list structure instead of
741 fixed sized array.
742 (invariant_p, check_dbra_loop, load_mems): Similarly.
743
15e088b2
JL
744 * flow.c (invalidate_from_autoinc): New function.
745 (mark_set_1, mark_used_regs): Use it.
746
196fb9ff
JL
747 * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile.
748
eaa4b44c
VM
7491999-01-19 Vladimir N. Makarov <vmakarov@cygnus.com>
750
751 * invoke.texi (-mlong-double-64): New option description.
752
7531999-01-19 Jim Wilson <wilson@cygnus.com>
754
755 * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
756 LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
757 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. Set to LONG_DOUBLE_TYPE_SIZE
758 if not defined.
759 * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
760 (CPP_SPECS): Add -mlong-double-64 support.
761 (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
762 (TARGET_SWITCHES): Add -mlong-double-64 support.
763 (LONG_DOUBLE_TYPE_SIZE): Likewise.
764 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
765 * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
766 (CPP_SPECS): Add -mlong-double-64 support.
767 * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
768 (MULTILIB_DIRNAMES): Add ld64.
769 * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
770
60409070
JM
771Tue Jan 19 11:54:04 1999 Jason Merrill <jason@yorick.cygnus.com>
772
773 * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by
774 invisible reference.
775
97f6e72f
DE
776Tue Jan 19 14:51:36 1999 David Edelsohn <edelsohn@mhpcc.edu>
777
778 * rs6000.c (offsettable_addr_operand): Delete.
779 (offsettable_mem_operand): New function.
780 * rs6000.h (PREDICATE_CODES): Reflect function change.
781 (RS6000_SAVE_TOC): Represent address as MEM.
782 * win-nt.h (RS6000_SAVE_TOC): Same.
783 * rs6000.md (indirect calls): Change offsettable address parameter
784 to offsettable memory parameter.
785
c6df88cb
MM
786Tue Jan 19 10:24:53 1999 Mark Mitchell <mark@markmitchell.com>
787
788 * rtl.h (rtx_def): Update documentation.
789 (MEM_IN_STRUCT_P): Likewise.
790 (MEM_SCALAR_P): New macro.
791 (MEM_COPY_ATTRIBUTES): Likewise.
792 (MEM_SET_IN_STRUCT_P): Likewise.
793 * rtl.texi (MEM_SCALAR_P): Document.
794 * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
795 (fixed_scalar_and_varying_struct_p): New function. Use
796 MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
797 (aliases_everything_p): Likewise.
798 (true_dependence): Use them.
799 (write_dependence_p): New function, containing code common to
800 anti_dependence and output_dependence.
801 (anti_dependence): Use it.
802 (output_dependence): Likewise.
803 * calls.c (save_fixed_argument_area): Don't clear
804 MEM_IN_STRUCT_P.
805 (expand_call): Use MEM_SET_IN_STRUCT_P.
806 (emit_library_call): Don't clear MEM_IN_STRUCT_P.
807 (emit_library_call_value): Likewise.
808 (store_one_arg): Use MEM_SET_IN_STRUCT_P.
809 * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
810 (make_extraction): Likewise.
811 (simplify_shift_const): Likewise.
812 (gen_lowpart_for_combine): Likewise.
813 * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
814 * emit-rtl.c (operand_subword): Likewise.
815 (change_address): Likewise.
816 * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
817 * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
818 (emit_group_store): Use MEM_SET_IN_STRUCT_P.
819 (copy_blkmode_from_reg): Likewise.
820 (store_field): Likewise.
821 (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
822 heuristically. Use MEM_SET_IN_STRUCT_P.
823 (get_memory_rtx): Likewise.
824 * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
825 * function.c (assign_stack_temp): Clear MEM_SCALAR_P and
826 MEM_ALIAS_SET on newly returned MEMs.
827 (assign_temp): Use MEM_SET_IN_STRUCT_P.
828 (put_reg_into_stack): Likewise.
829 (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
830 (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
831 (assign_parms): Likewise.
832 (expand_function): Likewise.
833 * integrate.c (expand_inline_function): Likewise.
834 (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
835 * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
836 * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
837 * print-rtl.c (print_rtx): Print /f for frame_related.
838 * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
839 * reload1.c (reload): Copy MEM_SCALAR_P as well.
840 * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
841 (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
842 * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
843 (output_constant_def): Likewise.
844 * a29k.c (a29k_set_memflags_1): Take scalar_p.
845 Set MEM_SCALAR_P.
846 (a29k_set_memflags): Use it.
847 * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
848 * c4x.c (c4x_scan_for_ld): Likewise.
849 * h8300.c (fix_bit_operand): Likewise.
850 * m88k.c (legitimize_address): Likewise.
851 (block_move_loop): Likewise.
852 (block_move_no_loop): Likewise.
853 (block_move_sequence): Likewise.
854 (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
855 * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
856 * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
857 * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
858 * arm.h (arm_gen_load_multiple): Take scalar_p.
859 (arm_store_load_multiple): Likewise.
860 * arm.c (arm_gen_load_multiple): Likewise.
861 (arm_gen_store_multiple): Likewise.
862 (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
863
b472794d
AM
864Tue Jan 19 12:30:37 EST 1999 Andrew MacLeod <amacleod@cygnus.com>
865
866 * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
867 calls within a libcall block to indicate no throws are possible.
868 * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for
869 libcall blocks. Don't add edges to exception handlers if we see
870 a REG_EH_REGION note with a value of 0.
871 (make_edges): Override active_eh_region vector if the call has a note
872 indicating the call does not throw.
873
35a6fc82
VM
8741999-01-19 Vladimir N. Makarov <vmakarov@cygnus.com>
875
876 * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}.
877
beb51090
JL
878Tue Jan 19 06:26:30 1999 Jeffrey A Law (law@cygnus.com)
879
880 * Makefile.in (cccp.o, cpplib.o): Depend on Makefile.
881
8c7707b0
JM
882Mon Jan 18 09:56:41 1999 Jason Merrill <jason@yorick.cygnus.com>
883
884 * invoke.texi (C++ Dialect Options): Document -fno-rtti.
885
bef84347
VM
8861999-01-18 Vladimir N. Makarov <vmakarov@cygnus.com>
887
888 * invoke.texi (-mcpu=740, -mcpu=750): New options.
889 (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
890 PPC750.
891
8921999-01-18 Michael Meissner <meissner@cygnus.com>
893
894 * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
895 supported with -mcpu=xxx.
896 (processor_type): Add PROCESSOR_PPC750.
897 (ADJUST_PRIORITY): Call rs6000_adjust_priority.
898 (RTX_COSTS): Supply costs for 750 multiply/divide operations.
899 (rs6000_adjust_priority): Add declaration.
900
901 * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the
902 processor type as 750, not 603. Allow -mmultiple and -mstring on
903 little endian 750 systems.
904 (rs6000_adjust_priority): Stub for now.
905 (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
906
907 * rs6000.md (function/cpu attributes): Add initial ppc750 support.
908
909 * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if
910 little endian.
911 (CC1_SPEC): Pass -mstrict-align if little endian, and not
912 overridden.
913 (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
914 (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
915
916 * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is
917 little endian.
918
919 * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs.
920
aa7ecb4a
GRK
921Mon Jan 18 12:03:08 1999 Gavin Romig-Koch <gavin@cygnus.com>
922
923 * config/mips/mips.md (div_trap): Split div_trap_mips16
924 from div_trap.
925 (div_trap_normal,div_trap_mips16): Correct the length attributes.
926
87e11268
KG
927Mon Jan 18 11:48:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
928
929 * cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
930 Instead of writing to const char *buf directly, use a non-const
931 variable `wbuf' to allocate and write a string, then set buf = wbuf.
932
933 * cppulp.c (user_label_prefix): Qualify a char* with the `const'
934 keyword.
935
936 * dyn-string.c (dyn_string_append): Likewise.
937
938 * dyn-string.h (dyn_string_append): Likewise.
939
940 * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise.
941
942 * output.h (end_final, output_operand_lossage, asm_fprintf,
943 named_section, decode_reg_name, make_decl_rtl, user_label_prefix):
944 Likewise.
945
946 * profile.c (init_branch_prob): Likewise.
947
948 * toplev.c (set_target_switch, vmessage,
949 v_message_with_file_and_line, v_message_with_decl,
950 v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
951 verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
952 v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
953 v_pedwarn_with_file_and_line, vsorry, v_really_sorry,
954 open_dump_file, dump_rtl, clean_dump_file,
955 print_version, print_single_switch, print_switch_values,
956 dump_base_name, debug_args, lang_independent_options,
957 user_label_prefix, documented_lang_options, target_switches,
958 target_options, print_time, pfatal_with_name, fatal_io_error,
959 fatal_insn, default_print_error_function, print_error_function,
960 report_error_function, error_with_file_and_line, error_with_decl,
961 error_for_asm, error, fatal, warning_with_file_and_line,
962 warning_with_decl, warning_for_asm, warning, pedwarn,
963 pedwarn_with_decl, pedwarn_with_file_and_line, sorry,
964 really_sorry, botch, output_quoted_string, output_file_directive,
965 open_dump_file, rest_of_decl_compilation, display_help, main):
966 Likewise.
967
968 * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name,
969 fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line,
970 warning_with_file_and_line, error_with_file_and_line, sorry,
971 really_sorry, default_print_error_function, report_error_function,
972 rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl,
973 error_with_decl, error_for_asm, warning_for_asm, output_quoted_string,
974 output_file_directive, botch): Likewise.
975
976 * tree.h (make_decl_rtl): Likewise.
977
978 * varasm.c (strip_reg_name, named_section, decode_reg_name,
979 make_decl_rtl): Likewise.
980
6b106e7d
GRK
981Mon Jan 18 11:35:49 1999 Gavin Romig-Koch <gavin@cygnus.com>
982
983 * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library
984 directory logically rather than physically.
985
47c3ed98
KG
986Mon Jan 18 09:05:37 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
987
988 * loop.c (insert_bct): Hide the definition of variables
989 `increment_direction', `compare_direction', `add_iteration' and
990 `loop_var_mode'.
991
992 * recog.c (mode_dependent_address_p): Mark parameter `addr' with
993 ATTRIBUTE_UNUSED. Mark label `win' with ATTRIBUTE_UNUSED_LABEL.
994 (mode_independent_operand): Mark label `lose' with
995 ATTRIBUTE_UNUSED_LABEL.
996
997 * regclass.c (n_occurrences): Remove prototype and definition.
998
999 * reload.c (find_reloads_address_1): Mark variable `tem' with
1000 ATTRIBUTE_UNUSED.
1001
1002 * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR.
1003
1004 * sbitmap.c (sbitmap_copy): Likewise.
1005
1006 * scan-decls.c (scan_decls): Hide label `handle_comma'.
1007
1008 * toplev.c (output_lang_identify): Mark prototype with
1009 ATTRIBUTE_UNUSED.
1010
1011 * tree.c (make_node): Cast the first argument of `bzero' to PTR.
1012 (make_tree_vec): Likewise.
1013 (build1): Likewise.
1014
1015 * varasm.c (assemble_static_space): Mark variable `tem' with
1016 ATTRIBUTE_UNUSED.
1017
23473647
NS
1018Mon Jan 18 04:28:36 1999 Nathan Sidwell <nathan@acm.org>
1019
1020 * Makefile.in (GCOV_INSTALL_NAME): New macro.
1021 (install-common): Use it.
1022 (uninstall): Use it.
1023 (uninstall): Use correct names for protoize and unprotoize.
1024
db3a887b
CB
1025Mon Jan 18 03:52:56 1999 Christian Bruel <Christian.Bruel@st.com>
1026 Jeffrey A Law (law@cygnus.com)
1027
1028 * flow.c (last_mem_set): Delete variable. References removed.
1029 (mem_set_list): New variable.
1030 (life_analysis): Initialize and finalize alias analysis.
1031 (propagate_block); Initialize mem_set_list. Clear for CALL_INSNs.
1032 (insn_dead_p): For a store to memory, search the entire mem_set_list
1033 for a match.
1034 (mark_set_1): Kill entries on the mem_set_list for aliased writes or
1035 changes to their addresses. Add new entries to the mem_set_list for
1036 memory writes writes.
1037 (mark_used_regs): Kill entries on the mem_set_list which may be
1038 referenced by a load operation.
1039
c9991385
JL
1040Mon Jan 18 01:01:02 1999 Jeffrey A Law (law@cygnus.com)
1041
1042 * alias.c (base_alias_check): Add missing return for differing
1043 symbols case.
1044
c4687d70
RO
1045Mon Jan 18 00:36:13 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1046
1047 * mips-tdump.c (print_file_desc): Handle unknown filenames and
1048 missing local symbols.
1049
bba596a3
RH
1050Sun Jan 17 21:04:31 1999 Richard Henderson <rth@cygnus.com>
1051
1052 * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL.
1053
b3c9dc1a
RH
1054 * system.h (bcopy): Implement with memmove not memcpy.
1055
89098dc1
JL
1056Sun Jan 17 19:23:20 1999 Jeffrey A Law (law@cygnus.com)
1057
c65ef754
JL
1058 * Makefile.in (cppulp.o): Add dependencies.
1059
f9670bce
JL
1060 * i386.md (integer conditional moves): Add missing earlyclobbers.
1061
89098dc1
JL
1062 * regmove.c (optimize_reg_copy_1): Undo Aug 18 change. Update
1063 REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change
1064 where a register is live.
1065
1066Sun Jan 17 03:20:47 1999 H.J. Lu (hjl@gnu.org)
1067
1068 * reg-stack.c (subst_stack_regs_pat): Abort if the destination
1069 of a FP conditional move is not on the FP register stack.
1070
82db59b7
JL
1071Sun Jan 17 01:15:04 PST 1999 Jeff Law (law@cygnus.com)
1072
1073 * version.c: Bump for snapshot.
1074
62e7b719
JL
1075Sat Jan 16 23:40:33 1999 Jeffrey A Law (law@cygnus.com)
1076
148e9d57
JL
1077 * reload1.c (reload_cse_regs_1): Do not call
1078 reload_cse_simplify_operands for an insn with asm operands.
1079
62e7b719
JL
1080 * cccp.c (print_help): Fix typos.
1081 * cpplib.c (print_help): Fix typos.
1082 * toplev.c (f_optiosn): Fix typos.
1083 (documented_lang_options): Fix typos.
1084
cbc54665
ME
1085Sat Jan 16 21:48:17 1999 Marc Espie (Marc.Espie@openbsd.org)
1086
1087 * gcc.c: (do_spec_1): Fix obvious typo.
1088
db838bb8
KG
1089Sat Jan 16 19:31:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1090
1091 * c-decl.c (duplicate_decls): If `warn_traditional', warn when
1092 a non-static function declaration follows a static one.
1093
1094 * invoke.texi (-Wtraditional): Document the extra check now done
1095 by this flag.
1096
4fbf29af
JL
1097Sat Jan 16 15:13:46 1999 Jeffrey A Law (law@cygnus.com)
1098
1099 * pa.md (shadd): Create shadd insns, even if the result of the shift is
1100 needed without the addition.
1101
19e1d311
R
1102Sat Jan 16 10:48:16 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
1103
1104 * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage.
1105
393049a9
RH
1106Fri Jan 15 23:44:37 1999 Richard Henderson <rth@cygnus.com>
1107
1108 * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries.
1109
19684119
DE
1110Fri Jan 15 22:30:04 1999 David Edelsohn <edelsohn@mhpcc.edu>
1111
1112 * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT.
1113 * rs6000.c (u_short_cint_operand, add_operand, logical_operand,
1114 non_add_cint_operand, non_logical_cint_operand): Likewise.
1115 (get_issue_rate): Add CPU_PPC604E case.
1116 * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts.
1117
1f06ee8d
RH
1118Fri Jan 15 18:42:12 1999 Richard Henderson <rth@cygnus.com>
1119
1120 * expr.c (queued_subexp_p): Make public.
1121 * expr.h (queued_subexp_p): Declare it.
1122 * recog.c (asm_operand_ok): New function.
1123 (check_asm_operands): Use it. After reload, use constrain_operands
1124 instead.
1125 * recog.h (asm_operand_ok): Declare it.
1126 * stmt.c (expand_asm_operands): Use it to try harder to make
1127 asms initially satisfy their constraints.
1128
1e75bc34
JL
1129Fri Jan 15 17:43:59 1999 Jeffrey A. Law <law@rtl.cygnus.com>
1130
1131 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create
1132 (mem (lo_sum (...)) for TFmode unless TARGET_V9.
1133
077613ba
MH
1134Sat Jan 16 12:47:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1135
1136 * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction
1137 in delay slot of RPTBD.
1138
1139Sat Jan 16 12:26:40 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1140
1141 * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long
1142 divide and modulo sign problem.
1143
9f16f932
MH
1144Fri Jan 15 11:02:31 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1145
1146 * unroll.c (loop_iterations): Return 0 if the last loop insn
1147 is not a jump insn or if the loop has multiple back edges.
1148
8c55f49c
JL
1149Thu Jan 14 22:38:41 1999 Jeffrey A Law (law@cygnus.com)
1150
f387b2e4
JL
1151 * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
1152 a register with another DEST_ADDR giv if the address is not valid.
1153
41b6ea68
JL
1154 * pa.c (hppa_expand_epilogue): Save and restore the static chain
1155 around the call to mcount.
1156
1ca7ac43
JL
1157 * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf.
1158
8c55f49c
JL
1159 * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid
1160 generating non-canonical rtl.
1161
e4d26fc7
VM
11621999-01-14 Vladimir N. Makarov <vmakarov@cygnus.com>
1163
1164 * config/i960/i960.c (i960_output_move_double_zero,
1165 i960_output_move_quad_zero): New functions for moving zeros.
1166 (i960_output_move_double, i960_output_move_quad): Additional code
1167 for situation when moving unaligned register group.
1168
1169 * config/i960/i960.h (i960_output_move_double_zero,
1170 i960_output_move_quad_zero): The function definitions.
1171
1172 * config/i960/i960.md (movdi+1, movti+1): Usage of the functions.
1173
9ef06443
VM
11741999-01-13 Vladimir N. Makarov <vmakarov@cygnus.com>
1175
1176 * config/i960/i960.c (i960_function_prologue): New code (optimal
1177 solution) for saving global registers in local registers.
1178 (form_reg_groups, reg_group_compare, split_reg_group): New
1179 functions used by the code.
1180 (reg_group): New structure definition for the new code.
1181
58a2f534
RH
1182Wed Jan 13 20:12:37 1999 Richard Henderson <rth@cygnus.com>
1183
1184 * integrate.c (expand_inline_function): Recognize (mem (addressof))
1185 and substitute. Copy the return value from there into a new pseudo.
1186
716618d5
CM
1187Wed Jan 13 16:47:00 1999 Catherine Moore <clm@cygnus.com>
1188
1189 * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN
1190 before generating a call to abort for volatile functions.
1191 * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define.
1192 (TARGET_ABORT_NORETURN): Define.
1193 (abort-on-noreturn): New option.
1194
9b4f2bb7
MH
1195Thu Jan 14 13:52:42 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1196
1197 * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc
1198 and binarycc operations in 3rd annulled delay slot!
1199
34792e82
JL
1200Wed Jan 13 16:16:44 1999 Catherine Moore <clm@cygnus.com>
1201
1202 * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN
1203 before generating a call to abort for volatile functions.
1204 * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define.
1205 (TARGET_ABORT_NORETURN): Define.
1206 (abort-on-noreturn): New option.
1207
1208Wed Jan 13 13:30:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1209
1210 * cccp.c (xstrdup): Renamed from `savestring'. All callers changed.
1211 Remove prototype which we get from libiberty.h.
1212
1213 * collect2.c (xstrdup): Likewise.
1214
1215 * genextract.c (xstrdup): Likewise for `copystr'.
1216 (mybzero): Remove it and use `memset' instead.
1217
1218 * genoutput.c (mybcopy, mybzero): Remove these. All callers changed
1219 to use `memcpy' and `memset' instead.
1220
1221 * genrecog.c (xstrdup): Renamed from `copystr'. All callers
1222 changed. Remove prototype.
1223 (mybcopy, mybzero): Remove these and use memcpy/memset.
1224
1225Wed Jan 13 00:59:04 1999 Jeffrey A Law (law@cygnus.com)
1226
1227 * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when
1228 generating code for TARGET_64BIT.
1229
1230Tue Jan 12 14:05:37 1999 David Edelsohn <edelsohn@mhpcc.edu>
1231
1232 * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on
1233 HOST_WIDE_INT word-size.
1234 (rs6000_stack_info): Remove redundant alignment of fpmem.
1235
1236Tue Jan 12 14:05:37 1999 Richard Henderson <rth@cygnus.com>
1237
1238 * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling.
1239 (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise.
1240 (input_operand): Adjust CONSTANT_P_RTX handling.
1241 * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references.
1242 * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling.
1243 (movhi, movqi): Remove CONSANT_P_RTX handling.
1244 (movdi): Adjust CONSTANT_P_RTX handling.
1245
1246Tue Jan 12 10:23:24 1999 Stan Cox <scox@cygnus.com>
1247
1248 * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
1249
eb691392
MH
12501999-01-12 Manfred Hollstein <manfred@s-direktnet.de>
1251
1252 * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
1253 ensure all prototypes necessary for building libio will be available.
1254 * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove
1255 definitions here as they are not host specific.
1256 * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise.
1257
1ff136fd
RH
1258Tue Jan 12 02:53:46 1999 Richard Henderson <rth@cygnus.com>
1259
1260 * cse.c (cse_insn): Never prefer (const (constant_p_rtx)).
1261
fb857ec1
JL
1262Tue Jan 12 02:36:10 PST 1999 Jeff Law (law@cygnus.com)
1263
1264 * version.c: Bump for snapshot.
1265
d6c0e1c8
RH
1266Tue Jan 12 01:30:19 1999 Richard Henderson <rth@cygnus.com>
1267
1268 * rtl.c (rtx_alloc): Use memset instead of inline loop.
1269
b0983bb9
RH
1270 * recog.h (recog_op_alt): Declare extern.
1271
fbdfe39c
RH
1272Tue Jan 12 00:23:31 1999 Richard Henderson <rth@cygnus.com>
1273
1274 * function.c (purge_addressof_1): If the note accesses a mem+addressof
1275 in a wider mode than any replacement, adjust the cached replacement.
1276 Cache trivial substitutions as well.
1277
5f6c11d6
RH
1278Tue Jan 12 00:06:00 1999 Richard Henderson <rth@cygnus.com>
1279
1280 * Makefile.in (OBJECTS): Add sbitmap.o.
1281 (BASIC_BLOCK_H): Add sbitmap.h.
1282 * basic-block.h: Move simple bitmap code to sbitmap.h.
1283 * flow.c: Move simple bitmap code to sbitmap.c
1284 * sbitmap.h, sbitmap.c: New files.
1285
ca7cdae3
RH
1286Mon Jan 11 23:51:50 1999 Richard Henderson <rth@cygnus.com>
1287
1288 * alpha.h (TARGET_SWITCHES): Document switches.
1289 (TARGET_OPTIONS): Likewise.
1290
1291 * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC.
1292
a17fcad7
RH
1293Mon Jan 11 22:54:14 1999 Richard Henderson <rth@cygnus.com>
1294
1295 * tree.c (new_alias_set): Return zero if !flag_strict_aliasing.
1296
3b413743
RH
1297Mon Jan 11 22:36:01 1999 Richard Henderson <rth@cygnus.com>
1298
1299 * basic-block.h (basic_block_head): Rename to x_basic_block_head.
1300 (basic_block_end): Rename to x_basic_block_end.
1301 (BLOCK_HEAD, BLOCK_END): Update.
1302
1303 * caller-save.c: Change basic_block_head/end references to
1304 BLOCK_HEAD/END.
1305 * combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
1306 * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
1307 * regmove.c, reload1.c, reorg.c, sched.c: Likewise.
1308
ed35cf6e
KG
1309Sat Jan 9 23:54:09 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1310
1311 * gcc.c (xstrerror): Renamed from my_strerror. All callers
1312 changed. Remove prototype since we get that from libiberty.h.
1313
1314 * protoize.c (xstrerror): Likewise.
1315
22d9f2cf
KG
1316Sat Jan 9 23:22:04 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1317
1318 * gcc.c (read_specs): Ensure format specifiers match their arguments.
1319
c2c41b7e
RH
1320Sat Jan 9 20:04:24 1999 Richard Henderson <rth@cygnus.com>
1321
1322 * tree.c (copy_node): Oops. That would be copy not zero
1323 in that last change.
1324
5e6a42d9
MH
1325Sun Jan 10 15:35:41 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1326
1327 * config/c4x/c4x.c: Include system.h.
1328 (c4x_caller_save_map): Disable caller save for RC.
1329 (c4x_optimization_options): Disable scheduling before reload.
1330 (valid_parallel_load_store) : Define return type as int.
1331 Remove unused variable regs.
1332 * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register
1333 class.
1334 * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to
1335 handle rotations.
1336 (*db, decrement_and_branch_until_zero): Fix up constraints
1337 to keep reload happy.
1338
dfa27ef1
RH
1339Sat Jan 9 18:35:29 1999 Richard Henderson <rth@cygnus.com>
1340
1341 * tree.c (make_node): Call bzero instead of inline clear.
1342 (copy_node, make_tree_vec, build1): Likewise.
1343 (get_identifier): Call strlen instead of inline count.
1344 (maybe_get_identifier): Likewise.
1345
dfb31eec
MH
1346Sun Jan 10 14:04:51 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1347
1348 * config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
1349 operations in 3rd annulled delay slot.
1350 (*lshrqi3_const_set): Disallow c constraint for operand0.
1351 (modhi3+1, modhi3+2): Set attribute type to multi.
1352 * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of
1353 != operator.
1354
a6b1d0a7
KG
1355Sat Jan 9 11:44:55 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1356
1357 * gansidecl.h: Allow attribute unused on labels only when we are
1358 version 2.93 or higher. Not all versions of 2.92 have this feature.
1359
1360 * version.c: Bump minor number to 93.
1361
523bb0ba
AS
1362Fri Jan 8 10:51:13 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
1363
1364 * config/m68k/m68k.h: Declare output_function_epilogue.
1365 * recog.h: Declare next_insn_tests_no_inequality.
1366
2668793e
JL
1367Fri Jan 8 01:43:53 1999 Jeffrey A Law (law@cygnus.com)
1368
642cac7b
JL
1369 * stmt.c (optimize_tail_recursion): New function, extracted from ...
1370 (expand_return): Use optimize_tail_recursion.
1371 * tree.h (optimize_tail_recursion): Declare.
1372
2668793e
JL
1373 * toplev.c (compile_file): Move call to output_func_start_profiler
1374 to after the loop to emit deferred functions.
1375
642cac7b
JL
1376Thu Jan 7 19:52:53 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1377
1378 * system.h (abort): Supply more detailed information on how to
1379 report an Internal Compiler Error.
1380
8e6a59fe
MM
1381Thu Jan 7 11:26:17 1999 Mark Mitchell <mark@markmitchell.com>
1382
1383 * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
1384 allocate memory that will live beyond this function.
1385 (expand_call): Free it here.
1386
8947065c
RH
1387Thu Jan 7 03:08:17 1999 Richard Henderson <rth@cygnus.com>
1388
1389 * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for
1390 integer data not destined for fp regs.
1391 (LEGITIMIZE_RELOAD_ADDRESS): New.
1392
1393Thu Jan 7 03:03:42 1999 Stan Cox <scox@cygnus.com>
1394 Richard Henderson <rth@cygnus.com>
1395
1396 Support for Hypersparc and Sparclite86x:
1397 * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
1398 (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
1399 (ASM_CPU32_DEFAULT_SPEC): Likewise.
1400 (TARGET_CPU_DEFAULT): Likewise.
1401 (enum processor_type): Likewise.
1402 (CPP_ENDIAN_SPEC): Handle little endian data.
1403 (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
1404 (ADJUST_COST): Call sparc_adjust_cost.
1405 * sparc.c (sparc_override_options): Fix up for the new targets.
1406 (supersparc_adjust_cost): Make static.
1407 (hypersparc_adjust_cost): New.
1408 (ultrasparc_adjust_cost): Make static.
1409 (sparc_adjust_cost): New.
1410 * sparc.md (attr cpu): Add hypersparc and sparclite86x.
1411 (function_unit): Add hypersparc scheduling rules.
1412
1413 * configure.in (with_cpu handler): Recognize hypersparc.
1414
4ddb3ea6
MH
1415Thu Jan 7 23:54:05 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1416
1417 * config/c4x/c4x.c: Added space after negation operator.
1418 * config/c4x/c4x.h: Likewise.
1419 * config/c4x/c4x.md: Likewise.
1420
f2b15118
MH
1421Thu Jan 7 23:39:27 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1422
1423 * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
1424
70186b34
BS
1425Thu Jan 7 00:29:25 199 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1426
1427 * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
1428 when a test can't be performed due to limited width of
1429 HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
1430 Fix UDIV case for cases where the first operand has the highest bit
1431 set.
1432
548e44b3
LV
1433Thu Jan 7 00:01:38 1999 Lutz Vieweg <lkv@mania.robin.de>
1434
1435 * pa.h (reg_class): Add FPUPPER_REGS.
1436 (REG_CLASS_NAMES): Similarly.
1437 (REG_CLASS_CONTENTS): Similarly
1438 (REGNO_REG_CLASS): Handle FPUPPER_REGS.
1439 (FP_REG_CLASS_P): Likewise.
1440 (REG_CLASS_FROM_LETTER): Similarly.
1441 (CLASS_MAX_NREGS): Similarly.
1442
884ba59a
BK
14431999-01-06 Brendan Kehoe <brendan@cygnus.com>
1444
1445 * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
1446 for a typedef of bool. Make sure to have a copy of the file is
1447 in place before we look to fix it. Fix typo in variable name to
1448 FILE.
1449
44d22bef
RH
1450Wed Jan 6 07:51:05 1999 Richard Henderson <rth@cygnus.com>
1451
1452 * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
1453 value_mode for the return mode.
1454
90e6a802
RL
1455Wed Jan 6 17:55:19 1999 Robert Lipe <robertlipe@usa.net>
1456
1457 * configure.in: New flag --with-dwarf2. If set, enables DWARF-2
1458 debugging as default.
1459
1460 * config/tm-dwarf2.h: New file.
1461
20efdf74
JL
1462Wed Jan 6 16:08:54 1999 Jeffrey A Law (law@cygnus.com)
1463
ee65dab8
JL
1464 * h8300.h (ASM_OUTPUT_LABELREF): Define.
1465
4f72f5da
JL
1466 * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
1467 * local-alloc.c (update_equiv_regs): Corresponding changes.
1468 * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
1469
ca54603f
JL
1470 * calls.c (special_function_p): Push alloca test inside the large
1471 conditional which excludes functions not at file scope or not
1472 extern.
1473
20efdf74
JL
1474 * calls.c (special_function_p): New function broken out of
1475 expand_call.
1476 (precompute_register_parameters): Likewise.
1477 (store_one_arg): Likewise.
1478 (store_unaligned_argumetns_into_pseudos): Likewise.
1479 (save_fixed_argument_area): Likewise.
1480 (restore_fixed_argument_area): Likewise.
1481 (expand_call): Corresponding changes.
1482
4a8832ee
AS
1483Wed Jan 6 10:43:29 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
1484
1485 * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
1486 handling.
1487 (const_sint32_operand): Likewise.
1488
2813b56e
KG
1489Wed Jan 6 09:44:51 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1490
1491 * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
1492 is a macro when deciding if we can use `jmp_buf' in prototypes.
1493
e4e30b3d
MH
1494Thu Jan 7 00:12:24 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1495
1496 * config/c4x/c4x.md (addqi3): If the destination operand is
1497 a hard register other than an extended precision register,
1498 emit addqi3_noclobber.
1499 (*addqi3_noclobber_reload): New pattern added so that reload
1500 will recognise a store of a pseudo, equivalent to the sum
1501 of the frame pointer and a constant, as an add insn.
1502
2f197d2f
ME
1503Wed Jan 6 03:18:53 1999 Mark Elbrecht <snowball3@usa.net.
1504
1505 * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
1506 * configure: Rebuilt.
1507 * i386/xm-go32.h: Define LIBSTDCXX.
1508 * i386/x-go32: New.
1509 * i386/go32.h (MD_EXEC_PREFIX): Define.
1510 (FILE_NAME_ABSOLUTE_P): Define.
1511 (LINK_COMMAND_SPEC): Define.
1512
b3fa7e9f
CH
1513Wed Jan 6 02:23:36 1999 "Charles M. Hannum" <root@ihack.net>
1514
1515 * expr.c (store_expr): If the lhs is a memory location pointed
1516 to be a postincremented (or postdecremented) pointer, always
1517 force the rhs to be evaluated into a pseudo.
1518
7735516c
GK
1519Wed Jan 6 00:54:21 1999 Geoff Keating <geoffk@ozemail.com.au>
1520
1521 * real.c (mtherr): Print more reasonable warning messages.
1522
460ee112
KG
1523Tue Jan 5 21:57:42 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1524
1525 * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
1526
1527 * cccp.c: Include prefix.h, don't prototype prefix.c functions.
1528 (new_include_prefix): Constify char* parameters.
1529
1530 * cppfiles.c (read_name_map): Likewise.
1531 (append_include_chain): Likewise. Also, use a writable char* copy
1532 of parameter `dir' which we then modify, rather than using the
1533 parameter itself to store the new writable string.
1534 (remap_filename): Constify some variables. Also, use a writable
1535 char* to store an allocated string which we will be modifying.
1536
1537 * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
1538 (cpp_start_read): Constify variable `str'.
1539
1540 * cpplib.h (append_include_chain): Constify a char* parameter.
1541
1542 * gcc.c Include prefix.h, don't prototype prefix.c functions.
1543 (add_prefix, save_string): Constify char* parameters.
1544 (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
1545
1546 * prefix.c: Include prefix.h.
1547 (get_key_value, translate_name, save_string, update_path,
1548 set_std_prefix): Constify various char* parameters and variables.
1549 (save_string): Use xmalloc, not malloc.
1550 (translate_name): Use a writable temporary variable to create and
1551 modify a string before setting it to a const char*.
1552
1553 * prefix.h: New file to prototype functions exported from prefix.c.
1554
bb2d453f
DB
1555Mon Jan 4 15:37:30 1999 Zack Weinberg <zack@rabi.phys.columbia.edu>
1556
1557 * cpplib.c (skip_if_group): Split out the logic that handles
1558 directive recognition to its own function. Don't use
1559 parse markers; use a bare pointer into the buffer. Use
1560 copy/skip_rest_of_line instead of doing it by hand. Remove
1561 `return on any directive' mode which was never used, and take
1562 only one argument.
1563 (consider_directive_while_skipping): New function, subroutine
1564 of skip_if_group. Logic streamlined a bit.
1565 (conditional_skip, do_elif, do_else): Call skip_if_group with
1566 only one argument.
1567
1568Mon Jan 4 15:27:30 1999 Zack Weinberg <zack@rabi.phys.columbia.edu>
1569
1570 * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
1571 error.
1572
0ded1f18
JM
1573Mon Jan 4 11:55:51 1999 Jason Merrill <jason@yorick.cygnus.com>
1574
1575 * extend.texi (Bound member functions): Document.
1576
47e6be47
KG
1577Mon Jan 4 11:01:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1578
1579 * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
1580 lang_to_string, type_to_string): Make return type const char*.
1581 (print_symbol): Apply `const' keyword to a char*.
1582 (print_file_desc): Cast structure member `crfd' to ulong when
1583 comparing against one.
1584
1585 * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
1586 (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
1587 (progname, input_name): Apply `const' keyword to a char*.
1588 Don't redundantly include sys/stat.h.
1589 (alloc_info): Apply `const' keyword to a char*.
1590 (st_to_string, sc_to_string): Likewise.
1591 (hash_string): Cast variable `hash_string' to a symint_t when
1592 comparing against one.
1593 (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
1594 Likewise cast it to long when comparing against one.
1595 (add_local_symbol): Apply `const' keyword to a char*.
1596 (add_ext_symbol): Likewise.
1597 (add_unknown_tag): Likewise.
1598 (add_procedure): Cast a printf-style field width to an int.
1599 (add_file): Cast PAGE_USIZE to long when comparing against one
1600 (parse_begin): Cast a printf-style field width to an int.
1601 (parse_bend): Likewise.
1602 (parse_def): Likewise.
1603 (parse_end): Likewise.
1604 (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
1605 (parse_stabs_common): Fix format specifier.
1606 (parse_input): Change type of variable `i' to Size_t.
1607 (write_object): Fix arguments to match format specifiers.
1608 Cast variable `num_write' to long when comparing against one.
1609 (read_seek): Cast variable `sys_read' to symint_t when comparing
1610 against one. Fix arguments to match format specifiers. Cast
1611 variable `size' to long when comparing against one.
1612 (copy_object): Cast result of `sizeof' to int when comparing
1613 against one. Fix arguments to match format specifiers. Cast
1614 variable `ifd' to long when comparing against a signed value.
1615 Likewise, likewise.
1616
736b02fd
KG
1617Mon Jan 4 10:30:33 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1618
1619 * c-common.c (decl_attributes): Allow applying attribute `unused'
1620 on a LABEL_DECL.
1621
1622 * c-parse.in (label): Parse attributes after a label, and call
1623 `decl_attributes' to handle them.
1624
1625 * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
1626
1627 * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
1628 generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
1629
1630 * invoke.texi: Note that labels can be marked `unused'.
1631
f430a01e
JL
1632Sun Jan 3 23:32:18 PST 1999 Jeff Law (law@cygnus.com)
1633
1634 * version.c: Bump for snapshot.
1635
3b0d546a
JL
1636Sun Jan 3 23:00:42 1999 Jeffrey A Law (law@cygnus.com)
1637
1638 * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
1639 RTL for a compare/jump sequence.
1640
362cc3d4
MH
1641Sun Jan 3 22:58:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1642
1643 * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
1644 for a target with HAVE_cc0 defined.
1645 (emit_cmp_and_jump_insns): New function.
1646 * expr.h (emit_cmp_and_jump_insns): Prototype it.
1647 * loop.c (check_dbra_loop): Use it to replace calls
1648 to emit_cmp_insn and emit_jump_insn and to canonicalise
1649 the comparison if necessary.
1650 * unroll.c (unroll_loop): Likewise.
1651
9d6b41f3
RO
1652Sun Jan 3 21:01:04 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1653
1cd0a8ed
RO
1654 * fixincludes (sys/utsname.h): Provide forward declaration of
1655 struct utsname on Ultrix V4.[35].
1656
9d6b41f3
RO
1657 * mips.md (div_trap): Use local labels instead of dot-relative
1658 branches.
1659
dcaeffef
JL
1660Sun Jan 3 20:40:34 1999 Jeffrey A Law (law@cygnus.com)
1661
1662 * pa.md (branch, negated branch): Handle (const_int 0) as first
1663 source operand.
1664 * pa.c (output_cbranch): Likewise.
1665
8dda1a21
DE
1666Sun Jan 3 03:20:38 1999 David Edelsohn <edelsohn@mhpcc.edu>
1667
1668 * rs6000.c (rs6000_stack_info): Undo spurious part of last
1669 change.
1670
1048777f
MH
16711999-01-01 Manfred Hollstein <manfred@s-direktnet.de>
1672
1673 * extend.texi (__builtin_constant_p): Add missing @smallexample.
1674
a94b6ed9
JL
1675Fri Jan 1 11:48:20 1999 Jeffrey A Law (law@cygnus.com)
1676
1677 * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
1678
f203c520
JL
1679Wed Dec 30 23:38:55 1998 Jeffrey A Law (law@cygnus.com)
1680
4cca99f4
JL
1681 * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
1682 (adddi_dishl32): Similarly.
1683
97577254
JL
1684 * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
1685 for each insn in the skipped block.
1686
f67c2384
JL
1687 * reload1.c (reload_as_needed): Verify that the insn satisfies its
1688 constraints after replacing a register address with an autoincrement
1689 address for reload inheritance purposes.
1690
f203c520
JL
1691 * i386.md (doubleword shifts): Avoid namespace pollution.
1692
56830143
DB
1693Wed Dec 30 23:00:28 1998 David O'Brien <obrien@NUXI.com>
1694
1695 * configure.in (FreeBSD ELF): Needs special crt files.
1696
2966b437
GN
1697Wed Dec 30 22:50:13 1998 Geoffrey Noer <noer@cygnus.com>
1698
1699 * i386/xm-cygwin.h: change DIR_SEPARATOR to forward slash.
1700
2c74fb2b
AS
17011998-12-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
1702
1703 * loop.c (check_dbra_loop): While reversing the loop, if the
1704 comparison value has a VOID mode use the mode of the other operand
1705 to compute the mask.
1706
ff381587
MM
1707Wed Dec 30 22:24:00 1998 Michael Meissner <meissner@cygnus.com>
1708
1709 * rs6000.md ({save,restore}_stack_function): Take 2 operands to
1710 avoid warnings in compiling explow.c.
1711
1712 (patch from Ken Raeburn, raeburn@cygnus.com)
1713 * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
1714 fpmem_offset. Compute total size after that, and then
1715 rs6000_fpmem_offset using both values.
1716
c2a26505
GP
1717Mon Dec 28 19:26:32 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1718
1719 * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
1720 the future; indeed that already happens in some cases.
1721
11301057
RH
1722Tue Dec 29 11:58:53 1998 Richard Henderson <rth@cygnus.com>
1723
1724 * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
1725 (arith_operand): Remove constant_p_rtx handling.
1726 (const64_operand, const64_high_operand): Likewise.
1727 (arith11_operand, arith10_operand, arith_double_operand): Likewise.
1728 (arith11_double_operand, arith10_double_operand, small_int): Likewise.
1729 (small_int_or_double, uns_small_int, zero_operand): Likewise.
1730 * sparc.h (PREDICATE_CODES): Likewise.
1731
30dfe54a
RH
1732 * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
1733
185ebd6c
RH
1734Tue Dec 29 11:32:54 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>:
1735
1736 * rtl.def (CONSTANT_P_RTX): Clarify commentary.
1737 * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
1738 consider constant CONSTRUCTOR constant and to defer some cases
1739 to cse.
1740 * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
1741 * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
1742
1743Tue Dec 29 11:30:10 1998 Richard Henderson <rth@cygnus.com>
1744
1745 * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
1746 * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
1747
1748 * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
1749 (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
1750 (sext_add_operand, and_operand, or_operand): Likewise.
1751 (reg_or_cint_operand, some_operand, input_operand): Likewise.
1752 * alpha.h (PREDICATE_CODES): Likewise.
1753
081f12b3
JL
1754Sat Dec 26 23:26:26 PST 1998 Jeff Law (law@cygnus.com)
1755
1756 * version.c: Bump for snapshot.
1757
7ce1e6c8
JL
1758Sat Dec 26 09:17:04 1998 Jeffrey A Law (law@cygnus.com)
1759
ba476f75
JL
1760 * gengenrtl.c (gencode): Always use bzero to clear memory instead
1761 of dangerous casts and stores.
1762
7ce1e6c8
JL
1763 * Makefile.in (compare, gnucompare): Add missing else true clauses.
1764
4b855767
JL
1765Fri Dec 25 23:00:56 1998 Jeffrey A Law (law@cygnus.com)
1766
1767 * alpha.md (builtin_longjmp): Add missing "DONE".
1768
6405c0ec
SC
1769Thu Dec 24 10:39:57 1998 Stan Cox <scox@cygnus.com>
1770
1771 * gcc.c (execute): Enable -pipe with win32.
1772
a1e27b76
NC
1773Wed Dec 23 10:27:44 1998 Nick Clifton <nickc@cygnus.com>
1774
1775 * config/arm/t-arm-elf: Add multiplib option for leading
1776 underscores.
1777
1778 * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
1779 'user_label_prefix' rather than macro USER_LABEL_PREFIX.
1780
1781 (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
1782 than variable 'reload_address_base_reg_class'. [Note this
1783 change is unrelated to the others in this patch].
1784
1785 * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
1786 leading underscore.
1787
973838fd
KG
1788Wed Dec 23 09:51:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1789
1790 * alias.c (record_alias_subset): Remove ignored `&'.
1791 (init_alias_once): Likewise.
1792
1793 * c-lex.c (UNGETC): Cast first argument of comma expression to void.
1794
1795 * config/mips/mips.c (mips_asm_file_end): Cast the result of
1796 fwrite to `int' when comparing against one.
1797
1798 * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
1799 (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
1800
1801 * cse.c (rehash_using_reg): Change type of variable `i' to
1802 unsigned int.
1803
1804 * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
1805 assigning it to one.
1806
1807 * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
1808
1809 * final.c (final_scan_insn): Likewise for variable `i'.
1810 (output_asm_insn): Cast a char to unsigned char when used as an
1811 array index.
1812
1813 * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
1814 assigning it to one.
1815
1816 * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
1817
1818 * recog.c (preprocess_constraints): Cast a char to unsigned char
1819 when used as an array index.
1820
1821 * regmove.c (find_matches): Likewise.
1822
1823 * reload1.c (calculate_needs): Add default case in switch.
1824 (eliminate_regs_in_insn): Initialize variable `offset'.
1825 (set_offsets_for_label): Change type of variable `i' to unsigned.
1826 (reload_as_needed): Wrap variable `i' in macro check on
1827 AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
1828
1829 * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
1830 with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t
1831 when comparing against one.
1832
1833 * stor-layout.c (layout_decl): Cast maximum_field_alignment to
1834 unsigned when comparing against one. Likewise for
1835 GET_MODE_ALIGNMENT().
1836 (layout_record): Cast record_align to int when comparing against a
1837 signed value.
1838 (layout_type): Cast TYPE_ALIGN() to int when comparing against a
1839 signed value.
1840
1841 * tree.c (get_identifier): Cast variable `len' to unsigned when
1842 comparing against one.
1843 (maybe_get_identifier): Likewise
1844
2ae74651
JL
1845Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com)
1846
1847 * toplev.c (rest_of_compilation): Do not set reload_completed.
1848 * reload1.c (reload): Set reload_completed before calling
1849 cleanup_subreg_operands.
1850
3d0ec3b3
RH
1851Tue Dec 22 23:58:31 1998 Richard Henderson <rth@cygnus.com>
1852
1853 * reload1.c (emit_reload_insns): Check `set' not null before use.
1854
cae8acdd
NC
1855Tue Dec 22 15:15:45 1998 Nick Clifton <nickc@cygnus.com>
1856
1857 * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
1858 'int'.
1859
34fadae0
TP
1860Tue Dec 22 13:55:44 1998 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1861
1862 * halfpic.c (half_pic_encode): Delete redundant code.
1863
2f0d2c99
MM
1864Tue Dec 22 13:02:22 1998 Michael Meissner <meissner@cygnus.com>
1865
1866 * toplev.c (main): Delete handling of -dM as a preprocessor
1867 option.
1868
b5c7059b
MM
1869Mon Dec 21 17:39:38 1998 Michael Meissner <meissner@cygnus.com>
1870
1871 * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
1872 -dI, which are handled by the preprocessor.
1873
62481348
JC
1874Sun Dec 20 16:13:44 1998 John F. Carr <jfc@mit.edu>
1875
1876 * configure.in: Handle Digital UNIX 5.x the same as 4.x.
1877 * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
1878
1ead53b3
JL
1879Sun Dec 20 07:39:52 PST 1998 Jeff Law (law@cygnus.com)
1880
1881 * version.c: Bump for snapshot.
1882
24ccb032
JL
1883Sat Dec 19 22:24:22 PST 1998 Jeff Law (law@cygnus.com)
1884
1885 * version.c: Bump for snapshot.
1886
a5e3973f
JL
1887Sat Dec 19 21:41:32 PST 1998 Jeff Law (law@cygnus.com)
1888
1889 * version.c: Bump for snapshot.
1890
85fda1eb
KG
1891Sat Dec 19 09:52:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1892
1893 * genattr.c (fatal): Qualify a char* with the `const' keyword.
1894
1895 * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
1896 write_unit_name, write_eligible_delay, expand_units,
1897 make_length_attrs, write_attr_case, find_attr,
1898 make_internal_attr): Likewise.
1899 * gencheck.c (tree_codes): Likewise.
1900 * gencodes.c (fatal): Likewise.
1901 * genconfig.c (fatal): Likewise.
1902 * genemit.c (fatal): Likewise.
1903 * genextract.c (fatal, walk_rtx, copystr): Likewise.
1904 * genflags.c (fatal): Likewise.
1905 * genopinit.c (fatal, optabs, gen_insn): Likewise.
1906 * genoutput.c (fatal, error, predicates): Likewise.
1907 * genpeep.c (fatal): Likewise.
1908 * genrecog.c (fatal, decision, pred_table, add_to_sequence,
1909 write_tree_1, write_tree, change_state, copystr, indents): Likewise.
1910
21f891de
RO
1911Thu Dec 17 18:21:49 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1912
94878f15
RO
1913 * configure.in (with-fast-fixincludes): Fix whitespace.
1914 * configure: Rebuilt.
1915
21f891de
RO
1916 * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
1917 asm() etc. function declarations in __DECC.
1918
b2e7e6fb
NC
1919Thu Dec 17 13:57:23 1998 Nick Clifton <nickc@cygnus.com>
1920
1921 * expr.c (emit_move_insn_1): Only emit a clobber if the target
1922 is a pseudo register.
1923
3cdbd1f8
NC
1924Thu Dec 17 13:50:29 1998 Nick Clifton <nickc@cygnus.com>
1925
1926 * gcse.c: Include expr.h in order to get the prototype for
1927 get_condition() which is used in delete_null_pointer_checks().
1928
cce4a958
KG
1929Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1930
1931 * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
1932
2df8df36
JW
1933Thu Dec 17 12:31:12 1998 Jim Wilson <wilson@cygnus.com>
1934
1935 * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
1936 (ALL_CFLAGS): Delete SCHED_CFLAGS.
1937
0197d76b
VM
19381998-12-17 Vladimir N. Makarov <vmakarov@cygnus.com>
1939
1940 * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
1941 ';').
1942
19431998-12-17 Michael Tiemann <tiemann@axon.cygnus.com>
1944
1945 * i960.md (extend*, zero_extend*): Don't generate rtl that looks
1946 like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
1947 optimizations from the combiner.
1948
86147f48
R
1949Thu Dec 17 08:27:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1950
1951 * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
1952
16b6e120
NC
1953Wed Dec 16 17:30:35 1998 Nick Clifton <nickc@cygnus.com>
1954
1955 * toplev.c (main): Disable optimize_size if a specific
1956 optimization level is requested. Always set optimization
1957 level to 2 if -Os is specified.
1958
05c32e16
DB
1959Wed Dec 16 16:33:04 1998 Dave Brolley <brolley@cygnus.com>
1960
1961 * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
1962 cpplib.
1963 * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
1964 initialize it using fname.
1965
692b872e
ZW
19661998-12-16 Zack Weinberg <zack@rabi.phys.columbia.edu>
1967
1968 * cpplib.c (do_include): Treat #include_next in the
1969 primary source file as #include plus warning. Treat
1970 #include_next in a file included by absolute path as an
1971 error. fp == CPP_NULL_BUFFER is a fatal inconsistency.
1972
36b8337d
KG
1973Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1974
1975 * cccp.c: Don't define MIN/MAX anymore.
1976 * cpplib.c: Likewise.
1977 * machmode.h: Likewise.
1978 * system.h: Provide definitions for MIN/MAX.
1979
2d234b4f
ZW
1980Tue Dec 15 23:47:42 1998 Zack Weinberg <zack@rabi.phys.columbia.edu>
1981
1982 * fix-header.c: Don't define xstrdup here.
1983
a07516d3
R
1984Wed Dec 16 05:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1985
1986 * loop.c (consec_sets_giv): New argument last_consec_insn.
1987 (strength_reduce): Provide / use it.
1988
35704c46
MH
1989Wed Dec 16 17:24:07 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1990
1991 * loop.h (loop_info): New field 'vtop'.
1992 * loop.c (check_dbra_loop): Use loop_info->vtop rather than
1993 scanning loop for vtop.
1994 * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
1995 (loop_iterations): Use them to determine if loop has a constant
1996 number of iterations. Set loop_info->vtop. Don't subtract
1997 common reg term from initial_value and final_value if have a
1998 do-while loop.
1999
9c907d54
JL
2000Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com)
2001
b884a51a
JL
2002 * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
2003
5ba52c2e
JL
2004 * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
2005
9c907d54
JL
2006 * mn10200.md (abssf2, negsf2): New expanders.
2007
2008 * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
2009
ddc54eaa
NC
2010Tue Dec 15 11:55:30 1998 Nick Clifton <nickc@cygnus.com>
2011
2012 * integrate.c (copy_rtx_and_substitute): If a SUBREG is
2013 replaced by a CONCAT whoes components do not have the same
2014 mode as the original SUBREG, use a new SUBREG to restore the
2015 mode.
2016
2017 * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
2018 multiword complex values.
2019
c49445e0
ZW
20201998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu>
2021
2022 * cppalloc.c: Add xstrdup here.
2023 * cpplib.h: Remove savestring prototype.
2024 * cpplib.c: Remove savestring function. s/savestring/xstrdup/
2025 throughout.
2026 * cppfiles.c: s/savestring/xstrdup/ throughout.
2027
941e09b6
ZW
20281998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu>
2029
2030 * cpplib.c: Make all directive handlers read their own
2031 arguments.
2032 (struct directive): Remove last two arguments from FUNC
2033 member prototype. Remove `command_reads_line' member
2034 entirely.
2035 (directive_table): Remove initializations of
2036 command_reads_line flag. Pretty-print.
2037 (eval_if_expression, do_define, do_line, do_include,
2038 do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
2039 do_else, do_elif, do_sccs, do_assert, do_unassert,
2040 do_warning): Take only two args.
2041
2042 (cpp_define): Call do_define with two args and the text to
2043 define stuffed into a buffer.
2044 (make_assertion): Call do_assert with two args.
2045 (handle_directive): Call do_line with two args. Call
2046 kt->func with two args. Remove command_reads_line
2047 processing.
2048 (do_define, do_undef, do_error, do_warning, do_pragma,
2049 do_sccs): Read the rest of the line here.
2050 (do_ident): Gobble rest of line, as cccp does.
2051 (cpp_undef): New function.
2052 (cpp_start_read): Call cpp_undef instead of do_undef.
2053
7061aa5a
ZW
20541998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu>
2055
2056 * cpphash.h (union hash_value): Remove `keydef' member, add a
2057 `struct hashnode *aschain' member for #assert.
2058
2059 * cpplib.c (struct tokenlist_list, struct
2060 assertion_hashnode): Delete structure definitions.
2061 (assertion_install, assertion_lookup, delete_assertion,
2062 check_assertion, compare_token_lists, reverse_token_list,
2063 read_token_list, free_token_list): Delete functions.
2064 (parse_assertion): New function.
2065 (cpp_cleanup): Don't destroy the assertion_hashtable.
2066
2067 (do_assert): Gut and rewrite. #assert foo (bar) places
2068 entries for `#foo' and `#foo(bar)' in the macro hash table,
2069 type T_ASSERT. The value union's `aschain' member is used
2070 to chain all answers for a given predicate together.
2071 (do_unassert): Also rewritten. Take an un-asserted
2072 answer off the chain from its predicate and call
2073 delete_macro on the hashnode, or walk a predicate chain
2074 calling delete_macro on all the entries.
2075 (cpp_read_check_assertion): Simply call parse_assertion to
2076 get the canonical assertion name, and look that up in the
2077 hash table.
2078
2079 * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
2080 Removed.
2081
2082 * cpphash.c (install): Use bcopy instead of an explicit loop
2083 to copy the macro name.
2084
2085 * cppexp.c (cpp_lex): Convert the result of
2086 cpp_read_check_assertion to a `struct operation' directly;
2087 don't go through parse_number.
2088
4b259e3f
R
2089Tue Dec 15 18:27:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
2090
2091 * loop.h (struct induction): Delete times_used member.
2092 * loop.c (n_times_set): Rename to set_in_loop. Changed all users.
2093 (n_times_used): Rename to n_times_set. Changed all users.
2094 (scan_loop): Free reg_single_usage before strength reduction.
2095 (record_giv, combine_givs): Remove handling of times_used member.
2096 (combine_givs_used_once): Rename to:
2097 (combine_givs_used_by_other) . Changed all callers.
2098
5f2f160c
JM
2099Tue Dec 15 01:45:26 1998 Jason Merrill <jason@yorick.cygnus.com>
2100
2101 * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
2102 instead of TREE_CODE_CLASS == 't'.
2103 (gen_type_die): Likewise.
2104 (scope_die_for): Ignore FUNCTION_TYPE "scopes".
2105
c1c7db89
JW
2106Mon Dec 14 16:23:27 1998 Jim Wilson <wilson@cygnus.com>
2107
2108 * real.c (endian): Disable last change unless
2109 HOST_BITS_PER_WIDE_INT is greater than 32.
2110
3167de5b
AM
2111Mon Dec 14 17:13:36 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
2112
2113 * output.h (force_data_section): New prototype.
2114 * varasm.c (force_data_section): New function to force the
2115 data section, regardless of what in_section thinks.
2116 * dwarf2out.c (output_call_frame_info): Call force_data_section
2117 since varasm may not realize we've changes sections.
2118
80599fd9
NC
2119Mon Dec 14 14:09:34 1998 Nick Clifton <nickc@cygnus.com>
2120
2121 * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
2122 after completeing reload.
2123
2124 * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
2125 deleted after reload.
2126
93e0dfe1
JL
2127Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com)
2128
2129 * rtl.h (multiple_sets): Fix prototype.
2130 * rtlanal.c (multiple_sets): Fix return type.
2131
5d943c3c
JL
2132Sun Dec 13 12:43:58 PST 1998 Jeff Law (law@cygnus.com)
2133
2134 * version.c: Bump for snapshot.
2135
714d352f
JL
2136Sun Dec 13 01:05:22 PST 1998 Jeff Law (law@cygnus.com)
2137
2138 * version.c: Bump for snapshot.
2139
56485bee
MH
21401998-12-13 Manfred Hollstein <manfred@s-direktnet.de>
2141
2142 * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
2143
404d95c4
R
2144Sun Dec 13 00:24:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
2145
213c4983
R
2146 * rtl.h (recompute_reg_usage): Add second argument.
2147 * flow.c (recompute_reg_usage): Likewise.
2148 * toplev.c (rest_of_compilation): Supply second argument to
2149 recompute_reg_usage.
2150
404d95c4
R
2151 * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
2152 after reload.
2153
941c63ac
JL
2154Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com)
2155
f08347a9
JL
2156 * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
2157 (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
2158 (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
2159 mcpu32 or m5200.
2160
4566eb62
JL
2161 * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
2162
941c63ac
JL
2163 * rtlanal.c (multiple_sets): New function.
2164 * rtl.h (multiple_sets): Declare it.
2165 * local-alloc.c (wipe_dead_reg): Use it.
2166 * global.c (global_conflicts): Likewise.
2167
8d4c79be
MM
2168Sat Dec 12 22:13:02 1998 Mark Mitchell <mark@markmitchell.com>
2169
2170 * global.c (record_conflicts): Don't use an array of shorts to
2171 store an array of ints.
2172 (global_conflicts): Likewise.
2173
f35cba21
RH
2174Sat Dec 12 16:49:24 1998 Richard Henderson <rth@cygnus.com>
2175
2176 * alpha.c (alpha_expand_block_move): mode_for_size expects
2177 bits, not bytes. Infer extra alignment from addressof.
2178
a9aefc1e
MM
21791998-12-11 Michael Meissner <meissner@cygnus.com>
2180
2181 * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
2182 .sbss section, not .sdata.
2183
56adfa4a
MH
21841998-12-11 Manfred Hollstein <manfred@s-direktnet.de>
2185
8eeae6f4
MH
2186 * cccp.c: Do not #include <sys/stat.h> here; this is already done
2187 by "system.h".
2188 * collect2.c: Likewise.
2189 * cpplib.h: Likewise.
2190 * gcc.c: Likewise.
2191 * gcov.c: Likewise.
2192 * getpwd.c: Likewise.
2193 * protoize.c: Likewise.
2194 * toplev.c: Likewise.
2195
56adfa4a
MH
2196 * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
2197 and don't try to define it here.
2198 * Makefile.in (cppmain.o): Depend on machmode.h.
2199 (cpplib.o): Likewise.
2200 (cpperror.o): Likewise.
2201 (cppexp.o): Likewise.
2202 (cppfiles.o): Likewise.
2203 (cpphash.o): Likewise.
2204 (cppalloc.o): Likewise.
2205 (fix-header.o): Likewise.
2206 (scan-decls.o): Likewise.
2207
157131d7
SC
2208Fri Dec 11 11:02:49 1998 Stan Cox <scox@cygnus.com>
2209
2210 * sh.c (print_operand): lookup interrupt_handler attribute instead
2211 of relying on static variable.
2212 * (calc_live_regs): Likewise.
2213 * (sh_pragma_insert_attributes): Create interrupt_handler
2214 attribute if a pragma was specified
2215 * (sh_valid_machine_decl_attribute): Don't set static flag.
2216 * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
2217
b0634509
R
2218Fri Dec 11 12:56:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
2219
2220 * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
2221 to determine if a register is live at a jump destination.
2222 Everything is dead at a BARRIER.
2223
737e7965
JW
2224Thu Dec 10 16:02:06 1998 Jim Wilson <wilson@cygnus.com>
2225
2226 * cse.c (simplify_unary_operation): Sign-extend constants when
2227 they have the most significant bit set for the target.
2228 * real.c (endian): Sign-extend 32 bit output values on a 64 bit
2229 host.
2230 * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
2231 HOST_WIDE_INT temporary before negating it.
2232 * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
2233
353f10d5
DB
2234Thu Dec 10 15:05:59 1998 Dave Brolley <brolley@cygnus.com>
2235
2236 * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
2237 #if USE_CPPLIB.
2238
2edfd4ee
KG
2239Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2240
2241 * collect2.h: New header file for prototypes.
2242
2243 * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
2244
2245 * collect2.c: Include collect2.h.
2246 * tlink.c: Likewise.
2247
c9852047
JL
2248Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com)
2249
2250 * flow.c: Update some comments.
2251
5d7da2c6
DB
2252Wed Dec 9 15:29:26 1998 Dave Brolley <brolley@cygnus.com>
2253
2254 * objc/objc-act.c (cpp_initialized): Removed.
2255 (lang_init_options): Initialize cpplib.
2256 (lang_decode_option): Move initialization of cpplib to
2257 lang_init_options.
2258 * c-lang.c: (parse_options,parse_in): Added.
2259 (lang_init_options): Initialized cpplib here.
2260 * c-decl.c (parse_options,cpp_initialized): Removed.
2261 (c_decode_option): Move initialization of cpplib to
2262 lang_init_options.
2263
ed937a19
R
2264Wed Dec 9 19:36:57 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
2265
2266 * reload1.c (reload_combine, reload_combine_note_store):
a0078b37 2267 Make STORE_RUID always valid.
ed937a19
R
2268 (reload_combine): Check if BASE is clobbered too early.
2269
290b61f7
NC
2270Wed Dec 9 09:53:58 1998 Nick Clifton <nickc@cygnus.com>
2271
2272 * reload.c (find_reloads): Display the insn that cannot be
2273 reloaded.
2274
bdf777e4
DB
2275Wed Dec 9 12:15:26 1998 Dave Brolley <brolley@cygnus.com>
2276
2277 * cccp.c (create_definition): Fix end of bufer logic.
2278
3b89e9d1
KG
2279Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2280
2281 * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
2282 pointer parameters changed to use the PARAMS() macro.
2283
0177de87
AM
2284Wed Dec 9 09:12:40 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
2285
2286 * except.h (struct handler_info): Add handler_number field.
2287 * except.c (gen_exception_label): EH labels no longer need to be
2288 on the permanent obstack.
2289 (get_new_handler): Set the label number field.
2290 (output_exception_table_entry): Regenerate handler label reference
2291 from the label number field.
2292 (init_eh): Remove a blank line.
2293 * integrate.c (get_label_from_map): Labels no longer need to be
2294 on the permanent obstack.
2295
7a3c92a5
JW
2296Tue Dec 8 22:04:33 1998 Jim Wilson <wilson@cygnus.com>
2297
2298 * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
2299 only when OUTER_CODE is SET.
2300
5353610b
R
2301Tue Dec 8 22:47:15 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
2302
2303 * loop.c (strength_reduce): If scan_start points to the loop exit
2304 test, be wary of subversive use of gotos inside expression statements.
2305 Don't set maybe_multiple for a backward jump that does not
2306 include the label under consideration into its range.
2307 * unroll.c (biv_total_increment): Make use of maybe_multiple field.
2308
03d937fc
R
2309Tue Dec 8 22:33:18 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
2310
2311 * explow.c (plus_constant_wide): Don't immediately return with
2312 result of recursive call.
2313
e6cfb550
AM
2314Tue Dec 8 15:32:56 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
2315
2316 * eh-common.h (struct eh_context): Add table_index for rethrows.
2317
2318 * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
2319 (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
2320 processed when inlined or unrolled (ie duplicated in some way).
2321
2322 * rtl.c (reg_note_name): Add strings for new reg_note enums.
2323
2324 * expr.h (rethrow_libfunc): New library decl.
2325
2326 * optabs.c (rethrow_libfunc): Initialize.
2327
2328 * except.h (struct eh_entry): Add new field 'rethrow_label'.
2329 (new_eh_region_entry): No longer exported from except.c.
2330 (duplicate_handlers): Renamed to duplicate_eh_handlers and
2331 different prototype.
2332 (rethrow_symbol_map, rethrow_used): New exported functions.
2333 (eh_region_from_symbol): New exported function.
2334
2335 * except.c (create_rethrow_ref): New function to create a single
2336 SYMBOL_REF for a rethrow region.
2337 (push_eh_entry): Initialize a rethrow ref.
2338 (func_eh_entry): Add a rethrow_label field.
2339 (new_eh_region_entry): Make static, and initialize the rethrow entry.
2340 (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
2341 (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
2342 (rethrow_symbol_map): Given a label map, maps a rethrow symbol for
2343 a region into an appropriate new symbol.
2344 (rethrow_used): Indicate whether a rethrow symbol has been referenced.
2345 (expand_eh_region_end): Don't issue jump around code for new-exceptions.
2346 (end_catch_handler): Emit a barrier for new-exceptions since
2347 control can never drop through the end of a catch block.
2348 (expand_end_all_catch): new-exceptions never fall through a catch
2349 block.
2350 (expand_rethrow): use __rethrow routine for new exceptions.
2351 (output_exception_table_entry): Generate rethrow labels, if needed.
2352 (output_exception_table): Generate start and end rethrow labels.
2353 (init_eh): Create rethrow symbols for beginning and end of table.
2354 (scan_region): Don't eliminate EH regions which are the targets of
2355 rethrows.
2356
2357 * flow.c (make_edges): Add different edges for rethrow calls,
2358 identified by having the REG_EH_RETHROW reg label.
2359 (delete_unreachable_blocks): Don't delete regions markers which are
2360 the target of a rethrow.
2361
2362 * integrate.c (save_for_inline_eh_labelmap): New callback routine to
2363 allow save_for_inline_copying to call duplicate_eh_handlers.
2364 (save_for_inline_copying): Call duplicate_eh_handlers instead of
2365 exposing internal details of exception regions.
2366 (copy_for_inline): Check if SYMBOL_REFs need adjustment.
2367 (expand_inline_function_eh_labelmap): New callback routine to
2368 allow expand_inline_function to call duplicate_eh_handlers.
2369 (expand_inline_function): Call duplicate_eh_handlers instead of
2370 exposing internal details of exception regions.
2371 (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
2372 flag is set.
2373
2374 * libgcc2.c (find_exception_handler): Generalize to enable it to
2375 pick up processing where it left off last time for a rethrow.
2376 (__unwinding_cleanup): New function. debug hook which is called before
2377 unwinding when __throw finds there is nothing but cleanups left.
2378 (throw_helper): Common parts of __throw extracted out for reuse.
2379 (__throw): Common parts moved to throw_helper.
2380 (__rethrow): New function for performing rethrows.
2381
122a860e
JL
2382Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com)
2383
2384 * reload1.c (current_function_decl): Tweak declaration.
2385
6271b191
RH
2386Tue Dec 8 10:23:52 1998 Richard Henderson <rth@cygnus.com>
2387
2388 * c-decl.c (flag_isoc9x): Default off.
2389 (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
2390 * cccp.c (print_help, main): Likewise.
2391 * gcc.c (default_compilers): Update for -std=gnu*.
2392
dfb7c80f
JL
2393Tue Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com)
2394
d91d4a5c
JL
2395 * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
2396 * demangle.h: Deleted.
2397
dfb7c80f
JL
2398 * reload1.c (current_function_decl): Declare.
2399
b4eadc3d
KG
2400Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2401
2402 * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
2403
6785b077
KG
2404Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2405
2406 * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
2407
54953b66
UD
24081998-12-08 Ulrich Drepper <drepper@cygnus.com>
2409
2410 * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
2411 and fputs_unlocked.
2412 * configure: Rebuilt.
2413 * system.h: If the *_unlocked functions are available use them
2414 instead of the locked counterparts by defining macros.
2415 * config.in: Regenerated.
2416
872936ad
MS
2417Tue Dec 8 00:34:05 1998 Mike Stump <mrs@wrs.com>
2418
2419 * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
2420 wrong and should only be used for dump related things, not
2421 debugging information, instead main_input_filename should be used.
2422 Also, reuse output_file_directive if possible.
2423 * i386/aix386ng.h (ASM_FILE_START): Likewise.
2424 * i386/isc.h (ASM_FILE_START): Likewise.
2425 * i386/win-nt.h (ASM_FILE_START): Likewise.
2426 * i386/sun386.h (ASM_FILE_START): Likewise.
2427
11fa8909
RL
2428Mon Dec 7 23:56:28 1998 Robert Lipe <robertl@dgii.com>
2429
2430 * configure.in (mips*-*-linux*): Handle big and little endian
2431 systems.
2432 * configure: Rebuilt.
2433
fe77a034
MS
2434Mon Dec 7 23:14:51 1998 Mike Stump <mrs@wrs.com>
2435
2436 * emit-rtl.c: Fix typo.
2437
9becac0c
NS
2438Mon Dec 7 23:07:38 1998 Nathan Sidwell <nathan@acm.org>
2439
2440 * reload1.c (eliminate_regs): Don't do anything, if we're not
2441 generating code.
2442
5f680ab6
DD
2443Mon Dec 7 15:27:09 1998 DJ Delorie <dj@cygnus.com>
2444
2445 * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
2446 Add comment.
2447 * mips/mips.c (mips_select_section): Add comment.
2448
c25d8793
MS
2449Mon Dec 7 17:55:06 1998 Mike Stump <mrs@wrs.com>
2450
2451 * cccp.c (ignore_escape_flag): Add support for \ as `natural'
2452 characters in file names in #line to be consistent with #include
2453 handling. We support escape prcessing in the # 1 "..." version of
2454 the command. See also support in cp/lex.c.
2455 (handle_directive): Likewise.
2456 (do_line): Likewise.
2457
c50bca08
ZW
24581998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu>
2459
2460 * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
2461 so it'll work on non-ASCII platforms. Always consider $ an
2462 identifier character. Take no arguments.
2463 (cpp_reader_init): Call initialize_char_syntax with no
2464 arguments.
2465 (cpp_start_read): Don't call initialize_char_syntax again.
2466 Clear is_idchar['$'] and is_idstart['$'] if not
2467 opts->dollars_in_ident.
2468
2469 * cpplib.h (struct cpp_reader): Replace void *data element by
2470 cpp_options *opts. Rearrange elements to make gdb printout
2471 less annoying (put buffer stack at end).
2472 (CPP_OPTIONS): Get rid of now-unnecessary cast.
2473
2474 * cppmain.c: s/data/opts/ when initializing cpp_reader
2475 structure.
2476 * c-decl.c: Likewise.
2477 * objc/objc-act.c: Likewise.
2478 * fix-header.c: Likewise.
2479
24801998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu>
f1a86df6
ZW
2481
2482 * cpplib.h (struct cpp_buffer): Replace dir and dlen members
2483 with a struct file_name_list pointer.
2484 (struct cpp_reader): Add pointer to chain of `actual
2485 directory' include searchpath entries.
2486 (struct file_name_list): Add *alloc pointer for the sake of
2487 the actual-directory chain.
2488
2489 Move definition of HOST_WIDE_INT here.
2490 (cpp_parse_escape): Change prototype to match changes in
2491 cppexp.c.
2492
2493 * cppfiles.c (actual_directory): New function.
2494 (finclude): Use it to initialize the buffer's actual_dir
2495 entry.
2496 (find_include_file): We don't need to fix up max_include_len
2497 here.
2498
2499 * cpplib.c (do_include): Don't allocate a file_name_list on
2500 the fly for current directory "" includes, use the one that's
2501 been preallocated in pfile->buffer->actual_dir. Hoist out
2502 duplicate code from the search_start selection logic.
2503 (cpp_reader_init): Initialize pfile->actual_dirs.
2504
2505 Remove definition of HOST_WIDE_INT. Change calls
2506 to cpp_parse_escape to match changes in cppexp.c (note
2507 hardcoded MASK, which is safe since this is the source
2508 character set).
2509
2510 * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
2511 to handle wide character constants in #if directives. The
2512 function now returns a HOST_WIDE_INT, and takes a third
2513 argument which is a binary mask for all legal values (0x00ff
2514 for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.) Define
2515 MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK. Change callers of
2516 cpp_parse_escape to match. [Fixes c-torture/execute/widechar-1.c]
2517
93447205
DB
2518Mon Dec 7 15:38:25 1998 Dave Brolley <brolley@cygnus.com>
2519
2520 * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
2521
2522Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2523
2524 * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
2525 * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
2526 * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
2527
1db9f6ce
NC
2528Mon Dec 7 11:30:49 1998 Nick Clifton <nickc@cygnus.com>
2529
2530 * final.c (output_asm_name): Use tabs to seperate comments from
2531 assembly text.
2532
2533 Include instruction lengths (if defined) in output.
2534
eb6a3bc0
MH
2535Mon Dec 7 10:53:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2536
2537 * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
2538 in the loop_info structure.
2539
e6592fff
CM
2540Mon Dec 7 11:04:40 1998 Catherine Moore <clm@cygnus.com>
2541
2542 * configure.in: (arm*-*-ecos-elf): New target.
2543 * configure: Regenerated.
2544 * config/arm/elf.h (ASM_WEAKEN_LABEL): Define.
2545 * config/arm/ecos-elf.h: New file.
2546 * config/arm/unknown-elf.h (TARGET_VERSION): Check
2547 for redefinition.
2548
1a953d0f
R
2549Mon Dec 7 16:15:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
2550
2551 * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
2552
8962b4b4
JL
2553Sun Dec 6 04:19:45 PST 1998 Jeff Law (law@cygnus.com)
2554
2555 * version.c: Bump for snapshot.
2556
5629b16c
MH
2557Sun Dec 6 05:16:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2558
2559 * loop.c (check_dbra_loop): New argument loop_info. Update fields
2560 as needed.
2561
01bdf1bc
JL
2562Sun Dec 6 03:40:13 PST 1998 Jeff Law (law@cygnus.com)
2563
2564 * version.c: Bump for snapshot.
2565
badcf916
AO
2566Sun Dec 6 07:49:29 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
2567
2568 * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
2569 compressed reports are ok and preferred over URLs
2570
892d0a6d
AO
2571Sun Dec 6 07:45:33 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
2572
2573 * invoke.texi (Warning Options): Soften the tone of -pedantic
2574
cd2c4c54
L
2575Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org)
2576
2577 * print-rtl.c (print_rtx): Add prototype.
2578
2579 * unroll.c (iteration_info): Make it static.
2580
02e3377d
RH
2581Sun Dec 6 01:19:46 1998 Richard Henderson <rth@cygnus.com>
2582
2583 * alias.c (memrefs_conflict_p): A second ANDed address
2584 disables the aligned address optimization.
2585
4bd75896
RH
2586Sat Dec 5 18:48:25 1998 Richard Henderson <rth@cygnus.com>
2587
2588 * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
2589 in -c << n case.
2590
c78358d4
JM
2591Sat Dec 5 15:14:52 1998 Jason Merrill <jason@yorick.cygnus.com>
2592
2593 * i960.h (BOOL_TYPE_SIZE): Define.
2594
e868a840
MH
2595Sun Dec 6 00:28:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2596
2597 * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
2598 from old valid_parallel_operands_4.
2599 (valid_parallel_operands_4): Check that operands for 4 operand
2600 parallel insns are valid, excluding load/store insns.
2601 * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
2602 * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
2603 valid_parallel_load_store instead of valid_parallel_operands_4.
2604 (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber,
2605 *negqf2_movqf_clobber, *absqi2_movqi_clobber,
2606 *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
2607 *notqi_movqi_clobber): Use valid_parallel_operands_4.
2608 (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
2609 *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
2610 *subqi3_movqi_clobber): Use valid_parallel_operands_5.
2611
cd20cc86
MH
2612Sat Dec 5 23:52:01 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2613
2614 * config/c4x/c4x.c (iteration_info): Delete extern.
2615
f62a15e3
BS
2616Fri Dec 4 20:15:57 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2617
faa9eb19
BS
2618 * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
2619
f62a15e3
BS
2620 * final.c (cleanup_subreg_operands): Delete some unused code.
2621
2622 * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
2623 (struct insn_alternative): New structure definition.
2624 (recog_op_alt): Declare variable.
2625 (preprocess_constraints): Declare function.
2626 * recog.c (recog_op_alt): New variable.
2627 (extract_insn): Verify number of alternatives is in range.
2628 (preprocess_constraints): New function.
2629 * reg-stack.c: Include recog.h.
2630 (constrain_asm_operands): Delete.
2631 (get_asm_operand_lengths): Delete.
2632 (get_asm_operand_n_inputs): New function.
2633 (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
2634 N_OUTPUTS args. All callers changed.
2635 Compute number of inputs and outputs here by calling
2636 get_asm_operand_n_inputs.
2637 Instead of constrain_asm_operands, call extract_insn,
2638 constrain_operands and preprocess_constaints. Use information
2639 computed by these functions throughout.
2640 (record_reg_life): Delete code that is unused due to changes in
2641 record_asm_reg_life.
2642 (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
2643 N_INPUTS and N_OUTPUTS args. All callers changed.
2644 Similar changes as in record_asm_reg_life.
2645 (subst_stack_regs): Move n_operands declaration into the if statement
2646 where it's used.
2647 Delete code that is unused due to changes in subst_asm_stack_regs.
2648 * stmt.c (expand_asm_operands): Verify number of alternatives is in
2649 range.
2650 * Makefile.in (reg-stack.o): Depend on recog.h.
2651
2ec10ea9
JL
2652Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com)
2653
2654 * except.c (set_exception_version_code): Argument is an "int".
2655
16fb6b5e
JL
2656Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com)
2657
2658 * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
2659 * configure: Rebuilt.
2660
18cae839
RL
2661Fri Dec 4 01:29:28 1998 Robert Lipe <robertl@dgii.com>
2662
2663 * configure.in (mipsel-*-linux*): New target.
2664 * mips/linux.h: New file, based on other Linux targets.
2665
0fcff082
MS
2666Thu Dec 3 11:19:50 1998 Mike Stump <mrs@wrs.com>
2667
2668 * gthr-vxworks.h (__ehdtor): Fix memory leak. The delete hook
2669 runs in the context of the deleter, not the deletee, so we must
2670 use taskVarGet to find the correct memory to free.
2671 (__gthread_key_create): Initialize the task
2672 variable subsystem so that the task variable is still active when
2673 the delete hook is run.
2674
9f643ff8
JL
26751998-12-03 Joseph S. Myers <jsm28@cam.ac.uk>
2676
f4190acc
JM
2677 * pdp11.h: Use optimize_size for space optimizations.
2678 * pdp11.c: Likewise.
2679 * pdp11.md: Likewise.
2680
9f643ff8
JL
2681 * pdp11.h (TARGET_40_PLUS): Fix typo.
2682
2683Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com)
2684
2685 * local-alloc.c (block_alloc): Slightly retune heuristic to widen
2686 qty lifetimes.
2687
39cec1ac
MH
2688Thu Dec 3 22:30:18 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2689
2690 * alias.c (addr_side_effect_eval): New function.
2691 (memrefs_conflict_p): Use it.
2692 * rtl.h (addr_side_effect_eval): Prototype it.
2693
a6a715ca
JM
26941998-12-02 Joseph S. Myers <jsm28@cam.ac.uk>
2695
2696 * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
2697
226592de
JW
2698Wed Dec 2 11:23:07 1998 Jim Wilson <wilson@cygnus.com>
2699
2700 * reload.c (find_reloads): When force const to memory, put result
2701 in substed_operand not *recog_operand_loc.
2702
1747054f
UD
27031998-12-02 Ulrich Drepper <drepper@cygnus.com>
2704
2705 * c-lex.c: Fix indentation from last patch.
2706 Remove trailing whitespace.
2707 * real.c: Likewise.
2708
2536e1ee
JL
2709Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com)
2710
2711 * flow.c (delete_block): Call set_last_insn after we have reset
2712 NEXT_INSN (kept_tail).
2713
b151501e
JL
2714Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com)
2715
2716 * mips.md (trap_if): Use "$0" for the value zero.
2717
6f4d7222
UD
2718Tue Dec 1 20:49:49 1998 Ulrich Drepper <drepper@cygnus.com>
2719 Stephen L Moshier <moshier@world.std.com>
2720 Richard Henderson <rth@cygnus.com>
2721
2722 * c-common.c (declare_function_name): Declare predefinied variable
2723 `__func__'.
2724
2725 * c-decl.c (flag_isoc9x): Set to 1 by default.
2726 (c_decode_option): Handle -std= option. Remove -flang-isoc9x.
2727 (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
2728
2729 * c-parse.in: Allow constructors in ISO C 9x.
2730 Rewrite designator list handling.
2731 Allow [*] parameters.
2732 Don't warn about comma at end of enum definition for ISO C 9x.
2733
2734 * cccp.c (c9x): New variable.
2735 (rest_extension): New variable.
2736 (print_help): Document new -std= option.
2737 (main): Recognize -std= option. Set c9x appropriately.
2738 (create_definition): Recognize ISO C 9x vararg macros.
2739
2740 * gcc.c (default_compilers): Adjust specs for -std options.
2741 (option_map): Add --std.
2742 (display_help): Document -std.
2743
2744 * toplev.c (documented_lang_options): Add -std and remove
2745 -flang-isoc9x.
2746
2747 * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
2748 or REAL_VALUE_HTOF based on base of the constants.
2749 * fold-const.c (real_hex_to_f): New function. Replacement function
2750 for hex FP conversion if REAL_ARITHMETIC is not defined.
2751 * real.c (asctoeg): Add handling of hex FP constants.
2752 * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
2753 real_hex_to_f.
2754
08c2951c
SC
2755Tue Dec 1 16:45:49 1998 Stan Cox <scox@cygnus.com>
2756
2757 * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
2758 -mcheck-range-division/-mcheck-zero-division checking. Avoid as macro
2759 expansion. Use hi/lo as destination register.
2760 (div_trap): New.
2761 (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
2762 umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
2763 Avoid as macro expansion. Use hi/lo as destination register.
2764
2765 * mips.h (MASK_CHECK_RANGE_DIV): New.
2766 (MASK_NO_CHECK_ZERO_DIV): New.
2767 (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
2768 (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
2769 return address for leaf functions out of r31 to support
2770 builtin_return_address.
2771
1f5fb51f
HB
2772Tue Dec 1 15:03:30 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2773
2774 * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
2775 NEXT_INSN(x) to check insn x.
2776
45c85c4e
JL
2777Tue Dec 1 15:20:44 1998 Jeffrey A Law (law@cygnus.com)
2778
e3f6ee23
JL
2779 * flow.c (delete_block): Call set_last_insn if we end up deleting the
2780 last insn in the rtl chain.
2781
45c85c4e
JL
2782 * reload1.c (reload): Do not set reload_completed or split insns
2783 here. Instead...
2784 * toplev.c (rest_of_compilation): Set reload_completed after
2785 reload returns. Split insns after reload_cse has run.
2786
df3ba30a
RH
2787Tue Dec 1 11:55:04 1998 Richard Henderson <rth@cygnus.com>
2788
2789 * final.c (final_scan_insn): Abort if block_depth falls below 0.
2790
bbc1b3f7
NC
2791Tue Dec 1 10:23:16 1998 Nick Clifton <nickc@cygnus.com>
2792
2793 * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
2794
2795Tue Dec 1 10:22:18 1998 Nick Clifton <nickc@cygnus.com>
2796
2797 * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
2798 use of user-label_prefix.
2799
2b49ee39
R
2800Tue Dec 1 17:58:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
2801
78a2bc08
R
2802 * reload1.c (emit_reload_insns): Clear spill_reg_store
2803 when doing a new non-inherited reload from the same pseudo.
2804
2b49ee39
R
2805 * local-alloc.c (function_invariant_p): New function.
2806 (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
2807 to decide if an equivalence should be recorded.
2808 * reload1.c (num_eliminable_invariants): New static variable.
2809 (reload): Set it. Use function_invariant_p instead of CONSTANT_P
2810 to decide if an equivalence should be recorded.
2811 Unshare PLUS.
2812 (calculate_needs_all_insns): Skip insns that only set an equivalence.
2813 Take num_eliminable_invariants into account when deciding
2814 if register elimination should be done.
2815 (reload_as_needed): Take num_eliminable_invariants into account
2816 when deciding if register elimination should be done.
2817 (eliminate_regs): Handle non-constant reg_equiv_constant.
2818 * rtl.h (function_invariant_p): Declare.
2819
dfc00b38
JL
2820Mon Nov 30 02:00:08 PST 1998 Jeff Law (law@cygnus.com)
2821
2822 * version.c: Bump for snapshot.
2823
a8afb377
JL
2824Mon Nov 30 00:42:59 PST 1998 Jeff Law (law@cygnus.com)
2825
2826 * version.c: Bump for snapshot.
2827
9bbdf48e
JM
2828Sun Nov 29 22:59:40 1998 Jason Merrill <jason@yorick.cygnus.com>
2829
2830 * except.c (add_new_handler): Complain about additional handlers
2831 after one that catches everything.
2832
66953094
JL
2833Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com)
2834
2835 * configure.in (alpha*-*-netbsd): Fix typo.
2836 * configure: Rebuilt.
2837
2778b98d
KG
2838Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2839
2840 * system.h: Include libiberty.h.
2841
2842 * c-aux-info.c: Remove prototypes for concat/concat3. Change
2843 function `concat' from fixed parameters to variable parameters,
2844 as is done in libiberty. All callers of concat/concat3
2845 changed to use the new `concat' with variable args.
2846
2847 * cccp.c: Remove things made redundant by libiberty.h and/or
2848 conform to libiberty standards.
2849 * cexp.y: Likewise.
2850 * collect2.c: Likewise.
2851 * config/1750a/1750a.h: Likewise.
2852 * cppalloc.c: Likewise.
2853 * cppexp.c: Likewise.
2854 * cppfiles.c: Likewise.
2855 * cpphash.c: Likewise.
2856 * cpplib.c: Likewise.
2857 * dyn-string.c: Likewise.
2858 * fix-header.c: Likewise.
2859 * gcc.c: Likewise.
2860 * gcov.c: Likewise.
2861 * genattr.c: Likewise.
2862 * genattrtab.c: Likewise.
2863 * gencheck.c: Likewise.
2864 * gencodes.c: Likewise.
2865 * genconfig.c: Likewise.
2866 * genemit.c: Likewise.
2867 * genextract.c: Likewise.
2868 * genflags.c: Likewise.
2869 * gengenrtl.c: Likewise.
2870 * genopinit.c: Likewise.
2871 * genoutput.c: Likewise.
2872 * genpeep.c: Likewise.
2873 * genrecog.c: Likewise.
2874 * getpwd.c: Likewise.
2875 * halfpic.c: Likewise.
2876 * hash.c: Likewise.
2877 * mips-tdump.c: Likewise. Wrap malloc/realloc/calloc prototypes
2878 in NEED_DECLARATION_* macros.
2879
2880 * mips-tfile.c: Remove things made redundant by libiberty.h and/or
2881 conform to libiberty standards.
2882 (fatal): Fix const-ification of variable `format' in
2883 !ANSI_PROTOTYPES case.
2884
2885 * prefix.c: Remove things made redundant by libiberty.h and/or
2886 conform to libiberty standards.
2887
2888 * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
2889 conflicting with function `spaces' from libiberty.
2890
2891 * profile.c: Remove things made redundant by libiberty.h and/or
2892 conform to libiberty standards.
2893 * protoize.c: Likewise.
2894 * rtl.h: Likewise.
2895 * scan.h: Likewise.
2896 * tlink.c: Likewise.
2897 * toplev.c: Likewise.
2898 * toplev.h: Likewise.
2899 * tree.h: Likewise.
2900
21380ab0
KG
2901Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2902
2903 * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
2904
6e863849
MH
2905Thu Nov 26 23:45:37 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2906
2907 * README.C4X: Updated URLs.
2908 * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
2909 (valid_parallel_operands_5): Remove unused variable.
2910
d97860ae
MH
2911Thu Nov 26 23:40:03 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2912
2913 * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
2914
71205e0b
MH
29151998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
2916
2917 * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
2918 which can be configured.
2919 (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
2920 (Makefile): Pass actual LANGUAGES through the environment when
2921 re-configuring.
2922 (cstamp-h): Likewise.
2923 (config.status): Likewise.
2924
2925 * configure.in (enable_languages): Add new configuration parameter
2926 "--enable-languages=lang1,lang2,...".
2927 (${srcdir}/*/config-lang.in): Change handling to configure only
2928 those directories, that the user might have enabled; default to
2929 "all" existing languages.
2930 * configure: Regenerate.
2931
a2e1a0bf
RH
2932Thu Nov 26 00:19:19 1998 Richard Henderson <rth@cygnus.com>
2933
2934 * rtlanal.c (regs_set_between_p): New function.
2935 * rtl.h (regs_set_between_p): Prototype it.
2936 * jump.c (jump_optimize): Use it instead of modified_between_p
2937 in the Sep 2 change.
2938
83575957
ID
2939Wed Nov 25 23:32:02 1998 Ian Dall <Ian.Dall@dsto.defence.gov.au>
2940 Matthias Pfaller <leo@dachau.marco.de>
2941
2942 * invoke.texi (Option Summary, NS32K Options): add description
2943 of NS32K specific options.
2944
2945 * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
2946 fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
2947 fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
2948 negdf2, absdf2): Use l instead of f since the double class and
2949 float class are no longer the same.
2950 (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
2951 divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
2952 ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
2953 use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
2954 fixed.
2955 (cmpsi, cmphi, cmpqi): use general_operand instead of
2956 non_immediate_operand. Removes erroneous assumption that can't
2957 compare constants.
2958 (movsf, movsi, movhi, movqi,...): New register numbering scheme.
2959 (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
2960 constants.
2961 (movstrsi, movstrsi1, movstrsi2): completely new block move
2962 scheme.
2963 (...): Patterns to exploit multiply-add instructions.
2964 (udivmodsi4, udivmodsi_internal4, udivmodhi4,
2965 udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): new
2966 patterns to exploit extended divide insns.
2967 (udivsi3, udivhi3, udivqi3): remove since superceded by udivmodsi
2968 etc patterns.
2969
2970 * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
2971 float return values as well as simple scalar floats.
2972 (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
2973 support new flag to denote 32381 fpu.
2974 (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
2975 (CONDITIONAL_REGISTER_USAGE): disable extra 32381 registers if not
2976 compling for 32381.
2977 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
2978 REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
2979 REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
2980 L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
2981 LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
2982 REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
2983 REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
2984 REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
2985 REG_OK_FOR_BASE_P, MEM_REG): new register scheme to include 32381
2986 fpu registers and special register classes for new 32381
2987 instructions dotf and polyf.
2988 (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
2989 be tieable.
2990 (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
2991 INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
2992 required.
2993 (SMALL_REGISTER_CLASSES): Make dependant on -mmult-add option.
2994 (MOVE_RATIO): Set to zero because of smart movstrsi implimentation.
2995 (REGISTER_MOVE_COST): move code to register_move_cost function for
2996 ease of coding and debugging.
2997 (CLASS_LIKELY_SPILLED_P): Under new register scheme class
2998 LONG_FLOAT_REGO is likely spilled but not caught by default
2999 definition.
3000 (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): use macro
3001 instead of hard coded numbers in range check.
3002 (ASM_OUTPUT_LABELREF_AS_INT): delete since unused.
3003 (...): Add prototypes for functions in ns32k.c but disable because
3004 of problems when ns32k.h is included in machine independant files.
3005
3006 * ns32k.c: include "system.h", "tree.h", "expr.h", "flags.h".
3007 (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
3008 hard_regno_mode_ok, secondary_reload_class,
3009 print_operand, print_operand_address): new register scheme to
3010 include 32381 fpu registers and special register classes for new
3011 32381 instructions dotf and polyf.
3012 (gen_indexed_expr): Make static to keep namespace clean.
3013 (check_reg): remove since never called.
3014 (move_tail, expand_block_move): helper functions for "movstrsi"
3015 block move insn.
3016 (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
3017 Increase cost of moves which go via memory.
3018 * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
3019 (CPP_PREDEFINES): nolonger predefine "unix".
3020
3021 * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
3022 Remove erroneous %$. print_operand() can work out from the rtx is
3023 an immediate prefix is required.
3024
3025 * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
3026 VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
3027 SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
3028 convention.
3029 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
3030 pic operands.
3031
3032 * ns32k.c (symbolic_reference_mentioned_p, print_operand):
3033 Correct handling of pic operands.
3034 (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
3035 ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
3036 -mrtd calling convention.
3037
36696297
TT
3038Wed Nov 25 23:42:20 1998 Tom Tromey <tromey@cygnus.com>
3039
3040 * gcc.c (option_map): Recognize --output-class-directory.
3041
e96b4d7a
MH
3042Thu Nov 26 18:26:21 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3043
3044 * loop.h (precondition_loop_p): Added new mode argument.
3045 * unroll.c (precondition_loop_p): Likewise.
3046 (approx_final_value): Function deleted and subsumed
3047 into loop_iterations.
3048 (loop_find_equiv_value): New function.
3049 (loop_iterations): Use loop_find_equiv_value to find increments
3050 too large to be immediate constants. Also use it to find terms
3051 common to initial and final iteration values that can be removed.
3052
302670f3
MH
3053Thu Nov 26 18:05:04 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3054
3055 * loop.h (struct loop_info): Define new structure.
3056 (precondition_loop_p): Added prototype.
3057 (unroll_loop): Added new argument loop_info to prototype.
3058 (final_biv_value, final_giv_value): Added new argument n_iterations
3059 to prototype.
3060 * loop.c (strength_reduce): Declare new structure loop_iteration_info
3061 and new pointer loop_info.
3062 (loop_n_iterations): Replace global variable by element in
3063 loop_info structure.
3064 (check_final_value): New argument n_iterations.
3065 (insert_bct): New argument loop_info.
3066 (loop_unroll_factor): Replace global array by element in
3067 loop_info structure.
3068 (loop_optimize): Remove code to allocate and initialise
3069 loop_unroll_factor_array.
3070 * unroll.c (precondition_loop_p): No longer static since
3071 used by branch on count optimization.
3072 (precondition_loop_p, unroll_loop): New argument loop_info.
3073 (final_biv_value, final_giv_value, find_splittable_regs): New
3074 argument n_iterations.
3075 (loop_iteration_var, loop_initial_value, loop_increment,
3076 loop_final_value, loop_comparison_code, loop_unroll_factor):
3077 Replaced global variables by loop_info structure.
3078 (loop_unroll_factor): Replace global array by element in
3079 loop_info structure.
3080
a7060368
MH
3081Thu Nov 26 17:49:29 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3082
3083 * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
3084 when loop reversed.
3085
3086 * unroll.c (precondition_loop_p): Return loop_initial_value
3087 for initial_value instead of loop_iteration_var.
3088
959e0a76
MH
3089Thu Nov 26 17:15:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3090
3091 * config/c4x/c4x.md: Fix minor formatting problems. Update docs.
3092 (*b, *b_rev, *b_noov, *b_noov_rev, *db,
3093 decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
3094 to output the instruction sequences.
3095 (rpts): Delete.
3096 (rptb_top): Provide alternatives to use any register or memory
3097 for loop counter.
3098 (rptb_end): Emit use of operands rather than assigning them
3099 explicitly to the RS and RE registers.
3100
0fe69aba
MH
3101Thu Nov 26 16:37:59 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3102
3103 * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
3104 c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
3105 c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
3106 c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after,
3107 c4x_merge_notes, c4x_parallel_process,
3108 c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
3109 c4x_combine_parallel): Delete.
3110
3111Thu Nov 26 15:16:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3112
3113 * config/c4x/c4x.c: (c4x_override_options): For compatibility
3114 with old target options clear flag_branch_on_count_reg if
3115 -mno-rptb specified and set flag_argument_alias is -mno-aliases
3116 specified.
3117 (c4x_output_cbranch): Handle a sequence of insns rather than a
3118 single insn.
4271f003 3119 (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
0fe69aba 3120 has not been allocated as the loop counter.
4271f003
MH
3121 (c4x_address_conflict): Do not allow two volatile memory references.
3122 (valid_parallel_operands_4, valid_parallel_operands_5,
3123 valid_parallel_operands_6): Reject pattern if the register destination
3124 of the first set is used as part of an address in the second set.
0fe69aba 3125
2e3e9ead
MH
3126Thu Nov 26 14:56:32 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3127
3128 * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
3129 (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
3130 is no longer enabled if PARALLEL_MPY_FLAG set.
3131 (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
3132 (REG_CLASS_CONTENTS): Add braces around initializers.
3133 (HAVE_MULTIPLE_PACK): Define.
3134 (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with
3135 REAL_VALUE_TO_DECIMAL.
3136 (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with
3137 REAL_VALUE_TO_DECIMAL.
3138 (ar0_reg_operand): Add prototype.
3139 (ar0_mem_operand): Likewise.
3140 (ar1_reg_operand): Likewise.
3141 (ar1_mem_operand): Likewise.
3142 (ar2_reg_operand): Likewise.
3143 (ar2_mem_operand): Likewise.
3144 (ar3_reg_operand): Likewise.
3145 (ar3_mem_operand): Likewise.
3146 (ar4_reg_operand): Likewise.
3147 (ar4_mem_operand): Likewise.
3148 (ar5_reg_operand): Likewise.
3149 (ar5_mem_operand): Likewise.
3150 (ar6_reg_operand): Likewise.
3151 (ar6_mem_operand): Likewise.
3152 (ar7_reg_operand): Likewise.
3153 (ar7_mem_operand): Likewise.
3154 (ir0_reg_operand): Likewise.
3155 (ir0_mem_operand): Likewise.
3156 (ir1_reg_operand): Likewise.
3157 (ir1_mem_operand): Likewise.
3158 (group1_reg_operand): Likewise.
3159 (group1_mem_operand): Likewise.
3160 (ir1_reg_operand): Likewise.
3161 (arx_reg_operand): Likewise.
3162 (not_rc_reg): Likewise.
3163 (not_modify_reg): Likewise.
3164 (c4x_group1_reg_operand): Remove prototype.
3165 (c4x_group1_mem_operand): Likewise.
3166 (c4x_arx_reg_operand): Likewise.
3167
a46f03ea
SM
3168Wed Nov 25 19:02:55 1998 (Stephen L Moshier) <moshier@world.std.com>
3169
3170 * emit-rtl.c (gen_lowpart_common): Remove earlier change.
3171 * real.c (make_nan): Make SIGN arg actually specify the sign bit.
3172
f3ed04e7
MH
3173Thu Nov 26 14:12:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3174
3175 * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
3176 during reload.
3177
0e1bd737
R
3178Wed Nov 25 22:05:28 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3179
3180 * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
3181 unless FMOVD_WORKS is defined.
3182
910bc42d
R
3183Wed Nov 25 20:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3184
3185 * regclass.c (init_reg_sets): Move code that calculates tables
3186 dependent on reg_class_contents from here...
3187 (init_reg_sets_1): To here.
3188
0b3d776a
ZW
3189Wed Nov 25 14:54:46 1998 Zack Weinberg <zack@rabi.phys.columbia.edu>
3190
3191 * cpplib.h: Delete struct import_file. Add ihash element to
3192 struct cpp_buffer. Delete dont_repeat_files and
3193 import_hash_table elements from cpp_reader; change
3194 all_include_files to a hash table. Delete all foobar_include
3195 / last_foobar_include elements from struct cpp_options; put
3196 back four such: quote_include, bracket_include,
3197 system_include, after_include. Redo struct file_name_list
3198 completely. Add new structure type include_hash. Add
3199 prototypes for merge_include_chains and include_hash. Change
3200 prototypes for finclude, find_include_file, and
3201 append_include_chain to match changes below.
3202
3203 * cppfiles.c (simplify_pathname, include_hash,
3204 remap_filename, merge_include_chains): New functions.
3205 (add_import, lookup_import, open_include_file): Removed.
3206 (INO_T_EQ): Define this (copied from cccp.c).
3207 (hack_vms_include_specification): Remove all calls and #if 0
3208 out the definition. It was being called incorrectly and at
3209 the wrong times. Until a VMSie can look at this, it's better
3210 to not pretend to support it.
3211 (append_include_chain): Change calling convention; now takes
3212 only one directory at a time, and sets up the data structure
3213 itself.
3214 (redundant_include_p): Rewritten - this is now used for all
3215 include redundancy, whether by #ifndef, #import, or #pragma
3216 once. Looks up things in the include hash table.
3217 (file_cleanup): Decrement pfile->system_include_depth here if
3218 it's >0.
3219 (find_include_file): Calling convention changed; now passes
3220 around a struct include_hash instead of 3 separate parameters.
3221 Guts ripped out and replaced with new include_hash mechanism.
3222 (finclude): Calling convention changed as for
3223 find_include_file. Error exits pulled out-of-line. Reformat.
3224 (safe_read): Return a long, not an int.
3225 (deps_output): Don't recurse.
3226
3227 * cpplib.c (is_system_include): Deleted.
3228 (path_include): Fix up call to append_include_chain.
3229 (do_include): Fix up calls to find_include_file and finclude.
3230 Clean up dependency output a bit. Shorten obnoxiously lengthy
3231 #import warning message. Don't decrement
3232 pfile->system_include_depth here.
3233 (do_pragma): Understand the include_hash structure. Reformat.
3234 (do_endif): Correct handling of control macros. Understand
3235 the include_hash.
3236 (cpp_start_read): Fix up calls to finclude. Call
3237 merge_include_chains.
3238 (cpp_handle_option): Fix up calls to append_include_chain.
3239 Understand the four partial include chains.
3240 (cpp_finish): Add debugging code (#if 0-ed out) for the
3241 include_hash.
3242 (cpp_cleanup): Free the include_hash, not the import hash and
3243 the all_include and dont_repeat lists which no longer exist.
3244
f1db3576
JL
3245Wed Nov 25 11:26:19 1998 Jeffrey A Law (law@cygnus.com)
3246
3247 * toplev.c (no_new_pseudos): Define.
3248 (rest_of_compilation): Set no_new_pseudos as needed.
3249 * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
3250 if no_new_pseudos is set.
3251 * rtl.h (no_new_pseudos): Declare it.
3252 * reload1.c (reload): Update comments.
3253 * md.texi: Corresponding changes.
3254
3255Wed Nov 25 11:26:17 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3256
3257 * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
3258 (choose_reload_regs): Rename it here as well. When computing it,
3259 also merge in used hardregs.
3260
b12da25e
ZW
32611998-11-25 07:51 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
3262
3263 * gcc.c: Split out Objective-C specs to...
3264 * objc/lang-specs.h: here. (New file.) Make the specs cpplib
3265 aware.
3266
3267 * c-lex.c (init_parse): Always initialize the filename global.
3268 * objc/objc-act.c (lang_init): Always call check_newline at
3269 beginning of file.
3270
5828374f
GS
3271Wed Nov 25 00:48:29 1998 Graham <grahams@rcp.co.uk>
3272
3273 * reload1.c (reload): Remove unused variable.
3274 (reload_reg_free_for_value_p): Add missing parameter definition.
3275
3276 * jump.c (jump_optimize): Remove unused variable.
3277
940da324
JL
3278Wed Nov 25 00:07:11 1998 Jeffrey A Law (law@cygnus.com)
3279
0c3a267b
JL
3280 * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
3281
940da324
JL
3282 * cse.c (fold_rtx): Make autoincrement addressing mode tests be
3283 runtime selectable.
3284 * expr.c (move_by_pieces): Similarly.
3285 (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
3286 * flow.c (find_auto_inc): Similarly.
3287 (try_pre_increment): Similarly.
3288 * loop.c (strength_reduce): Similarly.
3289 * regclass.c (auto_inc_dec_reg_p): Similarly.
3290 * regmove.c (try_auto_increment): Similarly.
3291 (fixup_match_1): Similarly.
3292 * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
3293 (HAVE_PRE_DECREMENT): Similarly.
3294 (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
0c3a267b
JL
3295 * Corresponding changes to all target header files.
3296 * tm.texi: Update docs for autoinc addressing modes.
940da324 3297
d1be3be3
JW
3298Tue Nov 24 20:24:59 1998 Jim Wilson <wilson@cygnus.com>
3299
3300 * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
3301 * configure: Rebuild.
3302 * config/elfos.h: New file.
3303 * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
3304 config/m68k/t-m68kelf: New file.
3305
f6c2a93c
JL
3306Tue Nov 24 13:40:06 1998 Jeffrey A Law (law@cygnus.com)
3307
3308 * Makefile.in (HOST_AR): Define.
3309 (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
3310 (libcpp.a): Use the host tools explicitly.
3311 (STAGESTUFF): Add libcpp.a.
3312
6970d948
NC
3313Tue Nov 24 09:33:49 1998 Nick Clifton <nickc@cygnus.com>
3314
3315 * config/m32r/m32r.md (movstrsi_internal): Describe changes made
3316 to source and destination registers.
3317
d0b9a143
MS
3318Mon Nov 23 20:28:02 1998 Mike Stump <mrs@wrs.com>
3319
3320 * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
3321 The strategy we now use is to pre allocate the top_elt along
3322 with the EH context so that each thread has its own top_elt.
3323 This is necessary as the dynmanic cleanup chain is used on the
3324 top element of the stack and each thread MUST have its own.
3325 (eh_context_static): Likewise.
3326 (new_eh_context): Likewise.
3327 (__sjthrow): Likewise.
3328
8c8a9717
JM
3329Mon Nov 23 20:25:03 1998 Jason Merrill <jason@yorick.cygnus.com>
3330
3331 * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
3332 * i386.md (prologue_get_pc): Remove unused variable.
3333
b8a14125
GN
3334Mon Nov 23 17:05:40 1998 Geoffrey Noer <noer@cygnus.com>
3335
3336 * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
3337
735a0e33
UD
3338Mon Nov 23 16:40:00 1998 Ulrich Drepper <drepper@cygnus.com>
3339
3340 * Makefile.in (OBJS): Add graph.o
3341 (graph.o): New dependency list.
3342 * flags.h: Declare dump_for_graph and define graph_dump_types type.
3343 * print-rtl.c (dump_for_graph): Define new variable.
3344 (print_rtx): Rewrite to allow use in graph dumping functions.
3345 * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
3346 finish_graph_dump_file.
3347 Define graph_dump_format.
3348 (compile_file): If graph dumping is enabled also clear these files.
3349 Finish graph dump files.
3350 (rest_of_compilation): Also dump graph information if enabled.
3351 (main): Recognize -dv to enabled VCG based graph dumping.
3352 * graph.c: New file. Graph dumping functions.
3353
a05e22b8
RH
3354Mon Nov 23 16:39:04 1998 Richard Henderson <rth@cygnus.com>
3355
3356 * configure.in: Look for <sys/stat.h>.
3357 * system.h: Include it before substitute S_ISREG definitions.
3358
a53f72db
GRK
3359Mon Nov 23 17:40:37 1998 Gavin Romig-Koch <gavin@cygnus.com>
3360
3361 * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
3362 * config/mips/iris6.h: Same.
3363 * config/mips/mips.md: Same.
3364 * config/mips/mips.c: Same; also add "-mabi=o64" option.
3365 * config/mips/mips.h: Same; also define ABI_O64.
3366
c9a3de16
KG
3367Mon Nov 23 17:02:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3368
3369 * configure.in: Use AC_PREREQ(2.12.1).
3370
9855b854
MN
3371Mon Nov 23 10:16:38 1998 "Melissa O'Neill" <oneill@cs.sfu.ca>
3372
3373 * cccp.c (S_ISREG, S_ISDIR): Delete defines.
3374 * cpplib.c, gcc.c: Likewise.
3375 * system.h (S_ISREG, S_ISDIR): Define if not already defined.
3376
578db09b
RH
3377Mon Nov 23 09:53:44 1998 Richard Henderson <rth@cygnus.com>
3378
3379 * local-alloc.c (local_alloc): Use malloc not alloca for
3380 reg_qty, reg_offset, ref_next_in_qty.
3381
225e4f43
R
3382Mon Nov 23 16:46:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3383
193f66a9
JL
3384 * caller-save.c (insert_one_insn): Initialize the live_before and
3385 live_after register sets.
3386
225e4f43
R
3387 Add SH4 support:
3388
3389 * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
3390 (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
3391 * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
3392 (fp_reg_names, assembler_dialect): New variables.
3393 (print_operand_address): Handle SUBREGs.
3394 (print_operand): Added 'o' case.
3395 Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
3396 Name of FP registers depends on mode.
3397 (expand_block_move): Emit different code for SH4 hardware.
3398 (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
3399 (from_compare): Likewise.
3400 (add_constant): New argument last_value. Changed all callers.
3401 (find_barrier): Don't try HImode load for FPUL_REG.
3402 (machine_dependent_reorg): Likewise.
3403 (sfunc_uses_reg): A CLOBBER cannot be the address register use.
3404 (gen_far_branch): Emit a barrier after the new jump.
3405 (barrier_align): Don't trust instruction lengths before
3406 fixing up pcloads.
3407 (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
3408 Use auto-inc addressing for fp registers if doubles need to
3409 be loaded in two steps.
3410 Set sh_flag_remove_dead_before_cse.
3411 (push): Support for TARGET_FMOVD. Use gen_push_fpul for fpul.
3412 (pop): Support for TARGET_FMOVD. Use gen_pop_fpul for fpul.
3413 (calc_live_regs): Support for TARGET_FMOVD. Don't save FPSCR.
3414 Support for FIRST_XD_REG .. LAST_XD_REG.
3415 (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
3416 (sh_expand_epilogue): Likewise.
3417 (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
3418 (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
3419 (arith_reg_operand): FPUL_REG is OK for SH4.
3420 (fp_arith_reg_operand, fp_extended_operand) New functions.
3421 (tertiary_reload_operand, fpscr_operand): Likewise.
3422 (commutative_float_operator, noncommutative_float_operator): Likewise.
3423 (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
3424 (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
3425 (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
3426 (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
3427 * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
3428 (CONDITIONAL_REGISTER_USAGE): Likewise.
3429 (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
3430 (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
3431 (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
3432 (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
3433 (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
3434 to -1 and sh_flag_remove_dead_before_cse to 1.
3435 (ASSEMBLER_DIALECT): Define to assembler_dialect.
3436 (assembler_dialect, fp_reg_names): Declare.
3437 (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
3438 Hide names of registers that are not accessible.
3439 (CACHE_LOG): Take TARGET_CACHE32 into account.
3440 (LOOP_ALIGN): Take TARGET_HARWARD into account.
3441 (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
3442 (FIRST_PSEUDO_REGISTER: Now 49.
3443 (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
3444 (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
3445 (HARD_REGNO_MODE_OK): Update.
3446 (enum reg_class): Add DF_REGS and FPSCR_REGS.
3447 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
3448 (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
3449 (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
3450 (NPARM_REGS): Eight floating point parameter registers on SH4.
3451 (BASE_RETURN_VALUE_REG): SH4 also passes double values
3452 in floating point registers.
3453 (GET_SH_ARG_CLASS) Likewise.
3454 Complex float types are also returned in float registers.
3455 (BASE_ARG_REG): Complex float types are also passes in float registers.
3456 (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
3457 (LIBCALL_VALUE): Remove trailing semicolon.
3458 (ROUND_REG): Round when double precision value is passed in floating
3459 point register(s).
3460 (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
3461 passed on the stack.
3462 (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
3463 (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
3464 (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
3465 (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
3466 (MODE_DISP_OK_8): Not for SH4 DFmode.
3467 (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
3468 Allow indexed addressing for PSImode after reload.
3469 (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
3470 (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
3471 Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
3472 (DOUBLE_TYPE_SIZE): 64 for SH4.
3473 (RTX_COSTS): Add PLUS case.
3474 Increae cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
3475 (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
3476 MAC_REGS, PR_REGS, DF_REGS.
3477 (REGISTER_NAMES): Use fp_reg_names.
3478 (enum processor_type): Add PROCESSOR_SH4.
3479 (sh_flag_remove_dead_before_cse): Declare.
3480 (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
3481 (PREDICATE_CODES): Add binary_float_operator,
3482 commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
3483 fpscr_operand, noncommutative_float_operator.
3484 (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
3485 (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
3486 * sh.md (attribute cpu): Add value sh4.
3487 (attrbutes fmovd, issues): Define.
3488 (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
3489 (function units memory, int, mpy, fp): Make dependent on issue rate.
3490 (function units issue, single_issue, load_si, load): Define.
3491 (function units load_store, fdiv, gp_fpul): Define.
3492 (attribute hit_stack): Provide proper default.
3493 (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
3494 (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
3495 (udivsi3, divsi3): Emit special patterns for SH4 hardware,
3496 (mulsi3_call): Now uses match_operand for function address.
3497 (mulsi3): Also emit code for SH1 case. Wrap result in REG_LIBCALL /
3498 REG_RETVAL notes.
3499 (push, pop, push_e, pop_e): Now define_expands.
3500 (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
3501 (movsi_ie): Added y/i alternative.
3502 (ic_invalidate_line_i, movdf_i4): New insns.
3503 (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
3504 (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
3505 (movdf): Add special code for SH4.
3506 (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
3507 (call_valuei, calli, call_value): Likewise.
3508 (movsf): Emit no-op move.
3509 (mov_nop, movsi_y): New insns.
3510 (blt, sge): generalize to handle DFmode.
3511 (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
3512 (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
3513 (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
3514 (fpu_switch0, fpu_switch1, movpsi): New expanders.
3515 (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
3516 (toggle_sz): New insn.
3517 (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
3518 (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
3519 (macsf3): Make use of fpscr visible. Disable for SH4.
3520 (floatsisf2): Make use of fpscr visible.
3521 (floatsisf2_i4): New insn.
3522 (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
3523 (ieee_ccmpeqsf_t): Likewise.
3524 (fix_truncsfsi2): Emit different code for SH4.
3525 (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
3526 (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
3527 (negsf2, sqrtsf2, abssf2): Now expanders.
3528 (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
3529 (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
3530 (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
3531 (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
3532 (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
3533 (fix_truncdfsi2_i4_2+1): New splitters.
3534 (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
3535 (extendsfdf2, truncdfsf2): New expanders.
3536 (truncdfsf2_i4): New insn.
3537 * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
3538 (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
3539 * float-sh.h: When testing for __SH3E__, also test for
3540 __SH4_SINGLE_ONLY__ .
3541 * va-sh.h (__va_freg): Define to float.
3542 (__va_greg, __fa_freg, __gnuc_va_list, va_start):
3543 Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
3544 (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
3545 (__PASS_AS_FLOAT): Use different definition for __SH4__ and
3546 __SH4_SINGLE__.
3547 (TARGET_SH4_P): Define.
3548 (va_arg): Use it.
3549
3550 * sh.md (movdf_k, movsf_i): Tweak the condition so that
3551 init_expr_once is satisfied about the existence of load / store insns.
3552
3553 * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
3554 change m constraint in source operand to mr / mf .
3555
3556 * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
3557
3558 * (__VA_REEF): Define.
3559 (__va_arg_sh1): Use it.
3560
3561 * va-sh.h (va_start, va_arg, va_copy): Add parenteses.
3562
668d9af5
JL
3563Sun Nov 22 21:34:02 1998 Jeffrey A Law (law@cygnus.com)
3564
3565 * i386/dgux.c (struct option): Add new "description field".
3566 * m88k/m88k.c (struct option): Likewise.
3567
e736f77a
JL
3568Sun Nov 22 16:07:57 PST 1998 Jeff Law (law@cygnus.com)
3569
3570 * version.c: Bump for snapshot.
3571
3d2f8eb6
BS
3572Sun Nov 22 13:40:02 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3573
3574 * regmove.c (regmove_profitable_p): Use return value of find_matches
3575 properly.
3576
57412d4f
JL
3577Sun Nov 22 02:47:37 PST 1998 Jeff Law (law@cygnus.com)
3578
3579 * version.c: Bump for snapshot.
3580
225a7e3d
JL
3581Sat Nov 21 22:12:09 1998 Jeffrey A Law (law@cygnus.com)
3582
9969bb2c
JL
3583 * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
3584 without reload having been called earlier.
3585
2268cc52
JL
3586 * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
3587 addressing modes.
3588 (v850_reorg): Similarly.
3589
225a7e3d
JL
3590 * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
3591
18985c91
R
3592Sat Nov 21 02:18:38 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3593
3594 * loop.c (move_movables): Start of libcall might be new loop start.
3595
d25a233e
KG
3596Fri Nov 20 12:14:16 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3597
3598 * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
3599
ba716ac9
BS
3600Fri Nov 20 08:34:00 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3601
3602 * function.c (nonlocal_goto_handler_slots): Renamed from
3603 nonlocal_goto_handler_slot; now an EXPR_LIST chain.
3604 (push_function_context_to): Adjust for this change.
3605 (pop_function_context_from): Likewise.
3606 (init_function_start): Likewise.
3607 (expand_function_end): Likewise.
3608 * function.h (struct function): Likewise.
3609 * calls.c (expand_call): Likewise.
3610 * explow.c (allocate_dynamic_stack_space): Likewise.
3611 * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
3612 * stmt.c (declare_nonlocal_label): Make a new handler slot for each
3613 label.
3614 (expand_goto): When doing a nonlocal goto, find corresponding handler
3615 slot for it. Don't put the label address in the static chain register.
3616 (expand_end_bindings): Break out nonlocal goto handling code into
3617 three new functions.
3618 (expand_nl_handler_label, expand_nl_goto_receiver,
3619 expand_nl_goto_receivers): New static functions, broken out of
3620 expand_end_bindings and adapted to create one handler per nonlocal
3621 label.
3622 * function.c (delete_handlers): Delete insn if it references any of
3623 the nonlocal goto handler slots.
3624 * i960.md (nonlocal_goto): Comment out code that modifies
3625 static_chain_rtx.
3626 * sparc.md (nonlocal_goto): Likewise.
3627 (goto_handler_and_restore_v9): Comment out.
3628 (goto_handler_and_restore_v9_sp64): Comment out.
3629
e468780f 3630Thu Nov 19 23:44:38 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
c795bca9
BS
3631
3632 * expr.c (STACK_BYTES): Delete unused macro.
3633 * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
3634 (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
3635 (expand_call): Likewise.
3636 (emit_library_call): Likewise.
3637 (emit_library_call_value): Likewise.
3638 * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
3639 (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
3640 * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
3641 (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
3642 (allocate_dynamic_stack_space): Likewise.
3643 * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
3644 (STACK_BOUNDARY): Update description to reflect the new situation.
3645
9bce98db
JL
3646Thu Nov 19 22:20:51 1998 Jeffrey A Law (law@cygnus.com)
3647
9f5a2691
JL
3648 * reorg.c (relax_delay_slots): When optimizing for code size, if a
3649 return with a filled delay slot is followed by a return with an
3650 unfilled delay slot, delete the first return and reemit the insn
3651 that was previously in its delay slot.
3652
9bce98db
JL
3653 * i860.c (single_insn_src_p): Add missing parens.
3654 * ginclude/math-3300.h: Likewise.
3655
24deb20a
L
3656Thu Nov 19 20:55:59 1998 H.J. Lu (hjl@gnu.org)
3657
3658 * regclass.c (init_reg_sets_1): Add prototype.
3659 (init_reg_modes): Likewise.
3660
07be2a23
ZW
36611998-11-19 Zack Weinberg <zack@rabi.phys.columbia.edu>
3662
3663 * c-common.c: Change warning messages to say `comparison is
3664 always true' or `comparison is always false' instead of the
3665 confusing `is always 0', `is always 1'.
3666
39e4e1ef
PB
3667Thu Nov 19 19:05:49 1998 Per Bothner <bothner@cygnus.com>
3668
3669 * print-tree.c (print_node): After printing BLOCK or BIND_EXPR,
3670 break instead of return (which loses closing '>').
3671
90aec2cf
JL
3672Thu Nov 19 19:34:13 1998 Jeffrey A Law (law@cygnus.com)
3673
e3f159c2
JL
3674 * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
3675 standard 387 constants.
3676
90aec2cf
JL
3677 * i386.md (jump): Explicitly set "memory" attribute.
3678 (indirect_jump, prologue_set_stack_ptr): Likewise.
3679 (prologue_get_pc_and_set_got, pop): Likewise.
3680 (allocate_stack_worder, blockage, return_internal): Likewise.
3681 (return_pop_internal, nop): Likewise.
3682 (epilogue_set_stack_ptr, leave): Likewise.
3683
233ce013
NC
3684Thu Nov 19 15:42:54 1998 Nick Clifton <nickc@cygnus.com>
3685
3686 * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
3687
701d55e8
R
3688Thu Nov 19 23:20:59 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3689
53526817
JR
3690 * reload1.c (reload_reg_free_for_value_p):
3691 Early auto_inc reloads don't conflict with outputs.
701d55e8 3692
e9831ca0
KG
3693Thu Nov 19 12:58:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3694
3695 * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
3696 Instead call AC_HEADER_SYS_WAIT.
3697
3698 * collect2.c: Don't provide defaults for sys/wait.h macros.
3699 * gcc.c: Likewise.
3700 * protoize.c: Likewise. Also, don't include sys/wait.h.
3701
3702 * system.h: Include sys/wait.h and provide macro defaults.
3703
a76b6b40
MH
37041998-11-19 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
3705
3706 * Makefile.in (mandir): Set to @mandir@.
3707 (man1dir): New variable to hold the former value of $(mandir).
3708 Replace all uses of $(mandir) by $(man1dir).
3709
10352226
JW
3710Wed Nov 18 16:31:28 1998 Jim Wilson <wilson@cygnus.com>
3711
ef18065c
JW
3712 * reload.c (find_reloads_address_part): If have a CONST_INT, create
3713 a new one before passing it to force_const_mem.
3714
10352226
JW
3715 * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
3716 find_reloads_address call.
3717
f3f2255a
R
3718Wed Nov 18 22:13:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3719
3720 * expr.c (store_expr): Don't generate load-store pair
3721 if TEMP is identical (according to ==) with TARGET.
3722
25963977
R
3723Tue Nov 17 22:25:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3724
3725 * reload1.c (reload_reg_free_for_value_p): When considered reload
3726 has an output, matching inputs are not sufficient to avoid conflict.
3727
a87ec9e6
MM
3728Tue Nov 17 11:51:16 1998 Mark Mitchell <mark@markmitchell.com>
3729
3730 * hash.h (hash_table_key): New type.
3731 (hash_entry): Change `string' field to generic `key'.
3732 (hash_table): Add `comp' and `hash' functions.
3733 (hash_table_init): Take them as input.
3734 (hash_table_init_n): Likewise.
3735 (hash_lookup): Modify for generic keys.
3736 (hash_newfunc): Likewise.
3737 (hash_traverse): Likewise.
3738 (string_hash): New function.
3739 (string_compare): Likewise.
3740 (string_copy): Likewise.
3741 * hash.c (hash_table_init_n): Modify for generic keys.
3742 (hash_table_init): Likewise.
3743 (hash_lookup): Likewise.
3744 (hash_newfunc): Likewise.
3745 (hash_traverse): Likewise.
3746 (string_hash): Split out from hash_lookup.
3747 (string_compare): New function.
3748 (string_copy): Split out from hash_lookup.
3749 * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
3750 tables.
3751 (symbol_hash_lookup): Likewise.
3752 (file_hash_newfunc): Likewise.
3753 (file_hash_lookup): Likewise.
3754 (demangled_hash_newfunc): Likewise.
3755 (demangled_hash_lookup): Likewise.
3756 (tlink_int): Likewise.
3757 (read_repo_file): Likewise.
3758 (recompile_files): Likewise.
3759 (demangle_new_symbols): Likewise.
3760 (scan_linker_output): Likewise.
3761
e398aa80
R
3762Tue Nov 17 17:13:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3763
3764 * flow.c (insn_dead_p): New argument NOTES. Changed all callers.
3765
efc97ef0
DE
3766Mon Nov 16 17:56:07 1998 David Edelsohn <edelsohn@mhpcc.edu>
3767
3768 * rs6000.c (output_mi_thunk): Improve test for local branch.
3769
3770Mon Nov 16 17:56:07 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3771
3772 * rs6000.c (output_mi_thunk): Correct test for aggregate values.
3773
dfe96118
R
3774Mon Nov 16 21:02:52 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3775
3776 * reload1.c (reload_reg_free_before_p): Delete.
3777 Changed all callers to use reload_reg_free_for_value_p instead.
3778 (reload_reg_free_for_value_p): Handle more reload types.
3779 A RELOAD_FOR_INPUT doesn't conflict with its
3780 RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
3781 Add special case for OUT == const0_rtx.
3782 Added ignore_address_reloads argument. Changed all callers.
3783
1f288b3f
JM
3784Mon Nov 16 02:22:29 1998 Jason Merrill <jason@yorick.cygnus.com>
3785
3786 * toplev.c (compile_file): Don't pedwarn about undefined static
3787 functions just because we passed -Wunused.
3788
de0dd934
R
3789Mon Nov 16 04:41:41 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3790
3791 * function.c (purge_addressof_1): Unshare rtl created by
3792 store_bit_field.
3793
8d1d76c1
R
3794Mon Nov 16 04:23:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3795
3796 * regmove.c (regmove_optimize): Don't do anything but
3797 optimize_reg_copy[123] when flag_regmove is not set.
3798
bd8dc165
RH
3799Sat Nov 14 15:05:07 1998 Richard Henderson <rth@cygnus.com>
3800
3801 * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
3802 value in paradoxical SImode result, rather than truncating midpoint.
3803
40b80dad
RH
3804Fri Nov 13 22:19:23 1998 Richard Henderson <rth@cygnus.com>
3805
3806 * alpha.c (reg_not_elim_operand): New.
3807 * alpha.h (PREDICATE_CODES): Add it.
3808 * alpha.md (s48addq, s48subq patterns): Use it as the predicate
3809 for the multiplicand.
3810
f99f88e0
DE
3811Fri Nov 13 22:50:37 1998 David Edelsohn <edelsohn@mhpcc.edu>
3812
3813 * rs6000.md (movsf): Remove explicit secondary-reload-like
3814 functionality. Only truncate SFmode store if in FPR.
3815 (movsf splitters): Combine const_double splitters.
3816 (movsf_hardfloat): Add GPR support.
3817
8c64be75
SC
3818Fri Nov 13 11:02:11 1998 Stan Cox <scox@cygnus.com>
3819
93d9a2eb
SC
3820 * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
3821 deprecate -mlive-g0 and -mbroken-saverestore.
3822 * t-splet (MULTILIB_OPTIONS): Likewise.
3823
8c64be75
SC
3824 * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
3825 in a leaf function. Clarify total_size/extra_size relationship.
3826
cae21ae8
GN
3827Thu Nov 12 19:20:57 1998 Geoffrey Noer <noer@cygnus.com>
3828
3829 * i386/cygwin32.asm: Delete.
3830 * i386/cygwin.asm: New file, renamed from cygwin32.asm.
3831 * i386/cygwin32.h: Delete.
3832 * i386/cygwin.h: New file, renamed from cygwin32.h.
3833 * i386/t-cygwin32: Delete.
3834 * i386/t-cygwin: New file, renamed from t-cygwin32. Include
3835 cygwin.asm instead of cygwin32.asm. Remove "32" from comment.
3836 * i386/x-cygwin32: Delete.
3837 * i386/x-cygwin: New file, renamed from x-cygwin32.
3838 * i386/xm-cygwin32: Delete.
3839 * i386/xm-cygwin: New file, renamed from xm-cygwin32. Use newly
3840 renamed cygwin_ funcs for path translations.
3841 * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
3842 * i386/winnt.c: Remove "32" from comment about cygwin.
3843 * i386/mingw32.h: Fix references to cygwin32.h in light of above.
3844 * rs6000/cygwin32.h: Delete.
3845 * rs6000/cygwin.h: New file, renamed from cygwin32.h. Add
3846 -D__CYGWIN__ to CPP_PREDEFINES.
3847 * rs6000/x-cygwin32: Delete.
3848 * rs6000/x-cygwin: New file, renamed from x-cygwin32.
3849 * rs6000/xm-cygwin32: Delete.
3850 * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
3851
3852 * configure.in: Check for cygwin* instead of cygwin32. Account
3853 for the rename of cygwin-related config files to lose the "32"s.
3854 * configure: Regenerate.
3855
3856 * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
3857 toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
3858
df37e3db
TT
3859Wed Nov 11 12:25:19 1998 Tom Tromey <tromey@cygnus.com>
3860
3861 * Makefile.in (JAVAGC): New macro.
3862 * configure: Rebuilt.
3863 * configure.in: Recognize --enable-java-gc argument. Subst
3864 `JAVAGC' variable.
3865
135eb61c
R
3866Thu Nov 12 03:32:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
3867
3868 Handle equivalences that have been obscured by gcse:
3869
3870 * reload1.c (reload): Handle equivalences set up in multiple places.
3871 * local-alloc.c (reg_equiv_init_insns): New variable.
3872 (no_equiv): New function.
3873 (update_equiv_regs): Handle equivalences set up in multiple places.
3874 Don't ignore an insn just because its destination is likely to be
3875 spilled.
3876
2a55b8e8
JW
3877Wed Nov 11 13:46:13 1998 Jim Wilson <wilson@cygnus.com>
3878
3879 * except.c (expand_eh_return): Readd force_operand call lost in
3880 Sept 15 change.
3881
fbd2bdda
DE
3882Tue Nov 10 17:04:11 1998 David Edelsohn <edelsohn@mhpcc.edu>
3883
3884 * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
3885
3363316f
JL
38861998-11-09 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
3887
3888 * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
3889
3890Mon Nov 9 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3891
3892 * regmove.c (regmove_optimize): Fix error in last change.
3893
a3bc83cc
AC
3894Mon Nov 9 16:37:52 1998 Andrew Cagney <cagney@b1.cygnus.com>
3895
3896 * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
3897 offset in the .mask pseudo to compensate for frame pointer adjustments.
3898 (mips16_fp_args, build_mips16_call_stub): For little endian, do not
3899 word swap arguments moved to/from FP registers.
3900 * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
3901
b8b2d50d
JL
3902Mon Nov 9 09:47:06 PST 1998 Jeff Law (law@cygnus.com)
3903
3904 * version.c: Bump for snapshot.
3905
57457ee0
JL
3906Mon Nov 9 02:14:14 PST 1998 Jeff Law (law@cygnus.com)
3907
3908 * version.c: Bump for snapshot.
3909
a3a24aa6
JL
3910Mon Nov 9 03:06:24 1998 Jeffrey A Law (law@cygnus.com)
3911
3912 * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
3913 times, then it can not be completely replaced.
3914
8cad673c
RH
3915Mon Nov 9 00:39:02 1998 Richard Henderson <rth@cygnus.com>
3916
3917 * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
3918
5148a72b
KG
3919Sun Nov 8 17:50:30 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3920
3921 * gansidecl.h: Prepend a "G" to the macro wrapping this file
3922 (to distinguish it from the macro wrapping ansidecl.h.)
3923 Include libiberty's ansidecl.h. Remove all redundant definitions.
3924 Define the PROTO() style macros in terms of the PARAMS() ones.
3925
3926
3927 * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
3928 __STDC__, when deciding whether to use ANSI variable args.
3929 (emit_library_call_value): Likewise.
3930
3931 * cccp.c (error): Likewise.
3932 (warning): Likewise.
3933 (error_with_line): Likewise.
3934 (warning_with_line): Likewise.
3935 (pedwarn): Likewise.
3936 (pedwarn_with_line): Likewise.
3937 (pedwarn_with_file_and_line): Likewise.
3938 (fatal): Likewise.
3939
3940 * cexp.y (error): Likewise.
3941 (pedwarn): Likewise.
3942 (warning): Likewise.
3943
3944 * collect2.c (fatal_perror): Likewise.
3945 (fatal): Likewise.
3946 (error): Likewise.
3947
3948 * combine.c (gen_rtx_combine): Likewise.
3949
3950 * cpperror.c (cpp_message): Likewise.
3951 (cpp_fatal): Likewise.
3952
3953 * cpplib.c (cpp_error): Likewise.
3954 (cpp_warning): Likewise.
3955 (cpp_pedwarn): Likewise.
3956 (cpp_error_with_line): Likewise.
3957 (cpp_warning_with_line): Likewise.
3958 (cpp_pedwarn_with_line): Likewise.
3959 (cpp_pedwarn_with_file_and_line): Likewise.
3960
3961 * cpplib.h: Don't define PARAMS() macro.
3962
3963 * demangle.h: Likewise.
3964
3965 * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
3966 when deciding whether to use ANSI variable args.
3967
3968 * emit-rtl.c (gen_rtx): Likewise.
3969 (gen_rtvec): Likewise.
3970
3971 * final.c (asm_fprintf): Likewise.
3972
3973 * fix-header.c (cpp_message): Likewise.
3974 (fatal): Likewise.
3975 (cpp_fatal): Likewise.
3976
3977 * gcc.c (concat): Likewise.
3978 (fatal): Likewise.
3979 (error): Likewise.
3980
3981 * genattr.c (fatal): Likewise.
3982
3983 * genattrtab.c (attr_rtx): Likewise.
3984 (attr_printf): Likewise.
3985 (fatal): Likewise.
3986
3987 * gencodes.c (fatal): Likewise.
3988
3989 * genconfig.c (fatal): Likewise.
3990
3991 * genemit.c (fatal): Likewise.
3992
3993 * genextract.c (fatal): Likewise.
3994
3995 * genflags.c (fatal): Likewise.
3996
3997 * genopinit.c (fatal): Likewise.
3998
3999 * genoutput.c (fatal): Likewise.
4000 (error): Likewise.
4001
4002 * genpeep.c (fatal): Likewise.
4003
4004 * genrecog.c (fatal): Likewise.
4005
4006 * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
4007 deciding whether to declare `tree_node' and `rtx_def'.
4008
4009 * hash.h: Don't define stuff we get from gansidecl.h.
4010
4011 * mips-tfile.c: Likewise. Define __proto() in terms of PARAMS().
4012 (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
4013 whether to use ANSI variable args.
4014 (error): Likewise.
4015
4016 * prefix.c (concat): Likewise.
4017
4018 * scan.h: Likewise.
4019
4020 * system.h: Likewise.
4021
4022 * toplev.c (error_with_file_and_line): Likewise.
4023 (error_with_decl): Likewise.
4024 (error_for_asm): Likewise.
4025 (error): Likewise.
4026 (fatal): Likewise.
4027 (warning_with_file_and_line): Likewise.
4028 (warning_with_decl): Likewise.
4029 (warning_for_asm): Likewise.
4030 (warning): Likewise.
4031 (pedwarn): Likewise.
4032 (pedwarn_with_decl): Likewise.
4033 (pedwarn_with_file_and_line): Likewise.
4034 (sorry): Likewise.
4035 (really_sorry): Likewise.
4036
4037 * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
4038 whether to declare `tree_node' and `rtx_def'.
4039
4040 * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
4041 deciding whether to use ANSI variable args.
4042 (build_nt): Likewise.
4043 (build_parse_node): Likewise.
4044
2fb04465
JL
4045Sun Nov 8 13:10:55 PST 1998 Jeff Law (law@cygnus.com)
4046
4047 * version.c: Bump for snapshot.
4048
4f44785e
KG
4049Sat Nov 7 23:34:01 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4050
4051 * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
4052
3d697b4c
DE
4053Sat Nov 7 22:26:19 1998 David Edelsohn <edelsohn@mhpcc.edu>
4054
4055 * collect2.c (main, case 'b'): Use else if.
4056
0056a9b5
KG
4057Sat Nov 7 15:35:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4058
4059 * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
4060 Arrange to include gansidecl.h in {ht}config.h & tm.h just
4061 before the config/ directory headers.
4062 (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
4063 gansidecl.h in the list of dependencies.
4064
4065 * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
4066 (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
4067 mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
4068 gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
4069 dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
4070 cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
4071 Likewise.
4072
4073 * cccp.c: Don't include gansidecl.h.
4074 * cexp.y: Likewise.
4075 * collect2.c: Likewise.
4076 * config/c4x/c4x.c: Likewise.
4077 * config/v850/v850.h: Likewise.
4078 * cppalloc.c: Likewise.
4079 * cpperror.c: Likewise.
4080 * cppexp.c: Likewise.
4081 * cppfiles.c: Likewise.
4082 * cpphash.c: Likewise.
4083 * cpplib.c: Likewise.
4084 * cppmain.c: Likewise.
4085 * cppulp.c: Likewise.
4086 * demangle.h: Likewise.
4087 * doprint.c: Likewise.
4088 * dyn-string.c: Likewise.
4089 * eh-common.h: Likewise.
4090 * fix-header.c: Likewise.
4091 * frame.c: Likewise.
4092 * gcc.c: Likewise.
4093 * gcov.c: Likewise.
4094 * gen-protos.c: Likewise.
4095 * gencheck.c: Likewise.
4096 * halfpic.h: Likewise.
4097 * hash.c: Likewise.
4098 * machmode.h: Likewise.
4099 * mbchar.c: Likewise.
4100 * prefix.c: Likewise.
4101 * protoize.c: Likewise.
4102 * recog.h: Likewise.
4103 * rtl.h: Likewise.
4104 * scan-decls.c: Likewise.
4105 * tree.h: Likewise.
4106 * varray.h: Likewise.
4107
35e2d030
RH
4108Sat Nov 7 11:37:53 1998 Richard Henderson <rth@cygnus.com>
4109
4110 * i386.md (call_value_pop): If we're not popping anything,
4111 defer to call_value.
4112 (call_pop): Likewise defer to call.
4113
da9b1f9c
RH
4114Sat Nov 7 02:49:56 1998 Richard Henderson <rth@cygnus.com>
4115
4116 * function.c (purge_addressof): Clear purge_addressof_replacements
4117 only after processing the whole function.
4118
8f5db3c1
JL
4119Sat Nov 7 00:54:55 1998 Jeffrey A Law (law@cygnus.com)
4120
4121 * reload1.c (reload): If we can not perform a particular elimination
4122 when we thought we could earlier, then we must always iterate through
4123 the loop at least one more time.
4124
80df65c9
RH
4125Fri Nov 6 19:37:33 1998 Richard Henderson <rth@cygnus.com>
4126
4127 * alpha.c (add_operand): Simplify the CONST_INT match.
4128 (sext_add_operand): Correct typo in comparison by using
4129 CONST_OK_FOR_LETTER_P.
4130 * alpha.md (s?addq): Use sext_add_operand to allow the negative
4131 constant alternatives to be generated.
4132 (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
4133 small constants, since the hw instructions do.
4134
d30e8ef0
BS
4135Fri Nov 6 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4136
4137 * reload1.c (emit_reload_insns): When rewriting the SET_DEST of a
4138 previous insn to store directly into our reload register, make sure
4139 that if the source of the previous insn is a reload register, its
4140 spill_reg_store and spill_reg_stored_to values are cleared.
4141
955fc2e7
DE
4142Fri Nov 6 16:35:10 1998 David Edelsohn <edelsohn@mhpcc.edu>
4143
4144 * rs6000.md (floatunssidf2_internal splitter): Use base register
4145 operand, not hard-coded SP.
4146
ca76d13d
DM
4147Fri Nov 6 04:07:53 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
4148
4149 * jump.c (calculate_can_reach_end): Fix thinko.
4150
2cea37e5
JL
4151Fri Nov 6 00:16:04 1998 Jeffrey A Law (law@cygnus.com)
4152
0d87569a
JL
4153 * reorg.c (fill_simple_delay_slots): Fix typo.
4154
2cea37e5
JL
4155 * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
4156
724d568a
JH
4157Fri Nov 6 00:10:00 1998 Jan Hubicka (hubicka@freesoft.cz)
4158
4159 * i386.md (extendsidi2): Use # in the output template.
4160 (extendsidi splitters): New splitters.
4161
5ee26f85
NC
4162Thu Nov 5 11:13:27 1998 Nick Clifton <nickc@cygnus.com>
4163
4164 * configure.in: Use unknown-elf.h as tm_file for arm-elf
4165 configuarions.
4166 * configure: Regenerate.
4167
269ef46c
DM
4168Thu Nov 5 07:59:05 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
4169
4170 * jump.c (init_label_info, delete_barrier_successors,
4171 mark_all_labels, delete_unreferenced_labels,
4172 delete_noop_moves, calculate_can_reach_end): New functions broken
4173 out of jump_optimize.
4174 (jump_optimize): Use them.
4175
b37f006b
AM
4176Thu Nov 5 07:57:45 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
4177
4178 * except.c (expand_fixup_region_end): Make sure outer context labels
4179 are not issued in an inner context during cleanups.
4180
6c61c2bb
RH
4181Thu Nov 5 04:03:06 1998 Richard Henderson <rth@cygnus.com>
4182
4183 * alpha.md (addsi3, subsi3): No new temporaries once cse is
4184 no longer expected.
4185
8f5d6855
RH
4186Thu Nov 5 03:29:19 1998 Richard Henderson <rth@cygnus.com>
4187
4188 * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
4189 to expose this midpoint to CSE.
4190
4ba687c8
DM
4191Thu Nov 5 03:42:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
4192
4193 * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
4194
9da0e39b
AS
4195Thu Nov 5 10:53:01 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4196
4197 * configure.in: Bring over gcc2 change of Nov 19 1997.
4198
444bf316
JL
4199Wed Nov 4 23:43:08 1998 Graham <grahams@rcp.co.uk>
4200
4201 * toplev.c (output_lang_identify): Make definition dependent on
4202 ASM_IDENTIFY_LANGUAGE.
4203
4204 * print-rtl.c (spaces): Make static.
4205
4206Wed Nov 4 22:16:36 1998 Hans-Peter Nilsson <hp@axis.se>
8fe1938e
HPN
4207
4208 * extend.texi: Clarify proper uses for register clobbers in asms.
4209
0eadeb15
BS
4210Wed Nov 4 22:16:36 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4211
4212 * recog.h (enum op_type): Define.
4213 (constrain_operands): Adjust prototype.
4214 (recog_op_type): Declare new variable.
4215 * recog.c (recog_op_type): New variable.
4216 (insn_invalid_p): Allow modifying an asm statement after reload.
4217 (extract_insn): Set up recog_op_type.
4218 (constrain_operands): Lose INSN_CODE_NUM arg. All callers changed.
4219 Don't compute operand types, use recog_op_type.
4220 Use the information computed by extract_insn instead of the previous
4221 method of finding it by insn code number.
4222 * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
4223 * reorg.c (fill_slots_from_thread): Likewise.
4224 * reload1.c (reload_as_needed): Likewise.
4225 (gen_reload): Likewise.
4226 (inc_for_reload): Likewise.
4227 (reload_cse_simplify_operands): Likewise.
4228 Use the information computed by extract_insn instead of the previous
4229 method of finding it by insn code number.
4230 * genattrtab.c (write_attr_case): Generate call to extract_insn, not
4231 insn_extract.
4232 * final.c (final_scan_insn): Use extract_insn, not insn_extract.
4233 (cleanup_operand_subregs): Use extract_insn, not insn_extract.
4234 Use the information computed by extract_insn instead of the previous
4235 method of finding it by insn code number.
4236 * regmove.c (find_matches): Likewise. Change meaning of the return
4237 value to be nonzero if the optimization can be performed, zero if
4238 not. All callers changed.
4239 Shorten some variable names to fix formatting problems.
4240 (regmove_optimize): Shorten some variable names to fix formatting
4241 problems.
4242 Use the information computed by extract_insn instead of the previous
4243 method of finding it by insn code number.
4244 * regclass.c (scan_one_insn): Likewise.
4245 (record_reg_classes): Don't compute operand types, use recog_op_type.
4246 * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
4247 recog_constraints instead.
4248
09d33be8
JL
4249Wed Nov 4 21:37:46 1998 Jeffrey A Law (law@cygnus.com)
4250
4251 * rtl.h (flow2_completed): Declare.
4252 * flow.c (flow2_completed): Definition.
4253 * toplev.c (rest_of_compilation): Set and clear flow2_completed
4254 as necessary.
4255
bfc5000a
JL
4256Wed Nov 4 19:15:37 1998 "Melissa O'Neill" <oneill@cs.sfu.ca>
4257
4258 * Makefile.in (libcpp.a): Ranlib libcpp.a
4259
4260 * cppulp.c (user_label_prefix): Initialize.
4261
4262Wed Nov 4 19:07:08 1998 John Wehle (john@feith.com)
4263
4264 * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
4265 at a RETURN if current_function_sp_is_unchanging is set.
4266
a93049de
HB
4267Wed Nov 4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4268
4269 * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
4270
040688bd
GN
4271Wed Nov 4 15:11:15 1998 Geoffrey Noer <noer@cygnus.com>
4272
4273 * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
4274 TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
4275 (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
4276 (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
4277 (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
4278 (CPP_SPEC): Handle -mno-cygwin option. Define __CYWIN__ in addition
4279 to __CYGWIN32__.
4280 (LIB_SPEC): Handle -mno-cyginw option.
4281 (LINK_SPEC): Handle -mdll.
4282
e0d7bb0d
R
4283Wed Nov 4 22:56:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
4284
4285 * reload.c (find_reloads): Fix test for usage by other reload
4286 to handle secondary reloads properly.
4287
590cf94d
KG
4288Wed Nov 4 17:25:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4289
4290 * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
4291 intermediate structure which has exactly the members provided by
4292 ELIMINABLE_REGS. Define NUM_ELIMINABLE_REGS in terms of the
4293 static intermediate structure.
4294
4295 (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
4296 from the intermediate structure. Do the same analogous fix in
4297 the case where ELIMINABLE_REGS is not defined.
4298
ab2e3386
JL
4299Tue Nov 3 20:50:03 1998 Jeffrey A Law (law@cygnus.com)
4300
4301 * pa.h (SELECT_SECTION): Fix thinko.
4302
eef906d6
JW
4303Tue Nov 3 17:51:36 1998 Jim Wilson <wilson@cygnus.com>
4304
4305 * dwarf2out.c (output_call_frame_info): Comments on last change.
4306
74641843
RE
4307Tue Nov 3 07:51:43 1998 Richard Earnshaw (rearnsha@arm.com)
4308
4309 * arm.c (add_constant): When taking the address of an item in the
4310 pool, get the mode of the item addressed.
4311
4312 * arm.c (final_prescan_insn case INSN): If an insn doesn't
4313 contain a SET or a PARALLEL, don't consider it for conditional
4314 execution.
4315
4316 Restore ABI compatibility for NetBSD.
4317 * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
4318 arm.h
4319 (RETURN_IN_MEMORY): Likewise.
4320
0ae9f65b
DE
4321Mon Nov 2 11:46:17 1998 Doug Evans <devans@canuck.cygnus.com>
4322
4323 * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
4324 (m32r_output_block_move): Rewrite bytes < 4 handling.
4325
c375c43b
KG
4326Mon Nov 2 10:10:35 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4327
4328 * configure.in: Call AC_FUNC_VFORK.
4329
4330 * collect2.c: Define VFORK_STRING as a printable string for
4331 error messages (either "vfork" or "fork".) If HAVE_VFORK_H is
4332 defined, include vfork.h. If VMS is defined, define vfork()
4333 appropriately. Remove vfork check on USG, we're using autoconf.
4334 (collect_execute): Pass VFORK_STRING to fatal_perror instead of
4335 checking locally what string to pass.
4336 (scan_prog_file): Likewise.
4337 (scan_libraries): Likewise.
4338
4339 * gcc.c: Remove vfork check on USG, we're using autoconf.
4340 Besides, no calls to vfork/fork occur in this file.
4341
4342 * protoize.c: Likewise.
4343
3ccc3a56
AO
4344Mon Nov 2 07:52:28 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
4345
4346 * configure.in (DEFAULT_LINKER): renamed from LD
4347 (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch
4348 (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS
4349 * configure: rebuilt
4350
5dd21ded
AO
4351Mon Nov 2 01:48:10 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
4352
4353 * BUGS: fix the regexp for `more' to find the appropriate node.
4354 Reported by Joerg Pietschmann <joerg_pietschmann@zkb.ch>
4355
4356 * BUGS: added link to the WWW FAQ
4357
44ba27b4
JL
4358Sun Nov 1 18:27:15 PST 1998 Jeff Law (law@cygnus.com)
4359
4360 * version.c: Bump for snapshot.
4361
6d8cf409
JL
4362Sun Nov 1 11:04:32 1998 Jeffrey A Law (law@cygnus.com)
4363
4364 * From Christian Gafton:
4365 * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
4366 * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
4367 * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
4368
43d8a6c7
MM
4369Sat Oct 31 21:42:39 1998 Mark Mitchell <mark@markmitchell.com>
4370
4371 * c-common.c (c_get_alias_set): Allow all type-punning through
4372 unions. Don't get confused about the type of a bit-field, despite
4373 the antics of build_modify_expr.
4374
abf0be7c
JPR
4375Sat Oct 31 22:35:29 1998 Jean-Pierre Radley <jpr@jpr.com>
4376
4377 * fixinc.sco: Paramaterize #include_next values.
4378 * fixinc/fixinc.sco: Likewise.
4379
27ff8c00
JL
4380Sat Oct 31 20:39:35 1998 Jeffrey A Law (law@cygnus.com)
4381
4382 * toplev.c (rest_of_compilation): No longer set reload_completed.
4383 * reload1.c (reload): Set it here. Perform instruction splitting
4384 after reload has completed if we will be running the scheduler
4385 again.
4386
18f3f864
JL
4387Sat Oct 31 12:30:02 1998 Jeffrey A Law (law@cygnus.com)
4388
4389 * jump.c (jump_optimize): Initialize mappings from INSN_UID to
4390 EH region if exceptions are enabled and we're performing cross
4391 jump optimizations.
4392 (find_cross_jump): Exit loop if the insns are in different EH regions.
4393
21af493b
MM
4394Sat Oct 31 10:02:48 1998 Mark Mitchell <mark@markmitchell.com>
4395
4396 * dwarf2out.c (output_call_frame_info): Use
4397 ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
4398
bf39dde3
KG
4399Sat Oct 31 10:23:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4400
4401 Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
4402 * c-common.c (check_format_info): Don't check for the 'x'
4403 format character twice, instead check for 'x' and 'X'
4404
09bedf80
JL
4405Fri Oct 30 14:50:25 1998 Jeffrey A Law (law@cygnus.com)
4406
4407 * configure.in (assembler features): Also make gas is configured if
4408 we find it in the souce tree.
4409
6093f019
RH
4410Fri Oct 30 13:23:20 1998 Richard Henderson <rth@cygnus.com>
4411
4412 * i386.c (i386_comp_type_attributes): Compare whether the
4413 attributes are defined, not their tree nodes.
4414
de82584d
AO
4415Fri Oct 30 11:39:47 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
4416
4417 * configure.in (gxx_include_dir): bitten by autoconf quoting
4418 characters :-(
4419 * configure: rebuilt
4420
d65ae058
AS
4421Fri Oct 30 10:43:29 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4422
4423 * configure.in: Ignore non-absolute value in $AS.
4424
8b83b2a7
PJ
4425Fri Oct 30 00:54:25 1998 Peter Jakubek <pjak@snafu.de>
4426
4427 * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
4428
dedcc399
ME
4429Fri Oct 30 00:42:34 1998 Mark Elbrecht <snowball3@usa.net>
4430
4431 * configure.in (msdosdjgpp): Set exeext and target_alias.
4432
00f9f1bc
BS
4433Thu Oct 29 23:55:43 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4434
421382ac
BS
4435 * flow.c (XNMALLOC): New macro.
4436 (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
4437 static variables.
4438 (add_edge, add_edge_to_label): New static functions.
4439 (free_bb_memory): New function.
4440 (flow_delete_insn): Delete function.
4441 (basic_block_drops_in): Delete variable.
4442 (find_basic_blocks): Allocate and initialize basic_block_head,
4443 basic_block_succ. Don't allocate basic_block_drops_in.
4444 Call free_bb_memory at the beginning.
4445 (find_basic_blocks_1): Don't do multiple passes.
4446 Delete code to compute basic_block_drops_in.
4447 After calling make_edges, mark blocks reached by current block live.
4448 Update test for unreachable live blocks.
4449 (mark_label_ref): Delete args X, CHECKDUP. Add PRED arg. All callers
4450 changed.
4451 Simplify to call add_edge_to_label when a LABEL_REF is found.
4452 (make_edges): Simplify to call add_edge_to_label instead of
4453 mark_label_ref most of the time.
4454 Compute here whether control drops into the next block.
4455 (delete_unreachable_blocks): Return void. All callers changed.
4456 Delete unreachable blocks in reverse order.
4457 After deleting all unreachable blocks, renumber the remaining ones
4458 and update n_basic_blocks.
4459 (delete_block): Speed up deletion a bit.
4460 Don't set basic_block_drops_in for deleted blocks.
4461 (free_basic_block_vars): Don't free basic_block_drops_in.
4462 (life_analysis_1): Update to use new edge representation.
4463 (dump_flow_info): Delete code to print basic block info; call
4464 dump_bb_data instead.
4465 (compute_preds_succs): Delete code to recompute basic_block_drops_in
4466 and uid_block_number.
4467 Simply copy the previously computed cfg.
4468 (dump_bb_data): New arg LIVE_INFO. All callers changed.
4469 Print register lifetime information if LIVE_INFO is nonzero.
4470 * basic-block.h (dump_bb_data): Adjust prototype.
4471 * gcse.c (gcse_main): Update call to dump_bb_data.
4472 * rtl.h (free_bb_memory): Declare.
4473 * toplev.c (rest_of_compilation): Call free_bb_memory.
4474
6467c05f
JL
4475 * reload1.c (struct elim_table): Delete MAX_OFFSET member.
4476 (update_eliminable_offsets): Don't compute it.
4477 (set_initial_elim_offsets): Don't initialize it.
4478 Break out some code into set_initial_label_offsets so the rest of
4479 this function can be called from reload_as_needed.
4480 Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when
4481 ELIMINABLE_REGS isn't.
4482 (set_initial_label_offsets): New function, broken out of
4483 set_initial_elim_offsets.
4484 (set_offsets_for_label): New function, broken out of set_label_offsets
4485 and reload_as_needed.
4486 (reload): Call the two new functions.
4487 (reload_as_needed): Call set_initial_elim_offsets instead of
4488 duplicating the code. Likewise for set_offsets_for_label.
4489
00f9f1bc
BS
4490 * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
4491 (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
4492 any hard reg, reg_reloaded_dead contains valid data.
4493
afcfe58c
MM
4494Thu Oct 29 22:30:54 1998 Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
4495
f3196f46 4496 * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
afcfe58c
MM
4497 "stdcall" and "cdecl" attributes.
4498
faff4ab8
JW
4499Thu Oct 29 19:05:17 1998 Jim Wilson <wilson@cygnus.com>
4500
4501 * sched.c (update_flow_info): Add code to ! found_orig_dest case to
4502 handle deleted no-op moves of hard registers.
4503 * haifa-sched.c (update_flow_info): Likewise.
4504
839366dd
JL
4505Thu Oct 29 18:07:47 1998 Jeffrey A Law (law@cygnus.com)
4506
4507 * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
4508 of the sequences to reload the HILO register which do not actually
4509 reference HILO.
4510
1e280035
JW
4511Thu Oct 29 12:39:35 1998 Jim Wilson <wilson@cygnus.com>
4512
4513 * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
4514
0fc1434b
AM
4515Thu Oct 29 14:10:22 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
4516
4517 * except.c (emit_eh_context): Make the EH context register stay alive
4518 at -O0 so stupid.c doesn't get confused.
4519
e526eeec
HB
45201998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4521
4522 * emit-rtl.c (try_split): Do not try to split a BARRIER.
4523
bb62e19a
JH
4524Thu Oct 29 01:33:54 1998 Jan Hubicka <hubicka@freesoft.cz>
4525 Jeffrey A Law (law@cygnus.com)
4526
4527 * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM
4528 (zero_extendsidi2): Use # in output template and handle completely by
4529 splits.
4530 (zero_extend splitters): New define_splits.
4531 (ashiftrt_32): New pattern.
4532
e2c31432
JM
4533Wed Oct 28 22:58:35 1998 Jason Merrill <jason@yorick.cygnus.com>
4534
4535 * tree.c (append_random_chars): New fn.
4536 (get_file_function_name_long): Use it.
4537
19283265
RH
4538Wed Oct 28 22:27:05 1998 Richard Henderson <rth@cygnus.com>
4539
4540 * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
4541 (LIBCPP_OBJS): New. Add cppulp.o.
4542 (cppmain, fix-header): Depend on and use libcpp.a.
4543 * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
4544 of the individual object files.
4545 * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
4546 last.
4547
4548 * cccp.c (user_label_prefix): New.
4549 (main): Set it off -f*leading-underscore.
4550 (special_symbol): Use it.
4551 * cpplib.c (special_symbol): Likewise.
4552 (cpp_handle_option): Handle -f*leading-underscore.
4553 * cppulp.c: New file.
4554
4555 * output.h (user_label_prefix): Declare it.
4556 * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
4557 * toplev.c (f_options, main): Handle -f*leading-underscore.
4558
4559 * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
4560 referencing USER_LABEL_PREFIX directly.
4561 * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
4562 * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
4563 * final.c (asm_fprintf): Use user_label_prefix instead.
4564 * arm/thumb.c (thumb_print_operand): Likewise.
4565
4566 * gcc.c (default_compilers): Pass -f*leading-underscore on to
4567 cpp wherever appropriate.
4568
79a9696b
RL
4569Wed Oct 28 23:09:25 1998 Robert Lipe <robertl@dgii.com>
4570
4571 * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
4572 specific compiler switches.
4573
5916476f
JL
4574Wed Oct 28 21:05:53 1998 Jeffrey A Law (law@cygnus.com)
4575
4576 * Makefile.in (c-common.o): Depend on c-pragma.h. Use $(RTL_H) instead
4577 of rtl.h.
4578
829245be
KG
4579Wed Oct 28 20:52:47 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4580
4581 * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
4582 structure which has exactly the members provided by EXTRA_SPECS.
4583 Xmalloc() the real `extra_specs', and initialize it from this
4584 intermediate structure.
4585
4586 * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
4587
4588 * mips.h (EXTRA_SPECS): Likewise.
4589
4590 * sparc.h (EXTRA_SPECS): Likewise.
4591
b5bd3b3c
AS
4592Wed Oct 28 16:46:07 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4593
4594 * function.c (purge_addressof_1): Instead of aborting when a
4595 bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
4596 work just put the ADDRESSOF on stack. Otherwise remember all such
4597 successfull replacements, so that exactly the same replacements
4598 can be made on the REG_NOTEs. Remove the special case for CALL
4599 insns again.
4600 (purge_addressof_replacements): New variable.
4601 (purge_addressof): Clear it at end.
4602
add7091b
ZW
46031998-10-28 16:10 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
4604
4605 * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
4606 (lang_init): Call check_newline always.
4607 * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
4608 cpp_start_read, set yy_cur and yy_lim to read from
4609 parse_in.token_buffer, so that we'll see the first #line
4610 directive.
4611 * cpplib.c (cpp_start_read): finclude the main input file
4612 before processing -include/-imacros. Process -imacros and
4613 -include separately, and handle -include by stacking a
4614 buffer for the file in question as if it'd been #included.
4615 * toplev.c (documented_lang_options) Recognize -H when
4616 USE_CPPLIB is on.
4617
46181998-10-28 16:09 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
4619
4620 * cpplib.c: Merge do_once into do_pragma. Break file handling
4621 code out of do_include.
4622 Move append_include_chain, deps_output,
4623 file_cleanup, redundant_include_p, import_hash,
4624 lookup_import, add_import, read_filename_string, read_name_map,
4625 open_include_file, finclude, safe_read to cppfiles.c.
4626 Move prototypes for deps_output, append_include_chain,
4627 finclude to cpplib.h. Move definition of struct
4628 file_name_list there also.
4629
4630 * cppfiles.c: New file. Contains all the above functions
4631 broken out of cpplib.c; also hack_vms_include_specification
4632 from cccp.c and find_include_file, a new function broken out of
4633 do_include.
4634
4635 * Makefile.in (cppmain): Depend on cppfiles.o.
4636 (fix-header): Likewise.
4637 (cppfiles.o): New target.
4638 * configure.in (--enable-c-cpplib): Add cppfiles.o to
4639 extra_c_objs. Add ../cppfiles.o to extra_cxx_objs.
4640
0a4be913
JW
4641Wed Oct 28 14:06:49 1998 Jim Wilson <wilson@cygnus.com>
4642
4643 * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
4644 if pending_types is non-zero.
4645 (dwarfout_finish): Verify pending_types is zero before finishing.
4646
2b28d92e
NC
4647Wed Oct 28 10:29:09 1998 Nick Clifton <nickc@cygnus.com>
4648
4649 * expr.c (convert_move): Use shifts to perform the move if a
4650 suitable extend pattern cannot be found. Code written by
4651 Richard Henderson <rth@cygnus.com>.
4652
8f142c0b
BS
4653Wed Oct 28 03:59:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4654
ed396e68
BS
4655 * regclass.c (renumber, regno_allocated): New static variables, moved
4656 out of allocate_reg_info.
4657 (allocate_reg_info): Move these two variables outside the function.
4658 Move code to free memory into new function free_reg_info.
4659 (free_reg_info): New function, broken out of allocate_reg_info.
4660 * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
4661 * rtl.h (allocate_reg_info): Don't declare.
4662 (free_reg_info): Declare.
4663
8f142c0b
BS
4664 * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment.
4665
a554186c
JM
4666Wed Oct 28 02:38:12 1998 Jason Merrill <jason@yorick.cygnus.com>
4667
4668 * toplev.c (compile_file): Temporarily revert last change.
4669
b58c9a79
JM
4670Wed Oct 28 00:00:35 1998 Jason Merrill <jason@yorick.cygnus.com>
4671
4672 * c-typeck.c (convert_for_assignment): Parenthesize.
4673
2eb6dac7
AS
46741998-10-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4675
4676 * reload1.c (delete_output_reload): Avoid ambigous else.
4677
0304f787
JL
4678Wed Oct 28 00:10:35 1998 Jeffrey A Law (law@cygnus.com)
4679
e0c6d139
JL
4680 * toplev.c (compile_file): Call allocate_reg_info to free register
4681 table memory.
4682 * rtl.h (allocate_reg_info): Declare.
4683
c75d5284
JL
4684 * PROJECTS: Remove entry for local spilling.
4685
0304f787
JL
4686 * final.c (cleanup_subreg_operands): New function.
4687 (final_scan_insn): Use it.
4688 (alter_subreg): Clear the "used" field when we turn a SUBREG into
4689 a REG.
4690 * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
4691 operands when reload has finished.
4692 * reload.h (cleanup_subreg_operands): Declare..
4693 * flow.c (life_analysis_1): No longer delete CLOBBER insns after
4694 reload. Handled in reload itself.
4695
03acd8f8
BS
4696Tue Oct 27 23:32:34 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4697
c47f5ea5
BS
4698 * reload1.c (verify_initial_offsets): New function.
4699 (reload): Call it after reload_as_needed. Also verify that the frame
4700 size stays constant during reload_as_needed.
4701 * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
4702
03acd8f8
BS
4703 * reload.h (struct insn_chain): Add need_operand_change element.
4704 * reload1.c (new_insn_chain): Clear it.
4705 (calculate_needs_all_insns): Set it; don't overload need_reload.
4706 (reload_as_needed): Use it.
4707
4708 * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
4709 reload_address_base_reg_class throughout. Similar for INDEX_REG_CLASS
4710 and reload_address_index_reg_class.
4711 (find_reloads_address_1): Likewise.
4712 * reload.h (reload_address_base_reg_class,
4713 reload_address_index_reg_class): Don't declare.
4714 * reload1.c (reg_old_renumber, pseudo_previous_regs,
4715 pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
4716 (used_spill_regs): Now static.
4717 (reload_address_base_reg_class, reload_address_index_reg_class,
4718 regs_explicitly_used, counted_for_groups, counted_for_nongroups,
4719 basic_block_needs, max_needs, group_size, group_mode, max_groups,
4720 max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
4721 forbidden_regs):
4722 Deleted variables.
4723 (init_reload): Delete code to compute base/index reg classes.
4724 (reload): Delete variable J.
4725 Delete code to manage basic_block_needs.
4726 Don't compute regs_explicitly_used.
4727 Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
4728 pseudo_previous_regs.
4729 Initialize bad_spill_regs_global.
4730 Don't call order_regs_for_reload here.
4731 Don't initialize spill_reg_order and n_spills.
4732 Don't forbid explicitly used regs to be used for spill regs.
4733 Change main loop to infinite loop, with explicit break statements.
4734 Make SOMETHING_CHANGED variable local to that loop.
4735 Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
4736 max_groups_insn, max_nongroups_insn, group_size, group_mode.
4737 Make sure spilled_speudos is cleared before calling spill_hard_reg or
4738 new_spill_reg.
4739 Don't call dump_needs.
4740 Delete code to reset potential_reload_regs.
4741 Delete code to terminate loop conditional on the global needs variables
4742 showing no further needs.
4743 (calculate_needs_all_insns): Return void. All callers changed.
4744 Initialize somehing_needs_elimination here, not in reload.
4745 Delete avoid_return_reg kludge.
4746 (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
4747 All callers changed.
4748 Initialize the group_mode and group_size elements of the arg CHAIN.
4749 Delete code to manage basic_block_needs.
4750 Operate on elements of CHAIN instead of global variables.
4751 Delete avoid_return_reg kludge.
4752 (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
4753 All callers changed.
4754 Operate on elements of CHAIN instead of global variables.
4755 Delete special SMALL_REGISTER_CLASSES code.
4756 Delete spill_failure code; now in new_spill_reg.
4757 (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
4758 All callers changed.
4759 Operate on elements of CHAIN instead of global variables.
4760 (maybe_mark_pseudo_spilled): New static function.
4761 (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
4762 All callers changed.
4763 Operate on elements of CHAIN instead of global variables.
4764 Call order_regs_for_reload here, not in reload.
4765 Initialize spill_reg_order and n_spills.
4766 Simplify test whether an asm insn is involved.
4767 Delete spill_failure code; now in new_spill_reg.
4768 Call maybe_mark_pseudo_spilled for everything marked as live in
4769 CHAIN. Merge CHAIN's used_spill_regs into the global variable
4770 used_spill_regs.
4771 (dump_needs): Take CHAIN arg. No longer static, to prevent the
4772 compiler from optimizing this function (now unused) away.
4773 Operate on elements of CHAIN instead of global variables.
4774 (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg. All callers
4775 changed.
4776 Operate on elements of CHAIN instead of global variables.
4777 (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
4778 take CHAIN arg. All callers changed.
4779 Operate on elements of CHAIN instead of global variables.
4780 (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
4781 CHAIN, NONGROUP args. Return void. All callers changed.
4782 Verify caller isn't trying to spill a pseudo.
4783 Simplify test for illegal reg, just use bad_spill_regs.
4784 Generate better error messages.
4785 Operate on elements of CHAIN instead of global variables.
4786 Mark spilled register in CHAIN's used_spill_regs element.
4787 Don't call spill_hard_reg.
4788 (spill_hard_reg): Lose GLOBAL arg, return void. All callers changed.
4789 Mark spilled hard regs in bad_spill_regs_global.
4790 Mark affected pseudos in spilled_pseudos, but don't spill them.
4791 (ior_hard_reg_set): New static function.
4792 (finish_spills): Return int. All callers changed.
4793 Compute spill_reg_order, n_spills and spill_regs here. Also update
4794 regs_ever_live for regs used as spills.
4795 For every pseudo in spilled_pseudos, spill it and mark the previous
4796 hard reg it had in pseudo_previous_regs. Compute which hard regs
4797 arseudo): New static function.
4798 (order_regs_for_reload): Take CHAIN arg. All callers changed.
4799 Initialize bad_spill_regs from bad_spill_regs_global, then merge any
4800 hard registers explicitly used across the current insn into the set.
4801 Compute hard_reg_n_uses taking only pseudos live across this insn
4802 into account.
4803 Tweak sorting of potential_reload_regs.
4804 (compare_spill_regs): Delete function.
4805 (reload_as_needed): Don't sort the spill_regs array, it's computed
4806 in proper order in finish_spills.
4807 Delete avoid_return_reg kludge.
4808 Delete code to manage basic_block_needs.
4809 (allocate_reload_reg): Minor speed/readability tweaks.
4810 Operate on elements of CHAIN instead of global variables.
4811 (choose_reload_regs): Lose AVOID_RETURN_REG arg. All callers changed.
4812 Delete avoid_return_reg kludge.
4813 Initialize reload_reg_used from CHAIN's used_spill_regs element.
4814 Delete unused label FAIL.
4815 (reload_combine): Replce reload_address_index_reg_class with
4816 INDEX_REGS.
4817 Don't use used_spill_regs to determine information about lifetime of
4818 hard regs.
4819
844642e6
NC
4820Tue Oct 27 13:15:02 1998 Nick Clifton <nickc@cygnus.com>
4821
4822 * toplev.c (display_help): Ignore empty target specific
4823 options, and if -W is also specified on the command line then
4824 display undocumented options.
2a5307b1
NC
4825
4826 * config/arm/arm.c: Updated with changes in devo sources.
4827 * config/arm/arm.h: Updated with changes in devo sources.
4828 * config/arm/lib1funcs.asm: Updated with changes in devo sources.
4829 * config/arm/lib1thumb.asm: Add ELF support.
4830
f5e04914 4831Tue Oct 27 16:11:43 1998 David Edelsohn <edelsohn@mhpcc.edu>
3d697b4c 4832
f5e04914
DE
4833 * collect2.c (aix64_flag): New variable.
4834 (main, case 'b'): Parse it.
4835 (GCC_CHECK_HDR): object magic number must match mode.
4836 (scan_prog_file): Only check for shared object if valid header.
4837 Print debugging if header/mode mismatch.
4838
4839Tue Oct 27 10:15:02 1998 Nick Clifton <nickc@cygnus.com>
b355a481
NC
4840
4841 Added support for arm-elf-linux configuration, submitted by Philip
4842 Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
4843 code developed by Catherine Moore <clm@cygnus.com>. The following
4844 files are affected:
4845
4846 * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
4847 targets.
4848
4849 * configure: Regenerated.
4850
4851 * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
4852 USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX. Make other macro
4853 definitions conditional on their not having been already defined.
4854
4855 * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
4856 and .type directives, and add "(PLT)" qualification to function
4857 calls.
4858
4859 * config/arm/linux.h: Deleted. This file is now superceeded by
4860 either linux-elf.h or linux-aout.h.
4861
4862 * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
4863 (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
4864 support).
4865 Move definitions from old linux.h file here.
4866
4867 * config/arm/elf.h: New file. Generic ARM/ELF support.
4868
4869 * config/arm/linux-aout.h: New file. Support for Linux with a.out.
4870
4871 * config/arm/linux-elf.h: New file. Support for Linux with ELF.
4872
4873 * config/arm/linux-elf26.h: New file. Support for Linux with ELF
4874 using the 26bit APCS.
4875
4876 * config/arm/unknown-elf.h: New file. Support for OS'es other
4877 than Linux with ELF.
4878
4879 * config/arm/t-arm-elf: New file. makefile fragment for arm-elf
4880 builds.
4881
4882 * config/arm/coff.h: Include aout.h for basic assembler macros.
4883 Add support for -mstructure_size_boundary=<n> command line option.
4884
4885 * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
4886 command line option. Make macro definitions conditional on their
4887 not having been already defined.
4888
4889 * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
4890 command line option.
4891
4892
f5e04914 4893Tue Oct 27 08:56:46 1998 Andrew MacLeod <amacleod@cygnus.com>
74153f8e
AM
4894
4895 * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
4896 has been changed to not include a newline. Use this macro instead.
4897 (output_enumeral_list, const_value_attribute, name_attribute,
4898 comp_dir_attribute, prototyped_attribute, producer_attribute,
4899 inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
4900 dwarfout_file_scope_decl, generate_new_sfname_entry,
4901 generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
4902 ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
4903
4f4b3679
RH
4904Mon Oct 26 13:35:02 1998 Richard Henderson <rth@cygnus.com>
4905
4906 * combine.c (subst): Process the inputs to a parallel asm_operands
4907 only once.
4908
3fbd5c2c
RH
4909Mon Oct 26 13:32:31 1998 Richard Henderson <rth@cygnus.com>
4910
4911 * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
4912
26f63a77
JL
4913Mon Oct 26 12:53:14 1998 Jeffrey A Law (law@cygnus.com)
4914
4915 * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
4916
ff08e6b5
JL
4917Mon Oct 26 00:36:58 PST 1998 Jeff Law (law@cygnus.com)
4918
4919 * version.c: Bump for snapshot.
4920
e17f9bc0
JM
4921Sun Oct 25 23:36:52 1998 Jason Merrill <jason@yorick.cygnus.com>
4922
4923 * stmt.c (expand_fixup): Set fixup->before_jump to a
4924 NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
4925
7f7f8214
KG
4926Sun Oct 25 15:49:57 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4927
4928 * Makefile.in (recog.o): Depend on toplev.h.
4929 (insn-emit.o): Depend on recog.h.
4930 (insn-peep.o): Depend on recog.h and insn-config.h.
4931
4932 * combine.c (simplify_set): Remove unused variable `scratches'.
4933
4934 * final.c (final_scan_insn): Wrap declaration of variables `vlen'
4935 and `idx' in macro conditional controlling their use.
4936
4937 * genemit.c (main): Make the generated output file include
4938 recog.h. Don't have it declare `insn_operand_constraint', since
4939 we get it from recog.h.
4940
4941 * genpeep.c (main): Make the generated output file include
4942 insn-config.h and recog.h.
4943
4944 * recog.c: Include toplev.h.
4945 (extract_insn): Remove unused variable `p'.
4946
4947 * regclass.c (fix_register): Add missing braces around initializer
4948 for `what_option'.
4949 (allocate_reg_info): Move variable `i' into the scope where it is
4950 used. Change its type to `size_t'.
4951
9ff16ff2
BS
4952Sun Oct 25 13:10:15 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4953
4954 * reload.c (push_reload): When merging reloads, make sure
4955 that reload_in_reg and reload_in are from the same reload in
4956 all cases.
4957
de3a0967
MK
4958Sun Oct 25 12:07:00 1998 Mumit Khan <khan@xraylith.wisc.edu>
4959
4960 * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
4961 * i386/mingw32.h (CPP_PREDEFINES): Likewise.
4962
8c368ee2
DE
4963Fri Oct 23 23:42:03 1998 David Edelsohn <edelsohn@mhpcc.edu>
4964
4965 * loop.c (loop_has_tablejump): New variable.
4966 (prescan_loop): Scan for it.
4967 (insert_bct): Replace explicit scan with use of it.
4968 * regclass.c (regclass): Restore loop variable j.
4969 (record_reg_classes): Deterine op_types modifiers and initialize
4970 classes[i] before matching constraints. Handle matching
4971 constraints 5-9.
4972
ca3bf2b5
JW
4973Fri Oct 23 13:55:48 1998 Jim Wilson <wilson@cygnus.com>
4974
4975 * m32r/m32r.c (gen_split_move_double): Call alter_subreg. Delete
4976 subreg support.
4977
e1ba7da7
KG
4978Fri Oct 23 16:19:24 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4979
4980 * mips.h (EXTRA_SPECS): Add missing initializers.
4981
df4f7565
KG
4982Fri Oct 23 16:08:39 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4983
4984 * sparc.h (EXTRA_SPECS): Add missing initializers.
4985 (sparc_defer_case_vector): Provide a prototype.
4986
4987 * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
4988 comparing it to the result of a pointer subtraction.
4989
d1e6b55b
KG
4990Fri Oct 23 15:34:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4991
4992 * alpha.c (override_options): Use ISDIGIT(), not isdigit(). Cast
4993 the argument to (unsigned char).
4994
4995 * alpha.h (EXTRA_SPECS): Add missing initializers.
4996 (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
4997 format specifier.
4998
c4214310
JL
4999Fri Oct 23 13:12:35 1998 Jeffrey A Law (law@cygnus.com)
5000
b590bbfd
JL
5001 * flow.c (life_analysis_1): Enable "rescan" code after reload.
5002 (propagate_block): Delete dead code after reload.
5003
a1ef0af4
JL
5004 * sched.c (update_flow_info): Revert Oct 19, 1998 change. Brings
5005 back Oct 15, 1998 change.
5006 * haifa-sched.c (update_flow_info): Likewise.
7b16da78
JL
5007 * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
5008
c4214310
JL
5009 * mn10200.md (truncated shift): Accept constant inputs too.
5010
abef8789
RE
5011Fri Oct 23 04:06:57 1998 Richard Earnshaw (rearnsha@arm.com)
5012
5013 * machmode.h (mode_mask_array): No longer const.
5014 * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
5015
ccb5954f
ML
5016