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