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