"SfR Fresh" - the SfR Freeware/Shareware Archive 
Member "gcc-4.1-20080630/gcc/ChangeLog-1998" of archive gcc-4.1-20080630.tar.gz:
As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers.
Alternatively you can here view or download the uninterpreted source code file.
That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
1 Wed Dec 30 23:38:55 1998 Jeffrey A Law (law@cygnus.com)
2
3 * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
4 (adddi_dishl32): Similarly.
5
6 * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
7 for each insn in the skipped block.
8
9 * reload1.c (reload_as_needed): Verify that the insn satisfies its
10 constraints after replacing a register address with an autoincrement
11 address for reload inheritance purposes.
12
13 * i386.md (doubleword shifts): Avoid namespace pollution.
14
15 Wed Dec 30 23:00:28 1998 David O'Brien <obrien@NUXI.com>
16
17 * configure.in (FreeBSD ELF): Needs special crt files.
18
19 Wed Dec 30 22:50:13 1998 Geoffrey Noer <noer@cygnus.com>
20
21 * i386/xm-cygwin.h: Change DIR_SEPARATOR to forward slash.
22
23 1998-12-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
24
25 * loop.c (check_dbra_loop): While reversing the loop, if the
26 comparison value has a VOID mode use the mode of the other operand
27 to compute the mask.
28
29 Wed Dec 30 22:24:00 1998 Michael Meissner <meissner@cygnus.com>
30
31 * rs6000.md ({save,restore}_stack_function): Take 2 operands to
32 avoid warnings in compiling explow.c.
33
34 (patch from Ken Raeburn, raeburn@cygnus.com)
35 * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
36 fpmem_offset. Compute total size after that, and then
37 rs6000_fpmem_offset using both values.
38
39 Mon Dec 28 19:26:32 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
40
41 * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
42 the future; indeed that already happens in some cases.
43
44 Tue Dec 29 11:58:53 1998 Richard Henderson <rth@cygnus.com>
45
46 * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
47 (arith_operand): Remove constant_p_rtx handling.
48 (const64_operand, const64_high_operand): Likewise.
49 (arith11_operand, arith10_operand, arith_double_operand): Likewise.
50 (arith11_double_operand, arith10_double_operand, small_int): Likewise.
51 (small_int_or_double, uns_small_int, zero_operand): Likewise.
52 * sparc.h (PREDICATE_CODES): Likewise.
53
54 * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
55
56 Tue Dec 29 11:32:54 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
57
58 * rtl.def (CONSTANT_P_RTX): Clarify commentary.
59 * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
60 consider constant CONSTRUCTOR constant and to defer some cases
61 to cse.
62 * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
63 * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
64
65 Tue Dec 29 11:30:10 1998 Richard Henderson <rth@cygnus.com>
66
67 * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
68 * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
69
70 * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
71 (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
72 (sext_add_operand, and_operand, or_operand): Likewise.
73 (reg_or_cint_operand, some_operand, input_operand): Likewise.
74 * alpha.h (PREDICATE_CODES): Likewise.
75
76 Sat Dec 26 23:26:26 1998 Jeff Law (law@cygnus.com)
77
78 * version.c: Bump for snapshot.
79
80 Sat Dec 26 09:17:04 1998 Jeffrey A Law (law@cygnus.com)
81
82 * gengenrtl.c (gencode): Always use bzero to clear memory instead
83 of dangerous casts and stores.
84
85 * Makefile.in (compare, gnucompare): Add missing else true clauses.
86
87 Fri Dec 25 23:00:56 1998 Jeffrey A Law (law@cygnus.com)
88
89 * alpha.md (builtin_longjmp): Add missing "DONE".
90
91 Thu Dec 24 10:39:57 1998 Stan Cox <scox@cygnus.com>
92
93 * gcc.c (execute): Enable -pipe with win32.
94
95 Wed Dec 23 10:27:44 1998 Nick Clifton <nickc@cygnus.com>
96
97 * config/arm/t-arm-elf: Add multiplib option for leading
98 underscores.
99
100 * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
101 'user_label_prefix' rather than macro USER_LABEL_PREFIX.
102
103 (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
104 than variable 'reload_address_base_reg_class'. [Note this
105 change is unrelated to the others in this patch].
106
107 * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
108 leading underscore.
109
110 Wed Dec 23 09:51:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
111
112 * alias.c (record_alias_subset): Remove ignored `&'.
113 (init_alias_once): Likewise.
114
115 * c-lex.c (UNGETC): Cast first argument of comma expression to void.
116
117 * config/mips/mips.c (mips_asm_file_end): Cast the result of
118 fwrite to `int' when comparing against one.
119
120 * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
121 (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
122
123 * cse.c (rehash_using_reg): Change type of variable `i' to
124 unsigned int.
125
126 * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
127 assigning it to one.
128
129 * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
130
131 * final.c (final_scan_insn): Likewise for variable `i'.
132 (output_asm_insn): Cast a char to unsigned char when used as an
133 array index.
134
135 * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
136 assigning it to one.
137
138 * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
139
140 * recog.c (preprocess_constraints): Cast a char to unsigned char
141 when used as an array index.
142
143 * regmove.c (find_matches): Likewise.
144
145 * reload1.c (calculate_needs): Add default case in switch.
146 (eliminate_regs_in_insn): Initialize variable `offset'.
147 (set_offsets_for_label): Change type of variable `i' to unsigned.
148 (reload_as_needed): Wrap variable `i' in macro check on
149 AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
150
151 * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
152 with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t
153 when comparing against one.
154
155 * stor-layout.c (layout_decl): Cast maximum_field_alignment to
156 unsigned when comparing against one. Likewise for
157 GET_MODE_ALIGNMENT().
158 (layout_record): Cast record_align to int when comparing against a
159 signed value.
160 (layout_type): Cast TYPE_ALIGN() to int when comparing against a
161 signed value.
162
163 * tree.c (get_identifier): Cast variable `len' to unsigned when
164 comparing against one.
165 (maybe_get_identifier): Likewise
166
167 Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com)
168
169 * toplev.c (rest_of_compilation): Do not set reload_completed.
170 * reload1.c (reload): Set reload_completed before calling
171 cleanup_subreg_operands.
172
173 Tue Dec 22 23:58:31 1998 Richard Henderson <rth@cygnus.com>
174
175 * reload1.c (emit_reload_insns): Check `set' not null before use.
176
177 Tue Dec 22 15:15:45 1998 Nick Clifton <nickc@cygnus.com>
178
179 * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
180 'int'.
181
182 Tue Dec 22 13:55:44 1998 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
183
184 * halfpic.c (half_pic_encode): Delete redundant code.
185
186 Tue Dec 22 13:02:22 1998 Michael Meissner <meissner@cygnus.com>
187
188 * toplev.c (main): Delete handling of -dM as a preprocessor
189 option.
190
191 Mon Dec 21 17:39:38 1998 Michael Meissner <meissner@cygnus.com>
192
193 * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
194 -dI, which are handled by the preprocessor.
195
196 Sun Dec 20 16:13:44 1998 John F. Carr <jfc@mit.edu>
197
198 * configure.in: Handle Digital UNIX 5.x the same as 4.x.
199 * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
200
201 Sun Dec 20 07:39:52 1998 Jeff Law (law@cygnus.com)
202
203 * version.c: Bump for snapshot.
204
205 Sat Dec 19 22:24:22 1998 Jeff Law (law@cygnus.com)
206
207 * version.c: Bump for snapshot.
208
209 Sat Dec 19 21:41:32 1998 Jeff Law (law@cygnus.com)
210
211 * version.c: Bump for snapshot.
212
213 Sat Dec 19 09:52:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
214
215 * genattr.c (fatal): Qualify a char* with the `const' keyword.
216
217 * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
218 write_unit_name, write_eligible_delay, expand_units,
219 make_length_attrs, write_attr_case, find_attr,
220 make_internal_attr): Likewise.
221 * gencheck.c (tree_codes): Likewise.
222 * gencodes.c (fatal): Likewise.
223 * genconfig.c (fatal): Likewise.
224 * genemit.c (fatal): Likewise.
225 * genextract.c (fatal, walk_rtx, copystr): Likewise.
226 * genflags.c (fatal): Likewise.
227 * genopinit.c (fatal, optabs, gen_insn): Likewise.
228 * genoutput.c (fatal, error, predicates): Likewise.
229 * genpeep.c (fatal): Likewise.
230 * genrecog.c (fatal, decision, pred_table, add_to_sequence,
231 write_tree_1, write_tree, change_state, copystr, indents): Likewise.
232
233 Thu Dec 17 18:21:49 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
234
235 * configure.in (with-fast-fixincludes): Fix whitespace.
236 * configure: Rebuilt.
237
238 * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
239 asm() etc. function declarations in __DECC.
240
241 Thu Dec 17 13:57:23 1998 Nick Clifton <nickc@cygnus.com>
242
243 * expr.c (emit_move_insn_1): Only emit a clobber if the target
244 is a pseudo register.
245
246 Thu Dec 17 13:50:29 1998 Nick Clifton <nickc@cygnus.com>
247
248 * gcse.c: Include expr.h in order to get the prototype for
249 get_condition() which is used in delete_null_pointer_checks().
250
251 Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
252
253 * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
254
255 Thu Dec 17 12:31:12 1998 Jim Wilson <wilson@cygnus.com>
256
257 * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
258 (ALL_CFLAGS): Delete SCHED_CFLAGS.
259
260 1998-12-17 Vladimir N. Makarov <vmakarov@cygnus.com>
261
262 * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
263 ';').
264
265 1998-12-17 Michael Tiemann <tiemann@axon.cygnus.com>
266
267 * i960.md (extend*, zero_extend*): Don't generate rtl that looks
268 like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
269 optimizations from the combiner.
270
271 Thu Dec 17 08:27:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
272
273 * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
274
275 Wed Dec 16 17:30:35 1998 Nick Clifton <nickc@cygnus.com>
276
277 * toplev.c (main): Disable optimize_size if a specific
278 optimization level is requested. Always set optimization
279 level to 2 if -Os is specified.
280
281 Wed Dec 16 16:33:04 1998 Dave Brolley <brolley@cygnus.com>
282
283 * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
284 cpplib.
285 * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
286 initialize it using fname.
287
288 1998-12-16 Zack Weinberg <zack@rabi.phys.columbia.edu>
289
290 * cpplib.c (do_include): Treat #include_next in the
291 primary source file as #include plus warning. Treat
292 #include_next in a file included by absolute path as an
293 error. fp == CPP_NULL_BUFFER is a fatal inconsistency.
294
295 Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
296
297 * cccp.c: Don't define MIN/MAX anymore.
298 * cpplib.c: Likewise.
299 * machmode.h: Likewise.
300 * system.h: Provide definitions for MIN/MAX.
301
302 Tue Dec 15 23:47:42 1998 Zack Weinberg <zack@rabi.phys.columbia.edu>
303
304 * fix-header.c: Don't define xstrdup here.
305
306 Wed Dec 16 05:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
307
308 * loop.c (consec_sets_giv): New argument last_consec_insn.
309 (strength_reduce): Provide / use it.
310
311 Wed Dec 16 17:24:07 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
312
313 * loop.h (loop_info): New field 'vtop'.
314 * loop.c (check_dbra_loop): Use loop_info->vtop rather than
315 scanning loop for vtop.
316 * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
317 (loop_iterations): Use them to determine if loop has a constant
318 number of iterations. Set loop_info->vtop. Don't subtract
319 common reg term from initial_value and final_value if have a
320 do-while loop.
321
322 Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com)
323
324 * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
325
326 * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
327
328 * mn10200.md (abssf2, negsf2): New expanders.
329
330 * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
331
332 Tue Dec 15 11:55:30 1998 Nick Clifton <nickc@cygnus.com>
333
334 * integrate.c (copy_rtx_and_substitute): If a SUBREG is
335 replaced by a CONCAT whose components do not have the same
336 mode as the original SUBREG, use a new SUBREG to restore the
337 mode.
338
339 * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
340 multiword complex values.
341
342 1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu>
343
344 * cppalloc.c: Add xstrdup here.
345 * cpplib.h: Remove savestring prototype.
346 * cpplib.c: Remove savestring function. s/savestring/xstrdup/
347 throughout.
348 * cppfiles.c: s/savestring/xstrdup/ throughout.
349
350 1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu>
351
352 * cpplib.c: Make all directive handlers read their own
353 arguments.
354 (struct directive): Remove last two arguments from FUNC
355 member prototype. Remove `command_reads_line' member
356 entirely.
357 (directive_table): Remove initializations of
358 command_reads_line flag. Pretty-print.
359 (eval_if_expression, do_define, do_line, do_include,
360 do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
361 do_else, do_elif, do_sccs, do_assert, do_unassert,
362 do_warning): Take only two args.
363
364 (cpp_define): Call do_define with two args and the text to
365 define stuffed into a buffer.
366 (make_assertion): Call do_assert with two args.
367 (handle_directive): Call do_line with two args. Call
368 kt->func with two args. Remove command_reads_line
369 processing.
370 (do_define, do_undef, do_error, do_warning, do_pragma,
371 do_sccs): Read the rest of the line here.
372 (do_ident): Gobble rest of line, as cccp does.
373 (cpp_undef): New function.
374 (cpp_start_read): Call cpp_undef instead of do_undef.
375
376 1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu>
377
378 * cpphash.h (union hash_value): Remove `keydef' member, add a
379 `struct hashnode *aschain' member for #assert.
380
381 * cpplib.c (struct tokenlist_list, struct
382 assertion_hashnode): Delete structure definitions.
383 (assertion_install, assertion_lookup, delete_assertion,
384 check_assertion, compare_token_lists, reverse_token_list,
385 read_token_list, free_token_list): Delete functions.
386 (parse_assertion): New function.
387 (cpp_cleanup): Don't destroy the assertion_hashtable.
388
389 (do_assert): Gut and rewrite. #assert foo (bar) places
390 entries for `#foo' and `#foo(bar)' in the macro hash table,
391 type T_ASSERT. The value union's `aschain' member is used
392 to chain all answers for a given predicate together.
393 (do_unassert): Also rewritten. Take an un-asserted
394 answer off the chain from its predicate and call
395 delete_macro on the hashnode, or walk a predicate chain
396 calling delete_macro on all the entries.
397 (cpp_read_check_assertion): Simply call parse_assertion to
398 get the canonical assertion name, and look that up in the
399 hash table.
400
401 * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
402 Removed.
403
404 * cpphash.c (install): Use bcopy instead of an explicit loop
405 to copy the macro name.
406
407 * cppexp.c (cpp_lex): Convert the result of
408 cpp_read_check_assertion to a `struct operation' directly;
409 don't go through parse_number.
410
411 Tue Dec 15 18:27:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
412
413 * loop.h (struct induction): Delete times_used member.
414 * loop.c (n_times_set): Rename to set_in_loop. Changed all users.
415 (n_times_used): Rename to n_times_set. Changed all users.
416 (scan_loop): Free reg_single_usage before strength reduction.
417 (record_giv, combine_givs): Remove handling of times_used member.
418 (combine_givs_used_once): Rename to:
419 (combine_givs_used_by_other) . Changed all callers.
420
421 Tue Dec 15 01:45:26 1998 Jason Merrill <jason@yorick.cygnus.com>
422
423 * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
424 instead of TREE_CODE_CLASS == 't'.
425 (gen_type_die): Likewise.
426 (scope_die_for): Ignore FUNCTION_TYPE "scopes".
427
428 Mon Dec 14 16:23:27 1998 Jim Wilson <wilson@cygnus.com>
429
430 * real.c (endian): Disable last change unless
431 HOST_BITS_PER_WIDE_INT is greater than 32.
432
433 Mon Dec 14 17:13:36 1998 Andrew MacLeod <amacleod@cygnus.com>
434
435 * output.h (force_data_section): New prototype.
436 * varasm.c (force_data_section): New function to force the
437 data section, regardless of what in_section thinks.
438 * dwarf2out.c (output_call_frame_info): Call force_data_section
439 since varasm may not realize we've changes sections.
440
441 Mon Dec 14 14:09:34 1998 Nick Clifton <nickc@cygnus.com>
442
443 * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
444 after completing reload.
445
446 * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
447 deleted after reload.
448
449 Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com)
450
451 * rtl.h (multiple_sets): Fix prototype.
452 * rtlanal.c (multiple_sets): Fix return type.
453
454 Sun Dec 13 12:43:58 1998 Jeff Law (law@cygnus.com)
455
456 * version.c: Bump for snapshot.
457
458 Sun Dec 13 01:05:22 1998 Jeff Law (law@cygnus.com)
459
460 * version.c: Bump for snapshot.
461
462 1998-12-13 Manfred Hollstein <manfred@s-direktnet.de>
463
464 * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
465
466 Sun Dec 13 00:24:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
467
468 * rtl.h (recompute_reg_usage): Add second argument.
469 * flow.c (recompute_reg_usage): Likewise.
470 * toplev.c (rest_of_compilation): Supply second argument to
471 recompute_reg_usage.
472
473 * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
474 after reload.
475
476 Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com)
477
478 * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
479 (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
480 (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
481 mcpu32 or m5200.
482
483 * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
484
485 * rtlanal.c (multiple_sets): New function.
486 * rtl.h (multiple_sets): Declare it.
487 * local-alloc.c (wipe_dead_reg): Use it.
488 * global.c (global_conflicts): Likewise.
489
490 Sat Dec 12 22:13:02 1998 Mark Mitchell <mark@markmitchell.com>
491
492 * global.c (record_conflicts): Don't use an array of shorts to
493 store an array of ints.
494 (global_conflicts): Likewise.
495
496 Sat Dec 12 16:49:24 1998 Richard Henderson <rth@cygnus.com>
497
498 * alpha.c (alpha_expand_block_move): mode_for_size expects
499 bits, not bytes. Infer extra alignment from addressof.
500
501 1998-12-11 Michael Meissner <meissner@cygnus.com>
502
503 * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
504 .sbss section, not .sdata.
505
506 1998-12-11 Manfred Hollstein <manfred@s-direktnet.de>
507
508 * cccp.c: Do not #include <sys/stat.h> here; this is already done
509 by "system.h".
510 * collect2.c: Likewise.
511 * cpplib.h: Likewise.
512 * gcc.c: Likewise.
513 * gcov.c: Likewise.
514 * getpwd.c: Likewise.
515 * protoize.c: Likewise.
516 * toplev.c: Likewise.
517
518 * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
519 and don't try to define it here.
520 * Makefile.in (cppmain.o): Depend on machmode.h.
521 (cpplib.o): Likewise.
522 (cpperror.o): Likewise.
523 (cppexp.o): Likewise.
524 (cppfiles.o): Likewise.
525 (cpphash.o): Likewise.
526 (cppalloc.o): Likewise.
527 (fix-header.o): Likewise.
528 (scan-decls.o): Likewise.
529
530 Fri Dec 11 11:02:49 1998 Stan Cox <scox@cygnus.com>
531
532 * sh.c (print_operand): Lookup interrupt_handler attribute instead
533 of relying on static variable.
534 * (calc_live_regs): Likewise.
535 * (sh_pragma_insert_attributes): Create interrupt_handler
536 attribute if a pragma was specified.
537 * (sh_valid_machine_decl_attribute): Don't set static flag.
538 * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
539
540 Fri Dec 11 12:56:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
541
542 * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
543 to determine if a register is live at a jump destination.
544 Everything is dead at a BARRIER.
545
546 Thu Dec 10 16:02:06 1998 Jim Wilson <wilson@cygnus.com>
547
548 * cse.c (simplify_unary_operation): Sign-extend constants when
549 they have the most significant bit set for the target.
550 * real.c (endian): Sign-extend 32 bit output values on a 64 bit
551 host.
552 * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
553 HOST_WIDE_INT temporary before negating it.
554 * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
555
556 Thu Dec 10 15:05:59 1998 Dave Brolley <brolley@cygnus.com>
557
558 * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
559 #if USE_CPPLIB.
560
561 Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
562
563 * collect2.h: New header file for prototypes.
564
565 * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
566
567 * collect2.c: Include collect2.h.
568 * tlink.c: Likewise.
569
570 Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com)
571
572 * flow.c: Update some comments.
573
574 Wed Dec 9 15:29:26 1998 Dave Brolley <brolley@cygnus.com>
575
576 * objc/objc-act.c (cpp_initialized): Removed.
577 (lang_init_options): Initialize cpplib.
578 (lang_decode_option): Move initialization of cpplib to
579 lang_init_options.
580 * c-lang.c (parse_options,parse_in): Added.
581 (lang_init_options): Initialized cpplib here.
582 * c-decl.c (parse_options,cpp_initialized): Removed.
583 (c_decode_option): Move initialization of cpplib to
584 lang_init_options.
585
586 Wed Dec 9 19:36:57 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
587
588 * reload1.c (reload_combine, reload_combine_note_store):
589 Make STORE_RUID always valid.
590 (reload_combine): Check if BASE is clobbered too early.
591
592 Wed Dec 9 09:53:58 1998 Nick Clifton <nickc@cygnus.com>
593
594 * reload.c (find_reloads): Display the insn that cannot be
595 reloaded.
596
597 Wed Dec 9 12:15:26 1998 Dave Brolley <brolley@cygnus.com>
598
599 * cccp.c (create_definition): Fix end of buffer logic.
600
601 Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
602
603 * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
604 pointer parameters changed to use the PARAMS() macro.
605
606 Wed Dec 9 09:12:40 1998 Andrew MacLeod <amacleod@cygnus.com>
607
608 * except.h (struct handler_info): Add handler_number field.
609 * except.c (gen_exception_label): EH labels no longer need to be
610 on the permanent obstack.
611 (get_new_handler): Set the label number field.
612 (output_exception_table_entry): Regenerate handler label reference
613 from the label number field.
614 (init_eh): Remove a blank line.
615 * integrate.c (get_label_from_map): Labels no longer need to be
616 on the permanent obstack.
617
618 Tue Dec 8 22:04:33 1998 Jim Wilson <wilson@cygnus.com>
619
620 * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
621 only when OUTER_CODE is SET.
622
623 Tue Dec 8 22:47:15 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
624
625 * loop.c (strength_reduce): If scan_start points to the loop exit
626 test, be wary of subversive use of gotos inside expression statements.
627 Don't set maybe_multiple for a backward jump that does not
628 include the label under consideration into its range.
629 * unroll.c (biv_total_increment): Make use of maybe_multiple field.
630
631 Tue Dec 8 22:33:18 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
632
633 * explow.c (plus_constant_wide): Don't immediately return with
634 result of recursive call.
635
636 Tue Dec 8 15:32:56 1998 Andrew MacLeod <amacleod@cygnus.com>
637
638 * eh-common.h (struct eh_context): Add table_index for rethrows.
639
640 * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
641 (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
642 processed when inlined or unrolled (ie duplicated in some way).
643
644 * rtl.c (reg_note_name): Add strings for new reg_note enums.
645
646 * expr.h (rethrow_libfunc): New library decl.
647
648 * optabs.c (rethrow_libfunc): Initialize.
649
650 * except.h (struct eh_entry): Add new field 'rethrow_label'.
651 (new_eh_region_entry): No longer exported from except.c.
652 (duplicate_handlers): Renamed to duplicate_eh_handlers and
653 different prototype.
654 (rethrow_symbol_map, rethrow_used): New exported functions.
655 (eh_region_from_symbol): New exported function.
656
657 * except.c (create_rethrow_ref): New function to create a single
658 SYMBOL_REF for a rethrow region.
659 (push_eh_entry): Initialize a rethrow ref.
660 (func_eh_entry): Add a rethrow_label field.
661 (new_eh_region_entry): Make static, and initialize the rethrow entry.
662 (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
663 (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
664 (rethrow_symbol_map): Given a label map, maps a rethrow symbol for
665 a region into an appropriate new symbol.
666 (rethrow_used): Indicate whether a rethrow symbol has been referenced.
667 (expand_eh_region_end): Don't issue jump around code for new-exceptions.
668 (end_catch_handler): Emit a barrier for new-exceptions since
669 control can never drop through the end of a catch block.
670 (expand_end_all_catch): new-exceptions never fall through a catch
671 block.
672 (expand_rethrow): Use __rethrow routine for new exceptions.
673 (output_exception_table_entry): Generate rethrow labels, if needed.
674 (output_exception_table): Generate start and end rethrow labels.
675 (init_eh): Create rethrow symbols for beginning and end of table.
676 (scan_region): Don't eliminate EH regions which are the targets of
677 rethrows.
678
679 * flow.c (make_edges): Add different edges for rethrow calls,
680 identified by having the REG_EH_RETHROW reg label.
681 (delete_unreachable_blocks): Don't delete regions markers which are
682 the target of a rethrow.
683
684 * integrate.c (save_for_inline_eh_labelmap): New callback routine to
685 allow save_for_inline_copying to call duplicate_eh_handlers.
686 (save_for_inline_copying): Call duplicate_eh_handlers instead of
687 exposing internal details of exception regions.
688 (copy_for_inline): Check if SYMBOL_REFs need adjustment.
689 (expand_inline_function_eh_labelmap): New callback routine to
690 allow expand_inline_function to call duplicate_eh_handlers.
691 (expand_inline_function): Call duplicate_eh_handlers instead of
692 exposing internal details of exception regions.
693 (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
694 flag is set.
695
696 * libgcc2.c (find_exception_handler): Generalize to enable it to
697 pick up processing where it left off last time for a rethrow.
698 (__unwinding_cleanup): New function. debug hook which is called before
699 unwinding when __throw finds there is nothing but cleanups left.
700 (throw_helper): Common parts of __throw extracted out for reuse.
701 (__throw): Common parts moved to throw_helper.
702 (__rethrow): New function for performing rethrows.
703
704 Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com)
705
706 * reload1.c (current_function_decl): Tweak declaration.
707
708 Tue Dec 8 10:23:52 1998 Richard Henderson <rth@cygnus.com>
709
710 * c-decl.c (flag_isoc9x): Default off.
711 (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
712 * cccp.c (print_help, main): Likewise.
713 * gcc.c (default_compilers): Update for -std=gnu*.
714
715 Tue Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com)
716
717 * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
718 * demangle.h: Deleted.
719
720 * reload1.c (current_function_decl): Declare.
721
722 Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
723
724 * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
725
726 Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
727
728 * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
729
730 1998-12-08 Ulrich Drepper <drepper@cygnus.com>
731
732 * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
733 and fputs_unlocked.
734 * configure: Rebuilt.
735 * system.h: If the *_unlocked functions are available use them
736 instead of the locked counterparts by defining macros.
737 * config.in: Regenerated.
738
739 Tue Dec 8 00:34:05 1998 Mike Stump <mrs@wrs.com>
740
741 * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
742 wrong and should only be used for dump related things, not
743 debugging information, instead main_input_filename should be used.
744 Also, reuse output_file_directive if possible.
745 * i386/aix386ng.h (ASM_FILE_START): Likewise.
746 * i386/isc.h (ASM_FILE_START): Likewise.
747 * i386/win-nt.h (ASM_FILE_START): Likewise.
748 * i386/sun386.h (ASM_FILE_START): Likewise.
749
750 Mon Dec 7 23:56:28 1998 Robert Lipe <robertl@dgii.com>
751
752 * configure.in (mips*-*-linux*): Handle big and little endian
753 systems.
754 * configure: Rebuilt.
755
756 Mon Dec 7 23:14:51 1998 Mike Stump <mrs@wrs.com>
757
758 * emit-rtl.c: Fix typo.
759
760 Mon Dec 7 23:07:38 1998 Nathan Sidwell <nathan@acm.org>
761
762 * reload1.c (eliminate_regs): Don't do anything, if we're not
763 generating code.
764
765 Mon Dec 7 15:27:09 1998 DJ Delorie <dj@cygnus.com>
766
767 * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
768 Add comment.
769 * mips/mips.c (mips_select_section): Add comment.
770
771 Mon Dec 7 17:55:06 1998 Mike Stump <mrs@wrs.com>
772
773 * cccp.c (ignore_escape_flag): Add support for \ as `natural'
774 characters in file names in #line to be consistent with #include
775 handling. We support escape processing in the # 1 "..." version of
776 the command. See also support in cp/lex.c.
777 (handle_directive): Likewise.
778 (do_line): Likewise.
779
780 1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu>
781
782 * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
783 so it'll work on non-ASCII platforms. Always consider $ an
784 identifier character. Take no arguments.
785 (cpp_reader_init): Call initialize_char_syntax with no
786 arguments.
787 (cpp_start_read): Don't call initialize_char_syntax again.
788 Clear is_idchar['$'] and is_idstart['$'] if not
789 opts->dollars_in_ident.
790
791 * cpplib.h (struct cpp_reader): Replace void *data element by
792 cpp_options *opts. Rearrange elements to make gdb printout
793 less annoying (put buffer stack at end).
794 (CPP_OPTIONS): Get rid of now-unnecessary cast.
795
796 * cppmain.c: s/data/opts/ when initializing cpp_reader
797 structure.
798 * c-decl.c: Likewise.
799 * objc/objc-act.c: Likewise.
800 * fix-header.c: Likewise.
801
802 1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu>
803
804 * cpplib.h (struct cpp_buffer): Replace dir and dlen members
805 with a struct file_name_list pointer.
806 (struct cpp_reader): Add pointer to chain of `actual
807 directory' include searchpath entries.
808 (struct file_name_list): Add *alloc pointer for the sake of
809 the actual-directory chain.
810
811 Move definition of HOST_WIDE_INT here.
812 (cpp_parse_escape): Change prototype to match changes in
813 cppexp.c.
814
815 * cppfiles.c (actual_directory): New function.
816 (finclude): Use it to initialize the buffer's actual_dir
817 entry.
818 (find_include_file): We don't need to fix up max_include_len
819 here.
820
821 * cpplib.c (do_include): Don't allocate a file_name_list on
822 the fly for current directory "" includes, use the one that's
823 been preallocated in pfile->buffer->actual_dir. Hoist out
824 duplicate code from the search_start selection logic.
825 (cpp_reader_init): Initialize pfile->actual_dirs.
826
827 Remove definition of HOST_WIDE_INT. Change calls
828 to cpp_parse_escape to match changes in cppexp.c (note
829 hardcoded MASK, which is safe since this is the source
830 character set).
831
832 * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
833 to handle wide character constants in #if directives. The
834 function now returns a HOST_WIDE_INT, and takes a third
835 argument which is a binary mask for all legal values (0x00ff
836 for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.) Define
837 MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK. Change callers of
838 cpp_parse_escape to match. [Fixes c-torture/execute/widechar-1.c]
839
840 Mon Dec 7 15:38:25 1998 Dave Brolley <brolley@cygnus.com>
841
842 * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
843
844 Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
845
846 * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
847 * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
848 * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
849
850 Mon Dec 7 11:30:49 1998 Nick Clifton <nickc@cygnus.com>
851
852 * final.c (output_asm_name): Use tabs to separate comments from
853 assembly text.
854
855 Include instruction lengths (if defined) in output.
856
857 Mon Dec 7 10:53:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
858
859 * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
860 in the loop_info structure.
861
862 Mon Dec 7 11:04:40 1998 Catherine Moore <clm@cygnus.com>
863
864 * configure.in (arm*-*-ecos-elf): New target.
865 * configure: Regenerated.
866 * config/arm/elf.h (ASM_WEAKEN_LABEL): Define.
867 * config/arm/ecos-elf.h: New file.
868 * config/arm/unknown-elf.h (TARGET_VERSION): Check
869 for redefinition.
870
871 Mon Dec 7 16:15:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
872
873 * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
874
875 Sun Dec 6 04:19:45 1998 Jeff Law (law@cygnus.com)
876
877 * version.c: Bump for snapshot.
878
879 Sun Dec 6 05:16:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
880
881 * loop.c (check_dbra_loop): New argument loop_info. Update fields
882 as needed.
883
884 Sun Dec 6 03:40:13 1998 Jeff Law (law@cygnus.com)
885
886 * version.c: Bump for snapshot.
887
888 Sun Dec 6 07:49:29 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
889
890 * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
891 compressed reports are ok and preferred over URLs.
892
893 Sun Dec 6 07:45:33 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
894
895 * invoke.texi (Warning Options): Soften the tone of -pedantic.
896
897 Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org)
898
899 * print-rtl.c (print_rtx): Add prototype.
900
901 * unroll.c (iteration_info): Make it static.
902
903 Sun Dec 6 01:19:46 1998 Richard Henderson <rth@cygnus.com>
904
905 * alias.c (memrefs_conflict_p): A second ANDed address
906 disables the aligned address optimization.
907
908 Sat Dec 5 18:48:25 1998 Richard Henderson <rth@cygnus.com>
909
910 * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
911 in -c << n case.
912
913 Sat Dec 5 15:14:52 1998 Jason Merrill <jason@yorick.cygnus.com>
914
915 * i960.h (BOOL_TYPE_SIZE): Define.
916
917 Sun Dec 6 00:28:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
918
919 * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
920 from old valid_parallel_operands_4.
921 (valid_parallel_operands_4): Check that operands for 4 operand
922 parallel insns are valid, excluding load/store insns.
923 * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
924 * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
925 valid_parallel_load_store instead of valid_parallel_operands_4.
926 (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber,
927 *negqf2_movqf_clobber, *absqi2_movqi_clobber,
928 *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
929 *notqi_movqi_clobber): Use valid_parallel_operands_4.
930 (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
931 *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
932 *subqi3_movqi_clobber): Use valid_parallel_operands_5.
933
934 Sat Dec 5 23:52:01 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
935
936 * config/c4x/c4x.c (iteration_info): Delete extern.
937
938 Fri Dec 4 20:15:57 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
939
940 * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
941
942 * final.c (cleanup_subreg_operands): Delete some unused code.
943
944 * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
945 (struct insn_alternative): New structure definition.
946 (recog_op_alt): Declare variable.
947 (preprocess_constraints): Declare function.
948 * recog.c (recog_op_alt): New variable.
949 (extract_insn): Verify number of alternatives is in range.
950 (preprocess_constraints): New function.
951 * reg-stack.c: Include recog.h.
952 (constrain_asm_operands): Delete.
953 (get_asm_operand_lengths): Delete.
954 (get_asm_operand_n_inputs): New function.
955 (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
956 N_OUTPUTS args. All callers changed.
957 Compute number of inputs and outputs here by calling
958 get_asm_operand_n_inputs.
959 Instead of constrain_asm_operands, call extract_insn,
960 constrain_operands and preprocess_constraints. Use information
961 computed by these functions throughout.
962 (record_reg_life): Delete code that is unused due to changes in
963 record_asm_reg_life.
964 (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
965 N_INPUTS and N_OUTPUTS args. All callers changed.
966 Similar changes as in record_asm_reg_life.
967 (subst_stack_regs): Move n_operands declaration into the if statement
968 where it's used.
969 Delete code that is unused due to changes in subst_asm_stack_regs.
970 * stmt.c (expand_asm_operands): Verify number of alternatives is in
971 range.
972 * Makefile.in (reg-stack.o): Depend on recog.h.
973
974 Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com)
975
976 * except.c (set_exception_version_code): Argument is an "int".
977
978 Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com)
979
980 * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
981 * configure: Rebuilt.
982
983 Fri Dec 4 01:29:28 1998 Robert Lipe <robertl@dgii.com>
984
985 * configure.in (mipsel-*-linux*): New target.
986 * mips/linux.h: New file, based on other Linux targets.
987
988 Thu Dec 3 11:19:50 1998 Mike Stump <mrs@wrs.com>
989
990 * gthr-vxworks.h (__ehdtor): Fix memory leak. The delete hook
991 runs in the context of the deleter, not the deletee, so we must
992 use taskVarGet to find the correct memory to free.
993 (__gthread_key_create): Initialize the task
994 variable subsystem so that the task variable is still active when
995 the delete hook is run.
996
997 1998-12-03 Joseph S. Myers <jsm28@cam.ac.uk>
998
999 * pdp11.h: Use optimize_size for space optimizations.
1000 * pdp11.c: Likewise.
1001 * pdp11.md: Likewise.
1002
1003 * pdp11.h (TARGET_40_PLUS): Fix typo.
1004
1005 Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com)
1006
1007 * local-alloc.c (block_alloc): Slightly retune heuristic to widen
1008 qty lifetimes.
1009
1010 Thu Dec 3 22:30:18 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1011
1012 * alias.c (addr_side_effect_eval): New function.
1013 (memrefs_conflict_p): Use it.
1014 * rtl.h (addr_side_effect_eval): Prototype it.
1015
1016 1998-12-02 Joseph S. Myers <jsm28@cam.ac.uk>
1017
1018 * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
1019
1020 Wed Dec 2 11:23:07 1998 Jim Wilson <wilson@cygnus.com>
1021
1022 * reload.c (find_reloads): When force const to memory, put result
1023 in substed_operand not *recog_operand_loc.
1024
1025 1998-12-02 Ulrich Drepper <drepper@cygnus.com>
1026
1027 * c-lex.c: Fix indentation from last patch.
1028 Remove trailing whitespace.
1029 * real.c: Likewise.
1030
1031 Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com)
1032
1033 * flow.c (delete_block): Call set_last_insn after we have reset
1034 NEXT_INSN (kept_tail).
1035
1036 Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com)
1037
1038 * mips.md (trap_if): Use "$0" for the value zero.
1039
1040 Tue Dec 1 20:49:49 1998 Ulrich Drepper <drepper@cygnus.com>
1041 Stephen L Moshier <moshier@world.std.com>
1042 Richard Henderson <rth@cygnus.com>
1043
1044 * c-common.c (declare_function_name): Declare predefined variable
1045 `__func__'.
1046
1047 * c-decl.c (flag_isoc9x): Set to 1 by default.
1048 (c_decode_option): Handle -std= option. Remove -flang-isoc9x.
1049 (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
1050
1051 * c-parse.in: Allow constructors in ISO C 9x.
1052 Rewrite designator list handling.
1053 Allow [*] parameters.
1054 Don't warn about comma at end of enum definition for ISO C 9x.
1055
1056 * cccp.c (c9x): New variable.
1057 (rest_extension): New variable.
1058 (print_help): Document new -std= option.
1059 (main): Recognize -std= option. Set c9x appropriately.
1060 (create_definition): Recognize ISO C 9x vararg macros.
1061
1062 * gcc.c (default_compilers): Adjust specs for -std options.
1063 (option_map): Add --std.
1064 (display_help): Document -std.
1065
1066 * toplev.c (documented_lang_options): Add -std and remove
1067 -flang-isoc9x.
1068
1069 * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
1070 or REAL_VALUE_HTOF based on base of the constants.
1071 * fold-const.c (real_hex_to_f): New function. Replacement function
1072 for hex FP conversion if REAL_ARITHMETIC is not defined.
1073 * real.c (asctoeg): Add handling of hex FP constants.
1074 * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
1075 real_hex_to_f.
1076
1077 Tue Dec 1 16:45:49 1998 Stan Cox <scox@cygnus.com>
1078
1079 * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
1080 -mcheck-range-division/-mcheck-zero-division checking. Avoid as macro
1081 expansion. Use hi/lo as destination register.
1082 (div_trap): New.
1083 (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
1084 umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
1085 Avoid as macro expansion. Use hi/lo as destination register.
1086
1087 * mips.h (MASK_CHECK_RANGE_DIV): New.
1088 (MASK_NO_CHECK_ZERO_DIV): New.
1089 (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
1090 (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
1091 return address for leaf functions out of r31 to support
1092 builtin_return_address.
1093
1094 Tue Dec 1 15:03:30 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1095
1096 * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
1097 NEXT_INSN(x) to check insn x.
1098
1099 Tue Dec 1 15:20:44 1998 Jeffrey A Law (law@cygnus.com)
1100
1101 * flow.c (delete_block): Call set_last_insn if we end up deleting the
1102 last insn in the rtl chain.
1103
1104 * reload1.c (reload): Do not set reload_completed or split insns
1105 here. Instead...
1106 * toplev.c (rest_of_compilation): Set reload_completed after
1107 reload returns. Split insns after reload_cse has run.
1108
1109 Tue Dec 1 11:55:04 1998 Richard Henderson <rth@cygnus.com>
1110
1111 * final.c (final_scan_insn): Abort if block_depth falls below 0.
1112
1113 Tue Dec 1 10:23:16 1998 Nick Clifton <nickc@cygnus.com>
1114
1115 * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
1116
1117 Tue Dec 1 10:22:18 1998 Nick Clifton <nickc@cygnus.com>
1118
1119 * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
1120 use of user-label_prefix.
1121
1122 Tue Dec 1 17:58:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1123
1124 * reload1.c (emit_reload_insns): Clear spill_reg_store
1125 when doing a new non-inherited reload from the same pseudo.
1126
1127 * local-alloc.c (function_invariant_p): New function.
1128 (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
1129 to decide if an equivalence should be recorded.
1130 * reload1.c (num_eliminable_invariants): New static variable.
1131 (reload): Set it. Use function_invariant_p instead of CONSTANT_P
1132 to decide if an equivalence should be recorded.
1133 Unshare PLUS.
1134 (calculate_needs_all_insns): Skip insns that only set an equivalence.
1135 Take num_eliminable_invariants into account when deciding
1136 if register elimination should be done.
1137 (reload_as_needed): Take num_eliminable_invariants into account
1138 when deciding if register elimination should be done.
1139 (eliminate_regs): Handle non-constant reg_equiv_constant.
1140 * rtl.h (function_invariant_p): Declare.
1141
1142 Mon Nov 30 02:00:08 1998 Jeff Law (law@cygnus.com)
1143
1144 * version.c: Bump for snapshot.
1145
1146 Mon Nov 30 00:42:59 1998 Jeff Law (law@cygnus.com)
1147
1148 * version.c: Bump for snapshot.
1149
1150 Sun Nov 29 22:59:40 1998 Jason Merrill <jason@yorick.cygnus.com>
1151
1152 * except.c (add_new_handler): Complain about additional handlers
1153 after one that catches everything.
1154
1155 Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com)
1156
1157 * configure.in (alpha*-*-netbsd): Fix typo.
1158 * configure: Rebuilt.
1159
1160 Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1161
1162 * system.h: Include libiberty.h.
1163
1164 * c-aux-info.c: Remove prototypes for concat/concat3. Change
1165 function `concat' from fixed parameters to variable parameters,
1166 as is done in libiberty. All callers of concat/concat3
1167 changed to use the new `concat' with variable args.
1168
1169 * cccp.c: Remove things made redundant by libiberty.h and/or
1170 conform to libiberty standards.
1171 * cexp.y: Likewise.
1172 * collect2.c: Likewise.
1173 * config/1750a/1750a.h: Likewise.
1174 * cppalloc.c: Likewise.
1175 * cppexp.c: Likewise.
1176 * cppfiles.c: Likewise.
1177 * cpphash.c: Likewise.
1178 * cpplib.c: Likewise.
1179 * dyn-string.c: Likewise.
1180 * fix-header.c: Likewise.
1181 * gcc.c: Likewise.
1182 * gcov.c: Likewise.
1183 * genattr.c: Likewise.
1184 * genattrtab.c: Likewise.
1185 * gencheck.c: Likewise.
1186 * gencodes.c: Likewise.
1187 * genconfig.c: Likewise.
1188 * genemit.c: Likewise.
1189 * genextract.c: Likewise.
1190 * genflags.c: Likewise.
1191 * gengenrtl.c: Likewise.
1192 * genopinit.c: Likewise.
1193 * genoutput.c: Likewise.
1194 * genpeep.c: Likewise.
1195 * genrecog.c: Likewise.
1196 * getpwd.c: Likewise.
1197 * halfpic.c: Likewise.
1198 * hash.c: Likewise.
1199 * mips-tdump.c: Likewise. Wrap malloc/realloc/calloc prototypes
1200 in NEED_DECLARATION_* macros.
1201
1202 * mips-tfile.c: Remove things made redundant by libiberty.h and/or
1203 conform to libiberty standards.
1204 (fatal): Fix const-ification of variable `format' in
1205 !ANSI_PROTOTYPES case.
1206
1207 * prefix.c: Remove things made redundant by libiberty.h and/or
1208 conform to libiberty standards.
1209
1210 * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
1211 conflicting with function `spaces' from libiberty.
1212
1213 * profile.c: Remove things made redundant by libiberty.h and/or
1214 conform to libiberty standards.
1215 * protoize.c: Likewise.
1216 * rtl.h: Likewise.
1217 * scan.h: Likewise.
1218 * tlink.c: Likewise.
1219 * toplev.c: Likewise.
1220 * toplev.h: Likewise.
1221 * tree.h: Likewise.
1222
1223 Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1224
1225 * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
1226
1227 Thu Nov 26 23:45:37 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1228
1229 * README.C4X: Updated URLs.
1230 * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
1231 (valid_parallel_operands_5): Remove unused variable.
1232
1233 Thu Nov 26 23:40:03 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1234
1235 * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
1236
1237 1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
1238
1239 * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
1240 which can be configured.
1241 (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
1242 (Makefile): Pass actual LANGUAGES through the environment when
1243 re-configuring.
1244 (cstamp-h): Likewise.
1245 (config.status): Likewise.
1246
1247 * configure.in (enable_languages): Add new configuration parameter
1248 "--enable-languages=lang1,lang2,...".
1249 (${srcdir}/*/config-lang.in): Change handling to configure only
1250 those directories, that the user might have enabled; default to
1251 "all" existing languages.
1252 * configure: Regenerate.
1253
1254 Thu Nov 26 00:19:19 1998 Richard Henderson <rth@cygnus.com>
1255
1256 * rtlanal.c (regs_set_between_p): New function.
1257 * rtl.h (regs_set_between_p): Prototype it.
1258 * jump.c (jump_optimize): Use it instead of modified_between_p
1259 in the Sep 2 change.
1260
1261 Wed Nov 25 23:32:02 1998 Ian Dall <Ian.Dall@dsto.defence.gov.au>
1262 Matthias Pfaller <leo@dachau.marco.de>
1263
1264 * invoke.texi (Option Summary, NS32K Options): Add description
1265 of NS32K specific options.
1266
1267 * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
1268 fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
1269 fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
1270 negdf2, absdf2): Use l instead of f since the double class and
1271 float class are no longer the same.
1272 (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
1273 divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
1274 ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
1275 Use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
1276 fixed.
1277 (cmpsi, cmphi, cmpqi): Use general_operand instead of
1278 non_immediate_operand. Removes erroneous assumption that can't
1279 compare constants.
1280 (movsf, movsi, movhi, movqi,...): New register numbering scheme.
1281 (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
1282 constants.
1283 (movstrsi, movstrsi1, movstrsi2): Completely new block move
1284 scheme.
1285 (...): Patterns to exploit multiply-add instructions.
1286 (udivmodsi4, udivmodsi_internal4, udivmodhi4,
1287 udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): New
1288 patterns to exploit extended divide insns.
1289 (udivsi3, udivhi3, udivqi3): Remove since superseded by udivmodsi
1290 etc patterns.
1291
1292 * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
1293 float return values as well as simple scalar floats.
1294 (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
1295 Support new flag to denote 32381 fpu.
1296 (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
1297 (CONDITIONAL_REGISTER_USAGE): Disable extra 32381 registers if not
1298 compiling for 32381.
1299 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1300 REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
1301 REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
1302 L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
1303 LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
1304 REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
1305 REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
1306 REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
1307 REG_OK_FOR_BASE_P, MEM_REG): New register scheme to include 32381
1308 fpu registers and special register classes for new 32381
1309 instructions dotf and polyf.
1310 (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
1311 be tieable.
1312 (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
1313 INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
1314 required.
1315 (SMALL_REGISTER_CLASSES): Make dependent on -mmult-add option.
1316 (MOVE_RATIO): Set to zero because of smart movstrsi implementation.
1317 (REGISTER_MOVE_COST): Move code to register_move_cost function for
1318 ease of coding and debugging.
1319 (CLASS_LIKELY_SPILLED_P): Under new register scheme class
1320 LONG_FLOAT_REGO is likely spilled but not caught by default
1321 definition.
1322 (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): Use macro
1323 instead of hard coded numbers in range check.
1324 (ASM_OUTPUT_LABELREF_AS_INT): Delete since unused.
1325 (...): Add prototypes for functions in ns32k.c but disable because
1326 of problems when ns32k.h is included in machine independent files.
1327
1328 * ns32k.c: Include "system.h", "tree.h", "expr.h", "flags.h".
1329 (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
1330 hard_regno_mode_ok, secondary_reload_class,
1331 print_operand, print_operand_address): New register scheme to
1332 include 32381 fpu registers and special register classes for new
1333 32381 instructions dotf and polyf.
1334 (gen_indexed_expr): Make static to keep namespace clean.
1335 (check_reg): Remove since never called.
1336 (move_tail, expand_block_move): Helper functions for "movstrsi"
1337 block move insn.
1338 (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
1339 Increase cost of moves which go via memory.
1340 * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
1341 (CPP_PREDEFINES): No longer predefine "unix".
1342
1343 * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
1344 Remove erroneous %$. print_operand() can work out from the rtx is
1345 an immediate prefix is required.
1346
1347 * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
1348 VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
1349 SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
1350 convention.
1351 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
1352 pic operands.
1353
1354 * ns32k.c (symbolic_reference_mentioned_p, print_operand):
1355 Correct handling of pic operands.
1356 (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
1357 ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
1358 -mrtd calling convention.
1359
1360 Wed Nov 25 23:42:20 1998 Tom Tromey <tromey@cygnus.com>
1361
1362 * gcc.c (option_map): Recognize --output-class-directory.
1363
1364 Thu Nov 26 18:26:21 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1365
1366 * loop.h (precondition_loop_p): Added new mode argument.
1367 * unroll.c (precondition_loop_p): Likewise.
1368 (approx_final_value): Function deleted and subsumed
1369 into loop_iterations.
1370 (loop_find_equiv_value): New function.
1371 (loop_iterations): Use loop_find_equiv_value to find increments
1372 too large to be immediate constants. Also use it to find terms
1373 common to initial and final iteration values that can be removed.
1374
1375 Thu Nov 26 18:05:04 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1376
1377 * loop.h (struct loop_info): Define new structure.
1378 (precondition_loop_p): Added prototype.
1379 (unroll_loop): Added new argument loop_info to prototype.
1380 (final_biv_value, final_giv_value): Added new argument n_iterations
1381 to prototype.
1382 * loop.c (strength_reduce): Declare new structure loop_iteration_info
1383 and new pointer loop_info.
1384 (loop_n_iterations): Replace global variable by element in
1385 loop_info structure.
1386 (check_final_value): New argument n_iterations.
1387 (insert_bct): New argument loop_info.
1388 (loop_unroll_factor): Replace global array by element in
1389 loop_info structure.
1390 (loop_optimize): Remove code to allocate and initialize
1391 loop_unroll_factor_array.
1392 * unroll.c (precondition_loop_p): No longer static since
1393 used by branch on count optimization.
1394 (precondition_loop_p, unroll_loop): New argument loop_info.
1395 (final_biv_value, final_giv_value, find_splittable_regs): New
1396 argument n_iterations.
1397 (loop_iteration_var, loop_initial_value, loop_increment,
1398 loop_final_value, loop_comparison_code, loop_unroll_factor):
1399 Replaced global variables by loop_info structure.
1400 (loop_unroll_factor): Replace global array by element in
1401 loop_info structure.
1402
1403 Thu Nov 26 17:49:29 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1404
1405 * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
1406 when loop reversed.
1407
1408 * unroll.c (precondition_loop_p): Return loop_initial_value
1409 for initial_value instead of loop_iteration_var.
1410
1411 Thu Nov 26 17:15:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1412
1413 * config/c4x/c4x.md: Fix minor formatting problems. Update docs.
1414 (*b, *b_rev, *b_noov, *b_noov_rev, *db,
1415 decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
1416 to output the instruction sequences.
1417 (rpts): Delete.
1418 (rptb_top): Provide alternatives to use any register or memory
1419 for loop counter.
1420 (rptb_end): Emit use of operands rather than assigning them
1421 explicitly to the RS and RE registers.
1422
1423 Thu Nov 26 16:37:59 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1424
1425 * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
1426 c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
1427 c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
1428 c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after,
1429 c4x_merge_notes, c4x_parallel_process,
1430 c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
1431 c4x_combine_parallel): Delete.
1432
1433 Thu Nov 26 15:16:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1434
1435 * config/c4x/c4x.c (c4x_override_options): For compatibility
1436 with old target options clear flag_branch_on_count_reg if
1437 -mno-rptb specified and set flag_argument_alias is -mno-aliases
1438 specified.
1439 (c4x_output_cbranch): Handle a sequence of insns rather than a
1440 single insn.
1441 (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
1442 has not been allocated as the loop counter.
1443 (c4x_address_conflict): Do not allow two volatile memory references.
1444 (valid_parallel_operands_4, valid_parallel_operands_5,
1445 valid_parallel_operands_6): Reject pattern if the register destination
1446 of the first set is used as part of an address in the second set.
1447
1448 Thu Nov 26 14:56:32 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1449
1450 * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
1451 (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
1452 is no longer enabled if PARALLEL_MPY_FLAG set.
1453 (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
1454 (REG_CLASS_CONTENTS): Add braces around initializers.
1455 (HAVE_MULTIPLE_PACK): Define.
1456 (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with
1457 REAL_VALUE_TO_DECIMAL.
1458 (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with
1459 REAL_VALUE_TO_DECIMAL.
1460 (ar0_reg_operand): Add prototype.
1461 (ar0_mem_operand): Likewise.
1462 (ar1_reg_operand): Likewise.
1463 (ar1_mem_operand): Likewise.
1464 (ar2_reg_operand): Likewise.
1465 (ar2_mem_operand): Likewise.
1466 (ar3_reg_operand): Likewise.
1467 (ar3_mem_operand): Likewise.
1468 (ar4_reg_operand): Likewise.
1469 (ar4_mem_operand): Likewise.
1470 (ar5_reg_operand): Likewise.
1471 (ar5_mem_operand): Likewise.
1472 (ar6_reg_operand): Likewise.
1473 (ar6_mem_operand): Likewise.
1474 (ar7_reg_operand): Likewise.
1475 (ar7_mem_operand): Likewise.
1476 (ir0_reg_operand): Likewise.
1477 (ir0_mem_operand): Likewise.
1478 (ir1_reg_operand): Likewise.
1479 (ir1_mem_operand): Likewise.
1480 (group1_reg_operand): Likewise.
1481 (group1_mem_operand): Likewise.
1482 (ir1_reg_operand): Likewise.
1483 (arx_reg_operand): Likewise.
1484 (not_rc_reg): Likewise.
1485 (not_modify_reg): Likewise.
1486 (c4x_group1_reg_operand): Remove prototype.
1487 (c4x_group1_mem_operand): Likewise.
1488 (c4x_arx_reg_operand): Likewise.
1489
1490 Wed Nov 25 19:02:55 1998 (Stephen L Moshier) <moshier@world.std.com>
1491
1492 * emit-rtl.c (gen_lowpart_common): Remove earlier change.
1493 * real.c (make_nan): Make SIGN arg actually specify the sign bit.
1494
1495 Thu Nov 26 14:12:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1496
1497 * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
1498 during reload.
1499
1500 Wed Nov 25 22:05:28 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1501
1502 * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
1503 unless FMOVD_WORKS is defined.
1504
1505 Wed Nov 25 20:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1506
1507 * regclass.c (init_reg_sets): Move code that calculates tables
1508 dependent on reg_class_contents from here...
1509 (init_reg_sets_1): To here.
1510
1511 Wed Nov 25 14:54:46 1998 Zack Weinberg <zack@rabi.phys.columbia.edu>
1512
1513 * cpplib.h: Delete struct import_file. Add ihash element to
1514 struct cpp_buffer. Delete dont_repeat_files and
1515 import_hash_table elements from cpp_reader; change
1516 all_include_files to a hash table. Delete all foobar_include
1517 / last_foobar_include elements from struct cpp_options; put
1518 back four such: quote_include, bracket_include,
1519 system_include, after_include. Redo struct file_name_list
1520 completely. Add new structure type include_hash. Add
1521 prototypes for merge_include_chains and include_hash. Change
1522 prototypes for finclude, find_include_file, and
1523 append_include_chain to match changes below.
1524
1525 * cppfiles.c (simplify_pathname, include_hash,
1526 remap_filename, merge_include_chains): New functions.
1527 (add_import, lookup_import, open_include_file): Removed.
1528 (INO_T_EQ): Define this (copied from cccp.c).
1529 (hack_vms_include_specification): Remove all calls and #if 0
1530 out the definition. It was being called incorrectly and at
1531 the wrong times. Until a VMSie can look at this, it's better
1532 to not pretend to support it.
1533 (append_include_chain): Change calling convention; now takes
1534 only one directory at a time, and sets up the data structure
1535 itself.
1536 (redundant_include_p): Rewritten - this is now used for all
1537 include redundancy, whether by #ifndef, #import, or #pragma
1538 once. Looks up things in the include hash table.
1539 (file_cleanup): Decrement pfile->system_include_depth here if
1540 it's >0.
1541 (find_include_file): Calling convention changed; now passes
1542 around a struct include_hash instead of 3 separate parameters.
1543 Guts ripped out and replaced with new include_hash mechanism.
1544 (finclude): Calling convention changed as for
1545 find_include_file. Error exits pulled out-of-line. Reformat.
1546 (safe_read): Return a long, not an int.
1547 (deps_output): Don't recurse.
1548
1549 * cpplib.c (is_system_include): Deleted.
1550 (path_include): Fix up call to append_include_chain.
1551 (do_include): Fix up calls to find_include_file and finclude.
1552 Clean up dependency output a bit. Shorten obnoxiously lengthy
1553 #import warning message. Don't decrement
1554 pfile->system_include_depth here.
1555 (do_pragma): Understand the include_hash structure. Reformat.
1556 (do_endif): Correct handling of control macros. Understand
1557 the include_hash.
1558 (cpp_start_read): Fix up calls to finclude. Call
1559 merge_include_chains.
1560 (cpp_handle_option): Fix up calls to append_include_chain.
1561 Understand the four partial include chains.
1562 (cpp_finish): Add debugging code (#if 0-ed out) for the
1563 include_hash.
1564 (cpp_cleanup): Free the include_hash, not the import hash and
1565 the all_include and dont_repeat lists which no longer exist.
1566
1567 Wed Nov 25 11:26:19 1998 Jeffrey A Law (law@cygnus.com)
1568
1569 * toplev.c (no_new_pseudos): Define.
1570 (rest_of_compilation): Set no_new_pseudos as needed.
1571 * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
1572 if no_new_pseudos is set.
1573 * rtl.h (no_new_pseudos): Declare it.
1574 * reload1.c (reload): Update comments.
1575 * md.texi: Corresponding changes.
1576
1577 Wed Nov 25 11:26:17 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1578
1579 * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
1580 (choose_reload_regs): Rename it here as well. When computing it,
1581 also merge in used hardregs.
1582
1583 1998-11-25 Zack Weinberg <zack@rabi.phys.columbia.edu>
1584
1585 * gcc.c: Split out Objective-C specs to...
1586 * objc/lang-specs.h: here. (New file.) Make the specs cpplib
1587 aware.
1588
1589 * c-lex.c (init_parse): Always initialize the filename global.
1590 * objc/objc-act.c (lang_init): Always call check_newline at
1591 beginning of file.
1592
1593 Wed Nov 25 00:48:29 1998 Graham <grahams@rcp.co.uk>
1594
1595 * reload1.c (reload): Remove unused variable.
1596 (reload_reg_free_for_value_p): Add missing parameter definition.
1597
1598 * jump.c (jump_optimize): Remove unused variable.
1599
1600 Wed Nov 25 00:07:11 1998 Jeffrey A Law (law@cygnus.com)
1601
1602 * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
1603
1604 * cse.c (fold_rtx): Make autoincrement addressing mode tests be
1605 runtime selectable.
1606 * expr.c (move_by_pieces): Similarly.
1607 (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
1608 * flow.c (find_auto_inc): Similarly.
1609 (try_pre_increment): Similarly.
1610 * loop.c (strength_reduce): Similarly.
1611 * regclass.c (auto_inc_dec_reg_p): Similarly.
1612 * regmove.c (try_auto_increment): Similarly.
1613 (fixup_match_1): Similarly.
1614 * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
1615 (HAVE_PRE_DECREMENT): Similarly.
1616 (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
1617 * Corresponding changes to all target header files.
1618 * tm.texi: Update docs for autoinc addressing modes.
1619
1620 Tue Nov 24 20:24:59 1998 Jim Wilson <wilson@cygnus.com>
1621
1622 * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
1623 * configure: Rebuild.
1624 * config/elfos.h: New file.
1625 * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
1626 config/m68k/t-m68kelf: New file.
1627
1628 Tue Nov 24 13:40:06 1998 Jeffrey A Law (law@cygnus.com)
1629
1630 * Makefile.in (HOST_AR): Define.
1631 (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
1632 (libcpp.a): Use the host tools explicitly.
1633 (STAGESTUFF): Add libcpp.a.
1634
1635 Tue Nov 24 09:33:49 1998 Nick Clifton <nickc@cygnus.com>
1636
1637 * config/m32r/m32r.md (movstrsi_internal): Describe changes made
1638 to source and destination registers.
1639
1640 Mon Nov 23 20:28:02 1998 Mike Stump <mrs@wrs.com>
1641
1642 * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
1643 The strategy we now use is to pre allocate the top_elt along
1644 with the EH context so that each thread has its own top_elt.
1645 This is necessary as the dynamic cleanup chain is used on the
1646 top element of the stack and each thread MUST have its own.
1647 (eh_context_static): Likewise.
1648 (new_eh_context): Likewise.
1649 (__sjthrow): Likewise.
1650
1651 Mon Nov 23 20:25:03 1998 Jason Merrill <jason@yorick.cygnus.com>
1652
1653 * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
1654 * i386.md (prologue_get_pc): Remove unused variable.
1655
1656 Mon Nov 23 17:05:40 1998 Geoffrey Noer <noer@cygnus.com>
1657
1658 * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
1659
1660 Mon Nov 23 16:40:00 1998 Ulrich Drepper <drepper@cygnus.com>
1661
1662 * Makefile.in (OBJS): Add graph.o.
1663 (graph.o): New dependency list.
1664 * flags.h: Declare dump_for_graph and define graph_dump_types type.
1665 * print-rtl.c (dump_for_graph): Define new variable.
1666 (print_rtx): Rewrite to allow use in graph dumping functions.
1667 * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
1668 finish_graph_dump_file.
1669 Define graph_dump_format.
1670 (compile_file): If graph dumping is enabled also clear these files.
1671 Finish graph dump files.
1672 (rest_of_compilation): Also dump graph information if enabled.
1673 (main): Recognize -dv to enabled VCG based graph dumping.
1674 * graph.c: New file. Graph dumping functions.
1675
1676 Mon Nov 23 16:39:04 1998 Richard Henderson <rth@cygnus.com>
1677
1678 * configure.in: Look for <sys/stat.h>.
1679 * system.h: Include it before substitute S_ISREG definitions.
1680
1681 Mon Nov 23 17:40:37 1998 Gavin Romig-Koch <gavin@cygnus.com>
1682
1683 * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
1684 * config/mips/iris6.h: Same.
1685 * config/mips/mips.md: Same.
1686 * config/mips/mips.c: Same; also add "-mabi=o64" option.
1687 * config/mips/mips.h: Same; also define ABI_O64.
1688
1689 Mon Nov 23 17:02:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1690
1691 * configure.in: Use AC_PREREQ(2.12.1).
1692
1693 Mon Nov 23 10:16:38 1998 Melissa O'Neill <oneill@cs.sfu.ca>
1694
1695 * cccp.c (S_ISREG, S_ISDIR): Delete defines.
1696 * cpplib.c, gcc.c: Likewise.
1697 * system.h (S_ISREG, S_ISDIR): Define if not already defined.
1698
1699 Mon Nov 23 09:53:44 1998 Richard Henderson <rth@cygnus.com>
1700
1701 * local-alloc.c (local_alloc): Use malloc not alloca for
1702 reg_qty, reg_offset, ref_next_in_qty.
1703
1704 Mon Nov 23 16:46:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1705
1706 * caller-save.c (insert_one_insn): Initialize the live_before and
1707 live_after register sets.
1708
1709 Add SH4 support:
1710
1711 * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
1712 (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
1713 * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
1714 (fp_reg_names, assembler_dialect): New variables.
1715 (print_operand_address): Handle SUBREGs.
1716 (print_operand): Added 'o' case.
1717 Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
1718 Name of FP registers depends on mode.
1719 (expand_block_move): Emit different code for SH4 hardware.
1720 (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
1721 (from_compare): Likewise.
1722 (add_constant): New argument last_value. Changed all callers.
1723 (find_barrier): Don't try HImode load for FPUL_REG.
1724 (machine_dependent_reorg): Likewise.
1725 (sfunc_uses_reg): A CLOBBER cannot be the address register use.
1726 (gen_far_branch): Emit a barrier after the new jump.
1727 (barrier_align): Don't trust instruction lengths before
1728 fixing up pcloads.
1729 (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
1730 Use auto-inc addressing for fp registers if doubles need to
1731 be loaded in two steps.
1732 Set sh_flag_remove_dead_before_cse.
1733 (push): Support for TARGET_FMOVD. Use gen_push_fpul for fpul.
1734 (pop): Support for TARGET_FMOVD. Use gen_pop_fpul for fpul.
1735 (calc_live_regs): Support for TARGET_FMOVD. Don't save FPSCR.
1736 Support for FIRST_XD_REG .. LAST_XD_REG.
1737 (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
1738 (sh_expand_epilogue): Likewise.
1739 (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
1740 (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
1741 (arith_reg_operand): FPUL_REG is OK for SH4.
1742 (fp_arith_reg_operand, fp_extended_operand): New functions.
1743 (tertiary_reload_operand, fpscr_operand): Likewise.
1744 (commutative_float_operator, noncommutative_float_operator): Likewise.
1745 (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
1746 (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
1747 (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
1748 (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
1749 * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
1750 (CONDITIONAL_REGISTER_USAGE): Likewise.
1751 (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
1752 (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
1753 (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
1754 (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
1755 (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
1756