OSDN Git Service

* tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
2
3         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
4
5 Mon Oct 26 00:36:58 PST 1998 Jeff Law  (law@cygnus.com)
6
7         * version.c: Bump for snapshot.
8
9 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
10
11         * stmt.c (expand_fixup): Set fixup->before_jump to a
12         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
13
14 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15
16         * Makefile.in (recog.o): Depend on toplev.h.
17         (insn-emit.o): Depend on recog.h.
18         (insn-peep.o): Depend on recog.h and insn-config.h.
19
20         * combine.c (simplify_set): Remove unused variable `scratches'.
21
22         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
23         and `idx' in macro conditional controlling their use.
24
25         * genemit.c (main): Make the generated output file include
26         recog.h.  Don't have it declare `insn_operand_constraint', since
27         we get it from recog.h.
28
29         * genpeep.c (main): Make the generated output file include
30         insn-config.h and recog.h.
31
32         * recog.c: Include toplev.h.
33         (extract_insn): Remove unused variable `p'.
34
35         * regclass.c (fix_register): Add missing braces around initializer
36         for `what_option'.
37         (allocate_reg_info): Move variable `i' into the scope where it is
38         used.  Change its type to `size_t'.
39
40 Sun Oct 25 13:10:15 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
41
42         * reload.c (push_reload): When merging reloads, make sure
43         that reload_in_reg and reload_in are from the same reload in
44         all cases.
45
46 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
47
48         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
49         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
50
51 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@mhpcc.edu>
52
53         * loop.c (loop_has_tablejump): New variable.
54         (prescan_loop): Scan for it.
55         (insert_bct): Replace explicit scan with use of it.
56         * regclass.c (regclass): Restore loop variable j.
57         (record_reg_classes): Deterine op_types modifiers and initialize
58         classes[i] before matching constraints.  Handle matching
59         constraints 5-9.
60         
61 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
62
63         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
64         subreg support.
65
66 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
67
68         * mips.h (EXTRA_SPECS): Add missing initializers.
69
70 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
71
72         * sparc.h (EXTRA_SPECS): Add missing initializers.
73         (sparc_defer_case_vector): Provide a prototype.
74
75         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
76         comparing it to the result of a pointer subtraction.
77
78 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
79
80         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
81         the argument to (unsigned char).
82
83         * alpha.h (EXTRA_SPECS): Add missing initializers.
84         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
85         format specifier.
86
87 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
88
89         * flow.c (life_analysis_1): Enable "rescan" code after reload.
90         (propagate_block): Delete dead code after reload.
91
92         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
93         back Oct 15, 1998 change.  
94         * haifa-sched.c (update_flow_info): Likewise.
95         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
96
97         * mn10200.md (truncated shift): Accept constant inputs too.
98
99 Fri Oct 23 04:06:57 1998  Richard Earnshaw (rearnsha@arm.com)
100
101         * machmode.h (mode_mask_array): No longer const.
102         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
103
104 Fri Oct 23 11:19:06 1998  Martin v. Löwis <loewis@informatik.hu-berlin.de>
105
106         * frame.c: Somewhat explain `FDE'.
107         Suggested by Brendan Kehoe
108
109 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
110
111         * expr.c (pending_chain): Move up.
112         (save_expr_status): Do save pending_chain.
113         (restore_expr_status): And restore it.
114         * function.h (struct function): Add pending_chain.
115
116 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
117
118         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
119         did not match the code.
120
121 Fri Oct 23 00:07:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
122
123         * regclass.c (regclass): Break out some code into new function
124         scan_one_insn, and into regclass_init.
125         (init_cost): New static variable, moved out of regclass.
126         (regclass_init): Initialize it here, not in .
127         (scan_one_insn): New static function, broken out of regclass.
128         * recog.c (apply_change_group): Break out some code into new
129         function insn_invalid_p.
130         (insn_invalid_p): New static fn, broken out of apply_change_group.
131
132 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
133
134         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
135         reg_reloaded_contents matches incremented pseudo.
136
137         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
138
139 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
140
141         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
142         addressing modes with side effects.  These are currently
143         placeholders for the C4x target.
144
145 Thu Oct 22 16:46:35 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
146
147         * loop.c (express_from): Make sure that when generating a PLUS of
148         a PLUS, any constant expression appears on the outermost PLUS.
149
150 Thu Oct 22 15:46:23 1998  Per Bothner (bothner@cygnus.com)
151
152         * Makefile.in (distdir-cvs, distdir-start):  Clean up so it
153         works if "$(srcdir)" != ".".
154
155 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
156
157         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
158         existing SUBREG if we can, otherwise abort.
159
160 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
161
162         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
163         `restrict' is applied to a non-pointer variable.
164
165 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
166
167         * invoke.texi: Document -flang-isoc9x.
168
169         * Makefile.in (OBJS): Add splay-tree.o.
170         (c-common.o): Depend on rtl.h.
171         (splay-tree.o): List dependencies and provide build rule.
172         
173         * rtl.h (record_alias_subset): New function.
174         * alias.c: Include splay-tree.h.
175         (alias_set_entry): New type.
176         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
177         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
178         (mems_in_disjoin_alias_sets_p): New function.
179         (alias_set_compare): Likewise.
180         (insert_subset_children): Likewise.
181         (get_alias_set_entry): Likewise.
182
183         * tree.h (TYPE_RESTRICT): New macro.
184         (TYPE_UNQUALIFIED): New manifest constant.
185         (TYPE_QUAL_CONST): Likewise
186         (TYPE_QUAL_VOLATILE): Likewise.
187         (TYPE_QUAL_RESTRICT): Likewise.
188         (tree_type): Add restrict_flag.  Reduce count of free bits.
189         (DECL_POINTER_ALIAS_SET): New macro.
190         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
191         (tree_decl): Add pointer_alias_set.
192         (build_qualified_type): New function.
193         (build_type_variant): Define in terms of build_qualified_type.
194         * tree.c (set_type_quals): New function.
195         (make_node): Initializae DECL_POINTER_ALIAS_SET.
196         (build_type_attribute_variant): Use build_qualified_type and
197         set_type_quals.
198         (build_type_variant): Rename, and modify, to become...
199         (build_qualified_type): New function.
200         (build_complex_type): Use set_type_quals.
201
202         * c-tree.h (C_TYPE_OBJECT_P): New macro.
203         (C_TYPE_FUNCTION_P): Likewise.
204         (C_TYPE_INCOMPLETE_P): Likewise.
205         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
206         (c_apply_type_quals_to_decl): New function.
207         (c_build_qualified_type): New function.
208         (c_build_type_variant): Define in terms of c_build_qualified_type.
209         (flag_isoc9x): Declare.
210         * c-typeck.c (qualify_type): Use c_build_qualified_type.
211         (common_type): Change to use TYPE_QUALS.
212         (comptypes): Likewise.
213         (convert_for_assignment): Likewise.
214         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
215         * c-decl.c (flag_isoc9x): Define.
216         (c_decode_option): Handle -flang-isoc9x.
217         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
218         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
219         * c-lex.c (init_lex): Deal with restrict.
220         (init_lex): Don't treat restrict as a reserved word in
221         -traditional mode, or without -flang-isoc9x.
222         * c-lex.h (rid): Add RID_RESTRICT.
223         * c-parse.gperf (restrict, __restrict, __restrict__): Make
224         equivalent to RID_RESTRICT.
225         * c-parse.in (TYPE_QUAL): Update comment.
226         * c-common.c: Include rtl.h.
227         (c_find_base_decl): New function.
228         (c_build_type_variant): Rename, and modify, to become ...
229         (c_build_qualified_type): New function.
230         (c_apply_type_quals_to_decl): Likewise.
231         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
232         a particular alias set for the reference.
233         * toplev.c (documented_lang_options): Add -flang-isoc9x.
234
235 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
236
237         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
238         command line switches.
239
240 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
241
242         * reload.c (loc_mentioned_in_p): Add missing braces to bind
243         else to correct if.
244
245 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
246
247         * gcc.c (option_map): Added --classpath and --CLASSPATH.
248
249 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
250
251         * regclass.c (fix_register): Add error message.
252         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
253           new error message.
254
255 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
256
257         * c-decl.c (warn_missing_noreturn): New global variable.
258         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
259         (finish_function): Implement missing noreturn warning.
260
261         * c-tree.h (warn_missing_noreturn): Declare extern.
262
263         * invoke.texi: Document new flags.
264
265         * toplev.c (documented_lang_options): Add description.
266
267 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
268
269         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
270         loop optimization stable for the C4x.
271         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
272         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
273         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT
274         loop optimization).
275         (c4x_address_conflict): Be more paranoid when packing a volatile
276         memref in a parallel load/store.
277
278 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
279
280         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
281         repeat_block_filler): Deleted.
282         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
283         Condition code not set if destination register from 'c' class.
284         (*subbqi3_carry_clobber): Fix typo.
285
286 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
287
288         * reorg.c (steal_delay_list_from_target) Check for insns that
289         modify the condition codes and effect the direction of the jump
290         in the sequence.
291
292 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
293
294         * function.c (purge_addressof_1): Replace call to
295         emit_insns_before() with emit_insn_before().
296
297 Mon Oct 19 19:34:03 1998  Mike Stump <mrs@wrs.com>
298
299         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
300
301 Mon Oct 19 13:26:24 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
302
303         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
304
305 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
306
307         * gcse.c (compute_hash_table): Correctly identify hard regs which are
308         clobbered across calls.
309
310         * loop.c (scan_loop): Be more selective about what invariants are
311         moved out of a loop.
312
313 Mon Oct 19 10:46:58 PDT 1998 Jeff Law  (law@cygnus.com)
314
315         * version.c: Bump for snapshot.
316
317 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
318
319         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
320         static eh_context structure.
321
322 Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
323
324         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
325         callers changed.
326         (try_combine): Don't update max_scratch.
327         * flow.c (max_scratch, num_scratch): Delete variables.
328         (life_analysis_1): Don't initialize max_scratch.
329         (propagate_block): Don't update max_scratch.
330         (mark_set_1): Don't increment num_scratch.
331         * regs.h (max_scratch): Delete declaration.
332
333 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
334
335         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
336         is nonzero.  This is temporary!
337
338         * sched.c (update_flow_info): Handle death notes made invalid by
339         instruction splitting.  Partially reverts Oct 15, 1998 patch.
340         * haifa-sched.c (update_flow_info): Likewise.
341
342 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
343
344         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
345         if it has a nonzero DECL_INITIAL.
346
347 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
348
349         * Makefile.in (flow.o): Depend on recog.h.
350
351         * cpplib.h (directive_table): Add missing initializiers.
352         (finclude): Change type of variable `bsize' to size_t.
353         
354         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
355
356         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
357
358         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
359         `int' when comparing against one.
360         (cpp_file_line_for_message): Mark parameter `pfile' with
361         ATTRIBUTE_UNUSED.
362         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
363
364         * flow.c: Include recog.h.
365         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
366
367         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
368         `f' with ATTRIBUTE_UNUSED.
369         (reposition_prologue_and_epilogue_notes): Likewise.
370
371         * genopinit.c (gen_insn): Cast argument of ctype functions to
372         `unsigned char'.
373
374         * haifa-sched.c: Include recog.h.
375         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
376         comparing against one.
377
378         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
379
380         * mips-tfile.c (parse_end): Cast the argument of ctype function to
381         `unsigned char'.
382         (parse_ent): Likewise.
383         (parse_input): Likewise.
384
385         * optabs.c (init_libfuncs): Likewise.
386
387         * protoize.c (find_rightmost_formals_list): Likewise.
388
389         * recog.h (const_double_operand): Fix typo in prototype.
390
391         * tlink.c (scan_linker_output): Cast the argument of ctype
392         function to `unsigned char'.
393
394         * toplev.c (check_lang_option): Cast the result of `strlen' to
395         `int' when comparing against one.
396
397 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
398
399         * gcse.c (dump_cuid_table): Correct typo.
400
401 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
402
403         * toplev.c (display_help): Prepend '-m' to target specific
404         options. 
405         (check_lang_option): Ignore text after end of first word of a
406         language specific option.
407
408 Sat Oct 17 02:26:03 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
409
410         * reload1.c (reg_used_by_pseudo): New static variable.
411         (choose_reload_regs): Initialize it.
412         Use it instead of testing spill_reg_order to determine whether a
413         pseudo is live in a hard register across the current insn.
414         Fix a typo in a reference to reload_reg_rtx.
415
416         * flow.c (propagate_block): Replace code that computes and uses
417         regs_sometimes_live with simpler code that just walks the set of
418         currently live registers.
419
420         * Makefile.in (insn-extract.o): Fix dependencies.
421         * genextract.c (main): Generate includes for insn-config.h and
422         recog.h.
423         Delete generation of declarations which are now in recog.h.
424         * genrecog.c (main): Delete generation of definitions which are
425         now in recog.c.
426         * local-alloc.c (block_alloc): Use extract_insn and the variables
427         it sets up instead of looking up values by insn_code.
428         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
429         recog_dup_num): Define here instead of generating the definition in
430         genrecog.c.
431         (recog_n_operands, recog_n_dups, recog_n_alternatives,
432         recog_operand_mode, recog_constraints, recog_operand_address_p):
433         New variables.
434         (extract_insn): New function.
435         * recog.h (extract_insn): Declare function.
436         (which_alternative, recog_n_operands, recog_n_dups,
437         recog_n_alternatives, recog_operand_mode, recog_constraints,
438         recog_operand_address_p): Declare variables.
439         * regclass.c (n_occurrences): New static function.
440         * reload.c (n_occurrences): Delete function.
441         (find_reloads): Use extract_insn.
442         * reload.h (n_occurrences): Delete declaration.
443
444 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
445
446         * reload1.c (reload_as_needed): Fix test for when to call
447         update_eliminable_offsets.
448
449 Fri Oct 16 20:40:50 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
450
451         Fix consistency problems with reg_equiv_{mem,address};
452         Improve reload inheritance;
453
454         * reload.c (reload_out_reg): New variable.
455         (loc_mentioned_in_p, remove_address_replacements): New functions.
456         (remove_replacements): Deleted.
457         (push_reload): Set reload_out_reg[i].
458         When merging, also set reload_{in,out}_reg[i], and remove
459         duplicate address reloads.
460         (combine_reloads): Copy reload_out_reg[i].
461         (find_reloads): Do make_memloc substitution also when
462         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
463         are both nonzero.
464         Include *recog_operand_loc in commutativity operand changes.
465         Generate optional output reloads.
466         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
467         processing operands.  Call make_memloc in reg_equiv_address code.
468         Set *recog_operand_loc only after processing operands, and only
469         if replace is true.  Return a value.
470         When changing address reload types for operands that didn't get
471         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
472         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
473         Don't emit USEs for pseudo SUBREGs when not replacing.
474         (find_reloads_address): Do make_memloc substitution also when
475         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
476         are both nonzero.
477         (find_reloads_toplev): Likewise.
478         Call make_memloc in reg_equiv_address code.
479         (debug_reload_to_stream): Add code to output reload_out_reg.
480         (make_memloc): Delete local variable i, ifdefed out code, and
481         references to memlocs and n_memlocs.
482         (memlocs, n_memlocs): Delete.
483         (push_secondary_reload): Clear reload_out_reg.
484         (find_reloads_address_1): Provide memrefloc argument to all calls
485         to find_reloads_address.
486         In AUTO_INC code, handle non-directly addressable equivalences properly.
487         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
488         (find_reloads): Add return type.
489         (remove_address_replacements, deallocate_reload_reg): Declare.
490         * reload1.c (num_not_at_initial_offset): No longer static.
491         (delete_address_reloads, delete_address_reloads_1): Likewise.
492         (deallocate_reload_reg): New function.
493         (spill_reg_stored_to): New array.
494         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
495         (eliminate_regs_in_insn): Move assignments of previous_offset and
496         max_offset fields, and recalculation of num_not_at_initial_offset
497         into new static function:
498         (update_eliminable_offsets) .
499         (reload_as_needed): Call update_eliminable_offsetss after calling
500         find_reloads.
501         Call forget_old_reloads_1 with contents of reloaded auto_inc
502         expressions if the actual addressing can't be changed to match the
503         auto_inc.
504         (choose_reload_regs): For inheritance, replace
505         reload_reg_free_before_p test with reload_reg_used_at_all test, and
506         remove stand-alone reload_reg_used_at_all test.
507         Use reload_out_reg to determine which reload regs have output reloads.
508         Treat reload_override_in more similar to inherited reloads.
509         Handle (subreg (reg... for inheritance.
510         For flag_expensive_optimizations, add an extra pass to remove
511         unnecessary reloads from known working inheritance.
512         Delete obsolete code for pseudos replaced with MEMs.
513         Handle inheritance from auto_inc expressions.
514         (emit_reload_insns): If reload_in is a MEM, set OLD to 
515         reload_in_reg[j].
516         Don't reload directly from oldequiv; if it's a pseudo with a
517         stack slot, use reload_in[j].
518         Check that reload_in_reg[j] is a MEM before replacing reload_in
519         from reg_reloaded_contents.
520         Include non-spill registers in reload inheritance processing.
521         Also try to use reload_out_reg to set spill_reg_store /
522         reg_last_reload_reg.
523         In code to set new_spill_reg_store, use single_set to find out if
524         there is a single set.
525         Add code that allows to delete optional output reloads.
526         Add code to allow deletion of output reloads that use no spill reg.
527         At the end, set reload_override_in to oldequiv.
528         Also call delete_output_reload if reload_out_reg is equal to old
529         in oldequiv code.
530         Add code to call delete_output_reload for stores with no matching load.
531         Set / use spill_reg_stored_to.
532         Handle case where secondary output reload uses a temporary, but
533         actual store isn't found.
534         When looking for a store of a value not loaded in order to call
535         delete_output_reload, count_occurences should return 0 for no
536         loads; but discount inherited input reloadill_reg_stored_to.
537         Do checks for extra uses of REG.  Changed all
538         callers.
539         Use delete_address_reloads.
540         (reload): Take return value of find_reloads into account.
541         If a no-op set needs more than one reload, delete it.
542         (reload_reg_free_before_p): RELOAD_FOR_INPUT
543         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
544         for the same operand.
545         (clear_reload_reg_in_use): Check for other reloads that keep a
546         register in use.
547         (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
548         RELOAD_FOR_OPADDR_ADDR.
549         Take into account when an address address reload is only needed
550         for the address reload we are considering.
551         (count_occurrences): Use rtx_equal_p for MEMs.
552         (inc_for_reload): Return instruction that stores into RELOADREG.
553         New argument two, IN, and rtx.  Changed all callers.
554         (calculate_needs_all_insns, reload_as_needed):
555         Don't clear after_call for a CLOBBER.
556         Keep track of how many hard registers need to be copied from
557         after_call, and don't clear after_call before we have seen
558         that much copies, or we see a different instruction.
559
560 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
561
562         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
563         after reload has completed.
564
565 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
566
567         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
568         a macro name and the next token with a single blank if that whitespace
569         is in a macro buffer and the next token is not '('.
570
571 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
572
573         * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
574         (rescan): Ditto.
575         (skip_if_group): Ditto.
576         (skip_to_end_of_comment): Ditto.
577         (macarg1): Ditto.
578         (discard_comments): Ditto.
579         (change_newlines): Ditto.
580
581 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
582
583         * c-lex.c (yylex): Fix unaligned access of wchar_t.
584
585 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
586
587         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
588         (TARGET_OPTIONS): Add --help documentation.
589
590 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
591
592         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
593
594 Fri Oct 16 07:08:46 1998  Bruce Korb <korb@datadesign.com>
595         
596         * fixinc/* Moved in from ../contrib directory in preparation
597         for integrating it into the normal build process.  In particular,
598         fixinc/Makefile.in must be config-ed into the build directory
599         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
600         ./configure.in will be "in the mail" momentarily.
601
602 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
603
604         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
605         accidently walk into the free list.  Comment how that can happen.
606         (invalidate): Fix indentation.
607
608 Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
609                          Jeffrey A Law  (law@cygnus.com)
610
611         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
612         reload.  Never perform rescans of the insn chain after reload.
613         (propagate_block): Do not delete insn or create new autoinc addressing
614         modes after reload.
615
616         * jump.c (jump_optimize): Unconditionally use the code that was
617         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
618         * reload1.c (reload): When reloading is finished, delete all
619         REG_DEAD and REG_UNUSED notes.
620         (emit_reload_insns): Delete all code that was conditional on
621         PRESERVE_DEATH_INFO_REGNO_P.
622         (no_longer_dead_regs): Delete variable.
623         (reload_cse_delete_death_notes): Delete function.
624         (reload_cse_no_longer_dead): Delete function.
625         (reload_cse_regs_1): Delete all code to handle deletion of death
626         notes.
627         (reload_cse_noop_set_p): Likewise.
628         (reload_cse_simplify_set): Likewise.
629         (reload_cse_simplify_operands): Likewise.
630         (reload_cse_move2add): Likewise.
631         * reorg.c (used_spill_regs): Delete declaration.
632         (max_label_num_after_reload): Delete declaration.
633         (find_dead_or_set_registers): Don't assume that spill regs are
634         dead at a CODE_LABEL.
635         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
636         even after reload.
637         * sched.c (sched_analyze_insn): Likewise.
638         (update_flow_info): Likewise.
639         * haifa-sched.c (sched_analyze_insn): Likewise.
640         (update_flow_info): Likewise.
641         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
642         * toplev.c (max_label_num_after_reload): Delete variable.
643         (rest_of_compilation): Don't set max_label_num_after_reload.
644         Call life_analysis after reload_cse_regs if optimizing.
645         * config/gmicro/gmicro.h: Delete comment referring to
646         PRESERVE_DEATH_INFO_REGNO_P.
647         * config/i386/i386.h: Likewise.
648         * config/m88k/m88k.h: Likewise.
649         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
650         * config/sh/sh.h: Likewise.
651
652 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@mhpcc.edu>
653
654         * loop.c (strength_reduce): Restore marking bct_p as
655         ATTRIBUTE_UNUSED.
656         * rs6000.c (optimization_options): Change #ifdef HAIFA to
657         HAVE_decrement_and_branch_on_count.
658         (small_data_operand): Remove TARGET_ELF condition for marking
659         parameters ATTRIBUTE_UNUSED.
660         
661 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
662
663         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT):  Define.
664         (SELECT_SECTION): Resync with svr4.h.
665
666 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@mhpcc.edu>
667
668         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
669         ATTRIBUTE_UNUSED.
670
671 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
672
673         * c-pragma.c (handle_pragma_token): Test for null tree before
674         dereferencing TREE_CODE.
675
676 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
677
678         * config/c4x/c4x.c: Convert to use GEN_INT.
679         (c4x_parallel_process): Rework to handle new repeat loop structure.
680
681         * config/c4x/c4x.md: Convert to use GEN_INT. 
682         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
683         (decrement_and_branch_on_count): Likewise.
684
685         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
686         loop.c has the desired functionality.
687         (rc_reg_operand): New prototype.
688
689         * config/c4x/t-c4x: Can now build all front ends.
690
691 Wed Oct 14 23:27:08 1998  Didier FORT (didier.fort@fedex.com)
692
693         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
694
695 Wed Oct 14 22:13:28 1998  Joel Sherrill (joel@OARcorp.com)
696
697         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
698         * config/t-rtems: Do not install assert.h -- use newlib's.
699
700 Wed Oct 14 21:57:08 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
701
702         * combine.c (combine_instructions): When finished, call init_recog.
703         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
704
705 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
706
707         * toplev.c:  If flag_syntax_only, don't open or write assembler file.
708
709 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
710
711         * cppalloc.c (memory_full): Mark function prototype with
712         ATTRIBUTE_NORETURN.
713
714         * demangle.h (collect_exit): Likewise.
715
716         * fix-header.c (v_fatal, fatal): Likewise.
717
718         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
719         Likewise.
720
721         * gcov.c (print_usage): Likewise.
722
723         * genattr.c (fatal, fancy_abort): Likewise.
724
725         * genattrtab.c (fatal, fancy_abort): Likewise.
726
727         * gencodes.c (fatal, fancy_abort): Likewise.
728
729         * genconfig.c (fatal, fancy_abort): Likewise.
730
731         * genemit.c (fatal, fancy_abort): Likewise.
732
733         * genextract.c (fatal, fancy_abort): Likewise.
734
735         * genflags.c (fatal, fancy_abort): Likewise.
736
737         * genopinit.c (fatal, fancy_abort): Likewise.
738
739         * genoutput.c (fatal, fancy_abort): Likewise.
740
741         * genpeep.c (fatal, fancy_abort): Likewise.
742
743         * genrecog.c (fatal, fancy_abort): Likewise.
744
745         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
746         __sjpopnthrow, __throw): Likewise.
747
748         * objc/objc-act.c (objc_fatal): Likewise.
749
750         * protoize.c (usage, aux_info_corrupted,
751         declare_source_confusing): Likewise.
752
753         * rtl.c (dump_and_abort): Likewise.
754
755         * rtl.h (sets_cc0_p): Likewise.
756
757         * toplev.c (float_signal, pipe_closed): Likewise.
758         
759 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
760
761         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
762         when generating the decision tree for the general case.
763
764         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
765         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
766
767 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
768
769         * Makefile.in (sched.o): Depend on recog.h.
770
771         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
772         (unsigned) when comparing against one.
773         (find_base_value): Likewise.
774         (record_base_value): Cast variable `regno' to (unsigned) when
775         comparing against one.  Cast the result of REGNO() macro to
776         (unsigned) when comparing against one.
777         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
778         unsigned.
779         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
780         variable where an unsigned index is needed.
781
782         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
783         before comparing against one.
784
785         * collect2.c: Add prototypes for functions `error', `fatal' and
786         `fatal_perror'.  Make these functions take variable arguments
787         instead of faking it with a fixed number of args.
788         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
789         char).
790
791         * combine.c (can_combine_p): Mark parameter `pred' with
792         ATTRIBUTE_UNUSED.
793         (find_split_point): Cast variable `src' to (unsigned
794         HOST_WIDE_INT) when comparing against one.
795         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
796         (simplify_logical): Likewise.
797         (force_to_mode): Cast result of INTVAL() macro to (unsigned
798         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
799         HOST_WIDE_INT) in shift.
800         (simplify_and_const_int): Cast result of INTVAL() macro to
801         `unsigned HOST_WIDE_INT' when comparing against one.
802         (merge_outer_ops): Cast variable const0 to `unsigned
803         HOST_WIDE_INT' when comparing against the result of
804         GET_MODE_MASK() macro.
805         (simplify_comparison): Likewise for variable `c0'.  Cast variable
806         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
807         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
808         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
809         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
810         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
811         comparing against one.
812         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
813
814         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
815         macro to `unsigned HOST_WIDE_INT' when comparing against one.
816         (output_block_move): Cast `sizeof' expression to (int) when
817         comparing against one.
818         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
819         against one.
820         (save_restore_insns): Cast `base_offset' to `long' to match format
821         specifier in fprintf.
822
823         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
824         to `enum machine_mode'.
825
826         * flow.c (life_analysis_1): Remove unused variable `insn'.
827
828         * gcc.c (translate_options): Move variables `j' and `k' into the
829         scope in which they are used.  Change their types to `size_t'.
830         (set_spec): Cast the argument of ctype macro to `unsigned char'.
831         (read_specs): Likewise.
832         (process_command): Cast `sizeof' to (int) when comparing against one.
833         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
834         (handle_braces): Cast both sides of `==' expression to `long' to
835         ensure sign matching.
836         (main): Cast variable `i' to `int' when comparing against one.
837
838         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
839         int to size_t.  Cast variable `i' to size_t when comparing against
840         one.
841
842         * genattrtab.c (convert_set_attr_alternative): Remove unused
843         parameter `insn_code'.  All callers changed.
844         (convert_set_attr): Likewise.
845
846         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
847         size_t when comparing against one.  Likewise for variable `len'.
848
849         * global.c (global_alloc): Cast variable `max_regno' to size_t
850         when comparing against one.  Likewise for variable `max_allocno'.
851
852         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
853
854         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
855         `set' with ATTRIBUTE_UNUSED.
856         (find_free_reg): Cast `sizeof' expression to (int) when comparing
857         against one.
858
859         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
860         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
861         (get_condition): Cast variable `const_val' to `unsigned
862         HOST_WIDE_INT' when comparing against one.  Cast unsigned
863         expression to HOST_WIDE_INT when comparing against one.
864         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
865         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
866         `unsigned' when comparing against one.
867
868         * protoize.c (is_id_char): Change type of parameter `ch' to
869         unsigned char.
870         (munge_compile_params): Cast argument of ctype macro to (const
871         unsigned char).
872         (process_aux_info_file): Cast variable `aux_info_size' to int when
873         comparing against one.
874         (forward_to_next_token_char): Cast argument of ctype macro to
875         `const unsigned char'.
876         (edit_formals_lists): Likewise.
877         (find_rightmost_formals_list): Likewise.
878         (add_local_decl): Likewise.
879         (add_global_decls): Likewise.
880         (edit_fn_definition): Likewise.
881         (do_cleaning): Likewise.
882         (scan_for_missed_items): Likewise.
883         (edit_file): Cast variable `orig_size' to (int) when comparing
884         against one.
885         (main): Cast argument of ctype macro to `const unsigned char'.
886
887         * recog.c (const_int_operand): Mark parameter `mode' with
888         ATTRIBUTE_UNUSED.
889
890         * regclass.c (record_reg_classes): Change type of variable `c' to
891         `unsigned char'.  Cast `char' array index to `unsigned char'.
892
893         * reload.c (push_secondary_reload): Cast argument to
894         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
895
896         * reload1.c (calculate_needs): Cast `char' array index to
897         `unsigned char'.
898         (set_label_offsets): Change type of variable `i' to unsigned int.
899         Cast result of XVECLEN() macro to unsigned when comparing against
900         one.
901         (mark_not_eliminable): Change type of variable `i' to unsigned.
902         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
903         when comparing against one.
904         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
905         comparing against one.
906         (choose_reload_regs): Hide unused label `fail'.
907         (reload_cse_simplify_operands): Cast `char' array index to
908         `unsigned char'.
909         (reload_combine_note_store): Mark parameter `set' with
910         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
911         against one.
912         (reload_cse_move2add): Remove unused variable `src2'.
913
914         * sched.c: Include recog.h.
915         (sched_note_set): Remove unused parameter `b'.  All callers
916         changed.
917         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
918         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
919         when comparing against one.
920
921         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
922         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
923         comparing against one.
924
925         * unroll.c (precondition_loop_p): Remove unused parameter
926         `loop_end'.  All callers changed.
927
928 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
929
930         * reload1.c (maybe_fix_stack_asms): New static function.
931         (reload): Call it.
932
933         * reload.h (compute_use_by_pseudos): Declare.
934
935         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
936         (something_needs_reloads): Delete variable.
937         (finish_spills): New function.
938         (compute_use_by_pseudos): New function.
939
940         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
941         Use the reload_insn_chain instead of walking the rtl directly.
942
943         (reload): Allocate and free spilled_pseudos.
944         Ensure that all calls of spill_hard_reg are followed by a call to
945         finish_spills.
946         Use the insns_need_reload list instead of something_needs_reloads
947         to find out if reload_as_needed must be called.
948         Clear unused_insn_chains at the end.
949
950         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
951         changed.
952         Delete code to keep track of current basic block.
953         Walk reload_insn_chain instead of the rtl structure.  Build the
954         insns_need_reload chain.
955         Remember which insns need reloading/elimination by setting the
956         appropriate fields in struct insn_chain, not by putting modes on the
957         insn.
958
959         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
960         arg INSN.  All callers changed.
961         Delete declaration of struct needs.
962         Don't set something_needs_reloads.
963         Record insn needs in the CHAIN argument.
964
965         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
966
967         (reload_as_needed): Lose FIRST arg.  All callers changed.
968         Walk the reload_insn_chain instead of the rtx structure.
969         Delete code to keep track of current basic block.
970         Rename one of the NEXT variables to OLD_NEXT.
971
972         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
973         callers changed.
974         (choose_reload_regs): Likewise.
975
976         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
977         callers changed.
978         
979         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
980         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
981         (hard_regs_live, hard_regs_need_restore): Delete variables.
982         (n_regs_saved): Now static.
983         (referenced_regs, this_insn_sets): New variables.
984
985         (setup_save_areas): Restructure the code a bit.
986
987         (restore_referenced_regs): Delete function.
988         (mark_referenced_regs): New function, similar to the old
989         restore_referenced_regs, but mark registers in referenced_regs.
990
991         (clear_reg_live): Delete function.
992         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
993         Only mark registers in this_insn_sets.
994
995         (save_call_clobbered_regs): Rework this function to walk the
996         reload_insn_chain instead of using the list of instructions directly.
997         Delete code to keep track of register lives, compute live regs on the
998         fly from information in the chain.
999         Instead of calling restore_referenced_regs, use mark_referenced_regs,
1000         then walk the set it computes and call insert_restore as appropriate.
1001
1002         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
1003         callers changed.
1004         Restructure the code a bit.  Test hard_regs_saved instead of
1005         hard_regs_need_restore.
1006         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
1007         args.  All callers changed.
1008         Restructure the code a bit.  Use TO_SAVE to determine which regs to
1009         save instead of more complicated test.
1010         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
1011         callers changed.
1012         Create a new insn_chain structure for the new insn and place it
1013         into the chain.
1014
1015         * rtl.texi: Update documentation to reflect that reload no longer
1016         puts modes on the insns.
1017
1018 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
1019
1020         * function.c (purge_addressof_1): Force the first argument of a
1021         CALL insn to memory.
1022
1023 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
1024
1025         * rtl.h: Delete duplicate prototypes.  Add some missing
1026         prototypes.
1027         * rtlanal.c: (for_each_rtx): Formatting tweak.
1028
1029 1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1030
1031         * real.c (emdnorm and etoasc): Disable round to even for c4x target
1032         to be compatible with TI compiler.
1033
1034         * Makefile.in (USER_H): Add va-c4x.h to definition.
1035
1036 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
1037
1038         * function.c (purge_addressof_1): Fix typo in inequality: do
1039         bitfield optimization for equal mode sizes.
1040         * expmed.c (store_bit_field): Don't take subregs of subregs in
1041         the movstrict case.  Tidy a potential problem in the multi-word case.
1042         (extract_bit_field): Likewise.
1043
1044 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1045
1046         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
1047         function.
1048         Compute max_uid_for_flow by calling get_max_uid after the scan.
1049         (find_basic_blocks_1): Don't emit NOPs here.
1050
1051 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
1052
1053         * alias.c (base_alias_check): Accept new args for the modes of the
1054         two references.  Use them to determine if an AND can overlap.  Update
1055         all callers.
1056         (memrefs_conflict_p): Assume sizes are aligned, and uses them
1057         to determine if an AND can overlap.
1058
1059 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
1060
1061         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
1062         check.  Add comment to document problems with TARGET_SUN_FPA version
1063         of this macro.
1064         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
1065
1066 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1067
1068         * Makefile.in (gencheck.o): Depend on gansidecl.h.
1069
1070         * c-common.c (print_char_table): Add missing initializers.
1071         (scan_char_table): Likewise.
1072         (time_char_table): Likewise.
1073
1074         * c-decl.c (c_decode_option): Mark parameter `argc' with
1075         ATTRIBUTE_UNUSED.
1076         (declare_parm_level): Mark parameter `definition_flag' with
1077         ATTRIBUTE_UNUSED.
1078
1079         * c-lex.c (readescape): Use `(unsigned)1' in shift.
1080         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
1081         against one.
1082
1083         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
1084         callers changed.
1085         (emit_call_1): Mark parameters `fndecl' and `funtype' with
1086         ATTRIBUTE_UNUSED.
1087         (expand_call): Cast result of MIN() to (unsigned int) when
1088         comparing against an unsigned value.
1089
1090         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
1091         callers changed.
1092         (make_definition): Remove unused parameter `op'.  All callers
1093         changed.
1094         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
1095         comparing against the result of pointer arithmetic.
1096
1097         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
1098         when comparing against one.
1099
1100         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
1101         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
1102         one.
1103         (output_die): Move variable `i' into the scope in which it is
1104         used.  Change its type to `unsigned'.
1105         (output_die): Cast the result of `strlen' to (int) when passing it
1106         to ASM_OUTPUT_ASCII().
1107         (output_pubnames): Likewise.
1108         (output_line_info): Likewise.
1109
1110         * emit-rtl.c (global_rtl): Add missing initializers.
1111
1112         * explow.c (promote_mode): Mark parameter `for_call' with
1113         ATTRIBUTE_UNUSED.
1114
1115         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
1116         `unsigned HOST_WIDE_INT' when comparing against one.
1117         (synth_mult): Change type of variable `cost' to int.
1118         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
1119
1120         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
1121         when comparing against one.
1122         (get_inner_reference): Change variable `alignment' to unsigned.
1123         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
1124         int) when comparing against one.
1125         (expand_builtin_setjmp): Change type of variable `i' to size_t.
1126
1127         * fold-const.c (div_and_round_double): Cast BASE to
1128         (HOST_WIDE_INT) when comparing against one.
1129
1130         * gencheck.c: Include gansidecl.h.
1131         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
1132
1133         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
1134         `tcode' with ATTRIBUTE_UNUSED.
1135
1136         * real.c (edivm): Cast constant value to (unsigned long) in
1137         expression compared against an unsigned value.
1138
1139         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
1140         comparing against one.
1141         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
1142         when comparing against one.
1143
1144         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
1145         (unsigned int) when comparing against one.  Likewise for
1146         GET_MODE_BITSIZE.
1147         (smallest_mode_for_size): Likewise.
1148         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
1149         (restore_storage_status): Likewise.
1150         
1151         * toplev.c (debug_args): Add missing initializer.
1152         (f_options): Spelling correction.  Add missing initializers.
1153         (documented_lang_options): Likewise.
1154         (debug_end_source_file): Mark parameter `lineno' with
1155         ATTRIBUTE_UNUSED.
1156
1157         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
1158         `decl' and `type' with ATTRIBUTE_UNUSED.
1159
1160         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
1161         when comparing against one.
1162         (assemble_variable): Mark parameter `top_level' with
1163         ATTRIBUTE_UNUSED.
1164         (assemble_external_libcall): Mark parameter `fun' with
1165         ATTRIBUTE_UNUSED.
1166         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
1167         ATTRIBUTE_UNUSED.
1168
1169 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
1170
1171         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
1172         Replace use of r5 with use of r19.
1173
1174         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
1175
1176         * config/v850/v850.c (compute_register_save_size): Allow for the
1177         fact that helper functions save all registers, not just those used
1178         by the function.
1179         
1180         Replace constant 31 with macro LINK_POINTER_REGNUM.
1181
1182         * config/v850/v850.md: Use 'indirect_operand' rather than
1183         'memory_operand' for bit test/set/clear patterns.
1184
1185 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
1186
1187         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
1188         * varasm.c (assemble_start_function et al): Don't call
1189         ASM_GLOBALIZE_LABEL for weak symbols.
1190
1191 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
1192
1193         * cse.c (equiv_constant): Check for NULL return from
1194         gen_lowpart_if_possible().
1195
1196 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
1197
1198         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
1199
1200         * collect2.c (main): Pass -EL/-EB through to the compiler.
1201
1202 1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1203         
1204         * expr.c (push_block): Handle targets where the stack grows
1205         to higher addresses, but args grow to lower addresses and
1206         ACCUMULATE_OUTGOING_ARGS is not defined.
1207
1208 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
1209
1210         * config/v850/v850.c (print_operand):  Extend meaning
1211         of 'c' operands to support .vtinherit.
1212
1213 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1214
1215         * config/c4x/c4x.c:  Convert to gen_rtx_FOO.
1216         Added ATTRIBUTE_UNUSED to unused function arguments.
1217         (rc_reg_operand): New predicate.
1218         (c4x_rptb_insert): New function.
1219         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
1220         (c4x_optimization_options): New function.
1221
1222         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
1223          (decrement_and_branch_on_count): New pattern.
1224          (rptb_top): Modified pattern to work with BCT optimization.
1225         
1226         * config/c4x/c4x.h (RC_REG): New register class.
1227         (rc_reg_operand): Define prototype.
1228         (IS_RC_REG): New macro.
1229         (IS_RC_OR_PSEUDO_REG): New macro.
1230         (IS_RC_OR_PSEUDO_REGNO): New macro.
1231         (OPTIMIZATION_OPTIONS): Define.
1232
1233 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
1234
1235         * collect2.c (extract_init_priority): No priority is 65535.
1236
1237 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
1238         
1239         * Makefile.in (build_tooldir): new variable, same as old
1240         $(tooldir), but without depending on $(libdir)/$(unlibsubdir)
1241         (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/
1242         (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto
1243         
1244         * configure.in (gxx_include_dir): set default based on unlibsubdir
1245         * Makefile.in (tooldir): ditto
1246         (cccp.o, cpplib.o): use unlibsubdir implicitly through
1247         gxx_include_dir, includedir and tooldir
1248         (protoize.o, unprotoize.o): ditto
1249         
1250 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
1251
1252         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
1253
1254         * config/arm/thumb.c (thumb_override_options): Add warning about
1255         PIC code not being supported just yet.
1256
1257 Sun Oct 11 16:49:15 EDT 1998  John Wehle  (john@feith.com)
1258
1259         * flow.c: Update comment.
1260         (notice_stack_pointer_modification): New static function.
1261         (record_volatile_insns): Use it.
1262         (mark_regs_live_at_end): Mark the stack pointer as alive
1263         at the end of the function if current_function_sp_is_unchanging
1264         is set.
1265         (life_analysis_1): Set current_function_sp_is_unchanging.
1266         * function.c: Define it.
1267         (init_function_start): Initialize it.
1268         * output.h: Declare it.
1269         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
1270         the stack pointer as alive at the end of the function if
1271         current_function_sp_is_unchanging is set.
1272         * i386.c (ix86_epilogue): Optimize the restoring
1273         of the stack pointer.
1274
1275 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
1276
1277         * version.c: Bump for snapshot.
1278
1279 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
1280
1281         * c-pragma.c (handle_pragma_token): If passed a token instead
1282         of a tree, use that as the pack value.
1283
1284 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
1285
1286         * flow.c (find_basic_blocks_1): Fix prototype.
1287
1288 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
1289
1290         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
1291         (struct tree_decl): New fields no_check_memory_usage.
1292         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
1293         (init_attributes): Register it as a new attribute.
1294         (decl_attributes): Set flags on functions given that attribute.
1295         * c-decl.c (duplicate_decls): Merge new attribute.
1296         * expr.h (current_function_check_memory_usage): Declare new var.
1297         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
1298         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
1299         current_function_check_memory_usage.
1300         * function.h: Add field to struct function.
1301         * function.c (current_function_check_memory_usage): Define it.
1302         (push_function_context_to, pop_function_context_from): Save and
1303         restore it.
1304         (expand_function_start): Set it, based on global flag and function
1305         attribute.
1306
1307         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
1308         check non-automatic variables, to permit detection of writes to
1309         read-only locations in embedded systems without memory management.
1310         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
1311         when emitting chkr_set_right_libfunc call, even if the argument is
1312         BLKmode or variable-sized; don't abort.
1313
1314         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
1315         symbols in Pmode, not VOIDmode.
1316
1317 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1318
1319         * cppexp.c: When forcing unsigned comparisons, cast both sides
1320         of the operation.
1321
1322         * cpphash.h: Move static declaration of hashtab[]...
1323         * cpphash.c: ...here.
1324
1325         * cpplib.c: Cast difference of two pointers to size_t before
1326         comparing it to size_t.  Cast signed to unsigned
1327         before comparing to size_t. (FIXME: struct argdata should use
1328         unsigned buffer sizes.)
1329         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
1330         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
1331         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
1332         size_t before comparison.
1333
1334 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
1335
1336         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
1337         (find_basic_blocks_1): Similarly.
1338         * output.h (find_basic_blocks): Fix prototype.
1339         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
1340         find_basic_blocks anymore.
1341
1342 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
1343
1344         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
1345         (sbitmap_free, sbitmap_vector_free): New macros.
1346         * output.h (rtl_dump_file): Declare.
1347
1348 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
1349
1350         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
1351
1352 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1353
1354         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
1355         (DFtype): Likewise.
1356         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
1357         (divide): Remove unused variable `tmp'.
1358         (si_to_float): Cast numeric constant to (SItype) before comparing
1359         it against one.
1360
1361 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
1362
1363         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
1364         * gcc.c (add_preprocessor_option): Correct typo when allocating
1365         memory, sizeof() argument had one too many `*'.
1366         (add_assembler_option): Likewise.
1367         (add_linker_option): Likewise.
1368         * gcov.c (output_data): Likewise.
1369         * local-alloc.c (memref_used_between_p): Likewise.
1370         (update_equiv_regs): Likewise.
1371         * loop.c (strength_reduce): Likewise.
1372         * reg-stack.c (record_asm_reg_life): Likewise.
1373         (subst_asm_stack_reg): Likewise.
1374         * reorg.c (dbr_schedule): Likewise.
1375
1376 Fri Oct  9 15:57:51 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1377
1378         * flow.c (life_analysis_1): Break out some functions.
1379         (find_basic_blocks_1): Likewise.  Also move some variables out and
1380         make them static.
1381         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
1382         new static var nonlocal_label_list with it.
1383         (active_eh_region, nested_eh_region, label_value_list,
1384         nonlocal_label_list): New static variables.
1385         (make_edges, delete_unreachable_blocks, delete_block): New static
1386         functions, broken out of find_basic_blocks_1.
1387         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
1388         noop_move_p): New static functions, broken out of life_analysis_1.
1389
1390 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
1391
1392         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
1393         Take extra care for op0 now possibly being a subreg.
1394         (extract_bit_field): Likewise.
1395         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
1396         the reg to memory if there is no equal sized integral mode.
1397         * stor-layout.c (int_mode_for_mode): New function.
1398         * machmode.h: Prototype it.
1399
1400 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
1401
1402         * global.c (build_insn_chain): Verify no real insns exist past the
1403         end of the last basic block, then exit the loop.
1404
1405 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1406
1407         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
1408
1409 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
1410
1411         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
1412
1413 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1414
1415         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
1416
1417 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
1418
1419         * flow.c (find_basic_blocks): Correctly determine when a call
1420         is within an exception region.
1421
1422 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
1423
1424         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
1425
1426         * cpplib.h: Protect from multiple inclusions.
1427         * cpplib.c: Fix minor formatting problems.
1428
1429         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
1430
1431         * jump.c (jump_optimize): Revert accidental patch.
1432
1433         * Makefile.in (cpplib.o): Use unlibsubdir.
1434
1435 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
1436
1437         * loop.c (get_condition): Allow combine when either compare is
1438         VOIDmode.
1439
1440 Thu Oct 8 11:31:01 PDT 1998 Jeff Law  (law@cygnus.com)
1441
1442         * version.c: Bump for snapshot.
1443
1444 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
1445
1446         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
1447         (init_lex): Initialize ridpointers[RID_BYREF].
1448         * c-lex.h (enum rid): Add RID_BYREF.
1449         * c-parse.gperf: Add RID_BYREF as a type qualifier.
1450         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
1451         (encode_type_qualifiers): Similarly
1452         * c-gperf.h: Rebuilt.
1453
1454 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
1455
1456         * c-common.c (type_for_mode): Only return TItype nodes when
1457         HOST_BITS_PER_WIDE_INT is >= 64 bits.
1458         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
1459         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
1460         (init_decl_processing): Only create TItype nodes when
1461         HOST_BITS_PER_WIDE_INT is >= 64 bits.
1462         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
1463         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
1464
1465 Thu Oct  8 05:05:34 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1466
1467         * stmt.c (n_occurrences): New static function.
1468         (expand_asm_operands): Verify that all constrains match in the
1469         number of alternatives.
1470         Verify that '+' or '=' are at the beginning of an output constraint.
1471         Don't allow '&' for input operands.
1472         Verify that '%' isn't written for the last operand.
1473         * reload.c (find_reloads): Abort if an asm is found with invalid
1474         constraints; all possible problems ought to be checked for earlier.
1475
1476 Thu Oct  8 04:26:20 1998  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1477
1478         * flags.h (flag_branch_on_count_reg): Always declare 
1479         * toplev.c (flag_branch_on_count_reg): Likewise.
1480         * toplev.c: Fix typos.
1481
1482         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
1483         (toc4x): Similarly.
1484
1485 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
1486
1487         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
1488         max_uids_for_flow.
1489         (find_basic_blocks_1): Add a nop to the end of a basic block when
1490         a trailing call insn does not have abnormal control flow.
1491         * gcse.c (pre_transpout): New variable.
1492         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
1493         (compute_pre_transpout): Calculate it.
1494         (compute_pre_ppinout): Use it to eliminate impossible placements
1495         due to abnormal control flow through calls.
1496         (compute_pre_data): Call compute_pre_transpout.
1497
1498 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1499
1500         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
1501
1502 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
1503
1504         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
1505         and matching define_insns): Tack on a `use' of the table label, so
1506         flow analysis will recognize a tablejump.
1507
1508 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
1509
1510         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
1511         always end basic blocks for abnormal edge reasons.
1512
1513 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
1514
1515         * config/i386/i386.h: Remove definition of
1516         HANDLE_PRAGMA_PACK_PUSH_POP.
1517         
1518         * config/i386/go32.h: Add definition of
1519         HANDLE_PRAGMA_PACK_PUSH_POP.
1520         
1521         * config/i386/win32.h: Add definition of
1522         HANDLE_PRAGMA_PACK_PUSH_POP.
1523         
1524         * config/i386/cygwin32.h: Add definition of
1525         HANDLE_PRAGMA_PACK_PUSH_POP.
1526
1527         * c-pragma.c (insert_pack_attributes): Do not insert
1528         attributes unless #pragma pack(push,<n>) is in effect.
1529
1530 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
1531
1532         * expr.c (emit_group_store): Handle a PARALLEL destination.
1533
1534 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
1535
1536         * gcse.c (pre_insert_insn): When a call ends a bb, insert
1537         the new insns before the argument regs are loaded.
1538
1539 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1540
1541         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
1542         (c-parse.gperf): Update comments describing invocation flags.
1543         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
1544
1545 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
1546
1547         * reload1.c (reload): Call free before clobbering the memory
1548         locations or constants pointers.
1549
1550 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1551
1552         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
1553         for efficiency by checking whether we need to modify the current
1554         stack permission at all.
1555         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
1556         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
1557         __enable_execute_stack libcall here too if
1558         TRANSFER_FROM_TRAMPOLINE is defined.
1559         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
1560         IN_LIBGCC2.
1561
1562 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
1563
1564         * Makefile.in (DRIVER_DEFINES): Remove last change.
1565         
1566 Wed Oct  7 01:08:43 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1567
1568         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
1569         insns we're going to copy.
1570         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
1571
1572         * loop.c (count_one_set): Add prototype.
1573
1574         * caller-save.c (restore_referenced_regs): Lose mode argument.
1575         (insert_save): Lose mode argument.
1576         (insert_restore): Lose mode argument.
1577         (insert_one_insn): Lose mode argument.
1578         (save_call_clobbered_regs): Lose mode argument.
1579         (setup_save_areas): Take no argument and return void.  All callers
1580         changed.
1581         Don't verify validity of memory addresses.
1582         * reload.h (setup_save_ares): Adjust prototype.
1583         (save_call_clobbered_regs): Likewise.
1584         * reload1.c (delete_caller_save_insns): New function.
1585         (caller_save_spill_class): Delete variable.
1586         (caller_save_group_size): Delete variable.
1587         (reload): Call setup_save_areas and save_call_clobbered_regs
1588         in the main loop, before calling calculate_needs_all_insns.
1589         Don't call save_call_clobbered_regs after the loop.
1590         Call delete_caller_save_insns at the end of an iteration if
1591         something changed.
1592         Delete code to manage caller_save_spill_class.
1593         Emit the final note before setting reload_first_uid.
1594         Simplify test that determines whether reload_as_needed gets run.
1595         (calculate_needs): Delete code to manage caller_save_spill_class.
1596
1597 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
1598
1599         * collect2.c (main): Initialize ld_file_name.
1600
1601 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
1602  
1603         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
1604         check for flag_function_sections.
1605
1606 Tue Oct  6 20:02:31 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1607
1608         * cse.c (insert_regs): Fix bug in Sep 24 change.
1609
1610 Tue Oct  6 17:00:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1611
1612         * flags.h (flag_dump_unnumbered): Declare.
1613         * toplev.c (flag_dump_unnumbered): Don't declare.
1614         * print-rtl.c (flags.h): Include.
1615         (print_rtl_single): Add return value.
1616         * rtl.h (print_rtl_single): Update declaration.
1617         * flow.c (flag_dump_unnumbered): Don't declare.
1618         (print_rtl_with_bb): Use return value of print_rtl_single.
1619
1620 Tue Oct  6 01:36:00 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1621
1622         * loop.c (count_one_set): New static function, broken out of
1623         count_loop_regs_set
1624         (count_loop_regs_set): Call it.
1625         * global.c (mark_reg_store): Handle clobbers here by not calling
1626         set_preference.
1627         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
1628         is in fact a clobber.
1629         * integrate.c (process_reg_param): New function, broken out of
1630         expand_inline_function.
1631         (expand_inline_function): Call it.
1632
1633
1634         * i386.md (addsidi3_1): Delete unused variable temp.
1635         (addsidi3_2): Likewise.
1636         (clstrstrsi): Delete unused variable addr1.
1637
1638         * rtl.h: Don't declare any functions also declared in recog.h.
1639
1640         * Makefile.in (stupid.o): Update dependencies.
1641         (global.o): Likewise.
1642
1643         * global.c: Include reload.h
1644         (reg_becomes_live): New function.
1645         (reg_dies): New function.
1646         (build_insn_chain): New function.
1647         (global_alloc): Call build_insn_chain before calling reload.
1648
1649         * reload.h (struct needs): New structure definition.
1650         (struct insn_chain): Likewise.
1651         (reload_insn_chain): Declare variable.
1652         (new_insn_chain): Declare function.
1653
1654
1655         * reload1.c (reload_startobj): New variable.
1656         (reload_insn_chain): New variable.
1657         (unused_insn_chains): New variable.
1658         (new_insn_chain): New function.
1659         (init_reload): Initialize reload_startobj, not reload_firstobj.
1660         (reload): Initialize reload_firstobj.
1661         Before returning, free everything on the reload_obstack.
1662
1663         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
1664         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
1665         current_chain): New variables.
1666         (reg_where_born): Delete variable.
1667         (REG_WHERE_BORN): New macro.
1668         (find_clobbered_regs): New function.
1669         (stupid_life_analysis): Don't allocate/free reg_where_born.
1670         Allocate and free reg_where_born_exact, reg_where_born_clobber,
1671         reg_where_dead_chain.
1672         Use REG_WHERE_BORN instead of reg_where_born.
1673         While processing the insns, build the reload_insn_chain with
1674         information about register lifetimes.
1675         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
1676         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
1677         changed.
1678         Compute and information about birth and death of pseudo registers in
1679         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
1680         Delete code to set elements of reg_where_born.  
1681
1682 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1683
1684         * tree.def (GOTO_EXPR): Modified documentation.
1685         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
1686         goto.
1687
1688 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1689
1690         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
1691         loop_final_value, loop_comparison_code): No longer static.
1692         (unroll_loop): Delete loop_start_value update.
1693         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
1694         loop_final_value, loop_comparison_code): Extern.
1695         (loop_start_value): Delete extern.
1696         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
1697         loop_comparison_value, loop_comparison_code): Delete.
1698         (loop_optimize): Remove initialization for deleted variables.
1699         (strength_reduce): Delete analyze_loop_iterations call.  Only call
1700         insert_bct if flag_branch_count_on_reg set.
1701         (analyze_loop_iterations): Delete.
1702         (insert_bct): Remove iteration count calculation.  Move checks for
1703         viable BCT optimization to here.  Obtain iteration count from
1704         loop_iterations and correct for unrolling.  Check for enough
1705         iteration to be beneficial.  Comment out runtime iteration count
1706         case.
1707         (insert_bct): Print iteration count in dump file.  Remove
1708         loop_var_mode and use word_mode directly.
1709
1710         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
1711         * rs6000.c (rs6000_override_options): Use it.
1712         (optimization_options): Enable use of flag_branch_on_count_reg.
1713         * rs6000.md (define_function_unit): Describe 604e.
1714
1715 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1716
1717         * loop.c (move_movables): Corrected threshold calculation for
1718         moved_once registers.
1719
1720 Mon Oct  5 21:18:45 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1721
1722         * loop.c (combine_givs_p): Fix test for identical givs.
1723
1724 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
1725
1726         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
1727         call abort if the function is already defined.
1728
1729 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
1730
1731         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
1732         truncation is not a no-op.
1733
1734 Mon Oct 5 09:02:04 PDT 1998 Jeff Law  (law@cygnus.com)
1735
1736         * version.c: Bump for snapshot.
1737
1738 Mon Oct 5 08:19:55 PDT 1998 Jeff Law  (law@cygnus.com)
1739
1740         * version.c: Bump for snapshot.
1741
1742 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
1743
1744         * expmed.c (expand_divmod): Don't widen for computing remainder
1745         if we seem to have a divmod pattern for needed mode.
1746
1747 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
1748
1749         * cpplib.c (macroexpand): Correct off-by-one error in handling
1750         of escapes.
1751
1752 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
1753
1754         * combine.c (expand_field_assignment): Don't do bitwise operations
1755         on MODE_FLOAT; pun to MODE_INT if possible.
1756
1757 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
1758                           scott snyder  <snyder@d0sgif.fnal.gov>
1759
1760         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
1761         linker.  Recognize mangled names in quotes.
1762
1763 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
1764
1765         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
1766         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
1767         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
1768         (lshrsi3_extend, lshrsi3_extend2): Ditto.
1769
1770 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1771
1772         * function.c (purge_addressof_1): If trying to take a sub-word
1773         integral piece of a floating point mode, put it on the stack.
1774
1775 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
1776
1777         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
1778
1779 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
1780
1781         * PROJECTS: Remove template friends.
1782
1783         * collect2.c (sort_ids): Remove unused variable.
1784
1785         * tm.texi (MATH_LIBRARY): Document.
1786         (NEED_MATH_LIBRARY): Remove.
1787
1788         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
1789         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
1790
1791 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
1792
1793         * dwarf2out.c (expand_builtin_dwarf_reg_size):  Initialize
1794         last_end to 0x7fffffff.
1795
1796 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1797
1798         * function.c (purge_addressof_1): Do not perform endianness
1799         corrections on bitpos, who we call will do it for us.
1800
1801 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
1802
1803         * h8300.c (WORD_REG_USED): Fix typo.
1804         (initial_offset): Use WORD_REG_USED.
1805
1806         * h8300.c (handle_pragma): Fix typo.
1807
1808 Fri Oct  2 10:51:35 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1809
1810         * caller-save.c (insert_save_restore): Break this function up
1811         into new functions insert_restore, insert_save and insert_one_insn.
1812         All callers changed.
1813         (insert_restore): New function, mostly broken out of
1814         insert_save_restore.
1815         (insert_save): Likewise.
1816         (insert_one_insn): Likewise.
1817         (restore_referenced_regs): New argument BLOCK.  All callers changed.
1818         (save_call_clobbered_regs): Don't keep track of basic block boundaries
1819         in this function, do it in insert_one_insn instead.
1820
1821         * reload1.c (reload): Break out some more pieces into separate
1822         functions.
1823         (dump_needs): New function, broken out of reload.
1824         (set_initial_elim_offsets): Likewise.
1825         (init_elim_table): Likewise.
1826         (update_eliminables): Likewise.
1827
1828         * global.c (global_alloc): Delete code to manage the scratch_list.
1829         * local-alloc.c (qty_scratch_rtx): Delete.
1830         (scratch_block): Delete.
1831         (scratch_list): Delete.
1832         (scratch_list_length): Delete.
1833         (scratch_index): Delete.
1834         (alloc_qty_for_scratch): Delete.
1835         (local-alloc): Update initialization of max_qty.
1836         Delete code to manage the scratch list.
1837         Delete code to allocate/initialize qty_scratch_rtx.
1838         (block_alloc): Don't allocate quantities for scratches.
1839         Delete code to manage the scratch list.
1840         * regs.h (scratch_list): Delete declaration.
1841         (scratch_block): Delete declaration.
1842         (scratch_list_length): Delete declaration.
1843         * reload1.c (reload): Delete code to manage the scratch list.
1844         (spill_hard_reg): Likewise.
1845         (mark_scratch_live): Delete.
1846
1847         * recog.c (alter_subreg): Delete declaration.
1848
1849 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
1850
1851         * Makefile.in (cccp.o): Fix typo in last patch.
1852
1853 Fri Oct  2 16:13:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1854
1855         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
1856         * config/sh/lib1funcs.asm (___set_fpscr): Add.
1857
1858 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
1859
1860         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
1861         NULL_RTX as an argument.
1862
1863         * Makefile.in (unlibsubdir): Define.
1864         (DRIVER_DEFINES): Use unlibsubdir.
1865         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
1866         (stmp-fixinc): Similarly.
1867
1868 Thu Oct  1 19:58:30 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
1869
1870         * regmove.c (regmove_optimize): Add variable old_max_uid.
1871         At the end of the function, update basic_block_end.
1872
1873 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1874
1875         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
1876         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
1877         arbitrary constant.
1878
1879 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
1880
1881         * config/arm/arm.c: Improve interworking support.
1882
1883 Thu Oct  1 18:43:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1884
1885         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
1886         copied from reload_out[r] .
1887
1888 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
1889
1890         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
1891         with more than three size ranges.
1892
1893         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
1894
1895         * rtl.c (mode_name): Add a null string at the end of the array.
1896         (mode_wider_mode): Change type to unsigned char.
1897         (mode_mask_array): New variable.
1898         (init_rtl): Update for mode_wider_mode type change.
1899
1900         * rtl.h (mode_wider_mode): Change type to unsigned char.
1901         (mode_mask_array): Declare.
1902         (GET_MODE_MASK): Use mode_mask_array.
1903
1904 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
1905
1906         * calls.c (expand_call) : Encapsulate code into 
1907         copy_blkmode_from_reg.
1908         * expr.c (copy_blkmode_from_reg): New function.
1909         * expr.h (copy_blkmode_from_reg): New function.
1910         * integrate.c (function_cannot_inline_p): We can inline
1911         these now.
1912         (expand_inline_function): Use copy_blkmode_from_reg
1913         if needed.  Avoid creating BLKmode REGs.
1914         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
1915         object.
1916
1917 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
1918
1919         * config/v850/v850.c: Add function prototypes.
1920         Add support for v850 special data areas.
1921
1922         * config/v850/v850.h: Add support for v850 special data areas.
1923         
1924         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
1925         HANDLE_PRAGMA_PACK_PUSH_POP.
1926         (push_alignment): New function: Cache an alignment requested
1927         by a #pragma pack(push,<n>).
1928         (pop_alignment): New function: Pop an alignment from the
1929         alignment stack.
1930         (insert_pack_attributes): New function: Generate __packed__
1931         and __aligned__ attributes for new decls whilst a #pragma pack
1932         is in effect. 
1933         (add_weak): New function: Cache a #pragma weak directive.
1934         (handle_pragma_token): Document calling conventions.  Add
1935         support for #pragma pack(push,<n>) and #pragma pack (pop).
1936
1937         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
1938         are defined enable HANDLE_PRAGMA_PACK.
1939         Move 'struct weak_syms' here (from varasm.c).
1940         Add pragma states for push and pop pragmas.
1941
1942         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
1943         if it is defined.
1944
1945         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
1946         HANDLE_GENERIC_PRAGMAS.
1947         
1948         * varasm.c: Move definition of 'struct weak_syms' into
1949         c-pragma.h. 
1950         (handle_pragma_weak): Deleted.
1951
1952         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
1953
1954         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
1955
1956         * c-decl.c (start_function): Add invocation of
1957         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
1958
1959         * tm.texi: Remove description of non-existant macro
1960         SET_DEFAULT_SECTION_NAME.
1961         
1962         (HANDLE_SYSV_PRAGMA): Document.
1963         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
1964
1965 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
1966
1967         * config.sub: Recognize i[34567]86-pc-udk as new target.
1968         * configure.in: Likewise.
1969         * config/i386/t-udk: New file.
1970         * config/i386/udk.h: New file.
1971
1972 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
1973
1974         * reorg.c (check_annul_list_true_false): Remove unused variables.
1975         (steal_delay_list_from_target): Add missing "used_annul" variable.
1976         (try_merge_delay_insns): Close out half formed comment.
1977
1978 Wed Sep 30 19:13:20 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
1979
1980         * cpplib.c (macroexpand): If arg->raw_before or
1981         arg->raw_after, remove any no-reexpansion escape at the
1982         beginning of the pasted token.  Correct handling of whitespace
1983         markers and no-reexpand markers at the end if arg->raw_after.
1984
1985         * toplev.c (documented_lang_options): Recognize -include,
1986         -imacros, -iwithprefix, -iwithprefixbefore.
1987         * cpplib.c (cpp_start_read): Process -imacros and -include
1988         switches at the same time and in command-line order, after
1989         initializing the dependency-output code.  Emit properly nested
1990         #line directives for them.  Emit a #line for the main file
1991         before processing these switches, and don't do it again
1992         afterward.
1993
1994 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
1995
1996         * function.c (purge_addressof_1): Use bitfield manipulation
1997         routines to handle mem mode < reg mode.
1998
1999 Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
2000
2001         * reorg.c (try_merge_delay_insns): Account for resources referenced
2002         in each instruction in INSN's delay list before trying to eliminate
2003         useless instructions.  Similarly when looking at a trial insn's delay
2004         slots.
2005
2006         * reorg.c (check_annul_list_true_false): New function.
2007         (steal_delay_list_from_{target,fallthrough}): Call it and also
2008         refine tests for when we may annul if already filled a slot.
2009         (fill_slots_from_thread): Likewise.
2010         (delete_from_delay_slot): Return newly-created thread.
2011         (try_merge_delay_isns): Use its new return value.
2012
2013 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
2014
2015         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
2016         used to compute a giv or as some other non-counting use.
2017
2018 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2019
2020         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
2021         * local-alloc.c (find_free_reg): Use it.
2022         * global.c (find_reg): Likewise.
2023         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
2024
2025         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
2026         * caller-save.c (init_caller_save): Use it.
2027         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
2028
2029 Wed Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
2030
2031         * configure.in: Add --enable-cpplib option which uses cpplib
2032         for cpp, but doesn't link cpplib into cc1.  Make help text
2033         capitalization consistent.
2034         * configure: Rebuilt.
2035
2036 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
2037
2038         * function.c (gen_mem_addressof): If the address REG is
2039         REG_USERVAR_P make the new REG be so also.
2040         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
2041         in an attempt to clarify slightly.
2042
2043 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
2044
2045         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
2046         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
2047
2048 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
2049
2050         * toplev.c:  Fix last patch.
2051
2052 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
2053
2054         * loop.c (get_condition): Fix typo in May 9 change.
2055
2056 Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2057
2058         * invoke.texi (-fexceptions): Merge 2 different descriptions.
2059
2060 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2061
2062         * toplev.c (documented_lang_options): Spelling corrections.
2063
2064 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
2065
2066         * configure.in: new flags --with-ld and --with-as, equivalent
2067         to setting LD and AS environment variables.  Test whether
2068         specified arguments are GNU commands, and report them with
2069         checking messages.  Use the specified AS for configure
2070         tests too.
2071         * configure: ditto
2072         * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
2073         * config.in: ditto
2074         * gcc.c (find_a_file): when looking for `as' and `ld', return
2075         the DEFAULT program if it exists
2076         * collect2.c (main): use DEFAULT_LINKER if it exists
2077
2078         * gcc.c (find_a_file): the test for existence of a full
2079         pathname was reversed
2080
2081 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
2082
2083         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
2084         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
2085
2086 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
2087
2088         * tree.h (TYPE_BINFO): Document.
2089
2090 Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
2091
2092         * i386-coff.h (dbxcoff.h): Added.
2093
2094 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
2095
2096         * toplev.c:  fix bad patch around flag_data_sections.
2097
2098 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
2099
2100         * reload1.c (reload): Use reload_address_index_reg_class and 
2101         reload_address_base_reg_class when setting
2102         caller_save_spill_class.  (Patch generated by Jim Wilson:
2103         wilson@cygnus.com).
2104
2105 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
2106
2107         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
2108         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning. 
2109         * expr.c (store_field): Add alias_set parameter.  Set the
2110         MEM_ALIAS_SET accordingly, if the target is a MEM.
2111         (expand_assignment): Use it.
2112         (store_constructor_field): Pass 0.
2113         (expand_expr): Likewise.
2114
2115 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
2116  
2117         * flags.h:  Add flag_data_sections.
2118         * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
2119         (compile_file):  Error if flag_data_sections not supported.
2120         * varasm.c (assemble_variable):  Handle flag_data_sections.
2121         * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
2122         * config/mips/elf.h:  Likewise.
2123         * config/mips/elf64.h:  Likewise.
2124         * invoke.texi:  Describe -fdata-sections.
2125  
2126 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
2127
2128         * invoke.texi (-ffloat-store): Clarify that this option
2129         does not affect intermediate results -- only variables.
2130
2131 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
2132
2133         * cpp.texi: Update for Fortran usage from Craig.
2134
2135 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2136
2137         * rs6000.c (function_arg_boundary): Revert accidental change on
2138         September 18.
2139
2140 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
2141
2142         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
2143         (output_mi_thunk): Declare.
2144
2145         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
2146         (output_function_profiler): Use r12 for temp, instead of r11 so
2147         that we preserve the static chain register.
2148         
2149 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
2150
2151         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
2152
2153 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2154
2155         * sh.c (gen_shl_sext): Fix case 5.
2156
2157 Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2158
2159         * reload1.c (reload_combine): Re-add line that got accidentally lost.
2160
2161 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2162
2163         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
2164         accessing variables until they are initialized via va_arg().
2165
2166 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2167
2168         * reload1.c (reload_combine): Initialize set before using.
2169
2170 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
2171
2172         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
2173         won't be emitting.
2174
2175 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
2176
2177         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
2178         operand3 with mask before using it.  Patch provided by Jim Wilson.
2179
2180 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
2181
2182         * config/sparc/sparc.c (function_value): Perform the equivalent of
2183         PROMOTE_MODE for ARCH64.
2184         (eligible_for_epilogue_delay): Allow DImode operations in delay
2185         slot of a return for ARCH64.
2186
2187 Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2188
2189         * sh.md (sqrtsf2): Fix mode of sqrt.
2190
2191 Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2192
2193         * reload1.c (choose_reload_regs): Also try inheritance when
2194         reload_in is a stack slot of a pseudo, even if we already got a
2195         reload reg.
2196
2197 Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2198
2199         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
2200         (reload_cse_regs): New function body: call reload_cse_regs_1,
2201         reload_combine, reload_cse_move2add.
2202         When doing expensive_optimizations, call reload_cse_regs_1 a
2203         second time after reload_cse_move2add.
2204         (reload_combine, reload_combine_note_store): New functions.
2205         (reload_combine_note_use): New function.
2206         (reload_cse_move2add, move2add_note_store): New functions.
2207
2208 Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2209
2210         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
2211         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
2212
2213         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
2214         more than 3 such reloads.
2215
2216         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
2217         RELOAD_FOR_X_ADDR_ADDR reload.
2218
2219 Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2220
2221         * expr.c (store_constructor): When initializing a field that is smaller
2222         than a word, at the start of a word, try to widen it to a full word.
2223
2224         * cse.c (cse_insn): When we are about to change a register,
2225         remove any invalid references to it.
2226
2227         (remove_invalid_subreg_refs): New function.
2228         (mention_regs): Special treatment for SUBREGs.
2229         (insert_regs): Don't strip SUBREG for call to mention_regs.
2230         Check if reg_tick needs to be bumped up before that call.
2231         (lookup_as_function): Try to match known word_mode constants when
2232         looking for a norrower constant.
2233         (canon_hash): Special treatment for SUBREGs.
2234
2235 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2236
2237         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
2238         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
2239         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
2240         and offsets in actual stack trampoline code so they match the
2241         commentary and actually work.
2242
2243 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
2244
2245         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
2246         tmake_file.
2247         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
2248         tmake_file.  Set extra_parts to needed crt objects.
2249         * configure: Rebuilt.
2250         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
2251         (TARGET_DEFAULT): Set if default is v9 or ultra.
2252         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
2253         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
2254         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
2255         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2256         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
2257         (TARGET_VERSION): Define.
2258         (MULTILIB_DEFAULT): Define.
2259         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
2260         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
2261         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
2262         appropriately.
2263         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
2264         * config/sparc/sparc.c (sparc_override_options): If arch and
2265         pointer size disagree, emit diagnostic and fix it up.  If
2266         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
2267         V8PLUS in 64-bit mode.
2268         * config/sparc/t-linux64: New file.
2269         * config/sparc/t-sol2-64: New file.
2270         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
2271         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
2272         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
2273         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
2274         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
2275         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
2276         Define.
2277         (STARTFILE_SPEC): Set approriately based upon those.
2278         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
2279         disposition of DEFAULT_ARCH32_P.
2280         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
2281         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
2282         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
2283         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
2284         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
2285         arch64/v9.
2286         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
2287         
2288 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
2289
2290         * rtl.h (init_virtual_regs): New function.
2291         * emit-rtl.c (init_virtual_regs): Define.
2292         (insn_emit): Use it.
2293         * integrate.c (save_for_inline_copying): Likewise.
2294
2295 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
2296
2297         * config/arm/thumb.h: The following patches were made by Jim Wilson:
2298         (enum reg_class): Add NONARG_LO_REGS support.
2299         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
2300         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
2301         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
2302         completes.  Re-enable HImode REG+OFFSET addresses.
2303         (LEGITIMIZE_RELOAD_ADDRESS): Define.
2304
2305         * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
2306
2307 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
2308
2309         * alpha.c (get_aligned_mem): Revert Sep 20 change.
2310         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
2311         (alpha_align_insns): Properly calculate initial offset wrt max_align.
2312
2313 Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
2314
2315         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
2316         jumps as a single entity, taking into account the size of the
2317         table.
2318
2319 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2320
2321         * tree.def (SWITCH_EXPR): New tree node definition.
2322
2323 Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
2324
2325         * version.c: Bump for snapshot.
2326
2327 Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
2328
2329         * version.c: Bump for snapshot.
2330
2331 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
2332
2333         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
2334         NetBSD.
2335
2336 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
2337
2338         * Revert this patch.
2339         * reload.c (find_reloads): Do not replace a pseudo with
2340         (MEM (reg_equiv_addr)) in the initializing insn for the
2341         pseudo.
2342
2343 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
2344
2345         * final.c (final_scan_insn): Disable tracking CC across branches.
2346
2347 Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2348
2349         * expr.h (eh_rtime_match_libfunc): New extern declaration.
2350         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
2351         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
2352         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
2353         NULL. Only include <stdio.h> if inhibit_libc is not defined.
2354
2355 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
2356
2357         * toplev.c (rest_of_compilation): Skip compiling anything with
2358         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
2359
2360 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
2361
2362         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
2363         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
2364         use in_libcall_block.
2365         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
2366         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
2367         to INSN.
2368
2369 Mon Sep 21 14:02:23 1998
2370
2371         * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
2372         typo in no-fancy-math-387 description.
2373
2374 Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
2375
2376         * version.c: Bump for snapshot.
2377
2378 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
2379
2380         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
2381
2382 Mon Sep 21 09:14:49 1998   Robert Lipe  <robertl@dgii.com>
2383
2384         * i386.h: (TARGET_SWITCHES) Add description fields for flags 
2385         documented in install.texi.
2386         (TARGET_OPTIONS) Likewise.
2387
2388 Mon Sep 21 01:39:03 PDT 1998 Jeff Law  (law@cygnus.com)
2389
2390         * version.c: Bump for snapshot.
2391
2392 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
2393
2394         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
2395         * cccp.c (main): Likewise.
2396
2397         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
2398         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
2399         macro-use bugs.
2400
2401 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
2402
2403         * Makefile.in (LIBS):  Link in libiberty.a.
2404         * c-common.c, gcc.c, toplev.c:  Replace (some) bcopy calls by memcpy.
2405
2406 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
2407
2408         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
2409         it to update bb boundaries.  Update caller.
2410         * function.c (reposition_prologue_and_epilogue_notes): Update
2411         bb boundaries wrt the moved note.
2412
2413 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
2414         
2415         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
2416         problems.
2417         * configure: Regenerate.
2418
2419 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
2420
2421         * alpha.c (alpha_sr_alias_set): New variable.
2422         (override_options): Set it.
2423         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
2424         (mode_mask_operand): Fix signed-unsigned comparision warning.
2425         (alpha_expand_block_move): Likewise.
2426         (print_operand): Likewise.
2427         (get_aligned_mem): Use change_address.
2428         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
2429         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
2430         (alphaev4_next_nop, alphaev5_next_nop): New functions.
2431         (alpha_align_insns): Remade from old alphaev5_align_insns
2432         to handle multiple processors.
2433         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
2434         * output.h (label_to_alignment): Prototype.
2435
2436         * tree.c (new_alias_set): New function.
2437         * tree.h (new_alias_set): Declare it.
2438         * c-common.c (c_get_alias_set): Use it.
2439
2440 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
2441
2442         * fold-const.c (fold): Yet another COND_EXPR bug: when folding 
2443         to an ABS expr, convert an unsigned input to signed.
2444         
2445 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
2446
2447         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
2448
2449 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2450
2451         * configure.in: Add support for c4x targets.
2452         * configure: Rebuilt.
2453
2454 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
2455
2456         * combine.c (distribute_notes): If an insn is a cc0 user, only
2457         delete it if we can also delete the cc0 setter.
2458
2459 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
2460
2461         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
2462         (invert_truthvalue): Enable truthvalue inversion for
2463         floating-point operands if -ffast-math.
2464
2465 Sat Sep 19 23:58:07 1998  Melissa O'Neill <oneill@cs.sfu.ca>
2466                          
2467         * configure.in: Disable collect2 for nextstep.  Instead use
2468         crtbegin/crtend.
2469         * configure: Rebuilt.
2470         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
2471         (ENDFILE_SPEC): Define.
2472         (OBJECT_FORMAT_MACHO): Define.
2473         (EH_FRAME_SECTION_ASM_OP): Define.
2474         * crtstuff.c: Handle MACHO.
2475
2476 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
2477
2478         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS):  Define.
2479
2480 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
2481
2482         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
2483         (_fpadd_parts): Get sign right for 0.
2484
2485 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2486
2487         * ginclude/varargs.h: Add support for C4x target.
2488         * ginclude/stdargs.h: Likewise.
2489
2490 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
2491
2492         * alpha.c (alpha_return_addr): SET should be VOIDmode.
2493         (alpha_emit_set_long_const): Rewrite to be callable from reload
2494         and 32-bit hosts.
2495         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
2496         * alpha.md (movdi): Likewise.
2497
2498 Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
2499
2500         * arm.c (add_constant): New parameter address_only, change caller.
2501         Set it non-zero if taking the address of an item in the pool.
2502         (arm_reorg): Handle cases where we need the address of an item in
2503         the pool.
2504
2505         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
2506         a memory address.
2507         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
2508         memory addresses that are not in standard canonical form.
2509
2510 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
2511
2512         * README.C4X: New file with information about the c4x ports.
2513         * ginclude/va-c4x.h: New file for c4x varargs support.
2514         * config/c4x: New directory with c4x port files.
2515
2516 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
2517
2518         * reload.c (find_reloads): Do not replace a pseudo with 
2519         (MEM (reg_equiv_addr)) in the initializing insn for the
2520         pseudo.
2521
2522 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2523
2524         * toplev.c (rest_of_compilation): Set bct_p on second call to
2525         loop_optimize.
2526         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
2527         bct_p.
2528         (strength_reduce): Only call analyze_loop_iterations and
2529         insert_bct if bct_p set.
2530         (check_dbra_loop): Fix typo.
2531         (insert_bct): Use word_mode instead of SImode.
2532         (instrument_loop_bct): Likewise.  Do not delete iteration count
2533         condition code generation insn.  Initialize iteration count before
2534         loop start.
2535         * rtl.h (loop_optimize): Update prototype.
2536
2537         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
2538         not doubleword aligned.
2539
2540         * rs6000.c (optimization_options): New function.
2541         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
2542         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
2543         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
2544         first; cr1 can be used for FP record condition insns.
2545
2546 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
2547
2548         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
2549         PREDICATE_CODES.
2550
2551         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
2552         patterns.
2553
2554         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
2555         operators.
2556         (block_move_call): New function: Call a library routine to copy a
2557         block of memory.
2558         (m32r_expand_block_move): New function: Expand a "movstrsi"
2559         pattern into a sequence of insns.
2560         (m32r_output_block_move): New function: Expand a
2561         "movstrsi_internal" pattern into a sequence of assembler opcodes.
2562         (m32r_block_immediate_operand): New function: Return true if the
2563         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
2564         
2565 Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2566
2567         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
2568         re-align some code.
2569         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
2570
2571 Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2572
2573         * regmove.c (copy_src_to_dest): Check that modes match.
2574
2575 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
2576
2577         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
2578
2579 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
2580
2581         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
2582         narrower than FLOAT_REGS.
2583
2584 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
2585
2586         * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
2587         * cccp.c: ditto
2588         * Makefile.in (old_gxx_include_dir): removed
2589
2590 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
2591
2592         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
2593         new specification.
2594
2595         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
2596         (sh_handle_pragma): Change function arguments to match new
2597         specification for HANDLE_PRAGMA. 
2598
2599 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2600
2601         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
2602         `unsigned char'.
2603         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
2604         When generating output, initialize missing struct member to zero.
2605
2606 Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2607
2608         * regmove.c (copy_src_to_dest): Don't copy if that requires
2609         (a) new register(s).
2610
2611 Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2612
2613         * global.c (reg_allocno): Now static.
2614         * reload1.c (reg_allocno): Delete declaration.
2615         (order_regs_for_reload): Take no arguments.  Don't treat regs
2616         allocated by global differently than those allocated by local-alloc.
2617
2618 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
2619
2620         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
2621         condition, fix format strings.
2622         (output_function_epilogue): Likewise.
2623
2624         * m68k/m68k.c: Don't include <stdlib.h> directly.
2625
2626 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
2627
2628         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
2629         mem_first_set, mem_last_set; because 0 can be a CUID.
2630         (oprs_unchanged_p): Use new definition.
2631         (record_last_reg_set_info): Likewise.
2632         (record_last_mem_set_info): Likewise.
2633         (compute_hash_table): Likewise.
2634
2635 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
2636
2637         * rs6000.c (output_epilogue): Handle Chill.
2638
2639         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
2640         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
2641
2642         * combine.c (make_extraction): If no mode is specified for
2643         an operand of insv, extv, or extzv, default it to word_mode.
2644         (simplify_comparison): Similarly.
2645         * expmed.c (store_bit_field): Similarly.
2646         (extract_bit_field): Similarly.
2647         * function.c (fixup_var_regs_1): Similarly.
2648         * recog.c (validate_replace_rtx_1): Similarly.
2649         * mips.md (extv, extzv, insv expanders): Default modes for most
2650         operands.  Handle TARGET_64BIT.
2651         (movdi_uld, movdi_usd): New patterns.
2652
2653         * pa.c (emit_move_sequence): Do not replace a pseudo with its
2654         equivalent memory location unless we have been provided a scratch
2655         register.  Similarly do not call find_replacement unless a
2656         scratch register has been provided.
2657
2658 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2659
2660         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
2661         return FLOAT_REGS.
2662
2663 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
2664
2665         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
2666         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
2667         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
2668         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
2669         * c-decl.c (init_decl_processing): Update accordingly.
2670         * expr.c (expand_builtin): Likewise.
2671
2672         * rtl.h (global_rtl): Add cfa entry.
2673         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
2674         (LAST_VIRTUAL_REGISTER): Update.
2675         * emit-rtl.c (global_rtl): Add cfa entry.
2676         (init_emit): Initialize it.
2677         * function.c (cfa_offset): New.
2678         (instantiate_virtual_regs): Initialize it.
2679         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
2680         (expand_function_end): Call expand_eh_return.
2681         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
2682
2683         * except.c (current_function_eh_stub_label): Kill.
2684         (current_function_eh_old_stub_label): Likwise; update all references.
2685         (expand_builtin_set_return_addr_reg): Kill.
2686         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
2687         (expand_builtin_set_eh_regs): Kill.
2688         (eh_regs): Produce a third reg for the actual handler address.
2689         (eh_return_context, eh_return_stack_adjust): New.
2690         (eh_return_handler, eh_return_stub_label): New.
2691         (init_eh_for_function): Initialize them.
2692         (expand_builtin_eh_return, expand_eh_return): New.
2693         * except.h: Update prototypes.
2694         * flow.c (find_basic_blocks_1): Update references to the stub label.
2695         * function.h (struct function): Kill stub label elements.
2696
2697         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
2698         register number is one that would be in the previous window.
2699         Provide a dummy definition for non-windowed targets.
2700         (get_reg_addr): New function.
2701         (get_reg, put_reg, copy_reg): Use it.
2702         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
2703         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
2704
2705         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
2706         (alpha_init_expanders): Initialize it.
2707         (alpha_expand_epilogue): Use it.
2708         * alpha.h: Declare it.
2709         * alpha.md (eh_epilogue): New.
2710
2711         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
2712         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
2713
2714 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
2715
2716         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
2717         flag bit mask.
2718
2719 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2720
2721         * except.h (struct eh_entry): Add false_label field.
2722         (end_catch_handler): Add prototype.
2723         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
2724         (start_catch_handler): When using old style exceptions, issue
2725         runtime typematch code before continuing with the handler.
2726         (end_catch_handler): New function, generates label after handler
2727         if needed by older style exceptions.
2728         (expand_start_all_catch): No need to check for new style exceptions.
2729         (output_exception_table_entry): Only output the first handler label
2730         for old style exceptions.
2731         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
2732         mechanism into one function, if a runtime matcher is provided.
2733
2734 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
2735
2736         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
2737
2738 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
2739
2740         * integrate.c (copy_decl_list): Fix typo.
2741
2742 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2743
2744         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
2745         attribute.
2746
2747 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
2748
2749         * version.c: Bump for snapshot.
2750
2751 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
2752
2753         * version.c: Bump for snapshot.
2754
2755 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
2756
2757         * version.c: Bump for snapshot.
2758
2759 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2760
2761         * invoke.texi (C Dialect Options): Put back missing @end itemize.
2762
2763 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
2764
2765         * configure.in: remove usage of `!' to negate the result of a
2766         command; some common shells do not support it
2767
2768 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2769
2770         * configure.in: in sparc9-sol2 config, use 'if test' not
2771         brackets.
2772         * configure: Rebuilt.
2773
2774         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
2775         CM_MEDANY.
2776         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
2777         (CPP_CPU_DEFAULT_SPEC): Likewise.
2778         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
2779         for arch64 libfuncs.
2780         
2781         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
2782         for operand zero.
2783
2784 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2785
2786         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
2787
2788         * collect2.c: Don't declare `sys_siglist' here.
2789         (my_strsignal): Prototype and define new function.  Use it in
2790         place of `sys_siglist' hacks.
2791
2792         * mips_tfile.c:  Likewise.
2793
2794         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
2795         (GCC_NEED_DECLARATIONS): Likewise.
2796
2797         * system.h (strsignal): Prototype it, if necessary.
2798         (sys_siglist): Declare it, if necessary.
2799
2800 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2801
2802         * loop.c (move_movables): While removing insn sequences, preserve
2803         the next pointer of the most recently deleted insn when we skip
2804         over a NOTE.
2805
2806 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
2807
2808         * objc/config-lang.in: Do not output the name of the selected
2809         thread file when building the front-end.  The Makefile for the
2810         runtime library will do this.
2811
2812         * objc/Make-lang.in: Do not build the runtime library or install
2813         the Objective C header files.  The Makefile for the runtime
2814         library will do this.
2815
2816         * objc/Makefile.in (all.indirect): Only build the front-end.
2817         (compiler): Rename to `frontend'.
2818         (obj-runtime): Remove target.
2819         (copy-headers): Likewise.
2820         (clean): No need to remove `libobjc.a' any longer.
2821
2822 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
2823
2824         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
2825         supported with -mcpu=xxx.
2826
2827 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2828
2829         * flow.c (mark_set_1): Recognize multi-register structure return
2830         values in CALL insns.
2831         (mark_used_regs): Likewise.
2832         (count_reg_sets_1): Likewise.
2833         (count_reg_references): Likewise.
2834         * rtlanal.c (note_stores): Likewise.
2835         (reg_overlap_mentioned_p): Likewise.
2836         * haifa-sched.c (check_live_1): Likewise.
2837         (update_live_1): Likewise.
2838         (sched_analyze_1): Likewise.
2839         (sched_note_set): Likewise.
2840         (birthing_insn_p): Likewise.
2841         (attach_deaths): Likewise.
2842
2843         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
2844
2845
2846 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
2847
2848         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
2849
2850 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2851
2852         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
2853
2854 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
2855
2856         * configure.in: Add check for GAS subsection -1 support.
2857         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
2858         * configure config.in: Rebuilt.
2859         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
2860         SImode is subsection -1 works, else use DImode.
2861         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
2862         subsection -1 works.
2863         * config/sparc/sparc.c (sparc_output_addr_vec,
2864         sparc_output_addr_diff_vec): Use them if defined.
2865
2866 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
2867
2868         * tree.h (DECL_ORIGIN): New macro.
2869         * integrate.c (copy_and_set_decl_abstract_origin): New function.
2870         (copy_decl_list): Use it.
2871         (integrate_parm_decls): Likewise.
2872         (integrate_decl_tree): Likewise.
2873         * dwarf2out.c (decl_ultimate_origin): Simplify.
2874         * dwarfout.c (decl_ultimate_origin): Likewise.
2875         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
2876         (pushdecl): Likewise.
2877
2878 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
2879
2880         * config/rs6000/rs6000.c (output_epilog): Add Java support.
2881
2882 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
2883
2884         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
2885
2886 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
2887
2888         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
2889         empty or has a single entry.
2890
2891         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
2892         before calling reg_to_stack.
2893
2894 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
2895
2896         * alpha.c (alphaev5_insn_pipe): Abort on default case.
2897         (alphaev5_next_group): Swallow CLOBBERs and USEs.
2898
2899         * c-tree.h (warn_long_long): Declare it.
2900
2901 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
2902
2903         * emit-rtl.c (gen_lowpart_common): Disable optimization of
2904         initialized float-int union if the value is a NaN.
2905
2906 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
2907
2908         * c-lex.c (real_yylex): Don't warn about long long constants if 
2909         we're allowing long long
2910
2911 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2912
2913         * except.h (current_function_eh_stub_label): Declare.
2914         (current_function_eh_old_stub_label): Declare.
2915         * function.h (struct function): New members eh_stub_label and
2916         eh_old_stub_label.
2917         * except.c (current_function_eh_stub_label): New variable.
2918         (current_function_eh_old_stub_label): New variable.
2919         (init_eh_for_function): Clear them.
2920         (save_eh_status): Save them.
2921         (restore_eh_status): Restore them.
2922         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
2923         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
2924         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
2925         make an edge from the block that contains it to the block starting
2926         with the label if this label is one of the eh stub labels.
2927         If eh stub labels exist, show they are reachable from the last block
2928         in the function.
2929
2930         * reload1.c (reload): Break out several subroutines and make some
2931         variables global.
2932         (calculate_needs_all_insns): New function, broken out of reload.
2933         (calculate_needs): Likewise.
2934         (find_reload_regs): Likewise.
2935         (find_group): Likewise.
2936         (find_tworeg_group): Likewise.
2937         (something_needs_reloads): New global variable, formerly in reload.
2938         (something_needs_elimination): Likewise.
2939         (caller_save_spill_class): Likewise.
2940         (caller_save_group_size): Likewise.
2941         (max_needs): Likewise.
2942         (group_size): Likewise.
2943         (max_groups): Likewise.
2944         (max_nongroups): Likewise.
2945         (group_mode): Likewise.
2946         (max_needs_insn): Likewise.
2947         (max_groups_insn): Likewise.
2948         (max_nongroups_insn): Likewise.
2949         (failure): Likewise.
2950
2951         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
2952
2953 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
2954
2955         * loop.c (load_mems): Copy rtx for output mem.
2956
2957 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
2958
2959         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
2960         mips1 or mips2 either.
2961
2962 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
2963
2964         * pa.c (pa_reorg): New marking scheme for jumps inside switch
2965         tables.
2966         (pa_adjust_insn_length): Update to work with new marking scheme
2967         for jumps inside switch tables. 
2968         * pa.md (switch_jump): Remove pattern.
2969         (jump): Handle jumps inside jump tables.
2970
2971         * Makefile.in (profile.o): Depend on insn-config.h
2972
2973 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
2974
2975         * iris6.h (DWARF2_UNWIND_INFO): Undef.
2976
2977 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2978
2979         Add preliminary native sparcv9 Solaris support.
2980         * configure.in: Recognize sparv9-*-solaris2*
2981         * configure: rebuilt
2982         * config.sub: Recognize sparcv9 just like sparc64.
2983         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
2984         config/sparc/sol2-cn.asm: Macroize so it can be shared between
2985         32-bit and 64-bit Solaris systems.
2986         * config/sparc/t-sol2: Assemble those with cpp.
2987         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
2988         (*TF*_LIBCALL): If ARCH64 use V9 names.
2989         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
2990
2991 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
2992
2993         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
2994         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
2995         not doing pic.
2996         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
2997         Pmode.
2998         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
2999         to Pmode if CASE_VECTOR_MODE is something else.
3000
3001 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
3002
3003         * prefix.c (update_path): Correctly handle cases where PATH is
3004         a substring of the builtin prefix, but specifies a different
3005         directory location.
3006
3007 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
3008
3009         * expr.c: Corrected comment about what MOVE_RATIO does.
3010         * config/alpha/alpha.h: Ditto.
3011         * config/1750a/1750a.h: Ditto.
3012         * config/clipper/clipper.h: Ditto.
3013         * config/i386/i386.h: Ditto.
3014
3015 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
3016
3017         * configure.in (m68k-next-nextstep3*): Use collect2.
3018         Similarly for x86 NeXT configurations.
3019         * configure: Rebuilt.
3020
3021 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
3022
3023         * configure.in: Don't assume srcdir is .../gcc
3024         * configure: Rebuilt.
3025
3026 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
3027
3028         * global.c: Update comments.
3029         (global_alloc): Assign allocation-numbers
3030         even for registers allocated by local_alloc in case
3031         they are later spilled and retry_global_alloc is called.
3032         (mark_reg_store, mark_reg_clobber,
3033         mark_reg_conflicts, mark_reg_death): Always record a
3034         conflict with a pseudo register even if it has been
3035         assigned to a hard register.
3036         (dump_conflicts): Don't list pseudo registers already assigned to
3037         a hard register as needing to be allocated, but do list their
3038         conflicts.
3039         * local-alloc.c: Update comment.
3040
3041 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
3042
3043         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
3044         * configure: Rebuilt.
3045
3046 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
3047
3048         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
3049         missing 'c'.
3050         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
3051         for all targets that set -msoft-float.
3052
3053 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3054
3055         * toplev.c (print_switch_values): Make static to match prototype.
3056
3057 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
3058
3059         * configure.in: If we are unable to find the "gnatbind" program,
3060         then do not configure the ada subdir.
3061         * configure: Rebuilt.
3062
3063 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
3064
3065         * version.c: Bump for snapshot.
3066
3067 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
3068
3069         * version.c: Bump for snapshot.
3070
3071 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3072
3073         * Makefile.in (toplev.o): Depend on $(EXPR_H).
3074         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
3075
3076         * gansidecl.h: Define ATTRIBUTE_NORETURN.
3077
3078         * genattrtab.c: Have insn-attrtab.c include toplev.h.
3079
3080         * genextract.c: Have insn-extract.c include toplev.h.
3081
3082         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
3083
3084         * toplev.c: Include expr.h.
3085         (really_sorry, fancy_abort): Remove prototypes.
3086         (set_target_switch): Add argument in prototype.
3087         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
3088         (v_really_sorry): Likewise.
3089         (print_version, print_single_switch, print_switch_values): Make
3090         static and add prototype arguments.
3091         (decl_printable_name): Add prototype arguments.
3092         (lang_expand_expr_t): New typedef.
3093         (lang_expand_expr): Declare as a lang_expand_expr_t.
3094         (incomplete_decl_finalize_hook): Add prototype argument.
3095         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
3096         (botch): Likewise for variable `s'.
3097         (rest_of_type_compilation): Mark variables `type' and `toplev'
3098         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
3099         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
3100         (display_help): Make variable `i' an `unsigned long'.
3101         (main): Remove unused parameter `envp'.
3102         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
3103         Cast -1 when comparing it with a `size_t'.
3104
3105         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
3106         prototype with ATTRIBUTE_NORETURN.
3107         (fatal_insn_not_found, fatal_insn, really_sorry,
3108         push_float_handler, pop_float_handler): Add prototypes.
3109         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
3110         (do_abort, botch): Add prototypes.
3111         
3112 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
3113
3114         * final.c (final): If a label is reached only from a single jump,
3115         call NOTICE_UPDATE_CC on the jump and its predecessor before
3116         emitting the insn after the label.
3117         
3118         * i386.h: Add AMD K6 support.
3119         Change TARGET_* macros to use table lookup.
3120         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
3121         (ADJUST_COST): Change definition to call function in i386.c.
3122         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
3123         * i386.c: Add AMD K6 support.
3124         Add constants for feature tests used by TARGET_* macros.
3125         (split_di): If before reload, call gen_lowpart and gen_highpart.
3126         (x86_adjust_cost): New function.
3127         (put_jump_code): New function.
3128         (print_operand): New codes 'D' and 'd'.
3129         * i386.md: New insn types.  New insn attribute "memory".
3130         Redefine scheduling parameters to use new types and add AMD K6
3131         support.  Explicitly set type of most insns.
3132         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
3133         Pro and K6 prefer movl $1,reg to incl reg.
3134         (adddi3, subdi3): Set cc_status.
3135         (DImode shift patterns): Change label counters from HOST_WIDE_INT
3136         to int; x86 can't have more than 2^31 DImode shifts per file.
3137         (setcc): Combine all setcc patterns.  Allow writing memory.
3138         Combine all jump patterns using match_operator.
3139         (*bzero): Name pattern.  Emit mutliple stos instructions when that
3140         is faster than rep stos.
3141         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
3142         add define_split.
3143
3144 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
3145
3146         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
3147         linking.
3148
3149 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
3150
3151         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
3152         not whatever we're generating now.
3153
3154         * alpha.c (set_frame_related_p, FRP): New.
3155         (alpha_expand_prologue): Mark frame related insns.
3156         (alpha_expand_epilogue): Likewise, but with a null FRP.
3157         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
3158         * alpha.md (exception_receiver): New.
3159         * alpha/crtbegin.asm (.eh_frame): New beginning.
3160         (__do_frame_setup, __do_frame_takedown): New.
3161         * alpha/crtend.asm (.eh_frame): New ending.
3162         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
3163         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
3164         (ASM_FILE_START): Don't emit .file for dwarf2.
3165
3166         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
3167         * rtl.c (reg_note_name): Likewise.
3168         * rtl.texi (REG_NOTES): Likewise.
3169         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
3170         without an offset.
3171
3172 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
3173
3174         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
3175         * i386.md (movsf, movdf, movxf): Validate memory address returned
3176         from force_const_mem.  Kill useless REG_EQUAL setting code.
3177
3178 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
3179
3180         * m68k.md (zero_extendsidi2): Fix typo.
3181
3182 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
3183
3184         * configure.in: Removed references to the removed file
3185         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
3186         * arm*-*-netbsd* and ns32k-*-netbsd*.
3187         * config/i386/xm-netbsd.h: Removed unnecessary file.
3188         * config/m68k/xm-netbsd.h: Likewise.
3189         * config/sparc/xm-netbsd.h: Likewise.
3190         * config/mips/xm-netbsd.h: Likewise.
3191
3192 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
3193
3194         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
3195         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
3196
3197         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
3198         for exact section attributions.
3199
3200         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
3201         runtime.
3202         * i386/crtdll.h (CPP_PREDEFINES): Define.
3203
3204 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
3205
3206         * m68k.md (5200 movqi): Do not allow byte sized memory references
3207         using address regs.
3208         * m68k.c (output_move_qimode): Do not use byte sized operations on
3209         address registers.
3210
3211         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
3212         explicit rules for building.  Similarly for alloca, vfprintf,
3213         choose-temp and mkstemp, getopt, getopt1, and obstack.
3214         (INCLUDES): Add $(srcdir)/../include.
3215         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
3216         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
3217
3218 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
3219
3220         * gcc.c (do_spec_1): [case 'o'] Account for
3221         lang_specific_extra_outfiles.
3222         (main): Correctly clear all slots in outfiles for
3223         lang_specific_extra_outfiles.  Set input_file_number before
3224         calling lang_specific_pre_link.
3225
3226 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
3227
3228         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
3229
3230 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3231
3232         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
3233         cases, use xword.
3234         (sparc_output_deferred_case_vectors): If no work to do, return.
3235         Fix thinko in Sept 1 change.
3236
3237 1998-09-03  SL Baur  <steve@altair.xemacs.org>
3238
3239         * Makefile.in: add semicolon in BISON definition for portability.
3240
3241 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
3242
3243         * config/nextstep.c (handle_pragma): Correct name of third
3244         argument.
3245
3246 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
3247
3248         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
3249         * config/m32r/m32r.h: Make register 17 be fixed.
3250         * config/m32r/m32r.c: Use SImode for cc operations.
3251
3252 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
3253
3254         * invoke.texi (Warning Options): Add -Wnon-template-friend
3255         documentation.
3256
3257 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
3258
3259         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
3260
3261 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3262
3263         * rs6000.md (movsf): Disable explicit secondary-reload-like
3264         functionality if TARGET_POWERPC64.
3265         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
3266         functionality.
3267
3268 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
3269
3270         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
3271         and term.h from fixinc.wrap.
3272
3273 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3274
3275         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
3276         safe to include both string.h and strings.h together.
3277         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
3278         which headers to search for function declarations.  Continue to
3279         prefer string.h over strings.h when both are not acceptable.
3280
3281         * acconfig.h (STRING_WITH_STRINGS): Add stub.
3282
3283         * configure.in: Call GCC_HEADER_STRING.
3284
3285         * system.h: Test STRING_WITH_STRINGS when deciding which headers
3286         to include.  Continue to prefer string.h over strings.h when both
3287         are not acceptable.
3288
3289 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3290
3291         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
3292         not assume top 32-bits of symbolic addresses are zero if
3293         flag_pic.
3294
3295 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
3296
3297         * ginclude/va-alpha.h: Protect entire second portion of the
3298         file against double inclusion.
3299
3300 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
3301
3302         Added support for the Boehm's garbage collector.
3303         * configure.in: Handle --enable-objc-gc.
3304         * configure: Rebuilt.
3305         * Makefile.in (CHECK_TARGETS): Add check-objc.
3306         (check-objc): New rule.
3307         * objc/Make-lang.in: Build a different Objective-C library that
3308         runs with the Boehm's collector.
3309         * objc/encoding.c (objc_round_acc_size_for_types): New function.
3310         * objc/encoding.c: Correctly compute the size of compound types in
3311         the presence of bitfields. Skip the variable name of the type if
3312         any. Added support for long long.
3313         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
3314         (_F_GCINVISIBLE): New mask.
3315         * objc/gc.c: New file. Compute the type memory mask associated with
3316         a class based on the runtime information.
3317         * objc/misc.c: Added the hooks that use the Boehm's collector
3318         allocation functions.
3319         * objc/objc-act.c (build_class_template): Generate a new class
3320         member (gc_object_type) to hold the class' type memory mask.
3321         (build_shared_structure_initializer): Initialize the new member to
3322         NULL.
3323         (encode_complete_bitfield): New function. Generate the new
3324         encoding.
3325         (encode_field_decl): Generate the new encoding only for the GNU
3326         runtime.
3327         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
3328         long long types.
3329         (class_get_gc_object_type): New function to mark a pointer instance
3330         variable as a weak pointer.
3331         * objc/objc-features.texi: New file.
3332         * objc/objc.h (gc_object_type): New class member.
3333         * objc/objects.c (class_create_instance): Create a typed memory
3334         object when compiled with Boehm's collector support.
3335         * objc/sendmsg.c (__objc_init_install_dtable): Call
3336         __objc_send_initialize instead of setting the initialize flag.
3337         (__objc_send_initialize): Call __objc_generate_gc_type_description
3338         to generate the class type memory mask. Rewrite the code that
3339         sends the +initialize so that it is called only once (bug report
3340         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
3341         * testsuite/objc: New testsuite for Objective-C type encoding.
3342         * testsuite/lib/objc-torture.exp: New file.
3343         * testsuite/lib/objc.exp: New file.
3344
3345 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
3346
3347         * jump.c (jump_optimize): In if/then/else transformations, add
3348         another call to modified_between_p for the jump insn.
3349
3350 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
3351
3352         * fix-header.c (symlink): Treat like readlink.
3353
3354 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3355
3356         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
3357         as FT_float.
3358
3359 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
3360
3361         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
3362         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
3363         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
3364         
3365         * config/nextstep.c (handle_pragma): Take three arguments, as per
3366         the new HANDLE_PRAGMA macro specification.
3367         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
3368         per the new HANDLE_PRAGMA macro specification.
3369         * config/i960/i960.c (process_pragma): Take three arguments, as
3370         per the new HANDLE_PRAGMA macro specification.
3371
3372 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
3373
3374         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
3375         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
3376         if unknown pragmas are encountered.
3377         (handle_sysv_pragma): Interpret return code from
3378         handle_pragma_token ().  Return success/failure indication rather
3379         than next unprocessed character. 
3380         (pragma_getc): New function: retrieves characters from the
3381         input stream.  Defined when HANDLE_PRAGMA is enabled.
3382         (pragma_ungetc): New function: replaces characters back into the
3383         input stream.  Defined when HANDLE_PRAGMA is enabled.
3384         
3385         * c-pragma.c (handle_pragma_token): Return success/failure status
3386         of the parse.
3387         
3388         * c-pragma.h: Change prototype of handle_pragma_token().
3389
3390         * varasm.c: (handle_pragma_weak): Only create this function if
3391         HANDLE_PRAGMA_WEAK is defined.
3392
3393         * c-common,c (decl_attributes): If defined call the expression
3394         contained within the INSERT_ATTRIBUTES macro before adding
3395         attributes to a decl.
3396
3397         * tm.texi (HANDLE_PRAGMA): Document the new verion of
3398         HANDLE_PRAGMA, which takes three arguments.
3399         (INSERT_ATTRIBUTES): Document this new macro.  
3400
3401         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
3402         new INSERT_ATTRIBUTES macro.
3403
3404 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3405
3406         * config/sparc/sparc.md (movdf): Only generate special RTL for
3407         LABEL_REFs when PIC.
3408         (move_label_di): Remove
3409         (movdi_pic_label_ref, movdi_high_pic_label_ref,
3410         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
3411         references when PIC.
3412         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
3413         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
3414         output an .xword for all 64-bit cases.
3415         
3416 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3417
3418         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
3419         alignment, use FUNCTION_BOUNDARY instead.
3420         (sparc_output_deferred_case_vectors): Likewise.
3421
3422 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3423
3424         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
3425         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
3426
3427 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
3428
3429         * alpha/va_list.h: New file.
3430         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
3431
3432 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
3433
3434         * NEWS: Add SCO Openserver and Unixware 7 notes.
3435
3436         * NEWS: Fix typos.
3437
3438 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
3439
3440         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
3441         (record_constant_1): Handle RANGE_EXPR.
3442
3443 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
3444
3445         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
3446         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
3447         and NOTE_INSN_RANGE_END specially.
3448         (reemit_notes): Likewise.
3449
3450 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3451
3452         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
3453         (ultrasparc_sched_init): Remove unneeded &.
3454
3455 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
3456
3457         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
3458         for m68020-60, to prevent the use of fintrz.
3459
3460 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
3461
3462         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
3463         even in stage1. 
3464         * Makefile.in: Likewise.
3465         * configure: Regenerated.
3466
3467 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
3468
3469         * configure.in (gxx_include_dir): Changed to
3470         '${prefix}/include/g++'-${libstdcxx_interface}.
3471         * configure: Rebuilt.
3472
3473 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
3474
3475         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
3476         consistent.
3477         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
3478         *sequences* *below* which scalar moves will be used.
3479
3480 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
3481
3482         * collect2.c (mktemp): Delete unused declaration.
3483
3484         * config/xm-netbsd.h: Remove unnecessary file.
3485         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
3486         file anymore, it is not needed.
3487
3488 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
3489
3490         * convert.c (convert_to_integer): Issue an error on conversions to
3491         incomplete types.
3492
3493 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
3494
3495         * Makefile.in: Add lang_tree_files and gencheck.h.
3496         * configure.in: Generate them.
3497         * gencheck.c: Include gencheck.h.
3498
3499 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3500
3501         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
3502         movdi_lo_sum_pic and movdi_high_pic and make visible.
3503         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
3504         emit these when Pmode is not SImode.
3505         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
3506
3507 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
3508
3509         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
3510         .linkonce directive after the first time.
3511
3512 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
3513
3514         * m68k.md (beq0_di): Generate correct (and more efficient) code when
3515         the clobbered operand overlaps with an input.
3516         (bne0_di): Similarly.
3517
3518         * Makefile.in (INSTALL): Remove "--no-header" argument.
3519
3520         * NEWS: Various updates.
3521
3522 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3523
3524         * config/sparc/sparc.c (arith_operand, const64_operand,
3525         const64_high_operand, arith_double_4096_operand): Mark mode as
3526         unused.
3527         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
3528         callers changed.
3529         (sparc_emit_set_const64): Remove unused variable i.
3530         (sparc_splitdi_legitimate): Likewise for addr_part.
3531         (ultra_code_from_mask): Likewise for mask.
3532         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
3533         reverse return values so it matches usage and comments.
3534         (ultra_flush_pipeline): Likewise.
3535         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
3536         this_type, and allow loads and stores of differing FP modes as
3537         they do not create a conflict.
3538         (ultra_find_type): Initialize fpmode to SFmode, fix
3539         parenthesization thinkos in large conditional.
3540         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
3541         Init free_slot_mask after ultra_cur_hist is reset, not before.
3542         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
3543         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
3544         use ultra_flush_pipeline instead, then re-init group pointer.
3545         Fix statement with no effect.  If no progress made in, and no
3546         instructions scheduled at all, advance to new pipeline cycle else
3547         we get into an endless loop.
3548         (ultrasparc_adjust_cost): Remove previous arg.
3549         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
3550         
3551 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
3552
3553         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
3554         code.  Use reg_overlap_mentioned_p to detect when source and
3555         destination overlap.
3556         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
3557
3558 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
3559
3560         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
3561         COMPARISON_VAL, into invariant_p.
3562
3563 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3564
3565         * regmove.c (regclass_compatible_p): New function.
3566         (regmove_optimize): Use it.
3567
3568         Use NREGS parameter insted of calling max_reg_num.
3569
3570         (fixup_match_1): Don't use code = MINUS when later tieing with
3571         a hard register is likely.
3572
3573 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3574
3575         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
3576         COMPARISON_VAL was normalized.
3577
3578 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
3579
3580         * loop.c (check_dbra_loop): The loop ending comparison value
3581         must be an invariant or we can not reverse the loop.
3582
3583         * loop.c (scan_loop): Count down from max_reg_num - 1 to
3584         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
3585         of the loop.
3586         (load_mems_and_recount_loop_regs_set): Likewise.
3587
3588         * i386.c (print_operand): Remove obsolete 'c' docs.
3589
3590 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
3591
3592         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
3593         * frame.c (init_object_mutex): New function.
3594         (init_object_mutex_once): Likewise.
3595         (find_fde): Call it.
3596         (__register_frame_info): Likewise.
3597         (__register_frame_info_table): Likewise.
3598         (__deregister_frame_info): Likewise.
3599
3600 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
3601
3602         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
3603
3604 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3605
3606         * loop.c (check_dbra_loop): Enable code for reversal
3607         of some loops without a known constant loop end.
3608
3609 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
3610
3611         * haifa-sched.c (last_clock_var): New.
3612         (schedule_block): Initialize it.
3613         (schedule_insn): Use it to fill insn modes with issue information.
3614
3615         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
3616         Tag trapb and next insn with TImode.
3617         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
3618         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
3619         Invoke alphaev5_align_insns as appropriate.
3620         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
3621         (MD_SCHED_VARIABLE_ISSUE): New.
3622         * alpha.md (attr type): Add multi.
3623         (define_asm_attributes): New.
3624         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
3625         (arg_home): Likewise.
3626         (fnop, unop, realign): New.
3627
3628 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
3629
3630         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
3631         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
3632
3633         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
3634         (rs6000-ibm-aix4.[12]*): Likewise.
3635         * configure: Regnerate.
3636
3637 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
3638
3639         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
3640         already contains the return address.
3641
3642 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
3643
3644         * calls.c (expand_call): Use bitfield instructions to extract/deposit
3645         word sized hunks when loading unaligned args into registers.
3646
3647         * haifa-sched.c (sched_analyze_insn): Only create scheduling
3648         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
3649
3650         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
3651
3652 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3653
3654         * loop.c (check_dbra_loop): Add some code that would allow reversal
3655         of some loops without a known constant loop end if it were enabled.
3656
3657 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
3658
3659         * mips.md (lshrsi3_internal2+2): Fix type-o.
3660
3661 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3662
3663         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
3664         correctly with regards to stdio.h.
3665         
3666         * calls.c: Remove stdarg.h/varargs.h.
3667         * cccp.c: Likewise.
3668         * cexp.y: Likewise.
3669         * combine.c: Likewise.
3670         * cpperror.c: Likewise.
3671         * cpplib.c: Likewise.
3672         * cpplib.h: Likewise.
3673         * doprint.c: Likewise.
3674         * emit-rtl.c: Likewise.
3675         * final.c: Likewise.
3676         * fix-header.c: Likewise.
3677         * gcc.c: Likewise.
3678         * genattr.c: Likewise.
3679         * genattrtab.c: Likewise.
3680         * gencodes.c: Likewise.
3681         * genconfig.c: Likewise.
3682         * genemit.c: Likewise.
3683         * genextract.c: Likewise.
3684         * genflags.c: Likewise.
3685         * genopinit.c: Likewise.
3686         * genoutput.c: Likewise.
3687         * genpeep.c: Likewise.
3688         * genrecog.c: Likewise.
3689         * mips-tfile.c: Likewise.
3690         * prefix.c: Likewise.
3691         * protoize.c: Likewise.
3692         * regmove.c: Likewise.
3693         * toplev.c: Likewise.
3694         * tree.c: Likewise.
3695
3696 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
3697
3698         * config/sparc/sparc.c (sparc_override_options): If not
3699         TARGET_FPU, turn off TARGET_VIS.
3700         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
3701         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
3702         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
3703         (movdi_insn_sp64): Add VIS fzero alternative.
3704         (clear_sf, clear_df): New VIS patterns.
3705         (movsf, movdf expanders): Allow fp_zero_operand flat out when
3706         TARGET_VIS.
3707         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
3708         
3709 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
3710
3711         * loop.c (n_times_set, n_times_used, may_not_optimize,
3712         reg_single_usage): Convert to varrays.  All uses changed.
3713         (insert_loop_mem): Return a value.
3714         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
3715         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
3716         necessary.
3717
3718 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
3719
3720         * From Alexandre:
3721         * configure.in: Do not set thread_file to "irix" since no such
3722         support exists yet.
3723
3724         * sparc.md (float abs/neg splits): Check reload_completed before
3725         calling alter_subreg.
3726
3727 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3728
3729         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
3730         function.
3731         * config/sparc/sparc.h: Declare it.
3732         * config/sparc/sparc.md (float abs/neg splits): Use it.
3733         (all other splits): Handle SUBREGs properly where necessary.
3734         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
3735
3736 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
3737
3738         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
3739         an insn on the unfilled_slots_list that has no delay slots.
3740         (fill_eager_delay_slots): Similarly.
3741
3742 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
3743
3744         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
3745         as an ordinary operand.
3746
3747 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
3748
3749         * tree.c (valid_machine_attribute): Don't apply attributes to both
3750         decl and type.
3751
3752 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
3753
3754         * reload.c (operands_match_p): Handle rtvecs.
3755
3756         * i386.c (legitimate_pic_address_disp_p): New.
3757         (legitimate_address_p): Use it.
3758         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
3759         Handle constant pool symbols just like statics.
3760         (emit_pic_move): Use Pmode not SImode for clarity.
3761         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
3762         [UNSPEC]: New, handling what we killed above.
3763         [PLUS]: Detect and abort on invalid symbol arithmetic.
3764         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
3765
3766 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
3767
3768         * alias.c: Include output.h.
3769         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
3770         different if we're in a varargs function.
3771         * Makefile.in (alias.o): Depend on output.h
3772         
3773 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3774
3775         * sh.h (GIV_SORT_CRITERION): Delete.
3776
3777 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
3778
3779         * regclass.c (regclass): Use xmalloc/free instead of alloca.
3780         * stupid.c (stupid_life_analysis): Ditto.
3781         * reload1.c (reload): Ditto.
3782
3783 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
3784
3785         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
3786         arith_double_4096_operand, arith_double_add_operand): New
3787         predicates.
3788         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
3789         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
3790         them to transform add/sub 4096 into add/sub -4096.
3791
3792 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3793
3794         * loop.c (scan_loop): Allocate some slop to handle pseudos
3795         generated by move_movables.
3796         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
3797         here too.
3798
3799 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
3800
3801         * tree.def (DECL_RESULT): Correct documentation.
3802
3803 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3804
3805         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
3806         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
3807         conflicts will all RELOAD_FOR_OUTPUT reloads.
3808
3809         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
3810         loads the function result, substitute with a USE.
3811
3812 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3813
3814         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
3815         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
3816         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
3817         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
3818         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
3819         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
3820         operand. 
3821         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
3822         'o' to 'm' for GPR variant constraints.
3823
3824 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
3825
3826         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
3827
3828         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
3829
3830         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
3831         when the source and destination overlap.
3832
3833         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
3834         clash with global type.
3835
3836 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
3837
3838         * fixinc.irix: Add curses.h handling from fixinc.wrap.
3839
3840         * c-common.c (combine_strings): Also set TREE_READONLY.
3841         Change warn_write_strings to flag_const_strings.
3842         * c-decl.c, c-tree.h: Likewise.
3843
3844 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3845
3846         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
3847         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
3848         sequence, use SET/IOR instead so CSE can see it.
3849         * config/sparc/sparc.md (movhi_const64_special,
3850         movsi_const64_special): New patterns necessitated by that change.
3851         (movhi_high): Remove.
3852         (movhi_lo_sum): Change to match an IOR.
3853         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
3854         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
3855         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
3856         (movdf splits): Allow when not V9 or when not ARCH64 and integer
3857         registers are involved.
3858         (snesi_zero_extend split): Remove reload_completed test.
3859         (unnamed plus and minus zero_extend sidi splits): Add it.
3860
3861 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
3862
3863         * extend.texi: Remove description of extension to explicit
3864         instantiation that is now endorsed by standard C++.
3865
3866 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3867
3868         * config/arc/arc.c (arc_initialize_pic): Remove.
3869         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
3870         nothing on any platform and is invoked by no-one, it does not even
3871         appear in the documentation.
3872         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
3873         * config/sparc/sparc.c (initialize_pic): Likewise.
3874         (find_addr_reg): Remove this as well, no longer referenced after
3875         my rewrite.
3876
3877 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
3878
3879         * recog.c (validate_replace_rtx_group): New function.
3880         * recog.h (validate_replace_rtx_group): Declare it.
3881         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
3882         the entire group of substitutions.
3883
3884 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
3885
3886         * loop.c (load_mems): Fix initializers.
3887
3888 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3889
3890         * config/sparc/sparc.md (TFmode splits): Handle destination
3891         registers being referenced in the address correctly.
3892
3893         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
3894         TREE_UNSIGNED, when bitsize of type's mode is larger than
3895         HOST_BITS_PER_WIDE_INT.
3896
3897 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
3898
3899         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
3900         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
3901         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
3902         macros.
3903         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
3904         EXIT_BLOCK_EXPR.
3905
3906 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
3907
3908         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
3909         * h8300.h (TINY_DATA_NAME_P): Likewise.
3910         (STRIP_NAME_ENCODING): Handle '&'.
3911
3912         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
3913         register (it could be accessed via an outer SUBREG).
3914         (REG_OK_FOR_BASE_P): Likewwise.
3915         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
3916
3917         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
3918         bogus rtl.
3919
3920         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
3921
3922 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
3923
3924         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
3925         must be offsettable so the splits can be made.
3926
3927 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
3928
3929         * config/i386/winnt.c: Include system.h, not stdio.h to get
3930         sys/param.h pulled in before rtl.h in case the system defines MIN
3931         and MAX.
3932
3933 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3934
3935         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
3936
3937 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
3938
3939         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
3940         arrays of bits.
3941         * cpplib.c (cpp_define): Handle macros with parameters.
3942
3943 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3944
3945         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
3946         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
3947         and DImode 64-bit.  Use llong for minimal-toc SFmode and
3948         SYMBOL_REF / LABEL_REF 64-bit.
3949         (output_function_profiler): Use llong for profiler label and ld to
3950         load 64-bit label address.
3951
3952 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
3953
3954         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
3955         OFFSET addressing.
3956
3957 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
3958
3959         * version.c: Bump for snapshot.
3960
3961 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
3962
3963         * version.c: Bump for snapshot.
3964
3965 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
3966
3967         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
3968
3969 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
3970
3971         * tm.texi (Misc): Fix typo "teh".
3972
3973         * tm.texi (PIC): Fix typo "PPIC".
3974
3975         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
3976         effect when -O2 and higher.
3977         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
3978
3979 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
3980
3981         * regclass.c: Changed register set documentation to be consistent
3982         with GCC behaviour.
3983
3984         * final.c (final_start_function) Removed redundant test for
3985         call_fixed_regs.
3986
3987 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
3988
3989         * rtl.h (rtx_function): New type.
3990         (for_each_rtx): New function.
3991         * rtlanal.c (for_each_rtx): Define it.
3992         
3993         * recog.c (change_t): New type.
3994         (change_objects, change_old_codes, change_locs, change_olds):
3995         Replace with ...
3996         (changes): New variable.
3997         (validate_change): Dynamically allocate room for more changes, if
3998         necessary.  Uses changes array instead of change_objects, etc.
3999         (apply_change_group):  Use changes array instead of
4000         change_objects, etc.
4001         
4002         * loop.c (loop_mem_info): New type.
4003         (loop_mems): New variable.
4004         (loop_mems_idx): Likewise.
4005         (looop_mems_allocated): Likewise.
4006         (scan_loop): Remove nregs parameter.
4007         (next_insn_in_loop): New function.
4008         (load_mems_and_recount_loop_regs_set): Likewise.
4009         (load_mems): Likewise.
4010         (insert_loop_mem): Likewise.
4011         (replace_loop_mem): Likewise.
4012         (replace_label): Likewise.
4013         (INSN_IN_RANGE_P): New macro.
4014         (loop_optimize): Don't pass max_reg_num() to scan_loop.
4015         (scan_loop): Remove nregs parameter, compute it after any new
4016         registers are created by load_mems.  Use INSN_IN_RANGE_P and
4017         next_insn_in_loop rather than expanding them inline.  Call
4018         load_mems to load memory into pseudos, if appropriate.
4019         (prescan_loop): Figure out whether or not there are jumps from the
4020         loop to targets other than the label immediately following the
4021         loop.  Call insert_loop_mem to notice all the MEMs used in the
4022         loop, if it could be safe to pull MEMs into REGs for the duration
4023         of the loop.
4024         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
4025
4026 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
4027
4028         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
4029
4030 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4031
4032         * config/sparc/sparc.c (finalize_pic): Check for the correct
4033         nonlocal_goto_receiver UNSPEC number.
4034         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
4035         making note of this dependency existing in sparc.c
4036         (negtf2_notv9 split): Give NEG SFmode.
4037         (negsf2): Fix insn output string.
4038         
4039 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
4040
4041         * c-common.c (decl_attributes): Issue an error if the argument
4042         to alias is not a string.
4043
4044 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
4045
4046         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
4047         pending memory flush list.
4048
4049         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
4050         notes.
4051         (try_combine): Allow combining insns with REG_LIBCALL notes.
4052
4053         * expr.c (emit_block_move): Do not call memcpy as a libcall
4054         instead build up a CALL_EXPR and call it like any other
4055         function.
4056         (clear_storage): Similarly for memset.
4057
4058         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
4059         on notes.
4060
4061         * Makefile.in (cplus-dem.o): Provide explicit rules for building
4062         cplus-dem.o
4063
4064         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
4065         and REG_LIVE_LENGTH as successful substitutions are made.
4066
4067 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4068
4069         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
4070         statement after end of loop label.
4071
4072 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4073
4074         * config/sparc/sparc.c (ultra_types_avail): New variable.
4075         (ultra_build_types_avail): New function to record mask of insn
4076         types in ready list at this cycle.
4077         (ultrasparc_sched_reorder): Call it.
4078         (ultra_find_type): Use it to quicken the search.  Also simplif
4079         dependency check, don't use rtx_equal_p because we know exactly
4080         what we are looking for.
4081
4082 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
4083
4084         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
4085         for architecture v4.
4086
4087 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4088
4089         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
4090         gen_compare_reg.
4091         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
4092         movdf_const_intreg and helper splits): New patterns to move float
4093         constants into integer registers.
4094         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
4095         splits.
4096
4097 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
4098
4099         * From Graham
4100         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
4101         to itype.
4102         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
4103
4104         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
4105         a BASE_REGS register is needed as an intermediate when copying
4106         a symbolic value into any register class other than BASE_REGS.
4107
4108         * expr.c (move_by_pieces): No longer static.  Remove prototype.
4109         * rtl.h (move_by_pieces): Add extern prototype.
4110         * mips.c (expand_block_move): Handle aligned straight line copy by
4111         calling move_by_pieces.
4112
4113         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
4114         and VAR_DECLs.
4115
4116 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
4117
4118         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
4119         jumps out of the loop to be treated as part of the exit test.
4120
4121 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4122                           Jeff Law <law@cygnus.com>
4123
4124         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
4125         * cplus-dem.c: Delete.
4126
4127         * Makefile.in (fold-const.o): depend on $(RTL_H).
4128
4129         * fold-const.c: Include rtl.h to get the prototype for
4130         `set_identifier_local_value'.
4131
4132         * loop.c (express_from_1): Remove unused variable `tmp'.
4133         (combine_givs): cast the first argument of bzero to char *.
4134
4135         * toplev.c (display_help): Remove unused variable `looking_for_start'.
4136
4137         * c-decl.c (init_decl_processing): Remove unneeded &.
4138
4139         * alpha.h (alpha_initialize_trampoline): Provide prototype.
4140         
4141         * except.c (set_exception_lang_code, set_exception_version_code):
4142         Change parameter from `short' to `int' to avoid using a gcc
4143         extension.
4144
4145         * except.h (set_exception_lang_code, set_exception_version_code):
4146         Likewise for prototypes.
4147
4148         * flow.c (count_reg_references): Remove unused variables `regno'
4149         and `i'.
4150
4151         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
4152
4153         * prefix.c (translate_name): Cast the result of `alloca'.
4154
4155         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
4156
4157 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
4158
4159         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
4160         Include "toplev.h".
4161         (valid_dbcc_comparison_p): Mark mode argument as unused.
4162         (symbolic_operand): Likewise.
4163         (legitimize_pic_address): Likewise.
4164         (const_uint32_operand): Likewise.
4165         (const_sint32_operand): Likewise.
4166         * sched.c [!INSN_SCHEDULING]: Define only dummy function
4167         schedule_insns and comment out rest of file.
4168
4169         * m68k.c (output_move_simode_const): Use subl to move a zero into an
4170         address register.
4171         (output_move_[hq]imode): Likewise.
4172
4173 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
4174
4175         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
4176         * invoke.texi: Corresponding changes.
4177
4178 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
4179
4180         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
4181
4182 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4183
4184         * config/sparc/sparc.c (ultra_code_from_mask,
4185         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
4186         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
4187         ultrasparc_sched_init, ultrasparc_variable_issue,
4188         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
4189         functions to describe UltraSPARC pipeline exactly to Haifa.
4190         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
4191         as there is nothing the scheduler can do about it.  Indicate that
4192         REG_DEP_OUTPUT's collide.  Fixup formatting.
4193         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
4194         divide costs on Ultra for DImode.
4195         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
4196         Define.
4197         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
4198         ieuN and add call_no_delay_slot to type list.
4199         (cti function unit): New unit for branches on UltraSPARC.
4200         (subx/addx insns): Set type to misc.
4201         (sidi zero/sign extension insns on arch64): Set type to shift.
4202         (sign_extendhidi2_insn): Set type to sload.
4203
4204 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4205
4206         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
4207         (output_epilog): Use if != 0 for offset.
4208         (rs6000_fatal_bad_address): Prepare for Intl.
4209         * rs6000.h (rs6000_fatal_bad_address): Declare.
4210         * rs6000.md (movsfcc, movdfcc): Use else if.
4211         (elf_high): Use {liu|lis}.
4212         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
4213         (movsi): Use rs6000_fatal_bad_address.
4214         
4215 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
4216
4217         * reload.c (find_equiv_reg): Reject equivalences separated
4218         by a volatile instruction.
4219
4220 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 
4221
4222         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
4223
4224 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
4225
4226         * alpha.md (movsicc): Fix mode mismatch.
4227
4228 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
4229
4230         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
4231         return type.
4232         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
4233
4234 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4235
4236         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
4237         write-only modifier from operand 1 constraint.
4238
4239 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4240
4241         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
4242         emitting a XOR of -1 at the end, emit a NOT instead for combine's
4243         sake.
4244         (sparc_emit_set_const64): Likewise, also when computing trailing
4245         bits do not negate low_bits and make fast_int an int.
4246
4247 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
4248
4249         * loop.c (add_label_notes): Do not ignore references to labels
4250         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
4251         * gcse.c (add_label_notes): Similarly.
4252
4253         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
4254
4255         * m68k.md (adddi_dilshr32): One of the operands must be a register.
4256         (adddi_dishl32): Similarly.
4257
4258 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
4259
4260         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
4261         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
4262         * cse.c (cse_basic_block): Add parens to shut up warnings.
4263
4264 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4265
4266         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
4267         sparc_emit_set_const64_longway, const64_is_2insns,
4268         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
4269         in 64-bit constant formation.
4270         * config/sparc/sparc.md (snesi_zero_extend split): Generate
4271         rtl for addx not subx.
4272         (define_insn movdi_const64_special): Make available even when
4273         HOST_BITS_PER_WIDE_INT is not 64.
4274         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
4275         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
4276         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
4277         instances of operand 1 inside a QI subreg.
4278         (xordi3_sp64_dbl): Remove '%' constraint for op1.
4279         (one_cmpldi2_sp64): Fix output string.
4280         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
4281         alternative case.
4282         (unnamed arch64 ashift DI): Truncate shift count if greater than
4283         63, not 31.
4284
4285 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4286
4287         * expr.c (store_expr): Don't optimize away load-store pair
4288         when either source or destination have a side effect.
4289
4290 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
4291
4292         * genrecog.c (add_to_sequence): Fatal error if the modes of the
4293         operands of SET are incompatible.
4294
4295         * alpha.md: Fix max and min patterns so modes of SET operands match.
4296
4297 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
4298
4299         * configure.in: Avoid [[ by using test and changequote.
4300         * configure: Rebuild.
4301
4302 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4303
4304         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
4305
4306         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
4307         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
4308         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
4309         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
4310         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
4311         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
4312         Fix mismatching modes in SET operands.
4313         (conditional move patterns): Fix formatting.
4314         (unnamed subx arch64 pattern): Remove duplicate insn.
4315         
4316 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4317
4318         * config/sparc/sparc.c (const64_operand, const64_high_operand):
4319         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
4320         (input_operand): Fixup test for what we accept for constant
4321         integers.
4322         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
4323         set VOIDmode.
4324         (safe_constDI): Remove.
4325         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
4326         gen_safe_XOR64): New functions.
4327         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
4328         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
4329         them.
4330         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
4331         available when HOST_BITS_PER_WIDE_INT is not 64.
4332         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
4333         move before movdi_insn_sp64 pattern.
4334         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
4335         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
4336         symbolic_operand as predicate for second operand.
4337         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
4338         expander): Give set VOIDmode.
4339         
4340 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
4341
4342         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
4343
4344 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
4345
4346         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
4347
4348 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
4349
4350         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
4351         point.
4352         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
4353
4354 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
4355
4356         * install.texi: Various SCO OpenServer tweaks.
4357
4358 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
4359
4360         * reload1.c (eliminate_regs_in_insn): Handle another case when
4361         eliminating the frame pointer to the hard frame pointer.  Add
4362         missing ep->to_rtx check to one existing case.
4363
4364         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
4365
4366 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
4367
4368         * tree.h: De-conditionalize init_priority code.
4369
4370         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
4371         * collect2.c (NM_FLAGS): Change from -p to -n.
4372
4373         * configure.in: Turn on collect2 for mipstx39-elf.
4374         Handle use_collect2=no properly.
4375
4376         * c-common.c: De-conditionalize init_priority code.
4377         * collect2.c (extract_init_priority, sort_ids): New fns.
4378         (main): Call sort_ids.
4379         Move sequence_number to file scope.
4380
4381         * configure.in: Handle --enable-init-priority.
4382         * c-common.c (attrs): Add A_INIT_PRIORITY.
4383         (init_attributes, decl_attributes): Likewise.
4384         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
4385         * tree.c (get_file_function_name_long): Split out...
4386         (get_file_function_name): ...from here.
4387
4388 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
4389
4390         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
4391         accessing nodes.
4392
4393 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
4394
4395         * toplev.c (display_help): Add braces to shut up warnings.
4396         * tree.c (simple_cst_equal): Likewise.
4397
4398         * fold-const.c (non_lvalue): Don't deal with null pointer 
4399         constants here.
4400         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
4401
4402         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
4403         of any size to a pointer.
4404
4405 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
4406
4407         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
4408
4409 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
4410
4411         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
4412         which will be saved.
4413         * mn10300.md (prologue insn): Only save registers which need saving.
4414         (epilogue insn): Similarly.
4415
4416         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
4417         optimizations.
4418
4419 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
4420
4421         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
4422         VAR_DECL's in gp addressable sections.
4423
4424 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
4425
4426         * sparc.c: Change return <exp> to <exp>; return; in functions
4427         returning void.
4428         * sparc.md: Add empty semicolon statement after final label in
4429         move expanders.
4430
4431 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4432
4433         * config/sparc/sparc.md (define_insn addx_extend): Rename to
4434         addx_extend_sp64, only allow when TARGET_ARCH64.
4435         (define_insn addx_extend_sp32 and split): Version that works when
4436         not TARGET_ARCH64.
4437         (define_insn subx_extend): Likewise.
4438         (define_split adddi3 and subdi3 with zero extension): Fixup and
4439         correct bugs when not TARGET_ARCH64.
4440
4441 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
4442
4443         * except.c (set_exception_lang_code, set_exception_version_code):
4444         Use prototype-style definition if __STDC__, to match declaration
4445         in except.h.
4446
4447         * genemit.c: Change FAIL and DONE macros not to use loops.
4448
4449 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
4450
4451         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
4452         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
4453
4454         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
4455
4456 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
4457
4458         * README.g77: Update from Craig.
4459
4460 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4461
4462         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
4463         type HOST_WIDE_INT.
4464         (safe_constDI sparc_emit_set_const64_quick1,
4465         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
4466         analyze_64bit_constant, const64_is_2insns,
4467         create_simple_focus_bits): Fix some bugs when compiled on real
4468         64-bit hosts.
4469         (function_arg_record_value_3, function_arg_record_value_2,
4470         function_arg_record_value): Add fully prototyped forward decls.
4471         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
4472         to cmpsi_insn and use on both 64 and 32 bit targets.
4473         (define_insn cmpsi_insn_sp64): Remove.
4474         (define_expand zero_extendsidi2): Allow for 32-bit target too.
4475         (define_insn zero_extendsidi2_insn): Rename to
4476         zero_extendsidi2_insn_sp64.
4477         (define_insn zero_extendsidi2_insn_sp32): New pattern and
4478         assosciated forced split for it.
4479
4480         * config/sparc/sparc.c (const64_operand, const64_high_operand):
4481         New predicates.
4482         * config/sparc/sparc.h: Declare them.
4483         (PREDICATE_CODES): Add them.
4484         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
4485         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
4486
4487 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
4488
4489         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
4490         in v9 case as the latter makes the Solaris assembler crash.
4491
4492 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4493
4494         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
4495         for TFmode when !v9.  We require offsettable memory addresses.
4496         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
4497         DFmode register number conversions.
4498         * config/sparc/sparc.md (define_split DFmode moves): If register
4499         is a SUBREG do alter_subreg on it before using.
4500         (define_expand movtf): Fixup comment about alignment on v9.
4501         (define_split TFmode moves): Don't use gen_{high,low}part, create
4502         explicit SUBREGs instead.
4503
4504 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
4505
4506         * Makefile.in (mbchar.o): Depend on mbchar.c.
4507
4508 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4509                           Richard Henderson  <rth@cygnus.com>
4510         
4511         Rewrite Sparc backend for better code generation and
4512         improved sparc64 support.
4513         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
4514         zero.
4515         * config/sparc/sysv4.h: Likewise.
4516         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
4517         move_operand, v8plus_regcmp_op, emit_move_sequence,
4518         singlemove_string, doublemove_string, mem_aligned_8,
4519         output_move_double, output_move_quad, output_fp_move_double,
4520         move_quad_direction, output_fp_move_quad, output_scc_insn):
4521         Remove.
4522         (small_int_or_double): New predicate.
4523         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
4524         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
4525         old pic_{sethi,lo_sum}_si patterns.
4526         (mem_min_alignment): New generic function to replace
4527         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
4528         available and can test for arbitrary alignments.  All callers
4529         changed.
4530         (save_regs, restore_regs, build_big_number,
4531         output_function_prologue, output_cbranch, output_return,
4532         sparc_flat_save_restore, sparc_flat_output_function_prologue,
4533         sparc_flat_output_function_epilogue): Prettify
4534         insn output.
4535         (output_function_epilogue): Likewise and add code to output
4536         deferred case vectors.
4537         (output_v9branch): Likewise, add new arg INSN and use it to tack
4538         on branch prediction settings.  All callers changed.
4539         (print_operand): Likewise and output %l44 for LO_SUMs when
4540         TARGET_CM_MEDMID.
4541         (sparc_splitdi_legitimate): New function to make sure DImode
4542         splits can be run properly when !arch64.
4543         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
4544         Reformat example code in comments.
4545         (set_extends): Remove UNSPEC/v8plus_clear_high case.
4546         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
4547         of deferred case vectors we need to output.
4548         (sparc_defer_case_vector): Record a case vector.
4549         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
4550         sparc_output_deferred_case_vectors): New functions to output them.
4551         (sparc_emit_set_const32): New function to form 32-bit constants in
4552         registers when that requires more than one instruction.
4553         (safe_constDI, sparc_emit_set_const64_quick1,
4554         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
4555         analyze_64bit_constant, const64_is_2insns,
4556         create_simple_focus_bits, sparc_emit_set_const64): New functions
4557         which do the same for 64-bit constants when arch64.
4558         (sparc_emit_set_symbolic_const64): New function to emit address
4559         loading for all code models on v9.
4560         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
4561         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
4562         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
4563         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
4564         inaccuracies in comments, add symbolic and text_segment operands
4565         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
4566         GENERAL_REGS in these cases as a temp REG is needed to load these
4567         addresses into a register properly.
4568         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
4569         is no longer used.
4570         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
4571         quads are guarenteed to have 16-byte alignment.
4572         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
4573         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
4574         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
4575         deferred case vector implementation.
4576         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
4577         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
4578         Generate "internal label - label" instead of "label - 1b".
4579         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
4580         (PREDICATE_CODES): Remove sparc_operand, move_operand,
4581         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
4582         zero_operand.
4583         (doublemove_string, output_block_move, output_fp_move_double,
4584         output_fp_move_quad, output_move_double, output_move_quad,
4585         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
4586         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
4587         (sparc_emit_set_const32, sparc_emit_set_const64,
4588         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
4589         mem_min_alignment, small_int_or_double): Add externs.
4590         * config/sparc/sparc.md: Document the many uses of UNSPEC and
4591         UNSPEC_VOLATILE in this backend.
4592         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
4593         unary to types which execute in it.
4594         (define_function_unit ieu_shift): Rename to ieu0.
4595         (define_function_unit ieu1): New, executes compare, call, and
4596         uncond_branch type insns.
4597         (define_function_units for type fdivs, fdivd, fsqrt): These
4598         execute in the fpu multiply unit not the adder on UltraSparc.
4599         (define_expand cmpdi): Disallow TARGET_V8PLUS.
4600         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
4601         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
4602         allows the arith_double_operand predicate and rHI constraint when
4603         TARGET_ARCH64.
4604         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
4605         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
4606         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
4607         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
4608         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
4609         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
4610         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
4611         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
4612         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
4613         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
4614         sign_extendqihi2_insn, sign_extendqisi2_insn,
4615         sign_extendqidi2_insn, sign_extendhidi2_insn,
4616         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
4617         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
4618         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
4619         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
4620         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
4621         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
4622         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
4623         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
4624         smulsi3_highpart_v8plus, unnamed subreg mult,
4625         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
4626         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
4627         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
4628         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
4629         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
4630         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
4631         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
4632         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
4633         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
4634         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
4635         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
4636         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
4637         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
4638         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
4639         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
4640         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
4641         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
4642         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
4643         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
4644         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
4645         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
4646         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
4647         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
4648         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
4649         call_address_untyped_struct_value_sp32,
4650         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
4651         call_value_symbolic_sp32, call_value_address_sp64,
4652         call_value_symbolic_sp64, branch_sp32, branch_sp64,
4653         flush_register_windows, goto_handler_and_restore,
4654         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
4655         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
4656         return_addsi, return_di, return_adddi, return_sf, all call+jump
4657         peepholes, trap, unnamed trap insns): Prettify output strings.
4658         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
4659         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
4660         Likewise and force + implement splits for integer cases.
4661         (define_insn return_sf_no_fpu): Likewise and allow to match when
4662         no-fpu because of our subreg SFmode splits.
4663         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
4664         zero_extendqidi2_insn, zero_extendhidi2_insn,
4665         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
4666         input_operand for second operand.
4667         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
4668         reg_or_0_operand for operand 2 so new splits can use it.
4669         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
4670         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
4671         too.
4672         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
4673         CONST_DOUBLEs for operand 2.
4674         (define_insn move_label_di): Likewise and label distance
4675         optimization because it no longer works with new deferred case
4676         vector scheme.  To be revisited.
4677         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
4678         and allow reg_or_0_operand and J constraint for second operand.
4679         (define_insn jump): Set branch predict taken on V9.
4680         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
4681         new deferred case vector scheme.
4682         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
4683         (define_insn negdi2_sp32): Force + implement splits.
4684         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
4685         one_cmplsi2_not_liveg0 respectively, and create expander of original
4686         names which emit special rtl for TARGET_LIVE_G0.
4687         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
4688         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
4689         gen_compare_reg, FAIL instead.
4690         (define_insn sgtu, sleu): Likewise and check gen_s*() return
4691         values when trying to reverse condition codes, if they FAIL then
4692         do likewise.
4693         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
4694         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
4695         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
4696         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
4697         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
4698         set output string to # to indicate they are mandatory splits.
4699         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
4700         pic_sethi_di, move_pic_label_si): Remove.
4701         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
4702         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
4703         place.
4704         (define_expand movsi_pic_label_ref, define_insn
4705         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
4706         expander and insns to handle PIC label references and deferred
4707         case vectors.
4708         (define_insn get_pc_via_rdpc): Comment out as it is no longer
4709         used.
4710         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
4711         Rewrite to not use emit_move_sequence, make use of new constant
4712         formation code, and new splits for all multi-insn cases.
4713         (define_insn movqi_insn): Remove sethi case, it can never happen.
4714         Use reg_or_zero_operand instead of const0_rtx explicit test,
4715         use input_operand instead of move_operand for source, and use
4716         general_operand now for dest.
4717         (define_insn movhi_insn): Similar but leave sethi case.
4718         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
4719         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
4720         movhi_lo_sum respectively, prettify output string.
4721         (define_insn movsi_zero_liveg0): New pattern to put zero into a
4722         register when needed on TARGET_LIVE_G0.
4723         (define_insn movsi_insn): Use general_operand and input_operand
4724         for dest and src respectively.  Simplify applicability test.
4725         Prettify output strings, and add clr alternative for J
4726         constraint.
4727         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
4728         deprecated std and reg-reg DI moves): Remove and...
4729         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
4730         implementation which uses forced splits for all non-single insn
4731         cases.
4732         (define_split DI move cases on !arch64): New splits to handle all
4733         situations of 64-bit double register DImode on 32bit, and
4734         unaligned registers and memory addresses for all subtargets.
4735         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
4736         Remove.
4737         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
4738         input_operand for dest and src respectively, prettify output
4739         strings.
4740         (define_insn movdf_insn, movdf_no_e_insn, store_df,
4741         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
4742         and...
4743         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
4744         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
4745         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
4746         movtf_no_e_insn_sp64) Replace with new
4747         implementation which uses forced splits for all non-single insn
4748         cases.
4749         (define_split DF move cases): New splits in similar vein to DI
4750         move counterparts.
4751         (define_insn sethi_di_medlow, sethi_di_medium_pic,
4752         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
4753         movdi_sp64_insn): Remove old v9 code model and constant loading
4754         support insns and..
4755         (define_insn pic_lo_sum_di, pic_sethi_di,
4756         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
4757         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
4758         embmedany_sethi, embmedany_losum, embmedany_brsum,
4759         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
4760         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
4761         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
4762         scheme, using unspecs, secondary reloads, and one to one sparc
4763         insn to rtl insn mapping for better scheduling and code gen.
4764         (define_expand reload_indi, reload_outdi): Reload helpers for
4765         MEDANY and EMBMEDANY symbol address loading cases which require a
4766         temporary register.
4767         (define_expand movsicc): Remove v8plus_regcmp cases.
4768         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
4769         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
4770         cmp_diqi_trunc_set): New patterns used by some of the new scc
4771         splits on arch64.
4772         (define_insn xordi3_sp64_dbl): New pattern used for constant
4773         formation when crossing from 32-bit targets.
4774         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
4775         split): Remove.
4776         (define_insn addx, subx): Make visible and prettify.
4777         (define_insn adddi3_insn_sp32): Likewise and force split.
4778         (define_insn addx_extend, subx_extend, unnamed): New patterns for
4779         64bit scc split usage.
4780         (define_insn unnamed plusDI zero_extend, unnamed minusDI
4781         zero_extend, subdi3): Force and implement splits.
4782         
4783         * final.c (final_scan_insn): Don't output labels if target
4784         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
4785         instead.
4786         
4787         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
4788         don't forget to walk inside SEQUENCESs too as these are what the
4789         delay slot scheduler will create.
4790         
4791 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
4792
4793         * alpha.md (extxl+1,+2): New patterns to work around
4794         combine lossage.
4795
4796 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
4797
4798         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
4799         caused bad assembly code to be generated.
4800
4801 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
4802
4803         * netbsd.h: Fix typo.
4804
4805 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
4806
4807         * config.sub: Fix typo.
4808
4809 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
4810
4811         * invoke.texi (Environment Variables): Typo: Change "ascpects"
4812         into "aspects".
4813         (Running Protoize): Typo: Change "ther" into "other".
4814
4815 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
4816
4817         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
4818         * m68k/netbsd.h: Likewise.
4819         * ns32k/netbsd.h: Likewise.
4820         * sparc/netbsd.h: Likewise.
4821
4822 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
4823
4824         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
4825         * ginclude/va-clipper.h (va_list): Likewise.
4826
4827 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
4828
4829         * rs6000.c (rs6000_override_options): If big endian and -Os, use
4830         load/store multiple instructions unless user overrides.
4831
4832 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
4833
4834         * ns32k/netbsd.h: Fix typo.
4835
4836 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
4837
4838         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
4839         labels with .debugsym if no parallel insns.
4840
4841 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
4842
4843         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
4844         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
4845
4846 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4847
4848         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
4849         (AR_FOR_TARGET): Define.
4850
4851 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
4852
4853         * dyn-string.h: New file.
4854         * dyn-string.c: Likewise.
4855         * Makefile.in (OBJS): Add dyn-string.o.
4856         (dwarf2out.o): Add dyn-string.h dependency.
4857         (dyn-string.o): List dependencies.
4858         * dwarf2out.c: Include dyn-string.h.
4859         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
4860         (addr_const_to_string): Take a dyn_string_t, not a char* as a
4861         prototype.  Use dyn_string_append rather than strcat, throughout.
4862         (addr_to_string): Use dyn_string_t.
4863
4864 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
4865
4866         Function entry/exit profiling instrumentation:
4867         * expr.h (profile_function_entry_libfunc,
4868         profile_function_exit_libfunc): Declare new variables.
4869         * optabs.c: Define them here.
4870         (init_optabs): Initialize them.
4871         * tree.h (struct tree_decl): New flag
4872         no_instrument_function_entry_exit.
4873         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
4874         * c-decl.c (duplicate_decls): Merge it.
4875         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
4876         (init_attributes): Use it for "no_instrument_function".
4877         (decl_attributes): Handle it, for functions that have not yet been
4878         compiled.  Set decl flag.
4879         * flags.h (flag_instrument_function_entry_exit): Declare new
4880         variable.
4881         * toplev.c (flag_instrument_function_entry_exit): Define it here.
4882         (f_options): New option "instrument-functions".
4883         * function.h (struct function): New field instrument_entry_exit.
4884         * function.c (current_function_instrument_entry_exit): New
4885         variable.
4886         (push_function_context_to, pop_function_context_from): Save and
4887         restore.
4888         (expand_function_start): Set current_ variable, maybe emit return
4889         label and entry profile call.
4890         (expand_function_end): Maybe emit exit profile call.
4891
4892 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
4893
4894         * i386.md (movqi): When optimizing a load of (const_int 1) into a
4895         NON_QI_REG_P, pretend the register is SImode.
4896
4897 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
4898
4899         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
4900         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
4901         manufacturer id for ns32k.
4902         * configure: Regenerated.
4903         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
4904         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
4905         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
4906         * config/m68k/netbsd.h: Same.
4907         * config/ns32k/netbsd.h: Same.
4908         * config/sparc/netbsd.h: Same.
4909
4910 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
4911
4912         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
4913         or UNROLL_COMPLETELY loop that starts with a jump to its
4914         exit code.
4915
4916 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4917
4918         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
4919         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
4920         (print_operand, case 'B'): Don't fall through.
4921         (print_operand, case 'S'): Correct mask begin/end computation.
4922         Use HOST_BITS_PER_WIDE_INT.
4923         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
4924         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
4925         * rs6000/aix41.h (CPP_PREDEFINES): Same.
4926         * rs6000/aix43.h (CPP_PREDEFINES): Same.
4927
4928 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
4929
4930         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
4931         constraint from second alternative.
4932
4933 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
4934
4935         * configure.in: Fix --without/--disable cases for local-prefix, 
4936         gxx-include-dir and checking.
4937
4938 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
4939
4940         * configure.in (enable_haifa): Set by default for sparc64 too.
4941         configure: Rebuilt.
4942
4943 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
4944
4945         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
4946         * i386/winnt.c (associated_type): New fn.
4947         (i386_pe_valid_type_attribute_p): New fn.
4948         (i386_pe_check_vtable_importexport): Remove.
4949         (i386_pe_dllexport_p): Use associated_type.
4950         (i386_pe_dllimport_p): Likewise.
4951
4952         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
4953         * i386.c (i386_valid_type_attribute_p): Also accept
4954         attributes for METHOD_TYPEs.
4955
4956 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
4957
4958         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
4959
4960 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
4961
4962         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
4963
4964         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
4965         them from generating a new base name for each occurence of
4966         a specific suffix.
4967
4968 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
4969
4970         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
4971         SUBREG, MEM.
4972         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
4973
4974
4975
4976         * cplus-dem.c (type_kind_t): New type.
4977         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
4978         on this paramter, rather than demangling the type again.
4979         (demangle_integral_value): Pass tk_integral.
4980         (demangle_template_: Pass the value returned from do_type.
4981         (do_type): Return a type_kind_t.  Pass tk_integral to
4982         demangle_template_value_parm for array bounds.
4983         (demangle_fund_type): Likewise.
4984         
4985 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
4986
4987         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
4988         identical.
4989
4990 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
4991
4992         * pa.c (move_operand): Accept CONSTANT_P_RTX.
4993
4994 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
4995
4996         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
4997
4998         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
4999         index conversion.
5000
5001 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
5002
5003         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
5004         (DEBUGGER_ARG_OFFSET): Likewise.
5005
5006         * mn10300.md (movsf): Remove last change.  Not needed.
5007
5008 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
5009
5010         * c-lex.c (yylex): Fix boundary conditions in character literal and
5011         string literal loops.
5012
5013 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
5014
5015         * longlong.h (count_leading_zeros): Sparclite scan instruction was
5016         being invoked incorrectly.
5017
5018         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
5019         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
5020         Add -pg support. 
5021         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
5022         * configure.in: Added i[34567]86-*-win32
5023         * config.sub: Ditto.
5024         * configure: Rebuilt.
5025         
5026 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
5027
5028         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
5029         the frame pointer and compiling PIC code and reload has not completed.
5030
5031         * i386.c (output_to_reg): Add code to emulate non-popping DImode
5032         case.
5033
5034 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
5035
5036         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
5037
5038 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5039
5040         * Makefile.in (install-info): Only try to update the info
5041         directory file if it exists in the first place.
5042
5043 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
5044
5045         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
5046
5047 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
5048
5049         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
5050         CONST_DOUBLE source.
5051
5052 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
5053
5054         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
5055         strings as the insertion of USER_LABEL_PREFIX.
5056         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
5057         valid code.
5058         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
5059         calls. 
5060
5061 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
5062
5063         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
5064         already defined type.
5065
5066 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
5067
5068         * expr.c (check_max_integer_computation_mode): Allow conversions
5069         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
5070         (expand_expr): Likewise.
5071
5072 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
5073
5074         * expr.c (expand_expr): Expand RETURN_EXPR.
5075
5076 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
5077
5078         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
5079
5080 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
5081
5082         * dwarf2out.c (output_aranges):  Call stripattributes
5083         for TEXT_SECTION references.
5084         (output_line_info): Likewise.
5085
5086 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5087
5088         * profile.c (branch_prob): Call allocate_reg_info after outputting
5089         profile rtl in instrument_arcs.
5090
5091 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
5092
5093         * fixinc.irix (math.h): Install wrapper instead of copying.
5094
5095 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
5096
5097         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
5098         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
5099         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
5100         lang_flag_0. Added documentation in the flag table.
5101
5102 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
5103
5104         * cccp.c (do_include): Fix vax c style include handling.
5105
5106 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
5107
5108         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
5109
5110 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
5111
5112         * fold-const.c (non_lvalue): Don't deal with null pointer 
5113         constants here.
5114         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
5115
5116 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5117
5118         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
5119         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
5120         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
5121         (u_short_cint_operand): Same.
5122         (reg_or_cint_operand): Same.
5123         (logical_operand): Same.
5124         (input_operand): Same.
5125         (reg_or_short_operand): Use u_short_cint_operand.
5126
5127 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
5128
5129         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
5130         but keep the insns and splits.  Adjust so when the ultimate destination
5131         is memory, use cvtql.
5132
5133 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
5134
5135         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
5136
5137 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
5138
5139         * gcc.c (do_spec): Call "error" not "warning".
5140
5141         * configure.in: Fix minor problems with gas feature detection code.
5142         * configure: Rebuilt.
5143
5144         * gcc.c (do_spec): Issue a warning for '%[]' usage.
5145
5146         * Undo this change.
5147         * gcc.c: Delete %[spec] support.
5148         (do_spec_1, case '('): Likewise.
5149         (do_spec_1, case '['): Call error.
5150
5151 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
5152
5153         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
5154         (CPP_SUBTARGET_SPEC): Default to empty string.
5155         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
5156         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
5157         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
5158         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
5159         (LIB_SPEC): Tidy.
5160         * alpha/linux.h (CPP_PREDEFINES): Tidy.
5161         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
5162         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
5163         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
5164         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
5165         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
5166         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
5167         * alpha/vxworks.h: Likewise.
5168
5169 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
5170
5171         * mips.md (reload_outsi): Added missing REGNO call.
5172         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
5173         function pointer.
5174         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
5175         another match_operator and compare the codes.
5176
5177         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
5178
5179         * MIPS multiply pattern fixes:
5180         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
5181         Add union classes for HI, LO, or HILO plus general registers.
5182         (GENERATE_MADD): Deleted.
5183         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
5184         Add TARGET_MAD to condition.
5185         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
5186         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
5187         "*d" for accumulator, to give preference to LO initially but not
5188         during reload.
5189
5190 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
5191
5192         * configure.in (enable_c_mbchar): New configure option.
5193         (extra_cpp_objs): Always available now.
5194
5195         * cexp.y (mbchar.h): #include it.
5196         (yylex): Handle Multibyte characters in character literals.
5197
5198         * cccp.c (mbchar.h): #include it.
5199         (main): Set character set based on LANG environment variable.
5200         (rescan): Handle multibyte characters in comments.
5201         (skip_if_group): See above.
5202         (validate_else): See above.
5203         (skip_to_end_of_comment): See above.
5204         (macarg1): See above.
5205         (discard_comments): See above.
5206         (rescan): Handle multibyte characters in string and character literals.
5207         (collect_expansion): See above.
5208         (skip_quoted_string): See above.
5209         (macroexpand): See above.
5210         (macarg1): See above.
5211         (discard_comments): See above.
5212         (change_newlines): See above.
5213
5214         * c-lex.c (mbchar.h): #include it.
5215         (GET_ENVIRONMENT): New macro.
5216         (init_lex): Set character set based on LANG environment variable.
5217         (yylex): Handle multibyte characters in character literals.
5218         (yylex): Handle multibyte characters in string literals.
5219
5220         * Makefile.in (mbchar.o): New target.
5221         (cccp$(exeext)): @extra_cpp_objs@ is always available.
5222         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
5223
5224         * mbchar.[ch]: New files for multibyte character handling.
5225
5226 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5227
5228         * jump.c (jump_optimize): When simplifying noop moves and
5229         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
5230         the PUSHes to rewrite in second loop as we did in the first.
5231
5232 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5233
5234         * cplus-dem.c (demangle_nested_args): Make function definition
5235         static to match the prototype.
5236
5237 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
5238
5239         * alloca.c: Respect USE_C_ALLOCA.
5240         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
5241         * gengenrtl.c (xmalloc): Likewise.
5242
5243 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
5244
5245         * loop.h (struct induction): Add no_const_addval.
5246         * loop.c (the_movables, reg_address_cost): New variables.
5247         (init_loop): Init reg_address_cost.
5248         (loop_optimize): Call end_alias_analysis.
5249         (scan_loop): Init the_movables.
5250         (record_giv): Init induction->no_const_addval.
5251         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
5252         [REG]: Rearrange loop search test to catch more cases.
5253         (general_induction_var): Return success not benefit; take an extra
5254         argument for that.  Change all callers.
5255         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
5256         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
5257         [default]: Search the_movables for additional combinations.
5258         (sge_plus_constant, sge_plus): New functions.
5259         (express_from_1): New function.
5260         (express_from): Always define.  Rewrite using express_from_1.
5261         (combine_givs_p): Handle more cases.  Ignore address cost.
5262         (cmp_combine_givs_stats): New function.
5263         (combine_givs_used_once, combine_givs_benefit_from): New functions.
5264         (combine_givs): Rewrite to do best-fit combination.
5265
5266         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
5267         (fold): Do a complete (A*C)+(B*C) association check.
5268
5269 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
5270
5271         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
5272
5273 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
5274
5275         * mn10300.c (MODES_TIEABLE_P): Fix typo.
5276
5277 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
5278
5279         * tree.c (valid_machine_attribute): Only create a new type variant if
5280         there is a decl to use it.
5281
5282 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
5283
5284         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
5285         a suffix.
5286
5287 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
5288
5289         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
5290         be deleted" 
5291
5292 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
5293
5294         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
5295         Simplify tests for clearing an address register.
5296         (expand_prologue): Corresponding changes.
5297
5298         * mn10300.md (movXX patterns): Make sure the destination is an
5299         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
5300         (logical patterns): Split into expanders + patterns
5301         (zero and sign extension patterns): Similarly.
5302         (shift patterns): Similarly.
5303
5304 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
5305
5306         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
5307         for the sequence, recording base values.
5308
5309 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
5310
5311         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
5312
5313 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
5314
5315         * gcc.c: Remove ANSI-C ism from --help code.
5316
5317         * toplev.c: Support --help with USE_CPPLIB.
5318
5319 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
5320
5321         * configure.in: Rework gas feature code to work with symlink based
5322         source trees.
5323
5324         * extend.texi: Clarify some issues related to local variables
5325         assigned to explicit registers.
5326
5327         * mn10300.md (mulsi): Turn into expander + pattern.
5328
5329         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
5330         alternative.
5331
5332 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
5333
5334         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
5335
5336 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
5337
5338         * version.c: Bump again to distinguish mainline tree from the
5339         egcs-1.1 branch.
5340
5341 See ChangeLog.0 for earlier changes.
5342
5343 Local Variables:
5344 add-log-time-format: current-time-string
5345 End: