]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
575726005ca788e795e7f67875818a8f76f2dfc0
[gcc.git] / gcc / ChangeLog
1 2000-12-05 Joseph S. Myers <jsm28@cam.ac.uk>
2
3 * invoke.texi: Add support for using texi2pod.pl. Don't use
4 @multitable.
5
6 2000-12-04 Nick Clifton <nickc@redhat.com>
7
8 * config/arm/arm.c (arm_override_options): Test 'insn_flags' not
9 'tune_flags' for XScale nature.
10 Remove spurious test of HARD_FLOAT and XScale flags.
11
12 * config/arm/arm.md (umulsidi3adddi): Restore "=&r" register
13 contraint, accidentally changed during XScale contribution.
14
15 * config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do
16 not create these functions if the target architecture does not
17 support Thumb instructions.
18
19 2000-12-04 Joseph S. Myers <jsm28@cam.ac.uk>
20
21 * ONEWS: New file with the current contents of NEWS up to EGCS
22 1.1.
23 * NEWS: Generate automatically from online release notes from EGCS
24 1.0 to GCC 2.95.2, using ../contrib/gennews.
25
26 2000-12-04 Neil Booth <neilb@earthling.net>
27
28 * tradcif.y: Move lexptr to top of file. Add rule to handle
29 assertions in conditional expressions.
30 * tradcpp.c (parse_answer): Assertions do not need to go to
31 end of line in conditional directives.
32 (parse_assertion): Get first character of identifiers correct.
33 (test_assertion): New function.
34 * tradcpp.h (test_assertion): New prototype.
35
36 2000-12-01 Rodney Brown <RodneyBrown@mynd.com>
37
38 * config.gcc: Fix typo for UnixWare 7.
39
40 2000-12-03 Phil Edwards <pme@sources.redhat.com>
41
42 * invoke.texi: Replace `pedwarns' with clearer text.
43
44 2000-12-04 Bruce Korb <bkorb@gnu.org>
45
46 * fixinc/Makefile.*(clean): don't clean autogenerated files.
47 (mainainer-clean): clean autogenerated files
48
49 2000-12-04 DJ Delorie <dj@redhat.com>
50
51 * md.texi: Add overview, clarify match_dup and define_expand.
52
53 2000-12-04 DJ Delorie <dj@redhat.com>
54
55 * print-tree.c (print_node): Target-specific builtins print
56 numbers, not names.
57
58 2000-12-04 Jason Merrill <jason@redhat.com>
59
60 * stor-layout.c (int_mode_for_mode): Handle MODE_VECTOR_INT,
61 MODE_VECTOR_FLOAT.
62
63 * diagnostic.c (report_problematic_module): s/function/module/.
64
65 * c-lex.h: Remove decl for check_newline.
66
67 2000-12-04 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
68
69 * README.APOLLO: Remove obsolete file.
70
71 2000-12-04 Neil Booth <neilb@earthling.net>
72
73 * cppinternals.texi: New file.
74
75 2000-12-04 Neil Booth <neilb@earthling.net>
76
77 * cppfiles.c (cpp_make_system_header): Take 2 booleans,
78 and operate on current buffer.
79 (cpp_read_file): Rename _cpp_read_file.
80 * cpplib.c (do_line, do_pragma_system_header): Update calls to
81 cpp_make_system_header.
82 * fix-header.c: Similarly.
83 * cpphash.h (_cpp_read_file): Move from...
84 * cpplib.h: ... here.
85 * cppinit.c (do_includes, cpp_start_read): Update appropriately.
86
87 2000-12-03 Kaveh R. Ghazi <ghazi@teal.rutgers.edu>
88
89 * builtins.c (expand_builtin_strspn, expand_builtin_strcspn):
90 Handle another transformation.
91
92 2000-12-03 Nick Clifton <nickc@redhat.com>
93
94 * config.gcc: Add support for StrongARM targets.
95 * config/arm/t-strongarm-elf: New file.
96 * config/arm/t-strongarm-coff: New file.
97 * config/arm/t-strongarm-pe: New file.
98 * config/arm/strongarm-pe.h: New file.
99
100 2000-12-03 Nick Clifton <nickc@redhat.com>
101
102 * NEWS: Mention XScale has been added.
103 * config.gcc: Add support for XScale targets.
104 * config/arm/arm.h: Add support for XScale processor.
105 * config/arm/arm.c: Add support for XScale processor.
106 * config/arm/arm.md: Add support for XScale processor.
107 * config/arm/t-xscale-elf: New file.
108 * config/arm/t-xscale-coff: New file.
109 * config/arm/xscale-elf.h: New file.
110 * config/arm/xscale-coff.h: New file.
111
112 2000-12-03 Richard Henderson <rth@redhat.com>
113
114 * bb-reorder.c (reorder_basic_blocks): Don't check for EH edges
115 unless exception handling is enabled, and if not using sjlj.
116
117 * builtins.c (expand_builtin_setjmp_setup): New.
118 (expand_builtin_setjmp_receiver): New.
119 (expand_builtin_setjmp): Split out _setup and _receiver functions.
120 Move argument parsing in from ...
121 (expand_builtin): ... here.
122 * except.c (receive_exception_label): Branch around receiver
123 unless new-style exceptions. Call expand_builtin_setjmp_receiver.
124 (start_dynamic_handler): Call expand_builtin_setjmp_setup.
125 * expr.h: Update builtin setjmp decls.
126
127 2000-12-03 Bruce Korb <bkorb@gcc.org>
128
129 * fixinc/mkfixinc.sh(build machine): Sometimes, there is no canonical
130 build machine name. Default to the target.
131
132 2000-12-03 Laurynas Biveinis <lauras@softhome.net>
133
134 * Makefile.in: use $(build_canonical), not $(canonical_build).
135
136 2000-12-03 Bernd Schmidt <bernds@redhat.co.uk>
137
138 * Makefile.in (OBJS): Add sched-rgn.o.
139 (sched-rgn.o): New rule. * haifa-sched.c (sched_verbose): No
140 longer static.
141 (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
142 INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
143 UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
144 MAX_BLOCKAGE_COST): Move to sched-int.h.
145 (MAX_RGN_BLOCKS, MAX_RGN_INSNS, INSN_REF_COUNT, FED_BY_SPEC_LOAD,
146 IS_LOAD_INSN, struct haifa_edge, edge_table, NEXT_IN, NEXT_OUT,
147 FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES,
148 OUT_EDGES, edgelst, struct region, nr_regions, rgn_table,
149 rgn_bb_table, block_to_bb, containing_rgn, RGN_NR_BLOCKS,
150 RGN_BLOCKS, BLOCK_TO_BB, BB_TO_BLOCK, CONTAINING_RGN,
151 debug_regions, find_single_block_region, find_rgns, too_large,
152 init_regions, current_nr_blocks, current_blocks, bitset, bitlst,
153 bitlst_table_last, bitlst_table_size, bitlst_table, bitset_member,
154 extract_bitlst, bblst, struct candidate, candidate_table,
155 bblst_table, bblst_size, bblst_last, IS_VALID, IS_SPECULATIVE,
156 SRC_PROB, target_bb, split_edges, compute_trg_info,
157 debug_candidate, debug_candidates, bbset, bbset_size, dom,
158 IS_RGN_ENTRY, IS_DOMINATED, prob, GET_SRC_PROB, edgeset,
159 rgn_nr_edges, rgn_edges, edgeset_size, edgeset_bitsize,
160 EDGE_TO_BIT, edge_to_bit, pot_split, ancestor_edges,
161 compute_dom_prob_ps, ABS_VALUE, INSN_PROBABILITY,
162 IS_SPECULATIVE_INSN, INSN_BB, MIN_DIFF_PRIORITY, MIN_PROBABILITY,
163 MIN_PROB_DIFF, check_live_1, update_live_1, check_live,
164 update_live, set_spec_fed, is_pfree, find_conditional_protection,
165 is_conditionally_protected, may_trap_exp, haifa_classify_insn,
166 is_prisky, is_exception_free, add_branch_dependences,
167 propagate_deps, compute_block_backward_dependences,
168 debug_dependencies, is_cfg_nonregular, build_control_flow,
169 new_edge, bb_deps, BITSET_UNION, BITSET_INTER, BITSET_DIFFER,
170 BITSET_INVERT, BITSET_ADD, BITSET_REMOVE, debug_regions,
171 UPDATE_LOOP_RELATIONS, INSN_TRAP_CLASS, WORST_CLASS, IS_REACHABLE,
172 CONST_BASED_ADDRESS_P, free_pending_lists, sched_target_n_insns,
173 target_n_insns, sched_n_insns, init_ready_list, deaths_in_region,
174 can_schedule_ready_p, new_ready, schedule_more_p, rgn_print_insn,
175 rgn_rank, region_sched_info): Move to sched-rgn.c.
176 (debug_reg_vector): Delete useless function.
177 (get_bb_head_tail): Likewise.
178 (insn_issue_delay, insn_cost, ready_add, get_block_head_tail,
179 no_real_insns_p, rm_line_notes, save_line_notes,
180 restore_line_notes, rm_redundant_line_notes, sched_init): No
181 longer static.
182 (rm_line_notes, save_line_notes, restore_line_notes,
183 schedule_block, set_priorities): Change argument to be a real
184 basic block, not one of haifa's "bb"s. All callers changed
185 (rm_other_notes): Initialize note_list here, not in
186 schedule_region.
187 (sched_finish): New function, called from schedule_insn. * *
188 sched-int.h (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
189 INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
190 UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
191 MAX_BLOCKAGE_COST): Moved here from haifa-sched.c.
192 (get_block_head_tail, no_real_insns_p, rm_line_notes,
193 save_line_notes, restore_line_notes, rm_redundant_line_notes,
194 rm_other_notes, insn_issue_delay, set_priorities, schedule_block,
195 sched_init, sched_finish, ready_add, insn_cost): Declare.
196
197 2000-12-03 Laurynas Biveinis <lauras@softhome.net>
198 Bruce Korb <bkorb@gnu.org>
199
200 * Makefile.in: pass $(build_canonical) to mkfixinc.sh.
201 * fixinc/mkfixinc.sh: accept build system name as an argument.
202 Use it for choosing the fix build method. Use the target for
203 selecting special fix rules.
204
205 2000-12-03 Bernd Schmidt <bernds@redhat.co.uk>
206
207 * Makefile.in (OBJS): Add sched-deps.o.
208 (sched-deps.o): New rule.
209 * haifa-sched.c (struct deps, struct haifa_insn_data): Moved to
210 sched-int.h.
211 (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved to
212 sched-int.h.
213 (SIZE_FOR_MODE): Delete unused macro.
214 (reg_known_equiv_p, reg_known_value, reg_pending_clobbers,
215 reg_pending_sets, reg_pending_sets_all, true_dependency_cache,
216 anti_dependency_cache, output_dependency_cache,
217 forward_dependency_cache): Variables moved to sched-deps.c.
218 (add_dependence, remove_dependence, find_insn_list,
219 find_insn_mem_list, add_insn_mem_dependence, flush_pending_lists,
220 sched_analyze_insn, sched_analyze_1, sched_analyze_2,
221 sched_analyze, group_leader, compute_forward_dependences,
222 init_deps, free_deps, init_dependency_caches, free_dependency_caches):
223 Functions moved to sched-deps.c.
224 (schedule_region): Call init_deps_global and finish_deps_global
225 instead of directly manipulating dependency data structures.
226 * sched-deps.c: New file.
227 (init_deps_global, finish_deps_global): New functions.
228 * sched-int.h (struct haifa_insn_data, struct deps): Moved here from
229 haifa-sched.c.
230 (h_i_d): Declare.
231 (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved here
232 from haifa-sched.c.
233
234 * Makefile.in (OBJS): Add sched-vis.o.
235 (sched-vis.o): New rule.
236 * haifa-sched.c (get_unit_last_insn): New function.
237 (sched_dump, insn_unit, actual_hazard_this_instance): No longer
238 static.
239 (schedule_block): Call visualize_alloc and visualize_free. Delete
240 spurious return statement.
241 (init_target_units, insn_print_units, get_visual_tbl_length,
242 init_block_visualization, print_block_visualization, safe_concat,
243 visualize_scheduled_inns, visualize_no_unit, visualize_stall_cycles,
244 print_exp, print_value, print_pattern, print_insn, target_units,
245 MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, visual_tbl,
246 n_vis_no_unit, vis_no_unit): Move scheduling visualization
247 functions/variables...
248 * sched-vis.c: ...here. New file.
249 (visualize_alloc, visualize_free): New functions.
250 (visualize_scheduled_insns, visualize_stall_cycles,
251 print_block_visualization): Lose basic block argument. All callers
252 changed.
253 (visualize_scheduled_insns): Use new function get_unit_last_insn.
254 * sched-int.h (current_sched_info, sched_dump): Declare.
255 (init_target_units, insn_print_units, init_block_visualization,
256 print_block_visualization, visualize_scheduled_inns,
257 visualize_no_unit, visualize_stall_cycles, visualize_alloc,
258 visualize_free): Declare functions.
259
260 * sched-int.h: New file.
261 * Makefile.in (haifa-sched.o): Depend on it.
262 * haifa-sched.c: Include it.
263 (no_real_insns_p): New function.
264 (current_sched_info): New static variable.
265 (__inline, HAIFA_INLINE): Moved to sched-int.h.
266 (get_block_head_tail): Minor cleanup.
267 (init_ready_list, can_schedule_ready_p, new_ready, schedule_more_p,
268 rgn_print_insn, rgn_rank): New functions, broken out of
269 rank_for_schedule, schedule_insn and schedule_block, where they
270 are now called through function pointers in current_sched_info.
271 (queue_insn, schedule_insn, queue_to_ready, debug_ready_list,
272 print_insn): To display uid and block number, call the print_insn
273 function pointer in current_schedule_info.
274 (region_sched_info): New static variable.
275 (sched_target_n_insns, sched_n_insns, target_n_insns): New global
276 variables, moved out of schedule_block.
277 (schedule_block): Return void. All callers changed.
278 Move some of the setup code into schedule_region. Get head/tail
279 from current_sched_info, and update it when done.
280 (schedule_region): Slightly rearranged, some code moved here from
281 schedule_block. Call no_real_insns_p to avoid doing work for a
282 block that consists only of notes and labels.
283 (schedule_insns): Initialize current_sched_info.
284
285 2000-12-03 Neil Booth <neilb@earthling.net>
286
287 * cppmacro.c (funlike_invocation_p): Re-disable macros enabled
288 by contexts drops AFTER argument pre-expansion, so that they
289 remain enabled during argument pre-expansion.
290 (_cpp_pop_context): Unconditionally re-enable a macro when
291 dropping a context level.
292
293 2000-12-03 Manfred Hollstein <manfredh@redhat.com>
294
295 * arm/t-linux (MULTILIB_OPTIONS): Comment.
296 (MULTILIB_DIRNAMES): Likewise.
297 (EXTRA_MULTILIB_PARTS): Likewise.
298 (LIBGCC): Likewise.
299 (INSTALL_LIBGCC): Likewise.
300
301 2000-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
302
303 * builtins.c (expand_builtin_strcat, expand_builtin_strncat,
304 expand_builtin_strspn, expand_builtin_strcspn): New functions.
305 (expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
306 BUILT_IN_STRSPN and BUILT_IN_STRCSPN.
307
308 * builtins.def (BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
309 BUILT_IN_STRSPN, BUILT_IN_STRCSPN): New entries.
310
311 * c-common.c (c_common_nodes_and_builtins): Declare builtin
312 strcat, strncat, strspn and strcspn.
313 (string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'.
314
315 * extend.texi (strcat, strcspn, strncat, strspn): Document new
316 builtins.
317
318 2000-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
319
320 * builtins.c (expand_builtin_strcmp): Use const*_rtx when
321 expanding strcmp at compile-time. Add another transformation.
322 (expand_builtin_strncmp): Add more transformations. Call
323 expand_builtin_memcmp, not expand_builtin_strcmp, under
324 appropriate conditions if HAVE_cmpstrsi.
325
326 2000-12-02 David Edelsohn <edelsohn@gnu.org>
327
328 * rs6000.md (anddi3_internal[23]): Prefer rldic? over andis
329 instruction.
330 (cr logic): Really make operands sequential.
331
332 2000-12-02 Geoffrey Keating <geoffk@redhat.com>
333
334 * c-common.c (combine_strings): When the ISO C standard specifies
335 the maximum length of a string, it doesn't include the trailing
336 zero byte.
337
338 * cpplib.c (do_ifdef): Add check_eol() call.
339 (do_ifndef): Likewise.
340
341 2000-12-02 Daniel Berlin <dberlin@redhat.com>
342 Bruce Korb <bkorb@gnu.org>
343
344 * fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/
345 * fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos*
346 * fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build
347 * fixinc/fixfix.c(wrap_fix): avoid wrapping files that
348 use the "__need_" hackery. It breaks them.
349 * fixinc/fixincl.c(process - SEPARATE_FIX_PROC):
350 Sometimes on DOS and BeOS the temp output file cannot be opened.
351 Skip the file noisily. Ought to be fixed instead.
352
353 2000-12-02 Bruce Korb <bkorb@gnu.org>
354
355 From: 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
356
357 * fixfixes.c (emit_gnu_type, format_write): Prototype.
358 (format_write, char_macro_use_fix, char_macro_def_fix): Use gcc's
359 custom uppercase ctype macros.
360 * fixincl.c (do_version): Make static and add ATTRIBUTE_NORETURN.
361 Use gcc's custom uppercase ctype macros.
362 (main): Prototype.
363 (machine_matches): Add static prototype and constify variable.
364 (create_file, test_test, egrep_test): Add static prototype.
365 (quoted_file_exists): Likewise, and constify parameters.
366 (extract_quoted_files, internal_fix, start_fixer, fix_applies,
367 write_replacement, test_for_changes): Add static prototype.
368 (write_replacement, test_for_changes): Delete excess argument to
369 `create_file'.
370 * fixtests.c (test): Make static.
371 * server.c (load_data, sig_handler, server_setup, find_shell): Add
372 static prototype.
373 (sig_handler): Mark parameter with ATTRIBUTE_UNUSED.
374
375 2000-12-02 Bruce Korb <bkorb@gnu.org>
376
377 * fixnc/mkfixinc.sh(msdosdjgpp): remove from fixincludes exception list
378 (per Laurynas Biveinis <lauras@softhome.net>)
379
380 2000-12-02 Richard Earnshaw <rearnsha@arm.com>
381
382 * arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New
383 macros.
384 (REGNO_MODE_OK_FOR_BASE_P): Define in terms of above.
385 (REGNO_OK_FOR_FOR_BASE_P): Delete.
386 (ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for
387 both strict and non-strict uses.
388 (REG_MODE_OK_FOR_BASE_P): Define in terms of above.
389 (ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros.
390 (REG_OK_FOR_INDEX_P): Define in terms of above.
391 (REG_OK_FOR_BASE_P): Delete.
392 (REG_OK_FOR_PRE_POST_P): Delete.
393 (ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P.
394 (ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P.
395 (ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX.
396 (THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET.
397 (ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes. Use ARM
398 specific variants rather than general ones. Use ARM_REG_OK_FOR_BASE_P
399 in pre/post increment cases.
400 (THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb.
401 (ARM_LEGITIMIZE_ADDRESS): Similarly.
402 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly.
403 * arm.c (legitimate_pic_address): Similarly.
404
405 2000-12-02 Neil Booth <neilb@earthling.net>
406
407 * tradcpp.c (struct answer, parse_assertion, parse_answer,
408 canonicalize_text, find_answer): New.
409 (do_assert, do_unassert): Provide appropriate function bodies.
410 (union hashval): New member answers.
411
412 2000-11-23 Marek Michalkiewicz <marekm@linux.org.pl>
413
414 * config/avr/avr.md: Document UNSPEC usage.
415 (*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump):
416 Make operand 0 input only, clobber it. Use UNSPEC, not a bogus
417 MEM for program memory word reference. Do not add the label to
418 the table index in each of the asm output templates, instead ...
419 (casesi): ... do it in RTL. Adjust to match the above change.
420
421 2000-12-02 Bernd Schmidt <bernds@redhat.co.uk>
422
423 * c-common.c (PTRDIFF_TYPE): Provide default here, ...
424 * c-decl.c: ... not here.
425
426 * haifa-sched.c (sched_dump): Renamed from dump. All users changed.
427 (old_max_uid): New variable.
428 (compute_forward_dependences): Renamed from
429 compute_block_forward_dependences; changed to accept block head and
430 tail instead of block number. Caller changed.
431 (free_deps, init_dependency_caches, free_dependency_caches,
432 init_regions, sched_init): New functions, split out from
433 schedule_insns and compute_block_backward_dependences.
434
435 2000-12-02 Neil Booth <neilb@earthling.net>
436
437 * cppexp.c (parse_number): Update diagnostic test.
438
439 2000-12-02 Bernd Schmidt <bernds@redhat.co.uk>
440
441 * reload1.c (free_for_value_p): New function, frontend to
442 reload_reg_free_for_value_p. All callers of the latter now call
443 this function with an additional mode argument.
444
445 2000-12-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
446
447 * install.texi (Configurations): Remove obsolete documentation for
448 hppa*-*-*.
449
450 2000-12-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
451
452 * install.texi (Installation): Remove obsolete description for
453 libstdc++ which is now an integral part of GCC.
454
455 2000-12-01 Jim Blandy <jimb@redhat.com>
456
457 * dbxout.c (dbxout_parms): Correctly describe parameters passed by
458 invisible reference in registers, but then spilled to the stack.
459 Remove code to emit a second stab for such parameters; it attempts
460 to describe the value's location by introducing a synthetic C++
461 `reference' type, and then saying the stack slot has that
462 reference type. This loses type information (breaking GDB's
463 `ptype' command, among other things) just to describe a location
464 which stabs can represent correctly in other ways.
465
466 2000-12-01 Alexandre Oliva <aoliva@redhat.com>
467
468 * final.c (output_addr_const) <PLUS>: Don't assume at least one
469 operand is a CONST_INT.
470
471 * config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS.
472 (machine_dependent_reorg): Split all insns.
473 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute
474 reg_class_contents[SIBCALL_REGS].
475 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add SIBCALL_REGS.
476 * config/sh/sh.md (calli_pcrel, call_pcrel, call_valuei_pcrel,
477 call_value_pcrel, call, call_value, sibcall): Match even when
478 not optimizing.
479 (sibcalli_pcrel, sibcall_pcrel): Likewise. Use constraint `k'
480 for call address.
481 (sibcalli): Likewise.
482
483 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
484
485 * c-common.c (warn_format, warn_format_y2k,
486 warn_format_extra_args, warn_format_nonliteral): Define.
487 (check_format_info): Check warn_format_nonliteral and
488 warn_format_extra_args.
489 (check_format_info_main): Check warn_format_y2k.
490 (set_Wformat): New function.
491 * c-common.h (warn_format_y2k, warn_format_extra_args,
492 warn_format_nonliteral, set_Wformat): Declare.
493 * c-decl.c (warn_format): Remove definition.
494 (c_decode_option): Handle -Wformat-nonliteral,
495 -Wno-format-extra-args and -Wno-format-y2k, and negated versions.
496 Use set_Wformat.
497 * invoke.texi: Document these new options and -Wformat=2.
498 * toplev.c (documented_lang_options): Add these new options.
499
500 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
501
502 * builtins.def (BUILT_IN_IMAXABS): Add.
503 * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS.
504 * c-common.c (c_common_nodes_and_builtins): Create builtin
505 functions __builtin_imaxabs, and plain imaxabs unless
506 flag_no_nonansi_builtin outside C99 mode.
507 (expand_tree_builtin): Handle BUILT_IN_IMAXABS.
508 * extend.texi: Document builtin imaxabs.
509
510 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
511
512 * c-common.c: Include "defaults.h".
513 (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Define.
514 (c_common_nodes_and_builtins): Create string_type_node,
515 const_string_type_node, wint_type_node, intmax_type_node,
516 uintmax_type_node, default_function_type, ptrdiff_type_node and
517 unsigned_ptrdiff_type_node.
518 * c-common.h (identifier_global_value): Declare.
519 * c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
520 (init_decl_processing): Don't create string_type_node,
521 const_string_type_node, wint_type_node, intmax_type_node,
522 uintmax_type_node, default_function_type, ptrdiff_type_node and
523 unsigned_ptrdiff_type_node.
524 (identifier_global_value): New function.
525
526 2000-12-01 Neil Booth <neilb@earthling.net>
527
528 * cppinit.c (initialize): Forgotten prototype.
529 * cpplex.c (_cpp_lex_token): Loop until not skipping.
530 Always clear PREV_WHITE upon meeting a new line.
531 * cpplib.c (end_directive): Set pfile->skipping after
532 skip_rest_of_line.
533 * cpplib.h (cpp_reader): Remove macro_pos.
534 * cppmacro.c (cpp_get_line): Don't do anything special inside
535 macros.
536 (parse_arg): Add PREV_WHITE if a token appears after new lines.
537 (funlike_invocation_p): Save and restore the output position
538 over a successful check for a '('.
539 (enter_macro_context): Delete uses of macro_pos.
540 (cpp_get_token): Don't use pfile->skipping.
541
542 2000-12-01 Phil Edwards <pme@sources.redhat.com>
543
544 * diagnostic.c: Fix typos in comments.
545 * diagnostic.h: Likewise.
546
547 2000-11-30 Phil Edwards <pme@sources.redhat.com>
548
549 * rtl.texi (Machine Modes): Document BImode and OImode.
550
551 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
552
553 * gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and
554 .FPP.
555
556 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
557
558 * c-decl.c (grokdeclarator): If pedantic, warn about arrays with
559 incomplete element type.
560 (grokparms): Before checking for incomplete parameter type, check
561 the type isn't error_mark_node.
562
563 2000-12-01 Jakub Jelinek <jakub@redhat.com>
564
565 * builtins.c (target_char_cast): New function.
566 (expand_builtin_strchr): Use it.
567 (expand_builtin_strrchr): Use it.
568 (builtin_memset_read_str): New function.
569 (expand_builtin_memset): Use target_char_cast.
570 Try to optimize memset with second argument non-zero using
571 store_by_pieces.
572
573 2000-11-30 Marek Michalkiewicz <marekm@linux.org.pl>
574
575 * install.texi (avr): Replace incomplete list of supported MCU
576 types with a link to the current one ...
577 * invoke.texi (AVR Options): ... here. Update -mmcu= to list
578 all supported MCU types. Document -minit-stack= default.
579 Document new options -mno-tablejump, -mtiny-stack.
580 * md.texi (AVR family): Fix typo in 'w' constraint letter
581 description. Document 'q'. Update 'O'.
582
583 2000-12-01 Bernd Schmidt <bernds@redhat.co.uk>
584
585 * combine.c (cant_combine_insn_p): Only disallow insns involving
586 hard regs if they are reg-reg moves.
587 (try_combine, can_combine_p, combinable_i3pat): Delete old
588 SMALL_REGISTER_CLASSES tests.
589
590 2000-12-01 Alexandre Oliva <aoliva@redhat.com>
591
592 * config/sh/sh.c (shiftcosts): Don't get INTVAL before testing
593 whether X is a CONST_INT.
594 (addsubcosts): Likewise.
595
596 * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of
597 mis-used XINT.
598 (ARG_POINTER_REGNUM): Set to AP_REG.
599
600 2000-11-30 Alexandre Oliva <aoliva@redhat.com>
601
602 * config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
603 splits): Only match on TARGET_SH4.
604
605 * combine.c (try_combine): Disregard USEs when updating LOG_LINKS
606 of subsequent insns.
607
608 2000-11-30 Richard Henderson <rth@redhat.com>
609
610 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable.
611 * config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
612
613 2000-11-30 Richard Henderson <rth@redhat.com>
614
615 * config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn.
616 (DO_SELECT_SECTION): New.
617 (SELECT_SECTION): Use it.
618 (UNIQUE_SECTION_P): New.
619 (UNIQUE_SECTION): New.
620
621 2000-11-30 Alexandre Oliva <aoliva@redhat.com>
622
623 * c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status
624 from va_list before using it.
625
626 2000-11-30 Michael Matz <matzmich@cs.tu-berlin.de>
627
628 * flow.c (make_edge): Early out, if no flags to set.
629 (calculate_global_regs_live): Clear out garbage only when necessary.
630
631 * simplify-rtx.c (varray_type used_regs): New.
632 (clear_table): Use it to only clear necessary items.
633 (cselib_lookup, cselib_record_set): Remember newly set items.
634 (cselib_update_varray_sizes, cselib_init): Initialize and grow
635 used_regs.
636
637 * local-alloc.c (update_equiv_regs): New local `cleared_regs'.
638 Move clearing of dead regs out of insn-loop.
639
640 2000-11-30 Richard Henderson <rth@redhat.com>
641
642 * calls.c (expand_call): Emit queued insns before creating
643 the tail recursion sequence.
644
645 2000-11-30 J. David Anglin <dave.anglin@nrc.ca>
646 Bruce Korb <bkorb@gnu.org>
647
648 * fixinc/inclhack.def(): prevent dual double definition protection
649 * fixinc/fixincl.x: regenerate
650
651 2000-11-29 Loren J. Rittle <ljrittle@acm.org>
652
653 * fixinc/Makefile.in (fixincl.x): Explicitly state the
654 location of the generated file.
655
656 2000-11-30 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
657
658 * README.FRESCO: Remove obsolete file.
659
660 2000-11-30 Mark Kettenis <kettenis@gnu.org>
661
662 * configure.in: Reorganize handling of *-*-gnu*, to share target
663 specific make details with Linux. Update comments to clarify
664 the distinction between GNU/Linux and GNU/Hurd.
665 * config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS,
666 TARGET_LIBGCC2_CFLAGS): Remove. We now use the settings from
667 config/t-linux for the Hurd.
668
669 2000-11-30 Stephane Carrez <Stephane.Carrez@worldnet.fr>
670
671 * config/mn10200/udivmod.c, config/mn10200/divmod.c,
672 config/mn10200/udivmodsi4.c: Moved from here.
673 * config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here.
674 * config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic
675 C division functions.
676 * config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise.
677
678 Thu Nov 30 01:12:52 2000 Jeffrey A Law (law@cygnus.com)
679
680 * pa.md (conditional moves): Avoid holes in operand list.
681 (mod, umod patterns): Similarly.
682 (variable extract/shift patterns): Similarly.
683
684 2000-11-30 Neil Booth <neilb@earthling.net>
685
686 * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
687 maybe_objc_check_decl, build_objc_string_object,
688 objc_declare_alias, objc_declare_class, build_message_expr,
689 build_protocol_expr, build_selector_expr, build_encode_expr,
690 get_class_ivars, start_class, start_protocol): Remove
691 redundant code, assuming doing_objc_thang is true.
692
693 2000-11-29 John David Anglin <dave@hiauly1.hia.nrc.ca>
694
695 * pa.c (restore_unscaled_index_insn_codes): Delete procedure.
696 (record_unscaled_index_insn_codes): Likewise.
697 (unscaled_index_insn_codes): Delete.
698 (max_unscaled_index_insn_codes_uid): Delete.
699 (output_function_prologue, output_function_epilogue, pa_reorg):
700 Don't use the unscaled index insn hack.
701
702 * pa.md: Remove hack from all index insns to reverse the operand
703 order of frame and stack pointer references incorrectly created
704 in the reload pass.
705
706 * function.h (emit_status): Delete member regno_pointer_flag and
707 rename regno_pointer_flag_length to regno_pointer_align_length.
708 Delete define for REGNO_POINTER_FLAG.
709 * integrate.h (inline_remap): Delete member regno_pointer_flag.
710 Add member x_regno_reg_rtx.
711 * rtl.h (rtx_def): Use frame_related bit to indicate register is
712 a pointer in REG expressions. Define REG_POINTER macro.
713 * alias.c (find_base_value, find_base_term): Use REG_POINTER
714 instead of REGNO_POINTER_FLAG.
715 * combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
716 * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
717 of regno_pointer_flag_length. Remove code which refers to
718 regno_pointer_flag.
719 (mark_reg_pointer): Use REG_POINTER.
720 (free_emit_status): Remove code which refers to regno_pointer_flag.
721 (init_emit, mark_emit_status): Likewise.
722 * flow.c (dump_flow_info): Likewise.
723 * function.c (preserve_temp_slots): Likewise.
724 * integrate.c (expand_inline_function, copy_rtx_and_substitute):
725 Use x_regno_reg_rtx instead of regno_pointer_flag for function
726 pointer determination in map.
727 * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
728 * predict.c (estimate_probability): Likewise.
729 * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
730 * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
731 regno_pointer_flag for function pointer determination in map.
732 * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
733 REG_POINTER.
734 * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
735 Use REG_POINTER.
736 (restore_unscaled_index_insn_codes): Revise comment.
737
738 * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
739
740 2000-11-30 Joseph S. Myers <jsm28@cam.ac.uk>
741
742 * extend.texi: Update documentation for attributes.
743
744 2000-11-29 David O'Brien <obrien@FreeBSD.org>
745
746 * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define.
747 (ASM_DECLARE_OBJECT_NAME): Same.
748 (ASM_FILE_END): Same.
749 (ASM_FINISH_DECLARE_OBJECT): Same.
750 (ASM_IDENTIFY_GCC): Same.
751 (ASM_IDENTIFY_LANGUAGE): Same.
752 (ASM_OUTPUT_CONSTRUCTOR): Same.
753 (ASM_OUTPUT_DEF): Same.
754 (ASM_OUTPUT_DESTRUCTOR): Same.
755 (ASM_OUTPUT_EXTERNAL_LIBCALL): Same.
756 (ASM_OUTPUT_SECTION_NAME): Same.
757 (ASM_WEAKEN_LABEL): Same.
758 (BSS_SECTION_ASM_OP): Same.
759 (COMMON_ASM_OP): Same.
760 (CONST_SECTION_ASM_OP): Same.
761 (CONST_SECTION_FUNCTION): Same.
762 (CTORS_SECTION_ASM_OP): Same.
763 (DTORS_SECTION_ASM_OP): Same.
764 (ESCAPES): Same.
765 (FINI_SECTION_ASM_OP): Same.
766 (IDENT_ASM_OP): Same.
767 (IDENT_ASM_OP): Same.
768 (INIT_SECTION_ASM_OP): Same.
769 (INT_ASM_OP): Same.
770 (MAX_OFILE_ALIGNMENT): Same.
771 (SBSS_SECTION_ASM_OP): Same.
772 (SDATA_SECTION_ASM_OP): Same.
773 (SECTION_FUNCTION_TEMPLATE): Same.
774 (SELECT_SECTION): Same.
775 (SE_CONST_SECTION): Same.
776 (SIZE_ASM_OP): Same.
777 (SKIP_ASM_OP): Same.
778 (STRING_ASM_OP): Same.
779 (STRING_LIMIT): Same.
780 (TYPE_ASM_OP): Same.
781 (TYPE_OPERAND_FMT): Same.
782
783 2000-11-29 Neil Booth <neilb@earthling.net>
784
785 * c-decl.c (c_decode_option): Don't handle -lang-objc.
786 * objc/lang-options.h: Remove -lang-objc.
787 * objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
788 * objc/objc-act.c (lang_init_options): Set c_language.
789
790 2000-11-29 Jakub Jelinek <jakub@redhat.com>
791
792 * expr.c (can_store_by_pieces): Reinitialize max_size for reverse
793 tests.
794
795 2000-11-29 Neil Booth <neilb@earthling.net>
796
797 * c-pragma.c (init_pragma): Update for parse_in type change.
798
799 2000-11-29 Laurynas Biveinis <lauras@softhome.net>
800
801 * configure.in: recognize DOS-style absolute paths.
802
803 2000-11-29 Jakub Jelinek <jakub@redhat.com>
804
805 * expr.h (store_by_pieces): Add prototype.
806 (can_store_by_pieces): Likewise.
807 * expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
808 (can_store_by_pieces): New.
809 (store_by_pieces): New.
810 (clear_by_pieces): New.
811 (clear_by_pieces_1): New.
812 (store_by_pieces_1): Renamed from clear_by_pieces, handle storing
813 arbitrary compiler generated constants into memory block.
814 (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
815 * builtins.c (c_readstr): New.
816 (builtin_memcpy_read_str): New.
817 (expand_builtin_memcpy): If src is string constant and
818 emit_block_move would move it by pieces, compute integer constants
819 from the string and store it into memory block instead.
820 (builtin_strncpy_read_str): New.
821 (expand_builtin_strncpy): If N is not constant zero and c_strlen does
822 not return INTEGER_CST, don't optimize.
823 If N is larger than strlen(src) + 1, try to copy the string
824 including padding with store_by_pieces.
825 (expand_builtin_strcmp): If both arguments have side effects, don't
826 optimize.
827 (expand_builtin_fputs): If STR has side effects, don't optimize.
828
829 2000-11-29 Richard Earnshaw <rearnsha@arm.com>
830
831 * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn):
832 Add use of link register.
833
834 2000-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
835
836 * extend.texi: Update documentation for default format attributes.
837
838 Tue Nov 28 21:56:45 2000 Jeffrey A Law (law@cygnus.com)
839
840 * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
841 a list, to keep track of the sections.
842
843 2000-11-28 Nick Clifton <nickc@redhat.com>
844
845 * config/arm/arm.md (pic_load_addr): Split into
846 pic_load_addr_arm and pic_load_addr_thumb.
847
848 * config/arm/arm.c (legitimize_pic_address): Generate either
849 ARM or Thumb versions of pic_load_addr.
850 (arm_finalize_pic): Generate either ARM or Thumb versions of
851 pic_load_addr.
852
853 2000-11-28 Richard Henderson <rth@redhat.com>
854
855 * calls.c (expand_call): Defer const/pure NO_DEFER_POP until
856 after sibcall do_pending_stack_adjust.
857
858 Wed Nov 29 00:08:23 2000 J"orn Rennecke <amylaar@redhat.com>
859
860 * jump.c (delete_insn): Check that REG_LABEL note actually contains
861 a CODE_LABEL.
862
863 2000-11-28 Neil Booth <neilb@earthling.net>
864
865 * c-common.h: Remove flag_digraphs.
866 * c-decl.c: Remove flag_digraphs.
867 (c_decode_option): Don't set it.
868 * c-lex.c (init_c_lex): Don't do anything for digraphs.
869
870 2000-11-28 Richard Henderson <rth@redhat.com>
871
872 * c-parse.in (finish_parse): Update for parse_in type change.
873 (_yylex): Likewise.
874
875 2000-11-28 Neil Booth <neilb@earthling.net>
876
877 * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
878 indicating whether to scan all buffers on the stack or
879 just one.
880 * cppinit.c (do_includes): Update.
881 * cppmain.c (main): Update.
882 * cpplib.h: Update prototype.
883
884 2000-11-28 Richard Henderson <rth@redhat.com>
885
886 * genoutput.c (validate_insn_operands): New.
887 (gen_insn): Call it.
888
889 * config/alpha/alpha.md (divmodsi_internal): Renumber operands.
890 (divmoddi_internal): Likewise.
891 * config/arm/arm.md (andsi3_compare0_scratch): Likewise.
892 * config/i960/i960.md (branch patterns): Likewise.
893 * config/ia64/ia64.md (tbit_and_0): Likewise.
894 (tbit_and_1, tbit_or_0, tbit_or_1): Likewise.
895 * config/m68k/m68k.md (zero_extract memory patterns): Likewise.
896 * config/mips/mips.md (divmodsi4_internal): Likewise.
897 (divmoddi4_internal): Likewise.
898 * config/rs6000/rs6000.md (call patterns): Likewise.
899 * config/sh/sh.md (movsi_y): Likewise.
900 * config/sparc/sparc.md: Comment out if 0 v8p shift pattern.
901
902 2000-11-28 Richard Henderson <rth@redhat.com>
903
904 * config.gcc: Kill residual pyramid support.
905
906 2000-11-28 Neil Booth <neilb@earthling.net>
907
908 * c-lex.h (parse_in): Change parse_in to a cpp_reader *.
909 * c-decl.c (c_decode_option): Update to match.
910 * c-lex.c (init_c_lex, yyparse): Update to match.
911 * c-lang.c (lang_init_options): Use cpp_create_reader.
912 * cppinit.c (cpp_init): Rename initialize.
913 (cpp_reader_init): Rename cpp_create_reader. Create the
914 reader. Initialize cpplib if appropriate.
915 * cpplib.h (cpp_create_reader) New prototype.
916 (cpp_init, cpp_reader_init): Delete prototypes.
917 * cppmain.c (general_init, setup_callbacks): New functions.
918 (main): Use them.
919 * fix-header.c (scan_in): Change type to cpp_reader *.
920 (read_scan_file): Update for new cpplib interface and scan_in type.
921
922 * cp/decl.c (parse_in): Change to cpp_reader *.
923 (lang_decode_option): Update.
924 * cp/lex.c (lang_init_options): Use new cpplib interface.
925 (init_cp_pragma, finish_parse, handle_pragma_implementation): Update.
926 * cp/spew.c (read_token): Update.
927 * objc/objc-act.c (lang_init_options): Update new cpplib interface.
928
929 2000-11-28 Jakub Jelinek <jakub@redhat.com>
930
931 * loop.c (load_mems): Avoid using next_label to find end_label. If
932 jumping outside of the loop (other than loop end), don't hoist MEMs
933 out of loop.
934
935 2000-11-28 Jan Hubicka <jh@suse.cz>
936
937 * calls.c (expand_call): Don't disable tail recursion based
938 on the loop nest.
939
940 2000-11-28 Neil Booth <neilb@earthling.net>
941
942 * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
943 (struct directive): Drop 4th argument from handlers.
944 (do_define, do_line, do_include, do_undef, do_else, do_elif,
945 do_endif): Similarly.
946 (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
947 (do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
948 (make_definition, make_undef): Take a const char*.
949 (make_assertion): New function.
950 (struct directive_table): Update.
951 (main): Handle -A command line argument.
952 (handle_directive): Drop fourth handler argument.
953
954 2000-11-28 Bernd Schmidt <bernds@redhat.co.uk>
955
956 * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination
957 is anything but REG or MEM, but look inside STRICT_LOW_PART.
958
959 Tue Nov 28 09:53:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
960
961 * system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
962 (IS_ABSOLUTE_PATHNAME): New macro.
963 * gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
964
965 2000-11-28 Jakub Jelinek <jakub@redhat.com>
966
967 * config/i386/i386.md (truncxfsf2_2): Fix predicate.
968
969 2000-11-27 Jim Wilson <wilson@redhat.com>
970
971 * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size.
972
973 2000-11-27 Matthias Klose <doko@cs.tu-berlin.de>
974
975 * extend.texi (Nested Functions): Update URL of Usenix paper.
976
977 2000-11-27 Mark Mitchell <mark@codesourcery.com>
978
979 * function.c (free_after_compilation): Clear x_clobber_return_insn.
980
981 2000-11-27 Neil Booth <neilb@earthling.net>
982
983 * cppinit.c (cpp_reader_init): Remove handling of warn_paste
984 command line options.
985 (cpp_handle_option): Similarly.
986 * cpplib.h (struct cpp_options): Remove warn_paste.
987 * cppmacro.c (paste_tokens): Apart from assembler, make
988 unpasteable token warning mandatory.
989
990 2000-11-27 Neil Booth <neilb@earthling.net>
991
992 * tradcpp.c (enum pending_dir_t, struct pending_dir): New.
993 (main): Allocate a pending directive set of these. Use it.
994 Merge handling of -D and -U. Update handling of pending
995 directives. Free the memory after use.
996
997 2000-11-27 Bernd Schmidt <bernds@redhat.co.uk>
998
999 * flow.c (entry_exit_blocks): Add entry for cond_local_set.
1000 (struct propagate_block_info): Add new member cond_local_set.
1001 (propagate_block): Accept new arg cond_local_set. All callers
1002 changed.
1003 (init_propagate_block_info): Likewise.
1004 (calculate_global_regs_live): Allocate & free cond_local_set. Always
1005 rescan if there's overlap between cond_local_set and new_live_at_end.
1006 (mark_set_1): Set bits either in cond_local_set or local_set, as
1007 appropriate.
1008 * basic-block.h (struct basic_block_def): New field cond_local_set.
1009 (propagate_block, init_propagate_block_info): Update prototypes.
1010
1011 Mon Nov 27 17:29:44 2000 kaz Kojima <kkojima@rr.iij4u.or.jp>
1012
1013 * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber
1014 T register.
1015
1016 2000-11-27 Richard Earnshaw <rearnsha@arm.com>
1017
1018 * arm.c (select_dominance_cc_mode): Handle new way that combine
1019 canonicalizes conditional compares.
1020 (arm_select_cc_mode): Likewise.
1021 * arm.md: Garbage collect some dead code.
1022 (cmp_and, cmp_ior): New patterns.
1023 (splitter for conditional move with inverted false): Use cond_exec
1024 and handle unordered comparisons.
1025
1026 Mon Nov 27 17:22:56 MET 2000 Jan Hubicka <jh@suse.cz>
1027
1028 * i386.c (ix86_force_to_memory, ix86_free_from_memory): New.
1029 * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare
1030 * i386.md (float?i?f, int/fp operations): Rewrite spliters to use
1031 ix86_force_to_memory and ix86_free_from_memory.
1032
1033 2000-11-27 Richard Earnshaw <rearnsha@arm.com>
1034
1035 * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
1036 arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
1037 anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
1038 one_cmpldi2): Merge with splitters to create define_insn_and_split
1039 patterns. Remove redundant splits.
1040 (peephole2 for add:SI of invalid immediate): New.
1041 (peephole2 for minus:SI of invalid immediate): New.
1042 (peephole2 for ior:SI of invalid immediate): New.
1043 (peephole for merge of move and compare): Convert ot peephole2.
1044 (addsf3, adddf3): Mark as commutative.
1045
1046 * arm.md (thumb peephole for merging stack adjustments): Convert to
1047 peephole2.
1048
1049 2000-11-27 Bernd Schmidt <bernds@redhat.co.uk>
1050
1051 * haifa-sched.c (print_pattern): Prettier output for COND_EXEC.
1052
1053 * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup.
1054 (reload_cse_simplify_operands): Do nothing about operands where both
1055 the operand and the match_operand fail to give us a mode.
1056 * simplify-rtx.c (wrap_constant): New function.
1057 (entry_and_rtx_equal_p): Except integer constants to come wrapped in a
1058 CONST describing the proper mode.
1059 (rtx_equal_for_cselib_p): Pass down modes to recursive calls of
1060 cselib_lookup.
1061 (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to
1062 htab_find_slot_with_hash.
1063 (cselib_lookup): Likewise.
1064
1065 Based on a patch from Geoff Keating <geoffk@redhat.com>:
1066 * loop.c (basic_induction_var): If a REG is set from something
1067 that is not a biv, then the REG is not a biv. Even if it is
1068 earlier set from something that is a biv.
1069
1070 2000-11-27 Alexandre Oliva <aoliva@redhat.com>
1071
1072 * configure.in (extra_objs): Enclose extra_headers in quotes.
1073 * configure: Rebuilt.
1074
1075 2000-11-27 Neil Booth <neilb@earthling.net>
1076
1077 * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file):
1078 Combine into the new function cb_change_file.
1079 (init_c_lex): Update.
1080 * cppfiles.c (stack_include_file): Use _cpp_do_file_change.
1081 (cpp_syshdr_flags): Delete.
1082 * cpphash.h (_cpp_do_file_change): New prototype.
1083 Move struct cpp_buffer here from...
1084 * cpplib.h (struct cpp_buffer): ... here.
1085 (enum cpp_fc_reason, struct cpp_file_loc,
1086 struct_cpp_file_change, change_file): New.
1087 (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete.
1088 * cpplib.c (do_line): Update for new cb_change_file callback.
1089 (_cpp_do_file_change): New function.
1090 (_cpp_pop_buffer): Update to use it.
1091 * cppmain.c (move_printer): Delete.
1092 (main): Set up single callback cb_change_file.
1093 (cb_enter_file, cb_leave_file, cb_rename_file): Delete.
1094 (cb_change_file): New.
1095 * fix-header.c (cur_file, cb_change_file): New.
1096 (recognized_function, read_scan_file): Update.
1097 * scan-decls.c (scan_decls): Update.
1098 * scan.h (recognized_function): Update prototype.
1099
1100 2000-11-26 Mark Mitchell <mark@codesourcery.com>
1101
1102 * tree.h (mark_tree_hashtable): New function.
1103 * tree.c (mark_tree_hashtable_entry): New function.
1104 (mark_tree_hashtable): Likewise.
1105
1106 2000-11-27 Michael Meissner <meissner@redhat.com>
1107
1108 * d30v-protos.h (srelational_si_operator): Correctly spell
1109 function.
1110 (urelational_si_operator): Ditto.
1111 (relational_si_operator): Ditto.
1112 (d30v_expand_prologue): Add prototype.
1113 (d30v_expand_epilogue): Ditto.
1114
1115 * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change.
1116
1117 * d30v.md (movcccc_*): Delete now unused patterns.
1118 (64 bit comparison splitters): Rewrite to use COND_EXEC instead of
1119 IF_THEN_ELSE.
1120 (define_cond_exec): Use 'b' to select branch flags.
1121
1122 2000-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1123
1124 * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New
1125 functions.
1126 (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP.
1127
1128 * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries.
1129
1130 * c-common.c (c_common_nodes_and_builtins): Declare builtin
1131 strncpy and strncmp.
1132
1133 * extend.texi (strncmp, strncpy): Document new builtins.
1134
1135 2000-11-26 Mark Mitchell <mark@codesourcery.com>
1136
1137 * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
1138 a list, to keep track of the sections.
1139 * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
1140 parameter provided will always be a canonical string.
1141
1142 2000-11-26 Neil Booth <neilb@earthling.net>
1143
1144 * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the
1145 current buffer.
1146
1147 2000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
1148
1149 * makefile.vms: Remove EGCS references.
1150
1151 2000-11-26 Ulrich Drepper <drepper@redhat.com>
1152
1153 * dwarf2out.c (output_file_names): New function. Compute minimal
1154 combination of directory and file name table and emit them.
1155 (output_line_info): Remove code to emit directory and file name
1156 table and call output_file_names instead.
1157 (file_info_cmp): Helper function to sort directory names.
1158
1159 2000-11-26 Neil Booth <neilb@earthling.net>
1160
1161 * cpplib.h (struct cpp_reader): Remove lang_asm.
1162 (struct cpp_options): Remove c89. New members lang,
1163 extended_numbers.
1164 * cppexp.c (parse_number): Use them.
1165 * cpphash.h (VALID_SIGN): Use them.
1166 * cppinit.c (set_lang, cpp_start_read): Update.
1167 * cpplex.c (parse_string, _cpp_lex_token): Update.
1168 * cpplib.c (_cpp_handle_directive): Update.
1169 * cppmacro.c (parse_args): Update.
1170 * cppmain.c (scan_buffer): Update.
1171
1172 Sun Nov 26 10:02:37 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1173
1174 * fold-const.c (fold, case CONVERT_EXPR): Always return tree of
1175 proper type.
1176
1177 2000-11-26 Neil Booth <neilb@earthling.net>
1178
1179 * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.
1180 * c-decl.c: Remove parse_in declaration.
1181 * c-lang.c: Similarly.
1182 * c-lex.c: Similarly.
1183 * c-parse.in: Similarly.
1184 * c-pragma.c: Similarly.
1185 * configure.in: Similarly.
1186 * cp/Make-lang.in: Similarly.
1187 * cp/spew.c: Similarly.
1188 * cp/decl2.c: Remove check for lang-c++ option.
1189 * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line.
1190 * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++.
1191 * c-lex.h: Add declaration of parse_in.
1192 * cppinit.c: Call set_lang after allocating pfile->pending.
1193 * configure: Regenerate.
1194
1195 2000-11-25 Zack Weinberg <zack@wolery.stanford.edu>
1196
1197 * combine.c (try_combine): Remove redundant test.
1198
1199 2000-11-25 Richard Henderson <rth@redhat.com>
1200
1201 * c-common.h (DECL_C_HARD_REGISTER): New.
1202 * c-decl.c (finish_decl): Set it for asm register variables.
1203 * c-semantics.c (emit_local_var): Test it when instantiating one.
1204
1205 2000-11-25 Richard Henderson <rth@redhat.com>
1206
1207 * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
1208 lineno for the start of the function.
1209
1210 2000-11-25 Richard Henderson <rth@redhat.com>
1211
1212 * dwarf2out.c (file_table, file_table_allocated): Remove.
1213 (file_table_allocated): Remove.
1214 (struct file_table): New.
1215 (decl_file_table, line_file_table): New.
1216 (print_dwarf_line_table): Use them.
1217 (size_of_line_prolog): Likewise.
1218 (output_line_info): Likewise.
1219 (add_src_coords_attributes): Likewise.
1220 (gen_subprogram_die): Likewise.
1221 (gen_variable_die): Likewise.
1222 (dwarf2out_add_library_unit_info): Likewise.
1223 (dwarf2out_line): Likewise.
1224 (lookup_filename): Take a struct file_table argument.
1225 (init_file_table): New.
1226 (dwarf2out_init): Use it.
1227
1228 2000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
1229
1230 * invoke.texi: Update sequence points references.
1231
1232 2000-11-25 Neil Booth <neilb@earthling.net>
1233
1234 * c-common.c: Remove USE_CPPLIB conditional inclusions.
1235 * c-common.h: Similarly.
1236 * c-decl.c: Similarly.
1237 * c-lang.c: Similarly.
1238 * c-lex.c: Similarly.
1239 * c-parse.in: Similarly.
1240 * c-pragma.c: Similarly.
1241 * c-pragma.h: Similarly.
1242 * gcc.c: Similarly.
1243 * toplev.c: Similarly.
1244 * cp/cp-tree.h: Similarly.
1245 * cp/decl2.c: Similarly.
1246 * cp/lang-specs.h: Similarly.
1247 * cp/lex.c: Similarly.
1248 * cp/lex.h: Similarly.
1249 * cp/spew.c: Similarly.
1250 * java/lang-options.h: Similarly.
1251 * objc/lang-specs.h: Similarly.
1252 * objc/objc-act.c: Similarly.
1253
1254 * configure.in: Remove configure option.
1255 * config.in: Regenerate.
1256 * configure: Regenerate.
1257
1258 2000-11-25 Richard Henderson <rth@redhat.com>
1259
1260 * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
1261 Revert 2000-11-22 change.
1262
1263 2000-11-25 Bernd Schmidt <bernds@redhat.co.uk>
1264
1265 * config/i386/i386.h (FIXED_REGS): Make the three flags registers
1266 fixed.
1267
1268 2000-11-25 Philipp Thomas <pthomas@suse.de>
1269 * configure.in (ALL_LINGUAS): Remove en_GB and add sv.
1270 * configure: Rebuilt.
1271
1272 2000-11-25 Jakub Jelinek <jakub@redhat.com>
1273
1274 * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
1275 Handle CONST_INT as second argument.
1276 * config/sparc/sparc.c (set_extends): Remove first argument.
1277 Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
1278 MOV.
1279 (sparc_check_64): Abort if first argument is not REG.
1280 If it is DImode REG, look at the lower register of the register
1281 pair.
1282
1283 * config/sparc/sparc.c (load_pic_register, restore_regs,
1284 output_return, sparc_v8plus_shift, sparc_function_profiler,
1285 sparc_function_block_profiler, sparc_block_profiler): Fix output
1286 formatting.
1287
1288 2000-11-25 Alexandre Oliva <aoliva@redhat.com>
1289
1290 * config/sh/sh.h (TARGET_NONE): New.
1291 (TARGET_SWITCHES): For all variant-selecting switch, use
1292 TARGET_NONE to reset all other variant-selecting switch. Added
1293 empty strings to avoid warnings.
1294 (TARGET_DEFAULT): Set to SH1_BIT.
1295
1296 * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for
1297 insn-codes.h.
1298
1299 * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
1300 (sibcall_pcrel): New insn_and_split.
1301 (sibcall, sibcall_value, sibcall_epilogue): New expands.
1302
1303 * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
1304 symPLT_label2reg, call, call_value): Don't set
1305 current_function_uses_pic_offset_table.
1306 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
1307 PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
1308 takes it into account.
1309 (FINALIZE_PIC): Delete, useless.
1310 (LEGITIMATE_CONSTANT_P): Delete, unused.
1311 * config/sh/sh.c (sh_expand_prologue): Don't use
1312 current_function_uses_pic_offset_table. Don't special-case
1313 PIC_OFFSET_TABLE_REGNUM. Initialize it if it's ever live and
1314 PIC is enabled.
1315 (sh_expand_epilogue, initial_elimination_offset): Don't
1316 special case PIC_OFFSET_TABLE_REGNUM.
1317
1318 2000-11-25 Alexandre Oliva <aoliva@redhat.com>, NIIBE Yutaka <gniibe@m17n.org>
1319
1320 * config/sh/sh-protos.h (symbol_ref_operand): Declare.
1321 * config/sh/sh.md (UNSPEC_CALLER): New constant.
1322 (calli_pcrel, call_valuei_pcrel): Use PIC_REG.
1323 (call_pcrel, call_value_pcrel): New insn_and_splits.
1324 (call, call_value): Use them.
1325 (call_site): New expand.
1326 (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
1327 * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]:
1328 Output call_site label.
1329 (PREDICATE_CODES): Added symbol_ref_operand.
1330 * config/sh/sh.c (symbol_ref_operand): Define.
1331 * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
1332 to CALL_INSNs in the split sequence.
1333
1334 2000-11-24 Nick Clifton <nickc@redhat.com>
1335
1336 * config.gcc (v850-*-*): Define c_target_objs and
1337 cxx_target_objs.
1338
1339 * config/v850/t-v850: Define how to build v850-c.o
1340
1341 * config/v850/v850.h (struct data_area_stack_element): Move
1342 definition here from v850.c.
1343
1344 * config/v850v850.c: Include gcc.h to avoid compile time
1345 warning.
1346 (push_data_area): Move to v850-c.c.
1347 (pop_data_area): Move to v850-c.c.
1348 (mark_current_function_as_interrupt): Move to v850-c.c.
1349 (GHS_default_section_names): Allow to be exported.
1350 (GHS_current_section_names): Allow to be exported.
1351 (data_area_stack_elements): Allow to be exported.
1352 (ghs_pragma_section): Move to v850-c.c.
1353 (ghs_pragma_interrupt): Move to v850-c.c.
1354 (ghs_pragma_starttda): Move to v850-c.c.
1355 (ghs_pragma_startsda): Move to v850-c.c.
1356 (ghs_pragma_startzda): Move to v850-c.c.
1357 (ghs_pragma_endtda): Move to v850-c.c.
1358 (ghs_pragma_endsda): Move to v850-c.c.
1359 (ghs_pragma_endzda): Move to v850-c.c.
1360
1361 * config/v850/v850-c.c: New file: Contains v850 specific
1362 pragma parsing functions.
1363
1364 2000-11-24 Nick Clifton <nickc@redhat.com>
1365
1366 * config.gcc (extra_objs): Remove duplicate description.
1367 (c_target_objs): New variable. Contains target specific
1368 object files for the gcc C compiler only.
1369 (cxx_target_objs): New variable. Contains target specific
1370 object files for the gxx C++ compiler only.
1371
1372 * configure.in (c_target_objs): Substitute in the makefile.
1373 (cxx_target_objs): Substitute in the makefile.
1374 * configure: Regenerate.
1375
1376 * Makefile.in (C_TARGET_OBJS): Define and initialise from
1377 c_target_objs.
1378 (CXX_TARGET_OBJS): Define and initialise from
1379 cxx_target_objs.
1380 (C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
1381
1382 * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
1383
1384 * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
1385 about how the use of the 'c_lex' function requires the use of
1386 the target specific, language specific object files feature of
1387 the configuration mechanism.
1388
1389 Fri Nov 24 18:50:58 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1390
1391 * gcc.c (process_command): Use F_OK, not R_OK.
1392
1393 2000-11-24 Arno J. Klaassen <arno@heho.snv.jussieu.fr>
1394
1395 * flow.c (print_rtl_and_abort): Remove ANSIism.
1396
1397 Fri Nov 24 19:54:36 2000 Alexandre Oliva <aoliva@redhat.com>
1398
1399 * config/sh/sh.h (GENERAL_REGISTER_P,
1400 GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
1401 FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros. Use them
1402 all over.
1403 (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
1404 * config/sh/sh.c: Use new macros.
1405 * config/sh/sh.md: Likewise.
1406
1407 Fri Nov 24 19:46:16 2000 Alexandre Oliva <aoliva@redhat.com>
1408
1409 * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode,
1410 instead of just MACH_REG in DImode. Always refer to FPSCR_REG
1411 in PSImode.
1412
1413 Fri Nov 24 22:37:41 2000 Denis Chertykov <denisc@overta.ru>
1414
1415 * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
1416 fixed.
1417 (machine_dependent_reorg): Wrong optimization based on
1418 NOTICE_UPDATE_CC removed.
1419
1420 Fri Nov 24 19:48:09 2000 J"orn Rennecke <amylaar@redhat.com>
1421
1422 * jump.c (delete_computation): Re-instate deletion of feeding insn.
1423 (delete_insn): Look for REG_LABEL notes.
1424 (redirect_tablejump): Delete feeding insns.
1425
1426 2000-11-24 Bernd Schmidt <bernds@redhat.co.uk>
1427
1428 * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0,
1429 call_value_pop_1): Make sure operand numbers are contiguous.
1430
1431 * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
1432
1433 * reload1.c (conflicts_with_override): New function.
1434 (emit_input_reload_insns): Use it to tighten test for validity
1435 of substituting into output of previous insn.
1436
1437 * haifa-sched.c (struct ready_list): New.
1438 (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
1439 functions.
1440 (schedule_insn): Replace args READY and N_READY with a pointer to a
1441 ready_list; return void. Use the new functions to access the ready
1442 list. All callers changed.
1443 (queue_to_ready, debug_ready_list): Likewise.
1444 (schedule_block): Initialize a ready_list structure. Use new
1445 functions to access it.
1446 (max_priority): Remove unused variable.
1447 (schedule_insn): Don't set it.
1448
1449 * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
1450
1451 * combine.c (cant_combine_insn_p): New function.
1452 (try_combine): Use it.
1453
1454 * Makefile.in (c-common.o): Depend on $(OBSTACK_H).
1455 * c-common.c (c-obstack.c): Include "obstack.h".
1456 (struct reverse_tree): Delete.
1457 (reverse_list, reverse_max_depth): Delete.
1458 (build_reverse_tree, common_ancestor, modify_ok): Delete functions.
1459 (struct tlist, struct tlist_cache): New.
1460 (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
1461 (add_tlist, merge_tlist, verify_tree, warning_candidate_p,
1462 warn_for_collisions, warn_for_collisions_1, new_tlist): New
1463 static functions.
1464 (verify_sequence_points): Rewritten.
1465 * fold-const.c (fold): Don't lose possibly important sequence
1466 points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
1467
1468 2000-11-24 Richard Sandiford <rsandifo@redhat.com>
1469
1470 * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
1471 when reversing a register-to-register copy. Reversal now disabled
1472 when the previous instruction has a REG_EQUIV.
1473
1474 2000-11-24 Nathan Sidwell <nathan@codesourcery.com>
1475
1476 * c-parse.in (unary_expr): Move VA_ARG from here ...
1477 (primary): ... to here.
1478
1479 2000-11-23 Graham Stott <grahams@redhat.com>
1480
1481 * expr.c (store_constructor): If a field is non addressable and
1482 the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
1483
1484 2000-11-23 Bernd Schmidt <bernds@redhat.co.uk>
1485
1486 * flow.c (print_rtl_and_abort): New function.
1487 (verify_wide_reg, verify_local_live_at_start): Try to dump more
1488 information before aborting.
1489
1490 2000-11-23 Alexandre Oliva <aoliva@redhat.com>
1491
1492 * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
1493 is narrower than requested mode.
1494 (gen_highpart): Abort if register mode is narrower than
1495 requested mode.
1496
1497 2000-11-23 Graham Stott <grahams@redhat.com>
1498
1499 * cse.c (cse_insn): Initialise all regcost variables.
1500 Fix a typo add missing '='.
1501 Only compare costs if there is a replacement insn.
1502
1503 Thu Nov 23 04:33:33 2000 Alexandre Oliva <aoliva@redhat.com>
1504
1505 * final.c (output_addr_const) [LABEL_REF]: Simplify.
1506 [MINUS]: Enclose non-CONST_INTs in parentheses.
1507 [default]: Try OUTPUT_ADDR_CONST_EXTRA.
1508 * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
1509 * varasm.c (decode_rtx_const) [CONST]: If it's not something
1510 PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
1511 instead of abort()ing.
1512 * sh.c (output_pic_addr_const): Removed. Fixed all callers.
1513 * sh.h (OUTPUT_ADDR_CONST_EXTRA): New. Handle the UNSPECs
1514 formerly handled in output_pic_addr_const.
1515 * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
1516 operands of MINUS in CONSTs so that decode_rtx_const() will
1517 accept them.
1518
1519 Thu Nov 23 04:10:30 2000 Alexandre Oliva <aoliva@redhat.com>
1520
1521 * config/sh/sh.md (mova_const): New pattern.
1522 (GOTaddr2picreg): Use it.
1523 * config/sh/sh.c (broken_move): Match it.
1524 (mova_p): Don't match it.
1525 (machine_dependent_reorg): Adjust it.
1526
1527 Thu Nov 23 02:09:09 2000 Alexandre Oliva <aoliva@redhat.com>
1528
1529 * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
1530 Moved most register-number #defines...
1531 * config/sh/sh.md (define_constants): ... here. Use macros to
1532 refer to registers and unspecs.
1533 * config/sh/sh.c: Likewise.
1534
1535 Thu Nov 23 01:01:32 2000 J"orn Rennecke <amylaar@redhat.com>
1536
1537 * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE.
1538 (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
1539 (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
1540 (splay-tree.o, hash.o): Likewise.
1541 GCONFIG_H: New.
1542 (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
1543 (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
1544 (hashtab.o): Likewise.
1545 (gcov.o): Depend on $(CONFIG_H).
1546 * configure.in: #include insn-codes.h in tm.h.
1547
1548 2000-11-22 Nick Clifton <nickc@redhat.com>
1549
1550 * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
1551 const char * to avoid a compile time warning.
1552
1553 * config/arm/arm.md (define_constants): Define symbolic names for
1554 the link register, last integer register and the fake CC register.
1555 Update patterns to use these symbolic names.
1556
1557 2000-11-22 Neil Booth <neilb@earthling.net>
1558
1559 * cpplex.c (trigraph_ok): Ensure we don't warn twice.
1560 * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
1561
1562 2000-11-22 Richard Henderson <rth@redhat.com>
1563
1564 * haifa-sched.c (sched_analyze_1): Don't special-case calls
1565 for clobbering registers.
1566 (sched_analyze_2): Likewise.
1567 (sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
1568
1569 2000-11-22 Chris Demetriou <cgd@sibyte.com>
1570 Neil Booth <neilb@earthling.net>
1571
1572 * gcc.c (validate_switches): Validate multiple switches named
1573 in '|' (or) expressions in specs.
1574 (handle_braces): If more than 1 alternative in a '|' spec
1575 matches, call do_spec1 just once.
1576
1577 2000-11-22 Michael Meissner <meissner@redhat.com>
1578
1579 * d30v.h (TARGET_SWITCHES): Add documentation strings.
1580 (TARGET_OPTIONS): Ditto.
1581 (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
1582 -O3.
1583
1584 Wed Nov 22 06:40:56 2000 Jeffrey A Law (law@cygnus.com)
1585
1586 * pa.c (hppa_encode_label): Account for addition of encoding
1587 character when allocating persistent space for the new label
1588 name.
1589
1590 2000-11-22 Zack Weinberg <zack@wolery.stanford.edu>
1591
1592 * Makefile.in, config.gcc, configure.in: Expunge remaining
1593 traces of facility for running MD files through C preprocessor.
1594
1595 2000-11-22 Joseph S. Myers <jsm28@cam.ac.uk>
1596
1597 * gcov.texi: Add magic comments for texi2pod.pl.
1598 * Makefile.in: Add rules to generate and install gcov.1.
1599 * gcov.1: New (generated) file.
1600
1601 2000-11-21 Richard Henderson <rth@redhat.com>
1602
1603 * regrename.c (scan_rtx_reg): Terminate the chain rather than
1604 abort on mark_read with NO_REGS.
1605
1606 2000-11-21 Mike Stump <mrs@wrs.com>
1607
1608 * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
1609 compilation with older compilers, such as /bin/cc on SunOS.
1610 * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
1611
1612 2000-11-21 Richard Henderson <rth@redhat.com>
1613
1614 * varasm.c (record_constant): Pad the constructed
1615 constant_descriptor appropriately.
1616
1617 Wed Nov 22 00:52:55 2000 J"orn Rennecke <amylaar@redhat.com>
1618
1619 * rtl.h (traverse_md_constants): Declare.
1620 (struct md_constant): Define.
1621 * Makefile.in (HOST_RTL): Add hashtab.o .
1622 (OBJS): Add hashtab.o .
1623 (hashtab.o): New rule.
1624 (rtl.o): Depends on HASHTAB_H.
1625 * rtl.c (hashtab.h): #include.
1626 (md_constants): New static variable.
1627 (def_hash, def_name_eq_p, read_constants): New static functions.
1628 (traverse_md_constants): New function.
1629 (read_name): Do constant expansion.
1630 (read_rtx): Recognize define_constants.
1631 * gencodes.c (print_md_constant): New function.
1632 (main): Emit #defines for all constant definitions encountered.
1633 * md.texi (Constant Definitions): New node.
1634 * gensupport.c (xcalloc): New function.
1635
1636 2000-11-21 Richard Henderson <rth@redhat.com>
1637
1638 * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
1639 * config/alpha/alpha-protos.h: Declare it.
1640 * config/alpha/alpha.md (abstf_internal): Use it.
1641 (negtf_internal): Likewise.
1642 (andnotdi3): Unstar the name.
1643 (movtf_internal): Add o/G alternative.
1644
1645 2000-11-21 Zack Weinberg <zack@wolery.stanford.edu>
1646
1647 * stringpool.c (stringpool_statistics): Also report number and
1648 percentage of entries which are identifiers.
1649
1650 2000-11-21 Diego Novillo <dnovillo@redhat.com>
1651
1652 * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
1653 visited before visiting it.
1654
1655 2000-11-21 Nick Clifton <nickc@redhat.com>
1656
1657 * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
1658 TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
1659
1660 * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
1661
1662 2000-11-21 Richard Henderson <rth@redhat.com>
1663
1664 * c-common.c (c_unsafe_for_reeval): New function.
1665 (add_c_tree_codes): Register it.
1666 * c-common.h: Declare it.
1667 * tree.c (lang_unsafe_for_reeval): New hook.
1668 (unsafe_for_reeval): Call it.
1669 * tree.h: Declare it.
1670
1671 2000-11-21 Richard Henderson <rth@redhat.com>
1672
1673 * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
1674 references as well.
1675
1676 2000-11-21 Neil Booth <neilb@earthling.net>
1677
1678 * do_includes: Revert to using cpp_read_file.
1679
1680 2000-11-21 Bernd Schmidt <bernds@redhat.co.uk>
1681
1682 * loop.c (consec_sets_giv): If the reg we're examining is anything
1683 but UNKNOWN_INDUCT, do nothing.
1684 Reset the reg's type to UNKNOWN_INDUCT before returning.
1685
1686 Mostly from Vladimir Makarov (vmakarov@redhat.com)
1687 * ia64.md (attr itanium_class): Define insn types as described in
1688 Itanium docs.
1689 (all insn patterns): Use itanium_class, not type attributes.
1690 Occasionally split alternatives as necessary.
1691 (attr type): Compute from new attr itanium_class.
1692
1693 2000-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1694
1695 * tradcpp.c (output_line_command): Mark system headers as such in
1696 `line' commands.
1697
1698 2000-11-21 Jakub Jelinek <jakub@redhat.com>
1699
1700 * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
1701 support in as as well.
1702 * configure: Regenerate.
1703
1704 2000-11-20 Richard Henderson <rth@redhat.com>
1705
1706 * c-lex.c (orig_filename): New variable.
1707 (init_c_lex): Set it. Move call to cpp_start_read ...
1708 (yyparse): ... here. New function.
1709 * c-parse.in (yyparse_1): Rename the parser entry point.
1710 * c-tree.h: Declare it.
1711
1712 2000-11-21 Jakub Jelinek <jakub@redhat.com>
1713
1714 * expr.c (do_compare_and_jump): If op0 was replaced by promoted
1715 integer constant, use type of op1 for comparison.
1716
1717 2000-11-20 Stan Shebs <shebs@apple.com>
1718
1719 * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
1720 * config/rs6000/x-darwin: New file, Darwin host fragment.
1721 * config.gcc (powerpc-*-darwin*): New host.
1722 * system.h (HAVE_DESIGNATED_INITIALIZERS): Allow this to be
1723 overridden by a config file.
1724
1725 2000-11-20 Neil Booth <neilb@earthling.net>
1726
1727 * cppmacro.c (paste_tokens): Rename from paste_payloads.
1728 Change token type after pasting spellings.
1729 (paste_all_tokens): Use it.
1730 * gcc.dg/cpp/paste2.c: Update test.
1731 * objc/execute/paste.m: New test.
1732
1733 2000-11-20 Richard Henderson <rth@redhat.com>
1734
1735 * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
1736 dwarf_subscr_data_formats bits.
1737 * dwarfout.c (simple_type_size_in_bits): Handle a type with
1738 no computed size as size zero.
1739 (field_byte_offset): Likewise.
1740 (subscript_data_attribute): Handle a range with no upper bound.
1741
1742 2000-11-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1743
1744 * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
1745
1746 2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
1747
1748 * c-typeck.c (build_conditional_expr): When merging type
1749 qualifiers for conditional expressions between a pointer and a
1750 pointer to a void type, merge the qualifiers on the target types
1751 rather than the pointer type. Remove obsolete conditioned out
1752 code.
1753
1754 2000-11-20 Neil Booth <neilb@earthling.net>
1755
1756 * c-lang.c (lang_init_options): Update call to
1757 cpp_reader_init.
1758 * cppmain.c (main): Similarly.
1759 * fix-header.c (read_scan_file): Similarly.
1760 * cp/lex.c (lang_init_options): Similarly.
1761 * objc/objc-act.c (lang_init_options): Similarly.
1762 * cppexp.c (parse_number): Only warn for unextended C89.
1763 * cppinit.c (set_lang): New function.
1764 (cpp_reader_init): Take a LANG argument and pass it to set_lang.
1765 (COMMAND_LINE_OPTIONS): New option std=c++98.
1766 (cpp_handle_option): Use set_lang.
1767 * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
1768 * cppib.h (enum_c_lang): New enumeration. Update comments.
1769
1770 2000-11-20 Will Cohen <wcohen@redhat.com>
1771
1772 * calls.c (expand_call): Clear target only when target is in
1773 hard register and current_function_check_memory_usage is set.
1774
1775 2000-11-20 Bernd Schmidt <bernds@redhat.co.uk>
1776
1777 * toplev.c (rest_of_compilation): Run optimize_mode_switching even
1778 if not optimizing.
1779 * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
1780
1781 2000-11-19 Richard Henderson <rth@redhat.com>
1782
1783 * crtstuff.c (force_to_data): Use array size 1 not 0.
1784
1785 * dwarf2out.c (simple_type_size_in_bits): Handle a type with
1786 no computed size as size zero.
1787 (field_byte_offset): Likewise.
1788
1789 2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
1790
1791 * config.gcc: Fix another typo.
1792
1793 2000-11-19 Richard Henderson <rth@redhat.com>
1794
1795 * c-decl.c (grokdeclarator): Support flexible array members.
1796 Use open-ended ranges for these and zero-length arrays.
1797 * c-typeck.c (push_init_level): Validate the context of
1798 initialization of a zero-length array.
1799 * tree.c (int_fits_type_p): Be prepared for missing bounds.
1800 * varasm.c (array_size_for_constructor): New.
1801 (output_constructor): Use it for arrays of unspecified length.
1802 * extend.texi (Zero Length): Mention C99 flexible array members.
1803 Document initialization in a top-level struct as valid.
1804
1805 2000-11-19 Joseph S. Myers <jsm28@cam.ac.uk>
1806
1807 * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
1808
1809 * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
1810 stdarg and varargs functions.
1811
1812 2000-11-19 Zack Weinberg <zack@wolery.stanford.edu>
1813
1814 * gcc.c (process_command): Define 'j' variable when
1815 MODIFY_TARGET_NAME is defined.
1816
1817 2000-11-19 Richard Henderson <rth@redhat.com>
1818
1819 * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
1820
1821 2000-11-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1822
1823 * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
1824 calculation and allocation.
1825
1826 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1827
1828 * builtins.c (c_getstr): Constify variable.
1829 * gmon-sol2.c (_mcleanup): Comment out #endif labels.
1830 * conflict.c (const_conflict_graph_arc): New typedef.
1831 (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
1832 * cppmacro.c (builtin_macro): Likewise.
1833 * dwarf2out.c (output_comp_unit): Constify variable.
1834 * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
1835 * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
1836 * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
1837 away const-ness.
1838 * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
1839 ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
1840 * varasm.c (const_str_htab_hash, const_str_htab_eq,
1841 compare_constant_1, record_constant_1): Constify.
1842
1843 2000-11-18 Richard Henderson <rth@redhat.com>
1844
1845 * c-decl.c (grokdeclarator): Special case the creation of an
1846 index for a zero-length array.
1847 * tree.c (build_index_type): Revert Oct 20 change.
1848
1849 2000-11-18 Marek Michalkiewicz <marekm@linux.org.pl>
1850
1851 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
1852 * config/avr/avr.c (jump_tables_size): New variable.
1853 (function_prologue): Initialize it as 0.
1854 (function_epilogue): Add it to function_size.
1855 (avr_output_addr_vec_elt): New function. Count words in jump
1856 tables in jump_tables_size. Move code ...
1857 * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
1858 Call avr_output_addr_vec_elt instead.
1859 * config/avr/avr.md (tablejump): Remove disabled define_expand.
1860
1861 2000-11-18 Mark Mitchell <mark@codesourcery.com>
1862
1863 * configure.in: Make --enable-new-gxx-abi the default.
1864 * configure: Likewise.
1865
1866 2000-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1867
1868 * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
1869
1870 * tradcif.y: Include tradcpp.h. Constify. Make functions static.
1871 Move extern function declarations to tradcpp.h.
1872
1873 * tradcpp.c: Likewise.
1874
1875 * tradcpp.h: New file.
1876
1877 2000-11-18 Joseph S. Myers <jsm28@cam.ac.uk>
1878
1879 * c-decl.c (check_for_loop_decls): New function.
1880 * c-parse.in (for_init_stmt): New.
1881 (select_or_iter_stmt): Use for_init_stmt.
1882 * c-tree.h (check_for_loop_decls): New declaration.
1883
1884 2000-11-18 Neil Booth <neilb@earthling.net>
1885
1886 * cppinit.c: Update comments.
1887 (cpp_reader_init): Make -imacro and -include use the standard
1888 #include "" search path.
1889 (do_includes): New function.
1890
1891 2000-11-18 Ben Elliston <bje@redhat.com>
1892
1893 * config/sh/crt1.asm (start_l): Move PC-relative move instruction
1894 out of a branch delay slot.
1895
1896 2000-11-17 Richard Henderson <rth@redhat.com>
1897
1898 * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
1899 (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
1900 (ASM_FILE_START): Only write out ecoff .file directive if
1901 emitting mdebug debugging.
1902
1903 2000-11-17 Richard Henderson <rth@redhat.com>
1904
1905 * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New. Detect
1906 whether as accepts .file/.loc and produces dwarf2 line info.
1907 * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
1908 the assembler supports it.
1909 * config.in, configure: Regenerate.
1910
1911 2000-11-17 Richard Henderson <rth@redhat.com>
1912
1913 * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
1914
1915 2000-11-17 Jim Wilson <wilson@redhat.com>
1916
1917 * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
1918 Don't clear need_barrier is next_insn is a CALL_INSN, or has
1919 instruction type B or UNKNOWN.
1920
1921 2000-11-17 Neil Booth <neilb@earthling.net>
1922
1923 * cpperror.c (print_file_and_line): Don't display line number if 0.
1924
1925 2000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
1926
1927 * ggc.h: Delete ggc_add_string_root and ggc_mark_string. Add
1928 digit_vector and digit_string.
1929 * stringpool.c (digit_vector): New.
1930 (ggc_alloc_string): Use digit_string.
1931
1932 * stmt.c (digit_strings): Delete.
1933 (init_stmt): Do not initialize digit_strings.
1934 (expand_asm_operands): Use ggc.h's digit_string macro.
1935 * toplev.c (mark_file_stack): Delete.
1936 (compile_file): Don't call init_tree_codes.
1937 (main): No need to make the file stack a GC root.
1938 * tree.c (init_tree_codes): Delete.
1939 * tree.h (init_tree_codes): Delete.
1940
1941 * c-lex.c: Don't include ggc.h.
1942 (mark_splay_tree_node, mark_splay_tree): Delete.
1943 (init_c_lex): No need to ggc_strdup string constant. Don't add
1944 file_info_tree to GGC roots.
1945 (cb_enter_file, cb_rename_file): No need to ggc_strdup
1946 ip->nominal_fname.
1947
1948 * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
1949
1950 * dbxout.c (dbxout_init),
1951 dwarf2out.c (dwarf2out_line),
1952 ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
1953 varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
1954 xcoffout.c (xcoffout_source_file),
1955 i386.c (load_pic_register):
1956 Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
1957
1958 * except.c (create_rethrow_ref),
1959 profile.c (init_edge_profiler),
1960 toplev.c (compile_file),
1961 varasm.c (named_section, assemble_static_space,
1962 assemble_trampoline_template, output_constant_def, force_const_mem),
1963 i386.c (load_pic_register),
1964 ia64.c (ia64_encode_section_info),
1965 rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
1966 rs6000_emit_prologue, rs6000_emit_epilogue),
1967 rs6000.md (load_toc_aix_si, load_toc_aix_di):
1968 Change ggc_alloc_string (var, -1) to ggc_strdup (var).
1969
1970 * profile.c (output_func_start_profiler),
1971 tree.c (make_node),
1972 i386.c (load_pic_register): No need to ggc_strdup string constant.
1973
1974 2000-11-17 Hans-Peter Nilsson <hp@axis.com>
1975
1976 * Makefile.in (config.status): Depend on config.gcc.
1977 * configure.in <for machine in $build $host $target>: Move
1978 contents of loop into config.gcc, removing autoconf quoting.
1979 Fix changequote bug for alpha*-*-vxworks*.
1980 * configure: Regenerate.
1981 * config.gcc: New.
1982
1983 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
1984
1985 * c-parse.in (if_prefix): Find the filename and line number at
1986 $-2 and $-1 respectively.
1987 * diagnostic.c (error_recursion): Add missing newline, use
1988 fputs, translate string.
1989
1990 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
1991
1992 * stringpool.c: New file.
1993 * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
1994 (ggc_alloc_string): Now in stringpool.o.
1995 * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
1996 * ggc.h: Delete prototype of ggc_add_string_root. #define
1997 ggc_add_string_root and ggc_mark_string to nothing. Prototype
1998 init_stringpool and stringpool_statistics.
1999 (ggc_alloc_string): Returns a const char *.
2000 * tree.c (hash_table, do_identifier_warnings): Delete.
2001 (init_obstacks): Don't initialize the identifier hash table.
2002 (get_identifier, maybe_get_identifier, start_identifier_warnings,
2003 set_identifier_size): Now in stringpool.c.
2004 * tree.h (struct tree_string): Constify pointer field.
2005 (approx_sqrt): Prototype.
2006
2007 * Makefile.in (stringpool.o): Add rule, mention in OBJS.
2008
2009 * toplev.c (approx_sqrt): New function.
2010 (compile_file): Call stringpool_statistics if mem_report is on.
2011 (main): Call init_stringpool.
2012
2013 * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
2014 (process_directive), c-typeck.c (constructor_asmspec, struct
2015 initializer_stack, start_init), except.c (create_rethrow_ref),
2016 stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
2017 (built_in_filename), varasm,c (in_named_name,
2018 assemble_static_space, struct constant_descriptor, struct
2019 deferred_string, struct pool_constant, force_const_mem),
2020 i386.c (pic_label_name, global_offset_table_name), rs6000.c
2021 (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
2022
2023 * c-common.c (combine_strings): Combine strings in scratch
2024 buffer, then pass to build_string.
2025 * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
2026 output_func_start_profiler), stmt.c (init_stmt), alpha.c
2027 (alpha_need_linkage), arm.c (arm_encode_call_attribute),
2028 i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
2029 rs6000.c (rs6000_encode_section_info): Create string in
2030 scratch buffer, then pass to ggc_alloc_string.
2031
2032 * stmt.c (expand_asm_operands): If we must adjust the
2033 constraint strings, do so by creating a new one, not by
2034 modifying the old one in place. Constify some char *s.
2035 * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
2036 argument. Create string in scratch buffer, then pass to
2037 ggc_alloc_string.
2038 * config/pa/pa-protos.h: Update prototype.
2039 * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
2040 hppa_encode_label takes only one argument.
2041
2042 2000-11-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2043
2044 * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
2045 malloc/realloc.
2046
2047 * cpplib.c (glue_header_name): Likewise.
2048
2049 * fixincl.c (run_compiles, start_fixer): Likewise.
2050
2051 * fixlib.c (load_file_data): Likewise.
2052
2053 * mkdeps.c (munge): Likewise.
2054
2055 2000-11-17 Hans-Peter Nilsson <hp@axis.com>
2056
2057 * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
2058 trailing ';'. Fix formatting.
2059
2060 2000-11-16 Jim Wilson <wilson@redhat.com>
2061
2062 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
2063 Shift masks left by one to avoid conflict.
2064
2065 * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
2066 DECL_EXTERNAL set.
2067
2068 2000-11-16 Nick Clifton <nickc@redhat.com>
2069
2070 * config/arm/arm.c (output_arm_prologue): Note nested functions.
2071 (arm_expand_prologue): For nested functions preserve the
2072 static chain register during stack frame creation.
2073
2074 * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
2075 (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
2076 with a stack frame there is a 4 byte gap between the arg
2077 pointer and the hard frame pointer (used to preserve the
2078 static chain register during stack frame creation).
2079
2080 2000-11-16 DJ Delorie <dj@redhat.com>
2081
2082 * rtl.c (read_rtx): Provide suitable names for unnamed
2083 define_insn and define_insn_and_split patterns, based on file
2084 and line numbers.
2085
2086 2000-11-15 Neil Booth <neilb@earthling.net>
2087
2088 * cpplib.c (start_directive, end_directive): New functions.
2089 (_cpp_handle_directive, run_directive): Use them.
2090 (_cpp_handle_directive): Don't -Wtraditional on indented
2091 null directives.
2092 (_cpp_push_buffer): Don't re-clear was_skipping.
2093 * cpplib.h (struct cpp_reader): New member la_saved.
2094 * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
2095 directives.
2096
2097 gcc.dg/cpp/_Pragma1.c: Update.
2098 gcc.dg/cpp/_Pragma2.c: New test.
2099
2100 2000-11-15 Mark Mitchell <mark@codesourcery.com>
2101
2102 * toplev.c (wrapup_global_declarations): Don't write out
2103 artificial static variables that aren't needed.
2104
2105 2000-11-15 Bernd Schmidt <bernds@redhat.co.uk>
2106
2107 * ia64.c (struct group): New structure.
2108 (last_group): New static array.
2109 (group_idx): New static variable.
2110 (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
2111 New static functions.
2112 (emit_insn_group_barriers): Initialize and keep track of group_idx
2113 and last_group.
2114 Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
2115 Replace all calls to emit_insn_after that emit a group barrier to use
2116 emit_group_barrier_after.
2117 * ia64.h (MASK_B_STEP): New.
2118 (other MASK_XXX macros): Renumbered.
2119 (TARGET_B_STEP): New.
2120 (TARGET_SWITCHES): Add -mb-step.
2121
2122 2000-11-15 Fred Fish <fnf@be.com>
2123
2124 * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
2125 machines for which fixincludes is not needed.
2126 * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
2127
2128 2000-11-15 Jason Merrill <jason@redhat.com>
2129
2130 * diagnostic.c (finish_abort): New fn.
2131 (fancy_abort, error_recursion): Use it.
2132 * toplev.c (crash_signal): Likewise.
2133 * diagnostic.h: Declare it.
2134
2135 2000-11-13 Andrew Haley <aph@redhat.com>
2136
2137 * tree.c (build_type_no_quals): New function.
2138 * tree.h (build_type_no_quals): Declare.
2139 * c-common.c (c_get_alias_set): When considering type
2140 compatibility for pointer types, ignore cv-qualifiers anywhere in
2141 a pointer chain.
2142
2143 2000-11-15 Graham Stott <grahams@redhat.com>
2144
2145 * regrename.c (scan_rtx_rtx): Skip to the next chain on
2146 encountering a terminated chain.
2147
2148 2000-11-14 Mark Mitchell <mark@codesourcery.com>
2149
2150 * configure.in: Move check for V3 above check for C++ header-file
2151 directory.
2152 * configure: Regenerated.
2153
2154 2000-11-14 DJ Delorie <dj@redhat.com>
2155
2156 * config/v850/v850.c: Remove obstacks.
2157
2158 Tue Nov 14 21:54:31 2000 Marek Michalkiewicz <marekm@linux.org.pl> & Denis Chertykov <denisc@overta.ru>
2159
2160 * config/avr/avr.c (avr_case_values_threshold): New.
2161 (avr_override_options): Set it depending on options, make it large
2162 when not optimizing to work around "unable to generate reloads".
2163
2164 * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
2165 (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
2166 executable if not AVR_MEGA. Make sure jump tables are word-aligned.
2167 (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
2168 (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
2169 (avr_case_values_threshold): Declare as extern int.
2170 (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
2171
2172 * config/avr/avr.md (tablejump): Removed.
2173 (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
2174 (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
2175 index in the table, not multiplied by 2.
2176 (casesi): Change to match the above insns. Always enable.
2177
2178 * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
2179 Change to expect the word address of the table, multiply it by 2
2180 here and not in the caller. Change "adiw" to faster "inc".
2181
2182 2000-11-14 Neil Booth <neilb@earthling.net>
2183
2184 * cppexp.c (parse_defined): Call cpp_get_token not
2185 _cpp_get_token.
2186 (lex): Similarly.
2187 * cpplex.c (cpp_output_line): Similarly.
2188 * cpplib.c (glue_header_name, do_line, do_ident,
2189 parse_answer, parse_assertion): Similarly.
2190 (_cpp_handle_diretive): Don't save to lookaheads
2191 when processing directives.
2192 * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
2193 _cpp_get_token.
2194 (funlike_invocation_p): Don't save to lookaheads
2195 when pre-expanding arguments.
2196 (_cpp_get_token): Delete.
2197 (cpp_get_token): Merge contents of _cpp_get_token.
2198
2199 2000-11-14 Jakub Jelinek <jakub@redhat.com>
2200
2201 * builtins.c (expand_builtin_setjmp): Set
2202 current_function_calls_setjmp.
2203 (expand_builtin_longjmp): Set current_function_calls_longjmp.
2204
2205 * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
2206 (do_builtin_setjmp_setup): New insn.
2207
2208 Tue Nov 14 12:34:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2209
2210 * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
2211 (int_fits_type_p): For variable bounds, call force_fit_type.
2212
2213 2000-11-14 Jakub Jelinek <jakub@redhat.com>
2214
2215 * varasm.c (struct deferred_string): New structure.
2216 (const_str_htab): New variable.
2217 (STRHASH): New macro.
2218 (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
2219 constr_str_htab_eq, const_str_htab_del): New functions.
2220 (output_constant_def): Add DEFER argument, defer string
2221 constants until mark_constant_pool time if requested.
2222 (mark_constant_pool): Walk the insn chain even if const_str_htab is
2223 not empty.
2224 (mark_constants): If a SYMBOL_REF for deferred string is found,
2225 output it and remove from hash table.
2226 (output_addressed_constants): Set DEFER to 0 in call to
2227 output_constant_def.
2228 * rtl.h (STRING_POOL_ADDRESS_P): Define.
2229 (output_constant_def): Adjust prototype.
2230 * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
2231
2232 2000-11-14 Chandrakala Chavva <cchavva@redhat.com>
2233
2234 * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
2235 signed types if flag_trapv.
2236
2237 2000-11-14 Zack Weinberg <zack@wolery.stanford.edu>
2238
2239 * tradcpp.c, tradcif.y: Update FSF mailing address, delete
2240 reference to GPLv1.
2241
2242 2000-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
2243
2244 * c-common.h (CTI_C_SIZE_TYPE): Update comment.
2245
2246 2000-11-14 Jakub Jelinek <jakub@redhat.com>
2247
2248 * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
2249 to array of pool_constnat pointers.
2250 (struct pool_constant): Add next_sym and label members.
2251 (struct pool_sym): Remove.
2252 (init_varasm_status): Change pool_sym into pool_constant.
2253 (mark_pool_constant): Mark pc->label string as well.
2254 (mark_pool_sym_hash_table): Remove.
2255 (mark_varasm_status): Remove it from caller as well.
2256 (free_varasm_status): Don't free pool_sym structures.
2257 (force_const_mem): Don't allocate pool_sym structure, instead
2258 fill pool->label and chain it into rtx_sym hash table.
2259 (find_pool_constant, mark_constant_pool): Use pool_constant instead
2260 of pool_sym.
2261
2262 2000-11-14 Jakub Jelinek <jakub@redhat.com>
2263
2264 * reload1.c (emit_input_reload_insns): Honour forcing of constants
2265 into memory by PREFERRED_RELOAD_CLASS NO_REGS.
2266
2267 2000-11-14 Michael Matz <matzmich@cs.tu-berlin.de>
2268
2269 * dominance.c: New file.
2270 * Makefile.in (OBJS): Add dominance.o.
2271
2272 * flow.c (compute_flow_dominators): Remove.
2273 (compute_immediate_dominators): Remove.
2274 (compute_immediate_postdominators): Remove.
2275 * basic-block.h: Remove their prototypes.
2276 (calculate_dominance_info): Add prototype.
2277
2278 * dce.c (eliminate_dead_code): Change calls to above functions.
2279 Don't compute dominators but only immediate dominators.
2280 * flow.c (flow_loops_find): Change callers.
2281 * gcse.c (compute_code_hoist_data): Likewise.
2282 * haifa-sched.c (schedule_insns): Likewise.
2283 * ifcvt.c (if_convert): Likewise.
2284 * ssa.c (convert_to_ssa): Likewise, and only compute immediate
2285 dominators.
2286
2287 2000-11-14 Richard Henderson <rth@redhat.com>
2288
2289 * stmt.c (warn_if_unused_value): Don't warn if the expression
2290 has side effects.
2291
2292 * c-typeck.c (c_sizeof): Fold result to c_size_type_node.
2293 (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
2294
2295 2000-11-13 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2296
2297 * loop.c (basic_induction_var): Revert accidental checkin.
2298
2299 2000-11-13 Hans-Peter Nilsson <hp@axis.com>
2300
2301 * c-lex.c (cb_leave_file): Harmonize conditions and order of
2302 statements to those of process_directive for (action == act_pop).
2303
2304 * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
2305
2306 * local-alloc.c (equiv_init_movable_p): References to CC0 are not
2307 movable.
2308
2309 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2310
2311 * c-parse.in (stmts_and_decls): Deprecate use of label at end of
2312 compound statement.
2313
2314 2000-11-13 Neil Booth <neilb@earthling.net>
2315
2316 * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
2317 cases return without MI check.
2318 * cpplib.c (do_diagnostic): Take boolean of whether to
2319 print the directive name.
2320 (do_error, do_warning): Update.
2321 (do_pragma_dependency): Use it.
2322 * cpplib.h (VARARGS_FIRST): Delete.
2323 (struct cpp_token): Delete integer.
2324 * cppmacro.c (enter_macro_context): Move disabled check
2325 to _cpp_get_token.
2326 (_cpp_get_token): Simplify into a single loop.
2327
2328 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
2329
2330 * configure.in: Use 'test -f' not '[ -e'.
2331 * configure: Regenerated.
2332
2333 2000-11-13 DJ Delorie <dj@redhat.com>
2334
2335 * config/mn10300/mn10300.md (store_movm): Note which registers are
2336 really used or clobbered.
2337
2338 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2339
2340 * c-parse.in (ends_in_label): Remove from %union and %type.
2341 (decls, stmts, lineno_stmt_or_labels, xstmts,
2342 lineno_stmt_or_label, stmt_or_label): Remove.
2343 (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
2344 lineno_stmt_decl_or_labels_ending_decl,
2345 lineno_stmt_decl_or_labels_ending_label,
2346 lineno_stmt_decl_or_labels_ending_error,
2347 lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
2348 lineno_stmt, lineno_label): New.
2349 (compstmt_nostart): Use compstmt_contents_nonempty.
2350
2351 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2352
2353 * c-common.c (boolean_increment): New function.
2354 * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
2355 CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE.
2356 (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
2357 (boolean_increment): Declare.
2358 * c-convert.c (convert): Allow for BOOLEAN_TYPE.
2359 * c-decl.c (init_decl_processing): Create boolean nodes.
2360 (finish_struct): Allow for _Bool bitfields.
2361 * c-parse.in (reswords): Add _Bool.
2362 (rid_to_yy): Allow for RID_BOOL.
2363 * c-typeck.c (default_conversion): Make booleans promote to int.
2364 (convert_arguments, build_unary_op, build_modify_expr,
2365 convert_for_assignment): Allow for booleans.
2366 * ginclude/stdbool.h: Make conforming to C99.
2367
2368 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2369
2370 * c-parse.in (c99_block_start, c99_block_end,
2371 c99_block_lineno_labeled_stmt): New.
2372 (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
2373 (stmt): Split off selection and iteration statements into...
2374 (select_or_iter_stmt): New. Use c99_block_lineno_labeled_stmt.
2375
2376 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2377
2378 * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
2379 -time): Update.
2380
2381 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
2382
2383 * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
2384 Rewrite to avoid use of match_dup. Don't try to tie registers that
2385 are not in the same mode.
2386
2387 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2388
2389 * invoke.texi: Update lists of languages and suffixes supported.
2390
2391 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2392
2393 * configure.in: Take toplevel configure arguments from the
2394 environment to create configargs.h and substitute
2395 gcc_config_arguments, taking account of any existing configargs.h
2396 if reconfiguring.
2397 * configure: Regenerate.
2398 * gccbug.in: Include toplevel configure arguments in gccbug.
2399
2400 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
2401
2402 * varasm.c (struct constant_descriptor): Put CONTENTS inside a
2403 union to make it well-aligned. Update all uses.
2404
2405 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2406
2407 * c-parse.in (initelt): Give appropriate pedantic warnings,
2408 depending on flag_isoc99, for non-ISO syntax and for C99 syntax
2409 outside C99 mode.
2410 (designator): If pedantic, pedwarn for a designator specifying a
2411 range of elements.
2412 * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
2413 these cases.
2414 * extend.texi: Document the C99 syntax as the preferred syntax,
2415 and the pre-2.5 syntax as obsolete. Mention use of designator
2416 lists for nested subobjects.
2417
2418 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2419
2420 * diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
2421 Add ATTRIBUTE_PRINTF.
2422 * tradcpp.c (v_message, warning, error, fatal, error_with_line):
2423 Add ATTRIBUTE_PRINTF*.
2424
2425 2000-11-12 Mark Mitchell <mark@codesourcery.com>
2426
2427 * function.c (assign_parms): When calling put_var_into_stack, make
2428 sure that there are no hidden pending sequences.
2429
2430 2000-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2431
2432 * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
2433 BUILT_IN_RINDEX. Add missing checks for BUILT_IN_STRCHR and
2434 BUILT_IN_STRRCHR.
2435
2436 * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
2437
2438 * c-common.c (c_common_nodes_and_builtins): Declare index and
2439 rindex when nonansi builtins are allowed.
2440
2441 * extend.texi (index, rindex): Document new builtins.
2442
2443 2000-11-12 Mark Mitchell <mark@codesourcery.com>
2444
2445 * configure.in: Turn on libstdc++ V3 by default.
2446 * configure: Regenerated.
2447
2448 * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
2449
2450 2000-11-12 Jakub Jelinek <jakub@redhat.com>
2451
2452 * reload1.c (set_label_offsets): Go inside of PARALLELs.
2453
2454 2000-11-12 Joseph S. Myers <jsm28@cam.ac.uk>
2455
2456 * invoke.texi: Clean up option summary.
2457
2458 2000-11-12 Nick Clifton <nickc@redhat.com>
2459
2460 * config/mcore/mcore.c: Fix comment formating, and adjust sequence
2461 of #include headers.
2462
2463 2000-11-12 Marc Espie <espie@openbsd.org>
2464
2465 * configure.in: Fix filds test.
2466 * configure: Regen.
2467
2468 2000-11-12 Mark Mitchell <mark@codesourcery.com>
2469
2470 * jump.c (delete_computation): Don't assume that just becuase an
2471 instruction sets a register, that register is dead.
2472
2473 2000-11-12 Neil Booth <neilb@earthling.net>
2474
2475 * cppexp.c: Don't worry about pfile->skipping.
2476 * cpplib.c (struct if_stack): Make was_skipping unsigned char.
2477 (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
2478 for handled directives.
2479 (skip_rest_of_line): Use _cpp_lex_token after popping contexts
2480 and releasing lookaheads.
2481 (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
2482 (do_else, do_elif, push_conditional): Update logic.
2483 (do_endif): Set buffer->was_skipping rather than pfile->skipping.
2484 (unwind_if_stack): Inline into cpp_pop_buffer.
2485 (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
2486 * cpplex.c (_cpp_lex_token): Clear skipping on EOF. Handle
2487 multiple-include optimisation.
2488 * cpplib.h (struct cpp_buffer): New member was_skipping.
2489 * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping. This
2490 works because skipping == 0 in directives.
2491 (_cpp_release_lookahead): Renamed from release_lookahead.
2492 (cpp_get_token): No need to check skipping as _cpp_get_token does
2493 this for us. No need to handle MI optimisation.
2494
2495 Sat Nov 11 21:14:02 2000 Mark P Mitchell <mark@codesourcery.com>
2496
2497 * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
2498 declarations that use `__MATH_EXCEPTION' in their prototypes, too.
2499 * fixinc/fixincl.x: Regenerated.
2500
2501 2000-11-11 Bruce Korb <bkorb@gnu.org>
2502
2503 * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
2504 (avoid_wchar_t_type): ditto
2505 * fixinc/fixinc.irix: obsoleted
2506
2507 2000-11-11 Zack Weinberg <zack@wolery.stanford.edu>
2508
2509 * configure.in: Don't add $outputs to all_lang_makefiles. Add
2510 $srcdir/$s/Makefile.in if it exists.
2511 * configure: Regenerate.
2512
2513 Sat Nov 11 18:41:20 2000 Mark P Mitchell <mark@codesourcery.com>
2514
2515 * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX.
2516
2517 2000-11-11 Jason Merrill <jason@redhat.com>
2518
2519 * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
2520 give the parm a register and then call put_var_into_stack.
2521 * stmt.c (expand_decl): Likewise.
2522
2523 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
2524
2525 * gcc.texi: Adjust wording.
2526
2527 2000-11-11 Mark Mitchell <mark@codesourcery.com>
2528
2529 * fixinc/inclhack.def (avoid_wchar_t_type): New fix.
2530 * fininc/fixincl.x: Regenerated.
2531
2532 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
2533
2534 * invoke.texi: Correct spelling of -foptimize-register-move.
2535
2536 2000-11-11 Neil Booth <neilb@earthling.net>
2537
2538 Remove CPP_PLACEMARKERs.
2539
2540 * cppexp.c (lex): Don't handle CPP_PLACEMARKER.
2541 * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
2542 * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
2543 Similarly.
2544 * cpplib.h: Remove CPP_PLACEMARKER.
2545 (struct lexer_state): Rename skip_newlines to next_bol.
2546 * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
2547 Simplify prev_white handling as a result.
2548 (paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
2549 (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
2550 (parse_args): Similarly. Update argument count tests.
2551 (enter_macro_context): Return 2 to indicate an empty macro.
2552 (replace_args): Don't bother pre-expanding an empty argument.
2553 Handle placemarkers and ## extension during pre-expansion.
2554 (cpp_get_token): Handle empty macro expansions. Don't worry
2555 about CPP_PLACEMARKERs.
2556 (_cpp_create_definition): Empty macros are now empty.
2557 (cpp_macro_defintion): Don't special case empty macros.
2558 * scan-decls.c: Don't bother with CPP_PLACEMARKERs.
2559 * c-lex.c: Similarly.
2560
2561 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
2562
2563 * gcc.texi, invoke.texi: Add new section discussing language
2564 standards; link to it where appropriate; refer to ISO C instead of
2565 ANSI C.
2566
2567 2000-11-11 Alexandre Oliva <aoliva@redhat.com>
2568
2569 * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
2570 into account.
2571
2572 * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
2573 modes.
2574
2575 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
2576
2577 * gcc.texi, gcov.texi: Update dates and version numbers.
2578
2579 2000-11-10 Zack Weinberg <zack@wolery.stanford.edu>
2580
2581 * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC. Look for
2582 flex and bison, specifically, first in a unified build and
2583 then installed on the system.
2584 * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@. Rename
2585 LEXFLAGS to FLEXFLAGS. Adjust ORDINARY_FLAGS_TO_PASS to
2586 match.
2587
2588 (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
2589 cppdefault.o): Remove pointless sed munging of source file
2590 name.
2591
2592 2000-11-10 Bernd Schmidt <bernds@redhat.co.uk>
2593
2594 * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
2595 for address reloads. Push replacements for REG_INC notes.
2596 (regno_clobbered_p): New arg SETS. Examine SETs if it's nonzero. All
2597 callers changed.
2598 * reload1.c (choose_reload_regs): Registers set in the insn can't be
2599 used for RELOAD_OTHER reloads.
2600
2601 2000-11-10 Mark Mitchell <mark@codesourcery.com>
2602
2603 * c-dump.h: New file.
2604
2605 2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2606
2607 * alpha.c (check_float_value): Use memcpy, not bcopy.
2608 * arm.c (output_move_double): Likewise.
2609 * arm.md: Likewise.
2610 * m88k.c (legitimize_operand): Likewise.
2611 * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
2612 * m88k.md: Likewise.
2613 * mips.c (override_options): Likewise.
2614 * mips.md: Likewise.
2615 * romp.c (output_fpops): Likewise.
2616 * rs6000.c (rs6000_override_options): Likewise.
2617 * sh.md: Likewise.
2618 * vax.c (check_float_value): Likewise.
2619
2620 * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
2621 * expmed.c (synth_mult): Likewise.
2622 * final.c (add_bb_string): Likewise.
2623 * genattr.c (main): Likewise.
2624 * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
2625 Likewise.
2626 * jump.c (thread_jumps): Likewise.
2627 * prefix.c (save_string): Likewise.
2628 * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
2629 * regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
2630 * reload1.c (reload, eliminate_regs): Likewise.
2631
2632 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
2633
2634 * gcc.texi (Service): Update to reflect current practice and
2635 location of the GNU service directory.
2636
2637 2000-11-09 Bernd Schmidt <bernds@redhat.co.uk>
2638
2639 * regrename.c (build_def_use): Mark contents of REG_INC notes as
2640 needing replacement.
2641
2642 * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
2643 a no-op move if regs are equal.
2644 * toplev.c (rest_of_compilation): Do the noop moves elimination pass
2645 when calling jump after post-reload splitting.
2646
2647 2000-11-09 Jan van Male <jan.vanmale@fenk.wau.nl>
2648
2649 * c-tree.texi: Fix typos.
2650 * extend.texi: Likewise
2651 * gcov.texi: Likewise
2652 * rtl.texi: Likewise
2653 * tm.texi: Likewise
2654
2655 2000-11-09 Hans-Peter Nilsson <hp@axis.com>
2656
2657 * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
2658 in_system_header and flags[1] before dereferencing flags[2].
2659
2660 2000-11-09 Matthew Hiller <hiller@redhat.com>
2661
2662 * reload1.c (reload_combine): Fixed calculation of
2663 first_index_reg, last_index_reg.
2664
2665 2000-11-09 Mark Mitchell <mark@codesourcery.com>
2666
2667 * c-dump.c (dequeue_and_dump): Dump function bodies.
2668
2669 * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
2670 (c-dump.o): New target.
2671 * c-common.h (flag_dump_translation_unit): New variable.
2672 (C_TYPE_QUALS): New macro.
2673 (strip_array_types): New function.
2674 (DECL_C_BIT_FIELD): New macro.
2675 (SET_DECL_C_BIT_FIELD): Likewise.
2676 (CLEAR_DECL_C_BIT_FIELD): Likewise.
2677 (dump_info_p): New typedef.
2678 (dump_tree_fn): Likewise.
2679 (lang_dump_tree): New variable.
2680 (dump_node_to_file): New function.
2681 * c-common.c (flag_dump_translation_unit): Define it.
2682 (strip_array_types): New function.
2683 * c-decl.c (c_decode_option): Handle -fdump-translation-unit.
2684 * c-lang.c (finish_file): Call dump_node_to_file if
2685 flag_dump_translation_unit.
2686 * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
2687 * c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
2688 * c-dump.c: New file.
2689
2690 2000-11-09 Christopher Faylor <cgf@cygnus.com>
2691
2692 * config/i386/cygwin.h: Add mingw startfile prefix.
2693
2694 2000-11-09 Richard Henderson <rth@redhat.com>
2695
2696 * flow.c (invalidate_mems_from_set): Split out from ...
2697 (mark_set_1): ... here.
2698 (try_pre_increment_1): Use it. Use propagate_block_delete_insn
2699 instead of turning insn into a NOTE_INSN_DELETED.
2700
2701 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
2702
2703 * extend.texi, invoke.texi: Move documentation of builtin versions
2704 of C library functions to one place and update.
2705
2706 2000-11-09 Richard Henderson <rth@redhat.com>
2707
2708 * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
2709 the types themselves to discover type equivalence.
2710
2711 2000-11-09 Mike Stump <mrs@wrs.com>
2712
2713 * Makefile.in (distclean): Remove a few extra leftovers.
2714
2715 2000-11-09 Richard Henderson <rth@redhat.com>
2716
2717 * recog.c (validate_replace_rtx_1): Consider subregs when
2718 replacing a register with a constant inside a sign/zero_extend.
2719
2720 * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2721
2722 2000-11-09 Geoffrey Keating <geoffk@redhat.com>
2723
2724 * c-decl.c (finish_struct): When a structure is completed,
2725 check all its variant types for completeness.
2726
2727 2000-11-09 Neil Booth <neilb@earthling.net>
2728
2729 * cpphash.c: Move cpp_defined here from cpplib.c.
2730 * cpplib.c: Update comments, move cpp_defined to cpphash.c.
2731 * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
2732 * cppmacro.c (cpp_get_token): Update comments, no need now
2733 to catch the CPP_EOF meaning EOL case.
2734
2735 2000-11-08 Geoffrey Keating <geoffk@redhat.com>
2736
2737 * config/sparc/sparc.c (sparc_va_arg): When the required alignment
2738 is more than that provided, copy to a temporary.
2739
2740 2000-11-09 Alexandre Oliva <aoliva@redhat.com>
2741
2742 * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
2743 interpreting $out as a macro assignment.
2744 * Makefile.in (T_TARGET): New auxiliary macro and target.
2745 (all): Add a target right in the beginning, so that we don't build
2746 T_TARGET by default.
2747
2748 2000-11-09 Graham Stott <grahams@redhat.com>
2749
2750 * config/i386/i386.md (mmx_pinsrw): Output operands in correct
2751 order for -mintel-syntax. Remove comment now that the operand
2752 order has been checked.
2753 (mmx_pextrw): Likewise.
2754 (mmx_pshufw): Likewise.
2755
2756 2000-11-09 Jakub Jelinek <jakub@redhat.com>
2757
2758 * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max.
2759 (c_getstr): New function.
2760 (expand_builtin_strstr): Do nothing if -fcheck-memory-usage.
2761 If both arguments are constant string, optimize out.
2762 (expand_builtin_strchr, expand_builtin_strrchr): New functions.
2763 (expand_builtin_strpbrk): Use c_getstr, do nothing if
2764 -fcheck-memory-usage.
2765 (expand_builtin_fputs): Likewise.
2766 (expand_builtin_strcmp): Add MODE argument.
2767 Use even if !HAVE_cmpstrsi.
2768 Optimize the case when both arguments are constant strings.
2769 (expand_builtin): Adjust expand_builtin_strcmp caller.
2770 Call expand_builtin_strchr and expand_builtin_strrchr.
2771 * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr
2772 builtins.
2773 * builtins.def (BUILT_IN_STRRCHR): Add.
2774
2775 2000-11-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2776
2777 * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL.
2778
2779 2000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
2780
2781 * calls.c (expand_call, emit_library_call_value_1), collect2.c
2782 (scan_prog_file), config/a29k/a29k.c (print_operand),
2783 config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy ()
2784 instead of bcopy ().
2785 * real.h: Use memcmp () instead of bcmp ().
2786 * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c
2787 (split_branches), config/sparc/sparc.c (ultra_flush_pipeline,
2788 ultrasparc_sched_init, ultrasparc_sched_reorder),
2789 config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset ()
2790 instead of bzero ().
2791 * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr ()
2792 instead of rindex ().
2793 * configure.in: Don't check for bzero, bcmp, index or rindex.
2794 * configure, config.in: Regenerate.
2795 * system.h: Don't include declarations for bzero, bcmp, index or
2796 rindex.
2797 * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define
2798 bzero, bcmp, index or rindex.
2799
2800 Wed Nov 8 21:58:20 2000 Christopher Faylor <cgf@cygnus.com>
2801
2802 * config/i386/cygwin.h: Add -no-win32 switch. Separate -mno-cygwin
2803 include and library paths from -mcygwin case. Parameterize some
2804 declarations to avoid warnings. Use standard locations for include and
2805 lib dirs.
2806
2807 2000-11-08 Nick Clifton <nickc@redhat.com>
2808
2809 * config/arm/arm.md (mulsidi3adddi): Change output operand
2810 constraint from "=&" to "+&".
2811 (umulsidi3adddi): Change output operand constraint from "=&" to
2812 "+&".
2813
2814 2000-11-08 Richard Henderson <rth@redhat.com>
2815
2816 * flow.c (init_propagate_block_info): Protect the rtx stored in
2817 mem_set_list from modification by find_auto_inc.
2818 (mark_set_1): Likewise.
2819
2820 2000-11-08 Neil Booth <neilb@earthling.net>
2821
2822 Move directive handling into the lexer itself.
2823
2824 * cpplex.c (_cpp_lex_token): Handle directives directly.
2825 In the case of a directive interrupting a function-like
2826 macro invocation, use extra_char since read_ahead is
2827 used to store the '#'. Return a CPP_EOF in this case.
2828 * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
2829 (cpp_get_token): Don't handle directives here.
2830 * cpplib.h: Remove CPP_DHASH token type.
2831
2832 Wed Nov 8 21:53:41 MET 2000 Jan Hubicka <jh@suse.cz>
2833
2834 * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes
2835 formed using PRE_MODIFY too.
2836
2837 2000-11-08 Mark Mitchell <mark@codesourcery.com>
2838
2839 * c-tree.texi (VAR_DECL): Describe representation of GCC's
2840 extension for placing variables in particular registers.
2841
2842 * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for
2843 unprototyped C functions with no parameters.
2844
2845 2000-11-08 Jakub Jelinek <jakub@redhat.com>
2846
2847 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int
2848 before passing to fprintf.
2849
2850 2000-11-08 Jakub Jelinek <jakub@redhat.com>
2851
2852 * function.c (expand_function_start): Cast GET_MODE_SIZE to
2853 HOST_WIDE_INT before negating it.
2854
2855 2000-11-08 Jakub Jelinek <jakub@redhat.com>
2856
2857 * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
2858 passed in multiple non-contiguous locations.
2859
2860 2000-11-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2861
2862 * README.gnat: Remove file.
2863
2864 2000-11-08 Alexandre Oliva <aoliva@redhat.com>
2865
2866 * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts
2867 in-place.
2868
2869 2000-11-07 Richard Henderson <rth@redhat.com>
2870
2871 * dwarfout.c (INSN_LABEL_FMT): Remove.
2872 (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
2873 (dwarfout_label): Remove.
2874 * dwarfout.h: Remove it's prototype.
2875 * dwarf2out.c (INSN_LABEL_FMT): Remove.
2876 (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
2877 (dwarf2out_label): Remove.
2878 * dwarf2out.h: Remove it's prototype.
2879 * final.c (final_scan_insn): Don't call dwarf[2]out_label.
2880
2881 2000-11-07 Richard Henderson <rth@redhat.com>
2882
2883 * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary
2884 search on the unwind region section.
2885
2886 * config/ia64/ia64.md (movbi): Add r/r alternative.
2887 (cmovdi_internal_astep): Describe all combinations of register
2888 classes for sources & destinations; remove matching constraints.
2889 (cmovdi_internal): Likewise.
2890
2891 * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed.
2892
2893 2000-11-07 Richard Henderson <rth@redhat.com>
2894
2895 * c-lang.c (start_cdtor, finish_cdtor): New functions.
2896 (finish_file): Use them in building constructor/destructor functions.
2897
2898 * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
2899 LD_FINI_SWITCH): Move ...
2900 * config/alpha/osf.h: ... here.
2901 * config/alpha/alpha-interix.h: Don't undef them.
2902
2903 2000-11-07 Jeffrey Oldham <oldham@oz.codesourcery.com>
2904
2905 * config/mips/t-iris6 (FPBIT): New. Added so that __unorddf2 is
2906 included in libgcc.a.
2907 (DPBIT): Likewise.
2908 (dp-bit.c): Likewise.
2909 (fp-bit.c): Likewise.
2910
2911 2000-11-07 Nick Clifton <nickc@redhat.com>
2912
2913 * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab.
2914 (INTERNAL_ASM_OP): Add missing tab.
2915
2916 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
2917
2918 * alias.c (init_alias_analysis), calls.c (expand_call,
2919 emit_library_call_value_1), combine.c (init_reg_last_arrays),
2920 cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
2921 (init_output_buffer, set_diagnostic_context), dwarf2out.c
2922 (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
2923 (init_emit_once), fold-const.c (mul_double, div_and_round_double),
2924 function.c (assign_parms), gcse.c (compute_can_copy,
2925 alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
2926 compute_hash_table, compute_set_hash_table,
2927 compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
2928 (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
2929 clear_units, schedule_block), integrate.c (initialize_for_inline,
2930 expand_inline_function), jump.c (thread_jumps), local-alloc.c
2931 (local_alloc), loop.c (combine_movables, count_loop_regs_set,
2932 load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
2933 regclass.c (init_reg_sets, init_reg_sets_1, regclass,
2934 record_reg_classes, allocate_reg_info), reload.c
2935 (get_secondary_mem, remove_address_replacements, find_reloads),
2936 reload1.c (reload, set_initial_label_offsets, finish_spills,
2937 reload_as_needed, choose_reload_regs_init,
2938 reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
2939 (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
2940 (rename_registers), stmt.c (expand_end_case), unroll.c
2941 (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
2942 () instead of bzero ().
2943
2944 2000-11-07 Neil Booth <neilb@earthling.net>
2945
2946 * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
2947
2948 2000-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2949
2950 * c-common.c (combine_strings): Only warn about long strings for C.
2951
2952 Tue Nov 7 19:44:30 2000 J"orn Rennecke <amylaar@redhat.com>
2953
2954 * combine.c (distribute_notes): Fix typo in last change.
2955
2956 2000-11-07 Geoff Keating <geoffk@redhat.com>
2957
2958 * config/rs6000/rs6000.md (movdi_internal32+1): Use
2959 operand_subreg_force rather than gen_rtx_SUBREG.
2960 (movdi_internal32+2): Likewise.
2961
2962 2000-11-07 Philip Blundell <philb@gnu.org>
2963
2964 * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
2965 * config/arm/linux-aout.h: Likewise.
2966 * configure: Regenerate.
2967
2968 2000-11-07 Philipp Thomas <pthomas@suse.de>
2969
2970 * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
2971 accepted my the gettext maintainer.
2972
2973 2000-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2974
2975 * builtins.c (expand_builtin_strpbrk): New function.
2976 (expand_builtin): Handle BUILT_IN_STRPBRK.
2977
2978 * builtins.def (BUILT_IN_STRPBRK): New entry.
2979
2980 * c-common.c (c_common_nodes_and_builtins): Declare builtin
2981 strpbrk.
2982
2983 2000-11-07 David O'Brien <obrien@dragon.nuxi.com>
2984
2985 * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
2986 * POTFILES.in: Add config/alpha/freebsd.h
2987 * configure.in: Add alpha*-freebsd support.
2988 * configure: Regenerate.
2989
2990 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
2991
2992 * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
2993 copy of ptr_type_node rather than ptr_type_node itself.
2994
2995 Tue Nov 7 06:29:24 2000 J"orn Rennecke <amylaar@redhat.com>
2996
2997 * combine.c (recog_for_combine): Allocate uninitialized vector with
2998 rtvec_alloc.
2999 * recog.c (apply_change_group): Likewise.
3000
3001 Tue Nov 7 06:24:02 2000 J"orn Rennecke <amylaar@redhat.com>
3002
3003 * flow.c (verify_local_live_at_start): Back out last change.
3004 * combine.c (distribute_notes): When parts of a hard reg are
3005 neither set nor referenced in PLACE, search backwards for a
3006 place to put a REG_UNUSED note; if none found, ask for flow
3007 info refresh.
3008
3009 Mon Nov 6 20:08:13 2000 J"orn Rennecke <amylaar@redhat.com>
3010
3011 * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
3012 with (clobber (match_scratch...)).
3013
3014 2000-11-06 Neil Booth <neilb@earthling.net>
3015
3016 * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
3017 error status.
3018
3019 2000-11-06 Neil Booth <neilb@earthling.net>
3020
3021 * tradcpp.c (special_symbol): Assign an null string rather
3022 than writing to an unallocated buffer.
3023
3024 2000-11-06 Neil Booth <neilb@earthling.net>
3025
3026 * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
3027 CPP_MACRO_ARG case.
3028
3029 2000-11-06 Neil Booth <neilb@earthling.net>
3030
3031 * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
3032 tok.val.arg_no as appropriate.
3033 * cppexp.c (lex): Similarly.
3034 * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
3035 cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
3036 * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
3037 cpp_macro_definition): Similarly.
3038 * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
3039
3040 2000-11-06 Jakub Jelinek <jakub@redhat.com>
3041
3042 * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
3043 operands[1] is constant, calculate the sum and generate movdi.
3044 (addsi3): Similarly. Use SImode in call to arith_4096_operand.
3045 (subsi3): Use SImode in call to arith_4096_operand.
3046
3047 2000-11-06 Jakub Jelinek <jakub@redhat.com>
3048
3049 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
3050 adjust %o1, not %o0 if the return type is large structure.
3051
3052 2000-11-06 Jakub Jelinek <jakub@redhat.com>
3053
3054 * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
3055 update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
3056
3057 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
3058
3059 * expmed.c (expand_divmod): For signed divide by 2, prefer
3060 a branch and fewer shifts if branches are very cheap.
3061
3062 2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
3063
3064 * Makefile.in: Remove all targets related to building
3065 distributions and diffs, or INSTALL.
3066 * INSTALL, install1.texi: Remove.
3067 * configure.in: Remove mention of distdir.
3068 * configure: Regenerate.
3069 * objc/Make-lang.in: Remove mention of distdir.
3070
3071 2000-11-04 Neil Booth <neilb@earthling.net>
3072
3073 * cpp.texi: Update for _Pragma.
3074
3075 2000-11-04 Joseph S. Myers <jsm28@cam.ac.uk>
3076
3077 * gcc.texi (Contributing): Update URL for projects web page.
3078
3079 2000-11-04 Neil Booth <neilb@earthling.net>
3080
3081 * cpplex.c (parse_string): Don't allow multiline strings in
3082 #include family directives.
3083
3084 2000-11-04 Neil Booth <neilb@earthling.net>
3085
3086 * cpplib.c (do_line): Only warn pedantically if not reading
3087 preprocessed input.
3088
3089 2000-11-04 Alexandre Oliva <aoliva@redhat.com>
3090
3091 * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
3092 RETURN_POPS_ARGS().
3093
3094 2000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
3095
3096 * builtins.c (expand_builtin_strlen): Remove unused mode
3097 argument.
3098 * gcc.c (process_command): Remove unused variable.
3099 * fold-const.c: Include expr.h.
3100 * recog.c: Include reload.h.
3101 * Makefile.in (recog.o, fold-const.o): Update deps.
3102
3103 2000-11-02 Geoffrey Keating <geoffk@cygnus.com>
3104
3105 * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
3106
3107 Fri Nov 3 13:41:04 2000 Mark P Mitchell <mark@codesourcery.com>
3108
3109 * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
3110 handling.
3111 (STARTFILE_SPEC): Likewise.
3112 (LINK_SPEC): Likewise.
3113
3114 2000-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3115
3116 * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
3117 (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
3118 (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
3119
3120 2000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
3121
3122 * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
3123 (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
3124 perm_calloc, get_identifier, maybe_get_identifier,
3125 real_value_from_int_cst, simple_cst_equal), varasm.c
3126 (assemble_name, assemble_real, immed_real_const_1,
3127 compare_constant_1, decode_rtx_const, output_constant_pool): Use
3128 strrchr () instead of rindex (). Use memcmp () instead of bcmp
3129 (). Use memcpy () instead of bcopy (). Use memset () instead of
3130 bzero ().
3131
3132 2000-11-03 Nathan Sidwell <nathan@codesourcery.com>
3133
3134 * cppfiles.c (open_file): If already read, then don't reopen.
3135 Immediately close an empty file.
3136
3137 2000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
3138
3139 * expr.h (fold_builtin): Move declaration...
3140 * tree.h (fold_builtin): ... here.
3141
3142 Fri Nov 3 05:41:07 2000 J"orn Rennecke <amylaar@redhat.com>
3143
3144 * flow.c (verify_local_live_at_start): Allow hard regs to die.
3145
3146 2000-11-02 Neil Booth <neilb@earthling.net>
3147
3148 config:
3149 * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
3150 alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
3151 alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
3152 alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
3153 arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
3154 arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
3155 c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
3156 elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
3157 i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
3158 i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
3159 i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
3160 i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
3161 i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
3162 i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
3163 i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
3164 i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
3165 i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
3166 i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
3167 i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
3168 i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
3169 i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
3170 ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
3171 m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
3172 m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
3173 m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
3174 m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
3175 m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
3176 m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
3177 m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
3178 m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
3179 m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
3180 m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
3181 mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
3182 mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
3183 mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
3184 mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
3185 mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
3186 mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
3187 ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
3188 ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
3189 pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
3190 pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
3191 romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
3192 rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
3193 rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
3194 rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
3195 sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
3196 sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
3197 sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
3198 sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
3199 sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
3200 sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
3201 sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
3202 v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
3203 vax/vaxv.h, vax/vms.h, we32k/we32k.h
3204
3205 Replace -A() with -A=, the new assertion syntax.
3206
3207 Thu Nov 2 21:52:35 2000 J"orn Rennecke <amylaar@redhat.com>
3208
3209 * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
3210 elim_i1.
3211 In REG_DEAD handling: When handling parts of multi-hard-reg hard
3212 registers, increment the loop counter by the size of the parts;
3213 use recursion to handle individual parts.
3214
3215 2000-11-02 Neil Booth <neilb@earthling.net>
3216
3217 * configure.in: Make integrated CPP the default.
3218 * configure: Regenerate.
3219
3220 Thu Nov 2 19:20:12 2000 J"orn Rennecke <amylaar@redhat.com>
3221
3222 * reload.c (find_equiv_reg): Test all hard registers for membership
3223 in the requested class.
3224
3225 2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
3226
3227 * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
3228 process_command, main), gcov.c (open_files, output_data), tlink.c
3229 (frob_extension, scan_linker_output), toplev.c
3230 (file_name_nondirectory): Use strchr () and strrchr () instead of
3231 index () and rindex ().
3232
3233 2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
3234
3235 * c-common.c (get_flag_spec, check_format_info_main,
3236 check_format_types): Use strchr () instead of index (). Compare
3237 against error_mark_node instead of comparing the TREE_CODE against
3238 ERROR_MARK.
3239
3240 2000-11-02 Zack Weinberg <zackw@Stanford.EDU>
3241
3242 Integrated CPP.
3243
3244 * c-lex.c (init_c_lex): Update cpp_start_read call.
3245 (cb_ident): Update for new callback prototype.
3246 (cb_def_pragma): Update for new cpp_get_token prototype.
3247 (c_lex): Similarly. Use cpp_get_line.
3248
3249 * c-parse.in (finish_parse): Update for new cpp_finish
3250 prototype.
3251
3252 * cp/lex.c (finish_parse): Similarly.
3253
3254 2000-11-01 Geoff Keating <geoffk@cygnus.com>
3255
3256 * machmode.def: Add V16QImode.
3257
3258 2000-11-01 Richard Henderson <rth@redhat.com>
3259
3260 * dwarf2out.c (loc_descriptor_from_tree): Check for null result
3261 from rtl_for_decl_location.
3262 (add_location_or_const_value_attribute): Likewise.
3263
3264 2000-11-01 Neil Booth <neilb@earthling.net>
3265
3266 * cpplib.c (run_directive): Use correct line number for output
3267 of _Pragma. Remember any in-progress directive.
3268
3269 * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
3270
3271 2000-11-01 Richard Henderson <rth@redhat.com>
3272
3273 * stmt.c (expand_start_null_loop): Set continue_label.
3274
3275 2000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
3276
3277 * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
3278 (expand_builtin_constant_p): Move parts of the code into
3279 fold_builtin_constant_p.
3280 (expand_builtin_strlen): Move parts of the code into fold_builtin.
3281 * expr.h (fold_builtin): Declare.
3282 * fold-const.c (fold): Handle builtin calls.
3283
3284 * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
3285
3286 2000-11-01 Richard Henderson <rth@redhat.com>
3287
3288 * stmt.c (expand_start_null_loop): New.
3289 (expand_end_null_loop): New.
3290 * c-semantics.c (genrtl_do_stmt): Use them.
3291 * tree.h: Declare them.
3292
3293 2000-11-01 Richard Henderson <rth@redhat.com>
3294
3295 * cppmain.c (scan_buffer): Don't avoid paste for assembly.
3296
3297 2000-11-01 Neil Booth <neilb@earthling.net>
3298
3299 * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
3300 * cp/spew.c: Similarly.
3301 * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
3302 * cppmacro.c (stringify_arg): Similarly.
3303 * cpplib.h (CPP_BACKSLASH): Delete.
3304
3305 2000-10-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3306
3307 * builtins.c (expand_builtin_strstr): New function.
3308 (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
3309
3310 * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
3311
3312 * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
3313 and builtin strchr.
3314
3315 2000-10-31 Richard Henderson <rth@redhat.com>
3316
3317 * config/i386/i386.c (fcmov_comparison_operator): Check for
3318 CCFPmode or CCFPUmode instead of CCmode.
3319 (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
3320 unordered operations as well.
3321
3322 2000-10-31 Richard Henderson <rth@redhat.com>
3323
3324 * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
3325 of integer_zero_node.
3326
3327 2000-10-31 Richard Henderson <rth@redhat.com>
3328
3329 * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
3330
3331 2000-10-31 Nick Clifton <nickc@redhat.com>
3332
3333 * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
3334 -fdata-sections to override the section attribute of a DECL.
3335
3336 2000-10-31 Chris Demetriou <cgd@sibyte.com>
3337
3338 * libgcc2.c (__shtab): Remove __shtab variable.
3339 * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
3340 * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
3341 members.
3342
3343 2000-10-31 Jim Wilson <wilson@redhat.com>
3344
3345 * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
3346 * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
3347 * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
3348 instead of ASM_OUTPUT_INTERNAL_LABEL.
3349 (dwarf2out_end_block, dwarf2out_label): Likewise.
3350 * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
3351 * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
3352
3353 2000-10-31 Richard Henderson <rth@redhat.com>
3354
3355 * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
3356 (size_of_locs): Set it.
3357 (output_loc_operands): Use it to compute branch displacement.
3358 (int_loc_descriptor): New.
3359 (mem_loc_descriptor): Dereference memory in the proper size.
3360 Use DW_OP_plus_uconst when possible. Use int_loc_descriptor.
3361 (loc_descriptor_from_tree): New.
3362 (rtl_for_decl_location): Break out from ...
3363 (add_location_or_const_value_attribute): ... here.
3364 (add_bound_info): Use loc_descriptor_from_tree.
3365
3366 2000-10-31 Neil Booth <neilb@earthling.net>
3367
3368 * cpp.texi: Update for new command line assertion syntax.
3369 * cpplib.c (cpp_define): Simplify a bit.
3370 (cpp_assert, cpp_unassert): Use handle_assertion.
3371 (handle_assertion): New function; accept new command line
3372 syntax with '='.
3373 * testsuite/gcc.dg/cpp/assert3.c: New tests.
3374
3375 2000-10-31 Neil Booth <neilb@earthling.net>
3376
3377 * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
3378 undefined. Remove #ifdef check.
3379 * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
3380 Define STDC_0_IN_SYSTEM_HEADERS to 1.
3381
3382 2000-10-31 Jan Hubicka <jh@suse.cz>
3383 Jakub Jelinek <jakub@redhat.com>
3384
3385 * config/i386/i386.h: Clarify CCNOmode description in comment.
3386 (EXTRA_CC_MODES): Remove CCRCmode.
3387 * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
3388 (put_condition_code, ix86_match_ccmode): Likewise.
3389 (ix86_cc_mode): Likewise. Fix comment.
3390 (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
3391 * config/i386/i386.md: Add unspec 12 description.
3392 (adddi3 split): Use unspec 12 instead of CCRCmode.
3393 (addsi3_carry_rc): Remove.
3394 (addsi3_cc, addqi3_cc): New patterns.
3395 (addsi_3): Swap operands, match CCZmode.
3396 (addsi_4): Rewritten.
3397 (addsi_5): Renamed from addsi_6.
3398 (addsi_6): Removed.
3399 (addhi_3): Swap operands, match CCZmode.
3400 (addhi_4): Rewritten.
3401 (addhi_5): Renamed from addhi_6.
3402 (addhi_6): Removed.
3403 (addqi_3): Swap operands, match CCZmode.
3404 (addqi_4): Rewritten.
3405 (addqi_5): Renamed from addqi_6. Use =q constraint for clobber.
3406 (subsi3_carry_rc): Removed.
3407 (iorqi_3): Use =q constraint for clobber.
3408 (xorqi_cc_2): Likewise.
3409 (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
3410 (x86_movsicc_0_m1_rc): Removed.
3411 (cmp?i peepholes): Remove neg. Use CCGCmode instead of CCRCmode.
3412
3413 2000-10-31 Joseph S. Myers <jsm28@cam.ac.uk>
3414
3415 * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
3416 and decrement of complex types.
3417
3418 2000-10-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3419
3420 * builtins.c (expand_builtin_fputs): When deleting NOP calls to
3421 builtin fputs, ensure we still evaluate the stream in case it
3422 has side-effects.
3423
3424 2000-10-31 Jakub Jelinek <jakub@redhat.com>
3425
3426 * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
3427 to expand_shift.
3428
3429 Tue Oct 31 15:33:27 2000 J"orn Rennecke <amylaar@redhat.com>
3430
3431 * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
3432 (fp_extended_operand, emit_fpscr_use): Likewise.
3433 * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
3434 (fpul_operand): New function.
3435 * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
3436 fp_extended_operand. Add fpul_operand.
3437 * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
3438 (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
3439 (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
3440 (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
3441 (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
3442 (divdf3_i): Likewise.
3443 (floatsisf2): Likewise. Use fpul_operand for 'y' operand.
3444 (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
3445 (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
3446 (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
3447 (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
3448
3449 2000-10-31 Bernd Schmidt <bernds@redhat.co.uk>
3450
3451 * config/i386/i386.c (ix86_init_builtins): Correct return type
3452 building v4hi_ftype_v4hi_int_int tree node.
3453 (ix86_expand_builtin): Use correct operand numbers 0 and 1.
3454 Copy operand 0 into a Pmode register, don't generate a MEM rtx.
3455
3456 * config/i386/i386.md (sse_movntdi): Use mmx register constraint
3457 for operand 1.
3458 (mmx__uavgv8qi3): Correct insn mnemonic.
3459 (mmx_psadbw): Correct insn mnemonic. Use V8QI mode for operands 1 and 2.
3460 (mmx_punpckhwd): Correct insn mnemonic.
3461 (mmx_punpckhdq): Likewise.
3462 (mmx_punpcklwd): Likewise.
3463 (mmx_punpckldq): Likewise.
3464 (prefetch): Use immediare_operand and 'n' constraint for operand 1.
3465 Renumber case labels to match the _mm_prefetch constants defined in
3466 xmmintrin.h.
3467
3468 * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
3469 if the splitter didn't emit new insns.
3470 Make sure we call cleanup_subreg_operands even when splitting the last
3471 insn in a basic block.
3472
3473 * invoke.texi (Debugging Options): Describe -do.
3474 * toplev.c (enum_dump_file_index): New entry DFI_postreload.
3475 (dump_file): Likewise.
3476 (rest_of_compilation): Split .greg dump into .greg and .postreload.
3477
3478 2000-10-30 Neil Booth <neilb@earthling.net>
3479
3480 * cppfiles.c (stack_include_file): Check for stacked contexts
3481 here.
3482 * cpphash.h (_cpp_do__Pragma): New prototype.
3483 * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
3484
3485 * cpplex.c (skip_escaped_newlines): Only process trigraphs and
3486 escaped newlines if !(buffer->from_stage3).
3487 (_cpp_lex_token): Warn about missing newlines iff
3488 !buffer->from_stage3.
3489
3490 * cpplib.c (get__Pragma_string, destringize,
3491 _cpp_do__Pragma): New functions.
3492 (run_directive): Set output_line for _Pragma to avoid line
3493 markers in output. Set from_stage3 and prevent macro expansion
3494 for _Pragma and command-line options. Check buffer exhaustion.
3495 (cpp_push_buffer): Don't check for stacked macro contexts, as
3496 this is perfectly legitimate for _Pragma. Move the check to
3497 stack_include_file instead. Set from_stage3 iff buffer is
3498 preprocessed input.
3499
3500 * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
3501 unsigned. New boolean from_stage3.
3502 (struct spec_nodes): Add n__Pragma.
3503
3504 * cppmacro.c (enter_macro_context): Flip sense of return value.
3505 (_cpp_get_token): Handle _Pragma operator.
3506
3507 2000-10-30 Phil Edwards <pme@sources.redhat.com>
3508
3509 * gcc.texi: The C++ standard isn't "draft" anymore.
3510
3511 2000-10-30 Mark Mitchell <mark@codesourcery.com>
3512
3513 * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
3514
3515 2000-10-29 Neil Booth <neilb@earthling.net>
3516
3517 * cpplib.c (skip_rest_of_line): Use _cpp_get_token.
3518
3519 2000-10-29 Joseph S. Myers <jsm28@cam.ac.uk>
3520
3521 * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
3522 fixinc/inclhack.def: Change comments mentioning C9X to refer to
3523 C99 instead.
3524
3525 * invoke.texi: Document that -V will only work for very similar
3526 versions of driver and compiler.
3527
3528 2000-10-29 Neil Booth <neilb@earthling.net>
3529
3530 * cppmacro.c (_cpp_create_definition): Optimize the case of
3531 a macro defined to itself.
3532
3533 2000-10-29 Neil Booth <neilb@earthling.net>
3534
3535 * cpplex.c (save_comment): Don't store new lines in C++ comments.
3536
3537 2000-10-29 Michael Hayes <mhayes@redhat.com>
3538
3539 * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
3540
3541 2000-10-28 Geoffrey Keating <geoffk@cygnus.com>
3542
3543 * cpphash.c (cpp_forall_identifiers): Add context variable
3544 for callback routine.
3545 * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
3546 change.
3547 (main): Call cpp_forall_identifiers with null context.
3548 * cpplib.h (cpp_forall_identifiers): Update prototype.
3549
3550 * cppmain.c: Make `parse_in' and `print' static.
3551
3552 2000-10-28 Alan Modra <alan@linuxcare.com.au>
3553
3554 * c-decl.c (finish_function): Clear c_function_name_declared_p.
3555
3556 2000-10-28 Richard Henderson <rth@redhat.com>
3557
3558 * regrename.c (scan_rtx_address): Frob action, not class,
3559 when trying to disable optimization.
3560
3561 2000-10-28 Mark Mitchell <mark@codesourcery.com>
3562
3563 * c-semantics.c (make_rtl_for_local_static): Don't clobber
3564 DECL_ASSEMBLER_NAME.
3565
3566 2000-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
3567
3568 * configure.in: Determine and substitute gcc_version_full.
3569 * configure: Regenerate.
3570 * gccbug.in: Use it to give full version. Don't allow
3571 confidential PRs.
3572
3573 2000-10-28 Richard Henderson <rth@redhat.com>
3574
3575 * recog.c (split_all_insns): Run cleanup_subreg_operands
3576 after reload.
3577
3578 * regrename.c (regrename_optimize): Verify that all registers of
3579 a multiple register mode are available.
3580 (scan_rtx_address): Accept the mode of the address; all callers
3581 changed.
3582
3583 * cpplib.c (run_directive): Fix prototype.
3584
3585 2000-10-28 Bernd Schmidt <bernds@redhat.co.uk>
3586
3587 * reload.c (find_reloads): Distinguish "wins" so that we know whether
3588 a given operand won because of a matching constraint or not; then use
3589 that information to compute goal_alternative_matched properly.
3590 * reload1.c (choose_reload_regs): Never set reload_override_in for an
3591 optional reload.
3592
3593 * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
3594 accurate value for MULT.
3595 * config/ia64/ia64.c (ia64_print_operand): Require probability to be
3596 2% or > 98% before using static branch prediction bits.
3597
3598 2000-10-28 Neil Booth <neilb@earthling.net>
3599
3600 New macro expander.
3601
3602 * cpplib.c (struct answer): New.
3603 (struct if_stack): Use cpp_lexer_pos rather than line and col.
3604 Rename cmacro mi_cmacro.
3605 (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
3606 IN_I): New directive and flags.
3607 (skip_rest_of_line, check_eol, run_directive, glue_header_name,
3608 parse_answer, parse_assertion, find_answer): New functions.
3609 (parse_ifdef, detect_if_not_defined, validate_else): Remove.
3610 (lex_macro_node): New function to replace parse_ifdef and
3611 get_define_node.
3612
3613 (_cpp_handle_directive): New function, combines _cpp_check_directive
3614 and _cpp_check_linemarker.
3615
3616 (do_define, do_undef, parse_include, do_include, do_import,
3617 do_include_next, read_line_number, do_line, do_ident, do_pragma,
3618 do_pragma_once, do_pragma_poison, do_pragma_dependency):
3619 Update for new token getting interface.
3620
3621 (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
3622 : Update for new multiple-include optimisation technique.
3623 (do_elif): Don't forget to invalidate controlling macros.
3624
3625 (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
3626 (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
3627 Functions to handle assertions with the new token interface.
3628 (do_assert, do_unassert): Use them.
3629
3630 (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
3631 Use run_directive.
3632
3633 (_cpp_init_stacks): Register directive names. Don't register special
3634 nodes.
3635
3636 * cpperror.c (print_containing_files, _cpp_begin_message): Update to
3637 new position recording regime.
3638 (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
3639 cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
3640 cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
3641 (cpp_type2name): Move to cpplex.c.
3642
3643 * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
3644 (parse_defined): Update to handle new multiple include optimisation
3645 method. Remove poisoned identifier warning.
3646 (parse_assertion, TYPE_NAME): Delete.
3647 (lex): Update for multiple include optimisation, removal of
3648 CPP_DEFINED, to use _cpp_test_assertion for assertions and
3649 cpp_token_as_text.
3650 (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
3651 (op_as_text): New function, to wrap cpp_token_as_text.
3652
3653 * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
3654 Update for MI optimisation.
3655 (_cpp_execute_include): Take a token rather than 3 arguments. Fix
3656 segfault on diagnostic.
3657 (_cpp_compare_file_date): Take a token rather than 3 args.
3658 (cpp_read_file): Work correctly for zero-length files.
3659
3660 * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
3661 _cpp_init_hashtable and _cpp_cleanup_hashtable.
3662 (cpp_lookup): Place identifiers at front of identifier pool
3663 for _cpp_lookup_with_hash.
3664 (_cpp_lookup_with_hash): Require identifiers to be at the front of
3665 the identifier pool. Commit the memory if not already in the
3666 hash table.
3667
3668 * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
3669 Initialise various members of cpp_reader, memory pools, and the
3670 special nodes.
3671 (cpp_printer_init): Delete.
3672 (cpp_cleanup): Update.
3673 (struct builtin, builtin_array, initialize_builtins): Update for new
3674 hashnode definition and builtin handling.
3675 (cpp_start_read, cpp_finish): Don't take or initialise a
3676 printer. Update.
3677
3678 * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
3679 PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
3680 T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
3681 T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
3682 (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
3683 struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
3684 NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
3685 struct toklist, struct cpp_context, struct specnodes,
3686 TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
3687 NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
3688 enum builtin_type, cpp_can_paste): New.
3689 (struct cpp_token): Delete line and col members.
3690 (struct cpp_buffer): New member output_lineno.
3691 (struct lexer_state): Delete indented, in_lex_line, seen_dot.
3692 Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
3693 (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
3694 ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
3695 base_context, context, directive, mi_state, mi_if_not_defined,
3696 mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
3697 mlstring_pos, macro_buffer, macro_buffer_len.
3698 Delete members mls_line, mls_column, token_list, potential_control_macro,
3699 temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
3700 context_cap, cur_context, no_expand_level, paste_level, contexts, args,
3701 save_parameter_spellings, need_newline, .
3702 Change type of date, time and spec_nodes members.
3703 Change prototypes for include and ident callbacks.
3704 (struct cpp_hashnode): Change type of name. Remove union members
3705 expansion and code. Add members macro, operator and builtin.
3706
3707 (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
3708 cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
3709 cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
3710 cpp_stop_lookahead): New prototypes.
3711 (cpp_printer_init, cpp_dump_definition): Delete prototypes.
3712
3713 (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
3714 Move from cpphash.h.
3715
3716 * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
3717 ufputs): Move to cpplib.h.
3718 (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
3719 TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
3720 COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
3721 struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
3722 _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
3723 _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
3724 _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
3725 _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
3726 _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
3727 _cpp_parse_assertion, _cpp_find_answer): Delete.
3728 (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
3729 POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
3730 _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
3731 _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
3732 _cpp_handle_directive, DSC): New.
3733 (struct include_file): New member defined.
3734
3735 (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
3736 _cpp_compare_file_date): Update.
3737 (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
3738 (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
3739 _cpp_cleanup_hashtable.
3740
3741 * Makefile.in: Remove cppoutput.c.
3742
3743 * cppoutput.c: Delete
3744
3745 * fixheader.c (read_scan_file): Update for new cpp_get_token
3746 prototype.
3747 (recognized_function): New argument LINE.
3748
3749 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
3750 new cpp_get_token prototype.
3751
3752 * scan.h (recognized_function): Update prototype.
3753
3754 * po/POTFILES.in: Remove cppoutput.c.
3755
3756 2000-10-27 Mark Mitchell <mark@codesourcery.com>
3757
3758 * c-typeck.c (check_init_type_bitfields): Remove.
3759 (constructor_incremental): Likewise.
3760 (struct constructor_stack): Remove incremental bit.
3761 (struct initializer_stack): Likewise.
3762 (start_init): Don't play with constructor_incremental.
3763 (finish_init): Likewise.
3764 (really_start_incremental_init): Likewise.
3765 (push_init_level): Likewise.
3766 (pop_init_level): Likewise.
3767 (output_init_level): Likewise.
3768 (output_pending_init_elements): Likewise.
3769
3770 2000-10-21 Mike Coleman <mcoleman2@kc.rr.com>
3771
3772 * c-pragma.c (handle_pragma_pack): Initialize align to -1.
3773 Improve error messages. Correct parsing of
3774 #pragma pack(pop [,id]). Do not check the user-supplied
3775 alignment if we're popping.
3776
3777 * gcc.dg/pack-test-1.c: New test case.
3778 * gcc.dg/pack-test-2.c: New test case.
3779 * gcc.dg/pack-test-1.h: New file.
3780
3781 2000-10-27 Neil Booth <neilb@earthling.net>
3782
3783 * cpp.texi: Update.
3784
3785 2000-10-27 Kelley Cook <kelley.cook@home.com>
3786
3787 * invoke.texi: Document -mintel-syntax
3788
3789 2000-10-27 Richard Henderson <rth@redhat.com>
3790
3791 * invoke.texi: Document -frename-registers. Add it to -O3.
3792 * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
3793 (enum dump_file_index, dump_file): Update order.
3794 (main): Set flag_rename_registers at -O3.
3795
3796 2000-10-27 Richard Henderson <rth@redhat.com>
3797
3798 * config/alpha/alpha.h (enum reg_class): Add PV_REG.
3799 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
3800 (REG_CLASS_FROM_LETTER): Assign it to 'c'.
3801 * config/alpha/alpha.md (call_osf_1): Use it.
3802 (call_value_osf_1): Likewise.
3803
3804 * config/ia64/ia64.c: Revert 10-23 patch.
3805 (ia64_hard_regno_rename_ok): New.
3806 * config/ia64/ia64-protos.h: Declare it.
3807 * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
3808
3809 2000-10-27 Bernd Schmidt <bernds@redhat.co.uk>
3810 Richard Henderson <rth@redhat.com>
3811
3812 * regrename.c: Rewrite to handle multi-register modes and
3813 cond_exec instructions.
3814 * Makefile.in (regrename.o): Update dependancies.
3815 * recog.h (struct operand_alternative): Add is_address.
3816 * recog.c (preprocess_constraints) [case 'p']: Set it.
3817
3818 2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
3819
3820 * configure.in: If not NO_MINUS_C_MINUS_O, substitute
3821 OUTPUT_OPTION with '-o $@'. Make zlibdir, zlibinc relative to
3822 top level. Kill oldstyle_subdirs. Do not include
3823 $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
3824 $outputs. Do not run configure.lang from config.status.
3825 Rearrange warning-flag logic to correspond to what the
3826 makefile wants. Put special vax stage1 options in
3827 @stage1_flags@ not @stage1_warn_cflags@. Don't do anything
3828 with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
3829 (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
3830 switch is given, nothing otherwise.
3831 * configure.lang: Delete.
3832
3833 * Makefile.in: Expunge all traces of extra_c_objs,
3834 extra_cxx_objs, and extra_cpp_objs. Set MAYBE_CPPLIB from
3835 @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS. Set
3836 warning options via a three level scheme so that -pedantic and
3837 -Wtraditional are not used for non-C front ends: LOOSE_WARN,
3838 STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
3839 WARN_CFLAGS. Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
3840 Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
3841 Set OUTPUT_OPTION, ZLIB, ZLIBINC. Do not set P,
3842 LANG_FLAGS_TO_PASS. Add OUTPUT_OPTION to all object-file
3843 generation rules. Wrap all rules that change the current
3844 directory in parentheses; pmake doesn't spawn a new shell for
3845 each command. Expunge all references to $(P). When one
3846 command depends on another and they're run all at once, use &&
3847 to separate them, not ;. Add libgcc_s$(SHLIB_EXT) to files
3848 deleted on make clean. Force OUTPUT_OPTION='-o $@' in stage2
3849 and beyond.
3850
3851 * objc/Make-lang.in: Wrap all rules that change the current
3852 directory in parentheses. Expunge all references to $(P).
3853 When one command depends on another and they're run all at
3854 once, use && to separate them, not ;. Add OUTPUT_OPTION to
3855 all object-file generation rules. Delete obsolete variables.
3856 * objc/Makefile.in: Delete.
3857
3858 2000-10-27 Jakub Jelinek <jakub@redhat.com>
3859
3860 * calls.c (expand_call): If sibcall_failure is set during pass 1,
3861 clear tail_call_insns as well.
3862
3863 2000-10-27 Nick Clifton <nickc@redhat.com>
3864
3865 * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
3866 prototype.
3867
3868 2000-10-26 Richard Henderson <rth@redhat.com>
3869
3870 * calls.c (expand_call): Supress sibcall if we have a
3871 BLKmode return in registers.
3872
3873 2000-10-26 Bernd Schmidt <bernds@redhat.co.uk>
3874
3875 * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
3876 into memory.
3877
3878 2000-10-26 Nathan Sidwell <nathan@codesourcery.com>
3879
3880 * tree.c (make_node, case 't'): Set alignment to that of
3881 char_type_node.
3882 * expr.c (move_by_pieces_ninsns): Abort if some length remains.
3883
3884 2000-10-25 Mark Mitchell <mark@codesourcery.com>
3885
3886 * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
3887 * configure.in (enable-libstdcxx-v3): Arrange to have
3888 HAVE_LIBSTDCXX_V3 substituted into the output files.
3889
3890 2000-10-25 Richard Henderson <rth@redhat.com>
3891
3892 * recog.c (constrain_operands): Initialize which_alternative
3893 before no alternatives early exit.
3894
3895 * cse.c (find_comparison_args): Check that we can reverse a
3896 comparison if needed before accepting the substitution.
3897
3898 * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
3899
3900 * simplify-rtx.c (simplify_relational_operation): Sign extend
3901 low words before sign extending to high words.
3902
3903 2000-10-25 Nick Clifton <nickc@redhat.com>
3904
3905 * config/mcore/mcore.c: Include config.h before system.h.
3906
3907 2000-10-25 Ray Essick <essick@ddna.labs.mot.com>
3908
3909 * config/mcore/mcore.md (return): Force function epilogue to
3910 always be generated to work around epilogue suppression bug in
3911 M*Core backend.
3912
3913 2000-10-25 Joseph S. Myers <jsm28@cam.ac.uk>
3914
3915 * c-decl.c (grokdeclarator): Move warning for qualified void
3916 return types with -pedantic to when the function type is
3917 constructed. At -W, warn in general for qualified function return
3918 types, except for volatile void.
3919 * invoke.texi: Document this new warning at -W.
3920
3921 2000-10-25 Neil Booth <neilb@earthling.net>
3922
3923 * cpp.texi: Update with implementation-defined behavior and
3924 internal limits.
3925
3926 2000-10-25 Jakub Jelinek <jakub@redhat.com>
3927
3928 * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
3929 incomplete type force it into alias set 0.
3930
3931 Wed Oct 25 01:02:44 EDT 2000 John Wehle (john@feith.com)
3932
3933 * alias.c: Include basic-block.h.
3934 (loop_p): New function.
3935 (mark_constant_function): Use it.
3936 * Makefile.in (alias.o): Update dependencies.
3937
3938 2000-10-24 Aldy Hernandez <aldyh@redhat.com>
3939
3940 * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
3941 like memory.
3942
3943 2000-10-24 Jim Wilson <wilson@cygnus.com>
3944
3945 * expmed.c (store_bit_field): Move integer pun code down after
3946 code that calls emit_move_insn for entire register move.
3947 * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
3948 Oct 20 changes. Only store mode in TYPE_MODE if RECORD_TYPE.
3949
3950 2000-10-24 Richard Henderson <rth@cygnus.com>
3951
3952 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
3953 register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
3954
3955 2000-10-24 Aldy Hernandez <aldyh@redhat.com>
3956
3957 * gcse.c (cprop_insn): do not propagate constants into jump_insn
3958 for machines with CC0 more than once.
3959
3960 2000-10-24 Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
3961
3962 * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
3963 pseudos just like memory.
3964
3965 2000-10-24 Alexandre Oliva <aoliva@redhat.com>
3966
3967 * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
3968 when deleting libcall sequence collapsed to a single instruction.
3969
3970 2000-10-24 Andrew Haley <aph@cygnus.co.uk>
3971
3972 * expr.c (do_store_flag): Don't crash if either side of a
3973 comparison is error_mark_node.
3974
3975 2000-10-24 Jakub Jelinek <jakub@redhat.com>
3976
3977 * sibcall.c (purge_mem_unchanging_flag): New function.
3978 (optimize_sibling_and_tail_recursive_calls): Call it.
3979
3980 2000-10-24 Philipp Thomas <pthomas@suse.de>
3981
3982 * Makefile.in (check-po): New target for doing checks in the po
3983 subdir if all languages configured.
3984 (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
3985 configure if NLS is enabled.
3986 * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
3987 otherwise leave empty.
3988 * configure: Regenerate.
3989
3990 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
3991
3992 * i386.c (print_operand): Handle new 'A' formatting code.
3993 387 opcodes need suffixes even with -mintel-syntax.
3994 Check for explicit size override (codes 'b', 'w' and 'k').
3995 (print_operand_address): Check if register prefix is needed when
3996 emitting `ds' segment override.
3997 * i386.h: Add comment about new 'A' formatting code.
3998 * i386.md (jump and call patterns): Emit absolute references using %A.
3999
4000 2000-10-23 Richard Henderson <rth@cygnus.com>
4001
4002 * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
4003 output registers as fixed.
4004 (ia64_function_epilogue): Undo output fixation.
4005
4006 2000-10-23 Richard Henderson <rth@cygnus.com>
4007
4008 * config/alpha/alpha.md: Add names for all unnamed insns; use
4009 define_insn_and_split in some obvious places.
4010 (lda): Remove.
4011 (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
4012 (zero_extendqisi2, zero_extendqidi2): Likewise.
4013 (zero_extendhisi2, zero_extendhidi2): Likewise.
4014 (abs splitters): Fix match_scratch operand number.
4015 (bcc_reverse): Swap pc & label instead of non-canonical compare.
4016
4017 2000-10-23 Jim Wilson <wilson@cygnus.com>
4018
4019 * ia64.c (ia64_print_operand, case 'r'): Correct comment. Handle
4020 CONST_INT.
4021 * ia64.md (cmpsi_adjusted): Use %r3.
4022 (cmpdi_adjusted): Likewise.
4023
4024 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
4025
4026 * config/i386/att.h (ASM_FILE_START): Define.
4027
4028 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
4029
4030 * config/i386/linux.h (ASM_FILE_START): Define.
4031
4032 Wed Oct 18 11:16:40 2000 Donald Lindsay <dlindsay@cygnus.com>
4033
4034 * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
4035 since this (only) drags in a crt0.o reference that the .ld files
4036 also introduce.
4037
4038 2000-10-23 Geoff Keating <geoffk@cygnus.com>
4039
4040 * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
4041 overwrite the value in a RELOAD_FOR_INPUT and other kinds of
4042 reloads just like an RELOAD_FOR_OUTPUT would.
4043
4044 * local-alloc.c (update_equiv_regs): Add an abort(). When
4045 deleting or moving insns, update reg_equiv[regno].init_insns.
4046
4047 2000-10-23 Mark Mitchell <mark@codesourcery.com>
4048
4049 * c-tree.texi: Improve documentation for IF_STMTs and related
4050 conditional statements.
4051
4052 2000-10-22 Mark Mitchell <mark@codesourcery.com>
4053
4054 * expr.c (do_preexpand_calls): Remove.
4055 (same_from_p): Don't use CALL_EXPR_RTL.
4056 (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
4057 (preexpand_calls): Remove.
4058 * tree.c (first_rtl_op): Remove CALL_EXPR case.
4059 (unsave_expr_1): Likewise.
4060 * tree.def (CALL_EXPR): Give it only two slots.
4061 * tree.h (CALL_EXPR_RTL): Remove.
4062
4063 2000-10-21 Chandrakala Chavva <cchavva@redhat.com>
4064
4065 * libgcc-std.ver (__addvsi3, __addvdi3, __subvsi3, __subvdi3,
4066 __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
4067 New functions.
4068
4069 2000-10-22 Alexandre Oliva <aoliva@redhat.com>
4070
4071 * calls.c (combine_pending_stack_adjustment_and_call): Don't
4072 adjust stack when unadjusted_alignment ends up as zero.
4073
4074 2000-10-22 Joseph S. Myers <jsm28@cam.ac.uk>
4075
4076 * fixinc/genfixes: Remove EGCS reference.
4077 * install.texi: Remove EGCS reference.
4078 * INSTALL: Regenerate.
4079
4080 2000-10-22 Mark Mitchell <mark@codesourcery.com>
4081
4082 * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
4083
4084 2000-10-21 Joseph S. Myers <jsm28@cam.ac.uk>
4085
4086 * diagnostic.c: Remove EGCS reference in comment.
4087
4088 Sat Oct 21 08:24:25 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4089
4090 * loop.c (strength_reduce): Fix error in last change.
4091
4092 2000-10-20 David Edelsohn <edelsohn@gnu.org>
4093
4094 * Makefile.in (SHLIB_NM_FLAGS): New.
4095 (libgcc.mk): Pass it.
4096 * mklibgcc.in (libgcc.map): Use it.
4097
4098 * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
4099 SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
4100
4101 2000-10-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4102
4103 * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
4104
4105 * sparc.c (load_pic_register): Delete unused varaible.
4106
4107 * libgcc2.c (__addvsi3): Delete unused variable.
4108
4109 * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
4110 __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
4111 __negvdi2): Prototype.
4112
4113 * ssa.c (apply_delayed_renames): Avoid undefined operation.
4114
4115 * toplev.c (display_target_options): Make static to match
4116 prototype. Delete empty declaration.
4117
4118 2000-10-20 Tom Tromey <tromey@cygnus.com>
4119
4120 * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
4121 * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
4122
4123 Fri Oct 20 17:05:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4124
4125 * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
4126 returned MEM.
4127 (expand_expr_unaligned, case ARRAY_REF): Check that index is
4128 a constant before comparing it; use tree_low_cst.
4129 * tree.c (save_expr): Set TREE_READONLY.
4130 (substitute_expr): Return inside of NON_LVALUE_EXPR.
4131 (build, build1): Set TREE_READONLY if all operands are.
4132 (build_index_type): If upper bound is a negative number, lower
4133 bound is zero and sizetype is unsigned, use upper bound of one and
4134 lower of zero.
4135
4136 2000-10-20 David Edelsohn <edelsohn@gnu.org>
4137
4138 * gcc.c (process_command, main): Use "because" instead of
4139 "since" in error messages.
4140
4141 Fri Oct 20 13:33:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4142
4143 * stor-layout.c (compute_record_mode): Use tree_low_cst.
4144 Don't use mode of field for record unless sizes are the same.
4145 (layout_type, case ARRAY_TYPE): Remove special bounds handling
4146 previously added for Ada; also change to using host_integerp
4147 and tree_low_cst.
4148
4149 * loop.c (strength_reduce): Show when new register made for
4150 giv is known to be a pointer and its aligment if so and known.
4151 (loop_dump_aux): Show VERBOSE parameter unused.
4152
4153 * gcse.c (set_hash_table_size): Now unsigned.
4154 * sdbout.c (template_name_p): Add "const" to avoid warnings.
4155 (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
4156 (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
4157 (sdbout_end_epilogue): Remove variable NAME.
4158 * system.h (getopt): Add default definition.
4159 * config/alpha/alpha.c (print_operand): Don't continue processing
4160 after issuing error.
4161 (summarize_insn): Avoid use of UL in constant.
4162
4163 * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
4164
4165 * fold-const.c (force_fit_type): Unsigned values can overflow
4166 if they are sizetype.
4167 (int_const_binop): Don't use cache if overflows.
4168
4169 2000-10-20 Richard Henderson <rth@cygnus.com>
4170
4171 * function.c (locate_and_pad_parm): Zero alignment_pad.
4172
4173 * regrename.c (rr_replace_reg): Rewrite to use recog_data to
4174 perform substitutions, and apply_change_group to see if it worked.
4175
4176 Fri Oct 20 13:33:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4177
4178 * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
4179
4180 * combine.c (struct undo): Change int to unsigned int.
4181 (do_SUBST_INT): Args are unsigned int.
4182 (make_extraction, force_to_mode): Use proper type when forming mask.
4183 (make_field_assignment): Likewise.
4184
4185 2000-10-20 Joseph S. Myers <jsm28@cam.ac.uk>
4186
4187 * c-common.c (check_format_info_recurse): Extract string constant
4188 initializers from non-volatile constant arrays and check them as
4189 formats.
4190 * c-typeck.c (decl_constant_value): Don't check pedantic or check
4191 for DECL_MODE (decl) != BLKmode.
4192 (decl_constant_value_for_broken_optimization): New function which
4193 includes these checks.
4194 (default_conversion, convert_for_assignment, digest_init): Use
4195 decl_constant_value_for_broken_optimization instead of
4196 decl_constant_value.
4197
4198 2000-10-20 Mark Mitchell <mark@codesourcery.com>
4199
4200 * tree.h (DECL_ALIGN_UNIT): New macro.
4201
4202 2000-10-14 Marek Michalkiewicz <marekm@linux.org.pl>
4203
4204 * config/avr/avr-protos.h (avr_output_bld): New.
4205 (out_shift_with_cnt): Add t_len argument.
4206 * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
4207 (output_movqi, output_movhi, output_movsisf): Optimize loading
4208 any constant with exactly one bit set to NO_LD_REGS.
4209 (out_shift_with_cnt): Optimize output code for size or speed,
4210 depending on optimize_size. Handle small shift counts as well
4211 (if not hand-optimized in ?sh??i3_out). Shifts can be done
4212 with or without a scratch register, with help of __tmp_reg__
4213 or __zero_reg__ if necessary. Add T_LEN argument to pass the
4214 length of TEMPLATE in words, return total insn length in *LEN.
4215 (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
4216 out_shift_with_cnt to work with the above change.
4217 (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
4218 lshrsi3_out): Likewise. Optimize more known shift count cases.
4219 Remove cases already well optimized in out_shift_with_cnt.
4220 (avr_output_bld): New function.
4221 * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
4222 (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
4223 * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
4224 Add reload_completed to insn condition - only for peepholes.
4225 (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
4226 in a register or memory.
4227 (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
4228 Do not require a scratch register.
4229 (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
4230 *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
4231 Optimize shifts by known count using a scratch register, but only
4232 if one is still available after register allocation.
4233
4234 2000-10-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4235
4236 * t-vax: New file. Don't build modules from libgcc1.c.
4237
4238 Fri Oct 20 00:57:00 EDT 2000 John Wehle (john@feith.com)
4239
4240 * alias.c: (mark_constant_function): Don't check pure functions.
4241 Initialize and end alias analysis.
4242 (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
4243 Don't make a special exception for recursion. Handle
4244 UNSPEC_VOLATILE. Don't assume ASM_OPERANDS is non-local
4245 unless it's volatile.
4246
4247 * local-alloc.c (equivalence): New structure.
4248 (reg_equiv): Define.
4249 (contains_replace_regs): Remove array and use
4250 field in reg_equiv.
4251 (memref_referenced_p): Likewise.
4252 (no_equiv): Likewise.
4253 (update_equiv_regs): Likewise.
4254
4255 (equiv_init_varies_p,
4256 equiv_init_movable_p): New functions.
4257 (update_equiv_regs): Use them. Use rtx_varies_p
4258 instead of function_invariant_p. Process insns
4259 from end to beginning. Allow a REG_EQUIV insn
4260 within the same loop as a use to be moved, also
4261 allow it to be moved out of a loop. Update
4262 REG_DEAD notes when substituting into an insn.
4263
4264 2000-10-19 Jim Wilson <wilson@cygnus.com>
4265
4266 * c-decl.c (start_decl): Check for error_mark_node type before using
4267 COMPLETE_TYPE_P.
4268 (finish_decl): Likewise. Don't give an error if decl type is
4269 already error_mark_node.
4270
4271 * haifa-sched.c (compute_trg_info): Add explanatory comments.
4272 New local update_blocks. Use update_blocks to remove duplicates
4273 when computing update blocks. Check for bblst_table overflow.
4274 (schedule_block): Add explanatory comment. Reduce bblst_size by
4275 factor of 2.
4276 * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
4277 notes.
4278
4279 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
4280
4281 * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
4282
4283 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
4284
4285 * expmed.c: Minor corrections in comments.
4286 * invoke.texi: Added desciption for the new option -ftrapv.
4287
4288 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
4289
4290 * libgcc2.c: Added the missing #endif.
4291
4292 Thu Oct 19 14:25:11 MET DST 2000 Jan Hubicka <jh@suse.cz>
4293
4294 * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
4295
4296 2000-10-18 Chandrakala Chavva <cchavva@redhat.com>
4297
4298 * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
4299 Use smulv_optab for -ftrapv.
4300 (expand_mult_highpart): Use unsigned multiply.
4301 (expand_divmod): Special-case division by -1.
4302 For EXACT_DIV_EXPR, do right shift first, then the multiply.
4303 For complex divide, use abs with unsigned result.
4304 * expr.c (force_operand): Use unsigned multiply.
4305 (expand_expr): Use overflow-trapping optabs for signed types if
4306 flag_trapv.
4307 If flag_trapv, don't generate a recursive call with EXPAND_SUM
4308 if the type is signed and the original call wasn't EXPAND_SUM or
4309 EXPAND_INITIALIZER.
4310 * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
4311 (negv_optab, absv_optab): Declare.
4312 * flags.h (flag_trapv): Declare.
4313 * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
4314 smulv_optab, sdivv_optab, negv_optab and absv_optab.
4315 (gen_insn): Interpret '$P' as requiring an integer mode,
4316 including partial integer modes.
4317 * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
4318 (product_cheap_p): Use unsigned expand_mult.
4319 * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
4320 (negv_optab, absv_optab): Define.
4321 (expand_binop): Use overflow-trapping optabs for signed types if
4322 flag_trapv.
4323 Handle negv_optab libe neg_optab.
4324 (expand_abs): Take result_unsignedp argument instead of unsignedp one.
4325 Use overflow-trapping optabs for signed result if flag_trapv.
4326 (expand_complex_abs): Use overflow-trapping optabs for signed types if
4327 flag_trapv.
4328 Don't open-code complex absolute-value operation for flag_trapv.
4329 (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
4330 sdivv_optab, negv_optab and absv_optab.
4331 * toplev.c (flag_trapv): Define.
4332 (lang_independent_options f_options): Include flag_trapv.
4333 * tree.h (TYPE_TRAP_SIGNED): Define.
4334 * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
4335 __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
4336 New functions.
4337 * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
4338 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
4339
4340 2000-10-18 Geoffrey Keating <geoffk@cygnus.com>
4341 David V. Henkel-Wallace <gumby@cygnus.com>
4342
4343 * config/i386/t-netware: Bring in from the Red Hat tree.
4344 * config/i386/netware.h: Likewise.
4345 * config/netware.h: Likewise.
4346 * config/rs6000/netware.h: Delete.
4347 * configure.in: Add i[34567]86-*-netware.
4348 * configure: Hand-edit to match configure.in change.
4349
4350 2000-10-18 Mark Mitchell <mark@codesourcery.com>
4351
4352 * c-common.h (flag_no_builtin): Declare.
4353 (flag_no_nonansi_builtin): Likewise.
4354 (c_common_nodes_and_builtins): Change prototype.
4355 * c-common.c (flag_no_builtin): New variable.
4356 (flag_no_nonansi_builtin): Likewise.
4357 (c_common_nodes_and_builtins): Remove parameters. Adjust
4358 accordingly.
4359 * c-decl.c (flag_no_builtin): Remove.
4360 (flag_no_nonansi_builtin): Likewise.
4361 (init_decl_processing): Adjust call to
4362 c_common_nodes_and_builtins.
4363
4364 2000-10-18 Marc Espie <espie@openbsd.org>
4365
4366 * tm.texi (LIBGCC_SPEC): Synch with reality.
4367
4368 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
4369
4370 * c-common.c (check_format_types): Check for writing through a
4371 NULL pointer argument.
4372
4373 2000-10-18 Hans-Peter Nilsson <hp@axis.com>
4374
4375 * tm.texi (Exception Region Output): Document
4376 DWARF_CIE_DATA_ALIGNMENT.
4377 * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
4378 #ifndef.
4379 [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
4380 DWARF_CIE_DATA_ALIGNMENT.
4381
4382 2000-10-18 Michael Hayes <mhayes@cygnus.com>
4383
4384 * basic-block.h (struct loop): Delete fields pre_header_root
4385 and pre_header_trace and replace with pre_header_edges
4386 and num_pre_header_edges.
4387 * flow.c (flow_loop_dump): Dump pre_header_edges.
4388 (flow_loops_free): Free pre_header_edges.
4389 (flow_loop_pre_header_scan): Calculate pre_header_edges.
4390
4391 2000-10-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4392
4393 * contrib.texi: Update references to steering committee members
4394 and Jeff Law's entry.
4395
4396 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
4397
4398 * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
4399 (maybe_read_dollar_number, check_format_info_main): Use them for
4400 pedantic warning messages.
4401
4402 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
4403
4404 * c-common.c (check_format_info_main): Minor cleanup: move
4405 variables into inner scopes; initialize declarations where
4406 appropriate; don't hardcode "scanf" name on warning for zero
4407 width.
4408
4409 2000-10-17 Mark Mitchell <mark@codesourcery.com>
4410
4411 * c-common.c (back_end_hook): New variable.
4412 * c-common.h (back_end_hook): Declare it.
4413 * c-lang.c (finish_file): Use it.
4414
4415 * emit-rtl.c (init_emit_once): Initialize the const_int_htab
4416 earlier.
4417
4418 2000-10-18 Jan Hubicka <jh@suse.cz>
4419
4420 * i386.c (ix86_comparison_operator, put_condition_code,
4421 ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
4422 (ix86_expand_strlensi_unroll_1): Use CCRCmode.
4423 * i386.h (EXTRA_CC_MODES): Add CCRCmode.
4424 * i386.md (adddi and negdi splitter): Use CCRCmode.
4425 (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
4426 (subsi3_carry): add '*'
4427 (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
4428 (cmp to add peep2): Use CCRCmode; swap operands.
4429
4430 2000-10-18 Kazu Hirata <kazu@hxi.com>
4431
4432 * h8300.c: Fix a comment typo.
4433 (round_frame_size): New.
4434 (compute_saved_regs): Likewise.
4435 (push): Likewise.
4436 (pop): Likewise.
4437 (push_order): Remove.
4438 (pop_order): Likewise.
4439 (function_prologue): Rearrange code for readability.
4440 (function_epilogue): Likewise.
4441
4442 * config/h8300/h8300.md: Remove an unnecessary sign_extend
4443 expander that is used when not optimizing. Output a tab after
4444 each assembly insns.
4445
4446 * reorg.c: Fix formatting.
4447
4448 2000-10-17 Joern Rennecke <amylaar@redhat.co.uk>
4449
4450 * reload1.c (move2add_note_store): Check for simple
4451 auto-inc in destination.
4452
4453 2000-10-17 Michael Chastain <chastain@redhat.com>
4454
4455 * config/i386/i386-aout.h: define INT_ASM_OP.
4456
4457 Tue Oct 17 20:11:08 2000 Alan Modra <alan@linuxcare.com.au>
4458
4459 * pa.c (print_operand): Handle case 'c' for .vtable_inherit
4460
4461 Tue Oct 17 20:05:51 2000 Martin Buchholz <martin@xemacs.org>
4462
4463 * i370.md: Fix spelling typo.
4464
4465 2000-10-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4466
4467 * function.c (locate_and_pad_parm): Don't align stack unconditionally.
4468 Fixes execute/20001017-1.c on powerpc-linux-gnu.
4469
4470 * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
4471 * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
4472 LABEL_REF.
4473
4474 * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
4475 ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
4476 here...
4477 * rs6000/aix.h: ...to here.
4478 * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
4479
4480 2000-10-17 Jakub Jelinek <jakub@redhat.com>
4481
4482 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
4483
4484 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
4485 sure linker can relax even the delay slot mov %g1,%o7, fix output
4486 formating.
4487
4488 2000-10-17 Kazu Hirata <kazu@hxi.com>
4489
4490 * config/h8300/h8300.md: Remove an unnecessary zero_extend
4491 expander that is used when not optimizing. Output a tab after
4492 each assembly insns.
4493
4494 2000-10-17 Chandrakala Chavva <cchavva@redhat.com>
4495
4496 * gcc.c: New options --target-help.
4497 (process_command): Added code to parse this new option.
4498 * toplev.c (display_target_options): New function to support the
4499 above new option.
4500 * cppinit.c (new_pending_directive) : New option OPT_target__help.
4501 (cpp_handle_option): Support this new option.
4502 * invoke.texi: Added notes about --target-help option.
4503
4504 2000-10-17 Graham Stott <grahams@redhat.com>
4505
4506 * config/i386/i386.md (testqi_1): Add missing operand prefix
4507 for operand 0.
4508 * config/i386/i386-protos.h: Add missing prototype.
4509
4510 2000-10-17 Diego Novillo <dnovillo@cygnus.com>
4511
4512 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
4513 _GLOBAL_OFFSET_TABLE should not have a $ prefix when
4514 using -mintel-syntax.
4515
4516 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
4517
4518 * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
4519 (format_types): Use it for printf.
4520 (maybe_read_dollar_number): Add parameter for the kind of format
4521 involved. Warn for multiple use for arguments if this is
4522 inappropriate for the kind of format involved.
4523 (check_format_info_main): Update calls to maybe_read_dollar_number.
4524
4525 2000-10-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4526
4527 * inclhack.def (hpux_maxint): Also apply fix to values.h.
4528 * fixincl.x: Rebuilt.
4529
4530 2000-10-17 Alexandre Oliva <aoliva@redhat.com>
4531
4532 * genrecog.c (write_switch): Return the first condition that needs a
4533 label.
4534
4535 2000-10-17 Bernd Schmidt <bernds@redhat.co.uk>
4536
4537 * c-tree.h (warn_sequence_point): Move declaration to...
4538 * c-common.h (warn_sequence_point): ... here.
4539 * c-decl.c (warn_sequence_point): Move definition to...
4540 * c-common.c (warn_sequence_point): ... here.
4541 (struct reverse_tree): New.
4542 (reverse_list, reverse_max_depth): New static variables.
4543 (build_reverse_tree, common_ancestor, modify_ok
4544 verify_sequence_points): New functions.
4545 (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
4546 * c-typeck.c (check_modify_expr): Delete.
4547 (build_modify_expr): Don't call it.
4548
4549 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
4550
4551 * c-common.h (warn_missing_format_attribute): New variable.
4552 * c-decl.c (warn_missing_format_attribute): New variable.
4553 (c_decode_option): Decode -Wmissing-format-attribute and
4554 -Wno-missing-format-attribute.
4555 * c-common.c (check_function_format): If
4556 -Wmissing-format-attribute, give a warning where a vprintf or
4557 vscanf function is called by a function without its own printf or
4558 scanf attribute.
4559 * toplev.c (documented_lang_options): Add
4560 -Wmissing-format-attribute.
4561 * invoke.texi: Document -Wmissing-format-attribute.
4562
4563 2000-10-17 Marc Espie <espie@openbsd.org>
4564
4565 * invoke.texi (-shared): Insist on requiring code generation flags
4566 to be used along with -shared, and document the subtle failure that
4567 may occur otherwise.
4568
4569 2000-10-16 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4570
4571 * pa.md (return_internal): Move `use' after `return'.
4572
4573 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4574
4575 * machmode.def: Correct comment.
4576
4577 2000-10-16 Rodney Brown <RodneyBrown@mynd.com>
4578
4579 * print-rtl.c (print_rtx_head): Constify.
4580 * rtl.h (print_rtx_head): Similarly.
4581
4582 * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
4583 Constify char * return value.
4584 * config/pa/pa/pa.c
4585 (output_64bit_and, output_64bit_ior): Constify char * return value.
4586 (pa_can_combine_p): Make static.
4587 (function_arg): Decorate unused `named' argument. Fix comment typo.
4588 (function_arg_partial_nregs): Decorate unused `named' argument.
4589
4590 2000-10-16 Joseph S. Myers <jsm28@cam.ac.uk>
4591
4592 * c-common.c (format_check_results): New structure.
4593 (finish_dollar_format_checking): Adjust to take a
4594 format_check_results * parameter.
4595 (check_format_info, check_format_info_recurse,
4596 check_format_info_main): Split check_format_info into three
4597 functions, the main checking going in check_format_info_main.
4598 Recurse when any reduction of the format string argument towards a
4599 string literal is done; go down both branches of a conditional
4600 expression. Don't warn for extra format arguments or empty format
4601 strings if they only occur in some branches of a conditional
4602 expression.
4603
4604 2000-10-16 Kazu Hirata <kazu@hxi.com>
4605
4606 * config/h8300/h8300.c: Remove obstack. Include ggc.h.
4607
4608 2000-10-16 Jakub Jelinek <jakub@redhat.com>
4609
4610 * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
4611
4612 2000-10-15 Diego Novillo <dnovillo@cygnus.com>
4613
4614 * i386.md (*movsi_or): Switch operand order for intel syntax.
4615
4616 2000-10-14 Joseph S. Myers <jsm28@cam.ac.uk>
4617
4618 * PROBLEMS: Remove.
4619
4620 * gcc.texi (Contributing): Update.
4621
4622 2000-10-13 Diego Novillo <dnovillo@cygnus.com>
4623
4624 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
4625 appropriate assembler dialect.
4626
4627 2000-10-13 Alexandre Oliva <aoliva@redhat.com>
4628
4629 * c-common.c (c_expand_builtin): PARAMS-ize prototype.
4630
4631 2000-10-12 Marek Michalkiewicz <marekm@linux.org.pl>
4632
4633 * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
4634 constants 1 and 2 to NO_LD_REGS.
4635
4636 2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4637
4638 * Makefile.in (c-parse.c, tradcif.c): Create atomically.
4639
4640 * objc/Make-lang.in (objc-parse.c): Likewise.
4641
4642 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
4643
4644 * arm.c: Include obstack.h
4645 (minipool_obstack, minipool_startobj): Define.
4646 (arm_add_gc_roots): Initialize them.
4647 (create_fix_barrier): Use our new obstack.
4648 (push_minipool_barrier, push_minipool_fix): Likewise.
4649 (arm_reorg): Release obstack memory.
4650
4651 2000-10-13 Jakub Jelinek <jakub@redhat.com>
4652
4653 * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
4654 (prologue, exception_receiver, builtin_setjmp_receiver): New
4655 patterns.
4656 * config/sparc/sparc.h (FINALIZE_PIC): Remove.
4657 * config/sparc/sparc-protos.h (finalize_pic): Remove.
4658 (load_pic_register): New prototype.
4659 * config/sparc/sparc.c (pic_setup_code): Remove.
4660 (finalize_pic): Rename to...
4661 (load_pic_register): ...this function.
4662 Don't look for nonlocal_goto_receivers and emit pic setup code
4663 directly. Don't check current_function_uses_pic_offset_table.
4664
4665 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
4666
4667 * tree.h (struct obstack): Declare.
4668
4669 2000-10-12 Mark Mitchell <mark@codesourcery.com>
4670
4671 Remove obstacks.
4672 * Makefile.in (ggc-callbacks.o): Remove target.
4673 (flow.o): Depend on GGC_H.
4674 * alias.c (init_alias_analysis):
4675 Remove ggc_p conditionals.
4676 (end_alias_analysis): Likewise.
4677 * basic-block.h (init_flow): New function.
4678 (allocate_reg_life_data): Declare.
4679 * bb-reorder.c (function_obstack): Replace with ...
4680 (flow_obstack): ... new variable.
4681 (fixup_reorder_chain): Use it.
4682 * c-decl.c (ggc_p): Remove.
4683 (caller-save.c): Don't call oballoc/obfree.
4684 * combine.c (struct
4685 undobuf): Remove storage.
4686 (try_combine): Don't call oballoc.
4687 (undo_all): Don't call obfree.
4688 * cse.c (insert): Use xmalloc, not
4689 oballoc.
4690 (cse_main): Adjust accordingly.
4691 * dwarf2out.c (save_rtx): Remove
4692 obstack code.
4693 (dwarf2out_init): Remove ggc_p conditionals.
4694 * emit-rtl.c (rtl_obstack): Remove.
4695 (gen_rtx_CONST_INT): Remove ggc_p conditionals.
4696 (make_insn_raw): Likewise.
4697 (emit_insn_before): Likewise.
4698 (emit_insn_after): Likewise.
4699 (emit_insn): Likewise.
4700 (gen_sequence): Likewise.
4701 (copy_insn_1): Remove handling of `b' RTL components.
4702 (init_emit_once): Remove ggc_p conditionals.
4703 * except.c (create_rethrow_ref): Don't fool with obstacks.
4704 (add_partial_entry): Likewise.
4705 (call_get_eh_context): Likewise.
4706 (begin_protect_partials): Likewise.
4707 (protect_with_terminate): Likewise.
4708 * explow.c
4709 (plus_constant_wide): Likewise.
4710 * expr.c (init_expr_once):
4711 Likewise.
4712 (emit_block_move): Likewise.
4713 (clear_storage): Likewise.
4714 (expand_expr): Likewise.
4715 * flow.c (function_obstack): Remove.
4716 (flow_obstack): New variable.
4717 (flow_firstobj): Likewise.
4718 (create_base_block): Use the flow_obstack.
4719 (split_block): Likewise.
4720 (split_edge): Likewise.
4721 (calculate_global_regs_live): Likewise.
4722 (allocate_bb_life_data): Make it static. Likewiwse.
4723 (init_flow): New function.
4724 (size_int_type_wide): Remove ggc_p conditionals.
4725 * function.c
4726 (push_function_context_to): Don't call save_tree_status.
4727 (pop_function_context_from): Or restore_tree_status.
4728 (assign_stack_local_1): Don't call push_obstacks.
4729 (find_fixup_replacement): Use xmalloc.
4730 (fixup_var_refs_insns): Free the storage.
4731 (insns_for_mem_walk): Don't mess with obstacks.
4732 (instantiate_decls): Likewise.
4733 (trampoline_address): Likewise.
4734 (expand_function_end): Likewise.
4735 * function.h (sturct function):
4736 Remove obstack-related variables.
4737 (save_tree_status): Don't declare.
4738 (restore_tree_status): Likewise.
4739 * gcse.c (compute_can_copy):
4740 Don't call oballoc/obfree.
4741 * genattrtab.c (operate_exp): Remove
4742 ggc_p conditionals.
4743 (simplify_cond): Likewise.
4744 (simplify_test_exp): Don't mess with obstacks.
4745 (optimize_attrs): Likewise.
4746 * gengenrtl.c (gendef): Don't include
4747 ggc_p conditionals.
4748 * ggc-callbacks.c (ggc_p): Remove.
4749 * ggc-none.c (ggc_p): Remove.
4750 * ggc.h (ggc_p): Don't declare.
4751 * integrate.c (save_for_inline): Don't mess with obstacks.
4752 (integrate_decl_tree): Likewise.
4753 (output_inline_function): Likewise.
4754 * lists.c
4755 (init_EXPR_INSN_LIST_cache): Likewise.
4756 * loop.c (temp_obstack):
4757 Remove.
4758 (rtl_obstack): Likewise.
4759 (init_loop): Don't mess with obstacks.
4760 (reg_address_cost): Free BIVs and GIVs.
4761 (check_insns_for_bivs): Use xmalloc, not oballoc.
4762 (find_mem_givs): Likewise.
4763 (record_biv): Likewise.
4764 (general_induction_var): Likewise.
4765 (product_cheap_p): Likewse.
4766 * optabs.c (init_one_libfunc): Remove
4767 ggc_p conditional.
4768 * print-tree.c (debug_tree): Don't use
4769 oballoc/obfree.
4770 (print_node): Likewise.
4771 * profile.c (output_func_start_profiler):
4772 Remove call to temporary_allocation.
4773 * reload1.c
4774 (eliminate_regs_in_insn): Don't mess with obstacks.
4775 * resource.c
4776 (mark_target_live_regs): Use xmalloc.
4777 (free_resource_info): Free the memory.
4778 * rtl.c (rtl_obstack):
4779 Remove.
4780 (rtvec_alloc): Don't mess with obstacks.
4781 (rtx_alloc): Likewise.
4782 (rtx_free): Remove.
4783 (copy_rtx): Don't handle `b' cases.
4784 (read_rtx): Use a local rtl_obstack.
4785 * rtl.h (oballoc): Remove.
4786 (obfree): Likewise.
4787 (pop_obstacks): Likewise.
4788 (push_obstacks): Likewise.
4789 (allocate_bb_life_data): Likewise.
4790 (allocate_reg_life_data): Likewise.
4791 (rtx_free): Likewise.
4792 * sdbout.c (sdbout_queue_anonymous_type):
4793 Use tree_cons, not saveable_tree_cons.
4794 * simplify-rtx.c
4795 (cselib_init): Don't mess with obstacks.
4796 * stmt.c
4797 (mark_block_nesting): Mark the label_chain.
4798 (epxand_label): Use ggc_alloc, not oballoc.
4799 (clear_last_expr): Don't mess with obstacks.
4800 (expand_decl_cleanup): Likewise.
4801 (expand_dcc_cleanup): Likewise.
4802 (expand_dhc_cleanup): Likewise.
4803 (expand_anon_union_decl): Likewise.
4804 (add_case_node): Use xmalloc, not oballoc.
4805 (free_case_nodes): New function.
4806 (expand_end_case): Call it.
4807 * stor-layout.c (layout_type): Don't
4808 mess with obstacks.
4809 (layout_type): Likewise.
4810 * toplev.c (wrapup_global_declarations):
4811 Likewise.
4812 (compile_file): Remove ggc_p conditionals.
4813 (rest_of_compilation): Call init_flow. Remove ggc_p conditionals.
4814 (decode_f_option): Remove ggc_p conditionals.
4815 * tree.c
4816 (function_maybepermanent_obstack): Remove.
4817 (maybepermanent_obstack): Likewise.
4818 (function_obstack): Likewise.
4819 (tmeporary_obstack): Likewise.
4820 (momentary_obstack): Likewise.
4821 (temp_decl_obstack): Likewise.
4822 (saveable_obstack): Likewise.
4823 (rtl_obstack): Likewise.
4824 (current_obstack): Likewise.
4825 (expression_obstack): Likewise.
4826 (struct obstack_stack): Likewise.
4827 (obstack_stack): Likewise.
4828 (obstack_stack_obstack): Likewise.
4829 (maybepermanent_firstobj): Likewise.
4830 (temporary_firstobj): Likewise.
4831 (momentary_firstobj): Likewise.
4832 (temp_decl_firstobj): Likewise.
4833 (momentary_function_firstobj): Likewise.
4834 (all_types_permanent): Likewise.
4835 (struct momentary_level): Likewise.
4836 (momentary_stack): Likewise.
4837 (init_obstacks): Remove initialization of removed obstacks.
4838 (save_tree_status): Remove.
4839 (restore_tree_status): Likewise.
4840 (temporary_allocation): Liekwise.
4841 (end_temporary_allocation): Liekwise.
4842 (resume_temporary_allocation): Likewise.
4843 (saveable_allocation): Likewise.
4844 (push_obstacks): Likewise.
4845 (push_obstacks_nochange): Likewise.
4846 (pop_obstacks): Likewise.
4847 (allocation_temporary_p): Likewise.
4848 (permanent_allocation): Likewise.
4849 (preserve_data): Likewise.
4850 (preserve_initializer): Likewise.
4851 (rtl_in_current_obstack): Likewise.
4852 (rtl_in_saveable_obstack): Likewise.
4853 (oballoc): Likewise.
4854 (obfree): Likewise.
4855 (savealloc): Likewise.
4856 (expralloc): Likewise.
4857 (print_obstack_name): Likewise.
4858 (debug_obstack): Likewise.
4859 (object_permanent_p): Likewise.
4860 (push_momentary): Likewise.
4861 (perserve_momentary): Likewise.
4862 (clear_momentary): Likewise.
4863 (pop_momentary): Likewise.
4864 (pop_momentary_nofree): Likewise.
4865 (suspend_momentary): Likewise.
4866 (resume_momentary): Likewise.
4867 (make_node): Don't set TREE_PERMANENT.
4868 (copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK.
4869 Don't set TREE_PERMANENT.
4870 (get_identifier): Remove ggc_p conditionals.
4871 (build_string): Likewise.
4872 (make_tree_vec): Likewise.
4873 (build_decl_list): Remove.
4874 (build_expr_list): Likewise.
4875 (tree_cons): Remove ggc_p conditionals.
4876 (decl_tree_cons): Remove.
4877 (expr_tree_cons): Likewise.
4878 (perm_tree_cons): Likewise.
4879 (temp_tree_cons): Likewise.
4880 (saveable_tree_cons): Likewise.
4881 (build1): Remove ggc_p conditionals.
4882 (build_parse_node): Likewise.
4883 (build_type_attribute_variant): Don't mess with obstacks.
4884 (build_type_copy): Likewise.
4885 (type_hash_canon): Likewise.
4886 (build_pointer_type): Likewise.
4887 (build_reference_type): Likewise.
4888 (build_index_type): Likewise.
4889 (build_range_type): Likewise.
4890 (dump_tree_statistics): Don't print obstack information.
4891 * tree.h
4892 (struct tree_common): Remove permanent_flag.
4893 (TREE_PERMANENT): Remove.
4894 (TREE_SET_PERMANENT): Likewise.
4895 (TYPE_OBSTACK): Likewise.
4896 (struct tree_type): Remove obstack.
4897 (oballoc): Remove.
4898 (savealloc): Likewise.
4899 (build_decl_list): Likewise.
4900 (build_expr_list): Likewise.
4901 (perm_tree_cons): Likewise.
4902 (temp_tree_cons): Likewise.
4903 (saveable_tree_cons): Likewise.
4904 (decl_tree_cons): Likewise.
4905 (expr_tree_cons): Likewise.
4906 (suspend_momentary): Likewise.
4907 (allocation_temporary_p): Likewise.
4908 (resume_momentary): Likewise.
4909 (push_obstacks_nochange): Likewise.
4910 (permanent_allocation): Likewise.
4911 (push_momentary): Likewise.
4912 (clear_momentary): Likewise.
4913 (pop_momentary): Likewise.
4914 (end_temporary_allocation): Likewise.
4915 (pop_obstacks): Likewise.
4916 (push_obstacks): Likewise.
4917 (pop_momentary_nofree): LIkewise.
4918 (preserve_momentary): Likewise.
4919 (saveable_allocation): Likewise.
4920 (temporary_allocation): Likewise.
4921 (resume_temporary_allocation): Likewise.
4922 (perserve_initializer): Likewise.
4923 (debug_obstack): Likewise.
4924 (rtl_in_current_obstack): Likewise.
4925 (rtl_in_saveable_obstack): Likewise.
4926 (obfree): Likewise.
4927 * varasm.c (current_obstack): Remove.
4928 (saveable_obstack): Remove.
4929 (rtl_obstack): Remove.
4930 (immed_double_const): Don't mess with obstacks.
4931 (immed_real_cons): Likewise.
4932 (output_constant_def): Likewise.
4933 (init_varasm_status): Use xcalloc.
4934 (mark_pool_constant): Mark the pool constant itself.
4935 (free_varasm_status): Free memory.
4936 (decode_rtx_const): Call bzero directly, rather than expanding it
4937 inline.
4938 (record_rtx_const): Don't mess with obstacks.
4939 (force_const_mem): Likewise.
4940 * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
4941 conditionals.
4942 (aof_pic_entry): Likewise.
4943 * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
4944 * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
4945 * config/pa/pa.c (saveable_obstack): Remove.
4946 (rtl_obstack): Likewise.
4947 (current_obstack): Likewise.
4948 (output_call): Don't mess with obstacks.
4949 (hppa_encode_label): Remove ggc_p conditionals.
4950 * config/romp/romp.c (get_symref): Don't mess with obstacks.
4951 * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
4952 (rs6000_encode_section_info): Likewise.
4953 * config/sh/sh.c (get_fpscr_rtx): Likewise.
4954
4955 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka <jh@suse.cz>
4956
4957 * i386.md (adddi3, subdi3 splitters): Update for new pattern.
4958 (addsi3_cc, addqi3_cc, subsi3_cc): Remove
4959 (addsi3_carry): Canonicalize.
4960 (addqi_5): Remove '*'.
4961 (sbb pattern): Canonicalize.
4962
4963 * i386.md (cmp to inc/add peep2): New.
4964
4965 2000-10-12 Richard Earnshaw <rearnsha@arm.com>
4966
4967 * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
4968 the exit block.
4969
4970 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4971
4972 * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
4973 * README.TRAD, TESTS.FLUNK: Remove.
4974
4975 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4976
4977 * c-common.c (decl_attributes): Don't allow strftime formats with
4978 first_arg_num nonzero.
4979 (check_format_info): Set wanted_type and wanted_type_name to zero
4980 before they are possibly assigned and used.
4981
4982 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4983
4984 * c-common.c (scanf_flag_specs): Add flags ' and I.
4985 (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
4986 or the ^ and # flags together.
4987 (scan_char_table): Handle the ' and I flags.
4988 (format_types): Add ' and I flags for scanf.
4989
4990 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4991
4992 * c-common.c (print_char_table): Use the unpromoted type for
4993 lengths "h" and "hh" with conversions dioxXu.
4994 (check_format_types): Apply the default argument promotions where
4995 the wanted type is not a pointer target.
4996
4997 2000-10-11 Michael Meeks <mmeeks@gnu.org>
4998 Joseph S. Myers <jsm28@cam.ac.uk>
4999
5000 * c-typeck.c (check_modify_expr): New function.
5001 (build_modify_expr): Call it if warn_sequence_point.
5002 * c-decl.c (warn_sequence_point): New variable.
5003 (c_decode_option): Handle -Wsequence-point and
5004 -Wno-sequence-point. Enable -Wsequence-point as part of -Wall.
5005 * c-tree.h (warn_sequence_point): Declare.
5006 * invoke.texi (-Wsequence-point): Document.
5007 * toplev.c (documented_lang_options): Add -Wsequence-point and
5008 -Wno-sequence-point.
5009 Original work by Michael Meeks, 16 Jun 1998.
5010
5011 Wed Oct 11 06:15:41 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5012
5013 * tree.c (get_narrower): Don't look at precision of field if
5014 not laid out yet.
5015
5016 Tue Oct 10 23:14:33 2000 Denis Chertykov <denisc@overta.ru>
5017
5018 * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
5019 declaration for data with "progmem" attribute.
5020
5021 2000-10-09 Marek Michalkiewicz <marekm@linux.org.pl>
5022
5023 * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
5024 Correct insn length if shift count is a memory operand.
5025 * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
5026 (*iorhi3_clobber): Change lo8 to hi8.
5027 (zero_extendhisi2): Change %B0 to %A1.
5028 (ashlhi3, ashrhi3): Correct insn length.
5029 (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
5030 from "clobber" to "set_n" in some alternatives.
5031
5032 2000-10-10 Jakub Jelinek <jakub@redhat.com>
5033
5034 * reload1.c (calculate_needs_all_insns): If deleting an instruction,
5035 remove its insn_chain structure as well.
5036
5037 2000-10-09 J. David Anglin <dave@hiauly1.hia.nrc.ca>
5038
5039 * dbxout.c (dbxout_source_line): Remove extra tab.
5040
5041 2000-10-09 Hans-Peter Nilsson <hp@bitrange.com>
5042
5043 * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
5044
5045 2000-10-09 Richard Henderson <rth@cygnus.com>
5046
5047 * Makefile.in (LANG_LIB2FUNCS): Remove.
5048 (LIB2FUNCS): Remove _pure.
5049 (LIB2ADD): Remove LANG_LIB2FUNCS.
5050 (stage_a): Don't set LANG_LIB2FUNCS.
5051 * libgcc2.c (__terminate): Mark noreturn.
5052 (__pure_virtual): Remove.
5053 * mklibgcc.in: Remove LIB2ADD .txt processing.
5054
5055 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
5056
5057 * arm.md (push_multi): Revert unintended change.
5058
5059 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
5060
5061 * arm.c: Miscellaneous white space and comment clean-ups. No
5062 functional change.
5063 * arm.md: Likewise.
5064
5065 2000-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5066
5067 * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
5068 STRING_CST by calling combine_strings.
5069
5070 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
5071
5072 * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
5073 (thumb_output_move_mem_multiple): Support new insn format.
5074 * arm.md (movmem12b): Use SSA compatible format.
5075 (movmem8b): Likewise.
5076
5077 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
5078
5079 * arm.md (predicable): New attribute, default to "no".
5080 (all patterns): Mark as predicable if appropriate.
5081 (conditional execution splits): Split using predication format.
5082 (define_cond_exec): Define.
5083 * arm.c (arm_print_operand): handle insn predicate.
5084
5085 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
5086
5087 * README.NS32K: Remove file.
5088
5089 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
5090
5091 * README-bugs: Remove file.
5092
5093 2000-10-08 Philipp Thomas <pthomas@suse.de>
5094 * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
5095 for test.
5096 * configure: Rebuilt.
5097
5098 2000-10-08 Philipp Thomas <pthomas@suse.de>
5099 * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
5100 disable catalog building if no suitable program was found.
5101 Move warning message from here
5102 (AM_GNU_GETTEXT): To here.
5103 * configure: Rebuilt.
5104
5105 2000-10-08 Philipp Thomas <pthomas@suse.de>
5106 * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
5107 different cache variables.
5108 (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
5109 uses different cache variables.
5110 (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
5111 * configure: Regenerated.
5112
5113 2000-10-08 Richard Henderson <rth@cygnus.com>
5114
5115 * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
5116 * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
5117 * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
5118 Use SHLIB_EXT.
5119
5120 * config/t-linux (SHLIB_EXT): New.
5121 (SHLIB_LINK): Use the entire build command, with substitutions.
5122 (SHLIB_LIBS): Remove.
5123 * config/alpha/t-osf4: Likewise.
5124 * config/mips/t-iris6: Likewise.
5125 * config/sparc/t-sol2: Likewise, but move shlib stuff...
5126 * config/sparc/t-slibgcc-sld: ...here.
5127 * config/sparc/t-slibgcc: New file.
5128
5129 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
5130
5131 * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
5132 * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
5133 CTI_UINTMAX_TYPE.
5134 (intmax_type_node, uintmax_type_node): Define.
5135 * c-common.c (decl_attributes): If pedantic, warn if `mode'
5136 attributes create a type wider than intmax_t.
5137 (T_IM, T_UIM): Define properly.
5138 * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
5139 defined.
5140 (init_decl_processing): Initialize intmax_type_node and
5141 uintmax_type_node.
5142 * c-lex.c (lex_number): When pedantic and warning for integer
5143 constants that are too large, in C99 mode warn for those that have
5144 a type wider than long long.
5145
5146 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
5147
5148 * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
5149 FMT_FLAG_FANCY_PERCENT_OK): Define.
5150 (format_char_info): Add flag "4" to comment.
5151 (format_flag_spec, format_flag_pair): New structures.
5152 (format_kind_info): Add additional fields to control format
5153 checking.
5154 (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
5155 scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
5156 arrays.
5157 (time_char_table): Use "4" flag to handle %Ey.
5158 (format_types): Add entries for new fields.
5159 (get_flag_spec): New function.
5160 (check_format_info): Increase size of flag_chars[] to 256.
5161 Control format checking using the new fields of a format_kind_info
5162 and the new tables; remove all conditionals on printf_format_type,
5163 scanf_format_type or strftime_format_type. Handle all details of
5164 bad combinations of flags (including width, precision and strftime
5165 modifiers) through data rather than ad hoc code. Handle all
5166 details of standard versions in which flags appeared through
5167 data. Use the "4" flag.
5168
5169 2000-10-07 Will Cohen <wcohen@redhat.com>, Kazu Hirata <kazu@hxi.com>
5170
5171 * config/h8300/h8300.md: Remove the memory alternative and correct
5172 the insn lengths in the templates for sign extention and zero
5173 extention.
5174
5175 2000-10-07 Richard Henderson <rth@cygnus.com>
5176
5177 * calls.c (expand_call): Disallow sibcalls to noreturn functions.
5178 * flow.c (make_edges): Revert last change.
5179
5180 * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
5181 TREE_THIS_VOLATILE.
5182 * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
5183
5184 2000-10-06 David O'Brien <obrien@dragon.nuxi.com>
5185
5186 * config/alpha/elf.h: Standardize the formatting.
5187
5188 2000-10-06 David O'Brien <obrien@FreeBSD.org>
5189
5190 * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
5191 #undef.
5192
5193 2000-10-06 Richard Henderson <rth@cygnus.com>
5194
5195 * function.c (diddle_return_value): Examine
5196 current_function_return_rtx instead of the DECL_RESULT.
5197 (expand_function_end): Handle reloading DECL_RESULT from memory
5198 into a hard register. Query promote_mode for sign of mismatched
5199 modes.
5200
5201 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
5202
5203 * haifa-sched.c (schedule_insns): Fix typo in freeing
5204 forward_dependency_cache.
5205
5206 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
5207
5208 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
5209 `TARGET_SH2' as a condition.
5210
5211 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
5212
5213 * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
5214 forward_dependency_cache): New variables.
5215 (add_dependence, remove_dependence): Use anti_dependency_cache and
5216 output_dependency_cache.
5217 (compute_block_forward_dependences): Use forward_dependency_cache.
5218 (schedule_insns): Allocate and free memory for anti/output/forward
5219 dependencies caches.
5220
5221 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
5222
5223 * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
5224 `! TARGET_SH1'. Reindent.
5225
5226 2000-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5227
5228 * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
5229 Move functions from here ...
5230
5231 * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
5232 ... to here.
5233 (c_expand_builtin): New function.
5234 (init_function_format_info): Don't set `check_function_format_ptr'.
5235 (c_common_nodes_and_builtins): Set built_in_class type for
5236 printf/__builtin_printf to BUILT_IN_FRONTEND.
5237 (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
5238
5239 * c-common.h (build_function_call): Declare.
5240
5241 * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
5242 to `lang_expand_expr' rather than `expand_builtin'.
5243
5244 * tree.c (check_function_format_ptr): Delete.
5245
5246 * tree.h (check_function_format_ptr): Likewise.
5247
5248 2000-10-06 Hans-Peter Nilsson <hp@bitrange.com>
5249
5250 * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
5251 DW_OP_bregx when cfa->reg > 31.
5252
5253 * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
5254 break.
5255
5256 2000-10-05 Richard Henderson <rth@cygnus.com>
5257
5258 * c-decl.c (warn_missing_noreturn): Remove.
5259 (c_expand_body): Don't set or check can_reach_end.
5260 * c-tree.h (warn_missing_noreturn): Move ...
5261 * flags.h: ... here.
5262 (can_reach_end): Remove.
5263 * flow.c (check_function_return_warnings): New.
5264 (make_edges): No edge to exit for noreturn sibcalls.
5265 * function.c (expand_function_end): Save the return value
5266 clobber instruction.
5267 (mark_function_status): Mark it.
5268 * function.h (struct function): Add x_clobber_return_insn.
5269 * jump.c (can_reach_end): Remove.
5270 (calculate_can_reach_end): Remove.
5271 (jump_optimize_1): Don't call it.
5272 * output.h (check_function_return_warnings): Declare.
5273 * toplev.c (warn_missing_noreturn): Move from c-decl.c
5274 (rest_of_compilation): Call check_function_return_warnings.
5275
5276 2000-10-05 Richard Henderson <rth@cygnus.com>
5277
5278 * Makefile.in (NM_FOR_TARGET): New.
5279 (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
5280 (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
5281 * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map. Depend the
5282 shared library build on that and EXTRA_MULTILIB_PARTS.
5283 * mkmap-flat.awk: New file.
5284 * mkmap-symver.awk: New file.
5285 * libgcc-std.ver: New file.
5286 * config/libgcc-glibc.ver: New file.
5287 * config/ia64/libgcc-ia64.ver: New file.
5288 * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
5289 (SHLIB_LINK): Add --version-script.
5290 * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
5291 * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
5292 * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
5293 (SHLIB_LINK): Add -M.
5294
5295 2000-10-05 Richard Henderson <rth@cygnus.com>
5296
5297 * Makefile.in (LIB2FUNCS): Add _clz.
5298 * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
5299 (__clz_tab): Put in its own unit, non-static.
5300 * libgcc2.h: Always include longlong.h.
5301
5302 * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
5303 a zero instead of -1.
5304 (count_trailing_zeros): Likewise.
5305
5306 2000-10-05 Richard Henderson <rth@cygnus.com>
5307
5308 * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
5309 when second op1 is const0_rtx. Validate op0 as a register.
5310 * config/alpha/alpha.md (setcc_internal): Don't allow constants
5311 in the first argument of the compare.
5312 (setcc_swapped_internal): Likewise.
5313 (setne_internal): Likewise.
5314
5315 2000-10-05 Geoff Keating <geoffk@cygnus.com>
5316
5317 * tree.c (tree_size): New function split out of copy_node.
5318 (make_node): Remove obstack handling. Use tree_size.
5319 (copy_node): Use tree_size.
5320 * tree.h: Prototype tree_size.
5321
5322 2000-10-05 Richard Henderson <rth@cygnus.com>
5323
5324 * diagnostic.c (output_format): Add missing break.
5325
5326 2000-10-05 Jim Wilson <wilson@cygnus.com>
5327
5328 * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
5329 SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
5330 sequence insn to INSN, and delete last sequence insn.
5331
5332 2000-10-05 Phil Edwards <pme@gcc.gnu.org>
5333
5334 * gcc.c (main): Include generated configargs.h header
5335 and use arguments in '-v' output.
5336
5337 Thu Oct 5 16:16:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5338
5339 * gcc.c: Move data on prefixes forward in file and reorganize.
5340 (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
5341 Always define, but make null if no value.
5342 (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
5343 and "md_startfile_prefix_1".
5344 (main): Check whether md_exec_prefix and the others are the
5345 null string rather than whether the macro is defined.
5346
5347 Thu Oct 5 19:04:18 2000 J"orn Rennecke <amylaar@redhat.co.uk>
5348
5349 * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
5350 from PSImode to SImode.
5351
5352 2000-10-05 Jakub Jelinek <jakub@redhat.com>
5353
5354 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
5355 from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
5356 * dwarf2out.c (add_const_value_attribute): Divide by 4, not
5357 sizeof(long).
5358
5359 Thu Oct 5 09:31:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5360
5361 * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
5362 negation in proper type.a
5363
5364 2000-10-04 Richard Henderson <rth@cygnus.com>
5365
5366 * configure.in (enable-shared): New.
5367 * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
5368 (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
5369 * mklibgcc.in: Use them to link shared a libgcc.
5370 * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
5371 * config/alpha/t-ieee (SHLIB_MULTILIB): New.
5372 * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
5373 * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
5374
5375 * configure.in (alpha-osf*): Use t-osf and x-osf.
5376 * config/alpha/t-osf: New file.
5377 * config/alpha/t-osf4: New file.
5378 * config/alpha/x-osf: New file.
5379 * config/alpha/x-alpha: Remove file.
5380
5381 2000-10-04 Will Cohen <wcohen@redhat.com>
5382
5383 * c-typeck.c (process_init_element): Added warning for zero-length
5384 array.
5385
5386 * extend.texi (Zero Length): State that static initializers for
5387 zero-length arrays are not allowed.
5388
5389 Mon Oct 2 14:50:14 MET DST 2000 Jan Hubicka <jh@suse.cz>
5390
5391 * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
5392 to come last.
5393
5394 2000-10-03 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5395
5396 * config/float-c4x.h: New.
5397 * configure.in (c4x-*): Set float_format to c4x.
5398 * configure: Regenerate.
5399
5400 2000-10-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5401
5402 * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
5403 compilation for solaris versions 2.7 and greater.
5404
5405 2000-10-02 Marc Espie <espie@openbsd.org>
5406
5407 * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
5408 instead of redefining from scratch.
5409
5410 2000-10-02 David O'Brien <obrien@dragon.nuxi.com>
5411
5412 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
5413
5414 2000-10-01 Mark Mitchell <mark@codesourcery.com>
5415
5416 * config/ns32k/genix.h: Remove.
5417 * config/ns32k/x-genix: Likewise.
5418 * config/ns32k/xm-genix.h: Likewise.
5419 * config/fx80: Remove all filee in directory.
5420 * config/pyr: Likewise.
5421 * config/tahoe: Likewise.
5422 * config/gmicro: Likewise.
5423 * config/spur: Likewise.
5424 * configure.in: Remove configury bits for above targets.
5425 * configure: Regenerated.
5426
5427 * configure.in: Don't configure chill by default.
5428 * configure: Regenerated.
5429
5430 * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
5431 (lang_mark_false_label_stack): Remove.
5432 * c-lex.c (init_c_lex): Add file_info_tree as GC root. Allocate
5433 <top level> string in GC area.
5434 (mark_splay_tree_node): New function.
5435 (mark_splay_tree): Likewise.
5436 * except.c (mark_eh_status): Only call lang_mark_false_label_stack
5437 if it exists.
5438 * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
5439 * ggc-common.c (lang_mark_false_label_stack): Change type.
5440 * ggc.h (ggc_alloc_string): Add comment.
5441 (ggc_strdup): New function.
5442
5443 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru>
5444
5445 * config/avr/avr.h (BRANCH_COST): Define as 0.
5446
5447 * config/pdp11/pdp11.c: #include "tree.h" added.
5448
5449 2000-09-30 Marek Michalkiewicz <marekm@linux.org.pl>
5450
5451 * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
5452 ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
5453 with known shift count.
5454 * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
5455 New alternative for shift count 2 with no scratch register.
5456 (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
5457 "set_n" for shift counts 1 and 2.
5458
5459 2000-09-30 Geoff Keating <geoffk@cygnus.com>
5460
5461 * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE. Calculate
5462 the mask value from the individual SET operations.
5463 (return_internal_si): Move the USE after the RETURN.
5464 (return_internal_di): Likewise.
5465 (return_and_restore_fpregs_si): Likewise.
5466 (return_and_restore_fpregs_di): Likewise.
5467 (return_eh_si): Likewise.
5468 (return_eh_di): Likewise.
5469 * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
5470 or check, the USE.
5471 (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
5472 Don't generate a PARALLEL around a single operation movsi_to_cr.
5473 Generate the RETURN first in any PARALLELs.
5474
5475 * rtlanal.c (single_set_1): Use fatal_insn to display the
5476 invalid insn. Check for more cases when a USE or CLOBBER occurs
5477 before a SET.
5478 * Makefile.in: Update dependencies for rtlanal.o.
5479
5480 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
5481
5482 * i386.c: Move include of "config.h" to before that of <setjmp.h>.
5483
5484 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
5485
5486 * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
5487 Consistently use @email for formatting email addresses.
5488
5489 2000-09-29 Richard Henderson <rth@cygnus.com>
5490
5491 * cse.c (notreg_cost): New argument outer.
5492 (COST): Pass in SET to notreg_cost
5493 (COST_IN): New.
5494 (fold_rtx): Use COST_IN. Prefer constants when costs
5495 are the same.
5496
5497 2000-09-29 David Edelsohn <edelsohn@gnu.org>
5498
5499 * fixinc/inclhack.def (broken_cabs): Generalize regex.
5500 * fixinc/fixincl.x: Regenerate.
5501
5502 2000-09-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5503
5504 * loop.c (check_final_value): A GIV is not replaceable if used
5505 before set.
5506
5507 Fri Sep 29 10:04:12 2000 Jeffrey A Law (law@cygnus.com)
5508
5509 * version.c: Bump to gcc-2.97.
5510
5511 Frs Sep 29 13:37:59 MET DST 2000 Jan Hubicka <jh@suse.cz>
5512
5513 * final.c (final_scan_insn): Remove extra extract_insn call;
5514 Use caching for constrain_operands.
5515 (cleanup_subreg_operands): Use caching for extract_insn.
5516 * recog.c (constrain_operands_cached): New.
5517 * recog.h (constrain_operands_cached): Declare.
5518 * i386.c (ix86_attr_length_immediate_default,
5519 ix86_attr_length_address_default, ix86_agi_dependant): Cache
5520 extract_insn call.
5521
5522 * recog.c (asm_noperands): Tweak.
5523 (extract_insn): Do not call asm_noperads for non-asm instructions.
5524
5525 Fri Sep 29 13:20:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
5526
5527 * recog.c (recog_memoized): Rename to recog_memoized_1.
5528 * recog.h (recog_memoized): Rename to recog_memoized_1.
5529 (recog_memoized): New macro.
5530 * rtl.h (single_set): Rename to single_set_1
5531 (single_set): New macro.
5532 * rtlanal.c (single_set): Rename to single_set_1; expect clobbers
5533 to be last.
5534
5535 * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
5536 Do not use match_dup of input operands at outputs.
5537 Use register_operand for memory expression.
5538 (rep_movsi): Put use last, canonicalize.
5539 Use register_operand for memory expression.
5540 (rep_movqi): Put use last.
5541 Use register_operand for memory expression.
5542 (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
5543 of input operands at outputs. Use register_operand for memory
5544 expression.
5545 (rep_stossi): Put use last; canonicalize; fix match_dup in
5546 the address expression
5547 (rep_stosqi): Likewise.
5548 (memcmp expander): Update calls.
5549 (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
5550 the clobbers.
5551
5552 * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
5553 VOIDmode.
5554 (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
5555
5556 2000-09-28 David O'Brien <obrien@FreeBSD.org>
5557
5558 * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
5559 Contains the old contents of config/i386/freebsd.h
5560 * config/i386/freebsd.h: Now the ELF rather than a.out config file.
5561 Contains the old contents of config/i386/freebsd-elf.h
5562 * config/i386/freebsd-elf.h: Retire this file -- contents moved to
5563 config/i386/freebsd.h.
5564 * configure.in: Adjust for above changes.
5565 * po/POTFILES.in: Likewise.
5566 * po/en_GB.po: Likewise.
5567 * po/gcc.pot: Likewise.
5568 * configure: Rebuilt.
5569
5570 2000-09-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5571
5572 * doloop.c (doloop_modify): Prevent delete_insn() from
5573 deleting too much. Prefer loop->top over loop->start as
5574 target for the new JUMP insn.
5575 (doloop_valid_p): Ignore loop with exit_count != 0.
5576
5577 2000-09-28 Philipp Thomas <pthomas@suse.de>
5578
5579 * invoke.texi (i386 Options): Add athlon to table of possible
5580 choices for -mcpu=.
5581
5582 2000-09-28 Gabriel Dos Reis <gdr@codesourcery.com>
5583
5584 * diagnostic.h (output_clear_message_text): New function.
5585 (output_message_text): New macro.
5586
5587 * diagnostic.c (clear_text_info): Rename to
5588 output_clear_message_text.
5589 (output_clear): Adjust.
5590 (output_finish): Rename to output_finalize_message. Tweek.
5591 (output_to_stream): Adjust.
5592
5593 2000-09-28 Neil Booth <neilb@earthling.net>
5594
5595 * cpperror.c (_cpp_begin_message): Do the test for suppression
5596 of warnings and pedantic warnings before the "is a warning an
5597 error" tests.
5598 * cppinit.c (cpp_handle_option): Remove surplus \n.
5599 * cpplex.c (ON_REST_ARG): Delete.
5600 (skip_block_comment): Initialise prevc.
5601 (parse_args): Improve error messages.
5602 (maybe_paste_with_next): Use CONTEXT_VARARGS rather
5603 than ON_REST_ARG.
5604 * cpplib.c (cpp_push_buffer): Fix grammar in message.
5605 * cppmain.c (main): Set callbacks for #ident and #pragma
5606 only if no_output option is false.
5607 (do_pragma_implementation): Only call the #pragma handler
5608 if it is set in the cpp_reader structure.
5609
5610 Wed Sep 27 14:00:07 2000 Donald Lindsay <dlindsay@cygnus.com>
5611
5612 * integrate.c (copy_insn_list): if an ignored return value
5613 is being clobbered, skip cloning that into the inline copy.
5614
5615 2000-09-27 Joseph S. Myers <jsm28@cam.ac.uk>
5616
5617 * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
5618 use @uref for formatting URLs.
5619
5620 2000-09-27 Mark Elbrecht <snowball3@bigfoot.com>
5621
5622 * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
5623 name and prefix.
5624
5625 Tue 26-Sep-2000 18:25:38 BST Neil Booth <neilb@earthling.net>
5626
5627 * gcc.c (cpp_options): Add spec for -ftabstop=.
5628 (invoke_as): New spec that handles invoking as.
5629 Update specs to handle -save-temps and -traditional.
5630 * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
5631 Use invoke_as.
5632 * cp/lang-specs.h, objc/lang-specs.h: Update to use
5633 invoke_as, and handle -save-temps and -traditional (if
5634 appropriate).
5635
5636 2000-09-26 Jakub Jelinek <jakub@redhat.com>
5637
5638 * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
5639 op0 is a SUBREG.
5640 (function_arg_slotno): Accept TImode/CTImode.
5641 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
5642 to UNITS_PER_WORD.
5643
5644 2000-09-26 Michael Hayes <mhayes@cygnus.com>
5645
5646 * flow.c (flow_loop_pre_header_scan): Punt if loop enters
5647 from entry block.
5648
5649 2000-09-25 Jim Wilson <wilson@cygnus.com>
5650
5651 * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
5652 (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
5653 (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
5654 (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
5655
5656 Tue 26-Sep-2000 00:16:22 BST Neil Booth <neilb@earthling.net>
5657
5658 * cpplex.c (parse_args): Don't set VOID_REST flag.
5659 (CONTEXT_VARARGS): New flag.
5660 (maybe_paste_with_next): Set context earlier in loop. Use
5661 it. Do varargs test with CONTEXT_VARARGS flag.
5662 (push_arg_context): Set CONTEXT_VARARGS flag if we're
5663 pushing an argument context for a varargs argument.
5664 * cpplib.h (VOID_REST): Delete.
5665 * gcc.dg/cpp/vararg1.c: Add test case.
5666
5667 2000-09-25 Branko Cibej <branko.cibej@hermes.si>
5668
5669 * flags.h: Declare warning flag warn_system_headers.
5670 * toplev.c: Define it.
5671 (W_options): Add option -Wsystem-headers.
5672 * diagnostic.c (count_error): Test warn_system_headers.
5673 * invoke.texi: Add description for -Wsystem-headers.
5674 * cpplib.h (cpp_options): New member warn_system_headers.
5675 * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
5676 CPP_IN_SYSTEM_HEADER.
5677 * cpplib.c (do_import, do_pragma_once): Likewise.
5678 * cpperror.c (_cpp_begin_message): Test warn_system_headers
5679 and CPP_IN_SYSTEM_HEADER.
5680 * cppinit.c (handle_option): Recognize -Wsystem_headers.
5681 (print_help): Describe -Wsystem_headers.
5682 * cpplex.c (lex_line): Reorganize condition so that warnings
5683 about C++ comments in system headers can be enabled. Remove
5684 label do_line_comment.
5685
5686 Mon 25-Sep-2000 23:38:27 BST Neil Booth <neilb@earthling.net>
5687
5688 * cpplex.c (save_comment): Only store the initial '/'
5689 now.
5690 (lex_token): Combine handling of the two comment types.
5691 Pass everything but the initial '/' to save_comment.
5692
5693 Mon 25-Sep-2000 23:31:45 BST Neil Booth <neilb@earthling.net>
5694
5695 * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
5696 _cpp_can_paste): New library-internal prototypes.
5697 * cpplex.c (dump_param_spelling, output_line_command,
5698 output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
5699 cpp_printf, cpp_output_list): Move to cppoutput.c.
5700 (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
5701 * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
5702 cppoutput.c.
5703 * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
5704 dump_param_spelling, output_line_command, cpp_scan_buffer,
5705 cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
5706 from elsewhere.
5707 * Makefile.in: Add cppoutput.c.
5708 * po/POTFILES.in: Add cppoutput.c.
5709
5710 2000-09-25 Richard Henderson <rth@cygnus.com>
5711
5712 * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
5713 * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
5714 split until after reload.
5715 (rotlsi3, rotldi3): New.
5716
5717 2000-09-25 Gabriel Dos Reis <gdr@codesourcery.com>
5718
5719 * diagnostic.c (output_last_position): Define.
5720 (set_real_maximum_length): Tweek.
5721 * diagnostic.h (output_last_position): Declare.
5722
5723 2000-09-25 Kazu Hirata <kazu@hxi.com>
5724
5725 * config/i386/i386.c: Fix formatting.
5726
5727 2000-09-24 Alan Lehotsky <alehotsky@cygnus.com>
5728
5729 * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
5730 UNITS_PER_WORD is small.
5731
5732 2000-09-25 Joseph S. Myers <jsm28@cam.ac.uk>
5733
5734 * c-common.c (format_char_info): Add flags2; update comments.
5735 (print_char_table, scan_char_table, time_char_table): Split some
5736 flags out into flags2.
5737 (check_format_info): Use flags2 for those flags, for identifying
5738 the initial character of a scanf scanset, and for identifying
5739 printf formats where the '0' flag is ignored with precision.
5740
5741 2000-09-25 Hans-Peter Nilsson <hp@axis.com>
5742
5743 Changes below marked "here" add TABs on either or both sides,
5744 covering start of line, up to any operand for all noted .*ASM.*_OP
5745 definitions. All callers changed.
5746 * tm.texi: Make documented *_ASM.*_OP:s include spacing
5747 (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
5748 BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5749 ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
5750 ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
5751 Fix typos in description for LONG_LONG_TYPE_SIZE and
5752 FINI_SECTION_ASM_OP.
5753 * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
5754 why these defaults don't have leading spacing.
5755 * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
5756 * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5757 UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
5758 * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
5759 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
5760 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
5761 * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
5762 * varasm.c (ASM_STABS_OP): Here.
5763 * xcoffout.h (ASM_STABS_OP): Here.
5764 * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
5765 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
5766 INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
5767 STRING_ASM_OP): Here.
5768 * config/freebsd.h (IDENT_ASM_OP): Here.
5769 * config/linux-aout.h (SET_ASM_OP): Here.
5770 * config/linux.h (SET_ASM_OP): Here.
5771 * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5772 INT_ASM_OP): Here.
5773 * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
5774 * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
5775 * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
5776 * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5777 INT_ASM_OP): Here.
5778 * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
5779 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
5780 INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
5781 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5782 FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
5783 * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5784 CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
5785 * config/a29k/udi.h (INT_ASM_OP): Here.
5786 * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
5787 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
5788 SET_ASM_OP): Here.
5789 * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
5790 READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5791 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5792 UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
5793 ASM_STABD_OP): Here.
5794 * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
5795 COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
5796 CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5797 BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
5798 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
5799 SIZE_ASM_OP, STRING_ASM_OP): Here.
5800 * config/alpha/vms.h (LINK_SECTION_ASM_OP,
5801 READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
5802 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
5803 * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
5804 (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
5805 * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
5806 Here.
5807 * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5808 BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
5809 * config/arm/coff.h (INT_ASM_OP): Here.
5810 * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
5811 * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
5812 * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
5813 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
5814 * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
5815 * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5816 ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
5817 STRING_ASM_OP): Here. Update documentation copy in comments.
5818 * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
5819 * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
5820 DATA_SECTION_ASM_OP): Here.
5821 * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
5822 Here.
5823 * config/convex/convex.h (TEXT_SECTION_ASM_OP,
5824 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
5825 * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5826 BSS_SECTION_ASM_OP): Here.
5827 * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5828 BSS_SECTION_ASM_OP): Here.
5829 * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5830 Here.
5831 * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
5832 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
5833 * config/h8300/h8300.h (ASM_WORD_OP): Here.
5834 * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5835 BSS_SECTION_ASM_OP): Here.
5836 * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
5837 * config/i386/bsd.h (ASM_BYTE_OP): Here.
5838 * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
5839 * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
5840 * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
5841 Here.
5842 * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
5843 * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
5844 Here.
5845 * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
5846 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5847 * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
5848 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
5849 SET_ASM_OP): Here.
5850 * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
5851 * config/i386/netbsd.h (INT_ASM_OP): Here.
5852 * config/i386/openbsd.h (INT_ASM_OP): Here.
5853 * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
5854 IDENT_ASM_OP): Here.
5855 * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
5856 ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
5857 LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
5858 SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
5859 * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
5860 SHARED_BSS_SECTION_ASM_OP): Here.
5861 * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
5862 * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5863 DATA_SECTION_ASM_OP): Here.
5864 * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5865 CONST_SECTION_ASM_OP): Here.
5866 * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
5867 * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5868 BSS_SECTION_ASM_OP): Here.
5869 * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
5870 * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
5871 * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
5872 BSS_ASM_OP): Here, but use trailing spaces.
5873 * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5874 DATA_SECTION_ASM_OP): Here.
5875 * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
5876 Here.
5877 * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
5878 DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
5879 * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5880 TDESC_SECTION_ASM_OP): Here.
5881 * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
5882 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5883 * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5884 Here.
5885 * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5886 BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
5887 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5888 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
5889 * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
5890 COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
5891 FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5892 SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
5893 * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
5894 * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
5895 * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
5896 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
5897 SET_ASM_OP): Here.
5898 * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
5899 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5900 * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
5901 * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
5902 * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
5903 * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
5904 * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
5905 * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5906 GLOBAL_ASM_OP): Here.
5907 * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
5908 BSS_SECTION_ASM_OP): Here.
5909 * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
5910 * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5911 ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
5912 DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
5913 SKIP_ASM_OP): Here.
5914 * config/m68k/newsgas.h (SET_ASM_OP): Here.
5915 * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
5916 FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
5917 * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
5918 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
5919 SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
5920 but use trailing spaces.
5921 * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
5922 DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
5923 FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
5924 Here.
5925 * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5926 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
5927 * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5928 CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
5929 DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5930 IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
5931 GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
5932 BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
5933 CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
5934 SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
5935 VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5936 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
5937 ASM_BYTE_OP): Here.
5938 * config/m88k/openbsd.h (SET_ASM_OP): Here.
5939 * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5940 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
5941 * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
5942 UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
5943 DTORS_SECTION_ASM_OP): Here.
5944 * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
5945 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5946 * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
5947 BSS_SECTION_ASM_OP): Here.
5948 * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
5949 * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
5950 * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
5951 POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
5952 CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
5953 DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
5954 * config/mips/mips.c (ABICALLS_ASM_OP): Here.
5955 * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
5956 Here.
5957 * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
5958 Here.
5959 * config/mips/osfrose.h (SET_ASM_OP): Here.
5960 * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
5961 * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
5962 * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
5963 * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5964 Here.
5965 * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
5966 * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
5967 * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
5968 * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
5969 * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
5970 * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5971 Here.
5972 * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5973 Here.
5974 * config/rs6000/rs6000.h (SET_ASM_OP): Here.
5975 * config/rs6000/sol2.h (ASM_STABN_OP): Here.
5976 * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
5977 Here.
5978 * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
5979 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
5980 * config/sparc/linux.h (COMMON_ASM_OP): Here.
5981 * config/sparc/linux64.h (COMMON_ASM_OP,
5982 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
5983 * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
5984 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5985 * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
5986 * config/sparc/pbd.h (ASM_INT_OP): Here.
5987 * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
5988 * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5989 DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
5990 * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
5991 UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
5992 * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
5993 UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
5994 UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
5995 TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
5996 CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5997 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5998 EH_FRAME_SECTION_ASM_OP): Here.
5999 * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
6000 * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
6001 Here.
6002 * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
6003 Here.
6004 * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
6005 TCOMMON_ASM_OP): Here.
6006 * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
6007 Here.
6008 * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6009 ASM_BYTE_OP): Here.
6010
6011 2000-09-25 Richard Henderson <rth@cygnus.com>
6012
6013 * expmed.c (store_bit_field): Adjust last change to not consider
6014 any word-sized field naturally aligned.
6015
6016 2000-09-24 Richard Henderson <rth@cygnus.com>
6017
6018 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
6019 TFmode unordered compares properly. Revalidate integer compare
6020 operands.
6021 (alpha_emit_setcc): New.
6022 (alpha_emit_conditional_move): Revalidate integer compare operands.
6023 * config/alpha/alpha-protos.h: Update.
6024 * config/alpha/alpha.md (cmpdi): Allow general operands.
6025 (sne): Use alpha_emit_setcc.
6026 (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
6027 (sunordered, sordered): New.
6028
6029 2000-09-24 Richard Henderson <rth@cygnus.com>
6030
6031 * config/ia64/ia64-protos.h: Update.
6032 * config/ia64/ia64.c (call_multiple_values_operation): Remove.
6033 (ia64_expand_call): New.
6034 (ia64_expand_prologue): Emit an alloc if we need extra input
6035 registers.
6036 (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
6037 instruction if true.
6038 (struct reg_flags): Add is_sibcall.
6039 (rtx_needs_barrier): A sibcall does not use CFM et al. Ignore USEs.
6040 (emit_insn_group_barriers): Set flags.is_sibcall. Remove hacks
6041 for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
6042 * config/ia64/ia64.h (PREDICATE_CODES): Update.
6043 * config/ia64/ia64.md (call): Use ia64_expand_call.
6044 (call_value): Likewise.
6045 (sibcall, sibcall_value): New.
6046 (call patterns): Remove extra expanders; tidy.
6047 (sibcall_epilogue): New.
6048 (set_bsp): Remove the extra USE. Put the operand inside the UNSPEC.
6049
6050 2000-09-24 Richard Henderson <rth@cygnus.com>
6051
6052 * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
6053
6054 * sibcall.c (skip_pic_restore): New.
6055 (identify_call_return_value): Use it.
6056
6057 2000-09-24 Mark Mitchell <mark@codesourcery.com>
6058
6059 * c-tree.texi: Moved here from cp/ir.texi. Documented nested
6060 functions. Generalize to handle both C and C++.
6061 * Makefile.in (c-tree.info): New target.
6062 (info): Add c-tree.info.
6063
6064 Sun Sep 24 09:15:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6065
6066 * expr.c (store_field): If BITSIZE is negative, use size of type.
6067 (expand_expr, case COMPONENT_EXPR): Likewise.
6068
6069 Sun 24-Sep-2000 11:40:23 BST Neil Booth <NeilB@earthling.net>
6070
6071 * cpplex.c: Update TODO comment.
6072 * cpplib.c (do_error, do_warning): Merge common code of
6073 do_error and do_warning into do_diagnostic. Use it.
6074 (do_diagnostic): New function.
6075 * cpplib.h: Fix comment typo.
6076
6077 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
6078
6079 * c-common.c (check_format_info): Warn for a wide character string
6080 used as a non-wide format argument.
6081
6082 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
6083
6084 * builtins.def (BUILT_IN_LLABS): Add.
6085 * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
6086 * c-common.c (c_common_nodes_builtins): Create builtin functions
6087 __builtin_llabs, and plain llabs unless no_nonansi_builtins
6088 outside of C99 mode.
6089 (expand_tree_builtin): Handle BUILT_IN_LLABS.
6090
6091 Sat 23-Sep-2000 22:39:18 BST Neil Booth <NeilB@earthling.net>
6092
6093 * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
6094 CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
6095 * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
6096 _cpp_free_toklist): No need to worry about extra dummy token
6097 at the start of token lists any more.
6098 (trigraph_ok): Only warn outside comments.
6099 (skip_block_comment): Set and clear lexing_comment.
6100 (skip_line_comment): Take a cpp_reader not cpp_buffer.
6101 Set and clear lexing_comment.
6102 (parse_number): Handle leading '.' indicated by pfile->seen_dot.
6103 (check_long_token): Delete.
6104 (lex_percent, lex_dot): New subroutines of lex_token to
6105 handle lexing of '.' and '%' without lookback.
6106 (lex_token): Use lex_dot and lex_percent.
6107 (lex_line): Don't check for LIST_OFFSET.
6108 (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
6109 * cpplib.c (_cpp_parse_assertion): Similarly.
6110 (cpp_push_buffer): Initialize extra_char.
6111 * cpplib.h (LIST_OFFSET): Delete.
6112 (struct cpp_buffer): New member extra_char.
6113 (struct lexer_state): New members lexing_comment and seen_dot.
6114
6115 2000-09-23 Jason Merrill <jason@redhat.com>
6116
6117 * config/rs6000/x-aix41 (CLIB): Define here.
6118 * config/rs6000/t-aix43: Not here.
6119 * config/rs6000/t-aix41: Or here. Remove.
6120 * configure.in: Don't use it.
6121
6122 2000-09-22 Jason Merrill <jason@redhat.com>
6123
6124 * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
6125 * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
6126 * config.in: Regenerate.
6127
6128 * configure.in: Fix checks for assembler features when using a
6129 one-tree assembler that has not yet been built.
6130 Fix --disable-threads.
6131
6132 2000-09-19 Geoff Keating <geoffk@cygnus.com>
6133
6134 * stmt.c (expand_asm_operands): Allow # in constraints.
6135
6136 2000-09-22 Jason Merrill <jason@redhat.com>
6137
6138 * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
6139
6140 * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
6141 function-local names.
6142
6143 2000-09-22 Brad Lucier <lucier@math.purdue.edu>
6144 Mark Mitchell <mark@codesourcery.com>
6145
6146 * toplev.c (warn_disabled_optimization): Declare new warning flag.
6147 * flags.h (warn_disabled_optimization): Add it here.
6148 * gcse.c (gcse_main): Add warning when disabled.
6149 * invoke.texi: Document -Wdisabled-optimization.
6150
6151 2000-09-21 Jason Merrill <jason@redhat.com>
6152
6153 * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
6154
6155 * dwarf2out.c (tree_add_const_value_attribute): New fn.
6156 (gen_variable_die): Call it for non-definitions.
6157
6158 * dwarf2out.c (die_struct): Add die_mark field.
6159 (mark_dies, unmark_dies): New fns.
6160 (clear_die_sizes): Remove.
6161 (print_die): Check die_symbol rather than die_offset.
6162 (build_abbrev_table, output_pubnames, output_aranges): Check
6163 die_mark rather than die_offset.
6164 (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
6165 Call mark_dies.
6166
6167 Thu 21-Sep-2000 18:19:05 BST Neil Booth <NeilB@earthling.net>
6168
6169 * cppfiles.c (lookup_include_file): Rename to open_file.
6170 Always create a splay tree value, even on syscall failures.
6171 Negative entries indicated by fd == -2.
6172 Re-open files closed in the meantime.
6173 (_cpp_fake_include): Create a negative splay tree entry.
6174 (find_include_file, cpp_read_file): Update for function name
6175 change.
6176 * gcc.gd/cpp/mi4.c: Testcase.
6177
6178 2000-09-21 Nick Clifton <nickc@redhat.com>
6179
6180 * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
6181 ARM and THUMB modes.
6182
6183 * config/mcore/mcore.c: Fix compile time warnings.
6184 * config/mcore/mcore-protos.h: Fix compile time warnings.
6185
6186 2000-09-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6187
6188 * configure.in: Correct test of gcc_cv_glibc.
6189 * configure: Rebuilt.
6190 * config.in: Rebuilt.
6191
6192 2000-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6193
6194 * builtins.c (expand_builtin_fputs): Also expand when length!=1.
6195 (expand_builtin): Handle BUILT_IN_FWRITE.
6196
6197 * builtins.def (BUILT_IN_FWRITE): New entry.
6198
6199 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
6200
6201 Wed Sep 20 15:39:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6202
6203 * gcc.c (modify_target): New variable and struct.
6204 (process_command): Handle MODIFY_TARGET_NAME.
6205 * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
6206 * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
6207
6208 * c-decl.c (finish_decl): Add else's to avoid referencing
6209 TYPE_DOMAIN of an ERROR_MARK.
6210
6211 Wed Sep 20 21:44:31 2000 Denis Chertykov <denisc@overta.ru>
6212
6213 * config/avr/avr.c (adjust_insn_length): Adjust lengths of
6214 `reload_in*' insns.
6215
6216 2000-09-19 Marek Michalkiewicz <marekm@linux.org.pl>
6217
6218 * config/avr/avr.md (neghi2): Add alternative for input and output
6219 operands in different registers, as in negsi2.
6220 (*negsi2): Remove '*' from the name. Use "movw" if available.
6221
6222 2000-09-19 Jim Wilson <wilson@cygnus.com>
6223
6224 * config/ia64/crtbegin.asm (__dso_handle): Delete use of
6225 HAVE_GAS_HIDDEN macro.
6226
6227 Tue 19-Sep-2000 22:38:57 BST Neil Booth <NeilB@earthling.net>
6228
6229 * cpplex.c (lex_line): Drop the EOF token for unknown
6230 directives in assembler.
6231
6232 2000-09-19 David Edelsohn <edelsohn@gnu.org>
6233
6234 * configure.in: Allow enable_threads_flag value of "aix". Define
6235 thread_file as "aix" for AIX 4.3 and above.
6236 * configure: Regenerated.
6237
6238 * gthr-aix.h: New file.
6239
6240 * rs6000/t-aix43: Replace soft-float multilib with pthread.
6241 Remove 403 processor multilib match. Fix rios2 processor multilib
6242 match.
6243
6244 * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
6245 to return to appropriate csect.
6246
6247 2000-09-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6248
6249 * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
6250 functions.
6251 (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
6252 (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
6253 BUILT_IN_PRINTF.
6254
6255 * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
6256 New entries.
6257
6258 * c-common.c (init_function_format_info): Handle __builtin_printf.
6259 Set `check_function_format_ptr'.
6260 (c_common_nodes_and_builtins): Set `puts_ftype' and
6261 `printf_ftype'. Declare __builtin_putchar, __builtin_puts,
6262 __builtin_printf and printf.
6263
6264 * tree.c, tree.h (check_function_format_ptr): Declare.
6265
6266 Tue 19-Sep-2000 18:26:57 BST Neil Booth <NeilB@earthling.net>
6267
6268 * cppfiles.c (read_include_file): Take no special action for
6269 zero-length files.
6270
6271 2000-09-19 Bernd Schmidt <bernds@redhat.co.uk>
6272
6273 * final.c (insn_current_reference_address): Use INSN_SHUID of seq
6274 rather than that of branch.
6275 (shorten_branches): Don't increment insn_current_address twice.
6276
6277 Undo most of the Wed Jan 27 23:39:53 1999 patch:
6278 * loop.h (struct induction): Delete members derived, ix and last_use.
6279 (struct loop_ivs): Delete members first_increment_giv and
6280 last_increment_giv.
6281 * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
6282 recombine_givs): Delete functions.
6283 (find_and_verify_loops): Don't initialize cont_dominator.
6284 (strength_reduce): Lose code to try to find bivs that can be
6285 expressed as givs of another biv, and to convert biv increments
6286 into givs.
6287 Lose loop_scan_start variable, always use loop->scan_start.
6288 Don't call recombine_givs. Don't handle derived givs.
6289 (record_giv): Don't initialize derived and last_use fields.
6290 (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
6291 givs.
6292 * unroll.c (derived_regs): Delete static variable.
6293 (unroll_loop): Don't initialize it.
6294 (copy_loop_body): Lose code to handle derived givs.
6295 (find_splittable_givs): Don't check for givs made from biv
6296 increments.
6297 Don't set derived_regs.
6298
6299 Fix misapplied earlier patch:
6300 * config/sh/sh.md (floatsisf_ie): Reenable. Remove explicit reference
6301 to fpul.
6302 (floatsisf2): Generate floatsisf_ie by default.
6303 (floatsisf_i4): Conditional on TARGET_SH4.
6304
6305 (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
6306 predicate for the expanders.
6307
6308 2000-09-19 Richard Henderson <rth@cygnus.com>
6309
6310 * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
6311 in addition to pentium and pentiumpro symbols.
6312 (CPP_CPU_DEFAULT_SPEC): Likewise.
6313
6314 * c-typeck.c (c_expand_asm_operands): Restore the output tree
6315 after expanding.
6316
6317 * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
6318 if the tree has side effects.
6319 (warn_if_unused_value): Do not warn about void constructs.
6320
6321 * c-decl.c (poplevel): Invoke warn_about_unused_variables.
6322
6323 * unroll.c (copy_loop_body): Update LABEL_NUSES before
6324 calling invert_jump.
6325
6326 2000-09-18 Geoff Keating <geoffk@cygnus.com>
6327
6328 * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
6329 into anything.
6330
6331 2000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6332
6333 * Makefile.in (c-common.o): Depend on diagnostic.h.
6334
6335 * c-common.c: Include diagnostic.h.
6336 (tfaff): Delete.
6337 (status_warning): New function.
6338 (check_format_info, maybe_read_dollar_number, check_format_types,
6339 finish_dollar_format_checking, check_function_format): Accept a
6340 `status' parameter. All callers changed.
6341
6342 * c-common.h (check_function_format): Accept a `status' parameter.
6343
6344 * c-typeck.c: Update call to `check_function_format'.
6345
6346 2000-09-18 Richard Henderson <rth@cygnus.com>
6347
6348 * c-decl.c (c_expand_body): Call mark_varargs before
6349 expand_function_start.
6350
6351 2000-09-18 Geoff Keating <geoffk@cygnus.com>
6352
6353 * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
6354 * config/rs6000/eabi-ci.asm: Likewise.
6355
6356 2000-09-18 Richard Henderson <rth@cygnus.com>
6357
6358 * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
6359 for BImode.
6360
6361 2000-09-18 Jim Wilson <wilson@cygnus.com>
6362
6363 * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
6364 before passing it to fold_rtx_mult_add.
6365
6366 * unroll.c (final_giv_value): Pass increment through
6367 extend_value_for_giv before passing it to emit_iv_add_mult.
6368
6369 * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
6370 paradoxical subreg, then directly substitute the replacement and
6371 return.
6372
6373 Mon 18-Sep-2000 22:12:44 BST Neil Booth <NeilB@earthling.net>
6374
6375 * cpp.texi: Update documentation, including some clarifications,
6376 the treatment of various newline combinations, and space between
6377 backslash and newline.
6378
6379 Mon Sep 18 21:00:47 2000 J"orn Rennecke <amylaar@redhat.co.uk>
6380
6381 * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
6382 Replace ASM_OUTPUT_LABELREF with assemble_name.
6383
6384 Mon Sep 18 20:26:50 2000 J"orn Rennecke <amylaar@redhat.co.uk>
6385
6386 * sh.c (addsubcosts): CONST is not cheap.
6387 (find_barrier): For Sh1, take alignment after jumps into account.
6388
6389 2000-09-15 Andrew Haley <aph@redhat.com>
6390
6391 * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
6392 remove all SETs of SUBREGs of hard registers.
6393 * function.c (purge_hard_subreg_sets): New function.
6394 (purge_single_hard_subreg_set): New function.
6395 * rtl.h: (purge_hard_subreg_sets): New function.
6396
6397 2000-09-18 Richard Henderson <rth@cygnus.com>
6398
6399 * config/ia64/ia64-protos.h: Update.
6400 * config/ia64/ia64.c (signed_inequality_operator): New.
6401 (ia64_expand_compare): New.
6402 (ia64_register_move_cost): Handle PR_REGS moves.
6403 (ia64_secondary_reload_class): Require a GR when moving to a PR.
6404 (struct reg_write_state): Add written_by_and/or.
6405 (struct reg_flags): Add is_and/or.
6406 (rws_update): Set them.
6407 (rws_access_regno): Test them to allow parallel comparisons.
6408 (rtx_needs_barrier): Recognize parallel comparisons.
6409 (emit_insn_group_barriers): Set prev_insn after a call stop bit.
6410 Call recog_memoized; ignore pred_rel_mutex.
6411 (emit_predicate_relation_info): Don't call find_basic_blocks here.
6412 (ia64_reorg): Do it here instead.
6413 * config/ia64/ia64.h: s/CCmode/BImode/g
6414 (MODES_TIEABLE_P): Don't tie BImode.
6415 (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
6416 (CONST_COSTS): Pick sensible values for CONST_INT based on context.
6417 (RTX_COSTS): Make multiply 4 insns.
6418 (MEMORY_MOVE_COST): New.
6419 (PREDICATE_CODES): Update.
6420 * config/ia64/ia64.md: s/CCmode/BImode/g
6421 (movcci, movbi): New.
6422 (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
6423 (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
6424 (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
6425 (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
6426 (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
6427 (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
6428 (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
6429 (mulsi, muldi): Use xmpy not xma.
6430 (cmpbi): New.
6431 (movcc, movcc_internal): Remove.
6432 (branch expanders): Use ia64_expand_compare.
6433 (setcc expanders): Likewise.
6434 (cmov insns): Use move_operand and ia64_move_ok.
6435 (pred_rel_mutex): Use unspec not unspec_volatile. Prevent the
6436 scheduler from moving it past a use.
6437 * config/ia64/build.hacks: Remove.
6438
6439 Mon 18-Sep-2000 19:21:35 BST Neil Booth <NeilB@earthling.net>
6440
6441 * cpphash.h (HASHSTEP): Take character rather than pointer
6442 to character.
6443 (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
6444
6445 * cpphash.c (cpp_loookup): Update for new HASHSTEP.
6446
6447 * cpplex.c (auto_expand_name_space, trigraph_replace,
6448 backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
6449 IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
6450 BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
6451 KNOWN_DIRECTIVE): Delete.
6452
6453 (handle_newline, check_long_token, skip_escaped_newlines,
6454 unterminated): New functions.
6455 (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
6456
6457 (parse_identifier): Was parse_name, new implementation.
6458 (skip_line_comment, skip_block_comment, skip_whitespace,
6459 parse_number, parse_string, trigraph_ok, save_comment,
6460 adjust_column, _cpp_get_line): New implementations.
6461
6462 (lex_token): New function. Lexes a token at a time, looking
6463 forwards. Contains most of the guts of the old lex_line.
6464 (lex_line): New implementation, using lex_token to obtain
6465 individual tokens.
6466 (cpp_scan_buffer): Use the token's line, not the list's line.
6467
6468 * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
6469 New implementations.
6470 (do_assert): Don't bother setting the answer's list's line.
6471 (cpp_push_buffer): Initialise new pfile and read_ahead members
6472 of struct cpp_buffer.
6473
6474 * cpplib.h (cppchar_t): New typedef.
6475 (struct cpp_buffer): read_ahead, pfile and col_adjust are
6476 new members.
6477 (struct lexer_state): New structure that determines the state
6478 and behaviour of the lexer.
6479 (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
6480 (struct cpp_reader): New member "state". Rename
6481 multiline_string_line and multiline_string_column. Delete
6482 col_adjust, in_lex_line members.
6483 (CPP_BUF_COLUMN): Update.
6484
6485 2000-09-18 Richard Henderson <rth@cygnus.com>
6486
6487 * combine.c (simplify_comparison): Shift a NOT out of a single
6488 bit test.
6489
6490 * combine.c (if_then_else_cond): Canonicalize BImode true to
6491 STORE_FLAG_VALUE.
6492 * explow.c (trunc_int_for_mode): Likewise.
6493
6494 * combine.c (combine_simplify_rtx): Use gen_unary to distribute
6495 the NOT for De Morgan's rule.
6496 * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
6497 of a comparison to the reverse comparison.
6498
6499 * combine.c (try_combine): Allow split to create a single insn.
6500
6501 * machmode.def: Add BImode. Add a column for bitsize.
6502 * machmode.h (DEF_MACHMODE): Adjust for extra column.
6503 (GET_MODE_BITSIZE): Use it.
6504 * rtl.c (DEF_MACHMODE): Adjust for extra column.
6505 (mode_bitsize): New.
6506 (mode_mask_array): Use bitsize.
6507 * combine.c (combine_simplify_rtx): Require inner and outer
6508 modes to match on nonzero_bits optimizations.
6509
6510 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
6511
6512 * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
6513 its entry in spill_reg_store.
6514 * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
6515 * sh.c (reg_no_subreg_operand): New function.
6516 * sh-protos.h (reg_no_subreg_operand): Declare it.
6517 * sh.h (PREDICATE_CODES): Add it.
6518 * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
6519 input operand that needs to be in fpul.
6520 (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
6521 * sh.c (find_barrier): Take into account that machine_dependent_reorg
6522 might add new insns.
6523
6524 2000-09-18 Alexandre Oliva <aoliva@redhat.com>
6525
6526 * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
6527 MAYBE_DEAD.
6528 (sh_expand_epilogue): Take the PIC register into account when
6529 computing the frame size.
6530
6531 * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
6532 * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
6533 LABEL_REFs with a PIC-safe unspec.
6534
6535 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
6536
6537 * c-common.c (check_format_info): Properly save the argument
6538 number and parameter for $ operand number formats in case width
6539 and precision arguments are also used. Allow printf width and
6540 precision arguments to have operand numbers even if none was
6541 specified for the main format, since this is OK for %*.*m. Only
6542 object to missing $ operand number if the format used requires an
6543 argument.
6544
6545 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
6546
6547 * c-common.c (format_char_info): Add 'W' flag to comment.
6548 (print_char_table, scan_char_table): Use it.
6549 (check_format_info): Use the 'W' flag to determine whether a
6550 format argument is written into.
6551
6552 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
6553
6554 * c-common.c (check_format_types): Reorganise and clean up,
6555 checking earlier for ERROR_MARKs and making cur_type into its
6556 TYPE_MAIN_VARIANT where convenient.
6557
6558 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
6559
6560 * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
6561
6562 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
6563
6564 * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
6565
6566 * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
6567 * i386.c (struct builtin_description): New.
6568 (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
6569 (mmx_reg_operand): Declare MODE arg as unused.
6570 (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
6571 ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
6572 ix86_expand_binop_builtin, ix86_expand_store_builtin,
6573 ix86_init_builtins, ix86_expand_builtin): New functions.
6574 * i386.h (ix86_builtins): New enumeration.
6575 (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
6576 * i386.md (attr length_immediate): 0 for mmx/sse types.
6577 (attr prefix_0f): 1 for mmx/sse types.
6578 (setcc_2): Remove "*" so we get gen_setcc_2.
6579 (emms): Account for changed register numbering. Set "memory" attr
6580 to unknown.
6581 (sfence): Set "memory" attr to unknown.
6582
6583 2000-09-18 Andreas Jaeger <aj@suse.de>
6584
6585 * configure.in: Define _GNU_SOURCE only when using the GNU C
6586 Library.
6587 * configure: Regenerated.
6588 * config.in: Regenerated.
6589
6590 2000-09-17 Mark Mitchell <mark@codesourcery.com>
6591
6592 * cppinit.c (cpp_init): Don't use ANSI prototypes.
6593 * flow.c (flow_dump_loop): Likewise.
6594 (flow_loops_dump): Likewise.
6595
6596 * c-typeck.c (c_start_case): Fix typo.
6597
6598 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
6599
6600 * c-decl.c (grokdeclarator): Don't give a warning about defaulting
6601 to int for plain complex which defaults to complex double. Do
6602 warn about defaulting to complex double if pedantic. Warn about
6603 complex integer types if pedantic. Warn about complex types if
6604 pedantic and not in C99 mode.
6605 * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
6606 for complex conjugation.
6607
6608 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
6609
6610 * contrib.texi: Update my entry.
6611
6612 Sun Sep 17 18:48:32 2000 Denis Chertykov <denisc@overta.ru>
6613
6614 * config/avr/avr.md (mcu_enhanced): New attribute.
6615 (mcu_mega): Likewise.
6616 (extendhisi2): Use mcu_enhanced.
6617 (zero_extendhisi2): Likewise.
6618 (call_insn): Use mcu_enhanced and mcu_mega.
6619 (call_value_insn): Likewise.
6620 (*sbrx_branch): Use mcu_mega.
6621 (*sbrx_and_branchsi): Likewise.
6622 (*sbrx_and_branchhi): Likewise.
6623 (*tablejump_lib): Likewise.
6624
6625 Sun Sep 17 10:46:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6626
6627 * alias.c (true_dependence): Allow non-unchanging read to conflict
6628 with unchanging write.
6629
6630 * expr.c (store_constructor_field): Accept ALIAS_SET arg.
6631 (store_constructor): Pass alias_set to it.
6632
6633 * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
6634 TYPE_MAIN_VARIANT of ERROR_MARK.
6635 * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
6636
6637 * simplify-rtx.c (simplify_unary_operation): Add cases
6638 FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
6639
6640 2000-09-17 Bernd Schmidt <bernds@redhat.co.uk>
6641
6642 * expr.h (emit_library_call, emit_library_call_value): Delete
6643 declarations.
6644 * rtl.h (enum libcall_type): New.
6645 (emit_library_call, emit_library_call_value): Change fn_type arg to
6646 be of type enum libcall_type.
6647 * calls.c: Likewise for the function definitions. Several callers
6648 throughout changed to use the new enumeration appropriately.
6649 (emit_library_call_value_1): Likewise. Put back code to make libcall
6650 blocks of equal form, but only use it for the two new higher
6651 enumeration values.
6652
6653 2000-09-16 Mark Mitchell <mark@codesourcery.com>
6654
6655 Convert the C front-end to use function-at-a-time mode.
6656 * c-common.h: Include splay-tree.h.
6657 (C_DECLARED_LABEL_FLAG): New macro.
6658 (struct language_function): Add x_scope_stmt_stack and
6659 x_function_name_declared_p.
6660 (RECHAIN_STMTS): Move definition.
6661 (lang_statment_code_p): Likewise.
6662 (lang_expand_stmt): Likewise.
6663 (lang_expand_decl_stmt): New variable.
6664 (lang_expand_function_end): Likewise.
6665 (current_scope_stmt_stack): New function.
6666 (add_decl_stmt): Likewise.
6667 (add_scope_stmt): Likewise.
6668 (mark_stmt_tree): Likewise.
6669 (struct c_lang_decl): New structure.
6670 (DECL_SAVED_TREE): Define.
6671 (c_mark_lang_decl): New function.
6672 (c_expand_start_cond): Change prototype.
6673 (c_finish_then): New function.
6674 (c_finish_else): Likewise.
6675 (current_function_name_declared): Remove.
6676 (set_current_function_name_declared): Likewise.
6677 (mark_c_language_function): Declare.
6678 (case_compare): Likewise.
6679 (c_add_case_label): Likewise.
6680 (c_expand_expr): Likewise.
6681 (c_safe_from_p): Likewise.
6682 * c-common.c (lang_expand_function_end): New variable.
6683 (struct if_elt): Add if_stmt.
6684 (c_expand_start_cond): Add the if-statement to the statement-tree,
6685 rather than generating RTL.
6686 (c_finish_then): New function.
6687 (c_expand_start_else): Don't generate RTL.
6688 (c_finish_else): New function.
6689 (c_expand_expr_stmt): Don't generate RTL.
6690 (statement_code_p): Add SCOPE_STMT.
6691 (case_compare): New function.
6692 (c_add_case_label): Likewise.
6693 (mark_stmt_tree): Likewise.
6694 (c_mark_lang_decl): Likewise.
6695 (mark_c_language_function): Likewise.
6696 (c_expand_expr): Likewise.
6697 (c_safe_from_p): Likewise.
6698 * c-decl.c (c_stmt_tree): New variable
6699 (c_scope_stmt_stack): Likewise.
6700 (c_function_name_declared_p): Likewise.
6701 (lang_expand_expr_stmt): Remove.
6702 (poplevel): Don't call output_inline_function for nested
6703 functions.
6704 (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
6705 `extern' function.
6706 (redeclaration_error_message): Change means of computing whether
6707 or not a function is nested.
6708 (lookup_label): Don't call label_rtx.
6709 (init_decl_processing): Add more GC roots.
6710 (start_decl): Add DECL_STMTs to the statement-tree, rather than
6711 calling rest_of_decl_compilation.
6712 (finish_decl): Don't call expand_decl.
6713 (store_parm_decls): Begin the statement-tree, but don't generate
6714 RTL.
6715 (finish_function): Tie off the statement-tree. Call c_expand_body
6716 if appropriate.
6717 (c_expand_body): New function.
6718 (push_c_function_context): Save more information.
6719 (pop_c_function_contxt): Likewise.
6720 (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
6721 (lang_mark_tree): Mark it.
6722 (current_stmt_tree): Adjust.
6723 (current_scope_stmt_stack): New function.
6724 (do_case): Remove.
6725 (set_current_name_declared): Likewise.
6726 (c_begin_compound_stmt): Define.
6727 (c_expand_decl_stmt): Likewise.
6728 * c-lang.c: Include rtl.h and expr.h.
6729 (lang_init): Set more language-specific hooks.
6730 * c-lex.c: Include expr.h.
6731 * c-parse.in: Changes throughout to add statements to the
6732 statement-tree, rather than generating RTL after every statement.
6733 * c-semantics.c (lang_expand_decl_stmt): Define.
6734 (add_decl_stmt): New function.
6735 (add_scope_stmt): Likewise.
6736 (finish_stmt_tree): Tweak.
6737 (genrtl_expr_stmt): Likewise.
6738 (genrtl_decl_stmt): Handle local labels, and call
6739 lang_expand_decl_stmt if required.
6740 (genrtl_for_stmt): Fix line-number handling.
6741 (genrtl_case_label): Handle cleanups.
6742 (genrtl_asm_stmt): Don't call combine_strings.
6743 (genrtl_compound_stmt): Simplify.
6744 (expand_stmt): Handle SCOPE_STMTs.
6745 * c-tree.h (struct lang_decl): New structure.
6746 (C_DECLARED_LABEL_FLAG): Remove.
6747 (c_begin_compound_stmt): Declare.
6748 (c_expand_decl_stmt): Likewise.
6749 (c_expand_start_case): Rename to c_start_case.
6750 (c_finish_case): New function.
6751 * c-typeck.c (start_init): Tweak setting of
6752 constructor_incremental.
6753 (c_expand_asm_operands): Tweak error-handling. Add to the
6754 statement-tree.
6755 (c_expand_return): Add to the statement-tree.
6756 (c_expand_start_case): Rename to ...
6757 (c_start_case): ... this.
6758 (struct c_switch): New type.
6759 (switch_stack): New variable.
6760 (do_case): Simplify.
6761 (c_finish_case): New function.
6762 * dependence.c: Include expr.h.
6763 (enum dependence_type): Change spelling of enumerals.
6764 (check_node_dependence): Adjust.
6765 * expr.h (lang_safe_from_p): Declare.
6766 (safe_from_p): Likewise.
6767 * expr.c (lang_safe_from_p): New variable.
6768 (safe_from_p): Give it external linkage. Use lang_safe_from_p.
6769 * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
6770 * toplev.c (rest_of_decl_compilation): Robustify.
6771 * tree.c (contains_placeholder_p): Likewise.
6772 * Makefile.in: Update dependencies.
6773 * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
6774 * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
6775 (objc_expand_function_end): New function.
6776 (finish_method_def): Use it.
6777 (init_objc): Initialize more language-specific hooks.
6778 * objc/Make-lang.in: Update dependencies.
6779
6780 2000-09-16 Geoffrey Keating <geoffk@cygnus.com>
6781
6782 * configure.in: Define macros that affect features before
6783 testing for features. Don't define _XOPEN_SOURCE.
6784 * configure: Regenerated.
6785 * config.in: Regenerated.
6786
6787 Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com)
6788
6789 * rtlanal.c (rtx_varies_p): Volatile asms vary.
6790 (rtx_unstable_p): Restructure code. Volatile asms
6791 are unstable.
6792
6793 Sat Sep 16 14:35:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6794
6795 * function.h (no_debugging_symbols): New field.
6796 * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
6797 Initialize no_debugging_symbols.
6798 (output_inline_function): Save and restore write_symbols and set from
6799 no_debugging_symbols.
6800 * toplev.c (rest_of_compilation): Call save_for_inline.
6801 * tree.h: Update comment.
6802
6803 * stor-layout.c (place_field): Don't do anything if field or
6804 its type are ERROR_MARK.
6805
6806 Sat Sep 16 19:14:00 2000 Laurynas Biveinis <lauras@softhome.net>
6807
6808 * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
6809 (read_include_file): Ensure inc->mmaped is initialized.
6810
6811 2000-09-16 Richard Henderson <rth@cygnus.com>
6812
6813 * cppiles.c (purge_cache): Use PTR not caddr_t.
6814
6815 2000-09-16 Hans-Peter Nilsson <hp@axis.com>
6816
6817 * gcc.c: In description for %{<S}, say the option removed is -S.
6818 * invoke.texi (Spec Files): Ditto.
6819
6820 2000-09-16 Andreas Jaeger <aj@suse.de>
6821
6822 * configure.in: Always define _GNU_SOURCE to make interfaces
6823 visible that were hidden by only defining _GNU_SOURCE.
6824 * configure: Regenerated.
6825
6826 Sat 16-Sep-2000 08:13:45 BST Neil Booth <NeilB@earthling.net>
6827
6828 * cpplex.c (push_macro_context): Set an argument's level after
6829 calling parse_args. We could loop infinitely otherwise.
6830
6831 2000-09-15 Tom Tromey <tromey@cygnus.com>
6832
6833 * configure, config.in: Rebuilt.
6834 * configure.in: Check for iconv.h. Define _XOPEN_SOURCE.
6835
6836 2000-09-15 Greg McGary <greg@mcgary.org>
6837
6838 * cppmacro.c (check_trad_stringification): Check token
6839 text pointers against limit before dereferencing.
6840
6841 2000-09-15 Joseph S. Myers <jsm28@cam.ac.uk>
6842
6843 * c-common.c (format_wanted_type): New structure.
6844 (check_format_types): New function.
6845 (check_format_info): Pass all checking of types of format
6846 arguments, including width and precision arguments, to this new
6847 function.
6848
6849 2000-09-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
6850
6851 * BUGS: Remove file.
6852
6853 2000-09-15 Jakub Jelinek <jakub@redhat.com>
6854
6855 * config/alpha/alpha.c (override_options): ev6 cache latencies
6856 from Richard Henderson. Don't allow -mmemory-latency=L0.
6857
6858 * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
6859 (TARGET_OPTIONS): Add tune=.
6860 (alpha_tune_string): Declare.
6861 * config/alpha/alpha.c (override_options): Add cpu_table.
6862 Use alpha_cpu_string first to set both alpha_cpu and target_flags
6863 and then alpha_tune_string to set alpha_cpu only.
6864 Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
6865 * config/alpha/elf.h (ASM_FILE_START): Likewise.
6866 * config/alpha/osf.h (ASM_FILE_START): Likewise.
6867 * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
6868
6869 Fri Sep 15 19:45:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
6870
6871 * i386-protos.h (no_comparison_operator, uno_comparison_operator):
6872 Remove.
6873 (ix86_comparison_operator, ix86_cc_mode): Declare
6874 * i386.h (CCGC, CCGCO): New modes.
6875 (SELECT_CC_MODE): Move offline to ....
6876 * i386.c (ix86_cc_mode): .... here; use new modes.
6877 (ix86_comparison_operator): New.
6878 (fcmov_comparison_operator): Ensure proper mode.
6879 (put_condition_mode): More sanity checking.
6880 (ix86_match_ccmode): Handle new modes.
6881 (ix86_expand_fp_compare): GEU requires CCmode.
6882 (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
6883 doing it by hand.
6884 * i386.md (cmp?i_ccz_1): Remove
6885 (cmp?i_ccno_1): Use ix86_match_ccmode.
6886 (cmp?i_minus_1): New.
6887 (cmpsi_1): New expander.
6888 (cmpqi_ext_1): Use match_ccmode
6889 (cmpqi_ext_3): New expander.
6890 (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
6891 (cmpqi_ext_4): Use match_ccmode.
6892 (add?i_?): Use match_ccmode.
6893 (add?i_6): New.
6894 (test?i_ccz_1): Remove
6895 (test?i_1): New.
6896 (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
6897 (testqi_ext_0): Use ix86_match_ccmode.
6898 (*xorqi_cc_ext_1): Use ix86_match_ccmode.
6899 (xorqi_cc_ext_1): New expander.
6900 (shift patterns): Use CCGOCmode for all shifts except for sar.
6901 (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
6902 (setcc_3, jcc_3, miv?icc_c): Remove.
6903
6904 2000-09-15 Will Cohen <wcohen@redhat.com>
6905
6906 * dwarf2out.c (add_const_value_attribute): Changed array into a
6907 xmalloced object, so it exists after function exit.
6908 (free_AT): Added case for dw_val_class_float to free allocated
6909 memory.
6910
6911 2000-09-15 Kazu Hirata <kazu@hxi.com>
6912
6913 * config/i386/i386.md: Fix a comment typo.
6914 * gcc.c: Fix formatting.
6915
6916 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
6917
6918 * optabs.c (emit_libcall_block): If target is a user variable,
6919 copy to a temporary first.
6920 * expr.c (convert_move): When generating a libcall, make a libcall
6921 block.
6922 * calls.c (emit_library_call_value_1): Don't create a libcall
6923 sequence here; our caller will in most cases do it.
6924
6925 * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
6926 MACH into FPUL.
6927 (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
6928 * sh.md (reload_outsf): Generate recognizable patterns for
6929 TARGET_SH3E.
6930 (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
6931 fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
6932 fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
6933 truncdfsf2_i4): Change not to use explicit references to fpul.
6934 (floatsisf2_ie): Remove USE of fpscr.
6935 (floatsisf2): Change default expansion to match this.
6936 (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
6937 unused patterns.
6938
6939 2000-09-15 Richard Henderson <rth@cygnus.com>
6940
6941 * expmed.c (store_bit_field): Consider naturally aligned
6942 memory for direct reference.
6943
6944 2000-09-15 Richard Henderson <rth@cygnus.com>
6945
6946 * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
6947 AND addresses into alias set 0.
6948 (alpha_expand_unaligned_store): Likewise.
6949 (alpha_expand_unaligned_load_words): Likewise.
6950 (alpha_expand_unaligned_store_words): Likewise.
6951
6952 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
6953
6954 * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
6955 * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
6956 is defined.
6957 * config/mips/mips.c (mips_va_arg): Args passed by reference have a
6958 rsize of UNITS_PER_WORD.
6959
6960 Fri 15-Sep-2000 06:49:07 BST Neil Booth <NeilB@earthling.net>
6961
6962 * cpplex.c (ON_REST_ARG): Correct the test.
6963 (maybe_paste_with_next): Duplicate a token that fail pasting,
6964 and clear its PASTE_LEFT flag, so that nested pasting attempts
6965 do not occur.
6966
6967 2000-09-14 Richard Henderson <rth@cygnus.com>
6968
6969 * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
6970 * cse.c (rtx_cost): Likewise.
6971 * optabls.c (expand_binop): Likewise.
6972 (expand_twoval_binop, prepare_cmp_insn): Likewise.
6973 * regclass.c (copy_cost): Likewise.
6974 * reload1.c (reload_cse_move2add): Likewise.
6975
6976 2000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
6977
6978 * c-parse.in (reswords): Add _Complex.
6979
6980 2000-09-14 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6981
6982 * gcc.1: Delete documentation for -undef preprocessor option.
6983
6984 2000-09-14 Alexandre Oliva <aoliva@redhat.com>
6985
6986 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
6987 STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
6988 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
6989 Remove undefine before config/elfos.h.
6990 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
6991
6992 2000-09-14 Kazu Hirata <kazu@hxi.com>
6993
6994 * invoke.texi (H8/300 Options): Add -ms2600.
6995 * config/h8300.c (h8300_init_once): Output an error when -ms2600
6996 is used without -ms.
6997 * config/h8300.h (TARGET_MAC): New.
6998 (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
6999 (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
7000 machine other than H8/S2600.
7001 * config/h8300.md: Accept mac instructions on the H8/S2600 instead
7002 of the H8/S2000.
7003
7004 2000-09-14 Alexandre Oliva <aoliva@redhat.com>, Bernd Schmidt <bernds@redhat.co.uk>
7005
7006 * reload.c (find_reloads_address_1): Generate reloads for auto_inc
7007 pseudos that refer to the original pseudos, not only to their
7008 equivalent memory locations.
7009
7010 Thu Sep 14 12:10:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7011
7012 * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
7013 when making new MEM.
7014
7015 * Makefile.in (LN): Remove duplicate definition.
7016
7017 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
7018
7019 From Joern Rennecke:
7020 * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
7021 on an insn and function_invariant_p returns nonzero for the source,
7022 add a REG_EQUAL note.
7023
7024 Thu Sep 14 00:51:57 EDT 2000 John Wehle (john@feith.com)
7025
7026 * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
7027 conflict with frame_pointer_rtx.
7028
7029 2000-09-13 Kazu Hirata <kazu@hxi.com>
7030
7031 * loop.c: Fix formatting.
7032 * loop.h: Likewise.
7033
7034 2000-09-13 Richard Henderson <rth@cygnus.com>
7035
7036 * config/ia64/ia64.md (divsf3): New.
7037 (divsf3_internal_lat, divsf3_internal_thr): New.
7038 (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
7039 (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
7040 (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
7041 (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
7042 (nmadddf4_alts, nmadddf4_trunc): New.
7043 (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
7044 (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
7045 (multf3_truncsf_alts, multf3_truncdf_alts): New.
7046 (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
7047 (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
7048 (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
7049 (nmaddtf4_truncdf_alts): New.
7050 (recip_approx): Don't predicate.
7051
7052 2000-09-13 Richard Henderson <rth@cygnus.com>
7053
7054 * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
7055
7056 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7057
7058 * flags.h (flag_dump_rtl_in_asm): Declare.
7059 * toplev.c (flag_dump_rtl_in_asm): Define.
7060 (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
7061 if -dP is specified.
7062 * rtl.h (print_rtx_head): Declare.
7063 * print-rtl.c (print_rtx_head): Define.
7064 (print_rtx): Print the string pointed to by print_rtx_head
7065 at beginning of each dump line.
7066 (print_rtl): Likewise.
7067 (print_rtl_single): Likewise.
7068 * final.c (final_scan_insn): Dump the insn in the assembly
7069 file for debugging.
7070 * gcc.1: Document -dP option.
7071 * invoke.texi (Debugging Options): Likewise.
7072
7073 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7074
7075 * md.texi (Machine Constraints): Document the 68HC11 constraints.
7076 * install.texi (Configurations): Document the 68HC11&68HC12 port.
7077 * invoke.texi (Option Summary, M68hc1x Options): Document the options.
7078
7079 Tue Sep 12 13:51:13 2000 Denis Chertykov <denisc@overta.ru>
7080
7081 * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
7082 * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
7083 (*clrstrqi): Likewise.
7084 (xorhi3,xorsi3,absqi2): Likewise.
7085 (one_cmplhi2,one_cmplsi2): Likewise.
7086 (addsi3): Two stupid constraint alternatives removed.
7087 (extendhisi2): Use `movw' for enhanced avr cores.
7088 (zero_extendhisi2): Likewise.
7089
7090 Wed Sep 13 02:31:23 EDT 2000 John Wehle (john@feith.com)
7091
7092 * alias.c (find_base_term): Use frame_pointer_rtx
7093 when handling an ADDRESSOF.
7094
7095 * cse.c (canon_hash): Handle USE of BLKmode memory.
7096 (cse_insn): Outgoing arguments for a libcall don't
7097 affect any recorded expressions.
7098
7099 2000-09-12 Tom Tromey <tromey@cygnus.com>
7100
7101 * configure, config.in: Rebuilt.
7102 * configure.in: Check for iconv, nl_langinfo, langinfo.h.
7103
7104 2000-09-12 Jakub Jelinek <jakub@redhat.com>
7105
7106 * c-lex.c (lex_string): Use charwidth to compute bytemask.
7107 * expr.c (expand_expr): Don't optimize constant array references
7108 initialized with wide string constants.
7109
7110 2000-09-13 Michael Hayes <mhayes@cygnus.com>
7111
7112 * loop.c (note_set_pseudo_multiple_uses): Correct.
7113
7114 2000-09-12 Jim Wilson <wilson@cygnus.com>
7115
7116 * ifcvt.c (noce_process_if_block): If A and B are the same, and no
7117 else block, and X has side-effects, then fail.
7118
7119 2000-09-12 Greg McGary <greg@mcgary.org>
7120
7121 * config/mips/mips-protos.h
7122 (trap_cmp_op, mips_gen_conditional_trap): New func decls.
7123 * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
7124 (PREDICATE_CODES): Add "trap_cmp_op".
7125 * config/mips/mips.c
7126 (trap_cmp_op, mips_gen_conditional_trap): New functions.
7127 * config/mips/mips.md (trap, conditional_trap): New patterns.
7128
7129 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
7130
7131 * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
7132 pointer.
7133
7134 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7135
7136 * builtins.c (built_in_decls): New array.
7137 (expand_builtin_fputs): New function.
7138 (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
7139
7140 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
7141
7142 * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
7143
7144 * tree.h (built_in_decls): New array.
7145
7146 Tue Sep 12 08:53:57 2000 Jeffrey A Law (law@cygnus.com)
7147
7148 * convex.md: Use "+" instead of "=" for outputs wrapped in a
7149 STRICT_LOW_PART.
7150 * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
7151
7152 2000-09-12 Kazu Hirata <kazu@hxi.com>
7153
7154 * haifa-sched.c: Fix formatting.
7155
7156 * genattrtab.c: Fix formatting.
7157
7158 * unroll.c: Fix formatting.
7159
7160 2000-09-12 Bruce Korb <bkorb@gnu.org>
7161
7162 * fixinc/fixfixes.c: make a type for the fix procedure & use it,
7163 remove obsolete code
7164 * fixinc/fixincl.c: Use PARAMS, not _P_. Add no-op default to switch.
7165 * fixinc/fixincl.tpl: make non-exported arrays static scope
7166 * fixinc/fixincl.x: regenerate
7167 * fixinc/fixlib.h: Use PARAMS, not _P_
7168 * fixinc/fixtests.c: make a type for the test proc & use it
7169 * fixinc/server.h: Use PARAMS, not _P_
7170
7171 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7172
7173 * c-typeck.c (process_init_element): Avoid union init warnings on
7174 floating point zero. Don't crash on unions containing structs.
7175
7176 2000-09-12 Alexandre Oliva <aoliva@redhat.com>
7177
7178 * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
7179 general_movsrc_operand, and remove CONST_INT from
7180 general_movdst_operand.
7181
7182 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
7183
7184 * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
7185 if a reference to non-fixed hardreg is seen. Otherwise, count hard
7186 regs with a higher cost.
7187 (preferrable): Deal with cases where either cost or regcost is
7188 MAX_COST.
7189 (cse_insn): Use MAX_COST rather than 10000. Always initialize
7190 regcost values.
7191 (COSTS_N_INSNS): Move definition...
7192 * rtl.h: ...here.
7193 (MAX_COST): New macro.
7194 * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
7195 constant.
7196
7197 2000-09-11 Mark Mitchell <mark@codesourcery.com>
7198
7199 * c-common.h (genrtl_clear_out_block): Remove.
7200 * c-semantics.c (genrtl_clear_out_block): Remove.
7201 (genrtl_while_stmt): Don't call it.
7202 (genrtl_for_stmt): Likewise.
7203
7204 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
7205
7206 * cppfiles.c: Move all default-#defines to top of file.
7207 (open_include_file): Replace by lookup_include_file.
7208 (read_with_read, read_file): Merged into read_include_file.
7209 (stack_include_file, purge_cache): New functions.
7210 (close_cached_fd): Delete.
7211 (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
7212 Cache the in-memory buffer, not the file descriptor.
7213
7214 * cpphash.h (struct include_file): Add buffer, st, refcnt,
7215 mapped fields.
7216 (xcnew): New utility macro.
7217 (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
7218 * cpplib.h (struct cpp_buffer): Remove mapped field.
7219
7220 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
7221
7222 * cpplex.c (parse_string): Accept backslash space newline as a
7223 line continuation.
7224 (lex_line): Likewise.
7225 (_cpp_get_token): Remove hard limit on macro nesting.
7226
7227 2000-09-12 Philipp Thomas <pthomas@suse.de>
7228
7229 * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
7230 * configure: Rebuilt.
7231
7232 2000-09-13 Michael Hayes <mhayes@cygnus.com>
7233
7234 * flow.c (split_block): Fix update of registers live at
7235 end of split block.
7236
7237 Tue Sep 12 01:51:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
7238
7239 * i386.md (add?i_3, add?i_5): New.
7240 (add?i_4): Rename from add?i_3; Fix compare pattern.
7241 (sub?i_3, xor?i_3, ior?i_3): New.
7242
7243 * genrecog.c (write_tree): Output code to clear insn_extract cache.
7244 * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
7245 instead of extract_insn and extract_constrain_insn_cache instead of
7246 extract_insn and constrain_operands.
7247 * recog.c (extract_insn_cached, extract_constrain_insn_cached):
7248 New functions.
7249 (extract_insn): Clear which_alternative.
7250 (constrain_operands): Set which_alternative to -1 when failed.
7251 * recog.h (extract_constrain_insn_cached, extract_insn_cached):
7252 Declare.
7253
7254 2000-09-11 Matthew Hiller <hiller@redhat.com>
7255
7256 * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
7257 on operand 0 to '+'.
7258 (movstricthi): Likewise.
7259
7260 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7261
7262 * loop.h (LOOP_IVS): New macro.
7263 (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
7264 (struct loop_ivs): New.
7265 (struct loop_info): Add ivs field.
7266 (reg_iv_type, reg_iv_info): Delete prototype.
7267 (reg_biv_class, loop_iv_list): Likewise.
7268 * loop.c (record_biv, find_life_end): Pass loop argument.
7269 (reg_iv_type): Remove global array and use
7270 field in loop_regs structure within loop_ivs structure.
7271 (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
7272 (first_increment_giv, last_increment_giv): Use entry in
7273 loop_ivs structure.
7274 (record_initial): Pass ivs pointer.
7275 * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
7276
7277 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7278
7279 * loop.h (LOOP_REGS): New macro.
7280 (struct loop_regs): New.
7281 (struct loop_info): Add regs field.
7282 * loop.c (set_in_loop): Remove global array and store
7283 in loop_regs structure as part of loop_info structure.
7284 (n_times_set, may_not_optimize): Likewise.
7285 (reg_single_usage, moved_once): Likewise.
7286 (count_one_set): Add regs argument.
7287 (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
7288 (set_pseudo_multiple_uses): Pass regs pointer.
7289
7290 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7291
7292 * unroll.c (iteration_info): Subsume into loop_iterations.
7293 * loop.h (loop_info): New field iv.
7294
7295 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7296
7297 * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
7298 (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
7299 (flow_loops_update): New prototype.
7300 (flow_loops_find): Add flags to prototype.
7301 (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
7302 * flow.c (flow_loop_pre_header_scan): New.
7303 (flow_loop_dump): Dump pre-header root and trace and exit dominators.
7304 (flow_loop_free): Free pre-header root and trace and exit dominators.
7305 (flow_loops_find): New argument flags.
7306 (flow_loops_update): New function.
7307 * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
7308
7309 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7310
7311 * basic-block.h (split_block, update_bb_for_insn): New prototypes.
7312 * flow.c (split_block, update_bb_for_insn): New functions.
7313
7314 2000-09-11 Richard Henderson <rth@cygnus.com>
7315
7316 * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
7317
7318 2000-09-11 Richard Henderson <rth@cygnus.com>
7319
7320 * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
7321 * config/ia64/ia64.c (fr_nonimmediate_operand): New.
7322 (ia64_override_options): Prevent optimizing division for both
7323 latency and throughput.
7324 (rtx_needs_barrier): Handle frcpa.
7325 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
7326 (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
7327 (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
7328 (TARGET_SWITCHES): Add -minline-divide-min-latency and
7329 -minline-divide-max-throughput.
7330 (PREDICATE_CODES): Update.
7331 * config/ia64/ia64.md (extendsidi2): Remove * from f case.
7332 (zero_extendsidi2): Likewise. Fix typo in f case insn.
7333 (extendsfdf2): Add cases for gr<->fr and fr<->mem.
7334 (extendsftf2): Likewise.
7335 (extenddftf2): Likewise.
7336 (fix_trunctfdi2_alts): New.
7337 (fixuns_trunctfdi2_alts): New.
7338 (madd*4): Rename from madd*3.
7339 (divsi3, modsi3, udivsi3, umodsi3): New.
7340 (divsi3_internal): New.
7341 (divdi3, moddi3, udivdi3, umoddi3): New.
7342 (divdi3_internal_lat, divdi3_internal_thr): New.
7343 (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
7344 (recip_approx): New.
7345
7346 2000-09-11 Alexandre Oliva <aoliva@redhat.com>
7347
7348 * print-rtl.c (debug_call_placeholder_verbose): New variable.
7349 (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
7350 set.
7351 * integrate.c (copy_rtx_and_substitute): Don't share
7352 LEAF_REG_REMAPpable registers with the inlined function. Don't
7353 share the function value with calling sequences.
7354
7355 2000-09-11 Jakub Jelinek <jakub@redhat.com>
7356
7357 * c-decl.c (do_case): Fix a typo.
7358
7359 * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
7360 to a if the comparison is floating mode and not -ffast-math.
7361 * simplify-rtx.c (simplify_ternary_operation): Likewise.
7362
7363 Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
7364
7365 * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
7366 gen_ic_invalidate_line.
7367
7368 2000-09-11 Philip Blundell <pb@futuretv.com>
7369
7370 * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
7371
7372 Mon Sep 11 10:48:41 2000 Ulrich Drepper <drepper@redhat.com>
7373
7374 * install.texi (LANGUAGES): Update to include new languages.
7375 * INSTALL: Rebuilt.
7376
7377 2000-09-11 DJ Delorie <dj@redhat.com>
7378
7379 * gcc.c (main): Don't warn about unused -B prefixes
7380 (unused_prefix_warnings): remove
7381
7382 2000-09-11 Kazu Hirata <kazu@hxi.com>
7383
7384 * final.c: Fix formatting.
7385
7386 * integrate.c: Fix formatting.
7387
7388 2000-09-11 Geoff Keating <geoffk@cygnus.com>
7389
7390 * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
7391
7392 2000-09-11 Bernd Schmidt <bernds@redhat.co.uk>
7393
7394 * reload.c (regno_clobbered_p): Fix thinko in previous change.
7395
7396 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7397
7398 * gcc.1: Document 68hc11 specific options.
7399
7400 2000-09-10 Geoff Keating <geoffk@cygnus.com>
7401
7402 * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
7403 (TARGET_LONG_DOUBLE_128): Define.
7404 (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
7405 (LONG_DOUBLE_TYPE_SIZE): Redefine.
7406 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
7407 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
7408 of __LONG_DOUBLE_128__.
7409 (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
7410 passed.
7411 (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
7412 (CPP_SYSV_DEFAULT_SPEC): Define.
7413 (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
7414 (INIT_TARGET_OPTABS): Define.
7415
7416 * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
7417 (RS6000_UITRUNC): Likewise.
7418 (INIT_TARGET_OPTABS): New macro.
7419 * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
7420 (trunc_defined): Delete.
7421 (output_prolog): Don't output .extern definitions for fp->int
7422 conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
7423 * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
7424 (trunc_defined): Delete.
7425 (RS6000_ITRUNC): Moved to aix.h.
7426 (RS6000_UITRUNC): Likewise.
7427 * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
7428 only emit a libcall.
7429 (fixuns_truncdfsi2): Delete.
7430 (trunc_call): Delete.
7431 (trunc_call_rtl): Delete.
7432
7433 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
7434
7435 * varasm.c (make_decl_rtl): Restore leading star on
7436 DECL_ASSEMBLER_NAME set for decls with an asmspec.
7437
7438 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
7439
7440 * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
7441 won't give a spurious error for '#pragma pack()'. Simplify
7442 control flow for readability. 'reset' action is not necessary.
7443
7444 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
7445
7446 * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
7447 SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
7448 LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
7449 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
7450
7451 * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
7452 profile.c, sdbout.c, tradcif.y, tree.c:
7453 Include defaults.h if not already included.
7454 Don't define the above macros.
7455
7456 * Makefile.in: Update dependencies.
7457
7458 2000-09-10 Mark Mitchell <mark@codesourcery.com>
7459
7460 * c-common.h (add_stmt): Change prototype.
7461 (RECHAIN_STMTS): New macro.
7462 (CASE_LABEL_DECL): Likewise.
7463 (genrtl_case_label): Change prototype.
7464 (c_expand_start_case): Remove prototype.
7465 (build_case_label): Change prototype.
7466 (decl_constant_value): Declare.
7467 * c-common.c (check_case_value): Handle C++'s extensions to C
7468 semantics.
7469 * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
7470 field.
7471 * c-parse.in (stmt): Adjust handling of return statements and case
7472 laels.
7473 * c-semantics.c (add_stmt): Return the new statement.
7474 (genrtl_return_stmt): Take the RETURN_STMT as input, not the
7475 returned expression. Directly generate RTL, rather than calling
7476 c_expand_return.
7477 (genrtl_switch_stmt): Don't call c_expand_start_case.
7478 (build_case_label): Take the LABEL_DECL as input, too.
7479 (genrtl_case_label): Just call add_case_node.
7480 (expand_stmt): Adjust calls to genrtl_return_stmt and
7481 genrtl_case_label.
7482 * c-tree.h (c_expand_start_case): Declare.
7483 * c-typeck.c (decl_constant_value): Give it external linkage.
7484 (c_expand_return): Don't call expand_return or expand_null_return;
7485 use genrtl_return_stmt instead.
7486 * stmt.c (struct nesting): Remove num_ranges field.
7487 (add_case_node): Give it external linkage.
7488 (expand_start_case): Don't set num_ranges.
7489 (expand_start_case_dummy): Don't clear it.
7490 (pushcase): Rely on add_case_node to handle `default' labels.
7491 (add_case_node): Handle `default' labels.
7492 * tree.c (tree_int_cst_compare): New function.
7493 * tree.h (tree_int_cst_compare): Declare.
7494 (add_case_node): Likewise.
7495
7496 2000-09-10 Richard Henderson <rth@cygnus.com>
7497
7498 * c-parse.in: Revert last change.
7499 (init_reswords): Do not enter disabled keywords into the ridpointers
7500 table, modulo objc weirdness.
7501 (_yylex): Return the canonical spelling for a keyword.
7502
7503 2000-09-10 Philip Blundell <philb@gnu.org>
7504
7505 * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
7506 * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
7507
7508 Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
7509
7510 * alias.c (find_base_term): Handle ADDRESSOF.
7511 (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
7512
7513 2000-09-10 Denis Chertykov <denisc@overta.ru>
7514
7515 * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
7516 outputting templates with many lines.
7517
7518 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7519
7520 * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
7521 to decide whether 64-bit support must be generated.
7522
7523 2000-09-10 Richard Henderson <rth@cygnus.com>
7524
7525 * c-parse.in (asm patterns): Fix volatile check.
7526
7527 2000-09-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7528
7529 * cppmacro.c (check_trad_stringification): New function.
7530 (save_expansion): If -Wtraditional, warn about stringification of
7531 macro arguments.
7532
7533 2000-09-11 Michael Hayes <mhayes@cygnus.com>
7534
7535 * loop.h (struct loop_mem_info): Move from loop.c
7536 (struct loop_info): Add fields store_mems, mems, mems_idx,
7537 mems_allocated, unknown_address_altered,
7538 unknown_constant_address_altered, num_mem_sets, and
7539 first_loop_store_insn.
7540
7541 * loop.c (loop_store_mems): Replace with field in loop_info struct.
7542 (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
7543 (unknown_address_altered, unknown_constant_address_altered): Likewise.
7544 (num_mem_sets): Likewise.
7545 (replace_loop_mems, replace_loop_regs): New.
7546 (struct loop_replace_args): New.
7547 (load_mems): Use replace_loop_mems.
7548 (try_copy_prop): Use replace_loop_regs.
7549 (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
7550
7551 2000-09-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7552
7553 * configure.in: Recognize m6811-elf and m6812-elf.
7554 * configure: Regenerate.
7555
7556 2000-09-09 Geoff Keating <geoffk@cygnus.com>
7557
7558 * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
7559 to operand_subword.
7560
7561 2000-09-10 Michael Hayes <mhayes@cygnus.com>
7562
7563 * loop.c (struct movables): New.
7564 (num_movables): Move into struct movables.
7565 (the_movables): Change type to struct movables.
7566 (ignore_some_movables): Change struct movable arg to struct movables.
7567 (force_movables, combine_movables, regs_match_p): Likewise.
7568 (rtx_equal_for_loop_p, move_movables): Likewise.
7569 (scan_loop): Change movables to be of type struct movables.
7570 Replace last_movable with field in movables structure.
7571
7572 2000-09-08 Zack Weinberg <zack@wolery.cumb.org>
7573
7574 * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
7575 (init_pragma): Avoid warning if pfile happens to be unused.
7576 * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never
7577 define init_pragma to nothing. Always prototype
7578 init_pragma. Prototype dispatch_pragma if !USE_CPPLIB.
7579
7580 * c-lex.c (process_directive): Always call dispatch_pragma.
7581 Initialize entering_c_header to 0.
7582
7583 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7584
7585 * config/m68hc11/m68hc11.md: New file, machine description for
7586 68HC11 & 68HC12.
7587 * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
7588 * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
7589 * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
7590 * config/m68hc11/m68hc11-protos.h: New file.
7591 * config/m68hc11/m68hc11-crt0.S: New file, startup code.
7592 * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
7593 * config/m68hc11/xm-m68hc11.h: New file, target defs.
7594 * config/m68hc11/larith.asm: New file, libgcc routines.
7595
7596 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7597
7598 * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
7599 (FPBIT_FUNCS): Add _usi_to_sf.
7600 * config/fp-bit.c (usi_to_float): New function.
7601 * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
7602 (usi_to_float): Add appropriate #define.
7603
7604 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
7605
7606 * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
7607 new functions.
7608 * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
7609 * i386.md (attr "type"): Add sse and mmx types.
7610 (attr "memory"): Handle them without a crash.
7611 (movsi_1, movdi_2): Allow MMX regs.
7612 (movdi splits): Don't split moves involving MMX regs.
7613 (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
7614 (movv4sf_internal, movv4si_internal, movv8qi_internal,
7615 movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
7616 movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
7617 sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
7618 sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
7619 sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
7620 addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
7621 divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
7622 sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
7623 sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
7624 vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
7625 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
7626 cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
7627 addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
7628 subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
7629 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
7630 mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
7631 mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
7632 eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
7633 smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
7634 lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
7635 mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
7636 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
7637 mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
7638 mmx_clrdi): New patterns.
7639
7640 2000-09-08 Richard Earnshaw <rearnsha@arm.com>
7641
7642 * arm.c: Don't include tm.h directly.
7643
7644 Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka <jh@suse.cz>
7645
7646 * recog.c (validate_replace_rtx_1): Fix confusion about equality
7647 testing; simplify subregs of constants and nested subregs.
7648
7649 2000-09-08 Alexandre Oliva <aoliva@redhat.com>
7650
7651 * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
7652
7653 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
7654
7655 * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
7656 VEC_CONCAT.
7657 * rtl.texi (description of USE): Add note about possible pitfalls
7658 with this rtx.
7659 From Richard Henderson:
7660 * reload1.c (choose_reload_regs): Compute need_mode properly.
7661
7662 2000-09-07 Richard Henderson <rth@cygnus.com>
7663
7664 * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
7665 (__modsi3, __umodsi3): Likewise.
7666 (__udivsi3): Likewise. Normalize the TFmode values.
7667
7668 2000-09-07 Geoff Keating <geoffk@cygnus.com>
7669
7670 * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
7671 with a prototype.
7672 * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
7673 warning.
7674
7675 Fri Sep 8 03:26:38 2000 J"orn Rennecke <amylaar@redhat.co.uk>
7676
7677 * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
7678 (cmpeqdi_t): Add output pattern.
7679 (cmpeqdi_t+1): Don't split when not optimizing.
7680 Restore proper splitting operation.
7681
7682 2000-09-07 Richard Henderson <rth@cygnus.com>
7683
7684 * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
7685 do not call dispatch_pragma.
7686
7687 2000-09-07 Jim Wilson <wilson@cygnus.com>
7688
7689 * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
7690 to CLASS_CANNOT_CHANGE_MODE.
7691 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
7692 mode classes are different.
7693
7694 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
7695
7696 * cpplib.h (struct cpp_options): Add user_label_prefix member,
7697 left out of commit which removed cppulp.c.
7698
7699 2000-09-07 Richard Henderson <rth@cygnus.com>
7700
7701 * bb-reorder.c (fixup_reorder_chain): Add jump in new block
7702 after switch for CASE_DROPS_THROUGH.
7703
7704 2000-09-07 Richard Henderson <rth@cygnus.com>
7705
7706 * loop.c (strength_reduce): Call check_ext_dependant_givs.
7707 Properly extend the biv initial value for the giv.
7708 (record_biv): Zero ext_dependant.
7709 (record_giv): New argument ext_val. Update all callers.
7710 (general_induction_var): Likewise.
7711 (consec_sets_giv): Likewise.
7712 (simplify_giv_expr): Likewise. Fill in ext_val if we find
7713 a sign-extend, zero-extend, or truncate.
7714 (combine_givs_p): Make sure modes are compatible.
7715 (check_ext_dependant_givs): New.
7716 (extend_value_for_giv): New.
7717 * loop.h (struct induction): Add ext_dependant.
7718 * unroll.c (iteration_info): Extend the biv initial value for the giv.
7719 (find_splittable_givs): Likewise.
7720 (final_giv_value): Likewise.
7721
7722 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
7723
7724 * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
7725 REGISTER_TARGET_PRAGMAS is defined. Duplicate some
7726 definitions from cpplib.h.
7727 * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
7728 already done it.
7729 * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add
7730 documentation for REGISTER_TARGET_PRAGMAS.
7731
7732 * c-lex.c: Include cpplib.h before c-pragma.h. Define a
7733 default-pragma callback to implement -Wunknown-pragmas if
7734 USE_CPPLIB.
7735 * c-parse.in: Move all includes to top of file.
7736 * c-pragma.c: Include cpplib.h before c-pragma.h. Include
7737 tm_p.h.
7738 (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
7739 warning.
7740 (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
7741
7742 * arm.h, arm-protos.h, arm.c,
7743 c4x.h, c4x-protos.h, c4x.c,
7744 h8300.h, h8300-protos.h, h8300.c,
7745 i370.h, i370-protos.h, i370.c,
7746 i960.h, i960-protos.h, i960.c,
7747 sh.h, sh-protos.h, sh.c,
7748 v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
7749 pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
7750
7751 * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add
7752 multiple include guard.
7753 * i370.md (untyped_call): Use GEN_CALL.
7754 (umodsi3): Remove unused variable.
7755 * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
7756 * v850.c (output_move_single, output_move_double): Constify
7757 return value.
7758 (print_operand): Constify a char *.
7759 * v850.h (struct small_memory_info): Constify name member.
7760
7761 2000-09-07 Kazu Hirata <kazu@hxi.com>
7762
7763 * config/h8300.h: Fix comment typos.
7764 * config/h8300/h8300.md: Likewise.
7765 * config/h8300/lib1funcs.asm: Likewise.
7766
7767 Thu 07-Sep-2000 21:29:00 BST Neil Booth <NeilB@earthling.net>
7768
7769 * Makefile.in: Remove references to cppulp.{c,o}.
7770 * cppinit.c (initialize_builtins, cpp_start_read,
7771 cpp_handle_option): Update to use cpp_options structure.
7772 * cppulp.c: Remove.
7773
7774 2000-09-07 Joseph S. Myers <jsm28@cam.ac.uk>
7775
7776 * c-common.c (time_char_table): Allow %#b and %#h.
7777
7778 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7779
7780 * reorg.c (find_end_label): If the basic block reorder pass moves the
7781 return insn to some other place try to locate it again and put our
7782 end_of_function_label there.
7783 * reorg.c (relax_delay_slots): Check if find_end_label created a
7784 new label that invalidates the current optimazation.
7785
7786 2000-09-07 Catherine Moore <clm@redhat.com>
7787
7788 * unroll.c (unroll_loop): Check for unconditional jumps
7789 to loop continuation. Delete if n_iterations is 1.
7790 (ujump_to_loop_cont): New routine.
7791
7792 2000-09-07 Bernd Schmidt <bernds@redhat.co.uk>
7793
7794 * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
7795 MODE_VECTOR_FLOAT.
7796 * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
7797 to handle multiword modes correctly. All callers and the declaration
7798 changed.
7799
7800 2000-09-06 Mark Mitchell <mark@codesourcery.com>
7801
7802 * c-common.h (prep_stmt): Declare.
7803 (lang_expand_stmt): Likewise.
7804 * c-decl.c (lang_expand_stmt): Remove.
7805 * c-semantics.c (lang_expand_stmt): Define.
7806 (prep_stmt): New function.
7807 (expand_stmt): Handle common statement types here.
7808
7809 2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
7810
7811 * configure.in (sh-*-linux*): Added.
7812 * configure: Rebuilt.
7813 * config/sh/t-linux: New file.
7814 * config/sh/sh.h (USERMODE_BIT): Define.
7815 (TARGET_USERMODE): Likewise.
7816 (TARGET_SWITCHES): New switches for the bits above.
7817 (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
7818 * config/sh/linux.h: New file.
7819 * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
7820 underscore on linux.
7821 (L_sdivsi3, L_udivsi3): Define for linux.
7822 (L_ic_invalidate): Define.
7823 * invoke.texi (SH Options): Document -musermode.
7824
7825 2000-09-07 Alexandre Oliva <aoliva@redhat.com>
7826
7827 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
7828 CSE unless generating PIC.
7829
7830 * config/sh/sh.md (symPLT_label2reg): Force the initialization of
7831 the PIC register.
7832
7833 2000-09-06 H.J. Lu (hjl@gnu.org)
7834
7835 * Makefile.in (clean_s1): Depend on stage_b.
7836 (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
7837 stage2. They are used for "make compare".
7838
7839 2000-09-06 Mark Mitchell <mark@codesourcery.com>
7840
7841 Move statement-tree facilities from C++ to C front-end.
7842 * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
7843 (void_zero_node): New macro.
7844 (struct stmt_tree_s): New type.
7845 (stmt_tree): New typedef.
7846 (struct language_function): New type.
7847 (last_tree): New macro.
7848 (last_expr_type): Likewise.
7849 (walk_tree_fn): New typedef.
7850 (current_stmt_tree): New function.
7851 (begin_stmt_tree): Likewise.
7852 (add_stmt): Likewise.
7853 (finish_stmt_tree): Likewise.
7854 (statement_code_p): Likewise.
7855 (lang_statement_code_p): New variable.
7856 (walk_stmt_tree): New function.
7857 (STMT_IS_FULL_EXPR_P): New macro.
7858 * c-common.c (lang_statement_code_p): New variable.
7859 (c_common_nodes_and_builtins): Initialize void_zero_node.
7860 (statement_code_p): New function.
7861 (walk_stmt_tree): Likewise.
7862 * c-decl.c (language_function): Rename to ...
7863 (c_language_function): ... this. Include language_function.
7864 (push_c_function_context): Adjust accordingly.
7865 (pop_c_function_context): Likewise.
7866 (mark_c_function_context): Likewise.
7867 (current_stmt_tree): Define.
7868 * c-semantics.c (begin_stmt_tree): New function.
7869 (add_stmt): Likewise.
7870 (prune_unused_decls): Likewise.
7871 (finish_stmt_tree): Likewise.
7872
7873 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7874
7875 * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
7876
7877 2000-09-06 Kazu Hirata <kazu@hxi.com>
7878
7879 * calls.c: Fix formatting.
7880
7881 2000-09-06 Graham Stott <grahams@cygnus.co.uk>
7882
7883 * config/i386/i386.h (ADDRESS_COST): Fix typo.
7884
7885 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
7886
7887 Integrated preprocessor.
7888
7889 * Makefile.in: Remove all references to c-parse.gperf,
7890 c-gperf.h, and c-parse.h. Remove -d from yacc command line
7891 generating c-parse.c. Update dependencies.
7892 * c-parse.gperf, c-gperf.h: Delete.
7893
7894 * c-common.c: Don't define parse_options, cpp_token, yy_cur,
7895 yy_lim, or yy_get_token. Don't define get_directive_line if
7896 USE_CPPLIB.
7897 * c-common.h: Add multiple include guard. Define RID values
7898 for every keyword in C, C++, and Objective C. Put all the
7899 modifiers first.
7900 (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
7901 * c-decl.c (c_decode_option): Handle -lang-objc here.
7902 (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
7903 (grokdeclarator): Adjust for new RID scheme.
7904 (extract_interface_info): New stub.
7905 * c-lang.c: Don't declare yy_cur or parse_options.
7906 (lang_init_options): Call cpp_init. Don't call
7907 cpp_options_init.
7908 (lang_init): Don't call check_newline if USE_CPPLIB.
7909
7910 * c-lex.c: Don't include c-parse.h. Do include timevar.h.
7911 Elide lots of unnecessary code if USE_CPPLIB. Delete code
7912 rendered unnecessary by new architecture. Move routines not
7913 shared with C++ to c-parse.in. Maintain a local idea of the
7914 line number. Handle C++ as well as C.
7915 [USE_CPPLIB]: Declare and register callbacks for #ident and
7916 for entering/leaving files.
7917 (init_c_lex, c_lex): Are now the entry points to this file.
7918 (check_newline): Break out directive handling to
7919 process_directive.
7920 (read_ucs, is_extended_char, utf8_extend_token): Moved here
7921 from C++ front end.
7922 (readescape, parse_float): Overhaul.
7923 (lex_number, lex_string, lex_charconst): Break out of c_lex
7924 (n'ee yylex).
7925 (get_fileinfo, update_header_times, dump_one_header,
7926 dump_time_statistics): New and/or moved here from C++.
7927 Support per-file data needed by C++ and per-header timing
7928 statistics (C++ only, at the moment).
7929 * c-lex.h: Update prototypes. Add multiple include guard.
7930 * c-tree.h (struct lang_identifier): Add rid_code field.
7931 (C_IS_RESERVED_WORD, C_RID_CODE): New.
7932
7933 * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
7934 reinit_parse_for_function and/or position_after_white_space.
7935 (save_filename, save_lineno): Look ahead before saving.
7936 (label -> identifier ':'): Save file and line before shifting ':'.
7937 (reservedwords): No need to call get_identifier.
7938 (init_parse, finish_parse, yyerror, yylex, yyprint,
7939 make_pointer_declarator): Are now here for C/ObjC.
7940 (rid_to_yy): Conversion table from RID constants to Yacc codes.
7941
7942 * c-pragma.c: Rewrite parsing logic to fit with cpplib's
7943 #pragma registry. Provide dummy implementation of that
7944 interface if !USE_CPPLIB.
7945 * c-pragma.h: Update to match.
7946
7947 * flags.h: Add multiple include guard.
7948 (flag_detailed_statistics): Moved here from C++.
7949 * toplev.c: Define flag_detailed_statistics.
7950
7951 * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
7952 #if USE_CPPLIB.
7953 * timevar.def (TV_CPP, TV_LEX): New.
7954 * timevar.h: Add multiple include guard.
7955
7956 * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
7957 #if USE_CPPLIB.
7958 * objc/objc-act.c: Don't mention yy_cur or parse_options.
7959 Initialize cpplib properly. Force lineno to 0 after first
7960 call to check_newline. Don't handle -lang-objc here.
7961 Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
7962
7963 2000-09-06 David Edelsohn <edelsohn@gnu.org>
7964
7965 * rs6000.md: Correct function unit definitions for cr_logical and
7966 mtjmpr.
7967 (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
7968 and use portable method for >=0 and floating point >=. Remove
7969 associated matchers.
7970
7971 2000-09-06 Mark Mitchell <mark@codesourcery.com>
7972
7973 * extend.texi: Mark named return value extension as deprecated.
7974
7975 2000-09-06 Geoff Keating <geoffk@cygnus.com>
7976
7977 * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
7978 the result.
7979
7980 2000-09-06 Gabriel Dos Reis <gdr@codesourcery.com>
7981
7982 * toplev.c (display_help): Fix thinko in documentation.
7983
7984 * diagnostic.h (output_buffer::indent_skip): New fields.
7985 (output_indentation): New macro.
7986
7987 * diagnostic.c (output_indent): New function.
7988 (output_set_prefix, clear_diagnostic_info): Use.
7989 (output_emit_prefix): Predict future indentation.
7990
7991 2000-09-06 DJ Delorie <dj@redhat.com>
7992
7993 * Makefile.in (stage_*): add more dependencies to ensure parallel
7994 builds build correctly
7995
7996 2000-09-06 Manfred Hollstein <manfredh@redhat.com>
7997
7998 * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
7999 not bootstrap-lean_f.
8000
8001 2000-09-06 Andreas Schwab <schwab@suse.de>
8002
8003 * mklibgcc.in: Emit rule for libgcc-stage-start.
8004 * Makefile.in (stage1-start, stage2-start, stage3-start,
8005 stage4-start): Don't handle libgcc here, use libgcc.mk instead.
8006
8007 2000-09-06 Bernd Schmidt <bernds@redhat.co.uk>
8008
8009 * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
8010 (update_equiv_regs): Likewise, except for the mn10200 kludge.
8011 (combine_regs): Likewise.
8012
8013 * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
8014 * cse.c: Include "basic-block.h".
8015 (struct table_elt): New field REGCOST.
8016 (CHEAP_REG): Delete macro.
8017 (COST): Return 0 for REGs.
8018 (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
8019 (notreg_cost): Return 0 for appropriate SUBREGs.
8020 (COSTS_N_INSNS): Return N * 2.
8021 (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
8022 SUBREGs.
8023 (CHEAPER): Use new function preferrable.
8024 (insert): Initialize REGCOST member.
8025 (find_best_addr): Use approx_reg_cost for estimation of register
8026 usage.
8027 (cse_insn): Likewise.
8028 * loop.c (iv_add_mult_cost): New function.
8029 (add_cost, shift_cost, mult_cost): Delete variables.
8030 (init_loop): Don't initialize add_cost; reduce copy_cost by half.
8031 (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
8032 Make code that detects autoinc opportunities slightly less optimistic.
8033 (simplify_giv_expr): If expression contains other reg that is also a
8034 giv, only increment benefit if this is the only use of that reg.
8035 (consec_sets_giv): Take that change into account.
8036 (combine_givs): Slightly more verbose output.
8037
8038 * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
8039 not the cost of an equivalent shift.
8040 * sh-protos.h (addsubcosts): Declare.
8041 * sh.c (addsubcosts): New function.
8042 * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
8043 (RTX_COSTS): Tweak. Use addsubcosts.
8044 (ADDRESS_COST): Return higher cost for reg+reg addressing.
8045
8046 2000-09-06 Geoff Keating <geoffk@cygnus.com>
8047
8048 * config/rs6000/rs6000.c (validate_condition_mode): New function.
8049 (branch_comparison_operator): Call validate_condition_mode to
8050 abort rather than returning 0.
8051 (branch_positive_comparison_operator): New function.
8052 (scc_comparison_operator): Call validate_condition_mode to abort
8053 rather than returning 0.
8054 (ccr_bit): Call validate_condition_mode. Update for
8055 new branch scheme.
8056 (print_operand): Delete %C modifier. Update %E case
8057 to use EQ bit not SO bit.
8058 (rs6000_reverse_condition): New function.
8059 (rs6000_generate_compare): New function.
8060 (rs6000_emit_sCOND): New function.
8061 (rs6000_emit_cbranch): New function.
8062 (output_cbranch): The length of a long branch insn is
8063 now only 8 bytes. Add validate_condition_mode. Use
8064 rs6000_reverse_condition. Remove cror generation.
8065
8066 * config/rs6000/rs6000.h: Update comments.
8067 (PREDICATE_CODES): Add new predicate. Update codes used
8068 by branch_comparison_operator and scc_comparison_operator.
8069 * config/rs6000/rs6000-protos.h: Add prototypes for
8070 new external functions.
8071 * config/rs6000/rs6000.md: Add new scheduling parameters
8072 for cr_logical instructions. Change length of branch
8073 instructions.
8074 (bCOND patterns): Call rs6000_emit_cbranch.
8075 (sCOND patterns): Call rs6000_emit_sCOND.
8076 (branch patterns): Change lengths to 4.
8077 (cr logical patterns): New.
8078
8079 2000-09-06 Richard Henderson <rth@cygnus.com>
8080
8081 * config/i386/i386.md (call_pop): Fix test for setting
8082 current_function_uses_pic_offset_table.
8083 (call, call_value_pop, call_value): Likewise.
8084
8085 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
8086
8087 * timevar.c (timevar_add): Delete.
8088 (timevar_get): Also count time since the selected timer was
8089 last updated. Do not examine the timevar stack if the
8090 selected timer is standalone.
8091
8092 2000-09-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8093
8094 * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
8095
8096 2000-09-05 Jason Merrill <jason@redhat.com>
8097
8098 * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
8099 for 'extern' arrays.
8100
8101 2000-09-05 Richard Henderson <rth@cygnus.com>
8102
8103 * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
8104 Eliminate final copy from non-trapping case.
8105 (__divdf3, __divsf3): Likewise.
8106
8107 2000-09-05 Richard Henderson <rth@cygnus.com>
8108
8109 * config/ia64/ia64.md (mulhi3): Fix typo last change.
8110 * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
8111
8112 2000-09-03 Donn Terry <donn@interix.com>, Laurynas Biveinis <lauras@softhome.net>
8113
8114 * Makefile.in: Restructure bootstrap stages to allow clean
8115 restart after failure.
8116
8117 2000-09-05 Richard Henderson <rth@cygnus.com>
8118
8119 * config/ia64.md (movsi and movdi patterns): Allow moves from
8120 8-bit constants to AR registers.
8121
8122 2000-09-05 Richard Henderson <rth@cygnus.com>
8123
8124 * config/ia64/ia64.md (mulhi3): New.
8125
8126 2000-09-05 Richard Henderson <rth@cygnus.com>
8127
8128 * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
8129 * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
8130 Optimization Guide, minimum latency alternative.
8131 (__moddi3, __udivdi3, __umoddi3): Likewise.
8132 (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
8133
8134 2000-09-05 Bruce Korb <bkorb@gnu.org>
8135
8136 * fixinc/fixincl.c (load_file): always read header files
8137 with sizes that are a multiple of the page size.
8138 & use libiberty's getpagesize for determining that.
8139
8140 2000-09-05 Alexandre Oliva <aoliva@redhat.com>
8141
8142 * gcse.c (hash_string_1): Add prototype.
8143 * cse.c (canon_hash_string): Likewise.
8144
8145 2000-09-04 Craig Newell <CraigN@ieee.org>
8146
8147 * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
8148
8149 2000-09-04 Andreas Schwab <schwab@suse.de>
8150
8151 * Makefile.in (STAGESTUFF): Remove libgcc.
8152 (stage1-start, stage2-start, stage3-start): Copy the contents of
8153 the libgcc directory explicitly.
8154 (mostlyclean): Clean libgcc.
8155
8156 2000-09-04 Andrew Haley <aph@redhat.com>
8157
8158 * dwarf2out.c: (stack_adjust_offset): New prototype.
8159
8160 Wed Jan 1 00:23:59 MET 1997 Jan Hubicka <jh@suse.cz>
8161
8162 * combine.c (make_extraction): Fix rtx_cost comparison to
8163 match the comment.
8164
8165 Wed Jan 1 00:17:32 MET 1997 Jan Hubicka <jh@suse.cz>
8166
8167 * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
8168 umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
8169 Add '*' to insn pattern name.
8170
8171 2000-09-04 Jakub Jelinek <jakub@redhat.com>
8172
8173 * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
8174 use posn - 1 to index into tokens array.
8175 (maybe_paste_with_next): Adjust caller.
8176
8177 2000-09-03 Geoff Keating <geoffk@cygnus.com>
8178
8179 * invoke.texi: Document the -mvxworks option for rs6000 ELF.
8180
8181 * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
8182 (REGNO_REG_CLASS): Use symbolic register
8183 names.
8184
8185 2000-09-03 Richard Earnshaw <rearnsha@arm.com>
8186
8187 * arm.c (final_prescan_insn): If the form of a jump insn isn't
8188 recognized, don't try to conditionally execute it.
8189
8190 Sun Sep 3 13:10:56 2000 Denis Chertykov <denisc@overta.ru>
8191
8192 * config/avr/avr.md ("*tablejump_lib"): New pattern.
8193 (call_value_insn): Right length claculation.
8194 (call_insn): Likewise.
8195
8196 2000-09-02 Marek Michalkiewicz <marekm@linux.org.pl>
8197
8198 * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
8199 gas_output_limited_string, gas_output_ascii, output_movqi,
8200 output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
8201 out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
8202 out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
8203 ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
8204 lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
8205 out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
8206 Add "const" as needed to remove warnings.
8207
8208 * config/avr/avr.c (avr_override_options, avr_init_once,
8209 function_prologue, function_epilogue, frame_pointer_required_p,
8210 class_likely_spilled_p, order_regs_for_local_alloc,
8211 avr_address_cost, avr_ret_register): Use K&R style arguments.
8212 (initial_elimination_offset, gas_output_limited_string):
8213 Remove ATTRIBUTE_UNUSED from the used arguments.
8214 (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
8215 Use local variables src, dest, base to access operands[].
8216 Rename reg_dest to reg_src if that's what it is.
8217 (output_movhi, output_movsisf): Optimize loading 8-bit immediate
8218 constants to LD_REGS if reg_was_0.
8219 (output_reload_insisf): Change arg 3 to insn length and set it.
8220 (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
8221 access to 16-bit I/O register pairs.
8222 (avr_address_cost): Lower cost for the above case.
8223 (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
8224 may be clobbered, also for LD_REGS.
8225 (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
8226 with a CONST_INT.
8227
8228 * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
8229
8230 * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
8231 macro to test_hard_reg_class function.
8232 (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
8233 for loading immediate constants to LD_REGS.
8234 (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
8235
8236
8237 Sat Sep 2 13:58:23 2000 Marek Michalkiewicz <marekm@linux.org.pl>
8238
8239 * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
8240 * config/avr/libgcc.S: Lost part of the previous patch.
8241
8242 2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8243
8244 * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
8245 object before calling pthread_mutex_init.
8246
8247 2000-09-02 Alexandre Oliva <aoliva@redhat.com>
8248
8249 * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
8250 config/sh/crtn.asm: New files.
8251 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
8252 (crt1.o, crti.o, crtn.o): New targets.
8253 * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
8254 sh/t-elf.
8255 * configure: Rebuilt.
8256 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8257 STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
8258 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
8259 Undefine for config/elfos.h to redefine.
8260 (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
8261
8262 2000-09-02 Alexandre Oliva <aoliva@redhat.com>, Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
8263
8264 * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
8265 legitimize_pic_address, output_pic_addr_const): Declare.
8266 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
8267 (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
8268 (TARGET_SWITCHES): New switch -mprefergot.
8269 (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
8270 (PIC_OFFSET_TABLE_REGNUM): Define.
8271 (GOT_SYMBOL_TABLE): Likewise.
8272 (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
8273 (ENCODE_SECTION_INFO): Define.
8274 (FINALIZE_PIC): New macros.
8275 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
8276 (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
8277 * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
8278 (prepare_move_operands): Call emit_pic_move or
8279 emit_pic_const_move if appropriate.
8280 (output_far_jump): For PIC, use braf and output long offset.
8281 (machine_dependent_reorg):
8282 (sh_expand_prologue): Save and initialize the PIC register.
8283 (sh_expand_epilogue): Restore it.
8284 (initial_elimination_offset): Account for it.
8285 (nonpic_symbol_mentioned_p): New function.
8286 (legitimize_pic_address): Likewise.
8287 (output_pic_addr_const): Likewise.
8288 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
8289 (call, call_value): Use them.
8290 (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
8291 symPLT_label2reg): New expands.
8292 * invoke.texi (SH Options): Document -mprefergot.
8293
8294 2000-09-01 Alexandre Oliva <aoliva@redhat.com>
8295
8296 * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
8297 * gcse.c (hash_string_1): New function.
8298 (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
8299 (expr_equiv_p) <ASM_OPERANDS>: Likewise.
8300 * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
8301 (canon_hash_string): New function.
8302 (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
8303 (exp_equiv_p) <ASM_OPERANDS>: Likewise.
8304 (fold_rtx): Use ASM_OPERANDS accessor macros.
8305 * emit-rtl.c (copy_insn_1): Likewise.
8306 * integrate.c (copy_rtx_and_substitute): Likewise.
8307 * stmt.c (expand_asm_operands): Likewise. Give an
8308 ASM_OPERANDS rtx the mode of the output reg being set from it.
8309
8310 2000-09-01 Fred Fish <fnf@be.com>
8311
8312 * fix-header.c (write_rbrac): Add putc and getc to list of
8313 functions to protect against prior definition as a macro.
8314
8315 2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
8316
8317 * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
8318 (c_size_type_node): Define.
8319 * c-decl.c (init_decl_processing): Initialize c_size_type_node.
8320 * c-common.c (enum format_lengths, enum format_std_version,
8321 format_length_info, format_type_detail, BADLEN, NOLENGTHS,
8322 format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
8323 T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
8324 T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
8325 T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
8326 TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
8327 format_types): Define.
8328 (format_char_info, print_char_table, scan_char_table,
8329 time_char_table): Rearrange for new organization of information
8330 about format length modifiers and standard versions.
8331 (T_ST): Redefine to use c_size_type_node.
8332 (check_format_info): Obtain information about length modifiers and
8333 standard versions from tables. Adjust warning message wordings.
8334 Use the name from the user's program for `ll' and `hh' length
8335 modifiers in warning messages. Use more informative names for
8336 wanted types where available (for wchar_t, wint_t, size_t, signed
8337 size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
8338
8339 2000-09-01 Jim Wilson <wilson@cygnus.com>
8340
8341 * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
8342 * combine.c (distribute_notes): Handle REG_NORETURN.
8343 * rtl.c (reg_note_name): Add REG_NORETURN.
8344 * rtl.h (enum reg_note): Likewise.
8345
8346 * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
8347 ia64_file_start.
8348 * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
8349 (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
8350 (emit_predicate_relation_info): Handle conditional calls with
8351 REG_NORETURN.
8352 * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
8353 instead of ia64_file_start.
8354 * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
8355 * config/ia64/ia64.md (safe_across_calls_all,
8356 save_across_calls_normal): New patterns.
8357
8358 * loop.c (check_final_value): Check for biv use before checking for
8359 giv use. Check for both biv and giv uses. Always set last_giv_use
8360 if there is a giv use.
8361
8362 2000-09-01 Richard Henderson <rth@cygnus.com>
8363
8364 * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
8365 (madddi3): Likewise.
8366 (maddsi3): New.
8367
8368 Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8369
8370 * expr.c (clear_storage): Don't use emit_move_insn unless
8371 either BLKmode or proper size.
8372 (store_constructor): Don't call clear_storage if REG of wrong size.
8373
8374 * flow.c (init_propagate_block_info): Don't mark frame dead at end
8375 of function if returns wiht stack pointer depressed.
8376
8377 2000-09-01 Andrew Haley <aph@redhat.com>
8378
8379 * dwarf2out.c (stack_adjust_offset): New function.
8380 (dwarf2out_stack_adjust): Break out stack adjust logic into
8381 new stack_adjust_offset function. Look inside parallels and
8382 sequences for stack adjustments.
8383
8384 2000-08-31 Jeff Law <law@cygnus.com>
8385
8386 * arm.md: Use no_new_pseudos to determine when it is safe
8387 to create new pseudo registers.
8388
8389 * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
8390 when we can safely allocate new registers.
8391
8392 2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
8393
8394 * stmt.c (expand_asm_operands): Twiddle generating_concat_p
8395 so that CONCATs are not generated for ASMs.
8396 * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
8397 not generating_concat_p.
8398 * function.c (pop_function_context_from): Reset
8399 generating_concat_p.
8400 (prepare_function_start): Likewise.
8401 * rtl.c (generating_concat_p): Define.
8402 * rtl.h (generating_concat_p): Declare.
8403 * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
8404
8405 2000-08-22 Philipp Thomas <pthomas@suse.de>
8406 Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
8407
8408 * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
8409 for translation.
8410
8411 2000-08-30 Greg McGary <greg@mcgary.org>
8412
8413 * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
8414 * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
8415 * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
8416
8417 2000-08-30 Greg McGary <greg@mcgary.org>
8418
8419 * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
8420 (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
8421 (TREE_INT_CST): New macro.
8422 * varasm.c (const_hash, compare_constant_1, record_constant_1):
8423 Use new macro TREE_INT_CST.
8424
8425 Wed 30-Aug-2000 23:18:59 BST Neil Booth <NeilB@earthling.net>
8426
8427 * contrib.texi: Add self.
8428
8429 2000-08-30 Alexandre Oliva <aoliva@redhat.com>
8430
8431 * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
8432 (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
8433 and labels.
8434
8435 2000-08-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8436
8437 * fixinc/gnu-regex.c: Don't define `const'.
8438
8439 Tue Aug 29 22:09:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8440
8441 * expr.c (store_constructor): Allow variable bounds of array type.
8442 (expand_expr): Don't blow up if type is ERROR_MARK.
8443 * varasm.c (output_constructor): Don't access lower bound of array
8444 type unless need it if index is supplied (so it can be a variable
8445 if no index is supplied).
8446 Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
8447 Other minor cleanups.
8448
8449 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8450
8451 * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
8452 for compilations in stage 1 and subsequent stages, respectively.
8453 * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
8454 * configure: Rebuilt.
8455 * x-vax, x-vax-gcc: Deleted.
8456
8457 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8458
8459 * c-common.c (declare_function_name): Use func_id_node,
8460 function_id_node, and pretty_function_id_node. Do not make
8461 __func__ visible at file scope.
8462 * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
8463 CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
8464 (function_id_node, pretty_function_id_node, func_id_node): New
8465 macros.
8466 * c-decl.c (init_decl_processing): Initialize function_id_node,
8467 pretty_function_id_node, and func_id_node.
8468 (c_make_fname_decl): Correct comment.
8469
8470 * tree.h (struct tree_identifier): Constify pointer member.
8471
8472 * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
8473 * c-pragma.h (struct weak_syms): Constify name and value members.
8474 (add_weak): Constify arguments.
8475
8476 * calls.c (special_function_p): Constify a char *.
8477 (expand_call): Remove variable which is initialized and then
8478 never used.
8479 * dependence.c (struct def_use, struct induction, struct subscript):
8480 Constify 'variable' member.
8481 (get_low_bound, have_induction_variable): Constify char * argument.
8482 (find_induction_variable): Add braces to avoid dangling else.
8483 (classify_dependence): Constify char * arrays.
8484 * profile.c (output_func_start_profiler): Constify a char *.
8485 * stor-layout.c (finalize_record_size): Constify a char *.
8486 * tree.c (is_attribute_p): Constify a char *.
8487 * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
8488
8489 * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
8490 for comprehensibility. Do not call get_identifier if we did
8491 not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to
8492 create temporary string constants, not ggc_alloc_string. No
8493 need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const
8494 char * to hold IDENTIFIER_POINTERs.
8495
8496 2000-08-29 Richard Henderson <rth@cygnus.com>
8497
8498 * config/ia64/ia64.md (muldi3): Use grfr_register_operand
8499 for the inputs.
8500
8501 2000-08-29 Richard Henderson <rth@cygnus.com>
8502
8503 * reload.c (push_secondary_reload): Allow class == reload_class
8504 if we're using a reload_in/out pattern.
8505
8506 * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use
8507 the half that does not conflict with the reload register.
8508 (reload_outti): Likewise.
8509
8510 2000-08-29 Kazu Hirata <kazu@hxi.com>
8511
8512 * reload.c: Fix formatting.
8513
8514 * stmt.c: Fix formatting.
8515
8516 * gcc.c: Fix formatting.
8517
8518 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8519
8520 * flags.h (time_report, mem_report): New global flags.
8521 * toplev.c: Define time_report and mem_report.
8522 (f_options): Add -ftime-report and -fmem-report.
8523 (compile_file): Turn on time_report if quiet_flag is off.
8524 Call ggc_print_statistics at very end if mem_report is on.
8525 * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
8526
8527 * ggc-common.c (ggc_print_statistics): Rename to
8528 ggc_print_common_statistics; all callers changed. Scale
8529 quantities above 10K to kilobytes and above 10M to megabytes.
8530 * ggc-page.c (ggc_page_print_statistics): Rename to
8531 ggc_print_statistics. Report memory consumed by internal data
8532 structures for each allocation bucket. Scale quantities above
8533 10K to kilobytes and above 10M to megabytes.
8534 * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
8535 Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
8536 Define tally_leaves always.
8537 (ggc_print_statistics): New function.
8538 * ggc.h: Adjust for renamed functions.
8539
8540 Wed Aug 30 00:11:42 2000 Denis Chertykov <denisc@overta.ru>
8541
8542 * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
8543 output_movsisf instead of which_alternative.
8544
8545 * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
8546
8547 Tue Aug 29 22:29:58 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
8548
8549 * config/avr/avr-protos.h: (avr_output_ascii) Removed.
8550 (avr_progmem_p): New prototype.
8551 (output_movsisf): Prototype declaration changed.
8552 (output_movqi): New prototype.
8553 (output_movhi): New prototype.
8554 (call_insn_operand): Likewise.
8555 (final_prescan_insn): Likewise.
8556 (avr_simplify_comparision_p): Likewise.
8557 (avr_normalize_condition): Likewise.
8558 (compare_eq_p): Likewise.
8559 (out_shift_with_cnt): Likewise.
8560 (const_int_pow2_p): Likewise.
8561 (output_reload_inhi): Prototype declaration changed.
8562
8563 * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
8564 (ldi_reg_rtx): New. rtx for r31.
8565 (avr_init_stack): Initialize as "__stack".
8566 (function_prologue): Use it.
8567 Replace all TARGET_ENHANCED with AVR_ENHANCED.
8568 (avr_mcu_name): Initialize as "avr2".
8569 (avr_enhanced_p, avr_mega_p): New variables.
8570 (mcu_types, avr_override_options): Handle all known MCU types.
8571 Also handle avr1 (only preprocess, assemble and link).
8572 (print_operand): Using of `%K' in output template removed.
8573 (out_movqi_r_mr): Optimized.
8574 (out_movhi_r_mr): Likewise.
8575 (output_movqi): New function.
8576 (output_movhi): Likewise.
8577 (out_movsi_r_mr): Optimized.
8578 (output_movsisf): Compute insn length for `adjust_insn_length'
8579 (out_movqi_mr_r): Optimized.
8580 (out_movhi_mr_r): Optimized.
8581 (adjust_insn_length): Use output_movsisf, output_movqi,
8582 output_movhi for insn length adjusting.
8583 (reg_unused_after): Use dead_or_set_p.
8584 (preferred_reload_class): Now havn't any restriction.
8585 (reg_was_0): New function.
8586 (io_address_p): Likewise.
8587 (const_int_pow2_p): Likewise.
8588 (output_reload_inhi): Likewise.
8589 (output_reload_insisf): Likewise.
8590
8591 * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
8592 (LIB_SPEC): Use -lc for all supported devices.
8593 (LIBGCC_SPEC): Use -lgcc for all supported devices.
8594 (AVR_MEGA): Define as avr_mega_p.
8595 (AVR_ENHANCED): New, define as avr_enhanced_p.
8596 (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
8597 (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
8598 (CRT_BINUTILS_SPECS): Handle all known MCU types.
8599 Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
8600 (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
8601 (ASM_SPEC): Pass -mmcu=... to the assembler.
8602 Change all -DAVR_* to -D__AVR_*__.
8603 (INIT_TARGET_OPTABS), config/avr/libgcc.S:
8604 Rename library functions to start with two underscores.
8605 (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
8606 alignment.
8607 (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
8608 (SUPPORTS_WEAK): Likewise.
8609 (LDI_REG_REGNO): New. Register r31 will be used as temporary
8610 register for loading constants to r0-r14.
8611
8612 * config/avr/avr.md: Replace all TARGET_ENHANCED with
8613 AVR_ENHANCED.
8614 (*mov_r_sp): Removed. Handled by output_movhi.
8615 (*mov_sp_r): Likewise.
8616 (*mov_sp_r_no_interrupts): Likewise
8617 (*mov_sp_r_tiny): Likewise.
8618 (*movqi): Use output_movqi.
8619 (*reload_inqi): New.
8620 (*movhi): Use output_movhi.
8621 (*reload_inhi): New.
8622 (*negsi2): Optimized.
8623 (*negsf2): Likewise.
8624 Added peepholes (define_peephole2) for loading constants to r0-r14
8625 and for using `cpse' command.
8626
8627 * config/avr/libgcc.S: Rename library functions to start with two
8628 underscores.
8629 Add support for enhanced core.
8630 (_moqhi3): Fix typo, now _modqi3.
8631 (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
8632 (__prologue_saves__): Remove test for stack adjust by 0.
8633 (__tablejump__): New.
8634
8635 * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
8636 Add multilib support.
8637
8638 Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com)
8639
8640 * loop.c (prescan_loop): Don't check unknown_address_altered
8641 when deciding if insert_loop_mem is safe. Add BLKmode MEMs
8642 to loop_store_mems as necessary.
8643 (loop_invariant_p): Don't check unknown_address_altered
8644 or unknown_constant_address_altered.
8645
8646 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8647
8648 * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
8649
8650 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8651
8652 * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
8653 print just the filename.
8654 * cpplex.c (_cpp_run_directive): Add additional argument, the
8655 name to give the synthetic buffer. This defaults to
8656 translated "<command line>".
8657 * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
8658 Adjust to match.
8659 (_cpp_define_builtin): New function.
8660 * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
8661 * cpphash.h: Update prototypes.
8662
8663 * tradcpp.c (main): Process -D and -U simultaneously, in the
8664 order they appeared on the command line.
8665
8666 2000-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8667
8668 * c-decl.c (define_label): Call warning_with_file_and_line and
8669 error_with_file_and_line instead of plain warning or error.
8670
8671 * c-parse.in (label): Use save_filename/save_lineno to ensure
8672 correct values for calls to define_label.
8673
8674 2000-08-29 Mark Mitchell <mark@codesourcery.com>
8675
8676 * calls.c (expand_call): Don't create a VAR_DECL just to throw it
8677 away.
8678 * expr.c (expand_expr, case TARGET_EXPR): Don't call
8679 mark_addressable.
8680 * tree.h (get_file_function_name): Remove two duplicate
8681 declarations.
8682
8683 2000-08-28 Kazu Hirata <kazu@hxi.com>
8684
8685 * tree.c: Fix formatting.
8686
8687 * xcoffout.c: Fix formatting.
8688
8689 2000-08-28 Jason Merrill <jason@redhat.com>
8690
8691 * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
8692
8693 2000-08-28 Daniel Berlin <dberlin@redhat.com>
8694
8695 * dwarf2out.c (dwarf2out_finish): Don't bother calling
8696 break_out_includes if it won't do anything.
8697
8698 2000-08-28 Richard Henderson <rth@cygnus.com>
8699
8700 * reload.c (push_secondary_reload): Revert 2000-08-16 change.
8701 (find_reloads): Likewise.
8702 * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
8703 (reload_inhi): Likewise.
8704
8705 2000-08-28 Richard Henderson <rth@cygnus.com>
8706
8707 * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
8708 (call_insn_operand): Don't expect a surrounding mem.
8709 (constant_call_address_operand): Likewise.
8710 * config/i386/i386.h (PREDICATE_CODES): Update.
8711 * config/i386/i386.md (call patterns): Move the match_operand
8712 for the call destination inside the mem.
8713
8714 2000-08-28 Richard Henderson <rth@cygnus.com>
8715
8716 * local-alloc.c (requires_inout): Don't use reserved range for
8717 EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
8718 * recog.c (asm_operand_ok): Likewise.
8719 (preprocess_constraints, constrain_operands): Likewise.
8720 * regclass.c (record_reg_classes): Likewise.
8721 * reload.c (find_reloads): Likewise.
8722 * reload1.c (maybe_fix_stack_asms): Likewise.
8723 (reload_cse_simplify_operands): Likewise.
8724 * stmt.c (expand_asm_operands): Likewise.
8725
8726 * md.texi: Update constraints documentation.
8727 * tm.texi (EXTRA_CONSTRAINT): Update.
8728
8729 2000-08-28 Daniel Berlin <dberlin@redhat.com>
8730
8731 * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
8732 (print_die): If we don't know the offset of the
8733 target die, try the symbol. Add a trailing newline.
8734 (reverse_all_dies): New fn.
8735 (dwarf2out_finish): Call it.
8736 (break_out_includes): Reorganize for clarity.
8737 (add_sibling_attributes): Don't call reverse_die_lists.
8738 (output_comp_unit): Rename from output_comdat_comp_unit. Use for
8739 primary CU, too.
8740 * flags.h: Add flag_eliminate_dwarf2_dups.
8741 * toplev.c (f_options): Support -feliminate-dwarf2-dups.
8742
8743 2000-08-28 Jason Merrill <jason@redhat.com>
8744
8745 * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
8746 * dwarf2out.c: #include "md5.h".
8747 (DIE_LABEL_PREFIX): New macro.
8748 (dw_val_struct): Add 'external' flag to val_die_ref.
8749 (add_AT_die_ref, AT_ref): Adjust.
8750 (AT_ref_external, set_AT_ref_external): New fns.
8751 (build_abbrev_table): Call set_AT_ref_external.
8752 (value_format): Call AT_ref_external.
8753 (die_struct): Add die_symbol field.
8754 (new_die): Clear it.
8755 (dwarf_tag_name): Handle BINCL/EINCL.
8756 (dwarf2out_start_source_file): Add BINCL DIE.
8757 (dwarf2out_end_source_file): Add EINCL DIE.
8758 (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
8759 (loc_checksum, attr_checksum, die_checksum): New fns.
8760 (is_type_die, is_comdat_die, is_symbol_die): New fns.
8761 (compute_section_prefix, assign_symbol_names): New fns.
8762 (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
8763 (output_die): Call output_die_symbol and AT_ref_external.
8764 (output_comdat_comp_unit): New fn, split out from...
8765 (dwarf2out_finish): ...here. Also call add_sibling_attributes for
8766 secondary CUs.
8767 (output_pubnames, output_aranges): Abort if we see entries from
8768 secondary CUs.
8769 * toplev.h: Declare file_name_nondirectory.
8770 * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
8771 (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
8772 (debug_start_source_file): Call dwarf2out_start_source_file
8773 regardless of debug verbosity.
8774 (debug_end_source_file): Similarly.
8775 * tree.h: Declare clean_symbol_name.
8776 * tree.c (clean_symbol_name): Split out from...
8777 (get_file_function_name_long): ...here.
8778
8779 * dwarf2out.c (new_loc_descr): Use calloc.
8780 (splice_child_die): Remove the die from the right parent.
8781 (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
8782
8783 Mon Aug 28 19:02:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8784
8785 * toplev.c (decode_g_option): Don't give warning for unknown -g
8786 option; return 0 instead.
8787 (main): If -g option is not recognized by front end or
8788 language-independent code, give warning.
8789
8790 2000-08-28 Greg McGary <greg@mcgary.org>
8791
8792 * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
8793 * config/i386/i386.c (ix86_expand_compare): Remove `static'.
8794 * config/i386/i386.md (trap, conditional_trap): New insn & expand.
8795
8796 2000-08-27 Greg McGary <greg@mcgary.org>
8797
8798 * cpplex.c (parse_string): Don't look for backslash
8799 before first char in `namebuf'.
8800 * loop.c (strength_reduce): Skip NOTEs.
8801
8802 2000-08-27 Jason Merrill <jason@redhat.com>
8803
8804 * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
8805 DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or
8806 TREE_ASM_WRITTEN, either.
8807 (finish_decl): Adjust.
8808
8809 2000-08-28 Philipp Thomas <pthomas@suse.de>
8810
8811 * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
8812 they have been incorporated into the gettext CVS. Change the text to
8813 reflect the current status of NLS. Add instructions for accessing
8814 the gettext CVS and add the patch from Martin v. Loewis.
8815
8816 2000-08-27 Geoff Keating <geoffk@cygnus.com>
8817
8818 * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
8819 by using gen_lowpart_common.
8820 (movdi_internal64+6): Likewise.
8821
8822 2000-08-26 Alexandre Oliva <aoliva@redhat.com>
8823
8824 * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
8825 Document.
8826
8827 * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
8828 numbers to the ranges used by GDB.
8829
8830 2000-08-25 Richard Henderson <rth@cygnus.com>
8831
8832 * config/ia64/ia64.h (struct machine_function): Add n_varargs.
8833 * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
8834 (ia64_expand_prologue): Likewise.
8835 (ia64_setup_incoming_varargs): Set it. Properly skip the current
8836 argument for stdargs.
8837
8838 2000-08-25 Jason Merrill <jason@redhat.com>
8839
8840 * integrate.c (expand_inline_function): Pull out the original decl.
8841
8842 2000-08-25 Jim Wilson <wilson@cygnus.com>
8843
8844 * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
8845
8846 * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
8847
8848 2000-08-25 Greg McGary <greg@mcgary.org>
8849
8850 * flow.c (dump_edge_info): Use ARRAY_SIZE.
8851 * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
8852
8853 2000-08-25 Richard Earnshaw <rearnsha@arm.com>
8854
8855 * arm.h (STRUCT_VALUE): Define to 0, not NULL.
8856
8857 Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com)
8858
8859 * i386.c (ix86_find_base_term): New.
8860 * i386-protos.h (ix86_find_base_term): Prototype.
8861 * i386.h (FIND_BASE_TERM): Define.
8862 * alias.c (find_base_term): Use it.
8863 * tm.texi (FIND_BASE_TERM): Document it.
8864
8865 * alias.c (true_dependence, write_dependence_p): Unchanging
8866 memory can't conflict with non-unchanging memory.
8867
8868 * alias.c (memrefs_conflict_p): A BLKmode reference
8869 to a symbol (or CONST_INT address) always conflicts
8870 with a reference to another symbol.
8871
8872 2000-08-25 Joseph S. Myers <jsm28@cam.ac.uk>
8873
8874 * c-common.c (time_char_table): Don't allow width and flags with
8875 "z" format.
8876
8877 2000-08-25 Jakub Jelinek <jakub@redhat.com>
8878
8879 * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
8880 way as LT and LTU when the second operand has 0 in low word.
8881
8882 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8883
8884 * basic-block.h (struct loop): Rename `exits' field to
8885 `exit_edges'. Add `entry_edges' and `num_entries' fields.
8886
8887 * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
8888 (flow_loop_entry_edges_find): Add.
8889 (flow_edge_list_print): Rename from flow_exits_print.
8890 (flow_loops_find): Call flow_loop_entry_edges_find.
8891 (flow_loop_dump): Dump entry_edges list.
8892 (flow_loops_free): Free entry_edges.
8893
8894 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8895
8896 * loop.c (loop_dump_aux, debug_loop): New functions.
8897 (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
8898
8899 * flow.c (flow_loops_dump): Add callback parameter.
8900 (flow_loop_dump): Add callback parameter and call it. Move
8901 loop note debugging code to loop_dump_aux.
8902
8903 * basic-block.h (flow_loop_dump): Add callback parameter
8904 (flow_loops_dump): Likewise.
8905
8906 * toplev.c (rest_of_compilation): Add NULL callback function pointer
8907 to call to flow_loops_dump.
8908
8909 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8910
8911 * loop.c (count_loop_regs_set): Replace start and end arguments
8912 with loop argument. All callers udated.
8913
8914 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8915
8916 * loop.c (constant_high_bytes): Delete.
8917
8918 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8919
8920 * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
8921 and NOTE_INSN_LOOP_VTOP to...
8922 (find_and_verify_loops) ...here.
8923
8924 Fri Aug 25 04:21:13 2000 Alexandre Oliva <aoliva@redhat.com>
8925
8926 * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
8927 (fini_dummy, init_dummy): Use it.
8928
8929 Fri 25-Aug-2000 08:03:27 BST Neil Booth <NeilB@earthling.net>
8930
8931 * cpplex.c (is_macro_disabled): Caller has already checked
8932 that we're not a preprocessed file.
8933
8934 2000-08-24 Mark Mitchell <mark@codesourcery.com>
8935
8936 * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
8937 (c-iterate.o): Remove target.
8938 * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
8939 * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
8940 (finish_decl): Don't handle iterators.
8941 (grokdeclarator): Likewise.
8942 * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
8943 * gcc/c-gperf.h: Regenerated.
8944 * gcc/c-iterate.c: Removed.
8945 * gcc/c-lex.c (init_lex): Don't handle iterators.
8946 * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
8947 (compstmt_primary_start): Remove push_iterator_stack call.
8948 (stmt): Don't allow iterator statements. Replace iterator_expand
8949 with expand_expr_stmt.
8950 (all_iter_stmt): Remove.
8951 (all_iter_stmt_simple): Likewise.
8952 (all_iter_stmt_with_decl): Likewise.
8953 * gcc/c-tree.h (ITERATOR_P): Remove.
8954 (ITERATOR_BOUND_P): Likewise.
8955 (init_iterators): Remove declaration.
8956 (iterator_expand): Likewise.
8957 (iterator_for_loop_start): Likewise.
8958 (iterator_for_loop_end): Likewise.
8959 (iterator_for_loop_record): Likewise.
8960 (push_iterator_stack): Likewise.
8961 (pop_iterator_stack): Likewise.
8962 * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
8963 (readonly_warning): Likewise.
8964 * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
8965
8966 2000-08-24 Jim Wilson <wilson@cygnus.com>
8967
8968 * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
8969 Copy type in a TYPE_DECL, just like pushdecl does.
8970
8971 2000-08-24 Richard Henderson <rth@cygnus.com>
8972
8973 * toplev.c (main): Enable flag_reorder_blocks at -O2.
8974
8975 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
8976
8977 * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
8978 asked for one page, allocate GGC_QUIRE_SIZE of them and put
8979 the extras on the free list.
8980 (release_pages): Clean up.
8981 (ggc_set_mark): Don't adjust G.allocated here...
8982 (sweep_pages): ... do it here.
8983
8984 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
8985
8986 * cppfiles.c (read_include_file): Rearrange initializations.
8987
8988 2000-08-24 Richard Henderson <rth@cygnus.com>
8989
8990 * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
8991
8992 * config/ia64/ia64-protos.h: Update.
8993 * config/ia64/ia64.c (gr_register_operand): New.
8994 (fr_register_operand, grfr_register_operand): New.
8995 (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
8996 (grfr_reg_or_8bit_operand): New.
8997 (gr_reg_or_0_operand): Rename from reg_or_0_operand and
8998 use gr_register_operand.
8999 (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
9000 (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
9001 (gr_reg_or_8bit_and_adjusted_operand): Likewise.
9002 (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
9003 (fr_reg_or_fp01_operand): Likewise.
9004 (not_postinc_memory_operand): New.
9005 (ia64_split_timode): Remove unused variables.
9006 (rtx_needs_barrier): Check arguments to cmpxchg.
9007 (builtin_description): Remove.
9008 (bdesc_2argsi, bdesc_2argdi): Remove.
9009 (ia64_init_builtins): Declare all builtins directly.
9010 (ia64_expand_fetch_and_op): Rewrite to be called from
9011 ia64_expand_builtin directly. Use expand_binop and co.
9012 (ia64_expand_op_and_fetch): Likewise.
9013 (ia64_expand_compare_and_swap): Likewise.
9014 (ia64_expand_binop_builtin): Remove.
9015 (ia64_expand_lock_test_and_set): New.
9016 (ia64_expand_lock_release): New.
9017 (ia64_expand_builtin): Use them.
9018 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
9019 (EXTRA_CONSTRAINT): Use it.
9020 (PREDICATE_CODES): Update.
9021 * config/ia64/ia64.md (*): Use gr_register_operand and co.
9022 (mf): Indicate that we set memory as well as use it.
9023 (fetchadd_acq_si): Show memory being modified as well.
9024 (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
9025 (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
9026 (lock_test_and_set_si, lock_test_and_set_di): Remove.
9027 (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
9028 (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
9029 (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
9030 (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
9031 (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
9032 (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
9033 (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
9034 (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
9035 * config/ia64/ia64intrin.h (*): Cast result to the appropriate
9036 return type. Pretty print definitions.
9037
9038 2000-08-24 Jim Wilson <wilson@cygnus.com>
9039
9040 * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
9041 we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
9042
9043 2000-08-24 Jason Merrill <jason@redhat.com>
9044
9045 * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
9046 AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
9047 (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
9048 get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
9049
9050 2000-08-24 Greg McGary <greg@mcgary.org>
9051
9052 * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
9053 and extendtab within their proper array boundaries.
9054 * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
9055 for the entire array.
9056
9057 * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
9058 * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
9059 * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
9060 * config/fr30/fr30.c (fr30_print_operand): Likewise.
9061 * config/i386/dgux.c (output_options): Likewise.
9062 * config/i386/dgux.h (ASM_FILE_START): Likewise.
9063 * config/m88k/m88k.c (output_options): Likewise.
9064 * config/m88k/m88k.h (ASM_FILE_START): Likewise.
9065 * config/mcore/mcore.c (mcore_output_inline_const_forced,
9066 layout_mcore_frame, handle_structs_in_regs): Likewise.
9067 * config/mips/mips.c (output_block_move): Likewise.
9068 * config/rs6000/rs6000.c (rs6000_override_options,
9069 rs6000_file_start): Likewise.
9070 * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
9071 * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
9072 * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
9073 * builtins.c (expand_builtin_setjmp): Likewise.
9074 * expr.c (safe_from_p): Likewise.
9075 * flow.c (life_analysis): Likewise.
9076 * fold-const.c (size_int_type_wide): Likewise.
9077 * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
9078 * genattrtab.c (make_length_attrs): Likewise.
9079 * genopinit.c (gen_insn): Likewise.
9080 * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
9081 * global.c (global_alloc): Likewise.
9082 * local-alloc.c (find_free_reg): Likewise.
9083 * mips-tdump.c (print_symbol): Likewise.
9084 * mips-tfile.c (parse_def, parse_input): Likewise.
9085 * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
9086 * stmt.c (expand_nl_goto_receiver): Likewise.
9087 * stor-layout.c (set_sizetype): Likewise.
9088 * varasm.c (decode_reg_name): Likewise.
9089 * toplev.c (decode_f_option, decode_W_option,
9090 set_target_switch, print_switch_values): Likewise.
9091 (NUM_ELEM): Remove macro.
9092 (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
9093
9094 2000-08-24 Greg McGary <greg@mcgary.org>
9095
9096 * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
9097 (MAIN_NAME_P, main_identifier_node): New macros.
9098 * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
9099 * c-decl.c (start_decl, grokdeclarator, start_function,
9100 store_parm_decls, finish_function): Use MAIN_NAME_P.
9101 * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
9102 * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
9103 * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
9104 * config/pdp11/pdp11.c (output_function_prologue): Likewise.
9105
9106 2000-08-24 Greg McGary <greg@mcgary.org>
9107
9108 * cppfiles.c (actual_directory): Don't write beyond `dir'
9109 when it contains "".
9110 * real.c (asctoeg): Stay within bounds of etens[][].
9111
9112 2000-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9113
9114 * dependence.c (dependence_string, direction_string,
9115 dump_one_node, dump_node_dependence): Hide unused identifiers.
9116 (get_low_bound, normalize_coefficients): Match definition to
9117 static prototype.
9118 (get_one_coefficient): Initialize variables `value0_is_idx' and
9119 `value1_is_idx'.
9120 (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
9121 (ziv_test): Delete variable `idx', use parameter `sub' instead.
9122 (direction_merge): Avoid automatic aggregate initialization.
9123 (have_dependence_p): Use `src' not `dest' to set `src_idx'.
9124 Initialize variables `dest_idx' and `src_idx'.
9125 (end_dependence_analysis): Avoid C89 style function definition.
9126
9127 2000-08-24 Joseph S. Myers <jsm28@cam.ac.uk>
9128
9129 * c-common.c (time_char_table): Don't allow width with %F.
9130 (check_format_info): Don't allow "Z" length with scanf.
9131
9132 2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
9133
9134 * diagnostic.c (finish_diagnostic): Define.
9135 (output_do_printf): Use wrap_text instead of output_add_string.
9136 (default_print_error_function): Avoid embedded '\n'.
9137
9138 * diagnostic.h (flush_diagnostic_buffer): Declare.
9139
9140 2000-08-23 Alexandre Oliva <aoliva@redhat.com>
9141
9142 * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
9143
9144 2000-08-23 Hans-Peter Nilsson <hp@axis.com>
9145
9146 * Makefile.in (GCC_PASSES): Add specs.
9147
9148 2000-08-23 Jim Wilson <wilson@cygnus.com>
9149
9150 * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
9151 * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
9152 EHANDLER nor UHANDLER bit is set.
9153 (__get_except_table): Likewise.
9154
9155 2000-08-23 Nick Clifton <nickc@redhat.com>
9156
9157 * config/arm/lib1funcs.asm: Replace upper case condition codes
9158 with lower case versions.
9159
9160 * config/arm/arm.h (STRUCT_VALUE): Define.
9161 (STRUCT_VALUE_REGNUM): Delete.
9162
9163 2000-08-23 Zack Weinberg <zack@wolery.cumb.org>
9164
9165 * cpphash.h (IN_I): New flag for directive table.
9166 * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
9167 #pragma with IN_I.
9168 (_cpp_check_directive): If -fpreprocessed, execute directives
9169 marked with IN_I. Issue no warnings in this case.
9170 * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
9171
9172 2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk>
9173
9174 * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
9175 %u.
9176 (check_format_info): Support printf 'I' flag; warn about it with
9177 -pedantic.
9178
9179 2000-08-23 Richard Earnshaw (rearnsha@arm.com)
9180
9181 * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
9182 barrier can't be ignored by the alias analysis code.
9183
9184 2000-08-12 Eli Zaretskii <eliz@is.elta.co.il>
9185
9186 * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
9187 works inside fixincl.
9188
9189 Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com>
9190
9191 * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
9192 simplify_relational_operation() unless both operands are of
9193 VOIDmode.
9194 * cse.c (fold_rtx): Likewise.
9195
9196 Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com)
9197
9198 * rtlanal.c (rtx_unstable_p): The pic register is stable
9199 (within one function) and the actual rtx should be used
9200 when checking the registers.
9201 (rtx_addr_can_trap_p): Pic memory addresses can't trap.
9202
9203 * alias.c (true_dependence, write_dependence_p): Fix
9204 bug in previous patch.
9205
9206 * i386.c (ix86_GOT_alias_set): New.
9207 (legitimize_pic_address): Use it.
9208
9209 * rtlanal.c (rtx_unstable_p): An unchanging MEM is
9210 only stable if its address is stable.
9211 (rtx_varies_p): An unchanging MEM can't vary if
9212 its address doesn't vary.
9213
9214 2000-08-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9215
9216 * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
9217
9218 2000-08-22 J. David Anglin <dave@hiauly1.hia.nrc.ca>
9219
9220 * vax.h (ASM_SPEC): Pass `-J' to assembler.
9221 * x-vax-gcc: New file for bootstrapping with gcc.
9222 * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
9223 * configure.in: Use x-vax-gcc with gcc.
9224 * configure: Rebuilt.
9225
9226 Tue Aug 22 21:21:05 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
9227
9228 * toplev.c (rest_of_compilation): Rebuild label notes after
9229 post-reload splitting pass if new labels have been created.
9230
9231 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
9232
9233 * diagnostic.h (output_buffer_state): New macro.
9234 * diagnostic.c (diagnostic_for_decl, sorry,
9235 default_print_error_function, output_do_verbatim,
9236 report_diagnostic, report_problematic_module): Use it.
9237 (wrap_text): Tweak.
9238 (output_format): Use wrap_text instead of maybe_wrap_text.
9239
9240 2000-08-22 Nick Clifton <nickc@redhat.com>
9241
9242 * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
9243 Common code for ARM divide and modulus functions.
9244 (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
9245 ARM_DIV_MOD_BODY.
9246 (FUNC_END): New macro: Common code at the end of the division and
9247 modulo functions.
9248 (THUMB_FUNCTION_START): New macro: Common code at the start of
9249 Thumb functions.
9250 (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
9251
9252 Tue Aug 22 20:34:52 2000 Kaz Kojima <kkojima@rr.iij4u.or.jp>
9253
9254 * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
9255
9256 * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
9257 sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
9258 const0_rtx.
9259
9260 2000-08-22 Nick Clifton <nickc@redhat.com>
9261
9262 * config/arm/lib1funcs.asm (__umodsi3): Before performing any
9263 restorative additions, test for bottom bits of IP being set,
9264 rather than relying upon the RORs not matching.
9265 (__modsi3): Ditto.
9266
9267 2000-08-22 David Edelsohn <edelsohn@gnu.org>
9268
9269 * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
9270 text_section() as appropriate instead of emitting text csect
9271 pseudo-op directly.
9272 (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
9273 (UNIQUE_SECTION): Define macro.
9274 (ASM_OUTPUT_SECTION_NAME): Define macro.
9275 * rs6000.c (rs6000_override_options): Disable -ffunction-sections
9276 on AIX if debugging and -fdata-sections always.
9277
9278 2000-08-22 Steven King <sxking@uswest.net>
9279
9280 * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
9281 machinery.
9282 (LDBL_MAX): Same here.
9283
9284 2000-08-22 Richard Henderson <rth@cygnus.com>
9285
9286 * flow.c (tidy_fallthru_edge): Update b->end properly.
9287
9288 2000-08-22 Stan Cox <scox@redhat.com>
9289
9290 * Makefile.in (OBJS): Add dependence.o.
9291 * dependence.c: New file.
9292
9293 2000-08-22 Alexandre Oliva <aoliva@redhat.com>, John David Anglin <dave.anglin@nrc.ca>
9294
9295 * calls.c (check_sibcall_argument_overlap_1): Adjust for
9296 ARGS_GROW_DOWNWARD.
9297 (check_sibcall_argument_overlap): Likewise.
9298
9299 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
9300
9301 * invoke.texi (SH Options): Document -m4-nofpu,
9302 -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
9303 -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
9304
9305 2000-08-22 Joseph S. Myers <jsm28@cam.ac.uk>
9306
9307 * c-common.c (check_format_info): Give the 'some locales' warning
9308 for strftime %Ey rather than the unconditional 'only last 2 digits
9309 of year' one.
9310
9311 2000-08-22 Richard Henderson <rth@cygnus.com>
9312
9313 * alias.c (init_alias_analysis): Do not register
9314 struct_value_incoming_rtx or static_chain_rtx as pointing
9315 to stack memory.
9316
9317 Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com)
9318
9319 * protoize.c (munge_compile_params): Fix typo and formatting buglets.
9320
9321 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
9322
9323 * diagnostic.h (report_problematic_module): Declare.
9324 * diagnostic.c (report_problematic_module): New function.
9325 (report_error_function): Tweak.
9326
9327 Tue Aug 22 02:31:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9328
9329 * stmt.c (expand_goto_internal, fixup_gotos): Only check
9330 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
9331
9332 2000-08-21 Richard Henderson <rth@cygnus.com>
9333
9334 * flow.c (calculate_global_regs_live): Mark frame pointer live
9335 everywhere before reload.
9336
9337 2000-08-21 Jim Wilson <wilson@cygnus.com>
9338
9339 * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
9340 INTEL_EXTENDED_IEEE_FORMAT.
9341 (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally
9342 clear last two bytes of output FP value.
9343
9344 2000-08-21 Graham Stott <grahams@cygnus.co.uk>
9345
9346 * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
9347
9348 2000-08-21 Jakub Jelinek <jakub@redhat.com>
9349
9350 * unroll.c (loop_find_equiv_value): If ret is modified between
9351 insn and loop_start, ret might not be equivalent to reg.
9352
9353 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
9354
9355 * c-common.c (init_dollar_format_checking,
9356 maybe_read_dollar_number, finish_dollar_format_checking): New
9357 functions.
9358 (dollar_arguments_used, dollar_arguments_count,
9359 dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
9360 New variables.
9361 (check_format_info): Support $ formats for scanf and printf width
9362 and precision. Always increment format_chars to advance past the
9363 '*' of precision, not just when the format parameters are
9364 available to check.
9365
9366 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9367
9368 * mips.c (block_move_loop, expand_block_move,
9369 function_arg_partial_nregs, save_restore_insns, function_prologue,
9370 mips_expand_prologue, RA_MASK): Avoid using the `U' integer
9371 constant suffix.
9372 (function_arg_advance, function_arg): Match argument to format
9373 specifier `%p'.
9374
9375 2000-08-21 Nix <nix@esperi.demon.co.uk>
9376
9377 * gcc.c (do_spec_1): Implement %j spec flag.
9378 Remove dead comment.
9379
9380 * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
9381 * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
9382 * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
9383 * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
9384
9385 * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
9386 writable) instead of hardcoded value.
9387
9388 * toplev.c (compile_file): Output to a file even if -fsyntax-only.
9389
9390 * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
9391 MKTEMP_EACH_FILE.
9392
9393 * gcc.c (cc1_options): Do not process -o or run the assembler if
9394 -fsyntax-only.
9395 * objc/lang-spec.h: Likewise.
9396
9397 2000-08-21 Eli Zaretskii <eliz@is.elta.co.il>
9398
9399 * fixinc/fixincl.c (fix_with_system): Pipe the output of
9400 "external" fixes through `cat', to avoid truncating the input
9401 file by redirection.
9402
9403 2000-08-21 Jakub Jelinek <jakub@redhat.com>
9404
9405 * config/i386/i386.md (lea_general_1): Copy insn condition to split
9406 condition.
9407 (lea_general_2, lea_general_3): Likewise.
9408
9409 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9410
9411 * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
9412 warnings to user code.
9413
9414 * c-lex.c (readescape, yylex): Likewise.
9415
9416 * c-typeck.c (store_init_value, process_init_element): Likewise
9417 (c_expand_start_case): Format.
9418
9419 2000-08-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
9420
9421 * mips/linux.h (LINK_SPEC): Use %(endian_spec).
9422
9423 * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
9424 and linker_endian_spec to endian_spec.
9425 (ENDIAN_SPEC): Add %{EB} and %{EL}.
9426 (LINK_SPEC): Remove %{EB} and %{EL}.
9427 (ASM_SPEC): Likewise. Use %(endian_spec).
9428
9429 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
9430
9431 * c-tree.h (flag_hosted): Move declaration from here...
9432 * c-common.h (flag_hosted): ... to here.
9433 (flag_noniso_default_format_attributes): New declaration.
9434 * c-decl.c (flag_noniso_default_format_attributes): New variable.
9435 (c_decode_option): Set it appropriately for options choosing
9436 language standard variant.
9437 * c-common.c (init_function_format_info): Only provide default
9438 format attributes if flag_hosted. Only provide the gettext
9439 formats if flag_noniso_default_format_attributes. Update
9440 comments.
9441 (check_format_info): Disable treatment of %a as a scanf flag in
9442 C99 mode.
9443
9444 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
9445
9446 * c-common.c (scan_char_table): Add 'w' to flags for all formats
9447 except 'n'.
9448 (check_format_info): Set 'wide' for scanf format widths. Warn for
9449 a zero scanf width. Make the check for writing into a constant
9450 object at the first level of indirection; at later levels, warn if
9451 any type qualifiers are encountered.
9452
9453 Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com)
9454
9455 * reload.c (reload_inner_reg_of_subreg): New function broken out of
9456 push_reload.
9457 (push_reload): Use reload_inner_reg_of_subreg.
9458 (combine_reloads): Do not combine reloads if the input reload
9459 is a SUBREG in which the inner part will need reloading.
9460
9461 * global.c (global_alloc): Avoid passing dumpfile argument to
9462 reload routines.
9463 * toplev.c (rest_of_compilation): Likewise.
9464 * reload.h (reload): Remove dumpfile argument. Callers changed.
9465 (debug_reload, debug_reload_to_stream): Move prototypes here.
9466 * rtl.h (reload): Remove dumpfile argument.
9467 * reload.c (debug_reload): Remove prototype.
9468 (debug_reload_to_stream): Likewise.
9469 * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
9470 instead.
9471
9472 2000-08-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
9473
9474 * diagnostic.c (context_as_prefix): Export.
9475 (need_error_newline): Remove.
9476 (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
9477 (error_module_changed, record_last_error_module,
9478 error_function_changed, record_last_error_function): New functions.
9479 (initialize_diagnostics): Default intialize
9480 lang_diagnostic_starter, lang_diagnostic_finalizer.
9481 (init_output_buffer): Tweak.
9482 (file_name_as_prefix): New function.
9483 (announce_function, default_print_error_function,
9484 report_error_function, set_diagnostic_context): Tweak.
9485
9486 2000-08-21 Richard Earnshaw <rearnsha@arm.com>
9487
9488 * flow.c (init_propagate_block_info): Handle SUBREG in a jump
9489 condition expression.
9490
9491 2000-08-20 Richard Henderson <rth@cygnus.com>
9492
9493 * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
9494
9495 2000-08-20 Zack Weinberg <zack@wolery.cumb.org>
9496
9497 * cppinit.c (cpp_init): Set global flag when called.
9498 (cpp_reader_init): Bomb out if cpp_init hasn't been called.
9499
9500 Sun Aug 20 01:41:35 2000 Dennis Chernoivanov <cdi@sparc.spb.su>
9501
9502 * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
9503 before `process_directive' so that newlines won't be missed
9504 for directives.
9505 (cpp_printf): Increment `print->lineno' when newline is emitted.
9506
9507 * cppmain.c (cb_ident): Likewise.
9508 (cb_define): Likewise.
9509 (cb_undef): Likewise.
9510 (cb_include): Likewise.
9511 (cb_def_pragma): Likewise.
9512 (dump_macros_helper): Likewise.
9513
9514 2000-08-20 Richard Henderson <rth@cygnus.com>
9515
9516 * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
9517 assigned before a loop.
9518
9519 * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
9520 (ashrsi3, lshrsi3): Likewise.
9521
9522 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
9523
9524 * c-lang.c: #include diagnostic.h
9525 (c_tree_printer): New function.
9526 (lang_init): Initialize lang_printer.
9527
9528 * Makefile.in (c-lang.o): Depends on diagnostic.h
9529
9530 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
9531
9532 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
9533
9534 * diagnostic.c (default_diagnostic_starter,
9535 default_diagnostic_finalizer): New functions.
9536 (diagnostic_for_asm, diagnostic_for_decl): Tweak.
9537 (pedwarn, pedwarn_with_file_and_line, error,
9538 error_with_file_and_line, fatal, warning,
9539 warning_with_file_and_line): Adjust call to report_diagnostic.
9540 (report_diagnostic): Rework.
9541 (set_diagnostic_context): New function.
9542
9543 * diagnostic.h (struct diagnostic_context): New data structure.
9544 (diagnostic_message, diagnostic_argument_list,
9545 diagnostic_file_location, diagnostic_line_location,
9546 diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
9547 diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
9548 (set_diagnostic_context): Declare.
9549 (report_diagnostic): Change prototype.
9550
9551 Sun 20-Aug-2000 09:25:45 BST Neil Booth <NeilB@earthling.net>
9552
9553 * fix-header.c (main): Initialize cpplib.
9554
9555 2000-08-19 Michael Meissner <meissner@redhat.com>
9556
9557 * ifcvt.c (find_if_block): Do not assume that a THEN block has any
9558 instructions in it before checking for indirect jumps.
9559
9560 * ifcvt.c (find_if_block): Do not consider a THEN block that ends
9561 in a indirect jump as a potential for conditional execution.
9562
9563 * d30v.h (d30v_init_expanders): Don't declare here.
9564 * d30v-protos.h (d30v_init_expanders): Declare here with a valid
9565 prototype.
9566
9567 Sat 19-Aug-2000 21:11:45 BST Neil Booth <NeilB@earthling.net>
9568
9569 * cpp.texi: Add @section for assertions.
9570
9571 Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com)
9572
9573 * loop.c (scan_loop): Use CONST_CALL_P instead of
9574 checking for REG_LIBCALL / REG_RETVAL.
9575
9576 Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com)
9577
9578 * reload1.c (reload_as_needed): Accept dumpfile argument,
9579 pass it to emit_reload_insns.
9580 (emit_reload_insns): Add new dumpfile argument. If non-null
9581 then dump the reloads for each insn into the dumpfile.
9582 (reload): Pass dumpfile to reload_as_needed.
9583
9584 * invoke.texi: Clean up linux-gnu vs linux comments.
9585
9586 2000-08-19 Richard Henderson <rth@cygnus.com>
9587
9588 * config/ia64/ia64.c (reg_or_5bit_operand): New.
9589 (ia64_depz_field_mask): New.
9590 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
9591 (PREDICATE_CODES): Update.
9592 * config/ia64/ia64.md: Update commentary.
9593 (depz_internal): New.
9594 (ashlsi3): Implement directly.
9595 (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
9596 (ashldi3): Use shladd.
9597 * config/ia64/ia64-protos.h: Update.
9598
9599 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
9600
9601 * toplev.c (independent_decode_option): Always process -g.
9602 Remove third argument, now unused. Adjust caller to match.
9603
9604 2000-08-18 Richard Henderson <rth@cygnus.com>
9605
9606 * combine.c (make_compound_operation): Break after creating
9607 the extraction.
9608
9609 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
9610
9611 * cpplib.c (cpp_register_pragma_space): Just return if the
9612 namespace is already registered.
9613
9614 2000-08-18 Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton <nickc@redhat.com>
9615
9616 * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
9617 constant amount. Do not generate ROTL instruction.
9618
9619 Fri Aug 18 16:22:20 2000 Alexandre Oliva <aoliva@redhat.com>
9620
9621 * config/sh/elf.h: Do not include sh/sh.h.
9622 * config/sh/rtems.h: Likewise.
9623 * config/sh/rtemself.h: Do not include sh/elf.h.
9624 * configure.in: Get them included with `tm_file's.
9625 * configure: Rebuilt.
9626
9627 * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
9628 * config/sh/sh.c (fpscr_set_from_mem): Use them.
9629
9630 Fri Aug 18 14:23:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9631
9632 * stor-layout.c (compute_record_type): Don't use mode of single
9633 field as mode of record if not integer mode of same type.
9634
9635 * regmove.c (perhaps_ends_bb_p): New function.
9636 (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
9637 (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
9638 (fixup_match_1): Likewise.
9639 (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
9640 avoid signed/unsigned warnings.
9641
9642 * function.c (fixup_var_refs_1, case MEM): Update CODE after
9643 updating X.
9644
9645 Fri 18-Aug-2000 18:33:45 BST Neil Booth <NeilB@earthling.net>
9646
9647 * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
9648 (_cpp_trigraph_map): Declaration moved from cpplex.c
9649
9650 * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1
9651 instead of 256. Use consistent test for designated initializers.
9652 (cpp_init): Initialize trigraph_map.
9653 (initialize_standard_includes, parse_option): Use memcmp
9654 instead of strncmp.
9655
9656 * cpplex.c (init_trigraph_map): Remove.
9657 (trigraph_ok, trigraph_replace, lex_line): Refer to
9658 _cpp_trigraph_map.
9659
9660 * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
9661 (do_unassert): Remove unused "next" local.
9662
9663 * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
9664
9665 2000-08-18 Emmanuel Marty <emarty@suntech.fr>
9666
9667 * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
9668 insn.
9669
9670 2000-08-17 Richard Henderson <rth@cygnus.com>
9671
9672 * config/ia64/ia64.c (spill_restore_mem): Handle emitting
9673 the first insn in a sequence.
9674
9675 Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com)
9676
9677 * alias.c (true_dependence, write_dependence_p): A read
9678 involving a label_ref or the constant pool doesn't create
9679 a dependency.
9680
9681 * rtl.h (unchanging): Improve documentation.
9682
9683 2000-08-17 Rodney Brown <RodneyBrown@mynd.com>
9684
9685 * cse.c (insert_regs): Remove unused `regno'.
9686
9687 2000-08-17 Neil Booth <NeilB@earthling.net>
9688
9689 * (cppinit.c) merge_include_chains: Use remove_dup_dir,
9690 remove_dup_dirs. If qtail == brack, remove brack not
9691 qtail.
9692 (remove_dup_dir, remove_dup_dirs): New functions.
9693
9694 2000-08-17 Neil Booth <NeilB@earthling.net>
9695
9696 * cppinit.c (cpp_cleanup): Free include dir chains.
9697 * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
9698 (do_unassert): Free the assert with _cpp_free_definition.
9699 * cppmacro.c (_cpp_free_definition): Free memory allocated for
9700 assertions. Make the node a T_VOID node.
9701
9702 2000-08-17 Neil Booth <NeilB@earthling.net>
9703
9704 * cppinit.c (path_include, append_include_chain):
9705 Remove 2nd parameter (struct cpp_pending *).
9706 (path_include, initialize_standard_includes, cpp_handle_option):
9707 Update callers appropriately.
9708 (cpp_handle_option): Use pend.
9709
9710 2000-08-17 Neil Booth <NeilB@earthling.net>
9711
9712 * cppinit.c (sort_options): Remove, put functionality in
9713 cpp_init.
9714 (cpp_init): New.
9715 (initialize_builtins): Free memory.
9716 (cpp_start_read): Move init_IStable to cpp_init.
9717
9718 * cpplib.h (cpp_init): New prototype.
9719 * cppmain.c (main): Call cpp_init.
9720
9721 Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com)
9722
9723 * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
9724 (rtx_unstable_p, rtx_varies_p): Process vectors.
9725
9726 2000-08-16 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
9727
9728 * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all
9729 references to GLOBAL symbols. Use LOCAL where appropriate.
9730
9731 2000-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9732
9733 * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always
9734 use t-aix41 when host == target.
9735
9736 2000-08-16 Richard Henderson <rth@cygnus.com>
9737
9738 * reload.c (push_secondary_reload): Revert last change.
9739 If we use a reload_in/out pattern, make the when the same
9740 as the primary reload.
9741 (find_reloads): Likewise.
9742
9743 2000-08-16 Manfred Hollstein <manfredh@redhat.com>
9744
9745 * configure.in (libstdcxx-v3): Fix test.
9746 * configure: Regenerate.
9747
9748 Wed Aug 16 08:10:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9749
9750 * calls.c (calls_function_1, expand_call): Only test
9751 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
9752 * function.c (thread_prologue_and_epilogue_insns): Likewise.
9753
9754 2000-08-16 Richard Henderson <rth@cygnus.com>
9755
9756 * combine.c (simplify_shift_const): Revert previous two
9757 changes. If SHIFT_COUNT_TRUNCATED, crop the shift count
9758 before the main loop.
9759
9760 2000-08-15 Richard Henderson <rth@cygnus.com>
9761
9762 * combine.c (simplify_shift_const): Bound shift count when
9763 combining shifts.
9764
9765 Tue Aug 15 17:33:05 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9766
9767 * calls.c (ECF_SP_DEPRESSED): New macro.
9768 (calls_function_1): Treat calling sp-depressed function as alloca.
9769 (emit_call_1): Don't adjust SP if calling sp-depressed function.
9770 (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
9771 If sp-depressed, ensure block saves and restores SP.
9772 * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
9773 for INTEGER_TYPE.
9774 * function.c (keep_stack_depressed): New function.
9775 (thread_prologue_and_epilogue_insns): Call it.
9776 * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
9777 to print DECL_OFFSET_ALIGN.
9778 Print no-force-blk and transparent-union flags properly.
9779 * stmt.c (expand_goto_internal): Don't restore stack if last block
9780 and function returns with sp depressed.
9781 (fixup_gotos): Likewise.
9782 (save_stack_pointer): New function, from code in expand_decl.
9783 (expand_decl): Call new function.
9784 * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
9785 (TYPE_RETURNS_STACK_DEPRESSED): New macro.
9786 (save_stack_pointer): New declaration.
9787
9788 * diagnostic.c (fatal_function): New variable.
9789 (set_fatal_function): New function.
9790 (fatal): Call it.
9791 * diagnostic.h (set_fatal_function): New declaration.
9792
9793 2000-08-15 William Cohen <wcohen@redhat.com>
9794
9795 * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
9796 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
9797 (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
9798
9799 2000-08-15 Richard Henderson <rth@cygnus.com>
9800
9801 * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
9802
9803 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9804
9805 * arm.c (arm_function_ok_for_sibcall): New function.
9806 * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
9807 * arm.md (call expanders): Don't check here for calls that can't
9808 be sibling calls.
9809
9810 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9811
9812 * arm.md (splits generating cond_exec): Disable.
9813
9814 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9815
9816 * arm/linux-elf.h (text_section): Delete declaration.
9817
9818 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9819
9820 ARM support for unordered FP operations.
9821 * arm-protos.h (arm_comparison_operator): Declare.
9822 * arm.c (arm_comparison_operator): New function.
9823 (arm_select_cc_mode): Add unordered comparison codes.
9824 (get_arm_condition_code): Likewise.
9825 (arm_final_prescan_insn): Can't handle unordered jumps that can't
9826 be done in one insn.
9827 * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
9828 * arm.md (all uses of comparison_operator): Replace with
9829 arm_comparison_operator.
9830 (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
9831 expands.
9832 (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
9833 patterns.
9834
9835 Tue Aug 15 00:36:36 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
9836
9837 * gthr-posix.h: Conditionally include <sched.h>; include
9838 <config.h> from libobjc/.
9839
9840 2000-08-14 Richard Henderson <rth@cygnus.com>
9841
9842 * config/i386/i386.c (legitimize_pic_address): Use Pmode
9843 for all CONSTs.
9844
9845 2000-08-14 Richard Henderson <rth@cygnus.com>
9846
9847 * configure.in (ia64-*): Set float_format for i386 long double.
9848
9849 * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
9850 as we would for i386 XFmode.
9851 (PUT_REAL): Likewise.
9852 (endian, ereal_atof, real_value_truncate): Likewise.
9853 (ereal_isneg, toe64, etens, make_nan): Likewise.
9854 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
9855
9856 * config/ia64/ia64-protos.h: Update.
9857 * config/ia64/ia64.c (general_tfmode_operand): New.
9858 (destination_tfmode_operand): New.
9859 (tfreg_or_fp01_operand): New.
9860 (ia64_split_timode): New.
9861 (spill_tfmode_operand): New.
9862 (ia64_expand_prologue): Use TFmode not XFmode.
9863 (ia64_expand_epilogue): Likewise.
9864 (ia64_function_arg): Likewise.
9865 (ia64_function_arg_advance): Likewise.
9866 (ia64_return_in_memory): Likewise.
9867 (ia64_function_value): Likewise.
9868 (ia64_print_operand): Likewise.
9869 (ia64_register_move_cost): Set GR<->FR to 5.
9870 (ia64_secondary_reload_class): Get GR for TImode memory op.
9871 * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
9872 (ROUND_TYPE_ALIGN): Remove.
9873 (LONG_DOUBLE_TYPE_SIZE): Set to 128.
9874 (INTEL_EXTENDED_IEEE_FORMAT): Define.
9875 (HARD_REGNO_NREGS): Use TFmode, not XFmode.
9876 (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs.
9877 (MODES_TIEABLE_P): Use TFmode, not XFmode.
9878 (CLASS_MAX_NREGS): Likewise.
9879 (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
9880 (PREDICATE_CODES): Update.
9881 * config/ia64/ia64.md (movti): New.
9882 (movti_internal): Use a clobber for memory alternatives.
9883 (reload_inti, reload_outti): New.
9884 (movsfcc_astep): Predicate properly.
9885 (movdfcc_astep): Likewise.
9886 (movxf): Remove.
9887 (movtf): New.
9888 (extendsftf2, extenddftf2): New.
9889 (trunctfsf2, trunctfdf2): New.
9890 (floatditf2, fix_trunctfdi2): New.
9891 (floatunsditf2, fixuns_trunctfdi2): New.
9892 (addtf3, subtf3, multf3, abstf2): New.
9893 (negtf2, nabstf2, mintf3, maxtf3): New.
9894 (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
9895 (cmptf): New.
9896 (fr_spill): Use TFmode, not XFmode.
9897 (fr_restore): Likewise.
9898 * config/ia64/lib1funcs.asm (__divtf3): New.
9899 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
9900
9901 2000-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9902
9903 * cse.c (fold_rtx): Avoid empty body in an if-statement.
9904
9905 * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
9906 `U' integer constant suffix.
9907
9908 * dwarf2out.c (add_subscript_info): Avoid empty body in an
9909 else-statement.
9910
9911 * sparc/sol2.h (__enable_execute_stack): Prototype.
9912
9913 2000-08-14 David Edelsohn <edelsohn@gnu.org>
9914
9915 * collect2.c: Remove use of AIX import file.
9916
9917 * longlong.h: Test ARCH_PWR not ARCH_POWER.
9918
9919 * rs6000.c (print_operand, case 'E'): Add else.
9920
9921 2000-08-14 Richard Henderson <rth@cygnus.com>
9922
9923 * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
9924 (movdi_symbolic): New.
9925
9926 2000-08-14 Jim Wilson <wilson@cygnus.com>
9927
9928 * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
9929 to GNU as. For Intel as, pass -M const_gp and -M no_plabel.
9930 * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
9931 to GNU as.
9932
9933 2000-08-14 Richard Henderson <rth@cygnus.com>
9934
9935 * expr.c (emit_group_load): Don't force constants into registers.
9936 Special case source already in the correct mode.
9937
9938 2000-08-14 Zack Weinberg <zack@wolery.cumb.org>
9939
9940 * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
9941 * fixinc/inclhack.def: Likewise.
9942 * fixinc/mkfixinc.sh: Likewise.
9943 * configure: Regenerate.
9944 * fixinc/fixincl.x: Regenerate.
9945 * install.texi: Document equivalence of linux and linux-gnu.
9946
9947 Mon Aug 14 18:51:44 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
9948
9949 * cse.c (insert_regs): Also in REG case: When finding an invalid
9950 value, and we make a new quantity, make sure that it won't be
9951 mistaken by for a valid one by mention_regs.
9952
9953 2000-08-13 Ralf Gütlein <ralf.guetlein@aranea.de>
9954
9955 * h8300.md: Remove obsolete peepholes.
9956
9957 2000-08-13 Kazu Hirata <kazu@hxi.com>
9958
9959 * invoke.texi (H8/300 Options): Fix typos.
9960 * config/h8300.c: Fix formatting.
9961 * config/h8300.h: Fix comment typos.
9962 (OVERRIDE_OPTIONS): Fix formatting.
9963
9964 * function.c: Fix formatting.
9965
9966 * cse.c: Fix formatting.
9967
9968 2000-08-13 Geoff Keating <geoffk@cygnus.com>
9969
9970 * flow.c (attempt_auto_inc): Remove unused variable `bb'.
9971 (attempt_auto_inc): Suppress parentheses warning.
9972 * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
9973 * loop.c (load_mems): Remove `u' suffix in two places.
9974 * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
9975 hex constants.
9976 * config/rs6000/rs6000.h: Likewise.
9977 * config/rs6000/sol-c0.c: Prototype some functions. Remove the
9978 __eabi dummy routine.
9979 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
9980 variable `buf_ptr'.
9981
9982 * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
9983 not put stuff in .sdata unnecessarily.
9984 (rs6000_unique_section): New function.
9985 * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
9986 * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
9987
9988 * c-typeck.c (build_array_ref): Don't complain about non-lvalue
9989 arrays in C99. Don't try to look at DECL_REGISTER of a
9990 COMPONENT_REF. Don't complain twice about the same error.
9991
9992 * fixinc/inclhack.def (aix_pthread): New fix.
9993 (aix_sysmachine): New fix.
9994 * fixinc/fixincl.x: Regenerate.
9995
9996 * expr.c (expand_expr): Call convert_modes when turning a large
9997 multiply into a small one.
9998
9999 2000-08-12 Geoff Keating <geoffk@cygnus.com>
10000
10001 * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
10002 the tree structure an exponent rather than an explicit alignment
10003 so it doesn't overflow.
10004 (SET_DECL_OFFSET_ALIGN): New macro.
10005 * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
10006 rather than DECL_OFFSET_ALIGN.
10007 (place_field): Likewise.
10008 * expmed.c (store_bit_field): Abort on align==0 to avoid
10009 antisocial machine behaviour.
10010
10011 2000-08-12 Richard Henderson <rth@cygnus.com>
10012
10013 * sibcall.c (uses_addressof): Accept both addressof and
10014 current_function_internal_arg_pointer inside a mem.
10015 (optimize_sibling_and_tail_recursive_call): Fail tail recursion
10016 if current_function_uses_addressof.
10017 * stmt.c (expand_return): Kill tail recursion and HAVE_return
10018 optimizations.
10019
10020 2000-08-11 Richard Henderson <rth@cygnus.com>
10021
10022 * config/ia64/ia64.md (addsi3): Remove expander.
10023 (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
10024 (*addsi3_shladd): New.
10025
10026 2000-08-11 Richard Henderson <rth@cygnus.com>
10027
10028 * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
10029 (do_restore): Likewise.
10030 (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
10031 (ia64_expand_prologue, ia64_expand_epilogue): Use them.
10032 (rtx_needs_barrier): Track actual bit manipulation for
10033 ar.unat moves, gr_spill, and gr_restore.
10034 (emit_insn_group_barriers): Special case gr_spill/gr_restore.
10035 (process_set): Don't handle varargs spills.
10036 * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit
10037 .mem.offset here instead of in process_set.
10038 (gr_restore): Likewise.
10039
10040 2000-08-11 Richard Henderson <rth@cygnus.com>
10041
10042 * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
10043
10044 2000-08-11 Mark Elbrecht <snowball3@bigfoot.com>
10045
10046 * gcc.texi (The Configuration File): Document
10047 COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
10048 UPDATE_PATH_HOST_CANONICALIZATION.
10049
10050 2000-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10051
10052 * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
10053 unprototyped function pointer casts on integer constants.
10054
10055 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
10056
10057 * fixproto: Recognize DOS paths with drive letters as absolute paths.
10058
10059 2000-08-11 Nathan Sidwell <nathan@codesourcery.com>
10060
10061 * extend.texi (Volatiles): Fix typos.
10062
10063 2000-08-11 Kazu Hirata <kazu@hxi.com>
10064
10065 * flow.c: Fix formatting.
10066
10067 2000-08-11 Richard Henderson <rth@cygnus.com>
10068
10069 * reload.c (push_secondary_reload): When invoking a reload_{in,out}
10070 pattern, always allocate a tertiary scratch register.
10071
10072 * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
10073 (reload_inhi): Likewise.
10074
10075 2000-08-11 Richard Henderson <rth@cygnus.com>
10076
10077 * function.c (put_reg_into_stack): Allow type to be NULL.
10078 (schedule_fixup_var_refs): Likewise.
10079 (gen_mem_addressof): Allow decl to be NULL.
10080 (put_addressof_into_stack): Likewise.
10081
10082 * flow.c (merge_blocks_nomove): Be more careful about
10083 locating the beginning of block A.
10084
10085 * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
10086
10087 Thu Aug 10 22:47:09 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10088
10089 * configure.in:
10090 * configure:
10091 * gthr-posix.h:
10092 * config.in: Reverted the check for <sched.h>.
10093
10094 2000-08-10 Chris Demetriou <cgd@sibyte.com>
10095
10096 * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
10097 macros define the name of CTOR and DTOR sections.
10098 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
10099 DTOR_LIST_END): Change to use attributes to specify
10100 sections.
10101 * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
10102 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
10103 DTOR_LIST_END): Same as in mips/elf.h.
10104
10105 2000-08-10 Drew Moseley <dmoseley@redhat.com>
10106
10107 * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
10108 disabling just crt0.o.
10109
10110 2000-08-10 Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton <nickc@cygnus.com>
10111
10112 * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
10113 (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
10114 (EXTRA_SPECS): Add them.
10115 * arm/lib1funcs.asm: Support builds for interworking.
10116 Use macros to eliminate duplicated pieces of code.
10117
10118 2000-08-10 Kazu Hirata <kazu@hxi.com>
10119
10120 * h8300.c (expand_a_rotate): New.
10121 (emit_a_rotate): Likewise.
10122 (h8300_adjust_insn_length): Add support for the rotate insns.
10123 * h8300.md (rotlqi3): New.
10124 (*rotlqi3_1): Likewise.
10125 (rotlhi3): Likewise.
10126 (*rotlhi3_1): Likewise.
10127 (rotlhi3): Likewise.
10128 (*rotlhi3_1): Likewise.
10129 * h8300-proto.h: Add prototypes for expand_a_rotate and
10130 emit_a_rotate.
10131
10132 * h8300.c: Fix comment typos.
10133 (dosize): Declare the variable amount as unsigned.
10134 (get_shift_alg): Fix a comparison between signed and unsigned.
10135 (emit_a_shift): Likewise.
10136 (h8300_adjust_insn_length): Simplify the code.
10137
10138 * c-decl.c: Fix formatting.
10139
10140 2000-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10141
10142 * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
10143 warning about non-traditional numeric constant suffixes.
10144
10145 * cppexp.c (parse_number): Likewise.
10146
10147 * invoke.texi: (-Wtraditional): Document new behavior.
10148
10149 Thu Aug 10 00:11:04 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10150
10151 * gthr-posix.h: Include auto-host.h. Conditionally include
10152 <sched.h>.
10153 * configure.in: Check for the <sched.h> header file.
10154 * config.in: Added define for HAVE_SCHED_H.
10155
10156 2000-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10157
10158 * c-typeck.c (process_init_element): For -Wtraditional, warn about
10159 initialization of unions.
10160
10161 * invoke.texi (-Wtraditional): Document new behavior.
10162
10163 2000-08-09 Zack Weinberg <zack@wolery.cumb.org>
10164
10165 * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE
10166 instead of extra_c_flags.
10167 (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
10168 * configure: Regenerate.
10169 * config.in: Regenerate.
10170
10171 * cpperror.c (cpp_type2name): New function.
10172 * cpplex.c (lex_line): If we issued an error for an invalid
10173 preprocessing directive, discard that logical line.
10174 * cpplib.c (do_line): Call a hook function if the current file
10175 is renamed by #line.
10176 (do_ident): Pass the contents of the string, not the entire
10177 token, to the callback function.
10178 * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
10179 (cb.rename_file): New hook function.
10180 (cb.ident): Adjust prototype.
10181 (cpp_type2name): Prototype.
10182 * cppmacro.c (dump_macro_args): Correct precedence lossage.
10183
10184 * cppmain.c (cb_ident): Update for changed interface.
10185 (cb_rename_file): New function.
10186 (main): Set rename callback.
10187
10188 2000-08-09 Alexandre Oliva <aoliva@redhat.com>
10189
10190 * caller-save.c (mark_referenced_regs): Mark partially-overwritten
10191 multi-word registers.
10192
10193 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
10194
10195 * c-common.c (combine_strings, check_format_info): Refer to ISO C
10196 or ISO C89 instead of ANSI C.
10197 * c-decl.c (grokdeclarator, xref_tag, finish_struct,
10198 build_enumerator, do_case): Likewise.
10199 * c-lex.c (parse_float, yylex): Likewise.
10200 * c-parse.in: Likewise.
10201 * c-typeck.c (common_type, build_array_ref, build_binary_op,
10202 build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
10203 build_c_cast, convert_for_assignment, set_init_index,
10204 set_init_label, c_expand_start_case): Likewise.
10205 * toplev.c (documented_lang_options, display_help): Likewise.
10206
10207 2000-08-08 Kazu Hirata <kazu@hxi.com>
10208
10209 * h8300.c: Fix formatting.
10210 * h8300.h: Likewise.
10211 * h8300.md: Likewise.
10212 (movsi_h8300hs): Fix formatting of the resulting assembly code.
10213
10214 * reload1.c: Fix formatting.
10215
10216 2000-08-08 Rodney Brown <RodneyBrown@mynd.com>
10217
10218 * alpha/alpha.c (alpha_emit_xfloating_libcall):
10219 Use GEN_CALL_VALUE define.
10220 * alpha/alpha.md (untyped_call): Use GEN_CALL define.
10221 * clipper/clipper.md (untyped_call): Likewise.
10222 * dsp16xx/dsp16xx.md (untyped_call): Likewise.
10223 * fx80/fx80.md (untyped_call): Likewise.
10224 * mips/mips.md (untyped_call): Likewise.
10225 * ns32k/ns32k.md (untyped_call): Likewise.
10226 * pa/pa.md (untyped_call): Likewise.
10227 * romp/romp.md (untyped_call): Likewise.
10228 * sparc/sparc.md (untyped_call): Likewise.
10229
10230 2000-08-08 Jason Eckhardt <jle@cygnus.com>
10231
10232 * config/i860/i860.c (singlemove_string): Do not generate assembler
10233 pseudo instructions that must be expanded (that is, with signed
10234 constants larger than 16 bits).
10235
10236 2000-08-08 Richard Henderson <rth@cygnus.com>
10237
10238 * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
10239 PROP_AUTOINC at -O0. Don't collect alias info at -O0.
10240 (init_propagate_block_info): Don't kill memory stores at -O0.
10241 (mark_set_1, mark_used_regs): Likewise.
10242
10243 2000-08-08 David Edelsohn <edelsohn@gnu.org>
10244
10245 * rs6000.c (optimization_options): Decorate 'level' as
10246 ATTRIBUTE_UNUSED.
10247 (mask64_operand): Remove sign-extend thinko.
10248 (rldic_operand): New function.
10249 (load_multiple_operation): regno's are unsigned ints.
10250 (store_multiple_operation): Likewise.
10251 (lmw_operation): Likewise.
10252 (stmw_operation): Likewise.
10253 (includes_lshift_p): shift_mask is unsigned int.
10254 (includes_lshift64_p): New function.
10255 (addrs_ok_for_quad_peep): unsigned int reg1.
10256 (print_operand): Consistently add "else" after
10257 output_operand_lossage().
10258 (print_operand, case 'b'): Fold in case 'W'.
10259 (print_operand, case 'W'): Print rldic MB value.
10260 (output_epilogue): Update Objective-C language string.
10261 (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
10262 * rs6000.h (PREDICATE_CODES): Add rldic_operand.
10263 * rs6000.md (ashldi3): Add rldic instruction.
10264 (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
10265 (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
10266 modifier.
10267
10268 2000-08-08 Richard Henderson <rth@cygnus.com>
10269
10270 * config/ia64/ia64-protos.h: Remove duplicates. Update
10271 for massive code rearrangements.
10272 * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
10273 (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
10274 (ia64_local_regs, ia64_need_regstk): Remove.
10275 (ar_ccv_reg_operand): New.
10276 (ia64_gp_save_reg): New.
10277 (struct ia64_frame_info): Combine most of the size elements;
10278 add new gr save elements.
10279 (find_gr_spill): New.
10280 (next_scratch_gr_reg): New.
10281 (mark_reg_gr_used_mask): New.
10282 (ia64_compute_frame_size): Rewrite. Allocate special AR regs
10283 to GR backing store regs when possible.
10284 (ia64_initial_elimination_offset): New.
10285 (ia64_rap_fp_offset): Remove.
10286 (save_restore_insns): Remove.
10287 (setup_spill_pointers): New.
10288 (finish_spill_pointers): New.
10289 (spill_restore_mem): New.
10290 (do_spill, do_restore): New.
10291 (ia64_expand_prologue): Rewrite to use them.
10292 (ia64_expand_epilogue): Likewise.
10293 (ia64_direct_return): Update for current_frame_info changes.
10294 (ia64_function_prologue): Simplify .prologue emission. Emit
10295 .spill when needed.
10296 (ia64_setup_incoming_varargs): Don't ever emit rtl.
10297 (ia64_dbx_register_number): New.
10298 (ia64_initialize_trampoline): New.
10299 (ia64_secondary_reload_class): Request GR_REGS for integer
10300 arithmetic destined for FR_REGS.
10301 (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
10302 (ia64_mark_machine_status): Mark ia64_gp_save.
10303 (rws_access_regno): Rename from rws_access_reg; don't treat
10304 predicates specially.
10305 (rws_access_reg): New. Update all callers.
10306 (rtx_needs_barrier): Remove dead unspecs.
10307 (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
10308 (ia64_encode_section_info): Silence signed/unsigned warnings.
10309 (spill_offset, sp_offset, spill_offset_emitted): Remove.
10310 (tmp_reg, tmp_saved): Remove.
10311 (process_set): Rewrite to expect complicated bits via
10312 REG_FRAME_RELATED_EXPR.
10313 (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
10314 in the use of ar.ccv; never set RTX_UNCHANGING_P.
10315 (ia64_expand_op_and_fetch): Likewise.
10316 (ia64_expand_compare_and_swap): Likewise.
10317 (ia64_expand_builtin): Likewise.
10318 * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
10319 (FIRST_PSEUDO_REGISTER): Update.
10320 (AR_M_REGNO_P): Update.
10321 (FIXED_REGS): Don't mark three local registers as used.
10322 (EXTRA_CC_MODES): New.
10323 (SELECT_CC_MODE): New.
10324 (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
10325 (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
10326 (FRAME_GROWS_DOWNWARD): Unset.
10327 (STARTING_FRAME_OFFSET): Zero.
10328 (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
10329 (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
10330 (HARD_FRAME_POINTER_REGNUM): New.
10331 (CAN_DEBUG_WITHOUT_FP): Define.
10332 (TRAMPOLINE_TEMPLATE): Remove.
10333 (TRAMPOLINE_SIZE): Lower to 32.
10334 (TRAMPOLINE_ALIGNMENT): Lower to 64.
10335 (INITIALIZE_TRAMPOLINE): Defer to out of line function.
10336 (PREDICATE_CODES): Update.
10337 (struct machine_function): Add ia64_gp_save.
10338 * config/ia64/ia64.md: Purge unused unspecs.
10339 (movsi patterns): Allow moves to/from AR_M_REGS.
10340 (movdi patterns): Allow moves to/from p0.
10341 (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
10342 (gr_spill, gr_restore): Indicate ar.unat read/written.
10343 (nonlocal_goto): Don't pass old frame_pointer.
10344 (nonlocal_goto_receiver): Remove.
10345 (exception_receiver): New.
10346 (builtin_setjmp_setup): New.
10347 (builtin_setjmp_receiver): New.
10348 * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
10349 (__ia64_nonlocal_goto): Bundle. Don't kill r7.
10350 (__ia64_restore_stack_nonlocal): Likewise.
10351 (__ia64_trampoline): New.
10352 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
10353 function.
10354 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
10355
10356 2000-08-08 Richard Henderson <rth@cygnus.com>
10357
10358 * frame.h (ia64_frame_state): Add my_psp.
10359 * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
10360 (__throw): Pass it in. Don't clobber r7.
10361 * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
10362 (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
10363 and nothing to do with sp.
10364 (normalize_reg_loc): Use frame->my_psp.
10365 (frame_translate): Handle frame-pointer-less functions. Set
10366 spill_base correctly, in absence of being told.
10367 (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp.
10368 (__ia64_backtrace_helper): New sp argument. Use
10369 builtin_return_address instead of label addresses.
10370 (print_record) [mem_stack_v]: No size member.
10371
10372 2000-08-08 Richard Henderson <rth@cygnus.com>
10373
10374 * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
10375
10376 2000-08-08 Richard Henderson <rth@cygnus.com>
10377
10378 * tm.texi (LOCAL_REGNO): Document.
10379 * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
10380 (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
10381 * reload1.c (reload): Likewise when considering nonlocal labels.
10382
10383 * config/ia64/ia64.h (LOCAL_REGNO): New.
10384 * config/sparc/sparc.h (LOCAL_REGNO): New.
10385
10386 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
10387
10388 * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
10389
10390 2000-08-07 Nick Clifton <nickc@redhat.com>
10391
10392 * config/mips/mips.c: Fix compile time warning messages.
10393 * config/mips/mips-protos.h: Add prototype for equality_op.
10394
10395 * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
10396
10397 2000-08-07 Graham Stott <grahams@cygnus.co.uk>
10398
10399 * mn10300.md: Use nonimmediate_operand instead of general_operand
10400 on output operands.
10401
10402 * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
10403
10404 2000-08-07 Alexandre Oliva <aoliva@redhat.com>
10405
10406 * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
10407 * sh.c (expand_block_move): Break long lines.
10408 (expand_ashiftrt, fpscr_set_from_mem): Likewise.
10409 * sh.md (mulsi3): Likewise.
10410 (movdi): Adjust spacing.
10411
10412 2000-08-07 Richard Henderson <rth@cygnus.com>
10413
10414 * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
10415 * expr.c (emit_group_store): Don't set it.
10416
10417 2000-08-07 Kazu Hirata <kazu@hxi.com>
10418
10419 * invoke.texi (Options for Debugging Your Program or GCC): Remove
10420 duplicate entries for 'w' and 'z'.
10421
10422 * flow.c: Fix a comment typo.
10423
10424 Sun Aug 6 23:47:35 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10425
10426 * c-parse.in: Changed the language string for Objective-C to "GNU
10427 Objective-C".
10428
10429 Sun Aug 6 11:54:03 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10430
10431 * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
10432 to improve the Posix thread support for Objective-C.
10433
10434 2000-08-06 Joseph S. Myers <jsm28@cam.ac.uk>
10435
10436 * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
10437 CTI_UNSIGNED_PTRDIFF_TYPE.
10438 (signed_size_type_node): Define.
10439 (unsigned_ptrdiff_type_node): Define.
10440 * c-decl.c (init_decl_processing): Create the
10441 signed_size_type_node and unsigned_ptrdiff_type_node types.
10442 * c-common.c (T_SC): Define.
10443 (T_SST): Define.
10444 (T_UPD): Define.
10445 (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for
10446 %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for
10447 %s and %p.
10448 (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for
10449 %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the
10450 flags for %c, %s and %[.
10451 (check_format_info): Only allow leniency for signedness of targets
10452 of character pointers (when pedantic) for formats flagged with
10453 "c", so for strings but not for %hh formats. When pedantic, don't
10454 allow character pointers to substitute for void pointers if a
10455 second level of indirection is present.
10456
10457 2000-08-06 Kazu Hirata <kazu@hxi.com>
10458
10459 * invoke.texi (Options for Debugging Your Program or GCC): Update
10460 the names of dump files.
10461
10462 * h8300.c (dosize): Rearrange code for conciseness.
10463 (split_adds_subs): Likewise.
10464
10465 * loop.c: Fix formatting.
10466
10467 * dwarf2out.c: Fix formatting.
10468
10469 * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
10470
10471 * expr.c: Fix formatting.
10472
10473 2000-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10474
10475 * rs6000.c (rs6000_maybe_dead): Prototype.
10476
10477 2000-08-06 Richard Henderson <rth@cygnus.com>
10478
10479 * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
10480 HAVE_nonlocal_goto as well.
10481 * config/i960/i960.md (nonlocal_goto): Don't do it here.
10482 * config/pj/pj.md (nonlocal_goto): Likewise.
10483
10484 2000-08-07 Michael Hayes <mhayes@cygnus.com>
10485
10486 * loop.c (try_swap_copy_prop): New function.
10487 (load_mems): Rename copies to load_copies and add new regset
10488 store_copies. Check for sets of shadow registers and mark
10489 in store_copies. Call try_swap_copy_prop for registers
10490 marked in store_copies.
10491
10492 Sun Aug 6 00:54:42 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10493
10494 * objc/objc-act.c: New command line option -fconstant-string-class
10495 to allow specifying a user defined constant string class,
10496 different from NXConstantString.
10497
10498 * toplev.c: Moved the Objective-C specific options to
10499 objc/lang-options.h.
10500
10501 * objc/lang-options.h: Moved the Objective-C specific options from
10502 toplev.c. Added -fconstant-string-class.
10503
10504 2000-08-05 Chris Demetriou <cgd@sibyte.com>
10505
10506 * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
10507 DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
10508 __CTOR_LIST__ from func_ptr array to just func_ptr, to
10509 avoid extra alignment imposed on arrays.
10510 * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
10511 DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
10512
10513 * mips.h: Clean up comments and spacing near MASKs.
10514 (TARGET_UNIX_ASM): Delete.
10515 (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
10516 MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
10517 values contiguous.
10518
10519 2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk>
10520
10521 * c-common.c (print_char_table): Add entries for the X/Open '
10522 format flag (print decimals with locale's thousands grouping
10523 character). Make %C expect wint_t.
10524 (check_format_info): If pedantic, warn when the %n$ operand
10525 number form is used. Allow for the ' flag; warn about it if
10526 pedantic.
10527
10528 2000-08-05 Zack Weinberg <zack@wolery.cumb.org>
10529
10530 * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return
10531 type is a float mode, cfun->decl's return type is not, and
10532 TARGET_FLOAT_RETURNS_IN_80387.
10533
10534 2000-08-04 Andreas Schwab <schwab@suse.de>
10535
10536 * cppmain.c (cb_def_pragma): Skip the first two tokens from the
10537 token list, which are always `#' and `pragma'.
10538
10539 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
10540
10541 * tree.c (tree_expr_nonnegative_p): Move to...
10542 * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR.
10543 (rtl_expr_nonnegative_p): New.
10544 * tree.h: Add prototype for rtl_expr_nonnegative_p.
10545
10546 * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
10547 CONST_DOUBLE_CHAIN: Move to...
10548 * rtl.h: ...here. Use XCINT/XCEXP.
10549
10550 * Makefile.in: Remove toplev.o from OBJS. Add rule to make
10551 libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND
10552 variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND
10553 to VOL_FILES.
10554
10555 * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
10556
10557 2000-08-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10558
10559 * config/c4x/c4x.md (return_indirect_internal): New.
10560 * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
10561
10562 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10563
10564 * c-common.c (time_char_table): Mark up formats added in C99 and
10565 make other corrections. %D and %g were added in C99. %Og is an
10566 extension. %EX is permitted. %R, %T, %n, %r, %t were added in
10567 C99. %e was added in C99. %Oj is an extension. %G and %z are in
10568 C99 rather than GNU extensions, but %OG and %Oz are extensions.
10569 %h was added in C99. %C was added in C99. %OY and %OC are
10570 extensions. Add the C99 format %F.
10571 (check_format_info): If pedantic and not in C99 mode, warn for C99
10572 formats, %E and %O.
10573
10574 Fri Aug 4 23:01:58 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10575
10576 * function.c (schedule_fixup_var_refs): New function, broken out
10577 of put_reg_into_stack.
10578 (put_reg_into_stack): Use it.
10579 (put_var_into_stack): In CONCAT case, fixup up references for
10580 components only after fixing up references to the whole concat.
10581
10582 2000-08-04 Rodney Brown <RodneyBrown@pmsc.com>
10583
10584 * alias.c (mark_constant_function): Use INSN_P.
10585 (init_alias_analysis): Likewise.
10586 * combine.c (combine_instructions): Use INSN_P.
10587 (can_combine_p): Likewise.
10588 (try_combine): Likewise.
10589 (distribute_notes): Likewise.
10590 (distribute_links): Likewise.
10591 * cse.c (cse_around_loop): Use INSN_P.
10592 (invalidate_skipped_block): Likewise.
10593 (cse_set_around_loop): Likewise.
10594 (cse_end_of_basic_block): Likewise.
10595 (delete_trivially_dead_insns): Likewise.
10596 * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
10597 (unshare_all_rtl_1): Likewise.
10598 (next_cc0_user): Likewise.
10599 (try_split make_insn_raw): Likewise.
10600 (remove_unnecessary_notes): Likewise.
10601 * final.c (shorten_branches): Use INSN_P.
10602 (leaf_renumber_regs): Likewise.
10603 (leaf_renumber_regs_insn): Likewise.
10604 * flow.c (find_label_refs): Use INSN_P.
10605 (verify_wide_reg): Likewise.
10606 (notice_stack_pointer_modification): Likewise.
10607 (count_or_remove_death_notes): Likewise.
10608 (verify_flow_info): Likewise.
10609 (clear_log_links): Likewise.
10610 * function.c (fixup_var_refs_insns): Use INSN_P.
10611 (compute_insns_for_mem): Likewise.
10612 * gcse.c (alloc_gcse_mem): Use INSN_P.
10613 (compute_sets): Likewise.
10614 (compute_hash_table): Likewise.
10615 (classic_gcse): Likewise.
10616 (cprop): Likewise.
10617 (insert_insn_end_bb): Likewise.
10618 (delete_null_pointer_checks_1): Likewise.
10619 * global.c (expand_preferences): Use INSN_P.
10620 (build_insn_chain): Likewise.
10621 * graph.c (node_data): Use INSN_P.
10622 * haifa-sched.c (priority): Use INSN_P.
10623 (rm_line_notes): Likewise.
10624 (rm_other_notes): Likewise.
10625 (find_insn_reg_weight): Likewise.
10626 (init_target_units): Likewise.
10627 (schedule_block): Likewise.
10628 (compute_block_forward_dependences): Likewise.
10629 (debug_dependencies): Likewise.
10630 (set_priorities): Likewise.
10631 * integrate.c (function_cannot_inline_p): Use INSN_P.
10632 (save_parm_insns): Likewise.
10633 (copy_insn_list): Likewise.
10634 * jump.c (mark_all_labels): Use INSN_P.
10635 (never_reached_warning): Likewise.
10636 * lcm.c (optimize_mode_switching): Use INSN_P.
10637 * local-alloc.c (validate_equiv_mem): Use INSN_P.
10638 (memref_used_between_p): Likewise.
10639 (update_equiv_regs): Likewise.
10640 (block_alloc): Likewise.
10641 (no_conflict_p): Likewise.
10642 * loop.c (scan_loop): Use INSN_P.
10643 (find_and_verify_loops): Likewise.
10644 (count_loop_regs_set): Likewise.
10645 (loop_reg_used_before_p): Likewise.
10646 (strength_reduce): Likewise.
10647 (recombine_givs): Likewise.
10648 (check_dbra_loop): Likewise.
10649 (load_mems): Likewise.
10650 (try_copy_prop): Likewise.
10651 * print-rtl.c (print_rtx): Use INSN_P.
10652 * recog.c (find_single_use): Use INSN_P.
10653 * reg-stack.c (stack_regs_mentioned): Use INSN_P.
10654 (next_flags_user): Likewise.
10655 (swap_rtx_condition): Likewise.
10656 * regmove.c (mark_flags_life_zones): Use INSN_P.
10657 (optimize_reg_copy_1): Likewise.
10658 (optimize_reg_copy_2): Likewise.
10659 (optimize_reg_copy_3): Likewise.
10660 (reg_is_remote_constant_p): Likewise.
10661 (fixup_match_2): Likewise.
10662 (regmove_optimize): Likewise.
10663 (fixup_match_1): Likewise.
10664 * regrename.c (build_def_use): Use INSN_P.
10665 (replace_reg_in_block): Likewise.
10666 (consider_use): Likewise.
10667 * reload.c (find_equiv_reg): Use INSN_P.
10668 * reload1.c (reload): Use INSN_P.
10669 (maybe_fix_stack_asms): Likewise.
10670 (calculate_needs_all_insns): Likewise.
10671 (reload_as_needed): Likewise.
10672 (emit_output_reload_insns): Likewise.
10673 (delete_address_reloads_1): Likewise.
10674 (reload_cse_regs_1): Likewise.
10675 (reload_combine): Likewise.
10676 (reload_cse_move2add): Likewise.
10677 * reorg.c (redundant_insn): Use INSN_P.
10678 (dbr_schedule): Likewise.
10679 * resource.c (find_dead_or_set_registers): Use INSN_P.
10680 (mark_target_live_regs): Likewise.
10681 * rtlanal.c (reg_used_between_p): Use INSN_P.
10682 (reg_referenced_between_p): Likewise.
10683 (reg_set_between_p): Likewise.
10684 (reg_set_p): Likewise.
10685 (single_set): Likewise.
10686 (multiple_sets): Likewise.
10687 (find_last_value): Likewise.
10688 (reg_set_last): Likewise.
10689 (find_reg_note): Likewise.
10690 (find_regno_note): Likewise.
10691 * sibcall.c (sequence_uses_addressof): Use INSN_P.
10692 * simplify-rtx.c (cselib_process_insn): Use INSN_P.
10693 * ssa.c (find_evaluations): Use INSN_P.
10694 (rename_block): Likewise.
10695 (rename_equivalent_regs): Likewise.
10696 * unroll.c (loop_find_equiv_value): Use INSN_P.
10697 (set_dominates_use): Likewise.
10698 * varasm.c (mark_constant_pool): Use INSN_P.
10699 (mark_constants): Likewise.
10700 * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
10701 (alphaev4_next_group): Likewise.
10702 (alphaev5_next_group): Likewise.
10703 * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
10704 (c4x_rptb_rpts_p): Likewise.
10705 * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
10706 * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
10707 (rs6000_adjust_priority): Likewise.
10708 * config/sh/sh.c (sh_loop_align): Use INSN_P.
10709 (machine_dependent_reorg): Likewise.
10710 (split_branches): Likewise.
10711 * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
10712
10713 Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com)
10714
10715 * combine.c (recog_for_combine): Remove the old notes
10716 prior to attempting to recognize the new pattern.
10717 (distribute_notes): Ignore REG_NONNEG notes.
10718
10719 2000-08-04 Chandrakala Chavva <cchavva@redhat.com>
10720
10721 * varasm.c (output_constructor): Add .align 0 for packed vars.
10722
10723 2000-08-04 J. David Anglin <dave@hiauly1.hia.nrc.ca>
10724
10725 * configure.in: Use default thread_file even when enable_threads is
10726 yes or dce because hpux10.20 pa port uses MULTILIB implementation.
10727 * configure: Rebuilt.
10728
10729 * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
10730
10731 2000-08-04 Donn Terry (donnte@microsoft.com)
10732
10733 * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
10734
10735 2000-08-04 Mark Elbrecht <snowball3@bigfoot.com>
10736
10737 * i386/x-djgpp: Delete code that conditionally modifies target_alias.
10738 Delete code that conditionally modifies 'version'.
10739 Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
10740 * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
10741 * gcc.c (main): Use it.
10742 * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
10743 * prefix.c (update_path): Use it.
10744 * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
10745 (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
10746 (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
10747 code.
10748 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
10749 (SUBTARGET_SWITCHES): Adjust.
10750 (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
10751 defining.
10752 (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
10753
10754 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10755
10756 * c-common.h (flag_isoc94): Declare.
10757 * c-decl.c (flag_isoc94): Define.
10758 (c_decode_option): Set flag_isoc94 as appropriate.
10759 * c-common.c (T_PD, T_IM, T_UIM): Define.
10760 (format_char_info): Add tlen and jlen.
10761 (print_char_table): Add entries for %t and %j. Allow %zn. Allow
10762 %F. Allow %lf.
10763 (scan_char_table): Add entries for %t and %j. Allow %F. Allow
10764 %l[.
10765 (time_char_table): Add NULL entries for %t and %j.
10766 (check_format_info): Allow for %t and %j. Warn for %F if pedantic
10767 and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94.
10768 Warn for printf %lf if pedantic and not C99. Don't warn for empty
10769 precision. Allow precision argument to be unsigned int. If
10770 pedantic, warn for %p passed an argument not a pointer to possibly
10771 qualified void or a possibly qualified character type, and for
10772 pointer targets of the wrong sign, except for character pointers.
10773
10774 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10775
10776 * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
10777 * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
10778 (wint_type_node): Define.
10779 * c-decl.c (WINT_TYPE): Define.
10780 (init_decl_processing): Create the wint_type_node type.
10781 * c-common.c (T_WI): Define.
10782 (print_char_table): Use T_WI for %lc format.
10783
10784 2000-08-04 Bruce Korb <bkorb@gnu.org>
10785
10786 * fixinc/: Verified that the MSDOS patch does not break
10787 the UNIX functionality and applied the next three patches
10788 from July:
10789
10790 2000-07-28 Eli Zaretskii <eliz@is.elta.co.il>
10791
10792 * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
10793 output file with the temporary one by appending ".X" to generate
10794 the temporary fuile's name. If the output file already has an
10795 extension, replace it with ".X".
10796
10797 * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
10798 not $DESTDIR, to find applyfix. Use sprintf instead of snprintf;
10799 reallocate the command buffer while copying the command-line
10800 argument. Redirect the output directly to the temporary file,
10801 instead of going through another temporary file.
10802 (process): Close the temporary file before unlinking it.
10803 (machine_matches) [__MSDOS__]: If the machine doesn't match, set
10804 the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag.
10805 (run_compiles): Pass p_fixd argument to machine_matches, as it
10806 expects.
10807
10808 * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the
10809 environment, assume there are no symlinks in the include
10810 directory. When cleaning up the DONE files, look for them
10811 case-insensitively. Don't try to remove symlinks if they aren't
10812 there.
10813
10814 * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
10815 all callers changed. Declare pz "const char *", to avoid compiler
10816 warnings.
10817
10818 * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
10819 Change prototype of make_raw_shell_str.
10820
10821 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
10822
10823 * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
10824 (initialize) [__MSDOS__]: Use tempnam.
10825 (initialize): Don't use SIGPIPE if it is not defined.
10826
10827 * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
10828 return stdout.
10829
10830 2000-07-25 Bruce Korb <bkorb@gnu.org>
10831
10832 * fixinc/fix*.[ch]: substantially reworked to make it possible
10833 to run this program without using fork(2) or pipe(2) (i.e. in
10834 a DOS environment).
10835
10836 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10837
10838 * cppdefault.h (WINT_TYPE): Define.
10839 * cppinit.c (builtin_array): Define __WINT_TYPE__.
10840 * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
10841 * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
10842
10843 Fri Aug 4 06:53:46 2000 Clinton Popetz <cpopetz@cygnus.com>
10844
10845 * (mips_legitimate_address_p): Don't allow register+offset
10846 if the offset is large and negative, and we are compiling
10847 for 64 bit registers.
10848
10849 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10850
10851 * gencodes.c (main): Define CODE_FOR_nothing as the last possible
10852 insn_code_number + 1.
10853
10854 2000-08-04 Kazu Hirata <kazu@hxi.com>
10855
10856 * h8300.c (function_prologue): Rearrange code for conciseness.
10857 (function_epilogue): Likewise.
10858 * h8300.h (OK_FOR_U): Fix formatting.
10859
10860 * cse.c: Fix a comment typo. Fix formatting.
10861
10862 2000-08-03 Richard Henderson <rth@cygnus.com>
10863
10864 * config/i386/i386.md (return_indirect_internal): New.
10865 * config/i386/i386.c (ix86_expand_epilogue): Use it.
10866
10867 2000-08-03 Zack Weinberg <zack@wolery.cumb.org>
10868
10869 * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
10870 before the name.
10871 (lex_line): Glue @ onto the beginning of identifiers and
10872 string constants, in Objective-C mode.
10873 (output_token, spell_token): Handle CPP_OSTRING.
10874 (can_paste, maybe_paste_with_next): Handle pasting @ onto the
10875 beginning of a NAME or a STRING, in objc mode.
10876
10877 * cpplib.c (get_define_node): Do not permit identifiers that
10878 begin with @ to be #defined.
10879 * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
10880 * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
10881
10882 * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
10883 * c-tree.h (build_objc_string): Delete prototype.
10884 * objc/objc-tree.def: Delete OBJC_STRING_CST.
10885 * c-lex.c (yylex): Use build_string for all three kinds of strings.
10886
10887 * c-parse.in, objc/objc-act.c: Update commentary.
10888
10889 2000-08-03 Mark Mitchell <mark@codesourcery.com>
10890
10891 * extend.texi: Fix typo in last change.
10892
10893 * extend.texi: Add commentary on statement-expressions and their
10894 interactions with C++.
10895
10896 2000-08-03 Nick Clifton <nickc@cygnus.com>
10897
10898 * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
10899 * dwarf.h (LANG_JAVA): Change value to 0x000b.
10900
10901 2000-08-03 Anthony Green <green@cygnus.com>
10902
10903 * dwarf2out.c (gen_compile_unit_die): Add java language support.
10904 (add_bound_info): Check for java language.
10905 (is_java): New function.
10906 * dwarfout.c (output_compile_unit_die): Ditto.
10907 * dwarf.h (dwarf_source_language): Add java source language type.
10908 * dwarf2.h (dwarf_source_language): Ditto.
10909
10910 Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
10911
10912 * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap
10913 operands.
10914
10915 * i386.c (ix86_expand_branch): Mode of comparison in
10916 IF_THEN_ELSE is VOIDmode.
10917
10918 Thu Aug 3 10:05:53 2000 Akiko Matsushita <matusita@sra.co.jp>
10919
10920 * gengenrtl.c, rtl.c: Avoid #elif.
10921
10922 2000-08-03 Michael Poole <poole@troilus.org>
10923
10924 * tm.texi (Register Classes): Clarify order of sub-initializers
10925 in REG_CLASS_CONTENTS.
10926
10927 Thu Aug 3 15:53:03 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10928
10929 From SAITOH Masanobu:
10930 * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
10931
10932 2000-08-03 David Billinghurst <David.Billinghurst@riotinto.com.au>
10933
10934 * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
10935 is not supported by tradcpp and isn't actually needed for cygwin.
10936
10937 2000-08-03 Kazu Hirata <kazu@hxi.com>
10938
10939 * h8300.c: Fix a comment typo.
10940 * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
10941
10942 * jump.c: Fix formatting.
10943
10944 * toplev.c: Fix formatting.
10945
10946 Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com)
10947
10948 * flow.c (find_auto_inc): Verify that we've got a REG before
10949 peeking at its regno. Fail, don't abort if we can't find
10950 the increment of the desired register.
10951
10952 * pa.md (shadd height reduction patterns/splitters): Remove.
10953
10954 2000-08-02 Jim Wilson <wilson@cygnus.com>
10955
10956 * config/ia64/ia64-protos.h (flag_ssa): Declare.
10957 * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
10958
10959 2000-08-02 Mark Mitchell <mark@codesourcery.com>
10960
10961 * dce.c: Remove all uses of assert.
10962 * dwarf2out.c: Likewise.
10963 * dwarfout.c: Likewise.
10964 * ssa.c: Likewise.
10965
10966 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
10967
10968 * gcc.h (lang_specific_driver): Constify second argument.
10969 * gcc.c (translate_options, process_command, main): Likewise.
10970 Constify variables to match. Cast second argument to
10971 pexecute.
10972
10973 * cppspec.c, gccspec.c: Adjust type of second argument to
10974 lang_specific_driver, and update code as necessary.
10975
10976 2000-08-02 Jakub Jelinek <jakub@redhat.com>
10977
10978 * loop.c (scan_loop): Ensure update_end label does not
10979 go away until reg_scan_update is run.
10980
10981 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
10982
10983 * c-common.h: Prototype min_precision and c_build_qualified_type here...
10984 * c-tree.h: ... not here.
10985 * errors.h: Prototype fancy_abort.
10986
10987 * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
10988 HOST_BITS_PER_WIDE_INT == 64 ifdef block.
10989 * regrename.c (regrename_optimize): Make control flow explicit.
10990 (replace_reg_in_block): Initialize reg_use to 0.
10991
10992 * i386.c (legitimate_address_p): Rename error label to
10993 report_error to avoid namespace clash.
10994
10995 2000-08-02 Kazu Hirata <kazu@hxi.com>
10996
10997 * fold-const.c: Fix formatting.
10998
10999 Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka <jh@suse.cz>
11000
11001 * i386.c (legitimate_address_p): Accept other bases than
11002 pic_offset_table_rtx for GOTOFF constructs.
11003
11004 Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
11005
11006 * i386.md (shift to lea splitter): Use const_int_operand.
11007
11008 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
11009
11010 * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
11011 cppspec.c: Do not use 'legal' or 'illegal' in error messages
11012 and comments.
11013
11014 * cppmain.c (cb_define, cb_undef): Don't generate any output
11015 if not done_initializing.
11016 * cpplex.c (maybe_paste_with_next): When the token after a ##
11017 is an omitted rest argument, only delete the token before it
11018 if that token is a comma. Do not warn about bogus token
11019 pastes for , ## rest_arg.
11020
11021 * cpp.texi: Update.
11022 * cpp.1: Regenerate.
11023
11024 2000-08-02 Fred Fish <fnf@be.com>
11025
11026 * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
11027 when user gives -p option. Add init_term_dyn.o for BeOS 5.0
11028 and later.
11029
11030 * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
11031 Be directories to search path.
11032
11033 Remove support for __declspec(dllimport) and __declspec(dllexport).
11034 This is leftover cruft from the earlier BeOS gcc port when BeOS
11035 used Microsoft's PE object file format.
11036 * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
11037 * config/i386/t-beos (winnt.o): Remove Makefile frag.
11038 * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
11039 (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
11040 (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
11041 (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
11042 (REDO_SECTION_INFO_P): Remove.
11043 (ASM_EXPORT_DECL): Remove.
11044 (ASM_DECLARE_FUNCTION_NAME): Remove.
11045 (ASM_DECLARE_OBJECT_NAME): Remove.
11046 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
11047 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
11048 (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
11049 (STRIP_NAME_ENCODING): Remove.
11050
11051 Remove support for obsolete version of BeOS that is no longer
11052 supported by Be.
11053 * configure.in (i*86-*-beospe*): Remove.
11054 * config/i386/beos-pe.h: Remove.
11055
11056 2000-08-01 Jeffrey Oldham <oldham@codesourcery.com>
11057 Mark Mitchell <mark@codesourcery.com>
11058
11059 * Makefile.in (OBJS): Added dce.o.
11060 (ssa.o): Updated target to include ssa.h.
11061 (flow.o): Likewise.
11062 (toplev.o): Likewise.
11063 (dce.o): Created target.
11064 * basic-block.h: Added comments.
11065 (INVALID_BLOCK): Added definition.
11066 (connect_infinite_loops_to_exit): Added declaration.
11067 Moved SSA declarations to ssa.h.
11068 * flow.c: Added inclusion of ssa.h.
11069 (struct depth_first_search_dsS, depth_first_search_ds):
11070 Added definitions.
11071 (compute_immediate_postdominators): Added definition.
11072 (connect_infinite_loops_to_exit): Likewise.
11073 (flow_dfs_compute_reverse_init): Likewise.
11074 (flow_dfs_compute_reverse_add_bb): Likewise.
11075 (flow_dfs_compute_reverse_execute): Likewise.
11076 (flow_dfs_compute_reverse_finish): Likewise.
11077 * rtl.h (rtx/in_struct): Added use to determine insn necessity.
11078 (LABEL_P): Added definition.
11079 (JUMP_P): Likewise.
11080 (NOTE_P): Likewise.
11081 (BARRIER_P): Likewise.
11082 (JUMP_TABLE_DATA_P): Likewise.
11083 (INSN_DEAD_CODE_P): Likewise.
11084 * ssa.c: Replaced inclusions with ssa.h inclusion.
11085 (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
11086 (rename_registers): Removed unnecessary variables.
11087 * ssa.h: Created by moving declarations from ssa.c and
11088 basic-block.h.
11089 * timevar.def: Defined TV_DEAD_CODE_ELIM.
11090 * toplev.c: Added ssa.h inclusion.
11091 (dump_file_index): Added DFI_dce.
11092 (dump_file): Added "dce" entry.
11093 Defined flag_ssa.
11094 (f_options): Added dce entry.
11095 * invoke.texi: Document -fdce. Emphasize experimental status of
11096 -fssa.
11097 * dce.c: New file.
11098
11099 2000-08-01 Zack Weinberg <zack@wolery.cumb.org>
11100
11101 * cpperror.c (v_message): Split into _cpp_begin_message and
11102 v_message macro. All callers updated.
11103 (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
11104 checks here.
11105
11106 * cppfiles.c (cpp_syshdr_flags): New function.
11107 (read_include_file): Don't call cpp_output_tokens. Call
11108 enter_file hook.
11109 * cppinit.c (dump_macros_helper): Moved to cppmain.c.
11110 (cpp_reader_init): Don't initialize token_buffer. Call
11111 _cpp_init_internal_pragmas.
11112 (cpp_cleanup): Don't clear token_buffer.
11113 (cpp_start_read): Don't worry about output from -D processing.
11114 Don't call cpp_output_tokens.
11115 (cpp_finish): Don't dump macros here. Don't call
11116 cpp_output_tokens.
11117 * cppmacro.c (_cpp_dump_definition): Rename
11118 cpp_dump_definition. Write directly to a FILE *.
11119 (dump_funlike_macro): Delete.
11120 (dump_macro_args): New.
11121
11122 * cpplex.c (TOKEN_LEN): Convert to inline function.
11123 (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
11124 cpp_scan_line, _cpp_dump_list): Delete.
11125 (cpp_printf, cpp_output_list): New.
11126 (output_line_command): Don't worry about entering or leaving files.
11127 (cpp_scan_buffer): Just output each token as we hit it.
11128 (process_directive): Don't call cpp_output_tokens.
11129 (_cpp_glue_header_name): Don't use token_buffer.
11130 (output_token, dump_param_spelling): Write directly to a FILE *.
11131
11132 * cpplib.c (pass_thru_directive, dump_macro_name,
11133 pragma_dispatch, do_pragma_gcc): Delete.
11134 (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
11135 do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
11136 functions.
11137 (do_error, do_warning, pragma_dependency): Call
11138 _cpp_begin_message, then cpp_output_list.
11139 (cpp_register_pragma, cpp_register_pragma_space,
11140 _cpp_init_internal_pragmas): New.
11141 (do_pragma): Walk the pragmas table here.
11142 (do_pragma_once, do_pragma_poison, do_pragma_system_header,
11143 do_pragma_dependency): Return void.
11144 (do_pragma_implementation): Moved to cppmain.c.
11145
11146 * cpplib.h: Update prototypes.
11147 (struct cpp_reader): Remove printer, token_buffer,
11148 token_buffer_size, and limit. Add struct cb, and pragmas.
11149 (struct cpp_printer): Remove last_id and written.
11150 (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
11151 CPP_ADJUST_WRITTEN): Delete.
11152 * cpphash.h: Update prototypes.
11153 (ufputs): New wrapper.
11154
11155 * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
11156 cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
11157 (main): Set up callbacks. Register #pragma implementation.
11158 Dump macros from here.
11159
11160 2000-08-01 Geoff Keating <geoffk@cygnus.com>
11161
11162 * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
11163 * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
11164 * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
11165 insns if they have a REG_MAYBE_DEAD note attached.
11166 * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
11167 (rs6000_emit_load_toc_table): TOC loads may go dead.
11168
11169 2000-08-01 Jim Wilson <wilson@cygnus.com>
11170
11171 * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify
11172 type exists before using it. Use number of words as alignment
11173 otherwise.
11174 (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
11175 ia64_va_arg): Propagate ia64_function_args changes here.
11176
11177 2000-08-01 Richard Henderson <rth@cygnus.com>
11178
11179 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
11180 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
11181
11182 2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk>
11183
11184 From Joern Rennecke:
11185 * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
11186 * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
11187 unless TARGET_SH3E is set.
11188 * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
11189
11190 * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
11191 (ashlsi3_std): New pattern.
11192 (ashlsi3 expander): Use it for TARGET_SH3.
11193 * sh.c (gen_ashift): Use it instead of ashlsi3_k.
11194
11195 Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
11196
11197 * loop.c (canonicalize_condition): Use destination, not source to
11198 determine SET's mode.
11199
11200 2000-07-31 Mark Mitchell <mark@codesourcery.com>
11201
11202 * flow.c (clear_log_links): Fix typo.
11203
11204 Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com)
11205
11206 * loop.c (check_dbra_loop): Make change from July 17, 2000 work
11207 on targets which need more than one insn for a compare/cbranch
11208 operation.
11209
11210 2000-07-31 Jim Wilson <wilson@cygnus.com>
11211
11212 * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
11213 when computing offset.
11214
11215 Mon Jul 31 20:35:50 2000 Denis Chertykov <denisc@overta.ru>
11216
11217 * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
11218
11219 2000-07-31 Geoff Keating <geoffk@cygnus.com>
11220
11221 * flow.c (clear_log_links): Nuke global_live_at_start and
11222 global_live_at_end data, since if the log_links stuff is invalid
11223 so is global_live_at_*.
11224
11225 2000-07-31 Richard Henderson <rth@cygnus.com>
11226
11227 * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
11228
11229 2000-07-31 Jakub Jelinek <jakub@redhat.com>
11230
11231 * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
11232 (_cpp_get_token): Don't macro expand a just pasted token if it
11233 was pasted at no_expand_level.
11234
11235 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
11236
11237 * cppmacro.c (find_param, count_params, save_expansion):
11238 Permit 'defined' as a macro parameter name.
11239
11240 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
11241
11242 * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
11243 xcpp to cpp throughout.
11244 (native): Remove unnecessary dependency on cpp.
11245
11246 * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
11247 tradcpp to tradcpp0.
11248 (.i spec): Add missing output-file spec to cc1 command line.
11249 * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
11250
11251 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
11252
11253 * c-decl.c (mesg_implicit_function_declaration): Init to -1.
11254 (implicit_decl_warning): New function.
11255 (implicitly_declare): Use it.
11256 * c-typeck.c (build_external_ref): Use implicit_decl_warning
11257 to complain about implicit decls of builtins.
11258
11259 * c-lang.c (lang_init): Set mesg_implicit_function_declaration
11260 based on pedantic && flag_isoc99, if not already set.
11261 * c-tree.h: Declare mesg_implicit_function_declaration.
11262 Prototype implicit_decl_warning.
11263
11264 2000-07-30 Jeffrey D. Oldham <oldham@codesourcery.com>
11265
11266 * Makefile.in (ssa.o): Updated header files in dependences.
11267 * basic-block.h: Added compute_immediate_postdominators declaration.
11268 * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
11269 definition.
11270 * flow.c (compute_immediate_dominators): Updated comment.
11271 (compute_immediate_postdominators): Added definition.
11272 * rtl.h (HARD_REGISTER_P): Added definition.
11273 * ssa.c: Include additional header files.
11274 (assert): Added definition.
11275 (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
11276 include select hard registers.
11277 (ssa_rename_to_insert): Likewise.
11278 (ssa_rename_from_initialize): Likewise.
11279 (ssa_rename_from_lookup): Likewise.
11280 (original_register): Likewise.
11281 (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
11282 include select hard reigsters.
11283 (ssa_rename_from_traverse): Likewise.
11284 (ssa_rename_from_free): Likewise.
11285 (ssa_rename_from_print): Likewise.
11286 (ssa_rename_from_print_1): Likewise.
11287 (ssa_rename_from_hash_function): Likewise.
11288 (ssa_rename_from_equal): Likewise.
11289 (ssa_rename_from_delete): Likewise.
11290 (simplify_to_immediate_dominators): Removed in favor of
11291 flow.c:compute_immediate_dominators.
11292 (find_evaluations_1): Modified to work with hard registers.
11293 (insert_phi_node): Likewise.
11294 (insert_phi_nodes): Likewise.
11295 (struct rename_set_data): Updated prev_reg comment.
11296 (create_delayed_rename): Modified to work with hard registers.
11297 (RENAME_NO_RTX): Updated comment.
11298 (apply_delayed_renames): Modified to work with hard registers.
11299 (rename_insn_1): Likewise and added handling of CLOBBER rtls.
11300 (rename_block): Updated to use revised ssa_rename_to interface.
11301 (rename_registers): Updated to use revised ssa_rename_to and
11302 ssa_rename_from interface.
11303 (convert_to_ssa): Revised to use compute_immediate_dominators and
11304 deal with hard registers.
11305 (make_regs_equivalent_over_bad_edges): Modified to work with hard
11306 registers. Added check for illegal unification of hard register.
11307 (make_equivalent_phi_alternatives_equivalent): Modified to work
11308 with hard registers.
11309 (compute_conservative_reg_partition): Likewise.
11310 (coalesce_if_unconflicting): Modified to work with hard registers
11311 and check for conflicting hard registers.
11312 (mark_phi_and_copy_regs): Revised loop to work only on pseudo
11313 registers.
11314 (rename_equivalent_regs_in_insn): Modified to work with hard
11315 registers.
11316 (record_canonical_element_1): Added definition.
11317 (check_hard_regs_in_partition): Added definition.
11318 (convert_from_ssa): Added data structure deallocation and check
11319 for illegal hard register unification.
11320 (conflict_hard_regs_p): Added definition.
11321 * toplev.c (rest_of_compilation): Added comment.
11322
11323 2000-07-31 Anthony Green <green@redhat.com>
11324
11325 * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
11326
11327 2000-07-31 Jason McMullan <jmcmullan@linuxcare.com>
11328
11329 * builtins.c (expand_builtin_apply): Don't defer pop during
11330 argument setup.
11331
11332 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11333
11334 * calls.c (combine_pending_stack_adjustment_and_call): Only use
11335 preferred_unit_stack_boundary when it is > 1.
11336
11337 2000-07-31 Joseph S. Myers <jsm28@cam.ac.uk>
11338
11339 * c-common.c (init_function_format_info): Add C99 format functions
11340 in C99 mode.
11341
11342 * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
11343 void' or 'register void' as being the special case of 'void' alone
11344 in a parameter list.
11345
11346 * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
11347 discarding qualifiers into a plain warning.
11348
11349 2000-07-31 Kazu Hirata <kazu@hxi.com>
11350
11351 * combine.c: Fix formatting.
11352
11353 * h8300.md: Fix formatting.
11354
11355 * local-alloc.c: Fix formatting.
11356
11357 * h8300.c (get_shift_alg): Remove the variable alg.
11358 (emit_a_shift): Rearrange code to improve readability.
11359
11360 * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
11361
11362 * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
11363 HImode on all architectures and a combination of HImode and SImode
11364 on H8/300H and H8/S.
11365
11366 * h8300.c (split_adds_subs): Rearrange code for conciseness.
11367
11368 Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
11369
11370 * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
11371 in my last checkin.
11372
11373 Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
11374
11375 * recog.c (extract_insn): Set operand_mode according to
11376 operand if match_operand is VOIDmode.
11377
11378 Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
11379
11380 * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
11381
11382 2000-07-31 Geoff Keating <geoffk@cygnus.com>
11383
11384 * c-parse.in (extdefs): Call ggc_collect between external
11385 definitions.
11386
11387 2000-07-30 Michael Hayes <mhayes@cygnus.com>
11388 Richard Henderson <rth@cygnus.com>
11389
11390 * Makefile.in (OBJS): Add doloop.o.
11391 * doloop.c: New file.
11392
11393 * final.c (insn_current_reference_address): Return 0 before final.
11394 * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
11395 * jump.c (any_uncondjump_p): Likewise.
11396 * loop.c (indirect_jump_in_function): Make static.
11397 (strength_reduce): Call doloop_optimize.
11398 (insert_bct, instrument_loop_bct): Remove.
11399 * loop.h (doloop_optimize): Prototype.
11400 * recog.c (split_all_insns): Split all INSN_P.
11401 * toplev.c (flag_branch_on_count_reg): Default on.
11402
11403 * config/c4x/c4x.c (c4x_optimization_options): Don't set
11404 flag_branch_on_count_reg.
11405 * config/i386/i386.c (override_options): Likewise.
11406 * config/rs6000/rs6000.c (optimization_options): Likewise.
11407
11408 * config/i386/i386.md (decrement_and_branch_on_count): Remove.
11409 (doloop_end): New.
11410 (dbra_ge): Remove, as well as all it's splitters.
11411
11412 * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
11413 (doloop_end): New.
11414
11415 * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
11416 (ia64_register_move_cost): Declare.
11417 * config/ia64/ia64.c (ar_lc_reg_operand): New.
11418 (struct ia64_frame_info): Add ar_size.
11419 (ia64_compute_frame_size): Set it.
11420 (save_restore_insns): Save and restore ar.lc.
11421 (ia64_register_move_cost): New, moved from header file. Handle
11422 application registers.
11423 (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers.
11424 (emit_insn_group_barriers): Special case doloop_end_internal.
11425 (ia64_epilogue_uses): Mark ar.lc live at end.
11426 * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
11427 (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
11428 (FIRST_PSEUDO_REGISTER): Make room.
11429 (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
11430 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
11431 (REG_ALLOC_ORDER): Update.
11432 (HARD_REGNO_MODE_OK): Update.
11433 (REGISTER_NAMES): Update.
11434 (enum reg_class): Add AR_M_REGS and AR_I_REGS.
11435 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
11436 (REGNO_REG_CLASS): Update.
11437 (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
11438 (REGISTER_MOVE_COST): Move out of line.
11439 (PREDICATE_CODES): Update.
11440 * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
11441 (addsi3_plus1_alt, adddi3_plus1_alt): New.
11442 (shladd_elim splitter): Allow constants in the predicate.
11443 (doloop_end, doloop_end_internal): New.
11444
11445 2000-07-30 Richard Henderson <rth@cygnus.com>
11446
11447 * genattrtab.c (struct insn_def): Add lineno member.
11448 (struct insn_ent): Likewise.
11449 (struct attr_desc): Likewise.
11450 (struct delay_desc): Likewise.
11451 (struct function_unit_op): Likewise.
11452 (struct function_unit): Likewise.
11453 (check_attr_value): Use message_with_line.
11454 (check_defs): Likewise.
11455 (expand_units): Likewise.
11456 (check_attr_test): Take a lineno argument.
11457 (gen_attr): Likewise.
11458 (gen_insn): Likewise.
11459 (gen_delay): Likewise.
11460 (gen_unit): Likewise.
11461 (main): Give it to them.
11462 (convert_set_attr_alternative): Take an insn_def argument
11463 instead of num_alt and insn_index.
11464 (convert_set_attr): Likewise.
11465 (write_test_expr): Protect INSN_ADDRESSES load
11466 with INSN_ADDRESSES_SET_P.
11467
11468 2000-07-30 Richard Henderson <rth@cygnus.com>
11469
11470 * flow.c (init_propagate_block_info): Use pc_set.
11471
11472 Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
11473
11474 * i386.md (*lea_general_[123]) New insns and splits.
11475 (addsi3 to lea splitter): Handle other modes too.
11476 (shlsi3 to lea splitter): Likewise.
11477 (addhi_1_lea, shlhi_1_lea): New patterns.
11478 (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
11479
11480 Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
11481
11482 * recog.c (general_operand, nonimmediate_operand): Accept
11483 any mode for VOIDmode CONSTANT_P operands.
11484
11485 Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
11486
11487 * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
11488 instead of replace_rtx.
11489 * recog.c (validate_replace_rtx_subexp): New function.
11490 * recog.h (validate_replace_rtx_subexp): Declare.
11491
11492 Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
11493
11494 * combine.c (simplify_set, make_extraction, make_compound_operation
11495 make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
11496 as force_to_mode argument.
11497
11498 Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
11499
11500 * combine.c (if_then_else_cond): Be sure that mode fits in
11501 HOST_WIDE_INT.
11502
11503 Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
11504
11505 * combine.c (record_promoted_value): Allow bitsize of mode
11506 to be equivalent to HOST_BITS_PER_WISE_INT.
11507
11508 Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
11509
11510 * function.c (assign_stack_local_1, assign_stack_temp_for_type):
11511 Do not call gen_mode_alignment when mode is BLKmode.
11512
11513 Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka <jh@suse.cz>
11514
11515 * loop.c (express_from_1): Fix call of simplify_gen_binary.
11516
11517 Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
11518
11519 * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
11520 VOIDmode implies both operands to be VOIDmode.
11521 (simplify_ternary_operation): Compute properly the mode of comparison.
11522 * combine.c (combine_simplify_rtx): Likewise.
11523
11524 2000-07-25 Michael Hayes <mph@paradise.net.nz>
11525
11526 * basic-block.h (struct loops): New field rc_order.
11527 * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
11528 (flow_loops_free): Free rc_order.
11529 (flow_depth_first_order_compute): New parameter rc_order.
11530 (flow_loops_find): Allocate rc_order and swap usage with
11531 dfs_order.
11532
11533 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11534 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11535
11536 * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
11537 (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
11538 (nodb_call, return_from_epilogue): Likewise.
11539 (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
11540 * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
11541 * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
11542 (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
11543 (c4x_valid_type_attribute_p): Likewise.
11544 * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
11545 (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
11546
11547 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11548
11549 * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
11550 and loadhi_big_constant if applicable.
11551 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
11552 and add new splitter.s
11553
11554 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11555
11556 * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
11557
11558 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11559
11560 * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
11561
11562 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11563
11564 * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
11565
11566 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11567
11568 * config/c4x/libgcc.S (divqf3): Improve accuracy.
11569
11570 2000-07-27 Mark Mitchell <mark@codesourcery.com>
11571
11572 Put phi nodes after NOTE_INSN_BASIC_BLOCK.
11573 * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
11574 * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
11575 (get_prev_bb_note): Likewise.
11576 (remove_scope_notes): Likewise.
11577 * flow.c (commit_one_edge_insertion): Likewise.
11578 (merge_blocks_nomove): Likewise.
11579 (verify_flow_info): Likewise.
11580 * gcse.c (insert_insn_end_bb): Likewise.
11581 * reg-stack.c (emit_swap_insn): Likewise.
11582 * ssa.c (first_insn_after_basic_block_note): New function.
11583 (insert_phi_node): Use it.
11584 (rename_block): Likewise.
11585 (eliminate_phi): Likewise.
11586 (make_regs_equivalent_over_bad_edges): Likewise.
11587 (make_equivalent_phi_alternatives_equivalent): Likewise.
11588 (for_each_successor_phi): Likewise.
11589 (convert_from_ssa): Modify phi-node deletion algorithm.
11590
11591 2000-07-29 Andreas Jaeger <aj@suse.de>
11592
11593 * configure.in (mips*-*-linux*): Use mips*el to check for little
11594 endian MIPS, add tmake_file.
11595
11596 * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
11597 (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
11598 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
11599
11600 2000-07-28 Richard Henderson <rth@cygnus.com>
11601
11602 * config/ia64/ia64.c (ia64_print_operand): Fix typos.
11603 Sign extend mode size before negating.
11604
11605 2000-07-28 Richard Henderson <rth@cygnus.com>
11606
11607 * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
11608
11609 2000-07-28 Bernd Schmidt <bernds@cygnus.co.uk>
11610
11611 * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
11612 (cse_insn): Likewise.
11613 (addr_affects_sp_p): Likewise.
11614 * expr.c (move_by_pieces): Likewise.
11615 (clear_by_pieces): Likewise.
11616 * gcse.c (oprs_unchanged_p): Likewise.
11617 * haifa-sched.c (sched_analyze_2): Likewise.
11618 * recog.c (offsettable_address_p): Likewise.
11619 * regclass.c (record_address_regs): Likewise.
11620 * reload.c (find_reusable_reload): Likewise.
11621 (push_reload): Likewise.
11622 (operands_match_p): Likewise.
11623 (decompose): Likewise.
11624 (find_reloads_address_1): Likewise.
11625 (find_inc_amount): Likewise.
11626 * reload1.c (elimination_effects): Likewise.
11627 * resource.c (mark_set_resources): Likewise.
11628 * flow.c (attempt_auto_inc): New function; mostly broken out
11629 of find_auto_inc.
11630 (find_auto_inc): Split into two functions and enhanced to
11631 generate POST_MODIFY.
11632 * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
11633 * rtl.h (count_all_occurrences): Declare.
11634 (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
11635 defined.
11636 * rtlanal.c (count_all_occurrences): New function.
11637 * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
11638 HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
11639
11640 * config/ia64/ia64-protos.h (destination_operand): Declare.
11641 * config/ia64/ia64.c (destination_operand): New function.
11642 (ia64_print_operand): Handle POST_MODIFY.
11643 (rtx_needs_barrier): Likewise.
11644 * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
11645 (HAVE_POST_MODIFY_REG): Define to 1.
11646 (MAX_REGS_PER_ADDRESS): Change to 2.
11647 (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
11648 (LEGITIMATE_ADDRESS_REG): New helper macro.
11649 (LEGITIMATE_ADDRESS_DISP): Likewise.
11650 (PREDICATE_CODES): Add entry for destination_operand.
11651 * config/ia64/ia64.md (all mov patterns): Use destination_operand
11652 predicate for operand 0.
11653
11654 2000-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11655
11656 * dwarf2out.c: Indent #error directive.
11657
11658 * gbl-ctors.h: Fix typo in comment.
11659 (__do_global_ctors): Prototype.
11660
11661 * gcse.c (record_one_set, pre_delete): Remove unused variables.
11662
11663 * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
11664 (print_operand): Initialize variable `t'.
11665
11666 2000-07-27 Aldy Hernandez <aldyh@redhat.com>
11667
11668 * config/arm/arm.md ("call_value"): removed constraints.
11669 Constraints are ignored in expanders.
11670 (*call_value_reg): split =rf into various constraints.
11671 (*call_value_mem): same
11672 (*call_value_symbol): same
11673 (*sibcall_value_insn): same
11674
11675 2000-07-28 Philipp Thomas <pthomas@suse.de>
11676
11677 * install.texi (--enable-nls): Change the description of the NLS
11678 related configure options to match the current state.
11679 (--with-included-gettext): Likewise.
11680 (--enable-maintainer-mode): New description added.
11681 * extend.texi (-fstrict-prototype): Add missing '.'.
11682
11683 2000-07-27 Jim Wilson <wilson@cygnus.com>
11684
11685 * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
11686 DECL_INITIAL (decl) == NULL_TREE.
11687
11688 2000-07-27 Alexandre Oliva <aoliva@redhat.com>
11689
11690 * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies
11691 on insn-attr.h with it.
11692 * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
11693 * insn-addr.h: New header.
11694 (insn_addresses_): Renamed from insn_addresses.
11695 (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
11696 INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
11697 INSN_ADDRESSES_NEW): New macros.
11698 * genattrtab.c (write_test_expr): Use new macros.
11699 * final.c (insn_addresses, init_insn_lengths): Likewise.
11700 (align_fuzz, shorten_branches): Likewise.
11701 (final): Likewise. Do not reject new insns if their addresses
11702 have been added to INSN_ADDRESSES.
11703 * config/arm/arm.c, config/avr/avr.c: Use new macros.
11704 * config/h8300/h8300.c, config/i370/i370.c: Likewise.
11705 * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
11706 * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
11707 * config/sh/sh.c: Likewise.
11708 (output_branchy_insn): Use INSN_ADDRESSES_NEW.
11709
11710 * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
11711
11712 2000-07-27 Andrew Cagney <cagney@b1.cygnus.com>
11713
11714 * gcc.c (struct prefix_list): Add member priority.
11715 (enum path_prefix_priority): Declare.
11716 (add_prefix): Replace ``first'' with ``priority''. Append new
11717 entry but keep list in priority order.
11718 (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or
11719 PREFIX_PRIORITY_LAST to add_prefix.
11720 (process_command): Move include kludge - foo/stageN - to before
11721 foo/include.
11722
11723 2000-07-27 Jason Merrill <jason@redhat.com>
11724
11725 * dwarf2out.c (gen_typedef_die): Abort if we get identical
11726 TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
11727
11728 2000-07-27 RodneyBrown <RodneyBrown@pmsc.com>
11729
11730 * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
11731 * tree.h (get_alias_set, lang_get_alias_set): Prototype.
11732
11733 2000-07-27 Joseph S. Myers <jsm28@cam.ac.uk>
11734
11735 * c-decl.c (finish_function): Don't treat 'main' specially unless
11736 flag_hosted. In C99 mode, return 0 from 'main' unless
11737 DEFAULT_MAIN_RETURN is otherwise defined.
11738
11739 * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
11740 parameters defaulting to int in an old-style function definition.
11741
11742 2000-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11743
11744 * c-parse.in (string): For -Wtraditional, warn about string
11745 concatenation only once per line.
11746
11747 Thu Jul 27 09:25:17 2000 Akiko Matsushita <matusita@sra.co.jp>
11748
11749 * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
11750 for HI-UX/WE2 systems.
11751
11752 2000-07-24 Bruce Korb <bkorb@gnu.org>
11753
11754 * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
11755 defining the __xxx_TYPE__ macros.
11756 * fixincl/fixincl.tpl(gnu_type_map): now obsolete
11757 * fixincl/fixlib.h: don't need to include "tm.h" anymore
11758 * fixincl/inclhack.def(type_map): now obsolete
11759
11760 Thu Jul 27 11:54:17 2000 Andrew Cagney <cagney@b1.cygnus.com>
11761
11762 * cpp.texi: Append a trailing full-stop to xrefs where needed.
11763
11764 2000-07-26 Dave Pitts <dpitts@cozx.com>
11765
11766 * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
11767 routine constants.
11768 (mvs_hash_alias): New function.
11769 (mvs_add_alias): Change argument spacing.
11770 (mvs_need_alias): Change aliasing criteria. Added documentation.
11771 (mvs_get_alias): Change to use hashed name. The hashed name prevents
11772 CSECT name collisions.
11773 (mvs_check_alias): Likewise.
11774 (handle_pragma): Change documentation.
11775 * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
11776 mode from SImode to DImode.
11777 (iorhi3): Changed LTORG size for insn.
11778
11779 Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
11780
11781 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
11782 mem if the address is a mode_dependent_address_p.
11783
11784 2000-07-26 Kazu Hirata <kazu@hxi.com>
11785
11786 * h8300.c (print_operand): Print ":8" when the 'R' operand is
11787 suitable for 8-bit absolute.
11788 * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
11789 (OK_FOR_U): Add a case for the 8-bit constant address on the
11790 H8/300H.
11791
11792 Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson <hp@axis.com>
11793
11794 * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
11795 && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
11796 ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
11797 lack of implemented alignment.
11798
11799 2000-07-26 Geoffrey Keating <geoffk@cygnus.com>
11800
11801 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
11802 cross-compiling between 64-bit and 32-bit machines.
11803
11804 2000-07-27 Richard Henderson <rth@cygnus.com>
11805
11806 * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
11807 (movhicc_astep, movhi_internal_astep): New.
11808 (movsicc_astep, movsi_internal_astep): New.
11809 (movdicc_astep, movdi_internal_astep): New.
11810 (movsfcc_astep, movsf_internal_astep): New.
11811 (movdfcc_astep, movdf_internal_astep): New.
11812 (movxfcc_astep, movxf_internal_astep): New.
11813 (cmovdi_internal_astep, cmovsi_internal_astep): New.
11814 Unify the cmov[ds]i splitters.
11815
11816 2000-07-27 Rodney Brown <RodneyBrown@pmsc.com>
11817
11818 * real.c (asctoeg): Rename `error' label to unexpected_char_error
11819
11820 2000-07-26 Nick Clifton <nickc@cygnus.com>
11821
11822 * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
11823 __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h
11824
11825 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
11826 well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
11827
11828 2000-07-26 Alexandre Oliva <aoliva@redhat.com>
11829
11830 * c-decl.c (finish_enum): Convert enumerations that fit in an
11831 `int' to `int'.
11832 (build_enumerator): In pedantic mode, cast to `int' those that
11833 don't.
11834
11835 2000-07-25 Rodney Brown <RodneyBrown@pmsc.com>
11836
11837 * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
11838
11839 Tue Jul 25 23:08:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
11840
11841 * sh.md (cmpgtdi_t): Must be split.
11842 (cmpgtdi_t+1): New splitter.
11843
11844 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
11845
11846 * cpplib.c (_cpp_check_directive): Issue -Wtraditional
11847 warnings for indented directives even if we are skipping.
11848
11849 2000-07-25 Nathan Sidwell <nathan@codesourcery.com>
11850
11851 * invoke.texi (strict-prototypes): Remove.
11852 * extend.texi (Deprecated Features): Add strict-prototypes.
11853 (Backwards Compatibility): New node.
11854
11855 2000-07-25 Jakub Jelinek <jakub@redhat.com>
11856
11857 * config/i386/i386.md (andsi_1+1): Allow HImode.
11858 (andsi_1+2): Require q_regs_operand.
11859
11860 2000-07-25 Jakub Jelinek <jakub@redhat.com>
11861
11862 * config/i386/i386.md (call_pop): Check operands[0],
11863 not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
11864 (call): Likewise.
11865 (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
11866 (call_value): Likewise.
11867
11868 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
11869
11870 * toplev.c (pipe_closed): Delete.
11871 (crash_signal): New. Generate ICE for a fatal signal.
11872 (float_signal): Call crash_signal outside a float-handler
11873 block, not abort.
11874 (main): Install crash_signal as handler for core-dumping signals.
11875
11876 2000-07-25 David Edelsohn <edelsohn@gnu.org>
11877
11878 * rs6000.c (print_operand, case 'T'): New case.
11879
11880 * rs6000.md (call_indirect_aix32): Convert to expander of
11881 scheduled instructions.
11882 (call_indirect_aix64): Likewise.
11883 (call_value_indirect_aix{32,64}): Likewise.
11884 (call, call_value): Invoke expanders for AIX. Fall through to
11885 matchers for SysV.
11886 (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
11887 (call_value_indirect_nonlocal_aix{32,64}): New patterns.
11888 (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1
11889 only "g" constraint.
11890 (call_nonlocal_aix64): Likewise.
11891 (call_value_nonlocal_aix{32,64}): Likewise.
11892 (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
11893 operands.
11894 (call_value_nonlocal_sysv): New pattern.
11895 (indirect_jump{si,di}): Use new 'T' modifier.
11896 (tablejump{si,di} matchers): Likewise.
11897 (return_internal_{si,di}): Likewise.
11898 (return_eh_{si,di}): Likewise.
11899
11900 2000-07-24 Richard Henderson <rth@cygnus.com>
11901
11902 * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
11903 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
11904 * config/ia64/ia64.md (movdi_internal): Use it.
11905
11906 2000-07-24 Zack Weinberg <zack@wolery.cumb.org>
11907
11908 * cppexp.c: Warn about unary + if -Wtraditional.
11909 * cpplex.c (lex_line): Always set BOL on the first token of a line.
11910
11911 2000-07-24 Michael Meissner <meissner@redhat.com>
11912
11913 * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
11914 unsupported macro.
11915
11916 2000-07-24 Nick Clifton <nickc@cygnus.com>
11917
11918 * config/arm/arm.c (emit_multi_reg_push): Generate a
11919 REG_FRAME_RELEATED_NOTE that is compatable with the code in
11920 dwarf2out_debug_frame_expr.
11921
11922 2000-07-24 Jason Merrill <jason@redhat.com>
11923
11924 * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
11925 UNALIGNED_INT_ASM_OP.
11926 (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
11927 a location expression.
11928 (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't
11929 assume indirect access if we're saving the CFA address exactly.
11930
11931 * Makefile.in (bootstrap): Move -BstageN/ to the end.
11932
11933 2000-07-24 Jakub Jelinek <jakub@redhat.com>
11934
11935 * tradcpp.c (main): Update max_include_len for cpp_include_defaults
11936 as well.
11937
11938 2000-07-24 Michael Meissner <meissner@redhat.com>
11939
11940 * invoke.texi (D30V Options): Add d30v options.
11941
11942 Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com)
11943
11944 * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
11945 needed by our gcse pass anymore.
11946 (free_pre_mem): Corresponding changes.
11947 (compute_pre_data): Do not call compute_transpout anymore.
11948
11949 * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
11950 (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
11951 changes.
11952
11953 * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
11954 (compute_pre_data): Do it here instead.
11955
11956 * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
11957 'temp_bitmap'.
11958 (pre_delete): Corresponding changes.
11959
11960 2000-07-23 Mark Mitchell <mark@codesourcery.com>
11961
11962 * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
11963 to figure out whether or not a variable has already been emitted.
11964
11965 Sun Jul 23 14:49:12 2000 Jason Eckhardt <jle@cygnus.com>
11966
11967 * config/i860/i860.md (untyped_call expander): Use GEN_CALL
11968 instead of gen_call.
11969
11970 Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk)
11971
11972 * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
11973
11974 2000-07-23 Kazu Hirata <kazu@hxi.com>
11975
11976 * h8300.c: Fix formatting.
11977
11978 2000-07-23 Joseph S. Myers <jsm28@cam.ac.uk>
11979
11980 * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
11981 for `long' switch expression into a plain warning.
11982
11983 * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
11984 (yylex): Don't pedwarn for "inline" in C99 mode.
11985
11986 * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
11987 with %p.
11988 * ggc-page.c (debug_print_page_list, alloc_page, free_page,
11989 ggc_alloc): Likewise.
11990 * bb-reorder.c (dump_scope_forest_1): Likewise.
11991
11992 2000-07-22 Aldy Hernandez <aldyh@redhat.com>
11993
11994 * reload.c (find_reloads_toplev): Add new parameter
11995 "address_reloaded".
11996 (find_reloads): Add new parameter to find_reloads_toplev calls.
11997
11998 2000-07-22 Jeffrey Oldham <oldham@codesourcery.com>
11999
12000 * collect2.c (main): Typo fixed.
12001 * diagnostic.c: Typo fixed.
12002 * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
12003 * eh-common.h: Typo fixed.
12004 * emit-rtl.c (start_sequence): Typo fixed.
12005 * flow.c (find_label_refs): Typo fixed.
12006 (calculate_global_regs_live): Typo fixed.
12007 (mark_regno_cond_dead): Typo fixed.
12008 (create_edge_list): Typos fixed.
12009 (verify_edge_list): Typo fixed.
12010 * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
12011 * loop.c (strength_reduce): Typo in function name fixed.
12012 * rtl.h: Added comments. Typo in function name fixed.
12013 * rtlanal.c: Typo in function name fixed.
12014 (insn_dependant_p): Rename to ...
12015 (insn_dependent_p): ... this.
12016 (computed_jumo_p): Typo fixed.
12017
12018 2000-07-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12019
12020 * system.h (__FUNCTION__): Wrap definition in #ifndef.
12021
12022 2000-07-21 David Edelsohn <edelsohn@gnu.org>
12023
12024 * rs6000.h (SIZE_TYPE): Define.
12025
12026 2000-07-21 Mark Mitchell <mark@codesourcery.com>
12027
12028 * ssa.c (rename_insn_1): Don't rename registers that are
12029 CLOBBERed.
12030
12031 2000-07-21 Zack Weinberg <zack@wolery.cumb.org>
12032
12033 * diagnostic.c (trim_filename, fancy_abort): Moved here from
12034 rtl.c.
12035 (fatal_function, set_fatal_function): Removed.
12036 (fatal): Don't prepare for or call the fatal_function.
12037 (diagnostic_lock, error_recursion): New.
12038 (diagnostic_for_decl, report_diagnostic): Guard against
12039 re-entering the error reporting routines.
12040 (fancy_abort): Assume function is not NULL.
12041
12042 * errors.c (fancy_abort): New. Assume function is not NULL.
12043 * tradcpp.c (fancy_abort): Assume function is not NULL.
12044
12045 * system.h: Provide default definition of __FUNCTION__.
12046 * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
12047 Always use __FUNCTION__ in definition of abort.
12048 * tree.h: Likewise.
12049 * varray.h: Likewise.
12050 * toplev.h: Likewise. Don't prototype set_fatal_function.
12051
12052 2000-07-20 Geoff Keating <geoffk@cygnus.com>
12053
12054 * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
12055 in 64-bit mode.
12056 * glimits.h: Don't do #if defined for ARCH_PPC.
12057
12058 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
12059 constants of size no larger than a pointer should go in the TOC.
12060 Add 'MODE' parameter.
12061 (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
12062 ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
12063 (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
12064 * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
12065 * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
12066 * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
12067 (rs6000_legitimize_address): Likewise.
12068 (rs6000_emit_move): Likewise.
12069 (rs6000_select_rtx_section): Likewise.
12070 (output_toc): Deal properly with outputting small constants like
12071 HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
12072 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
12073 MODE parameter. Put small constants in the TOC.
12074
12075 * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
12076 easy in SImode.
12077 (rs6000_emit_move): When reload calls us with an illegitimate
12078 address, exit early. Move the change_address calls to one place
12079 at the end of the routine. Merge the SImode and DImode expanders.
12080 When called by reload to put an integer into a FP register, force
12081 it to memory.
12082
12083 * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
12084 field.
12085 (rs6000_hash_constant): Hash mode too.
12086 (toc_hash_function): Allow for key_mode.
12087 (toc_hash_eq): Structures are different if key_mode differs.
12088 (output_toc): Add 'mode' parameter. Save key_mode.
12089 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
12090 Pass 'mode' parameter.
12091 * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
12092
12093 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
12094 for vtable references.
12095
12096 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
12097 choice, don't put integer values in FP regs.
12098
12099 Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com)
12100
12101 * flow.c (verify_flow_info): Revamp code to verify that the
12102 head and end of each basic block are in the insn chain.
12103
12104 Thu Jul 20 18:02:35 2000 Michael Matz <matzmich@cs.tu-berlin.de>
12105
12106 * gcse.c (record_one_set): Prepend instead of append onto
12107 reg_set_table, making it O(n) instead O(n^2).
12108 * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
12109 Use a queue instead of a stack as worklist.
12110
12111 2000-07-20 Kazu Hirata <kazu@hxi.com>
12112
12113 * h8300.c (two_insn_adds_subs_operand): Fix a typo.
12114 * h8300.h (OK_FOR_T): New.
12115 (EXTRA_CONSTRAINT): Support OK_FOR_T.
12116 * h8300.md: Use inc/dec.[wl] for increment/decrement
12117 by 1 and 2 in HI and SI modes.
12118
12119 2000-07-20 Jim Wilson <wilson@cygnus.com>
12120
12121 * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
12122 larger than 14 bits.
12123
12124 2000-07-20 Zack Weinberg <zack@wolery.cumb.org>
12125
12126 * cppmacro.c (CAN_PASTE_AFTER): New macro.
12127 (count_params): Don't set GNU_REST_ARGS on anything.
12128 (save_expansion): Set PASTE_LEFT only on tokens for which
12129 CAN_PASTE_AFTER is true, or which are named operators.
12130
12131 * cpplex.c (parse_args): Distinguish between a rest argument
12132 given one empty argument, and a rest argument given zero arguments.
12133 (maybe_paste_with_next): Look for VOID_REST tag, and trigger
12134 deletion of previous token based on that.
12135 (get_raw_token): Flatten some control structure.
12136
12137 * cpplib.h (CPP_LAST_EQ): Correct.
12138 (VOID_REST): New token flag.
12139 (GNU_REST_ARGS): Delete.
12140
12141 * tradcpp.c (main): Don't munge -D options.
12142 (make_definition): Bring -D handling in line with cpplib.
12143 (do_define): Strip all leading whitespace from macro definitions.
12144
12145 2000-07-20 David Billinghurst <David.Billinghurst@riotinto.com.au>
12146
12147 * Makefile.in (tradcpp): Depend on intl.o and version.o.
12148
12149 2000-07-20 Bruce Korb <bkorb@gnu.org>
12150
12151 * fixincl/check.tpl: strip the platform specific types before testing
12152 * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
12153 * fixincl/fixincl.tpl: use platform specific types
12154 * fixincl/fixlib.h: include the platform specific types
12155 * fixincl/inclhack.def(gnu_types): don't supply the types
12156 * fixincl/fixincl.x: regen
12157
12158 2000-07-19 Jim Wilson <wilson@cygnus.com>
12159
12160 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
12161 GR_REGS.
12162
12163 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
12164
12165 * tradcpp.c (rescan): Do not recognize directives when the #
12166 is indented.
12167
12168 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
12169
12170 Implement C++ named operators.
12171
12172 * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
12173 of operators allowed in #if and having an _EQ variant. Add
12174 CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
12175 (cpp_token flags): Add NAMED_OP.
12176 (enum node_type): Add T_OPERATOR.
12177 (struct cpp_hashnode): Add code slot to value union.
12178 * cpphash.h (spec_nodes): Remove n_defined.
12179
12180 * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
12181 (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
12182 (is_macro_disabled): Tweak error messages.
12183
12184 * cpplib.c (get_define_node): Disallow all named operators as
12185 macro names. Tweak error messages.
12186 (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
12187
12188 * cppinit.c (builtin_array): Add entries for the named operators.
12189 * cppexp.c (lex): Check for CPP_DEFINED token.
12190 (priority table): Add entries for CPP_MIN and CPP_MAX.
12191 (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
12192
12193 2000-07-19 Bernd Schmidt <bernds@cygnus.co.uk>
12194
12195 * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
12196 larger than the array of cuids.
12197 (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
12198 cuids.
12199
12200 2000-07-19 Bruce Korb <bkorb@gnu.org>
12201
12202 * fixinc/fixincl.c: Convert to using a table of environment variables
12203 and activate the auto-edit marker on the fixed output files.
12204 * fixinc/fixlib.h: Define the environment table
12205 * fixinc/fixincl.sh: export the ${INPUT} dir
12206 * fixinc/check.tpl: likewise
12207
12208 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
12209
12210 * gcc.c (.h spec): Fix typo.
12211
12212 Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
12213
12214 * Makefile.in: Fix tradcif.c path.
12215
12216 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
12217
12218 * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
12219 macros, not five.
12220
12221 * cpphash.h (TOKEN_NAME): New macro.
12222 (_cpp_spell_operator): Deleted.
12223 (token_spellings): Now _cpp_token_spellings.
12224
12225 * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
12226 * cpplex.c: Use OP and TK macros when expanding the
12227 TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens,
12228 store the stringification of the enumeration name (CPP_CHAR,
12229 etc.) in the name slot of token_spellings.
12230 Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
12231 token_spellings directly.
12232 * cpplib.c: Use TOKEN_SPELL.
12233
12234 * cpplex.c (_cpp_push_token): If the token being pushed back
12235 is the previous token in this context, just subtract one from
12236 context->posn.
12237 * cppmacro.c (save_expansion): Clear aux field when storing a
12238 placemarker.
12239
12240 2000-07-18 Jakub Jelinek <jakub@redhat.com>
12241
12242 * cpplex.c (cpp_scan_buffer): Output line command even at the stop
12243 buffer, provided it is not NULL.
12244
12245 2000-07-18 Alexandre Oliva <aoliva@redhat.com>
12246
12247 * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
12248 case of invalid volatile re-declaration.
12249
12250 2000-07-18 Jakub Jelinek <jakub@redhat.com>
12251
12252 * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
12253 (expand_call): Adjust caller.
12254
12255 2000-07-17 Gabriel Dos Reis <gdr@codesourcery.com>
12256
12257 * diagnostic.h (report_diagnostic): Change prototype.
12258
12259 * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
12260 diagnostic_for_decl): Change prototype.
12261 (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
12262 error, warning, error_with_file_and_line,
12263 warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
12264 Adjust call to report_diagnostic, diagnostic_for_decl.
12265 (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
12266 (output_verbatim, verbatim): Adjust call to output_do_verbatim.
12267
12268 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
12269 varaible argument list.
12270
12271 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
12272
12273 * cpphash.c: Don't include hashtab.h. Most macro-handling code
12274 moved to cppmacro.c.
12275 (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
12276 dump_hash_helper): Delete.
12277 (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
12278 cpp_forall_identifiers): New. Implement specialized version of
12279 Vlad's expandable hash table.
12280 (cpp_lookup): Use new functions.
12281 (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
12282 implementation.
12283 * cppmacro.c: New file.
12284 * cppinit.c (dump_macros_helper): New.
12285 (cpp_finish): Iterate over the identifier table directly.
12286 * cpplex.c (parse_name): Calculate the hash of the identifier
12287 while we scan it. Use _cpp_lookup_with_hash when we can.
12288
12289 * cpphash.h: Update prototypes.
12290 (xcnewvec, HASHSTEP): New helper macros.
12291 * cpplib.h: Update prototypes.
12292 * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
12293 (cppmacro.o): New rule.
12294 (cpphash.o): Update deps.
12295
12296 * cppmain.c: Do not set pfile->printer if no_output is on.
12297
12298 2000-07-15 Neil Booth <neilb@earthling.net>
12299
12300 * cpplib.c: Change all directive-handler functions to return
12301 void, not int.
12302 * cpphash.h: Update typedefs.
12303
12304 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
12305
12306 * configure: Regenerate.
12307
12308 * extend.texi (Extended Asm): Mention that a memory clobber
12309 does not count as a side-effect.
12310
12311 * unroll.c (copy_loop_body): Fix one instance of using host
12312 arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
12313 cross-compile.
12314
12315 * tlink.c (scan_linker_output): Tweak for output of AIX ld.
12316
12317 2000-07-17 Richard Henderson <rth@cygnus.com>
12318
12319 * config/ia64/ia64.md (movdi): Split out load address code.
12320 New post-reload splitter for symbolic operands.
12321 (movdi_internal): Abort if we didn't split symbolic operands
12322 when we should have.
12323 * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
12324 (ia64_reorg): Split insns when not optimizing.
12325 * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
12326
12327 Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
12328
12329 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
12330 instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
12331
12332 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
12333
12334 * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
12335
12336 2000-07-17 Jason Merrill <jason@redhat.com>
12337
12338 * Makefile.in (clean): Remove libgcc directory.
12339
12340 * configure.in (-Wno-long-long check): Use higher-level macros.
12341
12342 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
12343
12344 * simplify-rtx.c (simplify_binary_operation): Recognize
12345 (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
12346 (simplify_ternary_operation): Do not examine MODE_BITSIZE of
12347 a CONST_INT, it will always be zero.
12348
12349 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
12350
12351 * loop.c (check_dbra_loop) : Return if more than one condition is
12352 present to control the loop.
12353
12354 Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com>
12355
12356 * mips.c (mips_expand_prologue): Don't calculate the last argument
12357 register unless we need it. When we are calculating this, make
12358 sure FUNCTION_ARG is giving us a REG.
12359
12360 2000-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
12361
12362 * flow.c (libcall_dead_p): Use single_set to verify the insn
12363 has only one set and get for analysis.
12364 (propagate_one_insn): Don't pass the PATTERN of the insn.
12365
12366 2000-07-17 Mark Klein <mklein@dis.com>
12367
12368 * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
12369
12370 2000-07-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
12371
12372 * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
12373 * configure.in (TARGET_GETGROUPS_T): Evaluate.
12374 * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
12375 of second argument of getgroups.
12376 * configure, config.in: Rebuilt.
12377
12378 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
12379
12380 * simplify-rtx.c (simplify_relational_operation): Two signed
12381 values with equal high words are less/greater than each other if
12382 their low words are less/greater when considered as unsigned.
12383
12384 Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org>
12385
12386 * configure.in (vax-*-openbsd): Change to new style configuration,
12387 add collect2/float_format information.
12388 * configure: Rebuilt.
12389 * config/vax/openbsd1.h: New.
12390 * config/vax/openbsd.h: New.
12391 * config/vax/t-openbsd: New.
12392
12393 2000-07-17 Chip Salzenberg <chip@valinux.com>
12394
12395 * c-common.c (shorten_compare): Quiet warnings about unsigned
12396 comparisons with zero when they occur in a system header.
12397
12398 2000-07-17 Joseph S. Myers <jsm28@cam.ac.uk>
12399
12400 * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
12401 update to describe current practice.
12402
12403 * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
12404
12405 * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
12406 references to C9X. Change references to -fstd and -flang-isoc9x
12407 to refer to -std.
12408
12409 * c-common.c (scan_char_table): Allow "z" length modifiers on
12410 diouxXn formats.
12411 (check_format_info): Use TYPE_DOMAIN on the type matched against
12412 for "z" formats, to retrieve the language size_t rather than the
12413 internal one.
12414
12415 * c-common.c (check_format_info): Do not make a pedantic objection
12416 to the 'L' length modifier if used with a floating point type
12417 character.
12418
12419 * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
12420 constants in C99 mode.
12421
12422 2000-07-17 Kazu Hirata <kazu@hxi.com>
12423
12424 * h8300.md: Fix the format of mac.
12425 (movsi_h8300hs): Output a tab after stmac instead of a space.
12426
12427 * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
12428 profitable adds/subs sequences.
12429
12430 * fold-const.c: Fix comment typos.
12431
12432 2000-07-16 Laurynas Biveinis <lauras@softhome.net>
12433
12434 * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
12435
12436 2000-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12437
12438 * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
12439
12440 2000-07-16 Neil Booth <NeilB@earthling.net>
12441
12442 * cpplex.c: Update comments.
12443 * README.Portability: Small update.
12444
12445 2000-07-16 Neil Booth <NeilB@earthling.net>
12446
12447 * README.Portability: Small update.
12448
12449 2000-07-15 Richard Henderson <rth@cygnus.com>
12450
12451 * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
12452 * config/ia64/ia64.c (ia64_move_ok): New function.
12453 * config/ia64/ia64.md (movqi, movqi_internal): Use it.
12454 (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
12455
12456 2000-07-15 Zack Weinberg <zack@wolery.cumb.org>
12457
12458 * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
12459 immediately following a paste operator.
12460 * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
12461 (cpp_reader_init): Call it, if HOST_EBCDIC.
12462 (cpp_handle_options): Do not sort option list here.
12463 (handle_option): Rename to cpp_handle_option and export.
12464 * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
12465 _cpp_get_token directly.
12466 (cpp_scan_line): Return 0 at EOF, 1 otherwise.
12467 * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
12468 * cpplib.h: Prototype cpp_handle_option. Update prototype of
12469 cpp_scan_line.
12470
12471 2000-07-15 Richard Henderson <rth@cygnus.com>
12472
12473 * fold-const.c (extract_muldiv): Don't optimize past an unsigned
12474 cast around an expression. Tidy other unsigned tests.
12475
12476 2000-07-15 Gabriel Dos Reis <gdr@codesourcery.com>
12477
12478 * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
12479 v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
12480 (v_message_with_decl): Rename to ...
12481 (format_with_decl): ... this. Tweak
12482 (diagnostic_for_decl): New function.
12483 (fatal_io_error): Use verbatim in lieu of notice.
12484 (announce_function): Use verbatim.
12485 (default_print_error_function): Likewise.
12486 (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
12487 infratructure.
12488
12489 2000-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12490
12491 * mips.c (function_arg_pass_by_reference): Don't do automatic
12492 aggregate initialization.
12493 (machine_dependent_reorg): Initialize variable `mode'.
12494
12495 * mips.md (absdi2): Change variable `regno1' to unsigned int.
12496 (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
12497 conflicts with sys/param.h macro of the same name.
12498 (reload_outdi): Likewise.
12499
12500 2000-07-15 Michael Meissner <meissner@redhat.com>
12501
12502 * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
12503 == CONST + INCREMENT, don't overwrite the tree node for FOO++,
12504 create a new node instead.
12505
12506 2000-07-15 Neil Booth <NeilB@earthling.net>
12507
12508 * README.Portability: Correct example about calling a function
12509 through a pointer to function. Format wide paragraphs.
12510
12511 2000-07-15 Michael Meissner <meissner@redhat.com>
12512
12513 * README.Portability: Update integer suffixes and function
12514 prototype sections.
12515
12516 2000-07-15 Neil Booth <NeilB@earthling.net>
12517
12518 * README.Portability: Small update.
12519
12520 2000-07-15 Neil Booth <NeilB@earthling.net>
12521
12522 * README.Portability: New file.
12523
12524 Fri Jul 14 18:13:53 2000 Mark P Mitchell <mark@codesourcery.com>
12525
12526 * INSTALL: Give special instructions for building GCC on Irix 6.
12527 * config/mips/x-iris6 (CC): Don't set it.
12528 (OLDCC): Likewise.
12529
12530 2000-07-14 Jason Merrill <jason@redhat.com>
12531
12532 * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
12533 register in the stack and later in another register, use the new
12534 register.
12535
12536 Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com>
12537
12538 * config/mips/mips.md: (absdi2): Handle sign_extend for
12539 second operand.
12540
12541 2000-07-14 Nathan Sidwell <nathan@codesourcery.com>
12542
12543 * cpplib.c (do_pragma_dependency): Tidy warning messages.
12544
12545 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
12546
12547 * .cvsignore: Correct typo.
12548
12549 2000-07-13 Mark Mitchell <mark@codesourcery.com>
12550
12551 * .cvsignore: Add generated YACC files.
12552 * objc/.cvsignore: New file.
12553
12554 2000-07-14 Neil Booth <NeilB@earthling.net>
12555
12556 * cpplex.c (adjust_column): New funcion.
12557 (skip_whitespace): Use it.
12558 (skip_block_comment): Use it, and warn about /*/* with
12559 -Wcomments.
12560
12561 2000-07-14 Neil Booth <NeilB@earthling.net>
12562
12563 * cpphash.c (struct macro_info): Add new members.
12564 (_cpp_free_definition): Delete the macro directly.
12565 (count_params): Return void, with first token of
12566 expansion in struct macro_info on success.
12567 (parse_define): Return int. Hoist syntax checking from
12568 save_macro_expansion. Leave call to save_expansion to
12569 _cpp_create_definition.
12570 (alloc_macro): Needs just 2 arguments.
12571 (free_macro): Delete.
12572 (save_expansion): Don't perform syntax check.
12573 (_cpp_create_definition): Call save_expansion.
12574
12575 2000-07-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12576
12577 * genrecog.c (write_header): Split long string.
12578
12579 * cpphash.c (macro_info): Don't use the `signed' keyword.
12580
12581 * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
12582
12583 2000-07-13 Jakub Jelinek <jakub@redhat.com>
12584
12585 * calls.c (stored_args_map): New variable.
12586 (check_sibcall_argument_overlap_1): New.
12587 (check_sibcall_argument_overlap): New.
12588 (expand_call): Initialize stored_args_map.
12589 Call check_sibcall_argument_overlap.
12590
12591 2000-07-13 Bruce Korb <bkorb@gnu.org>
12592
12593 * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
12594 (emit_gnu_type): utility procedure for gnu_type_fix
12595 (gnu_type_fix): implement various pre-processor guards around
12596 standard types so these types can be defined over and over
12597 * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
12598 types alluded to above will have GNU-compliant base types
12599 * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
12600 * fixinc/inclhack.def: add test_text entries and utilize the new
12601 "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
12602 * fixinc/fixincl.x: regenerate
12603
12604 2000-07-12 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
12605
12606 * diagnostic.c (vline_wrapper_message_with_location,
12607 v_message_with_file_and_line, v_error_with_file_and_file,
12608 v_error_for_asm, v_warning_for_asm, vfatal,
12609 v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
12610 vsorry, verror, vwarning, vpedwarn): Remove.
12611 (diagnostic_for_asm): New function.
12612 (pedwarn, error, warning, pedwarn_with_file_and_line,
12613 error_with_file_and_line, warning_with_file_and_line, sorry,
12614 error_for_asm, warning_for_asm, fatal): Reimplement.
12615 (finish_diagnostic): Clear diagnostic info as well.
12616
12617 2000-07-13 Neil Booth <NeilB@earthling.net>
12618
12619 * c-common.h (flag_digraphs): New.
12620 * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
12621 * c-lex.c (yylex): Use flag_digraphs to decide whether to
12622 honour digraphs.
12623
12624 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
12625
12626 * gcc.c (do_spec_1): Add new %B operator.
12627 (set_input): Prepare for %B.
12628
12629 (link_command_spec): Move up with the other tm.h-
12630 overrideable specs. Factor out the portion conditional on
12631 LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
12632 (struct compiler): Just have a single spec string. All users
12633 updated.
12634 (default_compilers): Remove unnecessary braces.
12635 (static_specs): Update.
12636
12637 (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
12638 named specs.
12639 (C and assembly specs): Use the new named specs, as appropriate.
12640
12641 * objc/lang-specs.h: Use the new named specs.
12642 Remove unnecessary braces.
12643
12644 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12645
12646 * gcc.c (execute): If a subprocess gets a fatal signal, report
12647 strsignal() of the signal number, and ask for a bug report.
12648 Do not do this for SIGPIPE if there's already been an error.
12649
12650 * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
12651 Delete pipe_closed.
12652
12653 * tradcif.c: Remove.
12654
12655 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12656
12657 * final.c (profile_function): Do not emit profile counters in
12658 the data section, if NO_PROFILE_COUNTERS is defined.
12659 * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
12660 FUNCTION_PROFILER.
12661
12662 * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
12663 (FUNCTION_PROFILER): Just emit a call to mcount.
12664
12665 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12666
12667 * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
12668
12669 * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
12670 cpplib.c, cpplib.h: Eradicate all traces of code dependent on
12671 traditional, lang_chill, or lang_fortran.
12672
12673 * cppfiles.c: #undef strcmp to suppress warning about macros
12674 used without arguments.
12675 (_cpp_execute_include): Use f, not fname, in "No include path"
12676 error.
12677 (_cpp_pop_file_buffer): New function.
12678 * cpplib.c: Don't include <sys/mman.h>.
12679 (cpp_push_buffer): Set line_base and lineno in new buffer.
12680 (cpp_pop_buffer): Use _cpp_pop_file_buffer.
12681
12682 * cpplex.c: Move all prototypes and structure declarations to the
12683 top of the file. Properly parenthesise some macro arguments.
12684 (cpp_scan_line): New function.
12685 (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
12686 don't need to walk up the stack counting.
12687
12688 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12689
12690 * c-common.c (combine_strings): Emit a pedantic warning when a
12691 string length is greater than the minimum ANSI C is required
12692 to support.
12693
12694 Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com)
12695
12696 * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
12697 * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
12698
12699 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12700
12701 * c-decl.c (define_label): Warn about identifier conflicts with
12702 labels in traditional C.
12703
12704 * c-parse.in (unop +): Warn about the unary plus operator for
12705 traditional C.
12706
12707 * c-typeck.c (store_init_value): Warn about automatic aggregate
12708 initialization for traditional C.
12709
12710 * invoke.texi (-Wtraditional): Document new warnings.
12711
12712 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
12713
12714 * Makefile.in (c-errors.o): Fix thinko in dependency.
12715
12716 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12717
12718 * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
12719 -traditional, -ftraditional, or -traditional-cpp was given.
12720 Do not pass -traditional to the preprocessor.
12721 (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
12722 preprocessor does it automatically.
12723 * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
12724
12725 * ch/lang-specs.h: Always use tradcpp. Do not pass
12726 -traditional, -trigraphs, or -pedantic to the preprocessor.
12727 * f/lang-specs.h (.F spec): Likewise. Don't bother defining
12728 _LANGUAGE_FORTRAN.
12729
12730 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12731
12732 * cppexp.c (LOGICAL): Delete macro.
12733 (_cpp_parse_expr): Do not use UNARY for unary +. Implement ||
12734 and && directly.
12735
12736 * cpphash.c (HASHSIZE): Increase to 4096.
12737 (struct hashdummy): Add hash field.
12738 (eq_HASHNODE): Compare unreduced hashes, then lengths, then
12739 the string values using memcmp.
12740 (cpp_lookup): Set dummy.hash.
12741
12742 Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
12743
12744 * configure.in (m88k-openbsd): Express configuration using new fragment
12745 style.
12746 * configure: Rebuilt.
12747 * m88k/aout-dbx.h: New.
12748 * m88k/openbsd.h: New.
12749 * m88k/xm-openbsd.h: New.
12750
12751 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12752
12753 * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
12754
12755 2000-07-12 Richard Henderson <rth@cygnus.com>
12756
12757 * reload.c (push_secondary_reload): Make sure to add the new
12758 reload at the end, after acquiring secondary memory.
12759
12760 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12761
12762 * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
12763
12764 * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
12765 lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
12766
12767 * c-parse.in (stmt): Delete unused variables.
12768
12769 * convert.c (convert_to_vector): Likewise.
12770
12771 * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
12772
12773 * tree.c (finish_vector_type): Prototype.
12774
12775 2000-07-12 Bruce Korb <bkorb@gnu.org>
12776
12777 * fixinc/fixfixes.c: use xmalloc
12778 * fixinc/fixincl.c(initialize): set program name for xmalloc
12779 * fixinc/fixlib.c(must_malloc): obsolete
12780 (is_cxx_header): no longer used - disabled
12781 (skip_quote): inserted and disabled for future use
12782 * fixinc/fixlib.h: reflects above
12783 * fixinc/fixtests.c: removed dinkleberries
12784
12785 2000-07-12 Neil Booth <NeilB@earthling.net>
12786
12787 * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
12788 * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
12789
12790 * cpphash.c: (struct macro_info, alloc_macro, free_macro,
12791 struct toklist_dummy): New.
12792 (cpp_free_definition): Free macros with free_macro.
12793 (count_params): Don't save paramter spellings. Save macro
12794 information in a struct macro_info.
12795 (parse_define): Don't allocate a token list.
12796 (save_expansion): Allocate the macro's token list, and
12797 save parameter spellings if necessary. Use TOKEN_SPELL.
12798 (cpp_create_definition): Make list const.
12799
12800 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
12801
12802 * c-typeck.c (pedwarn_c99): Move to
12803 * c-errors.c: ... Here.
12804 * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
12805 * diagnostic.c (verror, vwarning, vpedwarn): Make static.
12806 * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
12807 (c-errors.o): List dependency.
12808
12809 2000-07-12 Mark Mitchell <mark@codesourcery.com>
12810
12811 * c-parse.c: Remove.
12812 * c-parse.h: Likewise.
12813 * c-parse.y: Likewise.
12814 * objc/objc-parse.c: Likewise.
12815 * objc/objc-pasre.y: Likewise.
12816
12817 2000-07-11 Rodney Brown <RodneyBrown@pmsc.com>
12818
12819 * gcc.texi: Fix minor typos
12820 * extend.texi: Fix minor typos
12821
12822 2000-07-11 Marc Espie <espie@openbsd.org>
12823
12824 * collect2.c (main): Recognize .lo as object files.
12825
12826 2000-07-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
12827
12828 * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
12829 true.
12830
12831 * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
12832 with MAP_ANONYMOUS and MAP_ANON.
12833 * configure, config.in: Rebuilt.
12834
12835 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
12836
12837 * diagnostic.c (save_output_state): Remove.
12838 (restore_output_state): Likewise.
12839 (clear_text_info): New function.
12840 (clear_diagnostic_info): Likewise.
12841 (output_text_length, is_starting_newline, output_prefix,
12842 line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
12843 prefixing_policy, output_buffer_ptr_to_format_args): New macros
12844 (set_real_maximum_length, output_set_maximum_length,
12845 output_set_prefix, output_get_prefix, output_set_maximum_length,
12846 output_destroy_prefix, init_output_buffer,
12847 reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
12848 output_add_newline, output_add_character, output_add_space,
12849 output_append_r, output_append, wrap_text, output_format,
12850 output_do_printf, output_printf, output_do_verbatim,
12851 output_verbatim, verbatim): Use them.
12852 (output_clear): Split into cleat_text_info and
12853 clear_diagnostic_info.
12854 (struct output_state): Move to...
12855
12856 * diagnostic.h: ...Here
12857 (struct output_buffer): Adjust.
12858
12859 2000-07-11 Zack Weinberg <zack@wolery.cumb.org>
12860
12861 * cpplex.c (parse_name): No longer inline (premature optimization).
12862 (do_pop_context): Fold into pop_context.
12863 (pop_context): Returns int.
12864 (lex_next): Hoist test for end of directive into pop_context.
12865 (push_macro_context): Returns int; takes just reader and token.
12866 Hoist test for excessive nesting to caller.
12867 (push_arg_context): Returns void; takes just reader and token.
12868 Do not call stringify_arg or get_raw_token.
12869 (get_raw_token): Convert tail recursion through push_arg_context
12870 to a loop at this level. Call stringify_arg here if appropriate.
12871 (maybe_paste_with_next): Convert tail recursion to a while loop.
12872 Hoist test of paste_level to caller.
12873
12874 (stringify_arg): Push arg context at beginning.
12875 (cpp_get_token): Split out core into _cpp_get_token. Call
12876 process_directive here. Throw away CPP_PLACEMARKER tokens.
12877 (_cpp_get_token): Convert tail recursion through
12878 push_macro_context to a loop at this level.
12879 (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
12880 _cpp_get_raw_token): Use _cpp_get_token.
12881 (_cpp_skip_rest_of_line): Drop the context stack directly; do
12882 not call pop_context.
12883 (_cpp_run_directive): Call lex_next directly.
12884
12885 * cpphash.h: Prototype _cpp_get_token.
12886 * cppexp.c (lex): Use it.
12887 * cpphash.c (parse_define): Use it.
12888 * cpplib.c (get_define_node, do_undef, parse_include,
12889 read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
12890 do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
12891 parse_ifdef, validate_else): Use it.
12892 (cpp_push_buffer): Tweak error message; abort if anyone tries
12893 to push a buffer while macro expansions are stacked.
12894
12895 2000-07-11 Donn Terry <donnte@microsoft.com>
12896
12897 * cpplex.c (free_macro_args, save_token): Cast arg of free
12898 and/or xrealloc to PTR.
12899 (_cpp_init_input_buffer): Clear all fields of the base context.
12900
12901 Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz <cpopetz@cygnus.com>
12902
12903 * gensupport.c (process_rtx): Make rtl checking stop
12904 complaining about the define_insn while it is being
12905 converted from a define_insn_and_split.
12906
12907 Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
12908
12909 * config/mips/mips.c (simple_memory_operand): Access the
12910 INTVAL of the address, not it's containing MEM.
12911
12912 2000-07-11 Bruce Korb <bkorb@gnu.org>
12913
12914 * fixinc/fixtests.c(double_slash): obsolete
12915 (else_endif_label): likewise
12916 * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
12917 (libc1_ifdefd_memx): correct initial comment
12918 and omit the #if/#endif pair from the memxxx declarations
12919 * fixinc/fixincl.x: regen
12920
12921 2000-07-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12922
12923 * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
12924
12925 2000-07-11 Neil Booth <NeilB@earthling.net>
12926
12927 * cpp.texi: Update.
12928
12929 2000-07-11 Neil Booth <NeilB@earthling.net>
12930
12931 * cppinit.c: (cpp_reader_init): Allow digraphs by default.
12932 (handle_option): Set digraphs according to standard.
12933 Merge OPT_lang_c89 handler with OPT_std_c89.
12934
12935 * cpplex.c: (lex_line, can_paste): Honour digraphs in
12936 accordance with the digraphs flag.
12937
12938 * cpplib.h: (struct cpp_options): New option digraphs.
12939
12940 2000-07-10 Hans-Peter Nilsson <hp@axis.com>
12941 Bruce Korb <bkorb@gnu.org>
12942
12943 * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
12944 * fixinc/fixincl.x: Regenerate.
12945 * fixinc/tests/base/testing.h: Add testcase.
12946
12947 2000-07-10 Richard Henderson <rth@cygnus.com>
12948
12949 * config/ia64/ia64.c (got_symbolic_operand): New.
12950 (symbolic_operand, move_operand): Revert 0701 change.
12951 * config/ia64/ia64.h (PREDICATE_CODES): Update.
12952 * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
12953 * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
12954 split the offset into a 14-bit low part instead of a 13-bit low part.
12955 (load_fptr): Mark the mem as unchanging.
12956 (load_symptr): Use got_symbolic_operand.
12957
12958 2000-07-10 Nick Clifton <nickc@cygnus.com>
12959
12960 * libgcc2.c (next_stack_level): Cast result of computation to
12961 (void **) so that the assignment does not generate a warning.
12962
12963 2000-07-10 Chandrakala Chavva <cchavva@redhat.com>
12964
12965 * flags.h : Add new variable flag_single_precision_constant.
12966 * toplev.c (display_help) : Add -fsingle-precision-constant option.
12967 (flag_single_precision_constant): New.
12968 * c-lex.c (yylex): Convert floating point constant to single
12969 precision constant.
12970 * invoke.texi : Add documentation for this new option.
12971
12972 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
12973
12974 * diagnostic.c (output_octal): Second parameter is unsigned.
12975 (output_long_octal): Likewise.
12976 (output_hexadecimal): Likewise.
12977 (output_long_hexadecimal): Likewise.
12978 (output_format): Adjust arguments extraction. Tweak.
12979 (output_verbatim, verbatim): End variable argument list.
12980 (report_diagnostic): Improve documentation.
12981
12982 2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
12983
12984 * c-common.h (build_stmt): Declare.
12985 (build_continue_stmt): Likewise.
12986 (build_break_stmt): Likewise.
12987 (build_return_stmt): Likewise.
12988
12989 * c-decl.c (do_case): Rewrite to do what previously done in
12990 c-parse.in.
12991
12992 * c-semantics.c (build_stmt): Define.
12993 (build_return_stmt): Likewise.
12994 (build_break_stmt): Likewise.
12995 (build_continue_stmt): Likewise.
12996 (build_case_label): Likewise.
12997
12998 * c-parse.in (BREAK): Change to build tree, then generate RTL.
12999 (CONTINUE): Likewise.
13000 (RETURN): Likewise.
13001 (CASE): Likewise.
13002 (DEFAULT): Likewise.
13003
13004 * c-parse.y: Regenerate.
13005 * c-pasre.c: Likewise.
13006
13007 2000-07-09 Jason Merrill <jason@redhat.com>
13008
13009 * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
13010
13011 * tree.h (STRIP_NOPS): Check for error_mark_node.
13012 (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
13013 (dwarf2out_*): Remove duplicate declarations.
13014
13015 * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
13016 DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
13017
13018 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
13019
13020 * diagnostic.c (wrap_text): New function.
13021 (maybe_wrap_text): Likewise.
13022 (output_add_string): Use it.
13023 (output_format): Likewise.
13024 (count_error): Use verbatim instead of notice.
13025 (report_error_function): Likewise. Don't use plain fprintf.
13026 (finish_diagnostic): New function.
13027 (output_do_verbatim): Tweak. Commonalize functionalities in
13028 output_verbatim and verbatim.
13029 (output_verbatim): Adjust.
13030 (verbatim): Likewise.
13031 (report_diagnostic): Define.
13032
13033 * diagnostic.h (report_diagnostic): Prototype.
13034
13035 2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
13036
13037 * cppexp.c (_cpp_parse_expr): Don't use unary plus.
13038
13039 2000-07-09 Neil Booth <NeilB@earthling.net>
13040
13041 * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
13042 IShspace, ISspace: Update.
13043
13044 * cppinit.c: ISTABLE: Update.
13045 V: New.
13046
13047 * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
13048 (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
13049 (skip_block_comment, skip_line_comment, parse_string,
13050 lex_line): Use is_vspace rather than IS_NEWLINE.
13051 (skip_whitespace, lex_line): Clean up to use is_nvspace.
13052 (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive
13053 gets a BOL flag.
13054 (lex_next): Unconditionally stop if within a directive.
13055 Treat directives within macro invocations as directives
13056 (after parse_args emits error), not as the argument.
13057
13058 2000-07-09 Gabriel Dos Reis <gdr@codesourcery.com>
13059
13060 * diagnostic.c (diagnostic_args): New macro.
13061 (diagnostic_msg): Likewise.
13062 (output_formatted_integer): Likewise.
13063 (output_state): New data type.
13064 (digit_buffer): Make global.
13065 (output_add_integer): Rename to output_decimal. Squeeze
13066 digit_buffer.
13067 (output_long_decimal, output_unsigned_decimal,
13068 output_long_unsigned_decimal, output_octal, output_long_octal,
13069 output_hexadecimal, output_long_hexadecimal): New functions.
13070 (output_append_r): New function.
13071 (output_append): Tweak.
13072 (output_flush_on): Rename to output_to_stream.
13073 (output_format): Change prototype. Improve documentation. Handle
13074 more format specifiers.
13075 (build_location_prefix): Rename to context_as_prefix.
13076 (output_notice): Rename to output_do_printf.
13077 (output_printf): Tweak.
13078 (line_wrapper_printf): Likewise.
13079 (vline_wrapper_message_with_location): Adjust call to renamed
13080 functions.
13081 (v_message_with_decl): Likewise.
13082 (default_print_error_function): Likewise.
13083 (save_output_state): New function.
13084 (restore_output_state): Likewise.
13085 (output_do_verbatim): Likewise.
13086 (output_verbatim): Define.
13087 (verbatim): Likewise.
13088
13089 * diagnostic.h (printer_fn): Change return type from void to int.
13090 Improve documentation.
13091 (output_add_integer): Rename to output_decimal.
13092 (output_flush_on, output_format): Don't export.
13093 (output_verbatim, verbatim): Declare.
13094
13095 2000-07-08 Toon Moene <toon@moene.indiv.nluug.nl>
13096
13097 * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
13098 Check whether c divides op1 exactly if operation is not
13099 multiplication.
13100
13101 2000-07-08 Richard Henderson <rth@cygnus.com>
13102
13103 * final.c (final): Do not abort when reg-stack introduces
13104 a new insn.
13105
13106 2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
13107
13108 * cpplib.h (struct cpp_name): Now struct cpp_string.
13109 (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
13110 CPP_HEADER_NAME): Change to type S.
13111 (struct cpp_token): Rename 'name' field to 'str'. Add 'node'
13112 field, a cpp_hashnode *. All references to val.name updated
13113 to use val.str or val.node as appropriate.
13114 (struct cpp_reader): Add spec_nodes field.
13115 (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
13116
13117 * cpphash.h (struct spec_nodes): New.
13118 (enum spell_type): Reorder. Only SPELL_STRING tokens use
13119 val.str. All references to 'spelling > SPELL_NONE' updated to
13120 match.
13121
13122 (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
13123 pfile->buffer->inc are not NULL before dereferencing them.
13124
13125 * cpplex.c (parse_name): Take a pointer to the current token,
13126 plus current position and limit as args; return the new
13127 position; don't copy the text of a name into the string
13128 buffer, instead call cpp_lookup and store the node pointer.
13129 If extending a token, copy out the text of the old into a
13130 scratch buffer, append the new, look that up and store the new
13131 node pointer. Inline.
13132 (maybe_paste_with_next): If the result of paste is a NAME,
13133 then look up the pasted text and store its node pointer.
13134 (lex_line): Adjust for new parse_name interface.
13135 Check for L"str", L'str' using spec_nodes->n_L.
13136 (spell_token): SPELL_IDENT tokens have their spelling in
13137 val.node->name. Handle SPELL_STRING tokens that don't have
13138 string delimiters.
13139 (_cpp_expand_name_space,
13140 (can_paste): Check for L ## "str" using spec_nodes->n_L.
13141 (cpp_get_token, special_symbol): No need to call cpp_lookup.
13142 (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
13143 return 1=equal 0=not, not a tristate.
13144
13145 * cpphash.c (var_args_str): Delete.
13146 (find_param): Compare node fields directly.
13147 (is__va_args__): Use CPP_PEDANTIC. Just compare
13148 token->val.node with spec_nodes->n__VA_ARGS__.
13149 (dump_funlike_macro): Don't use var_args_str.
13150
13151 * cpplib.c (_cpp_check_directive): Just walk through
13152 spec_nodes->dirs comparing pointers.
13153 (get_define_node, do_pragma_poison, detect_if_not_defined,
13154 parse_ifdef): The identifier has already been looked up.
13155 (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
13156 node.
13157 (do_if): Only call detect_if_not_defined at beginning of file.
13158 (_cpp_parse_assertion): Only copy string pointers for
13159 SPELL_STRING tokens.
13160 (pragma_dispatch): Take a node pointer and examine its name
13161 field.
13162 (_cpp_init_stacks): Also initialize the spec_nodes structure.
13163
13164 * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
13165 _cpp_init_macros.
13166 (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
13167 reverse order from the corresponding _cpp_init_* routines.
13168
13169 * cppexp.c (parse_number, parse_charconst, parse_defined,
13170 lex): Check val.node->type instead of calling cpp_defined.
13171 Use spec_nodes entries where appropriate.
13172
13173 * fix-header.c, scan-decls.c: Update for interface changes.
13174
13175 2000-07-08 Geoffrey Keating <geoffk@cygnus.com>
13176
13177 * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
13178 emitting aux_truncdfsf2.
13179
13180 2000-07-03 Donn Terry (donnte@microsoft.com)
13181
13182 * cppinit.c (print_help): split overlong line into ISO C89
13183 maximum chunks.
13184
13185 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
13186
13187 * cppexp.c: Update all code for new lexer interface.
13188 (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
13189 (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
13190 * cpplex.c (token_names): Trim leading CPP_ from names; make
13191 the strings unsigned.
13192 (_cpp_spell_operator): New.
13193 (is_macro_disabled): Disable all macros if rescanning
13194 preprocessed text.
13195 (_cpp_get_directive_token): Remove.
13196
13197 * cppinit.c: Don't set no_macro_expand.
13198 * cpplib.c (read_line_number, do_line): Check only for EOF,
13199 not VSPACE.
13200 * cpphash.h: Update prototypes.
13201 * cpplib.h (CPP_VSPACE): Remove.
13202 (struct cpp_reader): Remove no_macro_expand.
13203
13204 2000-07-08 Neil Booth <NeilB@earthling.net>
13205
13206 * cpphash.c (is__va_args__): New function.
13207 (count_params): Fix line reported in error messages. Use
13208 is__va_args__. Don't return ')' on error. Flag GNU style
13209 rest args macro definitions.
13210 (parse_define): Check macro name is not __VA_ARGS__.
13211 (save_expansion): Check identifier in non-varargs-macro is
13212 not __VA_ARGS__. Don't flag GNU_VARARGS.
13213 * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
13214 (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
13215 than per-token GNU_VARARGS.
13216 * cpplib.h (GNU_VARARGS): Remove.
13217 (GNU_REST_ARGS): New.
13218
13219 Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
13220
13221 * i386.md (call_pop, call, call_value_pop): Do not set
13222 current_function_uses_pic_offset_table for calls to static
13223 functions or indirect calls.
13224
13225 2000-07-07 Jim Wilson <wilson@cygnus.com>
13226
13227 * config/ia64/ia64.c (rws_access_reg): New local write_count. If
13228 is_predicate_reg, then take max write_count of register pair.
13229
13230 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13231
13232 * tradcpp.c (main): Rename label `include' to `add_include' to
13233 avoid conflicts with variable `include' in traditional C.
13234
13235 2000-07-07 Jakub Jelinek <jakub@redhat.com>
13236
13237 * integrate.c (copy_insn_list): Remove REG_LABEL notes.
13238
13239 2000-07-07 Jakub Jelinek <jakub@redhat.com>
13240
13241 * sibcall.c (uses_addressof): Add INMEM argument, check for
13242 current_function_internal_arg_pointer outside of MEM rtxs in addition
13243 to ADDRESSOFs.
13244 (sequence_uses_addressof): Update caller.
13245
13246 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
13247
13248 * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
13249 and friends.
13250
13251 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13252
13253 * system.h (UNION_INIT_ZERO): New macro for initializing union
13254 members in structs.
13255
13256 * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
13257
13258 2000-07-07 Neil Booth <NeilB@earthling.net>
13259
13260 * cpp.texi: Update.
13261
13262 Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com)
13263
13264 * final.c (final): Detect out of bounds array access to
13265 the insn_lengths array.
13266
13267 2000-07-07 Kazu Hirata <kazu@hxi.com>
13268
13269 * fold-const.c (fold): Fix a comment typo.
13270
13271 2000-07-07 Neil Booth <NeilB@earthling.net>
13272
13273 * cpp.texi: Update to new lexer.
13274
13275 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
13276
13277 * tradcpp.c: New file.
13278 * tradcif.y: New file.
13279 * tradcif.c: New generated file.
13280
13281 * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
13282 $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and
13283 dependencies of C. Install tradcpp from install-common, in
13284 $(libsubdir).
13285
13286 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
13287
13288 * cppinit.c: Include cppdefault.h. Refer to
13289 cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
13290 to GCC_INCLUDE_DIR and its length.
13291 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
13292 USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
13293 STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to
13294 cppdefault.h.
13295 (include_defaults_array): Move to cppdefault.c.
13296
13297 * cppdefault.h: New file.
13298 * cppdefault.c: New file.
13299
13300 * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
13301 (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
13302 (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
13303 this file.
13304
13305 Thu Jul 6 18:30:36 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13306
13307 * reload.c (push_reload): When seeing if can reuse a register,
13308 check extra registers against widest of INMODE and OUTMODE.
13309
13310 2000-07-06 Neil Booth <NeilB@earthling.net>
13311
13312 * cpplib.c: (_cpp_parse_assertion): Perform hash lookups
13313 based on full length of predicate.
13314
13315 2000-07-06 Hans-Peter Nilsson <hp@axis.com>
13316
13317 * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
13318 [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
13319
13320 2000-07-05 Kazu Hirata <kazu@hxi.com>
13321
13322 * h8300-proto.h: Fix formatting.
13323 * h8300.c: Likewise.
13324 * h8300.h: Likewise.
13325
13326 2000-07-05 Jim Wilson <wilson@cygnus.com>
13327
13328 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
13329 CCmode.
13330
13331 2000-07-05 Rodney Brown <RodneyBrown@pmsc.com>
13332
13333 * invoke.texi: Fix minor typos
13334 * md.texi: Fix minor typos
13335
13336 2000-07-05 Zack Weinberg <zack@wolery.cumb.org>
13337
13338 * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
13339
13340 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
13341
13342 * cpplex.c: Don't include sys/mman.h.
13343 (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
13344
13345 * cpplib.c: Include sys/mman.h and obstack.h.
13346 (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
13347 obstack.
13348 (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
13349 (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't
13350 bother freeing if stack entries (they will be freed with their buffer).
13351 (do_endif): Free if stack entries from the buffer obstack.
13352 (push_conditional): Allocate if stack entries from the buffer obstack.
13353
13354 (find_answer): Rename to _cpp_find_answer.
13355 (do_assert, do_unassert): Update.
13356
13357 * cpphash.h: Update prototypes.
13358 (xobnew): New convenience macro.
13359 * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
13360 Update comments.
13361 (struct cpp_hashnode): Remove disabled field.
13362
13363 * cppinit.c: Don't include hashtab.h or splay-tree.h.
13364 (report_missing_guard): Moved to cppfiles.c.
13365 (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
13366 cpp_init_includes.
13367 (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
13368 cpp_cleanup_includes. Don't destroy hashtab or
13369 all_include_files here.
13370 (cpp_finish): Use _cpp_report_missing_guards.
13371
13372 * cppfiles.c (report_missing_guard): Moved from cppinit.c.
13373 (_cpp_init_include_table): Rename _cpp_init_includes.
13374 (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
13375
13376 * cppexp.c (parse_assertion): Update for new name of
13377 find_answer.
13378
13379 * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
13380
13381 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
13382
13383 * cpplib.c (do_ident): s/VSPACE/EOF/
13384
13385 2000-07-05 Neil Booth <NeilB@earthling.net>
13386
13387 * cpplex.c: Fix trigraph replacement within strings.
13388
13389 2000-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13390
13391 * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
13392
13393 * xcoffout.c (assign_type_number): Constify.
13394 (xcoffout_source_file): Add static prototype. Don't needlessly
13395 cast away const-ness.
13396
13397 2000-07-04 Jason Merrill <jason@redhat.com>
13398
13399 * frame.h (frame_state): Move base_offset to end.
13400
13401 Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
13402
13403 * calls.c (emit_library_call_value_1): Revert previous change.
13404
13405 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
13406
13407 * fix-header.c (struct partial_proto): Remove unnecessary fields.
13408 (recognized_extern, recognized_function, read_scan_file):
13409 Update for new scheme.
13410 (check_protection): It's still a multiple include guard even
13411 if it doesn't always trigger.
13412 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
13413 new scheme.
13414 * scan.h: Declare struct cpp_token. Update prototypes.
13415
13416 2000-07-03 Neil Booth <neilb@earthling.net>
13417 Zack Weinberg <zack@wolery.cumb.org>
13418
13419 Complete overhaul of the lexer and macro expander.
13420
13421 * cpphash.c (object_defn, funct_defn, push_macro_expansion,
13422 arg, arglist, argdata, reflist, collect_objlike_expansion,
13423 collect_funlike_expansion, collect_params,
13424 warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
13425 unsafe_chars, macarg, compare_defs, special_symbol,
13426 scan_arguments, stringify, funlike_macroexpand,
13427 _cpp_quote_string, monthnames): Delete.
13428 (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
13429 _cpp_create_definition, _cpp_dump_definition,
13430 dump_hash_helper): Adjust.
13431 (find_param, count_params, parse_define, var_args_str,
13432 check_macro_redefinition, save_expansion): New.
13433
13434 * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
13435 parse_string, output_line_command, trigraph_replace,
13436 lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
13437 cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
13438 cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
13439 _cpp_skip_rest_of_line): Modify.
13440
13441 (maybe_macroexpand, skip_comment, copy_comment, skip_string,
13442 find_position, null_warning, bump_column, expand_name_space,
13443 pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
13444 _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
13445 _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
13446 _cpp_prescan): Delete.
13447
13448 (dump_param_spelling, process_directive, lex_next,
13449 is_macro_disabled, stringify_arg, expand_context_stack,
13450 output_token, make_string_token, alloc_number_token,
13451 special_symbol, duplicate_token, maybe_paste_with_next,
13452 can_paste, prevent_macro_expansion, restore_macro_expansion,
13453 get_temp_token, release_temp_tokens, quote_string,
13454 token_names, token_spellings, _cpp_expand_name_space,
13455 _cpp_glue_header_name, _cpp_reserve_name_space,
13456 digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
13457 placemarker_token, eof_token, cpp_context, macro_args,
13458 get_raw_token, parse_arg, parse_args, save_token,
13459 push_arg_context, push_macro_context, pop_context,
13460 do_pop_context, free_macro_args, _cpp_get_line,
13461 _cpp_run_directive): New.
13462
13463 * cpplib.c (validate_else, parse_include, push_conditional,
13464 pass_thru_directive, read_line_number, parse_ifdef,
13465 detect_if_not_defined, _cpp_check_directive, do_define,
13466 do_undef, do_include, do_import, do_include_next, do_error,
13467 do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
13468 top_pragmas, do_pragma_gcc, do_pragma_implementation,
13469 do_pragma_poison, do_pragma_system_header,
13470 do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
13471 dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
13472 do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
13473 cpp_defined): Update for new scheme.
13474 (strtoul_for_line, get_define_node, dump_macro_name,
13475 _cpp_check_linemarker, _cpp_parse_assertion): New.
13476 (_cpp_handle_directive, do_pragma_default): Delete.
13477
13478 * cpphash.h (struct predicate): Now struct answer.
13479 (enum spell_type, struct token_spelling, struct directive,
13480 directive_handler): New.
13481 Update prototypes. Remove unused macros.
13482 * cpplib.h: Update prototypes. Remove unused macros,
13483 structure definitions, and fields.
13484
13485 * cpperror.c (print_containing_files, v_message): Adjust.
13486 * cppexp.c (parse_assertion, lex, parse_escape,
13487 _cpp_parse_expr): Adjust.
13488 * cppfiles.c (open_include_file, _cpp_execute_include,
13489 _cpp_compare_file_date, cpp_read_file, read_include_file):
13490 Adjust.
13491 * cppinit.c (dump_special_to_buffer): Delete.
13492 (append_include_chain, merge_include_chains, cpp_reader_init,
13493 cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
13494 cpp_finish, handle_option, print_help): Adjust.
13495 * cppmain.c (main): Adjust.
13496
13497 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
13498
13499 * cppspec.c (lang_specific_driver): Use double quotes in error
13500 message.
13501
13502 Mon Jul 3 16:53:43 2000 Clinton Popetz <cpopetz@cygnus.com>
13503
13504 * calls.c (emit_library_call_value_1): Use valreg instead
13505 of hard_libcall_value.
13506
13507 2000-07-03 Geoff Keating <geoffk@cygnus.com>
13508
13509 * config/rs6000/rs6000.c (rs6000_emit_move): New function.
13510 * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
13511 * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
13512 (movhi): Likewise.
13513 (movqi): Likewise.
13514 (movdf): Likewise.
13515 (movsf): Likewise.
13516 (movdi): Likewise.
13517 (movti): Likewise.
13518
13519 * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
13520 mode instead of wider_mode is being used.
13521
13522 2000-07-03 Jakub Jelinek <jakub@redhat.com>
13523
13524 * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
13525 of 'r'. Use q_regs_operand.
13526 (andsi_1+2): Use q_regs_operand.
13527
13528 2000-07-03 Jakub Jelinek <jakub@redhat.com>
13529
13530 * builtins.c (get_memory_rtx): Always put into alias set 0.
13531
13532 2000-07-03 Nick Clifton <nickc@cygnus.com>
13533
13534 * config/arm/arm.md: Fix post increment and pre increment
13535 peepholes so that they do not generate UNPREDICATBLE opcodes.
13536 (ie ones where the increment clobbers the source/destination).
13537
13538 2000-07-01 Marek Michalkiewicz <marekm@linux.org.pl>
13539
13540 * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
13541 change too big for -mtiny-stack" a warning, if larger than 63.
13542 (out_set_stack_ptr): Change the logic so -mno-interrupts is
13543 always safe to use on possible future devices.
13544 (function_prologue): Write SPH before SPL, for consistency.
13545 If interrupt_func_p true, we know we have enabled interrupts.
13546 (avr_num_arg_regs): New function. Round up to even number of
13547 bytes if no -mpack-args or if calling a libgcc function.
13548 (function_arg, function_arg_advance): Use it.
13549 (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
13550 Output "movw" if available.
13551 (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
13552 of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
13553 (asm_output_section_name): Add blanks for consistent output.
13554 (encode_section_info): Set TREE_READONLY for progmem data to
13555 avoid gas warnings about changed section attributes.
13556 (avr_hard_regno_mode_ok): Force non-QImode data to start in
13557 even numbered registers on devices with "movw".
13558 * config/avr/avr.h (MASK_*): Define bits for target_flags.
13559 (TARGET_SWITCHES): Mark help strings for translation.
13560 Add new -mpack-args and -menhanced switches.
13561 (TARGET_OPTIONS): Mark help strings for translation.
13562 (progmem_section): Add section attributes.
13563 * config/avr/avr.md (*movhi, call_insn, call_value_insn):
13564 Output "movw" if available.
13565 (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
13566 New patterns.
13567 * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
13568 call convention (arguments aligned on even registers).
13569 (_cleanup, _exit): Make weak symbols libc can override.
13570
13571 2000-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13572
13573 * fp-bit.h: New file.
13574
13575 * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
13576 Comment #endif statements.
13577 (__thenan_sf, __thenan_df): Add missing braces around initializer.
13578
13579 Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
13580
13581 * gcse.c (compute_pre_data): Compute ae_kill using other local
13582 properties instead of calling compute_ae_kill.
13583
13584 * alias.c (init_alias_analysis): Do not call
13585 prologue_epilogue_contains until after reload has completed.
13586
13587 2000-07-02 Benjamin Chelf <chelf@codesourcery.com>
13588
13589 * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
13590 (genrtl_finish_compound_stmt): Likewise.
13591 (genrtl_compound_stmt): Change to return void.
13592
13593 * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
13594 move code from here to ...
13595 (genrtl_compound_stmt): ... here.
13596 (genrtl_finish_compound_stmt): Remove.
13597 (expand_stmt): Add comment.
13598
13599 2000-07-02 Zack Weinberg <zack@wolery.cumb.org>
13600
13601 * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
13602 and VOID_TYPE_P.
13603
13604 2000-07-02 Jakub Jelinek <jakub@redhat.com>
13605
13606 * cpplib.h (struct cpp_reader): New field include_depth.
13607 (struct cpp_printer): Rename last_bsd to last_id.
13608 * cppfiles.c (read_include_file): Bump include_depth.
13609 * cpplex.c (cpp_pop_buffer): Decrement include_depth.
13610 (output_line_command): Output correct #line if a header
13611 is including itself and is not protected against multiple inclusion.
13612 Use include_depth instead of buffer_stack_depth, last_id instead of
13613 last_bsd.
13614 * cppinit.c (cpp_start_read): Initialize last_id instead of
13615 last_bsd.
13616
13617 2000-07-01 Benjamin Chelf <chelf@codesourcery.com>
13618
13619 * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
13620 (c-semantics.o): New target.
13621
13622 * c-common.h (TREE_LANG_FLAG_?): Added documentation.
13623 (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
13624 (genrtl_clear_out_block): Likewise.
13625 (genrtl_goto_stmt): Likewise.
13626 (genrtl_expr_stmt): Likewise.
13627 (genrtl_decl_stmt): Likewise.
13628 (genrtl_if_stmt): Likewise.
13629 (genrtl_while_stmt): Likewise.
13630 (genrtl_do_stmt): Likewise.
13631 (genrtl_return_stmt): Likewise.
13632 (genrtl_for_stmt): Likewise.
13633 (genrtl_break_stmt): Likewise.
13634 (genrtl_continue_stmt): Likewise.
13635 (genrtl_scope_stmt): Likewise.
13636 (genrtl_switch_stmt): Likewise.
13637 (genrtl_case_label): Likewise.
13638 (genrtl_begin_compound_stmt): Likewise.
13639 (gerntl_finish_compound_stmt): Likewise.
13640 (genrtl_compound_stmt): Likewise.
13641 (genrtl_asm_stmt): Likewise.
13642 (genrtl_decl_cleanup): Likewise.
13643 (DECL_ANON_UNION_ELEMS): Likewise.
13644 (emit_local_var): Likewise.
13645 (make_rtl_for_local_static): Likewise.
13646 (expand_cond): Likewise.
13647 (expand_stmt): Likewise.
13648 (c_expand_return): Likewise.
13649 (c_expand_start_case): Likewise.
13650 (do_case): Likewise.
13651 (COMPOUND_STMT_NO_SCOPE): Likewise.
13652 (c_expand_asm_operands): Likewise.
13653 (NEW_FOR_SCOPE_P): New macro.
13654 (expand_expr_stmt_fn): New type.
13655
13656 (set_current_function_name_declared): Likewise.
13657 (current_function_name_declared): Likewise.
13658 (lang_expand_stmt): Likewise.
13659 (stmts_are_full_exprs_p): Likewise.
13660 (anon_aggr_type_p): Likewise.
13661 (lang_expand_expr_stmt): Likewise.
13662 (build_case_label): Likewise.
13663
13664 * c-decl.c (lang_expand_expr_stmt): Initialize.
13665 (stmts_are_full_exprs_p): Define.
13666 (current_function_name_declared): Likewise.
13667 (do_case): Likewise.
13668 (lang_expand_stmt): Likewise.
13669 (set_current_function_name_declared): Likewise.
13670 (anon_aggr_type_p): Likewise.
13671
13672 * c-semantics.c: New file.
13673 (expand_cond): Moved from cp/semantics.c.
13674 (genrtl_do_pushlevel): Likewise.
13675 (genrtl_clear_out_block): Likewise.
13676 (genrtl_goto_stmt): Likewise.
13677 (genrtl_expr_stmt): Likewise.
13678 (genrtl_decl_stmt): Likewise.
13679 (genrtl_if_stmt): Likewise.
13680 (genrtl_while_stmt): Likewise.
13681 (genrtl_do_stmt): Likewise.
13682 (genrtl_return_stmt): Likewise.
13683 (genrtl_for_stmt): Likewise.
13684 (genrtl_break_stmt): Likewise.
13685 (genrtl_continue_stmt): Likewise.
13686 (genrtl_scope_stmt): Likewise.
13687 (genrtl_switch_stmt): Likewise.
13688 (genrtl_case_label): Likewise.
13689 (genrtl_begin_compound_stmt): Likewise.
13690 (genrtl_finish_compound_stmt): Likewise.
13691 (genrtl_compound_stmt): Likewise.
13692 (genrtl_asm_stmt): Likewise.
13693 (genrtl_decl_cleanup): Likewise.
13694 (make_rtl_for_local_static): Moved from cp/decl.c.
13695 (emit_local_var): Likewise.
13696 (expand_stmt): Define.
13697
13698 * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
13699 (c_expand_return): Likewise.
13700 (c_expand_start_case): Likewise.
13701
13702 2000-07-01 Richard Henderson <rth@cygnus.com>
13703
13704 * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
13705 with the low 13 bits set.
13706 (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
13707 * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one
13708 of the low 13 bits into a CONST plus an adddi3.
13709 (load_symptr): Set RTX_UNCHANGING_P.
13710
13711 See ChangeLog.3 for earlier changes.
This page took 0.586581 seconds and 4 git commands to generate.