]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
flow.c (calculate_global_regs_live): Only force stack pointer live before reload.
[gcc.git] / gcc / ChangeLog
1 2000-12-05 Richard Henderson <rth@redhat.com>
2
3 * flow.c (calculate_global_regs_live): Only force stack pointer
4 live before reload. Force pic register live before reload.
5 (insn_dead_p): Don't protect pic references from deletion.
6
7 2000-12-05 Joseph S. Myers <jsm28@cam.ac.uk>
8
9 * invoke.texi: Add support for using texi2pod.pl. Don't use
10 @multitable.
11
12 2000-12-04 Nick Clifton <nickc@redhat.com>
13
14 * config/arm/arm.c (arm_override_options): Test 'insn_flags' not
15 'tune_flags' for XScale nature.
16 Remove spurious test of HARD_FLOAT and XScale flags.
17
18 * config/arm/arm.md (umulsidi3adddi): Restore "=&r" register
19 contraint, accidentally changed during XScale contribution.
20
21 * config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do
22 not create these functions if the target architecture does not
23 support Thumb instructions.
24
25 2000-12-04 Joseph S. Myers <jsm28@cam.ac.uk>
26
27 * ONEWS: New file with the current contents of NEWS up to EGCS
28 1.1.
29 * NEWS: Generate automatically from online release notes from EGCS
30 1.0 to GCC 2.95.2, using ../contrib/gennews.
31
32 2000-12-04 Neil Booth <neilb@earthling.net>
33
34 * tradcif.y: Move lexptr to top of file. Add rule to handle
35 assertions in conditional expressions.
36 * tradcpp.c (parse_answer): Assertions do not need to go to
37 end of line in conditional directives.
38 (parse_assertion): Get first character of identifiers correct.
39 (test_assertion): New function.
40 * tradcpp.h (test_assertion): New prototype.
41
42 2000-12-01 Rodney Brown <RodneyBrown@mynd.com>
43
44 * config.gcc: Fix typo for UnixWare 7.
45
46 2000-12-03 Phil Edwards <pme@sources.redhat.com>
47
48 * invoke.texi: Replace `pedwarns' with clearer text.
49
50 2000-12-04 Bruce Korb <bkorb@gnu.org>
51
52 * fixinc/Makefile.*(clean): don't clean autogenerated files.
53 (mainainer-clean): clean autogenerated files
54
55 2000-12-04 DJ Delorie <dj@redhat.com>
56
57 * md.texi: Add overview, clarify match_dup and define_expand.
58
59 2000-12-04 DJ Delorie <dj@redhat.com>
60
61 * print-tree.c (print_node): Target-specific builtins print
62 numbers, not names.
63
64 2000-12-04 Jason Merrill <jason@redhat.com>
65
66 * stor-layout.c (int_mode_for_mode): Handle MODE_VECTOR_INT,
67 MODE_VECTOR_FLOAT.
68
69 * diagnostic.c (report_problematic_module): s/function/module/.
70
71 * c-lex.h: Remove decl for check_newline.
72
73 2000-12-04 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
74
75 * README.APOLLO: Remove obsolete file.
76
77 2000-12-04 Neil Booth <neilb@earthling.net>
78
79 * cppinternals.texi: New file.
80
81 2000-12-04 Neil Booth <neilb@earthling.net>
82
83 * cppfiles.c (cpp_make_system_header): Take 2 booleans,
84 and operate on current buffer.
85 (cpp_read_file): Rename _cpp_read_file.
86 * cpplib.c (do_line, do_pragma_system_header): Update calls to
87 cpp_make_system_header.
88 * fix-header.c: Similarly.
89 * cpphash.h (_cpp_read_file): Move from...
90 * cpplib.h: ... here.
91 * cppinit.c (do_includes, cpp_start_read): Update appropriately.
92
93 2000-12-03 Kaveh R. Ghazi <ghazi@teal.rutgers.edu>
94
95 * builtins.c (expand_builtin_strspn, expand_builtin_strcspn):
96 Handle another transformation.
97
98 2000-12-03 Nick Clifton <nickc@redhat.com>
99
100 * config.gcc: Add support for StrongARM targets.
101 * config/arm/t-strongarm-elf: New file.
102 * config/arm/t-strongarm-coff: New file.
103 * config/arm/t-strongarm-pe: New file.
104 * config/arm/strongarm-pe.h: New file.
105
106 2000-12-03 Nick Clifton <nickc@redhat.com>
107
108 * NEWS: Mention XScale has been added.
109 * config.gcc: Add support for XScale targets.
110 * config/arm/arm.h: Add support for XScale processor.
111 * config/arm/arm.c: Add support for XScale processor.
112 * config/arm/arm.md: Add support for XScale processor.
113 * config/arm/t-xscale-elf: New file.
114 * config/arm/t-xscale-coff: New file.
115 * config/arm/xscale-elf.h: New file.
116 * config/arm/xscale-coff.h: New file.
117
118 2000-12-03 Richard Henderson <rth@redhat.com>
119
120 * bb-reorder.c (reorder_basic_blocks): Don't check for EH edges
121 unless exception handling is enabled, and if not using sjlj.
122
123 * builtins.c (expand_builtin_setjmp_setup): New.
124 (expand_builtin_setjmp_receiver): New.
125 (expand_builtin_setjmp): Split out _setup and _receiver functions.
126 Move argument parsing in from ...
127 (expand_builtin): ... here.
128 * except.c (receive_exception_label): Branch around receiver
129 unless new-style exceptions. Call expand_builtin_setjmp_receiver.
130 (start_dynamic_handler): Call expand_builtin_setjmp_setup.
131 * expr.h: Update builtin setjmp decls.
132
133 2000-12-03 Bruce Korb <bkorb@gcc.org>
134
135 * fixinc/mkfixinc.sh(build machine): Sometimes, there is no canonical
136 build machine name. Default to the target.
137
138 2000-12-03 Laurynas Biveinis <lauras@softhome.net>
139
140 * Makefile.in: use $(build_canonical), not $(canonical_build).
141
142 2000-12-03 Bernd Schmidt <bernds@redhat.co.uk>
143
144 * Makefile.in (OBJS): Add sched-rgn.o.
145 (sched-rgn.o): New rule. * haifa-sched.c (sched_verbose): No
146 longer static.
147 (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
148 INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
149 UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
150 MAX_BLOCKAGE_COST): Move to sched-int.h.
151 (MAX_RGN_BLOCKS, MAX_RGN_INSNS, INSN_REF_COUNT, FED_BY_SPEC_LOAD,
152 IS_LOAD_INSN, struct haifa_edge, edge_table, NEXT_IN, NEXT_OUT,
153 FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES,
154 OUT_EDGES, edgelst, struct region, nr_regions, rgn_table,
155 rgn_bb_table, block_to_bb, containing_rgn, RGN_NR_BLOCKS,
156 RGN_BLOCKS, BLOCK_TO_BB, BB_TO_BLOCK, CONTAINING_RGN,
157 debug_regions, find_single_block_region, find_rgns, too_large,
158 init_regions, current_nr_blocks, current_blocks, bitset, bitlst,
159 bitlst_table_last, bitlst_table_size, bitlst_table, bitset_member,
160 extract_bitlst, bblst, struct candidate, candidate_table,
161 bblst_table, bblst_size, bblst_last, IS_VALID, IS_SPECULATIVE,
162 SRC_PROB, target_bb, split_edges, compute_trg_info,
163 debug_candidate, debug_candidates, bbset, bbset_size, dom,
164 IS_RGN_ENTRY, IS_DOMINATED, prob, GET_SRC_PROB, edgeset,
165 rgn_nr_edges, rgn_edges, edgeset_size, edgeset_bitsize,
166 EDGE_TO_BIT, edge_to_bit, pot_split, ancestor_edges,
167 compute_dom_prob_ps, ABS_VALUE, INSN_PROBABILITY,
168 IS_SPECULATIVE_INSN, INSN_BB, MIN_DIFF_PRIORITY, MIN_PROBABILITY,
169 MIN_PROB_DIFF, check_live_1, update_live_1, check_live,
170 update_live, set_spec_fed, is_pfree, find_conditional_protection,
171 is_conditionally_protected, may_trap_exp, haifa_classify_insn,
172 is_prisky, is_exception_free, add_branch_dependences,
173 propagate_deps, compute_block_backward_dependences,
174 debug_dependencies, is_cfg_nonregular, build_control_flow,
175 new_edge, bb_deps, BITSET_UNION, BITSET_INTER, BITSET_DIFFER,
176 BITSET_INVERT, BITSET_ADD, BITSET_REMOVE, debug_regions,
177 UPDATE_LOOP_RELATIONS, INSN_TRAP_CLASS, WORST_CLASS, IS_REACHABLE,
178 CONST_BASED_ADDRESS_P, free_pending_lists, sched_target_n_insns,
179 target_n_insns, sched_n_insns, init_ready_list, deaths_in_region,
180 can_schedule_ready_p, new_ready, schedule_more_p, rgn_print_insn,
181 rgn_rank, region_sched_info): Move to sched-rgn.c.
182 (debug_reg_vector): Delete useless function.
183 (get_bb_head_tail): Likewise.
184 (insn_issue_delay, insn_cost, ready_add, get_block_head_tail,
185 no_real_insns_p, rm_line_notes, save_line_notes,
186 restore_line_notes, rm_redundant_line_notes, sched_init): No
187 longer static.
188 (rm_line_notes, save_line_notes, restore_line_notes,
189 schedule_block, set_priorities): Change argument to be a real
190 basic block, not one of haifa's "bb"s. All callers changed
191 (rm_other_notes): Initialize note_list here, not in
192 schedule_region.
193 (sched_finish): New function, called from schedule_insn. * *
194 sched-int.h (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
195 INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
196 UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
197 MAX_BLOCKAGE_COST): Moved here from haifa-sched.c.
198 (get_block_head_tail, no_real_insns_p, rm_line_notes,
199 save_line_notes, restore_line_notes, rm_redundant_line_notes,
200 rm_other_notes, insn_issue_delay, set_priorities, schedule_block,
201 sched_init, sched_finish, ready_add, insn_cost): Declare.
202
203 2000-12-03 Laurynas Biveinis <lauras@softhome.net>
204 Bruce Korb <bkorb@gnu.org>
205
206 * Makefile.in: pass $(build_canonical) to mkfixinc.sh.
207 * fixinc/mkfixinc.sh: accept build system name as an argument.
208 Use it for choosing the fix build method. Use the target for
209 selecting special fix rules.
210
211 2000-12-03 Bernd Schmidt <bernds@redhat.co.uk>
212
213 * Makefile.in (OBJS): Add sched-deps.o.
214 (sched-deps.o): New rule.
215 * haifa-sched.c (struct deps, struct haifa_insn_data): Moved to
216 sched-int.h.
217 (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved to
218 sched-int.h.
219 (SIZE_FOR_MODE): Delete unused macro.
220 (reg_known_equiv_p, reg_known_value, reg_pending_clobbers,
221 reg_pending_sets, reg_pending_sets_all, true_dependency_cache,
222 anti_dependency_cache, output_dependency_cache,
223 forward_dependency_cache): Variables moved to sched-deps.c.
224 (add_dependence, remove_dependence, find_insn_list,
225 find_insn_mem_list, add_insn_mem_dependence, flush_pending_lists,
226 sched_analyze_insn, sched_analyze_1, sched_analyze_2,
227 sched_analyze, group_leader, compute_forward_dependences,
228 init_deps, free_deps, init_dependency_caches, free_dependency_caches):
229 Functions moved to sched-deps.c.
230 (schedule_region): Call init_deps_global and finish_deps_global
231 instead of directly manipulating dependency data structures.
232 * sched-deps.c: New file.
233 (init_deps_global, finish_deps_global): New functions.
234 * sched-int.h (struct haifa_insn_data, struct deps): Moved here from
235 haifa-sched.c.
236 (h_i_d): Declare.
237 (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved here
238 from haifa-sched.c.
239
240 * Makefile.in (OBJS): Add sched-vis.o.
241 (sched-vis.o): New rule.
242 * haifa-sched.c (get_unit_last_insn): New function.
243 (sched_dump, insn_unit, actual_hazard_this_instance): No longer
244 static.
245 (schedule_block): Call visualize_alloc and visualize_free. Delete
246 spurious return statement.
247 (init_target_units, insn_print_units, get_visual_tbl_length,
248 init_block_visualization, print_block_visualization, safe_concat,
249 visualize_scheduled_inns, visualize_no_unit, visualize_stall_cycles,
250 print_exp, print_value, print_pattern, print_insn, target_units,
251 MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, visual_tbl,
252 n_vis_no_unit, vis_no_unit): Move scheduling visualization
253 functions/variables...
254 * sched-vis.c: ...here. New file.
255 (visualize_alloc, visualize_free): New functions.
256 (visualize_scheduled_insns, visualize_stall_cycles,
257 print_block_visualization): Lose basic block argument. All callers
258 changed.
259 (visualize_scheduled_insns): Use new function get_unit_last_insn.
260 * sched-int.h (current_sched_info, sched_dump): Declare.
261 (init_target_units, insn_print_units, init_block_visualization,
262 print_block_visualization, visualize_scheduled_inns,
263 visualize_no_unit, visualize_stall_cycles, visualize_alloc,
264 visualize_free): Declare functions.
265
266 * sched-int.h: New file.
267 * Makefile.in (haifa-sched.o): Depend on it.
268 * haifa-sched.c: Include it.
269 (no_real_insns_p): New function.
270 (current_sched_info): New static variable.
271 (__inline, HAIFA_INLINE): Moved to sched-int.h.
272 (get_block_head_tail): Minor cleanup.
273 (init_ready_list, can_schedule_ready_p, new_ready, schedule_more_p,
274 rgn_print_insn, rgn_rank): New functions, broken out of
275 rank_for_schedule, schedule_insn and schedule_block, where they
276 are now called through function pointers in current_sched_info.
277 (queue_insn, schedule_insn, queue_to_ready, debug_ready_list,
278 print_insn): To display uid and block number, call the print_insn
279 function pointer in current_schedule_info.
280 (region_sched_info): New static variable.
281 (sched_target_n_insns, sched_n_insns, target_n_insns): New global
282 variables, moved out of schedule_block.
283 (schedule_block): Return void. All callers changed.
284 Move some of the setup code into schedule_region. Get head/tail
285 from current_sched_info, and update it when done.
286 (schedule_region): Slightly rearranged, some code moved here from
287 schedule_block. Call no_real_insns_p to avoid doing work for a
288 block that consists only of notes and labels.
289 (schedule_insns): Initialize current_sched_info.
290
291 2000-12-03 Neil Booth <neilb@earthling.net>
292
293 * cppmacro.c (funlike_invocation_p): Re-disable macros enabled
294 by contexts drops AFTER argument pre-expansion, so that they
295 remain enabled during argument pre-expansion.
296 (_cpp_pop_context): Unconditionally re-enable a macro when
297 dropping a context level.
298
299 2000-12-03 Manfred Hollstein <manfredh@redhat.com>
300
301 * arm/t-linux (MULTILIB_OPTIONS): Comment.
302 (MULTILIB_DIRNAMES): Likewise.
303 (EXTRA_MULTILIB_PARTS): Likewise.
304 (LIBGCC): Likewise.
305 (INSTALL_LIBGCC): Likewise.
306
307 2000-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
308
309 * builtins.c (expand_builtin_strcat, expand_builtin_strncat,
310 expand_builtin_strspn, expand_builtin_strcspn): New functions.
311 (expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
312 BUILT_IN_STRSPN and BUILT_IN_STRCSPN.
313
314 * builtins.def (BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
315 BUILT_IN_STRSPN, BUILT_IN_STRCSPN): New entries.
316
317 * c-common.c (c_common_nodes_and_builtins): Declare builtin
318 strcat, strncat, strspn and strcspn.
319 (string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'.
320
321 * extend.texi (strcat, strcspn, strncat, strspn): Document new
322 builtins.
323
324 2000-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
325
326 * builtins.c (expand_builtin_strcmp): Use const*_rtx when
327 expanding strcmp at compile-time. Add another transformation.
328 (expand_builtin_strncmp): Add more transformations. Call
329 expand_builtin_memcmp, not expand_builtin_strcmp, under
330 appropriate conditions if HAVE_cmpstrsi.
331
332 2000-12-02 David Edelsohn <edelsohn@gnu.org>
333
334 * rs6000.md (anddi3_internal[23]): Prefer rldic? over andis
335 instruction.
336 (cr logic): Really make operands sequential.
337
338 2000-12-02 Geoffrey Keating <geoffk@redhat.com>
339
340 * c-common.c (combine_strings): When the ISO C standard specifies
341 the maximum length of a string, it doesn't include the trailing
342 zero byte.
343
344 * cpplib.c (do_ifdef): Add check_eol() call.
345 (do_ifndef): Likewise.
346
347 2000-12-02 Daniel Berlin <dberlin@redhat.com>
348 Bruce Korb <bkorb@gnu.org>
349
350 * fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/
351 * fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos*
352 * fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build
353 * fixinc/fixfix.c(wrap_fix): avoid wrapping files that
354 use the "__need_" hackery. It breaks them.
355 * fixinc/fixincl.c(process - SEPARATE_FIX_PROC):
356 Sometimes on DOS and BeOS the temp output file cannot be opened.
357 Skip the file noisily. Ought to be fixed instead.
358
359 2000-12-02 Bruce Korb <bkorb@gnu.org>
360
361 From: 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
362
363 * fixfixes.c (emit_gnu_type, format_write): Prototype.
364 (format_write, char_macro_use_fix, char_macro_def_fix): Use gcc's
365 custom uppercase ctype macros.
366 * fixincl.c (do_version): Make static and add ATTRIBUTE_NORETURN.
367 Use gcc's custom uppercase ctype macros.
368 (main): Prototype.
369 (machine_matches): Add static prototype and constify variable.
370 (create_file, test_test, egrep_test): Add static prototype.
371 (quoted_file_exists): Likewise, and constify parameters.
372 (extract_quoted_files, internal_fix, start_fixer, fix_applies,
373 write_replacement, test_for_changes): Add static prototype.
374 (write_replacement, test_for_changes): Delete excess argument to
375 `create_file'.
376 * fixtests.c (test): Make static.
377 * server.c (load_data, sig_handler, server_setup, find_shell): Add
378 static prototype.
379 (sig_handler): Mark parameter with ATTRIBUTE_UNUSED.
380
381 2000-12-02 Bruce Korb <bkorb@gnu.org>
382
383 * fixnc/mkfixinc.sh(msdosdjgpp): remove from fixincludes exception list
384 (per Laurynas Biveinis <lauras@softhome.net>)
385
386 2000-12-02 Richard Earnshaw <rearnsha@arm.com>
387
388 * arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New
389 macros.
390 (REGNO_MODE_OK_FOR_BASE_P): Define in terms of above.
391 (REGNO_OK_FOR_FOR_BASE_P): Delete.
392 (ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for
393 both strict and non-strict uses.
394 (REG_MODE_OK_FOR_BASE_P): Define in terms of above.
395 (ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros.
396 (REG_OK_FOR_INDEX_P): Define in terms of above.
397 (REG_OK_FOR_BASE_P): Delete.
398 (REG_OK_FOR_PRE_POST_P): Delete.
399 (ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P.
400 (ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P.
401 (ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX.
402 (THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET.
403 (ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes. Use ARM
404 specific variants rather than general ones. Use ARM_REG_OK_FOR_BASE_P
405 in pre/post increment cases.
406 (THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb.
407 (ARM_LEGITIMIZE_ADDRESS): Similarly.
408 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly.
409 * arm.c (legitimate_pic_address): Similarly.
410
411 2000-12-02 Neil Booth <neilb@earthling.net>
412
413 * tradcpp.c (struct answer, parse_assertion, parse_answer,
414 canonicalize_text, find_answer): New.
415 (do_assert, do_unassert): Provide appropriate function bodies.
416 (union hashval): New member answers.
417
418 2000-11-23 Marek Michalkiewicz <marekm@linux.org.pl>
419
420 * config/avr/avr.md: Document UNSPEC usage.
421 (*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump):
422 Make operand 0 input only, clobber it. Use UNSPEC, not a bogus
423 MEM for program memory word reference. Do not add the label to
424 the table index in each of the asm output templates, instead ...
425 (casesi): ... do it in RTL. Adjust to match the above change.
426
427 2000-12-02 Bernd Schmidt <bernds@redhat.co.uk>
428
429 * c-common.c (PTRDIFF_TYPE): Provide default here, ...
430 * c-decl.c: ... not here.
431
432 * haifa-sched.c (sched_dump): Renamed from dump. All users changed.
433 (old_max_uid): New variable.
434 (compute_forward_dependences): Renamed from
435 compute_block_forward_dependences; changed to accept block head and
436 tail instead of block number. Caller changed.
437 (free_deps, init_dependency_caches, free_dependency_caches,
438 init_regions, sched_init): New functions, split out from
439 schedule_insns and compute_block_backward_dependences.
440
441 2000-12-02 Neil Booth <neilb@earthling.net>
442
443 * cppexp.c (parse_number): Update diagnostic test.
444
445 2000-12-02 Bernd Schmidt <bernds@redhat.co.uk>
446
447 * reload1.c (free_for_value_p): New function, frontend to
448 reload_reg_free_for_value_p. All callers of the latter now call
449 this function with an additional mode argument.
450
451 2000-12-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
452
453 * install.texi (Configurations): Remove obsolete documentation for
454 hppa*-*-*.
455
456 2000-12-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
457
458 * install.texi (Installation): Remove obsolete description for
459 libstdc++ which is now an integral part of GCC.
460
461 2000-12-01 Jim Blandy <jimb@redhat.com>
462
463 * dbxout.c (dbxout_parms): Correctly describe parameters passed by
464 invisible reference in registers, but then spilled to the stack.
465 Remove code to emit a second stab for such parameters; it attempts
466 to describe the value's location by introducing a synthetic C++
467 `reference' type, and then saying the stack slot has that
468 reference type. This loses type information (breaking GDB's
469 `ptype' command, among other things) just to describe a location
470 which stabs can represent correctly in other ways.
471
472 2000-12-01 Alexandre Oliva <aoliva@redhat.com>
473
474 * final.c (output_addr_const) <PLUS>: Don't assume at least one
475 operand is a CONST_INT.
476
477 * config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS.
478 (machine_dependent_reorg): Split all insns.
479 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute
480 reg_class_contents[SIBCALL_REGS].
481 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add SIBCALL_REGS.
482 * config/sh/sh.md (calli_pcrel, call_pcrel, call_valuei_pcrel,
483 call_value_pcrel, call, call_value, sibcall): Match even when
484 not optimizing.
485 (sibcalli_pcrel, sibcall_pcrel): Likewise. Use constraint `k'
486 for call address.
487 (sibcalli): Likewise.
488
489 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
490
491 * c-common.c (warn_format, warn_format_y2k,
492 warn_format_extra_args, warn_format_nonliteral): Define.
493 (check_format_info): Check warn_format_nonliteral and
494 warn_format_extra_args.
495 (check_format_info_main): Check warn_format_y2k.
496 (set_Wformat): New function.
497 * c-common.h (warn_format_y2k, warn_format_extra_args,
498 warn_format_nonliteral, set_Wformat): Declare.
499 * c-decl.c (warn_format): Remove definition.
500 (c_decode_option): Handle -Wformat-nonliteral,
501 -Wno-format-extra-args and -Wno-format-y2k, and negated versions.
502 Use set_Wformat.
503 * invoke.texi: Document these new options and -Wformat=2.
504 * toplev.c (documented_lang_options): Add these new options.
505
506 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
507
508 * builtins.def (BUILT_IN_IMAXABS): Add.
509 * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS.
510 * c-common.c (c_common_nodes_and_builtins): Create builtin
511 functions __builtin_imaxabs, and plain imaxabs unless
512 flag_no_nonansi_builtin outside C99 mode.
513 (expand_tree_builtin): Handle BUILT_IN_IMAXABS.
514 * extend.texi: Document builtin imaxabs.
515
516 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
517
518 * c-common.c: Include "defaults.h".
519 (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Define.
520 (c_common_nodes_and_builtins): 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 * c-common.h (identifier_global_value): Declare.
525 * c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
526 (init_decl_processing): Don't create string_type_node,
527 const_string_type_node, wint_type_node, intmax_type_node,
528 uintmax_type_node, default_function_type, ptrdiff_type_node and
529 unsigned_ptrdiff_type_node.
530 (identifier_global_value): New function.
531
532 2000-12-01 Neil Booth <neilb@earthling.net>
533
534 * cppinit.c (initialize): Forgotten prototype.
535 * cpplex.c (_cpp_lex_token): Loop until not skipping.
536 Always clear PREV_WHITE upon meeting a new line.
537 * cpplib.c (end_directive): Set pfile->skipping after
538 skip_rest_of_line.
539 * cpplib.h (cpp_reader): Remove macro_pos.
540 * cppmacro.c (cpp_get_line): Don't do anything special inside
541 macros.
542 (parse_arg): Add PREV_WHITE if a token appears after new lines.
543 (funlike_invocation_p): Save and restore the output position
544 over a successful check for a '('.
545 (enter_macro_context): Delete uses of macro_pos.
546 (cpp_get_token): Don't use pfile->skipping.
547
548 2000-12-01 Phil Edwards <pme@sources.redhat.com>
549
550 * diagnostic.c: Fix typos in comments.
551 * diagnostic.h: Likewise.
552
553 2000-11-30 Phil Edwards <pme@sources.redhat.com>
554
555 * rtl.texi (Machine Modes): Document BImode and OImode.
556
557 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
558
559 * gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and
560 .FPP.
561
562 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
563
564 * c-decl.c (grokdeclarator): If pedantic, warn about arrays with
565 incomplete element type.
566 (grokparms): Before checking for incomplete parameter type, check
567 the type isn't error_mark_node.
568
569 2000-12-01 Jakub Jelinek <jakub@redhat.com>
570
571 * builtins.c (target_char_cast): New function.
572 (expand_builtin_strchr): Use it.
573 (expand_builtin_strrchr): Use it.
574 (builtin_memset_read_str): New function.
575 (expand_builtin_memset): Use target_char_cast.
576 Try to optimize memset with second argument non-zero using
577 store_by_pieces.
578
579 2000-11-30 Marek Michalkiewicz <marekm@linux.org.pl>
580
581 * install.texi (avr): Replace incomplete list of supported MCU
582 types with a link to the current one ...
583 * invoke.texi (AVR Options): ... here. Update -mmcu= to list
584 all supported MCU types. Document -minit-stack= default.
585 Document new options -mno-tablejump, -mtiny-stack.
586 * md.texi (AVR family): Fix typo in 'w' constraint letter
587 description. Document 'q'. Update 'O'.
588
589 2000-12-01 Bernd Schmidt <bernds@redhat.co.uk>
590
591 * combine.c (cant_combine_insn_p): Only disallow insns involving
592 hard regs if they are reg-reg moves.
593 (try_combine, can_combine_p, combinable_i3pat): Delete old
594 SMALL_REGISTER_CLASSES tests.
595
596 2000-12-01 Alexandre Oliva <aoliva@redhat.com>
597
598 * config/sh/sh.c (shiftcosts): Don't get INTVAL before testing
599 whether X is a CONST_INT.
600 (addsubcosts): Likewise.
601
602 * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of
603 mis-used XINT.
604 (ARG_POINTER_REGNUM): Set to AP_REG.
605
606 2000-11-30 Alexandre Oliva <aoliva@redhat.com>
607
608 * config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
609 splits): Only match on TARGET_SH4.
610
611 * combine.c (try_combine): Disregard USEs when updating LOG_LINKS
612 of subsequent insns.
613
614 2000-11-30 Richard Henderson <rth@redhat.com>
615
616 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable.
617 * config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
618
619 2000-11-30 Richard Henderson <rth@redhat.com>
620
621 * config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn.
622 (DO_SELECT_SECTION): New.
623 (SELECT_SECTION): Use it.
624 (UNIQUE_SECTION_P): New.
625 (UNIQUE_SECTION): New.
626
627 2000-11-30 Alexandre Oliva <aoliva@redhat.com>
628
629 * c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status
630 from va_list before using it.
631
632 2000-11-30 Michael Matz <matzmich@cs.tu-berlin.de>
633
634 * flow.c (make_edge): Early out, if no flags to set.
635 (calculate_global_regs_live): Clear out garbage only when necessary.
636
637 * simplify-rtx.c (varray_type used_regs): New.
638 (clear_table): Use it to only clear necessary items.
639 (cselib_lookup, cselib_record_set): Remember newly set items.
640 (cselib_update_varray_sizes, cselib_init): Initialize and grow
641 used_regs.
642
643 * local-alloc.c (update_equiv_regs): New local `cleared_regs'.
644 Move clearing of dead regs out of insn-loop.
645
646 2000-11-30 Richard Henderson <rth@redhat.com>
647
648 * calls.c (expand_call): Emit queued insns before creating
649 the tail recursion sequence.
650
651 2000-11-30 J. David Anglin <dave.anglin@nrc.ca>
652 Bruce Korb <bkorb@gnu.org>
653
654 * fixinc/inclhack.def(): prevent dual double definition protection
655 * fixinc/fixincl.x: regenerate
656
657 2000-11-29 Loren J. Rittle <ljrittle@acm.org>
658
659 * fixinc/Makefile.in (fixincl.x): Explicitly state the
660 location of the generated file.
661
662 2000-11-30 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
663
664 * README.FRESCO: Remove obsolete file.
665
666 2000-11-30 Mark Kettenis <kettenis@gnu.org>
667
668 * configure.in: Reorganize handling of *-*-gnu*, to share target
669 specific make details with Linux. Update comments to clarify
670 the distinction between GNU/Linux and GNU/Hurd.
671 * config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS,
672 TARGET_LIBGCC2_CFLAGS): Remove. We now use the settings from
673 config/t-linux for the Hurd.
674
675 2000-11-30 Stephane Carrez <Stephane.Carrez@worldnet.fr>
676
677 * config/mn10200/udivmod.c, config/mn10200/divmod.c,
678 config/mn10200/udivmodsi4.c: Moved from here.
679 * config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here.
680 * config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic
681 C division functions.
682 * config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise.
683
684 Thu Nov 30 01:12:52 2000 Jeffrey A Law (law@cygnus.com)
685
686 * pa.md (conditional moves): Avoid holes in operand list.
687 (mod, umod patterns): Similarly.
688 (variable extract/shift patterns): Similarly.
689
690 2000-11-30 Neil Booth <neilb@earthling.net>
691
692 * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
693 maybe_objc_check_decl, build_objc_string_object,
694 objc_declare_alias, objc_declare_class, build_message_expr,
695 build_protocol_expr, build_selector_expr, build_encode_expr,
696 get_class_ivars, start_class, start_protocol): Remove
697 redundant code, assuming doing_objc_thang is true.
698
699 2000-11-29 John David Anglin <dave@hiauly1.hia.nrc.ca>
700
701 * pa.c (restore_unscaled_index_insn_codes): Delete procedure.
702 (record_unscaled_index_insn_codes): Likewise.
703 (unscaled_index_insn_codes): Delete.
704 (max_unscaled_index_insn_codes_uid): Delete.
705 (output_function_prologue, output_function_epilogue, pa_reorg):
706 Don't use the unscaled index insn hack.
707
708 * pa.md: Remove hack from all index insns to reverse the operand
709 order of frame and stack pointer references incorrectly created
710 in the reload pass.
711
712 * function.h (emit_status): Delete member regno_pointer_flag and
713 rename regno_pointer_flag_length to regno_pointer_align_length.
714 Delete define for REGNO_POINTER_FLAG.
715 * integrate.h (inline_remap): Delete member regno_pointer_flag.
716 Add member x_regno_reg_rtx.
717 * rtl.h (rtx_def): Use frame_related bit to indicate register is
718 a pointer in REG expressions. Define REG_POINTER macro.
719 * alias.c (find_base_value, find_base_term): Use REG_POINTER
720 instead of REGNO_POINTER_FLAG.
721 * combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
722 * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
723 of regno_pointer_flag_length. Remove code which refers to
724 regno_pointer_flag.
725 (mark_reg_pointer): Use REG_POINTER.
726 (free_emit_status): Remove code which refers to regno_pointer_flag.
727 (init_emit, mark_emit_status): Likewise.
728 * flow.c (dump_flow_info): Likewise.
729 * function.c (preserve_temp_slots): Likewise.
730 * integrate.c (expand_inline_function, copy_rtx_and_substitute):
731 Use x_regno_reg_rtx instead of regno_pointer_flag for function
732 pointer determination in map.
733 * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
734 * predict.c (estimate_probability): Likewise.
735 * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
736 * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
737 regno_pointer_flag for function pointer determination in map.
738 * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
739 REG_POINTER.
740 * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
741 Use REG_POINTER.
742 (restore_unscaled_index_insn_codes): Revise comment.
743
744 * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
745
746 2000-11-30 Joseph S. Myers <jsm28@cam.ac.uk>
747
748 * extend.texi: Update documentation for attributes.
749
750 2000-11-29 David O'Brien <obrien@FreeBSD.org>
751
752 * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define.
753 (ASM_DECLARE_OBJECT_NAME): Same.
754 (ASM_FILE_END): Same.
755 (ASM_FINISH_DECLARE_OBJECT): Same.
756 (ASM_IDENTIFY_GCC): Same.
757 (ASM_IDENTIFY_LANGUAGE): Same.
758 (ASM_OUTPUT_CONSTRUCTOR): Same.
759 (ASM_OUTPUT_DEF): Same.
760 (ASM_OUTPUT_DESTRUCTOR): Same.
761 (ASM_OUTPUT_EXTERNAL_LIBCALL): Same.
762 (ASM_OUTPUT_SECTION_NAME): Same.
763 (ASM_WEAKEN_LABEL): Same.
764 (BSS_SECTION_ASM_OP): Same.
765 (COMMON_ASM_OP): Same.
766 (CONST_SECTION_ASM_OP): Same.
767 (CONST_SECTION_FUNCTION): Same.
768 (CTORS_SECTION_ASM_OP): Same.
769 (DTORS_SECTION_ASM_OP): Same.
770 (ESCAPES): Same.
771 (FINI_SECTION_ASM_OP): Same.
772 (IDENT_ASM_OP): Same.
773 (IDENT_ASM_OP): Same.
774 (INIT_SECTION_ASM_OP): Same.
775 (INT_ASM_OP): Same.
776 (MAX_OFILE_ALIGNMENT): Same.
777 (SBSS_SECTION_ASM_OP): Same.
778 (SDATA_SECTION_ASM_OP): Same.
779 (SECTION_FUNCTION_TEMPLATE): Same.
780 (SELECT_SECTION): Same.
781 (SE_CONST_SECTION): Same.
782 (SIZE_ASM_OP): Same.
783 (SKIP_ASM_OP): Same.
784 (STRING_ASM_OP): Same.
785 (STRING_LIMIT): Same.
786 (TYPE_ASM_OP): Same.
787 (TYPE_OPERAND_FMT): Same.
788
789 2000-11-29 Neil Booth <neilb@earthling.net>
790
791 * c-decl.c (c_decode_option): Don't handle -lang-objc.
792 * objc/lang-options.h: Remove -lang-objc.
793 * objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
794 * objc/objc-act.c (lang_init_options): Set c_language.
795
796 2000-11-29 Jakub Jelinek <jakub@redhat.com>
797
798 * expr.c (can_store_by_pieces): Reinitialize max_size for reverse
799 tests.
800
801 2000-11-29 Neil Booth <neilb@earthling.net>
802
803 * c-pragma.c (init_pragma): Update for parse_in type change.
804
805 2000-11-29 Laurynas Biveinis <lauras@softhome.net>
806
807 * configure.in: recognize DOS-style absolute paths.
808
809 2000-11-29 Jakub Jelinek <jakub@redhat.com>
810
811 * expr.h (store_by_pieces): Add prototype.
812 (can_store_by_pieces): Likewise.
813 * expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
814 (can_store_by_pieces): New.
815 (store_by_pieces): New.
816 (clear_by_pieces): New.
817 (clear_by_pieces_1): New.
818 (store_by_pieces_1): Renamed from clear_by_pieces, handle storing
819 arbitrary compiler generated constants into memory block.
820 (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
821 * builtins.c (c_readstr): New.
822 (builtin_memcpy_read_str): New.
823 (expand_builtin_memcpy): If src is string constant and
824 emit_block_move would move it by pieces, compute integer constants
825 from the string and store it into memory block instead.
826 (builtin_strncpy_read_str): New.
827 (expand_builtin_strncpy): If N is not constant zero and c_strlen does
828 not return INTEGER_CST, don't optimize.
829 If N is larger than strlen(src) + 1, try to copy the string
830 including padding with store_by_pieces.
831 (expand_builtin_strcmp): If both arguments have side effects, don't
832 optimize.
833 (expand_builtin_fputs): If STR has side effects, don't optimize.
834
835 2000-11-29 Richard Earnshaw <rearnsha@arm.com>
836
837 * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn):
838 Add use of link register.
839
840 2000-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
841
842 * extend.texi: Update documentation for default format attributes.
843
844 Tue Nov 28 21:56:45 2000 Jeffrey A Law (law@cygnus.com)
845
846 * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
847 a list, to keep track of the sections.
848
849 2000-11-28 Nick Clifton <nickc@redhat.com>
850
851 * config/arm/arm.md (pic_load_addr): Split into
852 pic_load_addr_arm and pic_load_addr_thumb.
853
854 * config/arm/arm.c (legitimize_pic_address): Generate either
855 ARM or Thumb versions of pic_load_addr.
856 (arm_finalize_pic): Generate either ARM or Thumb versions of
857 pic_load_addr.
858
859 2000-11-28 Richard Henderson <rth@redhat.com>
860
861 * calls.c (expand_call): Defer const/pure NO_DEFER_POP until
862 after sibcall do_pending_stack_adjust.
863
864 Wed Nov 29 00:08:23 2000 J"orn Rennecke <amylaar@redhat.com>
865
866 * jump.c (delete_insn): Check that REG_LABEL note actually contains
867 a CODE_LABEL.
868
869 2000-11-28 Neil Booth <neilb@earthling.net>
870
871 * c-common.h: Remove flag_digraphs.
872 * c-decl.c: Remove flag_digraphs.
873 (c_decode_option): Don't set it.
874 * c-lex.c (init_c_lex): Don't do anything for digraphs.
875
876 2000-11-28 Richard Henderson <rth@redhat.com>
877
878 * c-parse.in (finish_parse): Update for parse_in type change.
879 (_yylex): Likewise.
880
881 2000-11-28 Neil Booth <neilb@earthling.net>
882
883 * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
884 indicating whether to scan all buffers on the stack or
885 just one.
886 * cppinit.c (do_includes): Update.
887 * cppmain.c (main): Update.
888 * cpplib.h: Update prototype.
889
890 2000-11-28 Richard Henderson <rth@redhat.com>
891
892 * genoutput.c (validate_insn_operands): New.
893 (gen_insn): Call it.
894
895 * config/alpha/alpha.md (divmodsi_internal): Renumber operands.
896 (divmoddi_internal): Likewise.
897 * config/arm/arm.md (andsi3_compare0_scratch): Likewise.
898 * config/i960/i960.md (branch patterns): Likewise.
899 * config/ia64/ia64.md (tbit_and_0): Likewise.
900 (tbit_and_1, tbit_or_0, tbit_or_1): Likewise.
901 * config/m68k/m68k.md (zero_extract memory patterns): Likewise.
902 * config/mips/mips.md (divmodsi4_internal): Likewise.
903 (divmoddi4_internal): Likewise.
904 * config/rs6000/rs6000.md (call patterns): Likewise.
905 * config/sh/sh.md (movsi_y): Likewise.
906 * config/sparc/sparc.md: Comment out if 0 v8p shift pattern.
907
908 2000-11-28 Richard Henderson <rth@redhat.com>
909
910 * config.gcc: Kill residual pyramid support.
911
912 2000-11-28 Neil Booth <neilb@earthling.net>
913
914 * c-lex.h (parse_in): Change parse_in to a cpp_reader *.
915 * c-decl.c (c_decode_option): Update to match.
916 * c-lex.c (init_c_lex, yyparse): Update to match.
917 * c-lang.c (lang_init_options): Use cpp_create_reader.
918 * cppinit.c (cpp_init): Rename initialize.
919 (cpp_reader_init): Rename cpp_create_reader. Create the
920 reader. Initialize cpplib if appropriate.
921 * cpplib.h (cpp_create_reader) New prototype.
922 (cpp_init, cpp_reader_init): Delete prototypes.
923 * cppmain.c (general_init, setup_callbacks): New functions.
924 (main): Use them.
925 * fix-header.c (scan_in): Change type to cpp_reader *.
926 (read_scan_file): Update for new cpplib interface and scan_in type.
927
928 * cp/decl.c (parse_in): Change to cpp_reader *.
929 (lang_decode_option): Update.
930 * cp/lex.c (lang_init_options): Use new cpplib interface.
931 (init_cp_pragma, finish_parse, handle_pragma_implementation): Update.
932 * cp/spew.c (read_token): Update.
933 * objc/objc-act.c (lang_init_options): Update new cpplib interface.
934
935 2000-11-28 Jakub Jelinek <jakub@redhat.com>
936
937 * loop.c (load_mems): Avoid using next_label to find end_label. If
938 jumping outside of the loop (other than loop end), don't hoist MEMs
939 out of loop.
940
941 2000-11-28 Jan Hubicka <jh@suse.cz>
942
943 * calls.c (expand_call): Don't disable tail recursion based
944 on the loop nest.
945
946 2000-11-28 Neil Booth <neilb@earthling.net>
947
948 * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
949 (struct directive): Drop 4th argument from handlers.
950 (do_define, do_line, do_include, do_undef, do_else, do_elif,
951 do_endif): Similarly.
952 (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
953 (do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
954 (make_definition, make_undef): Take a const char*.
955 (make_assertion): New function.
956 (struct directive_table): Update.
957 (main): Handle -A command line argument.
958 (handle_directive): Drop fourth handler argument.
959
960 2000-11-28 Bernd Schmidt <bernds@redhat.co.uk>
961
962 * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination
963 is anything but REG or MEM, but look inside STRICT_LOW_PART.
964
965 Tue Nov 28 09:53:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
966
967 * system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
968 (IS_ABSOLUTE_PATHNAME): New macro.
969 * gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
970
971 2000-11-28 Jakub Jelinek <jakub@redhat.com>
972
973 * config/i386/i386.md (truncxfsf2_2): Fix predicate.
974
975 2000-11-27 Jim Wilson <wilson@redhat.com>
976
977 * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size.
978
979 2000-11-27 Matthias Klose <doko@cs.tu-berlin.de>
980
981 * extend.texi (Nested Functions): Update URL of Usenix paper.
982
983 2000-11-27 Mark Mitchell <mark@codesourcery.com>
984
985 * function.c (free_after_compilation): Clear x_clobber_return_insn.
986
987 2000-11-27 Neil Booth <neilb@earthling.net>
988
989 * cppinit.c (cpp_reader_init): Remove handling of warn_paste
990 command line options.
991 (cpp_handle_option): Similarly.
992 * cpplib.h (struct cpp_options): Remove warn_paste.
993 * cppmacro.c (paste_tokens): Apart from assembler, make
994 unpasteable token warning mandatory.
995
996 2000-11-27 Neil Booth <neilb@earthling.net>
997
998 * tradcpp.c (enum pending_dir_t, struct pending_dir): New.
999 (main): Allocate a pending directive set of these. Use it.
1000 Merge handling of -D and -U. Update handling of pending
1001 directives. Free the memory after use.
1002
1003 2000-11-27 Bernd Schmidt <bernds@redhat.co.uk>
1004
1005 * flow.c (entry_exit_blocks): Add entry for cond_local_set.
1006 (struct propagate_block_info): Add new member cond_local_set.
1007 (propagate_block): Accept new arg cond_local_set. All callers
1008 changed.
1009 (init_propagate_block_info): Likewise.
1010 (calculate_global_regs_live): Allocate & free cond_local_set. Always
1011 rescan if there's overlap between cond_local_set and new_live_at_end.
1012 (mark_set_1): Set bits either in cond_local_set or local_set, as
1013 appropriate.
1014 * basic-block.h (struct basic_block_def): New field cond_local_set.
1015 (propagate_block, init_propagate_block_info): Update prototypes.
1016
1017 Mon Nov 27 17:29:44 2000 kaz Kojima <kkojima@rr.iij4u.or.jp>
1018
1019 * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber
1020 T register.
1021
1022 2000-11-27 Richard Earnshaw <rearnsha@arm.com>
1023
1024 * arm.c (select_dominance_cc_mode): Handle new way that combine
1025 canonicalizes conditional compares.
1026 (arm_select_cc_mode): Likewise.
1027 * arm.md: Garbage collect some dead code.
1028 (cmp_and, cmp_ior): New patterns.
1029 (splitter for conditional move with inverted false): Use cond_exec
1030 and handle unordered comparisons.
1031
1032 Mon Nov 27 17:22:56 MET 2000 Jan Hubicka <jh@suse.cz>
1033
1034 * i386.c (ix86_force_to_memory, ix86_free_from_memory): New.
1035 * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare
1036 * i386.md (float?i?f, int/fp operations): Rewrite spliters to use
1037 ix86_force_to_memory and ix86_free_from_memory.
1038
1039 2000-11-27 Richard Earnshaw <rearnsha@arm.com>
1040
1041 * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
1042 arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
1043 anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
1044 one_cmpldi2): Merge with splitters to create define_insn_and_split
1045 patterns. Remove redundant splits.
1046 (peephole2 for add:SI of invalid immediate): New.
1047 (peephole2 for minus:SI of invalid immediate): New.
1048 (peephole2 for ior:SI of invalid immediate): New.
1049 (peephole for merge of move and compare): Convert ot peephole2.
1050 (addsf3, adddf3): Mark as commutative.
1051
1052 * arm.md (thumb peephole for merging stack adjustments): Convert to
1053 peephole2.
1054
1055 2000-11-27 Bernd Schmidt <bernds@redhat.co.uk>
1056
1057 * haifa-sched.c (print_pattern): Prettier output for COND_EXEC.
1058
1059 * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup.
1060 (reload_cse_simplify_operands): Do nothing about operands where both
1061 the operand and the match_operand fail to give us a mode.
1062 * simplify-rtx.c (wrap_constant): New function.
1063 (entry_and_rtx_equal_p): Except integer constants to come wrapped in a
1064 CONST describing the proper mode.
1065 (rtx_equal_for_cselib_p): Pass down modes to recursive calls of
1066 cselib_lookup.
1067 (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to
1068 htab_find_slot_with_hash.
1069 (cselib_lookup): Likewise.
1070
1071 Based on a patch from Geoff Keating <geoffk@redhat.com>:
1072 * loop.c (basic_induction_var): If a REG is set from something
1073 that is not a biv, then the REG is not a biv. Even if it is
1074 earlier set from something that is a biv.
1075
1076 2000-11-27 Alexandre Oliva <aoliva@redhat.com>
1077
1078 * configure.in (extra_objs): Enclose extra_headers in quotes.
1079 * configure: Rebuilt.
1080
1081 2000-11-27 Neil Booth <neilb@earthling.net>
1082
1083 * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file):
1084 Combine into the new function cb_change_file.
1085 (init_c_lex): Update.
1086 * cppfiles.c (stack_include_file): Use _cpp_do_file_change.
1087 (cpp_syshdr_flags): Delete.
1088 * cpphash.h (_cpp_do_file_change): New prototype.
1089 Move struct cpp_buffer here from...
1090 * cpplib.h (struct cpp_buffer): ... here.
1091 (enum cpp_fc_reason, struct cpp_file_loc,
1092 struct_cpp_file_change, change_file): New.
1093 (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete.
1094 * cpplib.c (do_line): Update for new cb_change_file callback.
1095 (_cpp_do_file_change): New function.
1096 (_cpp_pop_buffer): Update to use it.
1097 * cppmain.c (move_printer): Delete.
1098 (main): Set up single callback cb_change_file.
1099 (cb_enter_file, cb_leave_file, cb_rename_file): Delete.
1100 (cb_change_file): New.
1101 * fix-header.c (cur_file, cb_change_file): New.
1102 (recognized_function, read_scan_file): Update.
1103 * scan-decls.c (scan_decls): Update.
1104 * scan.h (recognized_function): Update prototype.
1105
1106 2000-11-26 Mark Mitchell <mark@codesourcery.com>
1107
1108 * tree.h (mark_tree_hashtable): New function.
1109 * tree.c (mark_tree_hashtable_entry): New function.
1110 (mark_tree_hashtable): Likewise.
1111
1112 2000-11-27 Michael Meissner <meissner@redhat.com>
1113
1114 * d30v-protos.h (srelational_si_operator): Correctly spell
1115 function.
1116 (urelational_si_operator): Ditto.
1117 (relational_si_operator): Ditto.
1118 (d30v_expand_prologue): Add prototype.
1119 (d30v_expand_epilogue): Ditto.
1120
1121 * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change.
1122
1123 * d30v.md (movcccc_*): Delete now unused patterns.
1124 (64 bit comparison splitters): Rewrite to use COND_EXEC instead of
1125 IF_THEN_ELSE.
1126 (define_cond_exec): Use 'b' to select branch flags.
1127
1128 2000-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1129
1130 * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New
1131 functions.
1132 (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP.
1133
1134 * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries.
1135
1136 * c-common.c (c_common_nodes_and_builtins): Declare builtin
1137 strncpy and strncmp.
1138
1139 * extend.texi (strncmp, strncpy): Document new builtins.
1140
1141 2000-11-26 Mark Mitchell <mark@codesourcery.com>
1142
1143 * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
1144 a list, to keep track of the sections.
1145 * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
1146 parameter provided will always be a canonical string.
1147
1148 2000-11-26 Neil Booth <neilb@earthling.net>
1149
1150 * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the
1151 current buffer.
1152
1153 2000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
1154
1155 * makefile.vms: Remove EGCS references.
1156
1157 2000-11-26 Ulrich Drepper <drepper@redhat.com>
1158
1159 * dwarf2out.c (output_file_names): New function. Compute minimal
1160 combination of directory and file name table and emit them.
1161 (output_line_info): Remove code to emit directory and file name
1162 table and call output_file_names instead.
1163 (file_info_cmp): Helper function to sort directory names.
1164
1165 2000-11-26 Neil Booth <neilb@earthling.net>
1166
1167 * cpplib.h (struct cpp_reader): Remove lang_asm.
1168 (struct cpp_options): Remove c89. New members lang,
1169 extended_numbers.
1170 * cppexp.c (parse_number): Use them.
1171 * cpphash.h (VALID_SIGN): Use them.
1172 * cppinit.c (set_lang, cpp_start_read): Update.
1173 * cpplex.c (parse_string, _cpp_lex_token): Update.
1174 * cpplib.c (_cpp_handle_directive): Update.
1175 * cppmacro.c (parse_args): Update.
1176 * cppmain.c (scan_buffer): Update.
1177
1178 Sun Nov 26 10:02:37 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1179
1180 * fold-const.c (fold, case CONVERT_EXPR): Always return tree of
1181 proper type.
1182
1183 2000-11-26 Neil Booth <neilb@earthling.net>
1184
1185 * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.
1186 * c-decl.c: Remove parse_in declaration.
1187 * c-lang.c: Similarly.
1188 * c-lex.c: Similarly.
1189 * c-parse.in: Similarly.
1190 * c-pragma.c: Similarly.
1191 * configure.in: Similarly.
1192 * cp/Make-lang.in: Similarly.
1193 * cp/spew.c: Similarly.
1194 * cp/decl2.c: Remove check for lang-c++ option.
1195 * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line.
1196 * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++.
1197 * c-lex.h: Add declaration of parse_in.
1198 * cppinit.c: Call set_lang after allocating pfile->pending.
1199 * configure: Regenerate.
1200
1201 2000-11-25 Zack Weinberg <zack@wolery.stanford.edu>
1202
1203 * combine.c (try_combine): Remove redundant test.
1204
1205 2000-11-25 Richard Henderson <rth@redhat.com>
1206
1207 * c-common.h (DECL_C_HARD_REGISTER): New.
1208 * c-decl.c (finish_decl): Set it for asm register variables.
1209 * c-semantics.c (emit_local_var): Test it when instantiating one.
1210
1211 2000-11-25 Richard Henderson <rth@redhat.com>
1212
1213 * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
1214 lineno for the start of the function.
1215
1216 2000-11-25 Richard Henderson <rth@redhat.com>
1217
1218 * dwarf2out.c (file_table, file_table_allocated): Remove.
1219 (file_table_allocated): Remove.
1220 (struct file_table): New.
1221 (decl_file_table, line_file_table): New.
1222 (print_dwarf_line_table): Use them.
1223 (size_of_line_prolog): Likewise.
1224 (output_line_info): Likewise.
1225 (add_src_coords_attributes): Likewise.
1226 (gen_subprogram_die): Likewise.
1227 (gen_variable_die): Likewise.
1228 (dwarf2out_add_library_unit_info): Likewise.
1229 (dwarf2out_line): Likewise.
1230 (lookup_filename): Take a struct file_table argument.
1231 (init_file_table): New.
1232 (dwarf2out_init): Use it.
1233
1234 2000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
1235
1236 * invoke.texi: Update sequence points references.
1237
1238 2000-11-25 Neil Booth <neilb@earthling.net>
1239
1240 * c-common.c: Remove USE_CPPLIB conditional inclusions.
1241 * c-common.h: Similarly.
1242 * c-decl.c: Similarly.
1243 * c-lang.c: Similarly.
1244 * c-lex.c: Similarly.
1245 * c-parse.in: Similarly.
1246 * c-pragma.c: Similarly.
1247 * c-pragma.h: Similarly.
1248 * gcc.c: Similarly.
1249 * toplev.c: Similarly.
1250 * cp/cp-tree.h: Similarly.
1251 * cp/decl2.c: Similarly.
1252 * cp/lang-specs.h: Similarly.
1253 * cp/lex.c: Similarly.
1254 * cp/lex.h: Similarly.
1255 * cp/spew.c: Similarly.
1256 * java/lang-options.h: Similarly.
1257 * objc/lang-specs.h: Similarly.
1258 * objc/objc-act.c: Similarly.
1259
1260 * configure.in: Remove configure option.
1261 * config.in: Regenerate.
1262 * configure: Regenerate.
1263
1264 2000-11-25 Richard Henderson <rth@redhat.com>
1265
1266 * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
1267 Revert 2000-11-22 change.
1268
1269 2000-11-25 Bernd Schmidt <bernds@redhat.co.uk>
1270
1271 * config/i386/i386.h (FIXED_REGS): Make the three flags registers
1272 fixed.
1273
1274 2000-11-25 Philipp Thomas <pthomas@suse.de>
1275 * configure.in (ALL_LINGUAS): Remove en_GB and add sv.
1276 * configure: Rebuilt.
1277
1278 2000-11-25 Jakub Jelinek <jakub@redhat.com>
1279
1280 * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
1281 Handle CONST_INT as second argument.
1282 * config/sparc/sparc.c (set_extends): Remove first argument.
1283 Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
1284 MOV.
1285 (sparc_check_64): Abort if first argument is not REG.
1286 If it is DImode REG, look at the lower register of the register
1287 pair.
1288
1289 * config/sparc/sparc.c (load_pic_register, restore_regs,
1290 output_return, sparc_v8plus_shift, sparc_function_profiler,
1291 sparc_function_block_profiler, sparc_block_profiler): Fix output
1292 formatting.
1293
1294 2000-11-25 Alexandre Oliva <aoliva@redhat.com>
1295
1296 * config/sh/sh.h (TARGET_NONE): New.
1297 (TARGET_SWITCHES): For all variant-selecting switch, use
1298 TARGET_NONE to reset all other variant-selecting switch. Added
1299 empty strings to avoid warnings.
1300 (TARGET_DEFAULT): Set to SH1_BIT.
1301
1302 * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for
1303 insn-codes.h.
1304
1305 * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
1306 (sibcall_pcrel): New insn_and_split.
1307 (sibcall, sibcall_value, sibcall_epilogue): New expands.
1308
1309 * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
1310 symPLT_label2reg, call, call_value): Don't set
1311 current_function_uses_pic_offset_table.
1312 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
1313 PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
1314 takes it into account.
1315 (FINALIZE_PIC): Delete, useless.
1316 (LEGITIMATE_CONSTANT_P): Delete, unused.
1317 * config/sh/sh.c (sh_expand_prologue): Don't use
1318 current_function_uses_pic_offset_table. Don't special-case
1319 PIC_OFFSET_TABLE_REGNUM. Initialize it if it's ever live and
1320 PIC is enabled.
1321 (sh_expand_epilogue, initial_elimination_offset): Don't
1322 special case PIC_OFFSET_TABLE_REGNUM.
1323
1324 2000-11-25 Alexandre Oliva <aoliva@redhat.com>, NIIBE Yutaka <gniibe@m17n.org>
1325
1326 * config/sh/sh-protos.h (symbol_ref_operand): Declare.
1327 * config/sh/sh.md (UNSPEC_CALLER): New constant.
1328 (calli_pcrel, call_valuei_pcrel): Use PIC_REG.
1329 (call_pcrel, call_value_pcrel): New insn_and_splits.
1330 (call, call_value): Use them.
1331 (call_site): New expand.
1332 (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
1333 * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]:
1334 Output call_site label.
1335 (PREDICATE_CODES): Added symbol_ref_operand.
1336 * config/sh/sh.c (symbol_ref_operand): Define.
1337 * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
1338 to CALL_INSNs in the split sequence.
1339
1340 2000-11-24 Nick Clifton <nickc@redhat.com>
1341
1342 * config.gcc (v850-*-*): Define c_target_objs and
1343 cxx_target_objs.
1344
1345 * config/v850/t-v850: Define how to build v850-c.o
1346
1347 * config/v850/v850.h (struct data_area_stack_element): Move
1348 definition here from v850.c.
1349
1350 * config/v850v850.c: Include gcc.h to avoid compile time
1351 warning.
1352 (push_data_area): Move to v850-c.c.
1353 (pop_data_area): Move to v850-c.c.
1354 (mark_current_function_as_interrupt): Move to v850-c.c.
1355 (GHS_default_section_names): Allow to be exported.
1356 (GHS_current_section_names): Allow to be exported.
1357 (data_area_stack_elements): Allow to be exported.
1358 (ghs_pragma_section): Move to v850-c.c.
1359 (ghs_pragma_interrupt): Move to v850-c.c.
1360 (ghs_pragma_starttda): Move to v850-c.c.
1361 (ghs_pragma_startsda): Move to v850-c.c.
1362 (ghs_pragma_startzda): Move to v850-c.c.
1363 (ghs_pragma_endtda): Move to v850-c.c.
1364 (ghs_pragma_endsda): Move to v850-c.c.
1365 (ghs_pragma_endzda): Move to v850-c.c.
1366
1367 * config/v850/v850-c.c: New file: Contains v850 specific
1368 pragma parsing functions.
1369
1370 2000-11-24 Nick Clifton <nickc@redhat.com>
1371
1372 * config.gcc (extra_objs): Remove duplicate description.
1373 (c_target_objs): New variable. Contains target specific
1374 object files for the gcc C compiler only.
1375 (cxx_target_objs): New variable. Contains target specific
1376 object files for the gxx C++ compiler only.
1377
1378 * configure.in (c_target_objs): Substitute in the makefile.
1379 (cxx_target_objs): Substitute in the makefile.
1380 * configure: Regenerate.
1381
1382 * Makefile.in (C_TARGET_OBJS): Define and initialise from
1383 c_target_objs.
1384 (CXX_TARGET_OBJS): Define and initialise from
1385 cxx_target_objs.
1386 (C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
1387
1388 * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
1389
1390 * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
1391 about how the use of the 'c_lex' function requires the use of
1392 the target specific, language specific object files feature of
1393 the configuration mechanism.
1394
1395 Fri Nov 24 18:50:58 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1396
1397 * gcc.c (process_command): Use F_OK, not R_OK.
1398
1399 2000-11-24 Arno J. Klaassen <arno@heho.snv.jussieu.fr>
1400
1401 * flow.c (print_rtl_and_abort): Remove ANSIism.
1402
1403 Fri Nov 24 19:54:36 2000 Alexandre Oliva <aoliva@redhat.com>
1404
1405 * config/sh/sh.h (GENERAL_REGISTER_P,
1406 GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
1407 FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros. Use them
1408 all over.
1409 (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
1410 * config/sh/sh.c: Use new macros.
1411 * config/sh/sh.md: Likewise.
1412
1413 Fri Nov 24 19:46:16 2000 Alexandre Oliva <aoliva@redhat.com>
1414
1415 * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode,
1416 instead of just MACH_REG in DImode. Always refer to FPSCR_REG
1417 in PSImode.
1418
1419 Fri Nov 24 22:37:41 2000 Denis Chertykov <denisc@overta.ru>
1420
1421 * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
1422 fixed.
1423 (machine_dependent_reorg): Wrong optimization based on
1424 NOTICE_UPDATE_CC removed.
1425
1426 Fri Nov 24 19:48:09 2000 J"orn Rennecke <amylaar@redhat.com>
1427
1428 * jump.c (delete_computation): Re-instate deletion of feeding insn.
1429 (delete_insn): Look for REG_LABEL notes.
1430 (redirect_tablejump): Delete feeding insns.
1431
1432 2000-11-24 Bernd Schmidt <bernds@redhat.co.uk>
1433
1434 * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0,
1435 call_value_pop_1): Make sure operand numbers are contiguous.
1436
1437 * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
1438
1439 * reload1.c (conflicts_with_override): New function.
1440 (emit_input_reload_insns): Use it to tighten test for validity
1441 of substituting into output of previous insn.
1442
1443 * haifa-sched.c (struct ready_list): New.
1444 (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
1445 functions.
1446 (schedule_insn): Replace args READY and N_READY with a pointer to a
1447 ready_list; return void. Use the new functions to access the ready
1448 list. All callers changed.
1449 (queue_to_ready, debug_ready_list): Likewise.
1450 (schedule_block): Initialize a ready_list structure. Use new
1451 functions to access it.
1452 (max_priority): Remove unused variable.
1453 (schedule_insn): Don't set it.
1454
1455 * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
1456
1457 * combine.c (cant_combine_insn_p): New function.
1458 (try_combine): Use it.
1459
1460 * Makefile.in (c-common.o): Depend on $(OBSTACK_H).
1461 * c-common.c (c-obstack.c): Include "obstack.h".
1462 (struct reverse_tree): Delete.
1463 (reverse_list, reverse_max_depth): Delete.
1464 (build_reverse_tree, common_ancestor, modify_ok): Delete functions.
1465 (struct tlist, struct tlist_cache): New.
1466 (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
1467 (add_tlist, merge_tlist, verify_tree, warning_candidate_p,
1468 warn_for_collisions, warn_for_collisions_1, new_tlist): New
1469 static functions.
1470 (verify_sequence_points): Rewritten.
1471 * fold-const.c (fold): Don't lose possibly important sequence
1472 points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
1473
1474 2000-11-24 Richard Sandiford <rsandifo@redhat.com>
1475
1476 * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
1477 when reversing a register-to-register copy. Reversal now disabled
1478 when the previous instruction has a REG_EQUIV.
1479
1480 2000-11-24 Nathan Sidwell <nathan@codesourcery.com>
1481
1482 * c-parse.in (unary_expr): Move VA_ARG from here ...
1483 (primary): ... to here.
1484
1485 2000-11-23 Graham Stott <grahams@redhat.com>
1486
1487 * expr.c (store_constructor): If a field is non addressable and
1488 the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
1489
1490 2000-11-23 Bernd Schmidt <bernds@redhat.co.uk>
1491
1492 * flow.c (print_rtl_and_abort): New function.
1493 (verify_wide_reg, verify_local_live_at_start): Try to dump more
1494 information before aborting.
1495
1496 2000-11-23 Alexandre Oliva <aoliva@redhat.com>
1497
1498 * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
1499 is narrower than requested mode.
1500 (gen_highpart): Abort if register mode is narrower than
1501 requested mode.
1502
1503 2000-11-23 Graham Stott <grahams@redhat.com>
1504
1505 * cse.c (cse_insn): Initialise all regcost variables.
1506 Fix a typo add missing '='.
1507 Only compare costs if there is a replacement insn.
1508
1509 Thu Nov 23 04:33:33 2000 Alexandre Oliva <aoliva@redhat.com>
1510
1511 * final.c (output_addr_const) [LABEL_REF]: Simplify.
1512 [MINUS]: Enclose non-CONST_INTs in parentheses.
1513 [default]: Try OUTPUT_ADDR_CONST_EXTRA.
1514 * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
1515 * varasm.c (decode_rtx_const) [CONST]: If it's not something
1516 PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
1517 instead of abort()ing.
1518 * sh.c (output_pic_addr_const): Removed. Fixed all callers.
1519 * sh.h (OUTPUT_ADDR_CONST_EXTRA): New. Handle the UNSPECs
1520 formerly handled in output_pic_addr_const.
1521 * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
1522 operands of MINUS in CONSTs so that decode_rtx_const() will
1523 accept them.
1524
1525 Thu Nov 23 04:10:30 2000 Alexandre Oliva <aoliva@redhat.com>
1526
1527 * config/sh/sh.md (mova_const): New pattern.
1528 (GOTaddr2picreg): Use it.
1529 * config/sh/sh.c (broken_move): Match it.
1530 (mova_p): Don't match it.
1531 (machine_dependent_reorg): Adjust it.
1532
1533 Thu Nov 23 02:09:09 2000 Alexandre Oliva <aoliva@redhat.com>
1534
1535 * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
1536 Moved most register-number #defines...
1537 * config/sh/sh.md (define_constants): ... here. Use macros to
1538 refer to registers and unspecs.
1539 * config/sh/sh.c: Likewise.
1540
1541 Thu Nov 23 01:01:32 2000 J"orn Rennecke <amylaar@redhat.com>
1542
1543 * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE.
1544 (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
1545 (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
1546 (splay-tree.o, hash.o): Likewise.
1547 GCONFIG_H: New.
1548 (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
1549 (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
1550 (hashtab.o): Likewise.
1551 (gcov.o): Depend on $(CONFIG_H).
1552 * configure.in: #include insn-codes.h in tm.h.
1553
1554 2000-11-22 Nick Clifton <nickc@redhat.com>
1555
1556 * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
1557 const char * to avoid a compile time warning.
1558
1559 * config/arm/arm.md (define_constants): Define symbolic names for
1560 the link register, last integer register and the fake CC register.
1561 Update patterns to use these symbolic names.
1562
1563 2000-11-22 Neil Booth <neilb@earthling.net>
1564
1565 * cpplex.c (trigraph_ok): Ensure we don't warn twice.
1566 * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
1567
1568 2000-11-22 Richard Henderson <rth@redhat.com>
1569
1570 * haifa-sched.c (sched_analyze_1): Don't special-case calls
1571 for clobbering registers.
1572 (sched_analyze_2): Likewise.
1573 (sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
1574
1575 2000-11-22 Chris Demetriou <cgd@sibyte.com>
1576 Neil Booth <neilb@earthling.net>
1577
1578 * gcc.c (validate_switches): Validate multiple switches named
1579 in '|' (or) expressions in specs.
1580 (handle_braces): If more than 1 alternative in a '|' spec
1581 matches, call do_spec1 just once.
1582
1583 2000-11-22 Michael Meissner <meissner@redhat.com>
1584
1585 * d30v.h (TARGET_SWITCHES): Add documentation strings.
1586 (TARGET_OPTIONS): Ditto.
1587 (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
1588 -O3.
1589
1590 Wed Nov 22 06:40:56 2000 Jeffrey A Law (law@cygnus.com)
1591
1592 * pa.c (hppa_encode_label): Account for addition of encoding
1593 character when allocating persistent space for the new label
1594 name.
1595
1596 2000-11-22 Zack Weinberg <zack@wolery.stanford.edu>
1597
1598 * Makefile.in, config.gcc, configure.in: Expunge remaining
1599 traces of facility for running MD files through C preprocessor.
1600
1601 2000-11-22 Joseph S. Myers <jsm28@cam.ac.uk>
1602
1603 * gcov.texi: Add magic comments for texi2pod.pl.
1604 * Makefile.in: Add rules to generate and install gcov.1.
1605 * gcov.1: New (generated) file.
1606
1607 2000-11-21 Richard Henderson <rth@redhat.com>
1608
1609 * regrename.c (scan_rtx_reg): Terminate the chain rather than
1610 abort on mark_read with NO_REGS.
1611
1612 2000-11-21 Mike Stump <mrs@wrs.com>
1613
1614 * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
1615 compilation with older compilers, such as /bin/cc on SunOS.
1616 * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
1617
1618 2000-11-21 Richard Henderson <rth@redhat.com>
1619
1620 * varasm.c (record_constant): Pad the constructed
1621 constant_descriptor appropriately.
1622
1623 Wed Nov 22 00:52:55 2000 J"orn Rennecke <amylaar@redhat.com>
1624
1625 * rtl.h (traverse_md_constants): Declare.
1626 (struct md_constant): Define.
1627 * Makefile.in (HOST_RTL): Add hashtab.o .
1628 (OBJS): Add hashtab.o .
1629 (hashtab.o): New rule.
1630 (rtl.o): Depends on HASHTAB_H.
1631 * rtl.c (hashtab.h): #include.
1632 (md_constants): New static variable.
1633 (def_hash, def_name_eq_p, read_constants): New static functions.
1634 (traverse_md_constants): New function.
1635 (read_name): Do constant expansion.
1636 (read_rtx): Recognize define_constants.
1637 * gencodes.c (print_md_constant): New function.
1638 (main): Emit #defines for all constant definitions encountered.
1639 * md.texi (Constant Definitions): New node.
1640 * gensupport.c (xcalloc): New function.
1641
1642 2000-11-21 Richard Henderson <rth@redhat.com>
1643
1644 * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
1645 * config/alpha/alpha-protos.h: Declare it.
1646 * config/alpha/alpha.md (abstf_internal): Use it.
1647 (negtf_internal): Likewise.
1648 (andnotdi3): Unstar the name.
1649 (movtf_internal): Add o/G alternative.
1650
1651 2000-11-21 Zack Weinberg <zack@wolery.stanford.edu>
1652
1653 * stringpool.c (stringpool_statistics): Also report number and
1654 percentage of entries which are identifiers.
1655
1656 2000-11-21 Diego Novillo <dnovillo@redhat.com>
1657
1658 * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
1659 visited before visiting it.
1660
1661 2000-11-21 Nick Clifton <nickc@redhat.com>
1662
1663 * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
1664 TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
1665
1666 * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
1667
1668 2000-11-21 Richard Henderson <rth@redhat.com>
1669
1670 * c-common.c (c_unsafe_for_reeval): New function.
1671 (add_c_tree_codes): Register it.
1672 * c-common.h: Declare it.
1673 * tree.c (lang_unsafe_for_reeval): New hook.
1674 (unsafe_for_reeval): Call it.
1675 * tree.h: Declare it.
1676
1677 2000-11-21 Richard Henderson <rth@redhat.com>
1678
1679 * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
1680 references as well.
1681
1682 2000-11-21 Neil Booth <neilb@earthling.net>
1683
1684 * do_includes: Revert to using cpp_read_file.
1685
1686 2000-11-21 Bernd Schmidt <bernds@redhat.co.uk>
1687
1688 * loop.c (consec_sets_giv): If the reg we're examining is anything
1689 but UNKNOWN_INDUCT, do nothing.
1690 Reset the reg's type to UNKNOWN_INDUCT before returning.
1691
1692 Mostly from Vladimir Makarov (vmakarov@redhat.com)
1693 * ia64.md (attr itanium_class): Define insn types as described in
1694 Itanium docs.
1695 (all insn patterns): Use itanium_class, not type attributes.
1696 Occasionally split alternatives as necessary.
1697 (attr type): Compute from new attr itanium_class.
1698
1699 2000-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1700
1701 * tradcpp.c (output_line_command): Mark system headers as such in
1702 `line' commands.
1703
1704 2000-11-21 Jakub Jelinek <jakub@redhat.com>
1705
1706 * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
1707 support in as as well.
1708 * configure: Regenerate.
1709
1710 2000-11-20 Richard Henderson <rth@redhat.com>
1711
1712 * c-lex.c (orig_filename): New variable.
1713 (init_c_lex): Set it. Move call to cpp_start_read ...
1714 (yyparse): ... here. New function.
1715 * c-parse.in (yyparse_1): Rename the parser entry point.
1716 * c-tree.h: Declare it.
1717
1718 2000-11-21 Jakub Jelinek <jakub@redhat.com>
1719
1720 * expr.c (do_compare_and_jump): If op0 was replaced by promoted
1721 integer constant, use type of op1 for comparison.
1722
1723 2000-11-20 Stan Shebs <shebs@apple.com>
1724
1725 * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
1726 * config/rs6000/x-darwin: New file, Darwin host fragment.
1727 * config.gcc (powerpc-*-darwin*): New host.
1728 * system.h (HAVE_DESIGNATED_INITIALIZERS): Allow this to be
1729 overridden by a config file.
1730
1731 2000-11-20 Neil Booth <neilb@earthling.net>
1732
1733 * cppmacro.c (paste_tokens): Rename from paste_payloads.
1734 Change token type after pasting spellings.
1735 (paste_all_tokens): Use it.
1736 * gcc.dg/cpp/paste2.c: Update test.
1737 * objc/execute/paste.m: New test.
1738
1739 2000-11-20 Richard Henderson <rth@redhat.com>
1740
1741 * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
1742 dwarf_subscr_data_formats bits.
1743 * dwarfout.c (simple_type_size_in_bits): Handle a type with
1744 no computed size as size zero.
1745 (field_byte_offset): Likewise.
1746 (subscript_data_attribute): Handle a range with no upper bound.
1747
1748 2000-11-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1749
1750 * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
1751
1752 2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
1753
1754 * c-typeck.c (build_conditional_expr): When merging type
1755 qualifiers for conditional expressions between a pointer and a
1756 pointer to a void type, merge the qualifiers on the target types
1757 rather than the pointer type. Remove obsolete conditioned out
1758 code.
1759
1760 2000-11-20 Neil Booth <neilb@earthling.net>
1761
1762 * c-lang.c (lang_init_options): Update call to
1763 cpp_reader_init.
1764 * cppmain.c (main): Similarly.
1765 * fix-header.c (read_scan_file): Similarly.
1766 * cp/lex.c (lang_init_options): Similarly.
1767 * objc/objc-act.c (lang_init_options): Similarly.
1768 * cppexp.c (parse_number): Only warn for unextended C89.
1769 * cppinit.c (set_lang): New function.
1770 (cpp_reader_init): Take a LANG argument and pass it to set_lang.
1771 (COMMAND_LINE_OPTIONS): New option std=c++98.
1772 (cpp_handle_option): Use set_lang.
1773 * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
1774 * cppib.h (enum_c_lang): New enumeration. Update comments.
1775
1776 2000-11-20 Will Cohen <wcohen@redhat.com>
1777
1778 * calls.c (expand_call): Clear target only when target is in
1779 hard register and current_function_check_memory_usage is set.
1780
1781 2000-11-20 Bernd Schmidt <bernds@redhat.co.uk>
1782
1783 * toplev.c (rest_of_compilation): Run optimize_mode_switching even
1784 if not optimizing.
1785 * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
1786
1787 2000-11-19 Richard Henderson <rth@redhat.com>
1788
1789 * crtstuff.c (force_to_data): Use array size 1 not 0.
1790
1791 * dwarf2out.c (simple_type_size_in_bits): Handle a type with
1792 no computed size as size zero.
1793 (field_byte_offset): Likewise.
1794
1795 2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
1796
1797 * config.gcc: Fix another typo.
1798
1799 2000-11-19 Richard Henderson <rth@redhat.com>
1800
1801 * c-decl.c (grokdeclarator): Support flexible array members.
1802 Use open-ended ranges for these and zero-length arrays.
1803 * c-typeck.c (push_init_level): Validate the context of
1804 initialization of a zero-length array.
1805 * tree.c (int_fits_type_p): Be prepared for missing bounds.
1806 * varasm.c (array_size_for_constructor): New.
1807 (output_constructor): Use it for arrays of unspecified length.
1808 * extend.texi (Zero Length): Mention C99 flexible array members.
1809 Document initialization in a top-level struct as valid.
1810
1811 2000-11-19 Joseph S. Myers <jsm28@cam.ac.uk>
1812
1813 * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
1814
1815 * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
1816 stdarg and varargs functions.
1817
1818 2000-11-19 Zack Weinberg <zack@wolery.stanford.edu>
1819
1820 * gcc.c (process_command): Define 'j' variable when
1821 MODIFY_TARGET_NAME is defined.
1822
1823 2000-11-19 Richard Henderson <rth@redhat.com>
1824
1825 * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
1826
1827 2000-11-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1828
1829 * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
1830 calculation and allocation.
1831
1832 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1833
1834 * builtins.c (c_getstr): Constify variable.
1835 * gmon-sol2.c (_mcleanup): Comment out #endif labels.
1836 * conflict.c (const_conflict_graph_arc): New typedef.
1837 (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
1838 * cppmacro.c (builtin_macro): Likewise.
1839 * dwarf2out.c (output_comp_unit): Constify variable.
1840 * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
1841 * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
1842 * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
1843 away const-ness.
1844 * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
1845 ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
1846 * varasm.c (const_str_htab_hash, const_str_htab_eq,
1847 compare_constant_1, record_constant_1): Constify.
1848
1849 2000-11-18 Richard Henderson <rth@redhat.com>
1850
1851 * c-decl.c (grokdeclarator): Special case the creation of an
1852 index for a zero-length array.
1853 * tree.c (build_index_type): Revert Oct 20 change.
1854
1855 2000-11-18 Marek Michalkiewicz <marekm@linux.org.pl>
1856
1857 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
1858 * config/avr/avr.c (jump_tables_size): New variable.
1859 (function_prologue): Initialize it as 0.
1860 (function_epilogue): Add it to function_size.
1861 (avr_output_addr_vec_elt): New function. Count words in jump
1862 tables in jump_tables_size. Move code ...
1863 * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
1864 Call avr_output_addr_vec_elt instead.
1865 * config/avr/avr.md (tablejump): Remove disabled define_expand.
1866
1867 2000-11-18 Mark Mitchell <mark@codesourcery.com>
1868
1869 * configure.in: Make --enable-new-gxx-abi the default.
1870 * configure: Likewise.
1871
1872 2000-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1873
1874 * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
1875
1876 * tradcif.y: Include tradcpp.h. Constify. Make functions static.
1877 Move extern function declarations to tradcpp.h.
1878
1879 * tradcpp.c: Likewise.
1880
1881 * tradcpp.h: New file.
1882
1883 2000-11-18 Joseph S. Myers <jsm28@cam.ac.uk>
1884
1885 * c-decl.c (check_for_loop_decls): New function.
1886 * c-parse.in (for_init_stmt): New.
1887 (select_or_iter_stmt): Use for_init_stmt.
1888 * c-tree.h (check_for_loop_decls): New declaration.
1889
1890 2000-11-18 Neil Booth <neilb@earthling.net>
1891
1892 * cppinit.c: Update comments.
1893 (cpp_reader_init): Make -imacro and -include use the standard
1894 #include "" search path.
1895 (do_includes): New function.
1896
1897 2000-11-18 Ben Elliston <bje@redhat.com>
1898
1899 * config/sh/crt1.asm (start_l): Move PC-relative move instruction
1900 out of a branch delay slot.
1901
1902 2000-11-17 Richard Henderson <rth@redhat.com>
1903
1904 * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
1905 (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
1906 (ASM_FILE_START): Only write out ecoff .file directive if
1907 emitting mdebug debugging.
1908
1909 2000-11-17 Richard Henderson <rth@redhat.com>
1910
1911 * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New. Detect
1912 whether as accepts .file/.loc and produces dwarf2 line info.
1913 * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
1914 the assembler supports it.
1915 * config.in, configure: Regenerate.
1916
1917 2000-11-17 Richard Henderson <rth@redhat.com>
1918
1919 * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
1920
1921 2000-11-17 Jim Wilson <wilson@redhat.com>
1922
1923 * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
1924 Don't clear need_barrier is next_insn is a CALL_INSN, or has
1925 instruction type B or UNKNOWN.
1926
1927 2000-11-17 Neil Booth <neilb@earthling.net>
1928
1929 * cpperror.c (print_file_and_line): Don't display line number if 0.
1930
1931 2000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
1932
1933 * ggc.h: Delete ggc_add_string_root and ggc_mark_string. Add
1934 digit_vector and digit_string.
1935 * stringpool.c (digit_vector): New.
1936 (ggc_alloc_string): Use digit_string.
1937
1938 * stmt.c (digit_strings): Delete.
1939 (init_stmt): Do not initialize digit_strings.
1940 (expand_asm_operands): Use ggc.h's digit_string macro.
1941 * toplev.c (mark_file_stack): Delete.
1942 (compile_file): Don't call init_tree_codes.
1943 (main): No need to make the file stack a GC root.
1944 * tree.c (init_tree_codes): Delete.
1945 * tree.h (init_tree_codes): Delete.
1946
1947 * c-lex.c: Don't include ggc.h.
1948 (mark_splay_tree_node, mark_splay_tree): Delete.
1949 (init_c_lex): No need to ggc_strdup string constant. Don't add
1950 file_info_tree to GGC roots.
1951 (cb_enter_file, cb_rename_file): No need to ggc_strdup
1952 ip->nominal_fname.
1953
1954 * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
1955
1956 * dbxout.c (dbxout_init),
1957 dwarf2out.c (dwarf2out_line),
1958 ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
1959 varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
1960 xcoffout.c (xcoffout_source_file),
1961 i386.c (load_pic_register):
1962 Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
1963
1964 * except.c (create_rethrow_ref),
1965 profile.c (init_edge_profiler),
1966 toplev.c (compile_file),
1967 varasm.c (named_section, assemble_static_space,
1968 assemble_trampoline_template, output_constant_def, force_const_mem),
1969 i386.c (load_pic_register),
1970 ia64.c (ia64_encode_section_info),
1971 rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
1972 rs6000_emit_prologue, rs6000_emit_epilogue),
1973 rs6000.md (load_toc_aix_si, load_toc_aix_di):
1974 Change ggc_alloc_string (var, -1) to ggc_strdup (var).
1975
1976 * profile.c (output_func_start_profiler),
1977 tree.c (make_node),
1978 i386.c (load_pic_register): No need to ggc_strdup string constant.
1979
1980 2000-11-17 Hans-Peter Nilsson <hp@axis.com>
1981
1982 * Makefile.in (config.status): Depend on config.gcc.
1983 * configure.in <for machine in $build $host $target>: Move
1984 contents of loop into config.gcc, removing autoconf quoting.
1985 Fix changequote bug for alpha*-*-vxworks*.
1986 * configure: Regenerate.
1987 * config.gcc: New.
1988
1989 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
1990
1991 * c-parse.in (if_prefix): Find the filename and line number at
1992 $-2 and $-1 respectively.
1993 * diagnostic.c (error_recursion): Add missing newline, use
1994 fputs, translate string.
1995
1996 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
1997
1998 * stringpool.c: New file.
1999 * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
2000 (ggc_alloc_string): Now in stringpool.o.
2001 * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
2002 * ggc.h: Delete prototype of ggc_add_string_root. #define
2003 ggc_add_string_root and ggc_mark_string to nothing. Prototype
2004 init_stringpool and stringpool_statistics.
2005 (ggc_alloc_string): Returns a const char *.
2006 * tree.c (hash_table, do_identifier_warnings): Delete.
2007 (init_obstacks): Don't initialize the identifier hash table.
2008 (get_identifier, maybe_get_identifier, start_identifier_warnings,
2009 set_identifier_size): Now in stringpool.c.
2010 * tree.h (struct tree_string): Constify pointer field.
2011 (approx_sqrt): Prototype.
2012
2013 * Makefile.in (stringpool.o): Add rule, mention in OBJS.
2014
2015 * toplev.c (approx_sqrt): New function.
2016 (compile_file): Call stringpool_statistics if mem_report is on.
2017 (main): Call init_stringpool.
2018
2019 * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
2020 (process_directive), c-typeck.c (constructor_asmspec, struct
2021 initializer_stack, start_init), except.c (create_rethrow_ref),
2022 stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
2023 (built_in_filename), varasm,c (in_named_name,
2024 assemble_static_space, struct constant_descriptor, struct
2025 deferred_string, struct pool_constant, force_const_mem),
2026 i386.c (pic_label_name, global_offset_table_name), rs6000.c
2027 (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
2028
2029 * c-common.c (combine_strings): Combine strings in scratch
2030 buffer, then pass to build_string.
2031 * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
2032 output_func_start_profiler), stmt.c (init_stmt), alpha.c
2033 (alpha_need_linkage), arm.c (arm_encode_call_attribute),
2034 i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
2035 rs6000.c (rs6000_encode_section_info): Create string in
2036 scratch buffer, then pass to ggc_alloc_string.
2037
2038 * stmt.c (expand_asm_operands): If we must adjust the
2039 constraint strings, do so by creating a new one, not by
2040 modifying the old one in place. Constify some char *s.
2041 * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
2042 argument. Create string in scratch buffer, then pass to
2043 ggc_alloc_string.
2044 * config/pa/pa-protos.h: Update prototype.
2045 * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
2046 hppa_encode_label takes only one argument.
2047
2048 2000-11-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2049
2050 * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
2051 malloc/realloc.
2052
2053 * cpplib.c (glue_header_name): Likewise.
2054
2055 * fixincl.c (run_compiles, start_fixer): Likewise.
2056
2057 * fixlib.c (load_file_data): Likewise.
2058
2059 * mkdeps.c (munge): Likewise.
2060
2061 2000-11-17 Hans-Peter Nilsson <hp@axis.com>
2062
2063 * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
2064 trailing ';'. Fix formatting.
2065
2066 2000-11-16 Jim Wilson <wilson@redhat.com>
2067
2068 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
2069 Shift masks left by one to avoid conflict.
2070
2071 * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
2072 DECL_EXTERNAL set.
2073
2074 2000-11-16 Nick Clifton <nickc@redhat.com>
2075
2076 * config/arm/arm.c (output_arm_prologue): Note nested functions.
2077 (arm_expand_prologue): For nested functions preserve the
2078 static chain register during stack frame creation.
2079
2080 * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
2081 (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
2082 with a stack frame there is a 4 byte gap between the arg
2083 pointer and the hard frame pointer (used to preserve the
2084 static chain register during stack frame creation).
2085
2086 2000-11-16 DJ Delorie <dj@redhat.com>
2087
2088 * rtl.c (read_rtx): Provide suitable names for unnamed
2089 define_insn and define_insn_and_split patterns, based on file
2090 and line numbers.
2091
2092 2000-11-15 Neil Booth <neilb@earthling.net>
2093
2094 * cpplib.c (start_directive, end_directive): New functions.
2095 (_cpp_handle_directive, run_directive): Use them.
2096 (_cpp_handle_directive): Don't -Wtraditional on indented
2097 null directives.
2098 (_cpp_push_buffer): Don't re-clear was_skipping.
2099 * cpplib.h (struct cpp_reader): New member la_saved.
2100 * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
2101 directives.
2102
2103 gcc.dg/cpp/_Pragma1.c: Update.
2104 gcc.dg/cpp/_Pragma2.c: New test.
2105
2106 2000-11-15 Mark Mitchell <mark@codesourcery.com>
2107
2108 * toplev.c (wrapup_global_declarations): Don't write out
2109 artificial static variables that aren't needed.
2110
2111 2000-11-15 Bernd Schmidt <bernds@redhat.co.uk>
2112
2113 * ia64.c (struct group): New structure.
2114 (last_group): New static array.
2115 (group_idx): New static variable.
2116 (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
2117 New static functions.
2118 (emit_insn_group_barriers): Initialize and keep track of group_idx
2119 and last_group.
2120 Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
2121 Replace all calls to emit_insn_after that emit a group barrier to use
2122 emit_group_barrier_after.
2123 * ia64.h (MASK_B_STEP): New.
2124 (other MASK_XXX macros): Renumbered.
2125 (TARGET_B_STEP): New.
2126 (TARGET_SWITCHES): Add -mb-step.
2127
2128 2000-11-15 Fred Fish <fnf@be.com>
2129
2130 * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
2131 machines for which fixincludes is not needed.
2132 * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
2133
2134 2000-11-15 Jason Merrill <jason@redhat.com>
2135
2136 * diagnostic.c (finish_abort): New fn.
2137 (fancy_abort, error_recursion): Use it.
2138 * toplev.c (crash_signal): Likewise.
2139 * diagnostic.h: Declare it.
2140
2141 2000-11-13 Andrew Haley <aph@redhat.com>
2142
2143 * tree.c (build_type_no_quals): New function.
2144 * tree.h (build_type_no_quals): Declare.
2145 * c-common.c (c_get_alias_set): When considering type
2146 compatibility for pointer types, ignore cv-qualifiers anywhere in
2147 a pointer chain.
2148
2149 2000-11-15 Graham Stott <grahams@redhat.com>
2150
2151 * regrename.c (scan_rtx_rtx): Skip to the next chain on
2152 encountering a terminated chain.
2153
2154 2000-11-14 Mark Mitchell <mark@codesourcery.com>
2155
2156 * configure.in: Move check for V3 above check for C++ header-file
2157 directory.
2158 * configure: Regenerated.
2159
2160 2000-11-14 DJ Delorie <dj@redhat.com>
2161
2162 * config/v850/v850.c: Remove obstacks.
2163
2164 Tue Nov 14 21:54:31 2000 Marek Michalkiewicz <marekm@linux.org.pl> & Denis Chertykov <denisc@overta.ru>
2165
2166 * config/avr/avr.c (avr_case_values_threshold): New.
2167 (avr_override_options): Set it depending on options, make it large
2168 when not optimizing to work around "unable to generate reloads".
2169
2170 * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
2171 (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
2172 executable if not AVR_MEGA. Make sure jump tables are word-aligned.
2173 (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
2174 (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
2175 (avr_case_values_threshold): Declare as extern int.
2176 (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
2177
2178 * config/avr/avr.md (tablejump): Removed.
2179 (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
2180 (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
2181 index in the table, not multiplied by 2.
2182 (casesi): Change to match the above insns. Always enable.
2183
2184 * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
2185 Change to expect the word address of the table, multiply it by 2
2186 here and not in the caller. Change "adiw" to faster "inc".
2187
2188 2000-11-14 Neil Booth <neilb@earthling.net>
2189
2190 * cppexp.c (parse_defined): Call cpp_get_token not
2191 _cpp_get_token.
2192 (lex): Similarly.
2193 * cpplex.c (cpp_output_line): Similarly.
2194 * cpplib.c (glue_header_name, do_line, do_ident,
2195 parse_answer, parse_assertion): Similarly.
2196 (_cpp_handle_diretive): Don't save to lookaheads
2197 when processing directives.
2198 * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
2199 _cpp_get_token.
2200 (funlike_invocation_p): Don't save to lookaheads
2201 when pre-expanding arguments.
2202 (_cpp_get_token): Delete.
2203 (cpp_get_token): Merge contents of _cpp_get_token.
2204
2205 2000-11-14 Jakub Jelinek <jakub@redhat.com>
2206
2207 * builtins.c (expand_builtin_setjmp): Set
2208 current_function_calls_setjmp.
2209 (expand_builtin_longjmp): Set current_function_calls_longjmp.
2210
2211 * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
2212 (do_builtin_setjmp_setup): New insn.
2213
2214 Tue Nov 14 12:34:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2215
2216 * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
2217 (int_fits_type_p): For variable bounds, call force_fit_type.
2218
2219 2000-11-14 Jakub Jelinek <jakub@redhat.com>
2220
2221 * varasm.c (struct deferred_string): New structure.
2222 (const_str_htab): New variable.
2223 (STRHASH): New macro.
2224 (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
2225 constr_str_htab_eq, const_str_htab_del): New functions.
2226 (output_constant_def): Add DEFER argument, defer string
2227 constants until mark_constant_pool time if requested.
2228 (mark_constant_pool): Walk the insn chain even if const_str_htab is
2229 not empty.
2230 (mark_constants): If a SYMBOL_REF for deferred string is found,
2231 output it and remove from hash table.
2232 (output_addressed_constants): Set DEFER to 0 in call to
2233 output_constant_def.
2234 * rtl.h (STRING_POOL_ADDRESS_P): Define.
2235 (output_constant_def): Adjust prototype.
2236 * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
2237
2238 2000-11-14 Chandrakala Chavva <cchavva@redhat.com>
2239
2240 * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
2241 signed types if flag_trapv.
2242
2243 2000-11-14 Zack Weinberg <zack@wolery.stanford.edu>
2244
2245 * tradcpp.c, tradcif.y: Update FSF mailing address, delete
2246 reference to GPLv1.
2247
2248 2000-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
2249
2250 * c-common.h (CTI_C_SIZE_TYPE): Update comment.
2251
2252 2000-11-14 Jakub Jelinek <jakub@redhat.com>
2253
2254 * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
2255 to array of pool_constnat pointers.
2256 (struct pool_constant): Add next_sym and label members.
2257 (struct pool_sym): Remove.
2258 (init_varasm_status): Change pool_sym into pool_constant.
2259 (mark_pool_constant): Mark pc->label string as well.
2260 (mark_pool_sym_hash_table): Remove.
2261 (mark_varasm_status): Remove it from caller as well.
2262 (free_varasm_status): Don't free pool_sym structures.
2263 (force_const_mem): Don't allocate pool_sym structure, instead
2264 fill pool->label and chain it into rtx_sym hash table.
2265 (find_pool_constant, mark_constant_pool): Use pool_constant instead
2266 of pool_sym.
2267
2268 2000-11-14 Jakub Jelinek <jakub@redhat.com>
2269
2270 * reload1.c (emit_input_reload_insns): Honour forcing of constants
2271 into memory by PREFERRED_RELOAD_CLASS NO_REGS.
2272
2273 2000-11-14 Michael Matz <matzmich@cs.tu-berlin.de>
2274
2275 * dominance.c: New file.
2276 * Makefile.in (OBJS): Add dominance.o.
2277
2278 * flow.c (compute_flow_dominators): Remove.
2279 (compute_immediate_dominators): Remove.
2280 (compute_immediate_postdominators): Remove.
2281 * basic-block.h: Remove their prototypes.
2282 (calculate_dominance_info): Add prototype.
2283
2284 * dce.c (eliminate_dead_code): Change calls to above functions.
2285 Don't compute dominators but only immediate dominators.
2286 * flow.c (flow_loops_find): Change callers.
2287 * gcse.c (compute_code_hoist_data): Likewise.
2288 * haifa-sched.c (schedule_insns): Likewise.
2289 * ifcvt.c (if_convert): Likewise.
2290 * ssa.c (convert_to_ssa): Likewise, and only compute immediate
2291 dominators.
2292
2293 2000-11-14 Richard Henderson <rth@redhat.com>
2294
2295 * stmt.c (warn_if_unused_value): Don't warn if the expression
2296 has side effects.
2297
2298 * c-typeck.c (c_sizeof): Fold result to c_size_type_node.
2299 (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
2300
2301 2000-11-13 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2302
2303 * loop.c (basic_induction_var): Revert accidental checkin.
2304
2305 2000-11-13 Hans-Peter Nilsson <hp@axis.com>
2306
2307 * c-lex.c (cb_leave_file): Harmonize conditions and order of
2308 statements to those of process_directive for (action == act_pop).
2309
2310 * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
2311
2312 * local-alloc.c (equiv_init_movable_p): References to CC0 are not
2313 movable.
2314
2315 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2316
2317 * c-parse.in (stmts_and_decls): Deprecate use of label at end of
2318 compound statement.
2319
2320 2000-11-13 Neil Booth <neilb@earthling.net>
2321
2322 * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
2323 cases return without MI check.
2324 * cpplib.c (do_diagnostic): Take boolean of whether to
2325 print the directive name.
2326 (do_error, do_warning): Update.
2327 (do_pragma_dependency): Use it.
2328 * cpplib.h (VARARGS_FIRST): Delete.
2329 (struct cpp_token): Delete integer.
2330 * cppmacro.c (enter_macro_context): Move disabled check
2331 to _cpp_get_token.
2332 (_cpp_get_token): Simplify into a single loop.
2333
2334 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
2335
2336 * configure.in: Use 'test -f' not '[ -e'.
2337 * configure: Regenerated.
2338
2339 2000-11-13 DJ Delorie <dj@redhat.com>
2340
2341 * config/mn10300/mn10300.md (store_movm): Note which registers are
2342 really used or clobbered.
2343
2344 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2345
2346 * c-parse.in (ends_in_label): Remove from %union and %type.
2347 (decls, stmts, lineno_stmt_or_labels, xstmts,
2348 lineno_stmt_or_label, stmt_or_label): Remove.
2349 (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
2350 lineno_stmt_decl_or_labels_ending_decl,
2351 lineno_stmt_decl_or_labels_ending_label,
2352 lineno_stmt_decl_or_labels_ending_error,
2353 lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
2354 lineno_stmt, lineno_label): New.
2355 (compstmt_nostart): Use compstmt_contents_nonempty.
2356
2357 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2358
2359 * c-common.c (boolean_increment): New function.
2360 * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
2361 CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE.
2362 (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
2363 (boolean_increment): Declare.
2364 * c-convert.c (convert): Allow for BOOLEAN_TYPE.
2365 * c-decl.c (init_decl_processing): Create boolean nodes.
2366 (finish_struct): Allow for _Bool bitfields.
2367 * c-parse.in (reswords): Add _Bool.
2368 (rid_to_yy): Allow for RID_BOOL.
2369 * c-typeck.c (default_conversion): Make booleans promote to int.
2370 (convert_arguments, build_unary_op, build_modify_expr,
2371 convert_for_assignment): Allow for booleans.
2372 * ginclude/stdbool.h: Make conforming to C99.
2373
2374 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2375
2376 * c-parse.in (c99_block_start, c99_block_end,
2377 c99_block_lineno_labeled_stmt): New.
2378 (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
2379 (stmt): Split off selection and iteration statements into...
2380 (select_or_iter_stmt): New. Use c99_block_lineno_labeled_stmt.
2381
2382 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2383
2384 * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
2385 -time): Update.
2386
2387 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
2388
2389 * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
2390 Rewrite to avoid use of match_dup. Don't try to tie registers that
2391 are not in the same mode.
2392
2393 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2394
2395 * invoke.texi: Update lists of languages and suffixes supported.
2396
2397 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2398
2399 * configure.in: Take toplevel configure arguments from the
2400 environment to create configargs.h and substitute
2401 gcc_config_arguments, taking account of any existing configargs.h
2402 if reconfiguring.
2403 * configure: Regenerate.
2404 * gccbug.in: Include toplevel configure arguments in gccbug.
2405
2406 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
2407
2408 * varasm.c (struct constant_descriptor): Put CONTENTS inside a
2409 union to make it well-aligned. Update all uses.
2410
2411 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2412
2413 * c-parse.in (initelt): Give appropriate pedantic warnings,
2414 depending on flag_isoc99, for non-ISO syntax and for C99 syntax
2415 outside C99 mode.
2416 (designator): If pedantic, pedwarn for a designator specifying a
2417 range of elements.
2418 * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
2419 these cases.
2420 * extend.texi: Document the C99 syntax as the preferred syntax,
2421 and the pre-2.5 syntax as obsolete. Mention use of designator
2422 lists for nested subobjects.
2423
2424 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
2425
2426 * diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
2427 Add ATTRIBUTE_PRINTF.
2428 * tradcpp.c (v_message, warning, error, fatal, error_with_line):
2429 Add ATTRIBUTE_PRINTF*.
2430
2431 2000-11-12 Mark Mitchell <mark@codesourcery.com>
2432
2433 * function.c (assign_parms): When calling put_var_into_stack, make
2434 sure that there are no hidden pending sequences.
2435
2436 2000-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2437
2438 * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
2439 BUILT_IN_RINDEX. Add missing checks for BUILT_IN_STRCHR and
2440 BUILT_IN_STRRCHR.
2441
2442 * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
2443
2444 * c-common.c (c_common_nodes_and_builtins): Declare index and
2445 rindex when nonansi builtins are allowed.
2446
2447 * extend.texi (index, rindex): Document new builtins.
2448
2449 2000-11-12 Mark Mitchell <mark@codesourcery.com>
2450
2451 * configure.in: Turn on libstdc++ V3 by default.
2452 * configure: Regenerated.
2453
2454 * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
2455
2456 2000-11-12 Jakub Jelinek <jakub@redhat.com>
2457
2458 * reload1.c (set_label_offsets): Go inside of PARALLELs.
2459
2460 2000-11-12 Joseph S. Myers <jsm28@cam.ac.uk>
2461
2462 * invoke.texi: Clean up option summary.
2463
2464 2000-11-12 Nick Clifton <nickc@redhat.com>
2465
2466 * config/mcore/mcore.c: Fix comment formating, and adjust sequence
2467 of #include headers.
2468
2469 2000-11-12 Marc Espie <espie@openbsd.org>
2470
2471 * configure.in: Fix filds test.
2472 * configure: Regen.
2473
2474 2000-11-12 Mark Mitchell <mark@codesourcery.com>
2475
2476 * jump.c (delete_computation): Don't assume that just becuase an
2477 instruction sets a register, that register is dead.
2478
2479 2000-11-12 Neil Booth <neilb@earthling.net>
2480
2481 * cppexp.c: Don't worry about pfile->skipping.
2482 * cpplib.c (struct if_stack): Make was_skipping unsigned char.
2483 (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
2484 for handled directives.
2485 (skip_rest_of_line): Use _cpp_lex_token after popping contexts
2486 and releasing lookaheads.
2487 (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
2488 (do_else, do_elif, push_conditional): Update logic.
2489 (do_endif): Set buffer->was_skipping rather than pfile->skipping.
2490 (unwind_if_stack): Inline into cpp_pop_buffer.
2491 (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
2492 * cpplex.c (_cpp_lex_token): Clear skipping on EOF. Handle
2493 multiple-include optimisation.
2494 * cpplib.h (struct cpp_buffer): New member was_skipping.
2495 * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping. This
2496 works because skipping == 0 in directives.
2497 (_cpp_release_lookahead): Renamed from release_lookahead.
2498 (cpp_get_token): No need to check skipping as _cpp_get_token does
2499 this for us. No need to handle MI optimisation.
2500
2501 Sat Nov 11 21:14:02 2000 Mark P Mitchell <mark@codesourcery.com>
2502
2503 * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
2504 declarations that use `__MATH_EXCEPTION' in their prototypes, too.
2505 * fixinc/fixincl.x: Regenerated.
2506
2507 2000-11-11 Bruce Korb <bkorb@gnu.org>
2508
2509 * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
2510 (avoid_wchar_t_type): ditto
2511 * fixinc/fixinc.irix: obsoleted
2512
2513 2000-11-11 Zack Weinberg <zack@wolery.stanford.edu>
2514
2515 * configure.in: Don't add $outputs to all_lang_makefiles. Add
2516 $srcdir/$s/Makefile.in if it exists.
2517 * configure: Regenerate.
2518
2519 Sat Nov 11 18:41:20 2000 Mark P Mitchell <mark@codesourcery.com>
2520
2521 * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX.
2522
2523 2000-11-11 Jason Merrill <jason@redhat.com>
2524
2525 * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
2526 give the parm a register and then call put_var_into_stack.
2527 * stmt.c (expand_decl): Likewise.
2528
2529 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
2530
2531 * gcc.texi: Adjust wording.
2532
2533 2000-11-11 Mark Mitchell <mark@codesourcery.com>
2534
2535 * fixinc/inclhack.def (avoid_wchar_t_type): New fix.
2536 * fininc/fixincl.x: Regenerated.
2537
2538 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
2539
2540 * invoke.texi: Correct spelling of -foptimize-register-move.
2541
2542 2000-11-11 Neil Booth <neilb@earthling.net>
2543
2544 Remove CPP_PLACEMARKERs.
2545
2546 * cppexp.c (lex): Don't handle CPP_PLACEMARKER.
2547 * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
2548 * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
2549 Similarly.
2550 * cpplib.h: Remove CPP_PLACEMARKER.
2551 (struct lexer_state): Rename skip_newlines to next_bol.
2552 * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
2553 Simplify prev_white handling as a result.
2554 (paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
2555 (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
2556 (parse_args): Similarly. Update argument count tests.
2557 (enter_macro_context): Return 2 to indicate an empty macro.
2558 (replace_args): Don't bother pre-expanding an empty argument.
2559 Handle placemarkers and ## extension during pre-expansion.
2560 (cpp_get_token): Handle empty macro expansions. Don't worry
2561 about CPP_PLACEMARKERs.
2562 (_cpp_create_definition): Empty macros are now empty.
2563 (cpp_macro_defintion): Don't special case empty macros.
2564 * scan-decls.c: Don't bother with CPP_PLACEMARKERs.
2565 * c-lex.c: Similarly.
2566
2567 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
2568
2569 * gcc.texi, invoke.texi: Add new section discussing language
2570 standards; link to it where appropriate; refer to ISO C instead of
2571 ANSI C.
2572
2573 2000-11-11 Alexandre Oliva <aoliva@redhat.com>
2574
2575 * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
2576 into account.
2577
2578 * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
2579 modes.
2580
2581 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
2582
2583 * gcc.texi, gcov.texi: Update dates and version numbers.
2584
2585 2000-11-10 Zack Weinberg <zack@wolery.stanford.edu>
2586
2587 * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC. Look for
2588 flex and bison, specifically, first in a unified build and
2589 then installed on the system.
2590 * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@. Rename
2591 LEXFLAGS to FLEXFLAGS. Adjust ORDINARY_FLAGS_TO_PASS to
2592 match.
2593
2594 (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
2595 cppdefault.o): Remove pointless sed munging of source file
2596 name.
2597
2598 2000-11-10 Bernd Schmidt <bernds@redhat.co.uk>
2599
2600 * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
2601 for address reloads. Push replacements for REG_INC notes.
2602 (regno_clobbered_p): New arg SETS. Examine SETs if it's nonzero. All
2603 callers changed.
2604 * reload1.c (choose_reload_regs): Registers set in the insn can't be
2605 used for RELOAD_OTHER reloads.
2606
2607 2000-11-10 Mark Mitchell <mark@codesourcery.com>
2608
2609 * c-dump.h: New file.
2610
2611 2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2612
2613 * alpha.c (check_float_value): Use memcpy, not bcopy.
2614 * arm.c (output_move_double): Likewise.
2615 * arm.md: Likewise.
2616 * m88k.c (legitimize_operand): Likewise.
2617 * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
2618 * m88k.md: Likewise.
2619 * mips.c (override_options): Likewise.
2620 * mips.md: Likewise.
2621 * romp.c (output_fpops): Likewise.
2622 * rs6000.c (rs6000_override_options): Likewise.
2623 * sh.md: Likewise.
2624 * vax.c (check_float_value): Likewise.
2625
2626 * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
2627 * expmed.c (synth_mult): Likewise.
2628 * final.c (add_bb_string): Likewise.
2629 * genattr.c (main): Likewise.
2630 * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
2631 Likewise.
2632 * jump.c (thread_jumps): Likewise.
2633 * prefix.c (save_string): Likewise.
2634 * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
2635 * regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
2636 * reload1.c (reload, eliminate_regs): Likewise.
2637
2638 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
2639
2640 * gcc.texi (Service): Update to reflect current practice and
2641 location of the GNU service directory.
2642
2643 2000-11-09 Bernd Schmidt <bernds@redhat.co.uk>
2644
2645 * regrename.c (build_def_use): Mark contents of REG_INC notes as
2646 needing replacement.
2647
2648 * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
2649 a no-op move if regs are equal.
2650 * toplev.c (rest_of_compilation): Do the noop moves elimination pass
2651 when calling jump after post-reload splitting.
2652
2653 2000-11-09 Jan van Male <jan.vanmale@fenk.wau.nl>
2654
2655 * c-tree.texi: Fix typos.
2656 * extend.texi: Likewise
2657 * gcov.texi: Likewise
2658 * rtl.texi: Likewise
2659 * tm.texi: Likewise
2660
2661 2000-11-09 Hans-Peter Nilsson <hp@axis.com>
2662
2663 * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
2664 in_system_header and flags[1] before dereferencing flags[2].
2665
2666 2000-11-09 Matthew Hiller <hiller@redhat.com>
2667
2668 * reload1.c (reload_combine): Fixed calculation of
2669 first_index_reg, last_index_reg.
2670
2671 2000-11-09 Mark Mitchell <mark@codesourcery.com>
2672
2673 * c-dump.c (dequeue_and_dump): Dump function bodies.
2674
2675 * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
2676 (c-dump.o): New target.
2677 * c-common.h (flag_dump_translation_unit): New variable.
2678 (C_TYPE_QUALS): New macro.
2679 (strip_array_types): New function.
2680 (DECL_C_BIT_FIELD): New macro.
2681 (SET_DECL_C_BIT_FIELD): Likewise.
2682 (CLEAR_DECL_C_BIT_FIELD): Likewise.
2683 (dump_info_p): New typedef.
2684 (dump_tree_fn): Likewise.
2685 (lang_dump_tree): New variable.
2686 (dump_node_to_file): New function.
2687 * c-common.c (flag_dump_translation_unit): Define it.
2688 (strip_array_types): New function.
2689 * c-decl.c (c_decode_option): Handle -fdump-translation-unit.
2690 * c-lang.c (finish_file): Call dump_node_to_file if
2691 flag_dump_translation_unit.
2692 * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
2693 * c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
2694 * c-dump.c: New file.
2695
2696 2000-11-09 Christopher Faylor <cgf@cygnus.com>
2697
2698 * config/i386/cygwin.h: Add mingw startfile prefix.
2699
2700 2000-11-09 Richard Henderson <rth@redhat.com>
2701
2702 * flow.c (invalidate_mems_from_set): Split out from ...
2703 (mark_set_1): ... here.
2704 (try_pre_increment_1): Use it. Use propagate_block_delete_insn
2705 instead of turning insn into a NOTE_INSN_DELETED.
2706
2707 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
2708
2709 * extend.texi, invoke.texi: Move documentation of builtin versions
2710 of C library functions to one place and update.
2711
2712 2000-11-09 Richard Henderson <rth@redhat.com>
2713
2714 * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
2715 the types themselves to discover type equivalence.
2716
2717 2000-11-09 Mike Stump <mrs@wrs.com>
2718
2719 * Makefile.in (distclean): Remove a few extra leftovers.
2720
2721 2000-11-09 Richard Henderson <rth@redhat.com>
2722
2723 * recog.c (validate_replace_rtx_1): Consider subregs when
2724 replacing a register with a constant inside a sign/zero_extend.
2725
2726 * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2727
2728 2000-11-09 Geoffrey Keating <geoffk@redhat.com>
2729
2730 * c-decl.c (finish_struct): When a structure is completed,
2731 check all its variant types for completeness.
2732
2733 2000-11-09 Neil Booth <neilb@earthling.net>
2734
2735 * cpphash.c: Move cpp_defined here from cpplib.c.
2736 * cpplib.c: Update comments, move cpp_defined to cpphash.c.
2737 * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
2738 * cppmacro.c (cpp_get_token): Update comments, no need now
2739 to catch the CPP_EOF meaning EOL case.
2740
2741 2000-11-08 Geoffrey Keating <geoffk@redhat.com>
2742
2743 * config/sparc/sparc.c (sparc_va_arg): When the required alignment
2744 is more than that provided, copy to a temporary.
2745
2746 2000-11-09 Alexandre Oliva <aoliva@redhat.com>
2747
2748 * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
2749 interpreting $out as a macro assignment.
2750 * Makefile.in (T_TARGET): New auxiliary macro and target.
2751 (all): Add a target right in the beginning, so that we don't build
2752 T_TARGET by default.
2753
2754 2000-11-09 Graham Stott <grahams@redhat.com>
2755
2756 * config/i386/i386.md (mmx_pinsrw): Output operands in correct
2757 order for -mintel-syntax. Remove comment now that the operand
2758 order has been checked.
2759 (mmx_pextrw): Likewise.
2760 (mmx_pshufw): Likewise.
2761
2762 2000-11-09 Jakub Jelinek <jakub@redhat.com>
2763
2764 * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max.
2765 (c_getstr): New function.
2766 (expand_builtin_strstr): Do nothing if -fcheck-memory-usage.
2767 If both arguments are constant string, optimize out.
2768 (expand_builtin_strchr, expand_builtin_strrchr): New functions.
2769 (expand_builtin_strpbrk): Use c_getstr, do nothing if
2770 -fcheck-memory-usage.
2771 (expand_builtin_fputs): Likewise.
2772 (expand_builtin_strcmp): Add MODE argument.
2773 Use even if !HAVE_cmpstrsi.
2774 Optimize the case when both arguments are constant strings.
2775 (expand_builtin): Adjust expand_builtin_strcmp caller.
2776 Call expand_builtin_strchr and expand_builtin_strrchr.
2777 * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr
2778 builtins.
2779 * builtins.def (BUILT_IN_STRRCHR): Add.
2780
2781 2000-11-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2782
2783 * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL.
2784
2785 2000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
2786
2787 * calls.c (expand_call, emit_library_call_value_1), collect2.c
2788 (scan_prog_file), config/a29k/a29k.c (print_operand),
2789 config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy ()
2790 instead of bcopy ().
2791 * real.h: Use memcmp () instead of bcmp ().
2792 * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c
2793 (split_branches), config/sparc/sparc.c (ultra_flush_pipeline,
2794 ultrasparc_sched_init, ultrasparc_sched_reorder),
2795 config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset ()
2796 instead of bzero ().
2797 * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr ()
2798 instead of rindex ().
2799 * configure.in: Don't check for bzero, bcmp, index or rindex.
2800 * configure, config.in: Regenerate.
2801 * system.h: Don't include declarations for bzero, bcmp, index or
2802 rindex.
2803 * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define
2804 bzero, bcmp, index or rindex.
2805
2806 Wed Nov 8 21:58:20 2000 Christopher Faylor <cgf@cygnus.com>
2807
2808 * config/i386/cygwin.h: Add -no-win32 switch. Separate -mno-cygwin
2809 include and library paths from -mcygwin case. Parameterize some
2810 declarations to avoid warnings. Use standard locations for include and
2811 lib dirs.
2812
2813 2000-11-08 Nick Clifton <nickc@redhat.com>
2814
2815 * config/arm/arm.md (mulsidi3adddi): Change output operand
2816 constraint from "=&" to "+&".
2817 (umulsidi3adddi): Change output operand constraint from "=&" to
2818 "+&".
2819
2820 2000-11-08 Richard Henderson <rth@redhat.com>
2821
2822 * flow.c (init_propagate_block_info): Protect the rtx stored in
2823 mem_set_list from modification by find_auto_inc.
2824 (mark_set_1): Likewise.
2825
2826 2000-11-08 Neil Booth <neilb@earthling.net>
2827
2828 Move directive handling into the lexer itself.
2829
2830 * cpplex.c (_cpp_lex_token): Handle directives directly.
2831 In the case of a directive interrupting a function-like
2832 macro invocation, use extra_char since read_ahead is
2833 used to store the '#'. Return a CPP_EOF in this case.
2834 * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
2835 (cpp_get_token): Don't handle directives here.
2836 * cpplib.h: Remove CPP_DHASH token type.
2837
2838 Wed Nov 8 21:53:41 MET 2000 Jan Hubicka <jh@suse.cz>
2839
2840 * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes
2841 formed using PRE_MODIFY too.
2842
2843 2000-11-08 Mark Mitchell <mark@codesourcery.com>
2844
2845 * c-tree.texi (VAR_DECL): Describe representation of GCC's
2846 extension for placing variables in particular registers.
2847
2848 * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for
2849 unprototyped C functions with no parameters.
2850
2851 2000-11-08 Jakub Jelinek <jakub@redhat.com>
2852
2853 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int
2854 before passing to fprintf.
2855
2856 2000-11-08 Jakub Jelinek <jakub@redhat.com>
2857
2858 * function.c (expand_function_start): Cast GET_MODE_SIZE to
2859 HOST_WIDE_INT before negating it.
2860
2861 2000-11-08 Jakub Jelinek <jakub@redhat.com>
2862
2863 * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
2864 passed in multiple non-contiguous locations.
2865
2866 2000-11-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2867
2868 * README.gnat: Remove file.
2869
2870 2000-11-08 Alexandre Oliva <aoliva@redhat.com>
2871
2872 * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts
2873 in-place.
2874
2875 2000-11-07 Richard Henderson <rth@redhat.com>
2876
2877 * dwarfout.c (INSN_LABEL_FMT): Remove.
2878 (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
2879 (dwarfout_label): Remove.
2880 * dwarfout.h: Remove it's prototype.
2881 * dwarf2out.c (INSN_LABEL_FMT): Remove.
2882 (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
2883 (dwarf2out_label): Remove.
2884 * dwarf2out.h: Remove it's prototype.
2885 * final.c (final_scan_insn): Don't call dwarf[2]out_label.
2886
2887 2000-11-07 Richard Henderson <rth@redhat.com>
2888
2889 * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary
2890 search on the unwind region section.
2891
2892 * config/ia64/ia64.md (movbi): Add r/r alternative.
2893 (cmovdi_internal_astep): Describe all combinations of register
2894 classes for sources & destinations; remove matching constraints.
2895 (cmovdi_internal): Likewise.
2896
2897 * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed.
2898
2899 2000-11-07 Richard Henderson <rth@redhat.com>
2900
2901 * c-lang.c (start_cdtor, finish_cdtor): New functions.
2902 (finish_file): Use them in building constructor/destructor functions.
2903
2904 * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
2905 LD_FINI_SWITCH): Move ...
2906 * config/alpha/osf.h: ... here.
2907 * config/alpha/alpha-interix.h: Don't undef them.
2908
2909 2000-11-07 Jeffrey Oldham <oldham@oz.codesourcery.com>
2910
2911 * config/mips/t-iris6 (FPBIT): New. Added so that __unorddf2 is
2912 included in libgcc.a.
2913 (DPBIT): Likewise.
2914 (dp-bit.c): Likewise.
2915 (fp-bit.c): Likewise.
2916
2917 2000-11-07 Nick Clifton <nickc@redhat.com>
2918
2919 * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab.
2920 (INTERNAL_ASM_OP): Add missing tab.
2921
2922 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
2923
2924 * alias.c (init_alias_analysis), calls.c (expand_call,
2925 emit_library_call_value_1), combine.c (init_reg_last_arrays),
2926 cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
2927 (init_output_buffer, set_diagnostic_context), dwarf2out.c
2928 (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
2929 (init_emit_once), fold-const.c (mul_double, div_and_round_double),
2930 function.c (assign_parms), gcse.c (compute_can_copy,
2931 alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
2932 compute_hash_table, compute_set_hash_table,
2933 compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
2934 (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
2935 clear_units, schedule_block), integrate.c (initialize_for_inline,
2936 expand_inline_function), jump.c (thread_jumps), local-alloc.c
2937 (local_alloc), loop.c (combine_movables, count_loop_regs_set,
2938 load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
2939 regclass.c (init_reg_sets, init_reg_sets_1, regclass,
2940 record_reg_classes, allocate_reg_info), reload.c
2941 (get_secondary_mem, remove_address_replacements, find_reloads),
2942 reload1.c (reload, set_initial_label_offsets, finish_spills,
2943 reload_as_needed, choose_reload_regs_init,
2944 reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
2945 (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
2946 (rename_registers), stmt.c (expand_end_case), unroll.c
2947 (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
2948 () instead of bzero ().
2949
2950 2000-11-07 Neil Booth <neilb@earthling.net>
2951
2952 * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
2953
2954 2000-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2955
2956 * c-common.c (combine_strings): Only warn about long strings for C.
2957
2958 Tue Nov 7 19:44:30 2000 J"orn Rennecke <amylaar@redhat.com>
2959
2960 * combine.c (distribute_notes): Fix typo in last change.
2961
2962 2000-11-07 Geoff Keating <geoffk@redhat.com>
2963
2964 * config/rs6000/rs6000.md (movdi_internal32+1): Use
2965 operand_subreg_force rather than gen_rtx_SUBREG.
2966 (movdi_internal32+2): Likewise.
2967
2968 2000-11-07 Philip Blundell <philb@gnu.org>
2969
2970 * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
2971 * config/arm/linux-aout.h: Likewise.
2972 * configure: Regenerate.
2973
2974 2000-11-07 Philipp Thomas <pthomas@suse.de>
2975
2976 * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
2977 accepted my the gettext maintainer.
2978
2979 2000-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2980
2981 * builtins.c (expand_builtin_strpbrk): New function.
2982 (expand_builtin): Handle BUILT_IN_STRPBRK.
2983
2984 * builtins.def (BUILT_IN_STRPBRK): New entry.
2985
2986 * c-common.c (c_common_nodes_and_builtins): Declare builtin
2987 strpbrk.
2988
2989 2000-11-07 David O'Brien <obrien@dragon.nuxi.com>
2990
2991 * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
2992 * POTFILES.in: Add config/alpha/freebsd.h
2993 * configure.in: Add alpha*-freebsd support.
2994 * configure: Regenerate.
2995
2996 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
2997
2998 * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
2999 copy of ptr_type_node rather than ptr_type_node itself.
3000
3001 Tue Nov 7 06:29:24 2000 J"orn Rennecke <amylaar@redhat.com>
3002
3003 * combine.c (recog_for_combine): Allocate uninitialized vector with
3004 rtvec_alloc.
3005 * recog.c (apply_change_group): Likewise.
3006
3007 Tue Nov 7 06:24:02 2000 J"orn Rennecke <amylaar@redhat.com>
3008
3009 * flow.c (verify_local_live_at_start): Back out last change.
3010 * combine.c (distribute_notes): When parts of a hard reg are
3011 neither set nor referenced in PLACE, search backwards for a
3012 place to put a REG_UNUSED note; if none found, ask for flow
3013 info refresh.
3014
3015 Mon Nov 6 20:08:13 2000 J"orn Rennecke <amylaar@redhat.com>
3016
3017 * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
3018 with (clobber (match_scratch...)).
3019
3020 2000-11-06 Neil Booth <neilb@earthling.net>
3021
3022 * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
3023 error status.
3024
3025 2000-11-06 Neil Booth <neilb@earthling.net>
3026
3027 * tradcpp.c (special_symbol): Assign an null string rather
3028 than writing to an unallocated buffer.
3029
3030 2000-11-06 Neil Booth <neilb@earthling.net>
3031
3032 * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
3033 CPP_MACRO_ARG case.
3034
3035 2000-11-06 Neil Booth <neilb@earthling.net>
3036
3037 * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
3038 tok.val.arg_no as appropriate.
3039 * cppexp.c (lex): Similarly.
3040 * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
3041 cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
3042 * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
3043 cpp_macro_definition): Similarly.
3044 * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
3045
3046 2000-11-06 Jakub Jelinek <jakub@redhat.com>
3047
3048 * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
3049 operands[1] is constant, calculate the sum and generate movdi.
3050 (addsi3): Similarly. Use SImode in call to arith_4096_operand.
3051 (subsi3): Use SImode in call to arith_4096_operand.
3052
3053 2000-11-06 Jakub Jelinek <jakub@redhat.com>
3054
3055 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
3056 adjust %o1, not %o0 if the return type is large structure.
3057
3058 2000-11-06 Jakub Jelinek <jakub@redhat.com>
3059
3060 * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
3061 update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
3062
3063 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
3064
3065 * expmed.c (expand_divmod): For signed divide by 2, prefer
3066 a branch and fewer shifts if branches are very cheap.
3067
3068 2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
3069
3070 * Makefile.in: Remove all targets related to building
3071 distributions and diffs, or INSTALL.
3072 * INSTALL, install1.texi: Remove.
3073 * configure.in: Remove mention of distdir.
3074 * configure: Regenerate.
3075 * objc/Make-lang.in: Remove mention of distdir.
3076
3077 2000-11-04 Neil Booth <neilb@earthling.net>
3078
3079 * cpp.texi: Update for _Pragma.
3080
3081 2000-11-04 Joseph S. Myers <jsm28@cam.ac.uk>
3082
3083 * gcc.texi (Contributing): Update URL for projects web page.
3084
3085 2000-11-04 Neil Booth <neilb@earthling.net>
3086
3087 * cpplex.c (parse_string): Don't allow multiline strings in
3088 #include family directives.
3089
3090 2000-11-04 Neil Booth <neilb@earthling.net>
3091
3092 * cpplib.c (do_line): Only warn pedantically if not reading
3093 preprocessed input.
3094
3095 2000-11-04 Alexandre Oliva <aoliva@redhat.com>
3096
3097 * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
3098 RETURN_POPS_ARGS().
3099
3100 2000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
3101
3102 * builtins.c (expand_builtin_strlen): Remove unused mode
3103 argument.
3104 * gcc.c (process_command): Remove unused variable.
3105 * fold-const.c: Include expr.h.
3106 * recog.c: Include reload.h.
3107 * Makefile.in (recog.o, fold-const.o): Update deps.
3108
3109 2000-11-02 Geoffrey Keating <geoffk@cygnus.com>
3110
3111 * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
3112
3113 Fri Nov 3 13:41:04 2000 Mark P Mitchell <mark@codesourcery.com>
3114
3115 * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
3116 handling.
3117 (STARTFILE_SPEC): Likewise.
3118 (LINK_SPEC): Likewise.
3119
3120 2000-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3121
3122 * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
3123 (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
3124 (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
3125
3126 2000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
3127
3128 * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
3129 (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
3130 perm_calloc, get_identifier, maybe_get_identifier,
3131 real_value_from_int_cst, simple_cst_equal), varasm.c
3132 (assemble_name, assemble_real, immed_real_const_1,
3133 compare_constant_1, decode_rtx_const, output_constant_pool): Use
3134 strrchr () instead of rindex (). Use memcmp () instead of bcmp
3135 (). Use memcpy () instead of bcopy (). Use memset () instead of
3136 bzero ().
3137
3138 2000-11-03 Nathan Sidwell <nathan@codesourcery.com>
3139
3140 * cppfiles.c (open_file): If already read, then don't reopen.
3141 Immediately close an empty file.
3142
3143 2000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
3144
3145 * expr.h (fold_builtin): Move declaration...
3146 * tree.h (fold_builtin): ... here.
3147
3148 Fri Nov 3 05:41:07 2000 J"orn Rennecke <amylaar@redhat.com>
3149
3150 * flow.c (verify_local_live_at_start): Allow hard regs to die.
3151
3152 2000-11-02 Neil Booth <neilb@earthling.net>
3153
3154 config:
3155 * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
3156 alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
3157 alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
3158 alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
3159 arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
3160 arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
3161 c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
3162 elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
3163 i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
3164 i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
3165 i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
3166 i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
3167 i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
3168 i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
3169 i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
3170 i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
3171 i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
3172 i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
3173 i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
3174 i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
3175 i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
3176 ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
3177 m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
3178 m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
3179 m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
3180 m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
3181 m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
3182 m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
3183 m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
3184 m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
3185 m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
3186 m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
3187 mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
3188 mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
3189 mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
3190 mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
3191 mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
3192 mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
3193 ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
3194 ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
3195 pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
3196 pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
3197 romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
3198 rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
3199 rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
3200 rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
3201 sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
3202 sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
3203 sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
3204 sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
3205 sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
3206 sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
3207 sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
3208 v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
3209 vax/vaxv.h, vax/vms.h, we32k/we32k.h
3210
3211 Replace -A() with -A=, the new assertion syntax.
3212
3213 Thu Nov 2 21:52:35 2000 J"orn Rennecke <amylaar@redhat.com>
3214
3215 * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
3216 elim_i1.
3217 In REG_DEAD handling: When handling parts of multi-hard-reg hard
3218 registers, increment the loop counter by the size of the parts;
3219 use recursion to handle individual parts.
3220
3221 2000-11-02 Neil Booth <neilb@earthling.net>
3222
3223 * configure.in: Make integrated CPP the default.
3224 * configure: Regenerate.
3225
3226 Thu Nov 2 19:20:12 2000 J"orn Rennecke <amylaar@redhat.com>
3227
3228 * reload.c (find_equiv_reg): Test all hard registers for membership
3229 in the requested class.
3230
3231 2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
3232
3233 * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
3234 process_command, main), gcov.c (open_files, output_data), tlink.c
3235 (frob_extension, scan_linker_output), toplev.c
3236 (file_name_nondirectory): Use strchr () and strrchr () instead of
3237 index () and rindex ().
3238
3239 2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
3240
3241 * c-common.c (get_flag_spec, check_format_info_main,
3242 check_format_types): Use strchr () instead of index (). Compare
3243 against error_mark_node instead of comparing the TREE_CODE against
3244 ERROR_MARK.
3245
3246 2000-11-02 Zack Weinberg <zackw@Stanford.EDU>
3247
3248 Integrated CPP.
3249
3250 * c-lex.c (init_c_lex): Update cpp_start_read call.
3251 (cb_ident): Update for new callback prototype.
3252 (cb_def_pragma): Update for new cpp_get_token prototype.
3253 (c_lex): Similarly. Use cpp_get_line.
3254
3255 * c-parse.in (finish_parse): Update for new cpp_finish
3256 prototype.
3257
3258 * cp/lex.c (finish_parse): Similarly.
3259
3260 2000-11-01 Geoff Keating <geoffk@cygnus.com>
3261
3262 * machmode.def: Add V16QImode.
3263
3264 2000-11-01 Richard Henderson <rth@redhat.com>
3265
3266 * dwarf2out.c (loc_descriptor_from_tree): Check for null result
3267 from rtl_for_decl_location.
3268 (add_location_or_const_value_attribute): Likewise.
3269
3270 2000-11-01 Neil Booth <neilb@earthling.net>
3271
3272 * cpplib.c (run_directive): Use correct line number for output
3273 of _Pragma. Remember any in-progress directive.
3274
3275 * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
3276
3277 2000-11-01 Richard Henderson <rth@redhat.com>
3278
3279 * stmt.c (expand_start_null_loop): Set continue_label.
3280
3281 2000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
3282
3283 * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
3284 (expand_builtin_constant_p): Move parts of the code into
3285 fold_builtin_constant_p.
3286 (expand_builtin_strlen): Move parts of the code into fold_builtin.
3287 * expr.h (fold_builtin): Declare.
3288 * fold-const.c (fold): Handle builtin calls.
3289
3290 * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
3291
3292 2000-11-01 Richard Henderson <rth@redhat.com>
3293
3294 * stmt.c (expand_start_null_loop): New.
3295 (expand_end_null_loop): New.
3296 * c-semantics.c (genrtl_do_stmt): Use them.
3297 * tree.h: Declare them.
3298
3299 2000-11-01 Richard Henderson <rth@redhat.com>
3300
3301 * cppmain.c (scan_buffer): Don't avoid paste for assembly.
3302
3303 2000-11-01 Neil Booth <neilb@earthling.net>
3304
3305 * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
3306 * cp/spew.c: Similarly.
3307 * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
3308 * cppmacro.c (stringify_arg): Similarly.
3309 * cpplib.h (CPP_BACKSLASH): Delete.
3310
3311 2000-10-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3312
3313 * builtins.c (expand_builtin_strstr): New function.
3314 (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
3315
3316 * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
3317
3318 * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
3319 and builtin strchr.
3320
3321 2000-10-31 Richard Henderson <rth@redhat.com>
3322
3323 * config/i386/i386.c (fcmov_comparison_operator): Check for
3324 CCFPmode or CCFPUmode instead of CCmode.
3325 (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
3326 unordered operations as well.
3327
3328 2000-10-31 Richard Henderson <rth@redhat.com>
3329
3330 * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
3331 of integer_zero_node.
3332
3333 2000-10-31 Richard Henderson <rth@redhat.com>
3334
3335 * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
3336
3337 2000-10-31 Nick Clifton <nickc@redhat.com>
3338
3339 * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
3340 -fdata-sections to override the section attribute of a DECL.
3341
3342 2000-10-31 Chris Demetriou <cgd@sibyte.com>
3343
3344 * libgcc2.c (__shtab): Remove __shtab variable.
3345 * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
3346 * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
3347 members.
3348
3349 2000-10-31 Jim Wilson <wilson@redhat.com>
3350
3351 * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
3352 * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
3353 * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
3354 instead of ASM_OUTPUT_INTERNAL_LABEL.
3355 (dwarf2out_end_block, dwarf2out_label): Likewise.
3356 * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
3357 * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
3358
3359 2000-10-31 Richard Henderson <rth@redhat.com>
3360
3361 * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
3362 (size_of_locs): Set it.
3363 (output_loc_operands): Use it to compute branch displacement.
3364 (int_loc_descriptor): New.
3365 (mem_loc_descriptor): Dereference memory in the proper size.
3366 Use DW_OP_plus_uconst when possible. Use int_loc_descriptor.
3367 (loc_descriptor_from_tree): New.
3368 (rtl_for_decl_location): Break out from ...
3369 (add_location_or_const_value_attribute): ... here.
3370 (add_bound_info): Use loc_descriptor_from_tree.
3371
3372 2000-10-31 Neil Booth <neilb@earthling.net>
3373
3374 * cpp.texi: Update for new command line assertion syntax.
3375 * cpplib.c (cpp_define): Simplify a bit.
3376 (cpp_assert, cpp_unassert): Use handle_assertion.
3377 (handle_assertion): New function; accept new command line
3378 syntax with '='.
3379 * testsuite/gcc.dg/cpp/assert3.c: New tests.
3380
3381 2000-10-31 Neil Booth <neilb@earthling.net>
3382
3383 * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
3384 undefined. Remove #ifdef check.
3385 * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
3386 Define STDC_0_IN_SYSTEM_HEADERS to 1.
3387
3388 2000-10-31 Jan Hubicka <jh@suse.cz>
3389 Jakub Jelinek <jakub@redhat.com>
3390
3391 * config/i386/i386.h: Clarify CCNOmode description in comment.
3392 (EXTRA_CC_MODES): Remove CCRCmode.
3393 * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
3394 (put_condition_code, ix86_match_ccmode): Likewise.
3395 (ix86_cc_mode): Likewise. Fix comment.
3396 (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
3397 * config/i386/i386.md: Add unspec 12 description.
3398 (adddi3 split): Use unspec 12 instead of CCRCmode.
3399 (addsi3_carry_rc): Remove.
3400 (addsi3_cc, addqi3_cc): New patterns.
3401 (addsi_3): Swap operands, match CCZmode.
3402 (addsi_4): Rewritten.
3403 (addsi_5): Renamed from addsi_6.
3404 (addsi_6): Removed.
3405 (addhi_3): Swap operands, match CCZmode.
3406 (addhi_4): Rewritten.
3407 (addhi_5): Renamed from addhi_6.
3408 (addhi_6): Removed.
3409 (addqi_3): Swap operands, match CCZmode.
3410 (addqi_4): Rewritten.
3411 (addqi_5): Renamed from addqi_6. Use =q constraint for clobber.
3412 (subsi3_carry_rc): Removed.
3413 (iorqi_3): Use =q constraint for clobber.
3414 (xorqi_cc_2): Likewise.
3415 (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
3416 (x86_movsicc_0_m1_rc): Removed.
3417 (cmp?i peepholes): Remove neg. Use CCGCmode instead of CCRCmode.
3418
3419 2000-10-31 Joseph S. Myers <jsm28@cam.ac.uk>
3420
3421 * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
3422 and decrement of complex types.
3423
3424 2000-10-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3425
3426 * builtins.c (expand_builtin_fputs): When deleting NOP calls to
3427 builtin fputs, ensure we still evaluate the stream in case it
3428 has side-effects.
3429
3430 2000-10-31 Jakub Jelinek <jakub@redhat.com>
3431
3432 * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
3433 to expand_shift.
3434
3435 Tue Oct 31 15:33:27 2000 J"orn Rennecke <amylaar@redhat.com>
3436
3437 * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
3438 (fp_extended_operand, emit_fpscr_use): Likewise.
3439 * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
3440 (fpul_operand): New function.
3441 * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
3442 fp_extended_operand. Add fpul_operand.
3443 * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
3444 (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
3445 (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
3446 (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
3447 (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
3448 (divdf3_i): Likewise.
3449 (floatsisf2): Likewise. Use fpul_operand for 'y' operand.
3450 (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
3451 (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
3452 (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
3453 (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
3454
3455 2000-10-31 Bernd Schmidt <bernds@redhat.co.uk>
3456
3457 * config/i386/i386.c (ix86_init_builtins): Correct return type
3458 building v4hi_ftype_v4hi_int_int tree node.
3459 (ix86_expand_builtin): Use correct operand numbers 0 and 1.
3460 Copy operand 0 into a Pmode register, don't generate a MEM rtx.
3461
3462 * config/i386/i386.md (sse_movntdi): Use mmx register constraint
3463 for operand 1.
3464 (mmx__uavgv8qi3): Correct insn mnemonic.
3465 (mmx_psadbw): Correct insn mnemonic. Use V8QI mode for operands 1 and 2.
3466 (mmx_punpckhwd): Correct insn mnemonic.
3467 (mmx_punpckhdq): Likewise.
3468 (mmx_punpcklwd): Likewise.
3469 (mmx_punpckldq): Likewise.
3470 (prefetch): Use immediare_operand and 'n' constraint for operand 1.
3471 Renumber case labels to match the _mm_prefetch constants defined in
3472 xmmintrin.h.
3473
3474 * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
3475 if the splitter didn't emit new insns.
3476 Make sure we call cleanup_subreg_operands even when splitting the last
3477 insn in a basic block.
3478
3479 * invoke.texi (Debugging Options): Describe -do.
3480 * toplev.c (enum_dump_file_index): New entry DFI_postreload.
3481 (dump_file): Likewise.
3482 (rest_of_compilation): Split .greg dump into .greg and .postreload.
3483
3484 2000-10-30 Neil Booth <neilb@earthling.net>
3485
3486 * cppfiles.c (stack_include_file): Check for stacked contexts
3487 here.
3488 * cpphash.h (_cpp_do__Pragma): New prototype.
3489 * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
3490
3491 * cpplex.c (skip_escaped_newlines): Only process trigraphs and
3492 escaped newlines if !(buffer->from_stage3).
3493 (_cpp_lex_token): Warn about missing newlines iff
3494 !buffer->from_stage3.
3495
3496 * cpplib.c (get__Pragma_string, destringize,
3497 _cpp_do__Pragma): New functions.
3498 (run_directive): Set output_line for _Pragma to avoid line
3499 markers in output. Set from_stage3 and prevent macro expansion
3500 for _Pragma and command-line options. Check buffer exhaustion.
3501 (cpp_push_buffer): Don't check for stacked macro contexts, as
3502 this is perfectly legitimate for _Pragma. Move the check to
3503 stack_include_file instead. Set from_stage3 iff buffer is
3504 preprocessed input.
3505
3506 * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
3507 unsigned. New boolean from_stage3.
3508 (struct spec_nodes): Add n__Pragma.
3509
3510 * cppmacro.c (enter_macro_context): Flip sense of return value.
3511 (_cpp_get_token): Handle _Pragma operator.
3512
3513 2000-10-30 Phil Edwards <pme@sources.redhat.com>
3514
3515 * gcc.texi: The C++ standard isn't "draft" anymore.
3516
3517 2000-10-30 Mark Mitchell <mark@codesourcery.com>
3518
3519 * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
3520
3521 2000-10-29 Neil Booth <neilb@earthling.net>
3522
3523 * cpplib.c (skip_rest_of_line): Use _cpp_get_token.
3524
3525 2000-10-29 Joseph S. Myers <jsm28@cam.ac.uk>
3526
3527 * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
3528 fixinc/inclhack.def: Change comments mentioning C9X to refer to
3529 C99 instead.
3530
3531 * invoke.texi: Document that -V will only work for very similar
3532 versions of driver and compiler.
3533
3534 2000-10-29 Neil Booth <neilb@earthling.net>
3535
3536 * cppmacro.c (_cpp_create_definition): Optimize the case of
3537 a macro defined to itself.
3538
3539 2000-10-29 Neil Booth <neilb@earthling.net>
3540
3541 * cpplex.c (save_comment): Don't store new lines in C++ comments.
3542
3543 2000-10-29 Michael Hayes <mhayes@redhat.com>
3544
3545 * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
3546
3547 2000-10-28 Geoffrey Keating <geoffk@cygnus.com>
3548
3549 * cpphash.c (cpp_forall_identifiers): Add context variable
3550 for callback routine.
3551 * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
3552 change.
3553 (main): Call cpp_forall_identifiers with null context.
3554 * cpplib.h (cpp_forall_identifiers): Update prototype.
3555
3556 * cppmain.c: Make `parse_in' and `print' static.
3557
3558 2000-10-28 Alan Modra <alan@linuxcare.com.au>
3559
3560 * c-decl.c (finish_function): Clear c_function_name_declared_p.
3561
3562 2000-10-28 Richard Henderson <rth@redhat.com>
3563
3564 * regrename.c (scan_rtx_address): Frob action, not class,
3565 when trying to disable optimization.
3566
3567 2000-10-28 Mark Mitchell <mark@codesourcery.com>
3568
3569 * c-semantics.c (make_rtl_for_local_static): Don't clobber
3570 DECL_ASSEMBLER_NAME.
3571
3572 2000-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
3573
3574 * configure.in: Determine and substitute gcc_version_full.
3575 * configure: Regenerate.
3576 * gccbug.in: Use it to give full version. Don't allow
3577 confidential PRs.
3578
3579 2000-10-28 Richard Henderson <rth@redhat.com>
3580
3581 * recog.c (split_all_insns): Run cleanup_subreg_operands
3582 after reload.
3583
3584 * regrename.c (regrename_optimize): Verify that all registers of
3585 a multiple register mode are available.
3586 (scan_rtx_address): Accept the mode of the address; all callers
3587 changed.
3588
3589 * cpplib.c (run_directive): Fix prototype.
3590
3591 2000-10-28 Bernd Schmidt <bernds@redhat.co.uk>
3592
3593 * reload.c (find_reloads): Distinguish "wins" so that we know whether
3594 a given operand won because of a matching constraint or not; then use
3595 that information to compute goal_alternative_matched properly.
3596 * reload1.c (choose_reload_regs): Never set reload_override_in for an
3597 optional reload.
3598
3599 * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
3600 accurate value for MULT.
3601 * config/ia64/ia64.c (ia64_print_operand): Require probability to be
3602 2% or > 98% before using static branch prediction bits.
3603
3604 2000-10-28 Neil Booth <neilb@earthling.net>
3605
3606 New macro expander.
3607
3608 * cpplib.c (struct answer): New.
3609 (struct if_stack): Use cpp_lexer_pos rather than line and col.
3610 Rename cmacro mi_cmacro.
3611 (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
3612 IN_I): New directive and flags.
3613 (skip_rest_of_line, check_eol, run_directive, glue_header_name,
3614 parse_answer, parse_assertion, find_answer): New functions.
3615 (parse_ifdef, detect_if_not_defined, validate_else): Remove.
3616 (lex_macro_node): New function to replace parse_ifdef and
3617 get_define_node.
3618
3619 (_cpp_handle_directive): New function, combines _cpp_check_directive
3620 and _cpp_check_linemarker.
3621
3622 (do_define, do_undef, parse_include, do_include, do_import,
3623 do_include_next, read_line_number, do_line, do_ident, do_pragma,
3624 do_pragma_once, do_pragma_poison, do_pragma_dependency):
3625 Update for new token getting interface.
3626
3627 (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
3628 : Update for new multiple-include optimisation technique.
3629 (do_elif): Don't forget to invalidate controlling macros.
3630
3631 (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
3632 (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
3633 Functions to handle assertions with the new token interface.
3634 (do_assert, do_unassert): Use them.
3635
3636 (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
3637 Use run_directive.
3638
3639 (_cpp_init_stacks): Register directive names. Don't register special
3640 nodes.
3641
3642 * cpperror.c (print_containing_files, _cpp_begin_message): Update to
3643 new position recording regime.
3644 (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
3645 cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
3646 cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
3647 (cpp_type2name): Move to cpplex.c.
3648
3649 * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
3650 (parse_defined): Update to handle new multiple include optimisation
3651 method. Remove poisoned identifier warning.
3652 (parse_assertion, TYPE_NAME): Delete.
3653 (lex): Update for multiple include optimisation, removal of
3654 CPP_DEFINED, to use _cpp_test_assertion for assertions and
3655 cpp_token_as_text.
3656 (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
3657 (op_as_text): New function, to wrap cpp_token_as_text.
3658
3659 * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
3660 Update for MI optimisation.
3661 (_cpp_execute_include): Take a token rather than 3 arguments. Fix
3662 segfault on diagnostic.
3663 (_cpp_compare_file_date): Take a token rather than 3 args.
3664 (cpp_read_file): Work correctly for zero-length files.
3665
3666 * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
3667 _cpp_init_hashtable and _cpp_cleanup_hashtable.
3668 (cpp_lookup): Place identifiers at front of identifier pool
3669 for _cpp_lookup_with_hash.
3670 (_cpp_lookup_with_hash): Require identifiers to be at the front of
3671 the identifier pool. Commit the memory if not already in the
3672 hash table.
3673
3674 * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
3675 Initialise various members of cpp_reader, memory pools, and the
3676 special nodes.
3677 (cpp_printer_init): Delete.
3678 (cpp_cleanup): Update.
3679 (struct builtin, builtin_array, initialize_builtins): Update for new
3680 hashnode definition and builtin handling.
3681 (cpp_start_read, cpp_finish): Don't take or initialise a
3682 printer. Update.
3683
3684 * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
3685 PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
3686 T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
3687 T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
3688 (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
3689 struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
3690 NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
3691 struct toklist, struct cpp_context, struct specnodes,
3692 TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
3693 NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
3694 enum builtin_type, cpp_can_paste): New.
3695 (struct cpp_token): Delete line and col members.
3696 (struct cpp_buffer): New member output_lineno.
3697 (struct lexer_state): Delete indented, in_lex_line, seen_dot.
3698 Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
3699 (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
3700 ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
3701 base_context, context, directive, mi_state, mi_if_not_defined,
3702 mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
3703 mlstring_pos, macro_buffer, macro_buffer_len.
3704 Delete members mls_line, mls_column, token_list, potential_control_macro,
3705 temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
3706 context_cap, cur_context, no_expand_level, paste_level, contexts, args,
3707 save_parameter_spellings, need_newline, .
3708 Change type of date, time and spec_nodes members.
3709 Change prototypes for include and ident callbacks.
3710 (struct cpp_hashnode): Change type of name. Remove union members
3711 expansion and code. Add members macro, operator and builtin.
3712
3713 (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
3714 cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
3715 cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
3716 cpp_stop_lookahead): New prototypes.
3717 (cpp_printer_init, cpp_dump_definition): Delete prototypes.
3718
3719 (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
3720 Move from cpphash.h.
3721
3722 * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
3723 ufputs): Move to cpplib.h.
3724 (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
3725 TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
3726 COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
3727 struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
3728 _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
3729 _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
3730 _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
3731 _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
3732 _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
3733 _cpp_parse_assertion, _cpp_find_answer): Delete.
3734 (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
3735 POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
3736 _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
3737 _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
3738 _cpp_handle_directive, DSC): New.
3739 (struct include_file): New member defined.
3740
3741 (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
3742 _cpp_compare_file_date): Update.
3743 (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
3744 (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
3745 _cpp_cleanup_hashtable.
3746
3747 * Makefile.in: Remove cppoutput.c.
3748
3749 * cppoutput.c: Delete
3750
3751 * fixheader.c (read_scan_file): Update for new cpp_get_token
3752 prototype.
3753 (recognized_function): New argument LINE.
3754
3755 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
3756 new cpp_get_token prototype.
3757
3758 * scan.h (recognized_function): Update prototype.
3759
3760 * po/POTFILES.in: Remove cppoutput.c.
3761
3762 2000-10-27 Mark Mitchell <mark@codesourcery.com>
3763
3764 * c-typeck.c (check_init_type_bitfields): Remove.
3765 (constructor_incremental): Likewise.
3766 (struct constructor_stack): Remove incremental bit.
3767 (struct initializer_stack): Likewise.
3768 (start_init): Don't play with constructor_incremental.
3769 (finish_init): Likewise.
3770 (really_start_incremental_init): Likewise.
3771 (push_init_level): Likewise.
3772 (pop_init_level): Likewise.
3773 (output_init_level): Likewise.
3774 (output_pending_init_elements): Likewise.
3775
3776 2000-10-21 Mike Coleman <mcoleman2@kc.rr.com>
3777
3778 * c-pragma.c (handle_pragma_pack): Initialize align to -1.
3779 Improve error messages. Correct parsing of
3780 #pragma pack(pop [,id]). Do not check the user-supplied
3781 alignment if we're popping.
3782
3783 * gcc.dg/pack-test-1.c: New test case.
3784 * gcc.dg/pack-test-2.c: New test case.
3785 * gcc.dg/pack-test-1.h: New file.
3786
3787 2000-10-27 Neil Booth <neilb@earthling.net>
3788
3789 * cpp.texi: Update.
3790
3791 2000-10-27 Kelley Cook <kelley.cook@home.com>
3792
3793 * invoke.texi: Document -mintel-syntax
3794
3795 2000-10-27 Richard Henderson <rth@redhat.com>
3796
3797 * invoke.texi: Document -frename-registers. Add it to -O3.
3798 * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
3799 (enum dump_file_index, dump_file): Update order.
3800 (main): Set flag_rename_registers at -O3.
3801
3802 2000-10-27 Richard Henderson <rth@redhat.com>
3803
3804 * config/alpha/alpha.h (enum reg_class): Add PV_REG.
3805 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
3806 (REG_CLASS_FROM_LETTER): Assign it to 'c'.
3807 * config/alpha/alpha.md (call_osf_1): Use it.
3808 (call_value_osf_1): Likewise.
3809
3810 * config/ia64/ia64.c: Revert 10-23 patch.
3811 (ia64_hard_regno_rename_ok): New.
3812 * config/ia64/ia64-protos.h: Declare it.
3813 * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
3814
3815 2000-10-27 Bernd Schmidt <bernds@redhat.co.uk>
3816 Richard Henderson <rth@redhat.com>
3817
3818 * regrename.c: Rewrite to handle multi-register modes and
3819 cond_exec instructions.
3820 * Makefile.in (regrename.o): Update dependancies.
3821 * recog.h (struct operand_alternative): Add is_address.
3822 * recog.c (preprocess_constraints) [case 'p']: Set it.
3823
3824 2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
3825
3826 * configure.in: If not NO_MINUS_C_MINUS_O, substitute
3827 OUTPUT_OPTION with '-o $@'. Make zlibdir, zlibinc relative to
3828 top level. Kill oldstyle_subdirs. Do not include
3829 $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
3830 $outputs. Do not run configure.lang from config.status.
3831 Rearrange warning-flag logic to correspond to what the
3832 makefile wants. Put special vax stage1 options in
3833 @stage1_flags@ not @stage1_warn_cflags@. Don't do anything
3834 with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
3835 (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
3836 switch is given, nothing otherwise.
3837 * configure.lang: Delete.
3838
3839 * Makefile.in: Expunge all traces of extra_c_objs,
3840 extra_cxx_objs, and extra_cpp_objs. Set MAYBE_CPPLIB from
3841 @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS. Set
3842 warning options via a three level scheme so that -pedantic and
3843 -Wtraditional are not used for non-C front ends: LOOSE_WARN,
3844 STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
3845 WARN_CFLAGS. Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
3846 Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
3847 Set OUTPUT_OPTION, ZLIB, ZLIBINC. Do not set P,
3848 LANG_FLAGS_TO_PASS. Add OUTPUT_OPTION to all object-file
3849 generation rules. Wrap all rules that change the current
3850 directory in parentheses; pmake doesn't spawn a new shell for
3851 each command. Expunge all references to $(P). When one
3852 command depends on another and they're run all at once, use &&
3853 to separate them, not ;. Add libgcc_s$(SHLIB_EXT) to files
3854 deleted on make clean. Force OUTPUT_OPTION='-o $@' in stage2
3855 and beyond.
3856
3857 * objc/Make-lang.in: Wrap all rules that change the current
3858 directory in parentheses. Expunge all references to $(P).
3859 When one command depends on another and they're run all at
3860 once, use && to separate them, not ;. Add OUTPUT_OPTION to
3861 all object-file generation rules. Delete obsolete variables.
3862 * objc/Makefile.in: Delete.
3863
3864 2000-10-27 Jakub Jelinek <jakub@redhat.com>
3865
3866 * calls.c (expand_call): If sibcall_failure is set during pass 1,
3867 clear tail_call_insns as well.
3868
3869 2000-10-27 Nick Clifton <nickc@redhat.com>
3870
3871 * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
3872 prototype.
3873
3874 2000-10-26 Richard Henderson <rth@redhat.com>
3875
3876 * calls.c (expand_call): Supress sibcall if we have a
3877 BLKmode return in registers.
3878
3879 2000-10-26 Bernd Schmidt <bernds@redhat.co.uk>
3880
3881 * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
3882 into memory.
3883
3884 2000-10-26 Nathan Sidwell <nathan@codesourcery.com>
3885
3886 * tree.c (make_node, case 't'): Set alignment to that of
3887 char_type_node.
3888 * expr.c (move_by_pieces_ninsns): Abort if some length remains.
3889
3890 2000-10-25 Mark Mitchell <mark@codesourcery.com>
3891
3892 * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
3893 * configure.in (enable-libstdcxx-v3): Arrange to have
3894 HAVE_LIBSTDCXX_V3 substituted into the output files.
3895
3896 2000-10-25 Richard Henderson <rth@redhat.com>
3897
3898 * recog.c (constrain_operands): Initialize which_alternative
3899 before no alternatives early exit.
3900
3901 * cse.c (find_comparison_args): Check that we can reverse a
3902 comparison if needed before accepting the substitution.
3903
3904 * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
3905
3906 * simplify-rtx.c (simplify_relational_operation): Sign extend
3907 low words before sign extending to high words.
3908
3909 2000-10-25 Nick Clifton <nickc@redhat.com>
3910
3911 * config/mcore/mcore.c: Include config.h before system.h.
3912
3913 2000-10-25 Ray Essick <essick@ddna.labs.mot.com>
3914
3915 * config/mcore/mcore.md (return): Force function epilogue to
3916 always be generated to work around epilogue suppression bug in
3917 M*Core backend.
3918
3919 2000-10-25 Joseph S. Myers <jsm28@cam.ac.uk>
3920
3921 * c-decl.c (grokdeclarator): Move warning for qualified void
3922 return types with -pedantic to when the function type is
3923 constructed. At -W, warn in general for qualified function return
3924 types, except for volatile void.
3925 * invoke.texi: Document this new warning at -W.
3926
3927 2000-10-25 Neil Booth <neilb@earthling.net>
3928
3929 * cpp.texi: Update with implementation-defined behavior and
3930 internal limits.
3931
3932 2000-10-25 Jakub Jelinek <jakub@redhat.com>
3933
3934 * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
3935 incomplete type force it into alias set 0.
3936
3937 Wed Oct 25 01:02:44 EDT 2000 John Wehle (john@feith.com)
3938
3939 * alias.c: Include basic-block.h.
3940 (loop_p): New function.
3941 (mark_constant_function): Use it.
3942 * Makefile.in (alias.o): Update dependencies.
3943
3944 2000-10-24 Aldy Hernandez <aldyh@redhat.com>
3945
3946 * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
3947 like memory.
3948
3949 2000-10-24 Jim Wilson <wilson@cygnus.com>
3950
3951 * expmed.c (store_bit_field): Move integer pun code down after
3952 code that calls emit_move_insn for entire register move.
3953 * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
3954 Oct 20 changes. Only store mode in TYPE_MODE if RECORD_TYPE.
3955
3956 2000-10-24 Richard Henderson <rth@cygnus.com>
3957
3958 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
3959 register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
3960
3961 2000-10-24 Aldy Hernandez <aldyh@redhat.com>
3962
3963 * gcse.c (cprop_insn): do not propagate constants into jump_insn
3964 for machines with CC0 more than once.
3965
3966 2000-10-24 Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
3967
3968 * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
3969 pseudos just like memory.
3970
3971 2000-10-24 Alexandre Oliva <aoliva@redhat.com>
3972
3973 * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
3974 when deleting libcall sequence collapsed to a single instruction.
3975
3976 2000-10-24 Andrew Haley <aph@cygnus.co.uk>
3977
3978 * expr.c (do_store_flag): Don't crash if either side of a
3979 comparison is error_mark_node.
3980
3981 2000-10-24 Jakub Jelinek <jakub@redhat.com>
3982
3983 * sibcall.c (purge_mem_unchanging_flag): New function.
3984 (optimize_sibling_and_tail_recursive_calls): Call it.
3985
3986 2000-10-24 Philipp Thomas <pthomas@suse.de>
3987
3988 * Makefile.in (check-po): New target for doing checks in the po
3989 subdir if all languages configured.
3990 (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
3991 configure if NLS is enabled.
3992 * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
3993 otherwise leave empty.
3994 * configure: Regenerate.
3995
3996 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
3997
3998 * i386.c (print_operand): Handle new 'A' formatting code.
3999 387 opcodes need suffixes even with -mintel-syntax.
4000 Check for explicit size override (codes 'b', 'w' and 'k').
4001 (print_operand_address): Check if register prefix is needed when
4002 emitting `ds' segment override.
4003 * i386.h: Add comment about new 'A' formatting code.
4004 * i386.md (jump and call patterns): Emit absolute references using %A.
4005
4006 2000-10-23 Richard Henderson <rth@cygnus.com>
4007
4008 * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
4009 output registers as fixed.
4010 (ia64_function_epilogue): Undo output fixation.
4011
4012 2000-10-23 Richard Henderson <rth@cygnus.com>
4013
4014 * config/alpha/alpha.md: Add names for all unnamed insns; use
4015 define_insn_and_split in some obvious places.
4016 (lda): Remove.
4017 (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
4018 (zero_extendqisi2, zero_extendqidi2): Likewise.
4019 (zero_extendhisi2, zero_extendhidi2): Likewise.
4020 (abs splitters): Fix match_scratch operand number.
4021 (bcc_reverse): Swap pc & label instead of non-canonical compare.
4022
4023 2000-10-23 Jim Wilson <wilson@cygnus.com>
4024
4025 * ia64.c (ia64_print_operand, case 'r'): Correct comment. Handle
4026 CONST_INT.
4027 * ia64.md (cmpsi_adjusted): Use %r3.
4028 (cmpdi_adjusted): Likewise.
4029
4030 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
4031
4032 * config/i386/att.h (ASM_FILE_START): Define.
4033
4034 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
4035
4036 * config/i386/linux.h (ASM_FILE_START): Define.
4037
4038 Wed Oct 18 11:16:40 2000 Donald Lindsay <dlindsay@cygnus.com>
4039
4040 * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
4041 since this (only) drags in a crt0.o reference that the .ld files
4042 also introduce.
4043
4044 2000-10-23 Geoff Keating <geoffk@cygnus.com>
4045
4046 * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
4047 overwrite the value in a RELOAD_FOR_INPUT and other kinds of
4048 reloads just like an RELOAD_FOR_OUTPUT would.
4049
4050 * local-alloc.c (update_equiv_regs): Add an abort(). When
4051 deleting or moving insns, update reg_equiv[regno].init_insns.
4052
4053 2000-10-23 Mark Mitchell <mark@codesourcery.com>
4054
4055 * c-tree.texi: Improve documentation for IF_STMTs and related
4056 conditional statements.
4057
4058 2000-10-22 Mark Mitchell <mark@codesourcery.com>
4059
4060 * expr.c (do_preexpand_calls): Remove.
4061 (same_from_p): Don't use CALL_EXPR_RTL.
4062 (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
4063 (preexpand_calls): Remove.
4064 * tree.c (first_rtl_op): Remove CALL_EXPR case.
4065 (unsave_expr_1): Likewise.
4066 * tree.def (CALL_EXPR): Give it only two slots.
4067 * tree.h (CALL_EXPR_RTL): Remove.
4068
4069 2000-10-21 Chandrakala Chavva <cchavva@redhat.com>
4070
4071 * libgcc-std.ver (__addvsi3, __addvdi3, __subvsi3, __subvdi3,
4072 __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
4073 New functions.
4074
4075 2000-10-22 Alexandre Oliva <aoliva@redhat.com>
4076
4077 * calls.c (combine_pending_stack_adjustment_and_call): Don't
4078 adjust stack when unadjusted_alignment ends up as zero.
4079
4080 2000-10-22 Joseph S. Myers <jsm28@cam.ac.uk>
4081
4082 * fixinc/genfixes: Remove EGCS reference.
4083 * install.texi: Remove EGCS reference.
4084 * INSTALL: Regenerate.
4085
4086 2000-10-22 Mark Mitchell <mark@codesourcery.com>
4087
4088 * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
4089
4090 2000-10-21 Joseph S. Myers <jsm28@cam.ac.uk>
4091
4092 * diagnostic.c: Remove EGCS reference in comment.
4093
4094 Sat Oct 21 08:24:25 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4095
4096 * loop.c (strength_reduce): Fix error in last change.
4097
4098 2000-10-20 David Edelsohn <edelsohn@gnu.org>
4099
4100 * Makefile.in (SHLIB_NM_FLAGS): New.
4101 (libgcc.mk): Pass it.
4102 * mklibgcc.in (libgcc.map): Use it.
4103
4104 * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
4105 SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
4106
4107 2000-10-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4108
4109 * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
4110
4111 * sparc.c (load_pic_register): Delete unused varaible.
4112
4113 * libgcc2.c (__addvsi3): Delete unused variable.
4114
4115 * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
4116 __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
4117 __negvdi2): Prototype.
4118
4119 * ssa.c (apply_delayed_renames): Avoid undefined operation.
4120
4121 * toplev.c (display_target_options): Make static to match
4122 prototype. Delete empty declaration.
4123
4124 2000-10-20 Tom Tromey <tromey@cygnus.com>
4125
4126 * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
4127 * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
4128
4129 Fri Oct 20 17:05:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4130
4131 * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
4132 returned MEM.
4133 (expand_expr_unaligned, case ARRAY_REF): Check that index is
4134 a constant before comparing it; use tree_low_cst.
4135 * tree.c (save_expr): Set TREE_READONLY.
4136 (substitute_expr): Return inside of NON_LVALUE_EXPR.
4137 (build, build1): Set TREE_READONLY if all operands are.
4138 (build_index_type): If upper bound is a negative number, lower
4139 bound is zero and sizetype is unsigned, use upper bound of one and
4140 lower of zero.
4141
4142 2000-10-20 David Edelsohn <edelsohn@gnu.org>
4143
4144 * gcc.c (process_command, main): Use "because" instead of
4145 "since" in error messages.
4146
4147 Fri Oct 20 13:33:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4148
4149 * stor-layout.c (compute_record_mode): Use tree_low_cst.
4150 Don't use mode of field for record unless sizes are the same.
4151 (layout_type, case ARRAY_TYPE): Remove special bounds handling
4152 previously added for Ada; also change to using host_integerp
4153 and tree_low_cst.
4154
4155 * loop.c (strength_reduce): Show when new register made for
4156 giv is known to be a pointer and its aligment if so and known.
4157 (loop_dump_aux): Show VERBOSE parameter unused.
4158
4159 * gcse.c (set_hash_table_size): Now unsigned.
4160 * sdbout.c (template_name_p): Add "const" to avoid warnings.
4161 (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
4162 (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
4163 (sdbout_end_epilogue): Remove variable NAME.
4164 * system.h (getopt): Add default definition.
4165 * config/alpha/alpha.c (print_operand): Don't continue processing
4166 after issuing error.
4167 (summarize_insn): Avoid use of UL in constant.
4168
4169 * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
4170
4171 * fold-const.c (force_fit_type): Unsigned values can overflow
4172 if they are sizetype.
4173 (int_const_binop): Don't use cache if overflows.
4174
4175 2000-10-20 Richard Henderson <rth@cygnus.com>
4176
4177 * function.c (locate_and_pad_parm): Zero alignment_pad.
4178
4179 * regrename.c (rr_replace_reg): Rewrite to use recog_data to
4180 perform substitutions, and apply_change_group to see if it worked.
4181
4182 Fri Oct 20 13:33:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4183
4184 * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
4185
4186 * combine.c (struct undo): Change int to unsigned int.
4187 (do_SUBST_INT): Args are unsigned int.
4188 (make_extraction, force_to_mode): Use proper type when forming mask.
4189 (make_field_assignment): Likewise.
4190
4191 2000-10-20 Joseph S. Myers <jsm28@cam.ac.uk>
4192
4193 * c-common.c (check_format_info_recurse): Extract string constant
4194 initializers from non-volatile constant arrays and check them as
4195 formats.
4196 * c-typeck.c (decl_constant_value): Don't check pedantic or check
4197 for DECL_MODE (decl) != BLKmode.
4198 (decl_constant_value_for_broken_optimization): New function which
4199 includes these checks.
4200 (default_conversion, convert_for_assignment, digest_init): Use
4201 decl_constant_value_for_broken_optimization instead of
4202 decl_constant_value.
4203
4204 2000-10-20 Mark Mitchell <mark@codesourcery.com>
4205
4206 * tree.h (DECL_ALIGN_UNIT): New macro.
4207
4208 2000-10-14 Marek Michalkiewicz <marekm@linux.org.pl>
4209
4210 * config/avr/avr-protos.h (avr_output_bld): New.
4211 (out_shift_with_cnt): Add t_len argument.
4212 * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
4213 (output_movqi, output_movhi, output_movsisf): Optimize loading
4214 any constant with exactly one bit set to NO_LD_REGS.
4215 (out_shift_with_cnt): Optimize output code for size or speed,
4216 depending on optimize_size. Handle small shift counts as well
4217 (if not hand-optimized in ?sh??i3_out). Shifts can be done
4218 with or without a scratch register, with help of __tmp_reg__
4219 or __zero_reg__ if necessary. Add T_LEN argument to pass the
4220 length of TEMPLATE in words, return total insn length in *LEN.
4221 (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
4222 out_shift_with_cnt to work with the above change.
4223 (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
4224 lshrsi3_out): Likewise. Optimize more known shift count cases.
4225 Remove cases already well optimized in out_shift_with_cnt.
4226 (avr_output_bld): New function.
4227 * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
4228 (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
4229 * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
4230 Add reload_completed to insn condition - only for peepholes.
4231 (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
4232 in a register or memory.
4233 (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
4234 Do not require a scratch register.
4235 (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
4236 *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
4237 Optimize shifts by known count using a scratch register, but only
4238 if one is still available after register allocation.
4239
4240 2000-10-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4241
4242 * t-vax: New file. Don't build modules from libgcc1.c.
4243
4244 Fri Oct 20 00:57:00 EDT 2000 John Wehle (john@feith.com)
4245
4246 * alias.c: (mark_constant_function): Don't check pure functions.
4247 Initialize and end alias analysis.
4248 (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
4249 Don't make a special exception for recursion. Handle
4250 UNSPEC_VOLATILE. Don't assume ASM_OPERANDS is non-local
4251 unless it's volatile.
4252
4253 * local-alloc.c (equivalence): New structure.
4254 (reg_equiv): Define.
4255 (contains_replace_regs): Remove array and use
4256 field in reg_equiv.
4257 (memref_referenced_p): Likewise.
4258 (no_equiv): Likewise.
4259 (update_equiv_regs): Likewise.
4260
4261 (equiv_init_varies_p,
4262 equiv_init_movable_p): New functions.
4263 (update_equiv_regs): Use them. Use rtx_varies_p
4264 instead of function_invariant_p. Process insns
4265 from end to beginning. Allow a REG_EQUIV insn
4266 within the same loop as a use to be moved, also
4267 allow it to be moved out of a loop. Update
4268 REG_DEAD notes when substituting into an insn.
4269
4270 2000-10-19 Jim Wilson <wilson@cygnus.com>
4271
4272 * c-decl.c (start_decl): Check for error_mark_node type before using
4273 COMPLETE_TYPE_P.
4274 (finish_decl): Likewise. Don't give an error if decl type is
4275 already error_mark_node.
4276
4277 * haifa-sched.c (compute_trg_info): Add explanatory comments.
4278 New local update_blocks. Use update_blocks to remove duplicates
4279 when computing update blocks. Check for bblst_table overflow.
4280 (schedule_block): Add explanatory comment. Reduce bblst_size by
4281 factor of 2.
4282 * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
4283 notes.
4284
4285 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
4286
4287 * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
4288
4289 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
4290
4291 * expmed.c: Minor corrections in comments.
4292 * invoke.texi: Added desciption for the new option -ftrapv.
4293
4294 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
4295
4296 * libgcc2.c: Added the missing #endif.
4297
4298 Thu Oct 19 14:25:11 MET DST 2000 Jan Hubicka <jh@suse.cz>
4299
4300 * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
4301
4302 2000-10-18 Chandrakala Chavva <cchavva@redhat.com>
4303
4304 * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
4305 Use smulv_optab for -ftrapv.
4306 (expand_mult_highpart): Use unsigned multiply.
4307 (expand_divmod): Special-case division by -1.
4308 For EXACT_DIV_EXPR, do right shift first, then the multiply.
4309 For complex divide, use abs with unsigned result.
4310 * expr.c (force_operand): Use unsigned multiply.
4311 (expand_expr): Use overflow-trapping optabs for signed types if
4312 flag_trapv.
4313 If flag_trapv, don't generate a recursive call with EXPAND_SUM
4314 if the type is signed and the original call wasn't EXPAND_SUM or
4315 EXPAND_INITIALIZER.
4316 * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
4317 (negv_optab, absv_optab): Declare.
4318 * flags.h (flag_trapv): Declare.
4319 * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
4320 smulv_optab, sdivv_optab, negv_optab and absv_optab.
4321 (gen_insn): Interpret '$P' as requiring an integer mode,
4322 including partial integer modes.
4323 * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
4324 (product_cheap_p): Use unsigned expand_mult.
4325 * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
4326 (negv_optab, absv_optab): Define.
4327 (expand_binop): Use overflow-trapping optabs for signed types if
4328 flag_trapv.
4329 Handle negv_optab libe neg_optab.
4330 (expand_abs): Take result_unsignedp argument instead of unsignedp one.
4331 Use overflow-trapping optabs for signed result if flag_trapv.
4332 (expand_complex_abs): Use overflow-trapping optabs for signed types if
4333 flag_trapv.
4334 Don't open-code complex absolute-value operation for flag_trapv.
4335 (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
4336 sdivv_optab, negv_optab and absv_optab.
4337 * toplev.c (flag_trapv): Define.
4338 (lang_independent_options f_options): Include flag_trapv.
4339 * tree.h (TYPE_TRAP_SIGNED): Define.
4340 * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
4341 __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
4342 New functions.
4343 * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
4344 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
4345
4346 2000-10-18 Geoffrey Keating <geoffk@cygnus.com>
4347 David V. Henkel-Wallace <gumby@cygnus.com>
4348
4349 * config/i386/t-netware: Bring in from the Red Hat tree.
4350 * config/i386/netware.h: Likewise.
4351 * config/netware.h: Likewise.
4352 * config/rs6000/netware.h: Delete.
4353 * configure.in: Add i[34567]86-*-netware.
4354 * configure: Hand-edit to match configure.in change.
4355
4356 2000-10-18 Mark Mitchell <mark@codesourcery.com>
4357
4358 * c-common.h (flag_no_builtin): Declare.
4359 (flag_no_nonansi_builtin): Likewise.
4360 (c_common_nodes_and_builtins): Change prototype.
4361 * c-common.c (flag_no_builtin): New variable.
4362 (flag_no_nonansi_builtin): Likewise.
4363 (c_common_nodes_and_builtins): Remove parameters. Adjust
4364 accordingly.
4365 * c-decl.c (flag_no_builtin): Remove.
4366 (flag_no_nonansi_builtin): Likewise.
4367 (init_decl_processing): Adjust call to
4368 c_common_nodes_and_builtins.
4369
4370 2000-10-18 Marc Espie <espie@openbsd.org>
4371
4372 * tm.texi (LIBGCC_SPEC): Synch with reality.
4373
4374 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
4375
4376 * c-common.c (check_format_types): Check for writing through a
4377 NULL pointer argument.
4378
4379 2000-10-18 Hans-Peter Nilsson <hp@axis.com>
4380
4381 * tm.texi (Exception Region Output): Document
4382 DWARF_CIE_DATA_ALIGNMENT.
4383 * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
4384 #ifndef.
4385 [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
4386 DWARF_CIE_DATA_ALIGNMENT.
4387
4388 2000-10-18 Michael Hayes <mhayes@cygnus.com>
4389
4390 * basic-block.h (struct loop): Delete fields pre_header_root
4391 and pre_header_trace and replace with pre_header_edges
4392 and num_pre_header_edges.
4393 * flow.c (flow_loop_dump): Dump pre_header_edges.
4394 (flow_loops_free): Free pre_header_edges.
4395 (flow_loop_pre_header_scan): Calculate pre_header_edges.
4396
4397 2000-10-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4398
4399 * contrib.texi: Update references to steering committee members
4400 and Jeff Law's entry.
4401
4402 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
4403
4404 * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
4405 (maybe_read_dollar_number, check_format_info_main): Use them for
4406 pedantic warning messages.
4407
4408 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
4409
4410 * c-common.c (check_format_info_main): Minor cleanup: move
4411 variables into inner scopes; initialize declarations where
4412 appropriate; don't hardcode "scanf" name on warning for zero
4413 width.
4414
4415 2000-10-17 Mark Mitchell <mark@codesourcery.com>
4416
4417 * c-common.c (back_end_hook): New variable.
4418 * c-common.h (back_end_hook): Declare it.
4419 * c-lang.c (finish_file): Use it.
4420
4421 * emit-rtl.c (init_emit_once): Initialize the const_int_htab
4422 earlier.
4423
4424 2000-10-18 Jan Hubicka <jh@suse.cz>
4425
4426 * i386.c (ix86_comparison_operator, put_condition_code,
4427 ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
4428 (ix86_expand_strlensi_unroll_1): Use CCRCmode.
4429 * i386.h (EXTRA_CC_MODES): Add CCRCmode.
4430 * i386.md (adddi and negdi splitter): Use CCRCmode.
4431 (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
4432 (subsi3_carry): add '*'
4433 (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
4434 (cmp to add peep2): Use CCRCmode; swap operands.
4435
4436 2000-10-18 Kazu Hirata <kazu@hxi.com>
4437
4438 * h8300.c: Fix a comment typo.
4439 (round_frame_size): New.
4440 (compute_saved_regs): Likewise.
4441 (push): Likewise.
4442 (pop): Likewise.
4443 (push_order): Remove.
4444 (pop_order): Likewise.
4445 (function_prologue): Rearrange code for readability.
4446 (function_epilogue): Likewise.
4447
4448 * config/h8300/h8300.md: Remove an unnecessary sign_extend
4449 expander that is used when not optimizing. Output a tab after
4450 each assembly insns.
4451
4452 * reorg.c: Fix formatting.
4453
4454 2000-10-17 Joern Rennecke <amylaar@redhat.co.uk>
4455
4456 * reload1.c (move2add_note_store): Check for simple
4457 auto-inc in destination.
4458
4459 2000-10-17 Michael Chastain <chastain@redhat.com>
4460
4461 * config/i386/i386-aout.h: define INT_ASM_OP.
4462
4463 Tue Oct 17 20:11:08 2000 Alan Modra <alan@linuxcare.com.au>
4464
4465 * pa.c (print_operand): Handle case 'c' for .vtable_inherit
4466
4467 Tue Oct 17 20:05:51 2000 Martin Buchholz <martin@xemacs.org>
4468
4469 * i370.md: Fix spelling typo.
4470
4471 2000-10-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4472
4473 * function.c (locate_and_pad_parm): Don't align stack unconditionally.
4474 Fixes execute/20001017-1.c on powerpc-linux-gnu.
4475
4476 * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
4477 * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
4478 LABEL_REF.
4479
4480 * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
4481 ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
4482 here...
4483 * rs6000/aix.h: ...to here.
4484 * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
4485
4486 2000-10-17 Jakub Jelinek <jakub@redhat.com>
4487
4488 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
4489
4490 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
4491 sure linker can relax even the delay slot mov %g1,%o7, fix output
4492 formating.
4493
4494 2000-10-17 Kazu Hirata <kazu@hxi.com>
4495
4496 * config/h8300/h8300.md: Remove an unnecessary zero_extend
4497 expander that is used when not optimizing. Output a tab after
4498 each assembly insns.
4499
4500 2000-10-17 Chandrakala Chavva <cchavva@redhat.com>
4501
4502 * gcc.c: New options --target-help.
4503 (process_command): Added code to parse this new option.
4504 * toplev.c (display_target_options): New function to support the
4505 above new option.
4506 * cppinit.c (new_pending_directive) : New option OPT_target__help.
4507 (cpp_handle_option): Support this new option.
4508 * invoke.texi: Added notes about --target-help option.
4509
4510 2000-10-17 Graham Stott <grahams@redhat.com>
4511
4512 * config/i386/i386.md (testqi_1): Add missing operand prefix
4513 for operand 0.
4514 * config/i386/i386-protos.h: Add missing prototype.
4515
4516 2000-10-17 Diego Novillo <dnovillo@cygnus.com>
4517
4518 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
4519 _GLOBAL_OFFSET_TABLE should not have a $ prefix when
4520 using -mintel-syntax.
4521
4522 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
4523
4524 * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
4525 (format_types): Use it for printf.
4526 (maybe_read_dollar_number): Add parameter for the kind of format
4527 involved. Warn for multiple use for arguments if this is
4528 inappropriate for the kind of format involved.
4529 (check_format_info_main): Update calls to maybe_read_dollar_number.
4530
4531 2000-10-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4532
4533 * inclhack.def (hpux_maxint): Also apply fix to values.h.
4534 * fixincl.x: Rebuilt.
4535
4536 2000-10-17 Alexandre Oliva <aoliva@redhat.com>
4537
4538 * genrecog.c (write_switch): Return the first condition that needs a
4539 label.
4540
4541 2000-10-17 Bernd Schmidt <bernds@redhat.co.uk>
4542
4543 * c-tree.h (warn_sequence_point): Move declaration to...
4544 * c-common.h (warn_sequence_point): ... here.
4545 * c-decl.c (warn_sequence_point): Move definition to...
4546 * c-common.c (warn_sequence_point): ... here.
4547 (struct reverse_tree): New.
4548 (reverse_list, reverse_max_depth): New static variables.
4549 (build_reverse_tree, common_ancestor, modify_ok
4550 verify_sequence_points): New functions.
4551 (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
4552 * c-typeck.c (check_modify_expr): Delete.
4553 (build_modify_expr): Don't call it.
4554
4555 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
4556
4557 * c-common.h (warn_missing_format_attribute): New variable.
4558 * c-decl.c (warn_missing_format_attribute): New variable.
4559 (c_decode_option): Decode -Wmissing-format-attribute and
4560 -Wno-missing-format-attribute.
4561 * c-common.c (check_function_format): If
4562 -Wmissing-format-attribute, give a warning where a vprintf or
4563 vscanf function is called by a function without its own printf or
4564 scanf attribute.
4565 * toplev.c (documented_lang_options): Add
4566 -Wmissing-format-attribute.
4567 * invoke.texi: Document -Wmissing-format-attribute.
4568
4569 2000-10-17 Marc Espie <espie@openbsd.org>
4570
4571 * invoke.texi (-shared): Insist on requiring code generation flags
4572 to be used along with -shared, and document the subtle failure that
4573 may occur otherwise.
4574
4575 2000-10-16 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4576
4577 * pa.md (return_internal): Move `use' after `return'.
4578
4579 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4580
4581 * machmode.def: Correct comment.
4582
4583 2000-10-16 Rodney Brown <RodneyBrown@mynd.com>
4584
4585 * print-rtl.c (print_rtx_head): Constify.
4586 * rtl.h (print_rtx_head): Similarly.
4587
4588 * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
4589 Constify char * return value.
4590 * config/pa/pa/pa.c
4591 (output_64bit_and, output_64bit_ior): Constify char * return value.
4592 (pa_can_combine_p): Make static.
4593 (function_arg): Decorate unused `named' argument. Fix comment typo.
4594 (function_arg_partial_nregs): Decorate unused `named' argument.
4595
4596 2000-10-16 Joseph S. Myers <jsm28@cam.ac.uk>
4597
4598 * c-common.c (format_check_results): New structure.
4599 (finish_dollar_format_checking): Adjust to take a
4600 format_check_results * parameter.
4601 (check_format_info, check_format_info_recurse,
4602 check_format_info_main): Split check_format_info into three
4603 functions, the main checking going in check_format_info_main.
4604 Recurse when any reduction of the format string argument towards a
4605 string literal is done; go down both branches of a conditional
4606 expression. Don't warn for extra format arguments or empty format
4607 strings if they only occur in some branches of a conditional
4608 expression.
4609
4610 2000-10-16 Kazu Hirata <kazu@hxi.com>
4611
4612 * config/h8300/h8300.c: Remove obstack. Include ggc.h.
4613
4614 2000-10-16 Jakub Jelinek <jakub@redhat.com>
4615
4616 * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
4617
4618 2000-10-15 Diego Novillo <dnovillo@cygnus.com>
4619
4620 * i386.md (*movsi_or): Switch operand order for intel syntax.
4621
4622 2000-10-14 Joseph S. Myers <jsm28@cam.ac.uk>
4623
4624 * PROBLEMS: Remove.
4625
4626 * gcc.texi (Contributing): Update.
4627
4628 2000-10-13 Diego Novillo <dnovillo@cygnus.com>
4629
4630 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
4631 appropriate assembler dialect.
4632
4633 2000-10-13 Alexandre Oliva <aoliva@redhat.com>
4634
4635 * c-common.c (c_expand_builtin): PARAMS-ize prototype.
4636
4637 2000-10-12 Marek Michalkiewicz <marekm@linux.org.pl>
4638
4639 * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
4640 constants 1 and 2 to NO_LD_REGS.
4641
4642 2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4643
4644 * Makefile.in (c-parse.c, tradcif.c): Create atomically.
4645
4646 * objc/Make-lang.in (objc-parse.c): Likewise.
4647
4648 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
4649
4650 * arm.c: Include obstack.h
4651 (minipool_obstack, minipool_startobj): Define.
4652 (arm_add_gc_roots): Initialize them.
4653 (create_fix_barrier): Use our new obstack.
4654 (push_minipool_barrier, push_minipool_fix): Likewise.
4655 (arm_reorg): Release obstack memory.
4656
4657 2000-10-13 Jakub Jelinek <jakub@redhat.com>
4658
4659 * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
4660 (prologue, exception_receiver, builtin_setjmp_receiver): New
4661 patterns.
4662 * config/sparc/sparc.h (FINALIZE_PIC): Remove.
4663 * config/sparc/sparc-protos.h (finalize_pic): Remove.
4664 (load_pic_register): New prototype.
4665 * config/sparc/sparc.c (pic_setup_code): Remove.
4666 (finalize_pic): Rename to...
4667 (load_pic_register): ...this function.
4668 Don't look for nonlocal_goto_receivers and emit pic setup code
4669 directly. Don't check current_function_uses_pic_offset_table.
4670
4671 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
4672
4673 * tree.h (struct obstack): Declare.
4674
4675 2000-10-12 Mark Mitchell <mark@codesourcery.com>
4676
4677 Remove obstacks.
4678 * Makefile.in (ggc-callbacks.o): Remove target.
4679 (flow.o): Depend on GGC_H.
4680 * alias.c (init_alias_analysis):
4681 Remove ggc_p conditionals.
4682 (end_alias_analysis): Likewise.
4683 * basic-block.h (init_flow): New function.
4684 (allocate_reg_life_data): Declare.
4685 * bb-reorder.c (function_obstack): Replace with ...
4686 (flow_obstack): ... new variable.
4687 (fixup_reorder_chain): Use it.
4688 * c-decl.c (ggc_p): Remove.
4689 (caller-save.c): Don't call oballoc/obfree.
4690 * combine.c (struct
4691 undobuf): Remove storage.
4692 (try_combine): Don't call oballoc.
4693 (undo_all): Don't call obfree.
4694 * cse.c (insert): Use xmalloc, not
4695 oballoc.
4696 (cse_main): Adjust accordingly.
4697 * dwarf2out.c (save_rtx): Remove
4698 obstack code.
4699 (dwarf2out_init): Remove ggc_p conditionals.
4700 * emit-rtl.c (rtl_obstack): Remove.
4701 (gen_rtx_CONST_INT): Remove ggc_p conditionals.
4702 (make_insn_raw): Likewise.
4703 (emit_insn_before): Likewise.
4704 (emit_insn_after): Likewise.
4705 (emit_insn): Likewise.
4706 (gen_sequence): Likewise.
4707 (copy_insn_1): Remove handling of `b' RTL components.
4708 (init_emit_once): Remove ggc_p conditionals.
4709 * except.c (create_rethrow_ref): Don't fool with obstacks.
4710 (add_partial_entry): Likewise.
4711 (call_get_eh_context): Likewise.
4712 (begin_protect_partials): Likewise.
4713 (protect_with_terminate): Likewise.
4714 * explow.c
4715 (plus_constant_wide): Likewise.
4716 * expr.c (init_expr_once):
4717 Likewise.
4718 (emit_block_move): Likewise.
4719 (clear_storage): Likewise.
4720 (expand_expr): Likewise.
4721 * flow.c (function_obstack): Remove.
4722 (flow_obstack): New variable.
4723 (flow_firstobj): Likewise.
4724 (create_base_block): Use the flow_obstack.
4725 (split_block): Likewise.
4726 (split_edge): Likewise.
4727 (calculate_global_regs_live): Likewise.
4728 (allocate_bb_life_data): Make it static. Likewiwse.
4729 (init_flow): New function.
4730 (size_int_type_wide): Remove ggc_p conditionals.
4731 * function.c
4732 (push_function_context_to): Don't call save_tree_status.
4733 (pop_function_context_from): Or restore_tree_status.
4734 (assign_stack_local_1): Don't call push_obstacks.
4735 (find_fixup_replacement): Use xmalloc.
4736 (fixup_var_refs_insns): Free the storage.
4737 (insns_for_mem_walk): Don't mess with obstacks.
4738 (instantiate_decls): Likewise.
4739 (trampoline_address): Likewise.
4740 (expand_function_end): Likewise.
4741 * function.h (sturct function):
4742 Remove obstack-related variables.
4743 (save_tree_status): Don't declare.
4744 (restore_tree_status): Likewise.
4745 * gcse.c (compute_can_copy):
4746 Don't call oballoc/obfree.
4747 * genattrtab.c (operate_exp): Remove
4748 ggc_p conditionals.
4749 (simplify_cond): Likewise.
4750 (simplify_test_exp): Don't mess with obstacks.
4751 (optimize_attrs): Likewise.
4752 * gengenrtl.c (gendef): Don't include
4753 ggc_p conditionals.
4754 * ggc-callbacks.c (ggc_p): Remove.
4755 * ggc-none.c (ggc_p): Remove.
4756 * ggc.h (ggc_p): Don't declare.
4757 * integrate.c (save_for_inline): Don't mess with obstacks.
4758 (integrate_decl_tree): Likewise.
4759 (output_inline_function): Likewise.
4760 * lists.c
4761 (init_EXPR_INSN_LIST_cache): Likewise.
4762 * loop.c (temp_obstack):
4763 Remove.
4764 (rtl_obstack): Likewise.
4765 (init_loop): Don't mess with obstacks.
4766 (reg_address_cost): Free BIVs and GIVs.
4767 (check_insns_for_bivs): Use xmalloc, not oballoc.
4768 (find_mem_givs): Likewise.
4769 (record_biv): Likewise.
4770 (general_induction_var): Likewise.
4771 (product_cheap_p): Likewse.
4772 * optabs.c (init_one_libfunc): Remove
4773 ggc_p conditional.
4774 * print-tree.c (debug_tree): Don't use
4775 oballoc/obfree.
4776 (print_node): Likewise.
4777 * profile.c (output_func_start_profiler):
4778 Remove call to temporary_allocation.
4779 * reload1.c
4780 (eliminate_regs_in_insn): Don't mess with obstacks.
4781 * resource.c
4782 (mark_target_live_regs): Use xmalloc.
4783 (free_resource_info): Free the memory.
4784 * rtl.c (rtl_obstack):
4785 Remove.
4786 (rtvec_alloc): Don't mess with obstacks.
4787 (rtx_alloc): Likewise.
4788 (rtx_free): Remove.
4789 (copy_rtx): Don't handle `b' cases.
4790 (read_rtx): Use a local rtl_obstack.
4791 * rtl.h (oballoc): Remove.
4792 (obfree): Likewise.
4793 (pop_obstacks): Likewise.
4794 (push_obstacks): Likewise.
4795 (allocate_bb_life_data): Likewise.
4796 (allocate_reg_life_data): Likewise.
4797 (rtx_free): Likewise.
4798 * sdbout.c (sdbout_queue_anonymous_type):
4799 Use tree_cons, not saveable_tree_cons.
4800 * simplify-rtx.c
4801 (cselib_init): Don't mess with obstacks.
4802 * stmt.c
4803 (mark_block_nesting): Mark the label_chain.
4804 (epxand_label): Use ggc_alloc, not oballoc.
4805 (clear_last_expr): Don't mess with obstacks.
4806 (expand_decl_cleanup): Likewise.
4807 (expand_dcc_cleanup): Likewise.
4808 (expand_dhc_cleanup): Likewise.
4809 (expand_anon_union_decl): Likewise.
4810 (add_case_node): Use xmalloc, not oballoc.
4811 (free_case_nodes): New function.
4812 (expand_end_case): Call it.
4813 * stor-layout.c (layout_type): Don't
4814 mess with obstacks.
4815 (layout_type): Likewise.
4816 * toplev.c (wrapup_global_declarations):
4817 Likewise.
4818 (compile_file): Remove ggc_p conditionals.
4819 (rest_of_compilation): Call init_flow. Remove ggc_p conditionals.
4820 (decode_f_option): Remove ggc_p conditionals.
4821 * tree.c
4822 (function_maybepermanent_obstack): Remove.
4823 (maybepermanent_obstack): Likewise.
4824 (function_obstack): Likewise.
4825 (tmeporary_obstack): Likewise.
4826 (momentary_obstack): Likewise.
4827 (temp_decl_obstack): Likewise.
4828 (saveable_obstack): Likewise.
4829 (rtl_obstack): Likewise.
4830 (current_obstack): Likewise.
4831 (expression_obstack): Likewise.
4832 (struct obstack_stack): Likewise.
4833 (obstack_stack): Likewise.
4834 (obstack_stack_obstack): Likewise.
4835 (maybepermanent_firstobj): Likewise.
4836 (temporary_firstobj): Likewise.
4837 (momentary_firstobj): Likewise.
4838 (temp_decl_firstobj): Likewise.
4839 (momentary_function_firstobj): Likewise.
4840 (all_types_permanent): Likewise.
4841 (struct momentary_level): Likewise.
4842 (momentary_stack): Likewise.
4843 (init_obstacks): Remove initialization of removed obstacks.
4844 (save_tree_status): Remove.
4845 (restore_tree_status): Likewise.
4846 (temporary_allocation): Liekwise.
4847 (end_temporary_allocation): Liekwise.
4848 (resume_temporary_allocation): Likewise.
4849 (saveable_allocation): Likewise.
4850 (push_obstacks): Likewise.
4851 (push_obstacks_nochange): Likewise.
4852 (pop_obstacks): Likewise.
4853 (allocation_temporary_p): Likewise.
4854 (permanent_allocation): Likewise.
4855 (preserve_data): Likewise.
4856 (preserve_initializer): Likewise.
4857 (rtl_in_current_obstack): Likewise.
4858 (rtl_in_saveable_obstack): Likewise.
4859 (oballoc): Likewise.
4860 (obfree): Likewise.
4861 (savealloc): Likewise.
4862 (expralloc): Likewise.
4863 (print_obstack_name): Likewise.
4864 (debug_obstack): Likewise.
4865 (object_permanent_p): Likewise.
4866 (push_momentary): Likewise.
4867 (perserve_momentary): Likewise.
4868 (clear_momentary): Likewise.
4869 (pop_momentary): Likewise.
4870 (pop_momentary_nofree): Likewise.
4871 (suspend_momentary): Likewise.
4872 (resume_momentary): Likewise.
4873 (make_node): Don't set TREE_PERMANENT.
4874 (copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK.
4875 Don't set TREE_PERMANENT.
4876 (get_identifier): Remove ggc_p conditionals.
4877 (build_string): Likewise.
4878 (make_tree_vec): Likewise.
4879 (build_decl_list): Remove.
4880 (build_expr_list): Likewise.
4881 (tree_cons): Remove ggc_p conditionals.
4882 (decl_tree_cons): Remove.
4883 (expr_tree_cons): Likewise.
4884 (perm_tree_cons): Likewise.
4885 (temp_tree_cons): Likewise.
4886 (saveable_tree_cons): Likewise.
4887 (build1): Remove ggc_p conditionals.
4888 (build_parse_node): Likewise.
4889 (build_type_attribute_variant): Don't mess with obstacks.
4890 (build_type_copy): Likewise.
4891 (type_hash_canon): Likewise.
4892 (build_pointer_type): Likewise.
4893 (build_reference_type): Likewise.
4894 (build_index_type): Likewise.
4895 (build_range_type): Likewise.
4896 (dump_tree_statistics): Don't print obstack information.
4897 * tree.h
4898 (struct tree_common): Remove permanent_flag.
4899 (TREE_PERMANENT): Remove.
4900 (TREE_SET_PERMANENT): Likewise.
4901 (TYPE_OBSTACK): Likewise.
4902 (struct tree_type): Remove obstack.
4903 (oballoc): Remove.
4904 (savealloc): Likewise.
4905 (build_decl_list): Likewise.
4906 (build_expr_list): Likewise.
4907 (perm_tree_cons): Likewise.
4908 (temp_tree_cons): Likewise.
4909 (saveable_tree_cons): Likewise.
4910 (decl_tree_cons): Likewise.
4911 (expr_tree_cons): Likewise.
4912 (suspend_momentary): Likewise.
4913 (allocation_temporary_p): Likewise.
4914 (resume_momentary): Likewise.
4915 (push_obstacks_nochange): Likewise.
4916 (permanent_allocation): Likewise.
4917 (push_momentary): Likewise.
4918 (clear_momentary): Likewise.
4919 (pop_momentary): Likewise.
4920 (end_temporary_allocation): Likewise.
4921 (pop_obstacks): Likewise.
4922 (push_obstacks): Likewise.
4923 (pop_momentary_nofree): LIkewise.
4924 (preserve_momentary): Likewise.
4925 (saveable_allocation): Likewise.
4926 (temporary_allocation): Likewise.
4927 (resume_temporary_allocation): Likewise.
4928 (perserve_initializer): Likewise.
4929 (debug_obstack): Likewise.
4930 (rtl_in_current_obstack): Likewise.
4931 (rtl_in_saveable_obstack): Likewise.
4932 (obfree): Likewise.
4933 * varasm.c (current_obstack): Remove.
4934 (saveable_obstack): Remove.
4935 (rtl_obstack): Remove.
4936 (immed_double_const): Don't mess with obstacks.
4937 (immed_real_cons): Likewise.
4938 (output_constant_def): Likewise.
4939 (init_varasm_status): Use xcalloc.
4940 (mark_pool_constant): Mark the pool constant itself.
4941 (free_varasm_status): Free memory.
4942 (decode_rtx_const): Call bzero directly, rather than expanding it
4943 inline.
4944 (record_rtx_const): Don't mess with obstacks.
4945 (force_const_mem): Likewise.
4946 * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
4947 conditionals.
4948 (aof_pic_entry): Likewise.
4949 * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
4950 * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
4951 * config/pa/pa.c (saveable_obstack): Remove.
4952 (rtl_obstack): Likewise.
4953 (current_obstack): Likewise.
4954 (output_call): Don't mess with obstacks.
4955 (hppa_encode_label): Remove ggc_p conditionals.
4956 * config/romp/romp.c (get_symref): Don't mess with obstacks.
4957 * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
4958 (rs6000_encode_section_info): Likewise.
4959 * config/sh/sh.c (get_fpscr_rtx): Likewise.
4960
4961 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka <jh@suse.cz>
4962
4963 * i386.md (adddi3, subdi3 splitters): Update for new pattern.
4964 (addsi3_cc, addqi3_cc, subsi3_cc): Remove
4965 (addsi3_carry): Canonicalize.
4966 (addqi_5): Remove '*'.
4967 (sbb pattern): Canonicalize.
4968
4969 * i386.md (cmp to inc/add peep2): New.
4970
4971 2000-10-12 Richard Earnshaw <rearnsha@arm.com>
4972
4973 * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
4974 the exit block.
4975
4976 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4977
4978 * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
4979 * README.TRAD, TESTS.FLUNK: Remove.
4980
4981 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4982
4983 * c-common.c (decl_attributes): Don't allow strftime formats with
4984 first_arg_num nonzero.
4985 (check_format_info): Set wanted_type and wanted_type_name to zero
4986 before they are possibly assigned and used.
4987
4988 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4989
4990 * c-common.c (scanf_flag_specs): Add flags ' and I.
4991 (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
4992 or the ^ and # flags together.
4993 (scan_char_table): Handle the ' and I flags.
4994 (format_types): Add ' and I flags for scanf.
4995
4996 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4997
4998 * c-common.c (print_char_table): Use the unpromoted type for
4999 lengths "h" and "hh" with conversions dioxXu.
5000 (check_format_types): Apply the default argument promotions where
5001 the wanted type is not a pointer target.
5002
5003 2000-10-11 Michael Meeks <mmeeks@gnu.org>
5004 Joseph S. Myers <jsm28@cam.ac.uk>
5005
5006 * c-typeck.c (check_modify_expr): New function.
5007 (build_modify_expr): Call it if warn_sequence_point.
5008 * c-decl.c (warn_sequence_point): New variable.
5009 (c_decode_option): Handle -Wsequence-point and
5010 -Wno-sequence-point. Enable -Wsequence-point as part of -Wall.
5011 * c-tree.h (warn_sequence_point): Declare.
5012 * invoke.texi (-Wsequence-point): Document.
5013 * toplev.c (documented_lang_options): Add -Wsequence-point and
5014 -Wno-sequence-point.
5015 Original work by Michael Meeks, 16 Jun 1998.
5016
5017 Wed Oct 11 06:15:41 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5018
5019 * tree.c (get_narrower): Don't look at precision of field if
5020 not laid out yet.
5021
5022 Tue Oct 10 23:14:33 2000 Denis Chertykov <denisc@overta.ru>
5023
5024 * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
5025 declaration for data with "progmem" attribute.
5026
5027 2000-10-09 Marek Michalkiewicz <marekm@linux.org.pl>
5028
5029 * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
5030 Correct insn length if shift count is a memory operand.
5031 * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
5032 (*iorhi3_clobber): Change lo8 to hi8.
5033 (zero_extendhisi2): Change %B0 to %A1.
5034 (ashlhi3, ashrhi3): Correct insn length.
5035 (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
5036 from "clobber" to "set_n" in some alternatives.
5037
5038 2000-10-10 Jakub Jelinek <jakub@redhat.com>
5039
5040 * reload1.c (calculate_needs_all_insns): If deleting an instruction,
5041 remove its insn_chain structure as well.
5042
5043 2000-10-09 J. David Anglin <dave@hiauly1.hia.nrc.ca>
5044
5045 * dbxout.c (dbxout_source_line): Remove extra tab.
5046
5047 2000-10-09 Hans-Peter Nilsson <hp@bitrange.com>
5048
5049 * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
5050
5051 2000-10-09 Richard Henderson <rth@cygnus.com>
5052
5053 * Makefile.in (LANG_LIB2FUNCS): Remove.
5054 (LIB2FUNCS): Remove _pure.
5055 (LIB2ADD): Remove LANG_LIB2FUNCS.
5056 (stage_a): Don't set LANG_LIB2FUNCS.
5057 * libgcc2.c (__terminate): Mark noreturn.
5058 (__pure_virtual): Remove.
5059 * mklibgcc.in: Remove LIB2ADD .txt processing.
5060
5061 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
5062
5063 * arm.md (push_multi): Revert unintended change.
5064
5065 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
5066
5067 * arm.c: Miscellaneous white space and comment clean-ups. No
5068 functional change.
5069 * arm.md: Likewise.
5070
5071 2000-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5072
5073 * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
5074 STRING_CST by calling combine_strings.
5075
5076 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
5077
5078 * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
5079 (thumb_output_move_mem_multiple): Support new insn format.
5080 * arm.md (movmem12b): Use SSA compatible format.
5081 (movmem8b): Likewise.
5082
5083 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
5084
5085 * arm.md (predicable): New attribute, default to "no".
5086 (all patterns): Mark as predicable if appropriate.
5087 (conditional execution splits): Split using predication format.
5088 (define_cond_exec): Define.
5089 * arm.c (arm_print_operand): handle insn predicate.
5090
5091 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
5092
5093 * README.NS32K: Remove file.
5094
5095 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
5096
5097 * README-bugs: Remove file.
5098
5099 2000-10-08 Philipp Thomas <pthomas@suse.de>
5100 * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
5101 for test.
5102 * configure: Rebuilt.
5103
5104 2000-10-08 Philipp Thomas <pthomas@suse.de>
5105 * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
5106 disable catalog building if no suitable program was found.
5107 Move warning message from here
5108 (AM_GNU_GETTEXT): To here.
5109 * configure: Rebuilt.
5110
5111 2000-10-08 Philipp Thomas <pthomas@suse.de>
5112 * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
5113 different cache variables.
5114 (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
5115 uses different cache variables.
5116 (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
5117 * configure: Regenerated.
5118
5119 2000-10-08 Richard Henderson <rth@cygnus.com>
5120
5121 * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
5122 * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
5123 * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
5124 Use SHLIB_EXT.
5125
5126 * config/t-linux (SHLIB_EXT): New.
5127 (SHLIB_LINK): Use the entire build command, with substitutions.
5128 (SHLIB_LIBS): Remove.
5129 * config/alpha/t-osf4: Likewise.
5130 * config/mips/t-iris6: Likewise.
5131 * config/sparc/t-sol2: Likewise, but move shlib stuff...
5132 * config/sparc/t-slibgcc-sld: ...here.
5133 * config/sparc/t-slibgcc: New file.
5134
5135 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
5136
5137 * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
5138 * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
5139 CTI_UINTMAX_TYPE.
5140 (intmax_type_node, uintmax_type_node): Define.
5141 * c-common.c (decl_attributes): If pedantic, warn if `mode'
5142 attributes create a type wider than intmax_t.
5143 (T_IM, T_UIM): Define properly.
5144 * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
5145 defined.
5146 (init_decl_processing): Initialize intmax_type_node and
5147 uintmax_type_node.
5148 * c-lex.c (lex_number): When pedantic and warning for integer
5149 constants that are too large, in C99 mode warn for those that have
5150 a type wider than long long.
5151
5152 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
5153
5154 * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
5155 FMT_FLAG_FANCY_PERCENT_OK): Define.
5156 (format_char_info): Add flag "4" to comment.
5157 (format_flag_spec, format_flag_pair): New structures.
5158 (format_kind_info): Add additional fields to control format
5159 checking.
5160 (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
5161 scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
5162 arrays.
5163 (time_char_table): Use "4" flag to handle %Ey.
5164 (format_types): Add entries for new fields.
5165 (get_flag_spec): New function.
5166 (check_format_info): Increase size of flag_chars[] to 256.
5167 Control format checking using the new fields of a format_kind_info
5168 and the new tables; remove all conditionals on printf_format_type,
5169 scanf_format_type or strftime_format_type. Handle all details of
5170 bad combinations of flags (including width, precision and strftime
5171 modifiers) through data rather than ad hoc code. Handle all
5172 details of standard versions in which flags appeared through
5173 data. Use the "4" flag.
5174
5175 2000-10-07 Will Cohen <wcohen@redhat.com>, Kazu Hirata <kazu@hxi.com>
5176
5177 * config/h8300/h8300.md: Remove the memory alternative and correct
5178 the insn lengths in the templates for sign extention and zero
5179 extention.
5180
5181 2000-10-07 Richard Henderson <rth@cygnus.com>
5182
5183 * calls.c (expand_call): Disallow sibcalls to noreturn functions.
5184 * flow.c (make_edges): Revert last change.
5185
5186 * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
5187 TREE_THIS_VOLATILE.
5188 * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
5189
5190 2000-10-06 David O'Brien <obrien@dragon.nuxi.com>
5191
5192 * config/alpha/elf.h: Standardize the formatting.
5193
5194 2000-10-06 David O'Brien <obrien@FreeBSD.org>
5195
5196 * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
5197 #undef.
5198
5199 2000-10-06 Richard Henderson <rth@cygnus.com>
5200
5201 * function.c (diddle_return_value): Examine
5202 current_function_return_rtx instead of the DECL_RESULT.
5203 (expand_function_end): Handle reloading DECL_RESULT from memory
5204 into a hard register. Query promote_mode for sign of mismatched
5205 modes.
5206
5207 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
5208
5209 * haifa-sched.c (schedule_insns): Fix typo in freeing
5210 forward_dependency_cache.
5211
5212 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
5213
5214 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
5215 `TARGET_SH2' as a condition.
5216
5217 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
5218
5219 * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
5220 forward_dependency_cache): New variables.
5221 (add_dependence, remove_dependence): Use anti_dependency_cache and
5222 output_dependency_cache.
5223 (compute_block_forward_dependences): Use forward_dependency_cache.
5224 (schedule_insns): Allocate and free memory for anti/output/forward
5225 dependencies caches.
5226
5227 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
5228
5229 * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
5230 `! TARGET_SH1'. Reindent.
5231
5232 2000-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5233
5234 * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
5235 Move functions from here ...
5236
5237 * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
5238 ... to here.
5239 (c_expand_builtin): New function.
5240 (init_function_format_info): Don't set `check_function_format_ptr'.
5241 (c_common_nodes_and_builtins): Set built_in_class type for
5242 printf/__builtin_printf to BUILT_IN_FRONTEND.
5243 (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
5244
5245 * c-common.h (build_function_call): Declare.
5246
5247 * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
5248 to `lang_expand_expr' rather than `expand_builtin'.
5249
5250 * tree.c (check_function_format_ptr): Delete.
5251
5252 * tree.h (check_function_format_ptr): Likewise.
5253
5254 2000-10-06 Hans-Peter Nilsson <hp@bitrange.com>
5255
5256 * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
5257 DW_OP_bregx when cfa->reg > 31.
5258
5259 * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
5260 break.
5261
5262 2000-10-05 Richard Henderson <rth@cygnus.com>
5263
5264 * c-decl.c (warn_missing_noreturn): Remove.
5265 (c_expand_body): Don't set or check can_reach_end.
5266 * c-tree.h (warn_missing_noreturn): Move ...
5267 * flags.h: ... here.
5268 (can_reach_end): Remove.
5269 * flow.c (check_function_return_warnings): New.
5270 (make_edges): No edge to exit for noreturn sibcalls.
5271 * function.c (expand_function_end): Save the return value
5272 clobber instruction.
5273 (mark_function_status): Mark it.
5274 * function.h (struct function): Add x_clobber_return_insn.
5275 * jump.c (can_reach_end): Remove.
5276 (calculate_can_reach_end): Remove.
5277 (jump_optimize_1): Don't call it.
5278 * output.h (check_function_return_warnings): Declare.
5279 * toplev.c (warn_missing_noreturn): Move from c-decl.c
5280 (rest_of_compilation): Call check_function_return_warnings.
5281
5282 2000-10-05 Richard Henderson <rth@cygnus.com>
5283
5284 * Makefile.in (NM_FOR_TARGET): New.
5285 (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
5286 (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
5287 * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map. Depend the
5288 shared library build on that and EXTRA_MULTILIB_PARTS.
5289 * mkmap-flat.awk: New file.
5290 * mkmap-symver.awk: New file.
5291 * libgcc-std.ver: New file.
5292 * config/libgcc-glibc.ver: New file.
5293 * config/ia64/libgcc-ia64.ver: New file.
5294 * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
5295 (SHLIB_LINK): Add --version-script.
5296 * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
5297 * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
5298 * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
5299 (SHLIB_LINK): Add -M.
5300
5301 2000-10-05 Richard Henderson <rth@cygnus.com>
5302
5303 * Makefile.in (LIB2FUNCS): Add _clz.
5304 * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
5305 (__clz_tab): Put in its own unit, non-static.
5306 * libgcc2.h: Always include longlong.h.
5307
5308 * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
5309 a zero instead of -1.
5310 (count_trailing_zeros): Likewise.
5311
5312 2000-10-05 Richard Henderson <rth@cygnus.com>
5313
5314 * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
5315 when second op1 is const0_rtx. Validate op0 as a register.
5316 * config/alpha/alpha.md (setcc_internal): Don't allow constants
5317 in the first argument of the compare.
5318 (setcc_swapped_internal): Likewise.
5319 (setne_internal): Likewise.
5320
5321 2000-10-05 Geoff Keating <geoffk@cygnus.com>
5322
5323 * tree.c (tree_size): New function split out of copy_node.
5324 (make_node): Remove obstack handling. Use tree_size.
5325 (copy_node): Use tree_size.
5326 * tree.h: Prototype tree_size.
5327
5328 2000-10-05 Richard Henderson <rth@cygnus.com>
5329
5330 * diagnostic.c (output_format): Add missing break.
5331
5332 2000-10-05 Jim Wilson <wilson@cygnus.com>
5333
5334 * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
5335 SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
5336 sequence insn to INSN, and delete last sequence insn.
5337
5338 2000-10-05 Phil Edwards <pme@gcc.gnu.org>
5339
5340 * gcc.c (main): Include generated configargs.h header
5341 and use arguments in '-v' output.
5342
5343 Thu Oct 5 16:16:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5344
5345 * gcc.c: Move data on prefixes forward in file and reorganize.
5346 (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
5347 Always define, but make null if no value.
5348 (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
5349 and "md_startfile_prefix_1".
5350 (main): Check whether md_exec_prefix and the others are the
5351 null string rather than whether the macro is defined.
5352
5353 Thu Oct 5 19:04:18 2000 J"orn Rennecke <amylaar@redhat.co.uk>
5354
5355 * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
5356 from PSImode to SImode.
5357
5358 2000-10-05 Jakub Jelinek <jakub@redhat.com>
5359
5360 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
5361 from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
5362 * dwarf2out.c (add_const_value_attribute): Divide by 4, not
5363 sizeof(long).
5364
5365 Thu Oct 5 09:31:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5366
5367 * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
5368 negation in proper type.a
5369
5370 2000-10-04 Richard Henderson <rth@cygnus.com>
5371
5372 * configure.in (enable-shared): New.
5373 * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
5374 (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
5375 * mklibgcc.in: Use them to link shared a libgcc.
5376 * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
5377 * config/alpha/t-ieee (SHLIB_MULTILIB): New.
5378 * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
5379 * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
5380
5381 * configure.in (alpha-osf*): Use t-osf and x-osf.
5382 * config/alpha/t-osf: New file.
5383 * config/alpha/t-osf4: New file.
5384 * config/alpha/x-osf: New file.
5385 * config/alpha/x-alpha: Remove file.
5386
5387 2000-10-04 Will Cohen <wcohen@redhat.com>
5388
5389 * c-typeck.c (process_init_element): Added warning for zero-length
5390 array.
5391
5392 * extend.texi (Zero Length): State that static initializers for
5393 zero-length arrays are not allowed.
5394
5395 Mon Oct 2 14:50:14 MET DST 2000 Jan Hubicka <jh@suse.cz>
5396
5397 * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
5398 to come last.
5399
5400 2000-10-03 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5401
5402 * config/float-c4x.h: New.
5403 * configure.in (c4x-*): Set float_format to c4x.
5404 * configure: Regenerate.
5405
5406 2000-10-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5407
5408 * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
5409 compilation for solaris versions 2.7 and greater.
5410
5411 2000-10-02 Marc Espie <espie@openbsd.org>
5412
5413 * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
5414 instead of redefining from scratch.
5415
5416 2000-10-02 David O'Brien <obrien@dragon.nuxi.com>
5417
5418 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
5419
5420 2000-10-01 Mark Mitchell <mark@codesourcery.com>
5421
5422 * config/ns32k/genix.h: Remove.
5423 * config/ns32k/x-genix: Likewise.
5424 * config/ns32k/xm-genix.h: Likewise.
5425 * config/fx80: Remove all filee in directory.
5426 * config/pyr: Likewise.
5427 * config/tahoe: Likewise.
5428 * config/gmicro: Likewise.
5429 * config/spur: Likewise.
5430 * configure.in: Remove configury bits for above targets.
5431 * configure: Regenerated.
5432
5433 * configure.in: Don't configure chill by default.
5434 * configure: Regenerated.
5435
5436 * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
5437 (lang_mark_false_label_stack): Remove.
5438 * c-lex.c (init_c_lex): Add file_info_tree as GC root. Allocate
5439 <top level> string in GC area.
5440 (mark_splay_tree_node): New function.
5441 (mark_splay_tree): Likewise.
5442 * except.c (mark_eh_status): Only call lang_mark_false_label_stack
5443 if it exists.
5444 * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
5445 * ggc-common.c (lang_mark_false_label_stack): Change type.
5446 * ggc.h (ggc_alloc_string): Add comment.
5447 (ggc_strdup): New function.
5448
5449 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru>
5450
5451 * config/avr/avr.h (BRANCH_COST): Define as 0.
5452
5453 * config/pdp11/pdp11.c: #include "tree.h" added.
5454
5455 2000-09-30 Marek Michalkiewicz <marekm@linux.org.pl>
5456
5457 * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
5458 ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
5459 with known shift count.
5460 * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
5461 New alternative for shift count 2 with no scratch register.
5462 (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
5463 "set_n" for shift counts 1 and 2.
5464
5465 2000-09-30 Geoff Keating <geoffk@cygnus.com>
5466
5467 * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE. Calculate
5468 the mask value from the individual SET operations.
5469 (return_internal_si): Move the USE after the RETURN.
5470 (return_internal_di): Likewise.
5471 (return_and_restore_fpregs_si): Likewise.
5472 (return_and_restore_fpregs_di): Likewise.
5473 (return_eh_si): Likewise.
5474 (return_eh_di): Likewise.
5475 * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
5476 or check, the USE.
5477 (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
5478 Don't generate a PARALLEL around a single operation movsi_to_cr.
5479 Generate the RETURN first in any PARALLELs.
5480
5481 * rtlanal.c (single_set_1): Use fatal_insn to display the
5482 invalid insn. Check for more cases when a USE or CLOBBER occurs
5483 before a SET.
5484 * Makefile.in: Update dependencies for rtlanal.o.
5485
5486 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
5487
5488 * i386.c: Move include of "config.h" to before that of <setjmp.h>.
5489
5490 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
5491
5492 * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
5493 Consistently use @email for formatting email addresses.
5494
5495 2000-09-29 Richard Henderson <rth@cygnus.com>
5496
5497 * cse.c (notreg_cost): New argument outer.
5498 (COST): Pass in SET to notreg_cost
5499 (COST_IN): New.
5500 (fold_rtx): Use COST_IN. Prefer constants when costs
5501 are the same.
5502
5503 2000-09-29 David Edelsohn <edelsohn@gnu.org>
5504
5505 * fixinc/inclhack.def (broken_cabs): Generalize regex.
5506 * fixinc/fixincl.x: Regenerate.
5507
5508 2000-09-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5509
5510 * loop.c (check_final_value): A GIV is not replaceable if used
5511 before set.
5512
5513 Fri Sep 29 10:04:12 2000 Jeffrey A Law (law@cygnus.com)
5514
5515 * version.c: Bump to gcc-2.97.
5516
5517 Frs Sep 29 13:37:59 MET DST 2000 Jan Hubicka <jh@suse.cz>
5518
5519 * final.c (final_scan_insn): Remove extra extract_insn call;
5520 Use caching for constrain_operands.
5521 (cleanup_subreg_operands): Use caching for extract_insn.
5522 * recog.c (constrain_operands_cached): New.
5523 * recog.h (constrain_operands_cached): Declare.
5524 * i386.c (ix86_attr_length_immediate_default,
5525 ix86_attr_length_address_default, ix86_agi_dependant): Cache
5526 extract_insn call.
5527
5528 * recog.c (asm_noperands): Tweak.
5529 (extract_insn): Do not call asm_noperads for non-asm instructions.
5530
5531 Fri Sep 29 13:20:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
5532
5533 * recog.c (recog_memoized): Rename to recog_memoized_1.
5534 * recog.h (recog_memoized): Rename to recog_memoized_1.
5535 (recog_memoized): New macro.
5536 * rtl.h (single_set): Rename to single_set_1
5537 (single_set): New macro.
5538 * rtlanal.c (single_set): Rename to single_set_1; expect clobbers
5539 to be last.
5540
5541 * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
5542 Do not use match_dup of input operands at outputs.
5543 Use register_operand for memory expression.
5544 (rep_movsi): Put use last, canonicalize.
5545 Use register_operand for memory expression.
5546 (rep_movqi): Put use last.
5547 Use register_operand for memory expression.
5548 (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
5549 of input operands at outputs. Use register_operand for memory
5550 expression.
5551 (rep_stossi): Put use last; canonicalize; fix match_dup in
5552 the address expression
5553 (rep_stosqi): Likewise.
5554 (memcmp expander): Update calls.
5555 (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
5556 the clobbers.
5557
5558 * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
5559 VOIDmode.
5560 (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
5561
5562 2000-09-28 David O'Brien <obrien@FreeBSD.org>
5563
5564 * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
5565 Contains the old contents of config/i386/freebsd.h
5566 * config/i386/freebsd.h: Now the ELF rather than a.out config file.
5567 Contains the old contents of config/i386/freebsd-elf.h
5568 * config/i386/freebsd-elf.h: Retire this file -- contents moved to
5569 config/i386/freebsd.h.
5570 * configure.in: Adjust for above changes.
5571 * po/POTFILES.in: Likewise.
5572 * po/en_GB.po: Likewise.
5573 * po/gcc.pot: Likewise.
5574 * configure: Rebuilt.
5575
5576 2000-09-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5577
5578 * doloop.c (doloop_modify): Prevent delete_insn() from
5579 deleting too much. Prefer loop->top over loop->start as
5580 target for the new JUMP insn.
5581 (doloop_valid_p): Ignore loop with exit_count != 0.
5582
5583 2000-09-28 Philipp Thomas <pthomas@suse.de>
5584
5585 * invoke.texi (i386 Options): Add athlon to table of possible
5586 choices for -mcpu=.
5587
5588 2000-09-28 Gabriel Dos Reis <gdr@codesourcery.com>
5589
5590 * diagnostic.h (output_clear_message_text): New function.
5591 (output_message_text): New macro.
5592
5593 * diagnostic.c (clear_text_info): Rename to
5594 output_clear_message_text.
5595 (output_clear): Adjust.
5596 (output_finish): Rename to output_finalize_message. Tweek.
5597 (output_to_stream): Adjust.
5598
5599 2000-09-28 Neil Booth <neilb@earthling.net>
5600
5601 * cpperror.c (_cpp_begin_message): Do the test for suppression
5602 of warnings and pedantic warnings before the "is a warning an
5603 error" tests.
5604 * cppinit.c (cpp_handle_option): Remove surplus \n.
5605 * cpplex.c (ON_REST_ARG): Delete.
5606 (skip_block_comment): Initialise prevc.
5607 (parse_args): Improve error messages.
5608 (maybe_paste_with_next): Use CONTEXT_VARARGS rather
5609 than ON_REST_ARG.
5610 * cpplib.c (cpp_push_buffer): Fix grammar in message.
5611 * cppmain.c (main): Set callbacks for #ident and #pragma
5612 only if no_output option is false.
5613 (do_pragma_implementation): Only call the #pragma handler
5614 if it is set in the cpp_reader structure.
5615
5616 Wed Sep 27 14:00:07 2000 Donald Lindsay <dlindsay@cygnus.com>
5617
5618 * integrate.c (copy_insn_list): if an ignored return value
5619 is being clobbered, skip cloning that into the inline copy.
5620
5621 2000-09-27 Joseph S. Myers <jsm28@cam.ac.uk>
5622
5623 * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
5624 use @uref for formatting URLs.
5625
5626 2000-09-27 Mark Elbrecht <snowball3@bigfoot.com>
5627
5628 * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
5629 name and prefix.
5630
5631 Tue 26-Sep-2000 18:25:38 BST Neil Booth <neilb@earthling.net>
5632
5633 * gcc.c (cpp_options): Add spec for -ftabstop=.
5634 (invoke_as): New spec that handles invoking as.
5635 Update specs to handle -save-temps and -traditional.
5636 * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
5637 Use invoke_as.
5638 * cp/lang-specs.h, objc/lang-specs.h: Update to use
5639 invoke_as, and handle -save-temps and -traditional (if
5640 appropriate).
5641
5642 2000-09-26 Jakub Jelinek <jakub@redhat.com>
5643
5644 * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
5645 op0 is a SUBREG.
5646 (function_arg_slotno): Accept TImode/CTImode.
5647 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
5648 to UNITS_PER_WORD.
5649
5650 2000-09-26 Michael Hayes <mhayes@cygnus.com>
5651
5652 * flow.c (flow_loop_pre_header_scan): Punt if loop enters
5653 from entry block.
5654
5655 2000-09-25 Jim Wilson <wilson@cygnus.com>
5656
5657 * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
5658 (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
5659 (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
5660 (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
5661
5662 Tue 26-Sep-2000 00:16:22 BST Neil Booth <neilb@earthling.net>
5663
5664 * cpplex.c (parse_args): Don't set VOID_REST flag.
5665 (CONTEXT_VARARGS): New flag.
5666 (maybe_paste_with_next): Set context earlier in loop. Use
5667 it. Do varargs test with CONTEXT_VARARGS flag.
5668 (push_arg_context): Set CONTEXT_VARARGS flag if we're
5669 pushing an argument context for a varargs argument.
5670 * cpplib.h (VOID_REST): Delete.
5671 * gcc.dg/cpp/vararg1.c: Add test case.
5672
5673 2000-09-25 Branko Cibej <branko.cibej@hermes.si>
5674
5675 * flags.h: Declare warning flag warn_system_headers.
5676 * toplev.c: Define it.
5677 (W_options): Add option -Wsystem-headers.
5678 * diagnostic.c (count_error): Test warn_system_headers.
5679 * invoke.texi: Add description for -Wsystem-headers.
5680 * cpplib.h (cpp_options): New member warn_system_headers.
5681 * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
5682 CPP_IN_SYSTEM_HEADER.
5683 * cpplib.c (do_import, do_pragma_once): Likewise.
5684 * cpperror.c (_cpp_begin_message): Test warn_system_headers
5685 and CPP_IN_SYSTEM_HEADER.
5686 * cppinit.c (handle_option): Recognize -Wsystem_headers.
5687 (print_help): Describe -Wsystem_headers.
5688 * cpplex.c (lex_line): Reorganize condition so that warnings
5689 about C++ comments in system headers can be enabled. Remove
5690 label do_line_comment.
5691
5692 Mon 25-Sep-2000 23:38:27 BST Neil Booth <neilb@earthling.net>
5693
5694 * cpplex.c (save_comment): Only store the initial '/'
5695 now.
5696 (lex_token): Combine handling of the two comment types.
5697 Pass everything but the initial '/' to save_comment.
5698
5699 Mon 25-Sep-2000 23:31:45 BST Neil Booth <neilb@earthling.net>
5700
5701 * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
5702 _cpp_can_paste): New library-internal prototypes.
5703 * cpplex.c (dump_param_spelling, output_line_command,
5704 output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
5705 cpp_printf, cpp_output_list): Move to cppoutput.c.
5706 (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
5707 * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
5708 cppoutput.c.
5709 * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
5710 dump_param_spelling, output_line_command, cpp_scan_buffer,
5711 cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
5712 from elsewhere.
5713 * Makefile.in: Add cppoutput.c.
5714 * po/POTFILES.in: Add cppoutput.c.
5715
5716 2000-09-25 Richard Henderson <rth@cygnus.com>
5717
5718 * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
5719 * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
5720 split until after reload.
5721 (rotlsi3, rotldi3): New.
5722
5723 2000-09-25 Gabriel Dos Reis <gdr@codesourcery.com>
5724
5725 * diagnostic.c (output_last_position): Define.
5726 (set_real_maximum_length): Tweek.
5727 * diagnostic.h (output_last_position): Declare.
5728
5729 2000-09-25 Kazu Hirata <kazu@hxi.com>
5730
5731 * config/i386/i386.c: Fix formatting.
5732
5733 2000-09-24 Alan Lehotsky <alehotsky@cygnus.com>
5734
5735 * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
5736 UNITS_PER_WORD is small.
5737
5738 2000-09-25 Joseph S. Myers <jsm28@cam.ac.uk>
5739
5740 * c-common.c (format_char_info): Add flags2; update comments.
5741 (print_char_table, scan_char_table, time_char_table): Split some
5742 flags out into flags2.
5743 (check_format_info): Use flags2 for those flags, for identifying
5744 the initial character of a scanf scanset, and for identifying
5745 printf formats where the '0' flag is ignored with precision.
5746
5747 2000-09-25 Hans-Peter Nilsson <hp@axis.com>
5748
5749 Changes below marked "here" add TABs on either or both sides,
5750 covering start of line, up to any operand for all noted .*ASM.*_OP
5751 definitions. All callers changed.
5752 * tm.texi: Make documented *_ASM.*_OP:s include spacing
5753 (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
5754 BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5755 ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
5756 ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
5757 Fix typos in description for LONG_LONG_TYPE_SIZE and
5758 FINI_SECTION_ASM_OP.
5759 * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
5760 why these defaults don't have leading spacing.
5761 * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
5762 * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5763 UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
5764 * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
5765 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
5766 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
5767 * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
5768 * varasm.c (ASM_STABS_OP): Here.
5769 * xcoffout.h (ASM_STABS_OP): Here.
5770 * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
5771 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
5772 INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
5773 STRING_ASM_OP): Here.
5774 * config/freebsd.h (IDENT_ASM_OP): Here.
5775 * config/linux-aout.h (SET_ASM_OP): Here.
5776 * config/linux.h (SET_ASM_OP): Here.
5777 * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5778 INT_ASM_OP): Here.
5779 * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
5780 * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
5781 * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
5782 * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5783 INT_ASM_OP): Here.
5784 * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
5785 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
5786 INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
5787 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5788 FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
5789 * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5790 CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
5791 * config/a29k/udi.h (INT_ASM_OP): Here.
5792 * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
5793 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
5794 SET_ASM_OP): Here.
5795 * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
5796 READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5797 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5798 UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
5799 ASM_STABD_OP): Here.
5800 * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
5801 COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
5802 CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5803 BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
5804 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
5805 SIZE_ASM_OP, STRING_ASM_OP): Here.
5806 * config/alpha/vms.h (LINK_SECTION_ASM_OP,
5807 READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
5808 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
5809 * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
5810 (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
5811 * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
5812 Here.
5813 * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5814 BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
5815 * config/arm/coff.h (INT_ASM_OP): Here.
5816 * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
5817 * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
5818 * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
5819 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
5820 * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
5821 * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5822 ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
5823 STRING_ASM_OP): Here. Update documentation copy in comments.
5824 * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
5825 * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
5826 DATA_SECTION_ASM_OP): Here.
5827 * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
5828 Here.
5829 * config/convex/convex.h (TEXT_SECTION_ASM_OP,
5830 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
5831 * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5832 BSS_SECTION_ASM_OP): Here.
5833 * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5834 BSS_SECTION_ASM_OP): Here.
5835 * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5836 Here.
5837 * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
5838 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
5839 * config/h8300/h8300.h (ASM_WORD_OP): Here.
5840 * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5841 BSS_SECTION_ASM_OP): Here.
5842 * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
5843 * config/i386/bsd.h (ASM_BYTE_OP): Here.
5844 * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
5845 * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
5846 * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
5847 Here.
5848 * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
5849 * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
5850 Here.
5851 * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
5852 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5853 * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
5854 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
5855 SET_ASM_OP): Here.
5856 * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
5857 * config/i386/netbsd.h (INT_ASM_OP): Here.
5858 * config/i386/openbsd.h (INT_ASM_OP): Here.
5859 * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
5860 IDENT_ASM_OP): Here.
5861 * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
5862 ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
5863 LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
5864 SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
5865 * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
5866 SHARED_BSS_SECTION_ASM_OP): Here.
5867 * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
5868 * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5869 DATA_SECTION_ASM_OP): Here.
5870 * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5871 CONST_SECTION_ASM_OP): Here.
5872 * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
5873 * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5874 BSS_SECTION_ASM_OP): Here.
5875 * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
5876 * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
5877 * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
5878 BSS_ASM_OP): Here, but use trailing spaces.
5879 * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5880 DATA_SECTION_ASM_OP): Here.
5881 * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
5882 Here.
5883 * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
5884 DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
5885 * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5886 TDESC_SECTION_ASM_OP): Here.
5887 * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
5888 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5889 * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5890 Here.
5891 * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5892 BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
5893 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5894 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
5895 * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
5896 COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
5897 FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5898 SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
5899 * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
5900 * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
5901 * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
5902 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
5903 SET_ASM_OP): Here.
5904 * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
5905 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5906 * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
5907 * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
5908 * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
5909 * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
5910 * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
5911 * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5912 GLOBAL_ASM_OP): Here.
5913 * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
5914 BSS_SECTION_ASM_OP): Here.
5915 * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
5916 * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5917 ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
5918 DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
5919 SKIP_ASM_OP): Here.
5920 * config/m68k/newsgas.h (SET_ASM_OP): Here.
5921 * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
5922 FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
5923 * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
5924 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
5925 SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
5926 but use trailing spaces.
5927 * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
5928 DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
5929 FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
5930 Here.
5931 * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5932 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
5933 * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5934 CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
5935 DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5936 IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
5937 GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
5938 BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
5939 CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
5940 SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
5941 VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5942 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
5943 ASM_BYTE_OP): Here.
5944 * config/m88k/openbsd.h (SET_ASM_OP): Here.
5945 * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5946 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
5947 * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
5948 UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
5949 DTORS_SECTION_ASM_OP): Here.
5950 * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
5951 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5952 * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
5953 BSS_SECTION_ASM_OP): Here.
5954 * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
5955 * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
5956 * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
5957 POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
5958 CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
5959 DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
5960 * config/mips/mips.c (ABICALLS_ASM_OP): Here.
5961 * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
5962 Here.
5963 * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
5964 Here.
5965 * config/mips/osfrose.h (SET_ASM_OP): Here.
5966 * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
5967 * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
5968 * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
5969 * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5970 Here.
5971 * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
5972 * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
5973 * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
5974 * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
5975 * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
5976 * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5977 Here.
5978 * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5979 Here.
5980 * config/rs6000/rs6000.h (SET_ASM_OP): Here.
5981 * config/rs6000/sol2.h (ASM_STABN_OP): Here.
5982 * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
5983 Here.
5984 * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
5985 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
5986 * config/sparc/linux.h (COMMON_ASM_OP): Here.
5987 * config/sparc/linux64.h (COMMON_ASM_OP,
5988 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
5989 * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
5990 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5991 * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
5992 * config/sparc/pbd.h (ASM_INT_OP): Here.
5993 * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
5994 * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5995 DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
5996 * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
5997 UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
5998 * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
5999 UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
6000 UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
6001 TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
6002 CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
6003 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
6004 EH_FRAME_SECTION_ASM_OP): Here.
6005 * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
6006 * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
6007 Here.
6008 * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
6009 Here.
6010 * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
6011 TCOMMON_ASM_OP): Here.
6012 * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
6013 Here.
6014 * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6015 ASM_BYTE_OP): Here.
6016
6017 2000-09-25 Richard Henderson <rth@cygnus.com>
6018
6019 * expmed.c (store_bit_field): Adjust last change to not consider
6020 any word-sized field naturally aligned.
6021
6022 2000-09-24 Richard Henderson <rth@cygnus.com>
6023
6024 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
6025 TFmode unordered compares properly. Revalidate integer compare
6026 operands.
6027 (alpha_emit_setcc): New.
6028 (alpha_emit_conditional_move): Revalidate integer compare operands.
6029 * config/alpha/alpha-protos.h: Update.
6030 * config/alpha/alpha.md (cmpdi): Allow general operands.
6031 (sne): Use alpha_emit_setcc.
6032 (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
6033 (sunordered, sordered): New.
6034
6035 2000-09-24 Richard Henderson <rth@cygnus.com>
6036
6037 * config/ia64/ia64-protos.h: Update.
6038 * config/ia64/ia64.c (call_multiple_values_operation): Remove.
6039 (ia64_expand_call): New.
6040 (ia64_expand_prologue): Emit an alloc if we need extra input
6041 registers.
6042 (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
6043 instruction if true.
6044 (struct reg_flags): Add is_sibcall.
6045 (rtx_needs_barrier): A sibcall does not use CFM et al. Ignore USEs.
6046 (emit_insn_group_barriers): Set flags.is_sibcall. Remove hacks
6047 for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
6048 * config/ia64/ia64.h (PREDICATE_CODES): Update.
6049 * config/ia64/ia64.md (call): Use ia64_expand_call.
6050 (call_value): Likewise.
6051 (sibcall, sibcall_value): New.
6052 (call patterns): Remove extra expanders; tidy.
6053 (sibcall_epilogue): New.
6054 (set_bsp): Remove the extra USE. Put the operand inside the UNSPEC.
6055
6056 2000-09-24 Richard Henderson <rth@cygnus.com>
6057
6058 * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
6059
6060 * sibcall.c (skip_pic_restore): New.
6061 (identify_call_return_value): Use it.
6062
6063 2000-09-24 Mark Mitchell <mark@codesourcery.com>
6064
6065 * c-tree.texi: Moved here from cp/ir.texi. Documented nested
6066 functions. Generalize to handle both C and C++.
6067 * Makefile.in (c-tree.info): New target.
6068 (info): Add c-tree.info.
6069
6070 Sun Sep 24 09:15:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6071
6072 * expr.c (store_field): If BITSIZE is negative, use size of type.
6073 (expand_expr, case COMPONENT_EXPR): Likewise.
6074
6075 Sun 24-Sep-2000 11:40:23 BST Neil Booth <NeilB@earthling.net>
6076
6077 * cpplex.c: Update TODO comment.
6078 * cpplib.c (do_error, do_warning): Merge common code of
6079 do_error and do_warning into do_diagnostic. Use it.
6080 (do_diagnostic): New function.
6081 * cpplib.h: Fix comment typo.
6082
6083 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
6084
6085 * c-common.c (check_format_info): Warn for a wide character string
6086 used as a non-wide format argument.
6087
6088 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
6089
6090 * builtins.def (BUILT_IN_LLABS): Add.
6091 * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
6092 * c-common.c (c_common_nodes_builtins): Create builtin functions
6093 __builtin_llabs, and plain llabs unless no_nonansi_builtins
6094 outside of C99 mode.
6095 (expand_tree_builtin): Handle BUILT_IN_LLABS.
6096
6097 Sat 23-Sep-2000 22:39:18 BST Neil Booth <NeilB@earthling.net>
6098
6099 * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
6100 CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
6101 * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
6102 _cpp_free_toklist): No need to worry about extra dummy token
6103 at the start of token lists any more.
6104 (trigraph_ok): Only warn outside comments.
6105 (skip_block_comment): Set and clear lexing_comment.
6106 (skip_line_comment): Take a cpp_reader not cpp_buffer.
6107 Set and clear lexing_comment.
6108 (parse_number): Handle leading '.' indicated by pfile->seen_dot.
6109 (check_long_token): Delete.
6110 (lex_percent, lex_dot): New subroutines of lex_token to
6111 handle lexing of '.' and '%' without lookback.
6112 (lex_token): Use lex_dot and lex_percent.
6113 (lex_line): Don't check for LIST_OFFSET.
6114 (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
6115 * cpplib.c (_cpp_parse_assertion): Similarly.
6116 (cpp_push_buffer): Initialize extra_char.
6117 * cpplib.h (LIST_OFFSET): Delete.
6118 (struct cpp_buffer): New member extra_char.
6119 (struct lexer_state): New members lexing_comment and seen_dot.
6120
6121 2000-09-23 Jason Merrill <jason@redhat.com>
6122
6123 * config/rs6000/x-aix41 (CLIB): Define here.
6124 * config/rs6000/t-aix43: Not here.
6125 * config/rs6000/t-aix41: Or here. Remove.
6126 * configure.in: Don't use it.
6127
6128 2000-09-22 Jason Merrill <jason@redhat.com>
6129
6130 * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
6131 * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
6132 * config.in: Regenerate.
6133
6134 * configure.in: Fix checks for assembler features when using a
6135 one-tree assembler that has not yet been built.
6136 Fix --disable-threads.
6137
6138 2000-09-19 Geoff Keating <geoffk@cygnus.com>
6139
6140 * stmt.c (expand_asm_operands): Allow # in constraints.
6141
6142 2000-09-22 Jason Merrill <jason@redhat.com>
6143
6144 * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
6145
6146 * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
6147 function-local names.
6148
6149 2000-09-22 Brad Lucier <lucier@math.purdue.edu>
6150 Mark Mitchell <mark@codesourcery.com>
6151
6152 * toplev.c (warn_disabled_optimization): Declare new warning flag.
6153 * flags.h (warn_disabled_optimization): Add it here.
6154 * gcse.c (gcse_main): Add warning when disabled.
6155 * invoke.texi: Document -Wdisabled-optimization.
6156
6157 2000-09-21 Jason Merrill <jason@redhat.com>
6158
6159 * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
6160
6161 * dwarf2out.c (tree_add_const_value_attribute): New fn.
6162 (gen_variable_die): Call it for non-definitions.
6163
6164 * dwarf2out.c (die_struct): Add die_mark field.
6165 (mark_dies, unmark_dies): New fns.
6166 (clear_die_sizes): Remove.
6167 (print_die): Check die_symbol rather than die_offset.
6168 (build_abbrev_table, output_pubnames, output_aranges): Check
6169 die_mark rather than die_offset.
6170 (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
6171 Call mark_dies.
6172
6173 Thu 21-Sep-2000 18:19:05 BST Neil Booth <NeilB@earthling.net>
6174
6175 * cppfiles.c (lookup_include_file): Rename to open_file.
6176 Always create a splay tree value, even on syscall failures.
6177 Negative entries indicated by fd == -2.
6178 Re-open files closed in the meantime.
6179 (_cpp_fake_include): Create a negative splay tree entry.
6180 (find_include_file, cpp_read_file): Update for function name
6181 change.
6182 * gcc.gd/cpp/mi4.c: Testcase.
6183
6184 2000-09-21 Nick Clifton <nickc@redhat.com>
6185
6186 * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
6187 ARM and THUMB modes.
6188
6189 * config/mcore/mcore.c: Fix compile time warnings.
6190 * config/mcore/mcore-protos.h: Fix compile time warnings.
6191
6192 2000-09-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6193
6194 * configure.in: Correct test of gcc_cv_glibc.
6195 * configure: Rebuilt.
6196 * config.in: Rebuilt.
6197
6198 2000-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6199
6200 * builtins.c (expand_builtin_fputs): Also expand when length!=1.
6201 (expand_builtin): Handle BUILT_IN_FWRITE.
6202
6203 * builtins.def (BUILT_IN_FWRITE): New entry.
6204
6205 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
6206
6207 Wed Sep 20 15:39:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6208
6209 * gcc.c (modify_target): New variable and struct.
6210 (process_command): Handle MODIFY_TARGET_NAME.
6211 * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
6212 * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
6213
6214 * c-decl.c (finish_decl): Add else's to avoid referencing
6215 TYPE_DOMAIN of an ERROR_MARK.
6216
6217 Wed Sep 20 21:44:31 2000 Denis Chertykov <denisc@overta.ru>
6218
6219 * config/avr/avr.c (adjust_insn_length): Adjust lengths of
6220 `reload_in*' insns.
6221
6222 2000-09-19 Marek Michalkiewicz <marekm@linux.org.pl>
6223
6224 * config/avr/avr.md (neghi2): Add alternative for input and output
6225 operands in different registers, as in negsi2.
6226 (*negsi2): Remove '*' from the name. Use "movw" if available.
6227
6228 2000-09-19 Jim Wilson <wilson@cygnus.com>
6229
6230 * config/ia64/crtbegin.asm (__dso_handle): Delete use of
6231 HAVE_GAS_HIDDEN macro.
6232
6233 Tue 19-Sep-2000 22:38:57 BST Neil Booth <NeilB@earthling.net>
6234
6235 * cpplex.c (lex_line): Drop the EOF token for unknown
6236 directives in assembler.
6237
6238 2000-09-19 David Edelsohn <edelsohn@gnu.org>
6239
6240 * configure.in: Allow enable_threads_flag value of "aix". Define
6241 thread_file as "aix" for AIX 4.3 and above.
6242 * configure: Regenerated.
6243
6244 * gthr-aix.h: New file.
6245
6246 * rs6000/t-aix43: Replace soft-float multilib with pthread.
6247 Remove 403 processor multilib match. Fix rios2 processor multilib
6248 match.
6249
6250 * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
6251 to return to appropriate csect.
6252
6253 2000-09-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6254
6255 * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
6256 functions.
6257 (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
6258 (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
6259 BUILT_IN_PRINTF.
6260
6261 * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
6262 New entries.
6263
6264 * c-common.c (init_function_format_info): Handle __builtin_printf.
6265 Set `check_function_format_ptr'.
6266 (c_common_nodes_and_builtins): Set `puts_ftype' and
6267 `printf_ftype'. Declare __builtin_putchar, __builtin_puts,
6268 __builtin_printf and printf.
6269
6270 * tree.c, tree.h (check_function_format_ptr): Declare.
6271
6272 Tue 19-Sep-2000 18:26:57 BST Neil Booth <NeilB@earthling.net>
6273
6274 * cppfiles.c (read_include_file): Take no special action for
6275 zero-length files.
6276
6277 2000-09-19 Bernd Schmidt <bernds@redhat.co.uk>
6278
6279 * final.c (insn_current_reference_address): Use INSN_SHUID of seq
6280 rather than that of branch.
6281 (shorten_branches): Don't increment insn_current_address twice.
6282
6283 Undo most of the Wed Jan 27 23:39:53 1999 patch:
6284 * loop.h (struct induction): Delete members derived, ix and last_use.
6285 (struct loop_ivs): Delete members first_increment_giv and
6286 last_increment_giv.
6287 * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
6288 recombine_givs): Delete functions.
6289 (find_and_verify_loops): Don't initialize cont_dominator.
6290 (strength_reduce): Lose code to try to find bivs that can be
6291 expressed as givs of another biv, and to convert biv increments
6292 into givs.
6293 Lose loop_scan_start variable, always use loop->scan_start.
6294 Don't call recombine_givs. Don't handle derived givs.
6295 (record_giv): Don't initialize derived and last_use fields.
6296 (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
6297 givs.
6298 * unroll.c (derived_regs): Delete static variable.
6299 (unroll_loop): Don't initialize it.
6300 (copy_loop_body): Lose code to handle derived givs.
6301 (find_splittable_givs): Don't check for givs made from biv
6302 increments.
6303 Don't set derived_regs.
6304
6305 Fix misapplied earlier patch:
6306 * config/sh/sh.md (floatsisf_ie): Reenable. Remove explicit reference
6307 to fpul.
6308 (floatsisf2): Generate floatsisf_ie by default.
6309 (floatsisf_i4): Conditional on TARGET_SH4.
6310
6311 (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
6312 predicate for the expanders.
6313
6314 2000-09-19 Richard Henderson <rth@cygnus.com>
6315
6316 * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
6317 in addition to pentium and pentiumpro symbols.
6318 (CPP_CPU_DEFAULT_SPEC): Likewise.
6319
6320 * c-typeck.c (c_expand_asm_operands): Restore the output tree
6321 after expanding.
6322
6323 * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
6324 if the tree has side effects.
6325 (warn_if_unused_value): Do not warn about void constructs.
6326
6327 * c-decl.c (poplevel): Invoke warn_about_unused_variables.
6328
6329 * unroll.c (copy_loop_body): Update LABEL_NUSES before
6330 calling invert_jump.
6331
6332 2000-09-18 Geoff Keating <geoffk@cygnus.com>
6333
6334 * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
6335 into anything.
6336
6337 2000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6338
6339 * Makefile.in (c-common.o): Depend on diagnostic.h.
6340
6341 * c-common.c: Include diagnostic.h.
6342 (tfaff): Delete.
6343 (status_warning): New function.
6344 (check_format_info, maybe_read_dollar_number, check_format_types,
6345 finish_dollar_format_checking, check_function_format): Accept a
6346 `status' parameter. All callers changed.
6347
6348 * c-common.h (check_function_format): Accept a `status' parameter.
6349
6350 * c-typeck.c: Update call to `check_function_format'.
6351
6352 2000-09-18 Richard Henderson <rth@cygnus.com>
6353
6354 * c-decl.c (c_expand_body): Call mark_varargs before
6355 expand_function_start.
6356
6357 2000-09-18 Geoff Keating <geoffk@cygnus.com>
6358
6359 * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
6360 * config/rs6000/eabi-ci.asm: Likewise.
6361
6362 2000-09-18 Richard Henderson <rth@cygnus.com>
6363
6364 * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
6365 for BImode.
6366
6367 2000-09-18 Jim Wilson <wilson@cygnus.com>
6368
6369 * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
6370 before passing it to fold_rtx_mult_add.
6371
6372 * unroll.c (final_giv_value): Pass increment through
6373 extend_value_for_giv before passing it to emit_iv_add_mult.
6374
6375 * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
6376 paradoxical subreg, then directly substitute the replacement and
6377 return.
6378
6379 Mon 18-Sep-2000 22:12:44 BST Neil Booth <NeilB@earthling.net>
6380
6381 * cpp.texi: Update documentation, including some clarifications,
6382 the treatment of various newline combinations, and space between
6383 backslash and newline.
6384
6385 Mon Sep 18 21:00:47 2000 J"orn Rennecke <amylaar@redhat.co.uk>
6386
6387 * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
6388 Replace ASM_OUTPUT_LABELREF with assemble_name.
6389
6390 Mon Sep 18 20:26:50 2000 J"orn Rennecke <amylaar@redhat.co.uk>
6391
6392 * sh.c (addsubcosts): CONST is not cheap.
6393 (find_barrier): For Sh1, take alignment after jumps into account.
6394
6395 2000-09-15 Andrew Haley <aph@redhat.com>
6396
6397 * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
6398 remove all SETs of SUBREGs of hard registers.
6399 * function.c (purge_hard_subreg_sets): New function.
6400 (purge_single_hard_subreg_set): New function.
6401 * rtl.h: (purge_hard_subreg_sets): New function.
6402
6403 2000-09-18 Richard Henderson <rth@cygnus.com>
6404
6405 * config/ia64/ia64-protos.h: Update.
6406 * config/ia64/ia64.c (signed_inequality_operator): New.
6407 (ia64_expand_compare): New.
6408 (ia64_register_move_cost): Handle PR_REGS moves.
6409 (ia64_secondary_reload_class): Require a GR when moving to a PR.
6410 (struct reg_write_state): Add written_by_and/or.
6411 (struct reg_flags): Add is_and/or.
6412 (rws_update): Set them.
6413 (rws_access_regno): Test them to allow parallel comparisons.
6414 (rtx_needs_barrier): Recognize parallel comparisons.
6415 (emit_insn_group_barriers): Set prev_insn after a call stop bit.
6416 Call recog_memoized; ignore pred_rel_mutex.
6417 (emit_predicate_relation_info): Don't call find_basic_blocks here.
6418 (ia64_reorg): Do it here instead.
6419 * config/ia64/ia64.h: s/CCmode/BImode/g
6420 (MODES_TIEABLE_P): Don't tie BImode.
6421 (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
6422 (CONST_COSTS): Pick sensible values for CONST_INT based on context.
6423 (RTX_COSTS): Make multiply 4 insns.
6424 (MEMORY_MOVE_COST): New.
6425 (PREDICATE_CODES): Update.
6426 * config/ia64/ia64.md: s/CCmode/BImode/g
6427 (movcci, movbi): New.
6428 (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
6429 (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
6430 (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
6431 (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
6432 (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
6433 (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
6434 (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
6435 (mulsi, muldi): Use xmpy not xma.
6436 (cmpbi): New.
6437 (movcc, movcc_internal): Remove.
6438 (branch expanders): Use ia64_expand_compare.
6439 (setcc expanders): Likewise.
6440 (cmov insns): Use move_operand and ia64_move_ok.
6441 (pred_rel_mutex): Use unspec not unspec_volatile. Prevent the
6442 scheduler from moving it past a use.
6443 * config/ia64/build.hacks: Remove.
6444
6445 Mon 18-Sep-2000 19:21:35 BST Neil Booth <NeilB@earthling.net>
6446
6447 * cpphash.h (HASHSTEP): Take character rather than pointer
6448 to character.
6449 (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
6450
6451 * cpphash.c (cpp_loookup): Update for new HASHSTEP.
6452
6453 * cpplex.c (auto_expand_name_space, trigraph_replace,
6454 backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
6455 IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
6456 BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
6457 KNOWN_DIRECTIVE): Delete.
6458
6459 (handle_newline, check_long_token, skip_escaped_newlines,
6460 unterminated): New functions.
6461 (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
6462
6463 (parse_identifier): Was parse_name, new implementation.
6464 (skip_line_comment, skip_block_comment, skip_whitespace,
6465 parse_number, parse_string, trigraph_ok, save_comment,
6466 adjust_column, _cpp_get_line): New implementations.
6467
6468 (lex_token): New function. Lexes a token at a time, looking
6469 forwards. Contains most of the guts of the old lex_line.
6470 (lex_line): New implementation, using lex_token to obtain
6471 individual tokens.
6472 (cpp_scan_buffer): Use the token's line, not the list's line.
6473
6474 * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
6475 New implementations.
6476 (do_assert): Don't bother setting the answer's list's line.
6477 (cpp_push_buffer): Initialise new pfile and read_ahead members
6478 of struct cpp_buffer.
6479
6480 * cpplib.h (cppchar_t): New typedef.
6481 (struct cpp_buffer): read_ahead, pfile and col_adjust are
6482 new members.
6483 (struct lexer_state): New structure that determines the state
6484 and behaviour of the lexer.
6485 (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
6486 (struct cpp_reader): New member "state". Rename
6487 multiline_string_line and multiline_string_column. Delete
6488 col_adjust, in_lex_line members.
6489 (CPP_BUF_COLUMN): Update.
6490
6491 2000-09-18 Richard Henderson <rth@cygnus.com>
6492
6493 * combine.c (simplify_comparison): Shift a NOT out of a single
6494 bit test.
6495
6496 * combine.c (if_then_else_cond): Canonicalize BImode true to
6497 STORE_FLAG_VALUE.
6498 * explow.c (trunc_int_for_mode): Likewise.
6499
6500 * combine.c (combine_simplify_rtx): Use gen_unary to distribute
6501 the NOT for De Morgan's rule.
6502 * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
6503 of a comparison to the reverse comparison.
6504
6505 * combine.c (try_combine): Allow split to create a single insn.
6506
6507 * machmode.def: Add BImode. Add a column for bitsize.
6508 * machmode.h (DEF_MACHMODE): Adjust for extra column.
6509 (GET_MODE_BITSIZE): Use it.
6510 * rtl.c (DEF_MACHMODE): Adjust for extra column.
6511 (mode_bitsize): New.
6512 (mode_mask_array): Use bitsize.
6513 * combine.c (combine_simplify_rtx): Require inner and outer
6514 modes to match on nonzero_bits optimizations.
6515
6516 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
6517
6518 * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
6519 its entry in spill_reg_store.
6520 * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
6521 * sh.c (reg_no_subreg_operand): New function.
6522 * sh-protos.h (reg_no_subreg_operand): Declare it.
6523 * sh.h (PREDICATE_CODES): Add it.
6524 * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
6525 input operand that needs to be in fpul.
6526 (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
6527 * sh.c (find_barrier): Take into account that machine_dependent_reorg
6528 might add new insns.
6529
6530 2000-09-18 Alexandre Oliva <aoliva@redhat.com>
6531
6532 * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
6533 MAYBE_DEAD.
6534 (sh_expand_epilogue): Take the PIC register into account when
6535 computing the frame size.
6536
6537 * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
6538 * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
6539 LABEL_REFs with a PIC-safe unspec.
6540
6541 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
6542
6543 * c-common.c (check_format_info): Properly save the argument
6544 number and parameter for $ operand number formats in case width
6545 and precision arguments are also used. Allow printf width and
6546 precision arguments to have operand numbers even if none was
6547 specified for the main format, since this is OK for %*.*m. Only
6548 object to missing $ operand number if the format used requires an
6549 argument.
6550
6551 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
6552
6553 * c-common.c (format_char_info): Add 'W' flag to comment.
6554 (print_char_table, scan_char_table): Use it.
6555 (check_format_info): Use the 'W' flag to determine whether a
6556 format argument is written into.
6557
6558 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
6559
6560 * c-common.c (check_format_types): Reorganise and clean up,
6561 checking earlier for ERROR_MARKs and making cur_type into its
6562 TYPE_MAIN_VARIANT where convenient.
6563
6564 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
6565
6566 * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
6567
6568 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
6569
6570 * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
6571
6572 * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
6573 * i386.c (struct builtin_description): New.
6574 (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
6575 (mmx_reg_operand): Declare MODE arg as unused.
6576 (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
6577 ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
6578 ix86_expand_binop_builtin, ix86_expand_store_builtin,
6579 ix86_init_builtins, ix86_expand_builtin): New functions.
6580 * i386.h (ix86_builtins): New enumeration.
6581 (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
6582 * i386.md (attr length_immediate): 0 for mmx/sse types.
6583 (attr prefix_0f): 1 for mmx/sse types.
6584 (setcc_2): Remove "*" so we get gen_setcc_2.
6585 (emms): Account for changed register numbering. Set "memory" attr
6586 to unknown.
6587 (sfence): Set "memory" attr to unknown.
6588
6589 2000-09-18 Andreas Jaeger <aj@suse.de>
6590
6591 * configure.in: Define _GNU_SOURCE only when using the GNU C
6592 Library.
6593 * configure: Regenerated.
6594 * config.in: Regenerated.
6595
6596 2000-09-17 Mark Mitchell <mark@codesourcery.com>
6597
6598 * cppinit.c (cpp_init): Don't use ANSI prototypes.
6599 * flow.c (flow_dump_loop): Likewise.
6600 (flow_loops_dump): Likewise.
6601
6602 * c-typeck.c (c_start_case): Fix typo.
6603
6604 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
6605
6606 * c-decl.c (grokdeclarator): Don't give a warning about defaulting
6607 to int for plain complex which defaults to complex double. Do
6608 warn about defaulting to complex double if pedantic. Warn about
6609 complex integer types if pedantic. Warn about complex types if
6610 pedantic and not in C99 mode.
6611 * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
6612 for complex conjugation.
6613
6614 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
6615
6616 * contrib.texi: Update my entry.
6617
6618 Sun Sep 17 18:48:32 2000 Denis Chertykov <denisc@overta.ru>
6619
6620 * config/avr/avr.md (mcu_enhanced): New attribute.
6621 (mcu_mega): Likewise.
6622 (extendhisi2): Use mcu_enhanced.
6623 (zero_extendhisi2): Likewise.
6624 (call_insn): Use mcu_enhanced and mcu_mega.
6625 (call_value_insn): Likewise.
6626 (*sbrx_branch): Use mcu_mega.
6627 (*sbrx_and_branchsi): Likewise.
6628 (*sbrx_and_branchhi): Likewise.
6629 (*tablejump_lib): Likewise.
6630
6631 Sun Sep 17 10:46:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6632
6633 * alias.c (true_dependence): Allow non-unchanging read to conflict
6634 with unchanging write.
6635
6636 * expr.c (store_constructor_field): Accept ALIAS_SET arg.
6637 (store_constructor): Pass alias_set to it.
6638
6639 * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
6640 TYPE_MAIN_VARIANT of ERROR_MARK.
6641 * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
6642
6643 * simplify-rtx.c (simplify_unary_operation): Add cases
6644 FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
6645
6646 2000-09-17 Bernd Schmidt <bernds@redhat.co.uk>
6647
6648 * expr.h (emit_library_call, emit_library_call_value): Delete
6649 declarations.
6650 * rtl.h (enum libcall_type): New.
6651 (emit_library_call, emit_library_call_value): Change fn_type arg to
6652 be of type enum libcall_type.
6653 * calls.c: Likewise for the function definitions. Several callers
6654 throughout changed to use the new enumeration appropriately.
6655 (emit_library_call_value_1): Likewise. Put back code to make libcall
6656 blocks of equal form, but only use it for the two new higher
6657 enumeration values.
6658
6659 2000-09-16 Mark Mitchell <mark@codesourcery.com>
6660
6661 Convert the C front-end to use function-at-a-time mode.
6662 * c-common.h: Include splay-tree.h.
6663 (C_DECLARED_LABEL_FLAG): New macro.
6664 (struct language_function): Add x_scope_stmt_stack and
6665 x_function_name_declared_p.
6666 (RECHAIN_STMTS): Move definition.
6667 (lang_statment_code_p): Likewise.
6668 (lang_expand_stmt): Likewise.
6669 (lang_expand_decl_stmt): New variable.
6670 (lang_expand_function_end): Likewise.
6671 (current_scope_stmt_stack): New function.
6672 (add_decl_stmt): Likewise.
6673 (add_scope_stmt): Likewise.
6674 (mark_stmt_tree): Likewise.
6675 (struct c_lang_decl): New structure.
6676 (DECL_SAVED_TREE): Define.
6677 (c_mark_lang_decl): New function.
6678 (c_expand_start_cond): Change prototype.
6679 (c_finish_then): New function.
6680 (c_finish_else): Likewise.
6681 (current_function_name_declared): Remove.
6682 (set_current_function_name_declared): Likewise.
6683 (mark_c_language_function): Declare.
6684 (case_compare): Likewise.
6685 (c_add_case_label): Likewise.
6686 (c_expand_expr): Likewise.
6687 (c_safe_from_p): Likewise.
6688 * c-common.c (lang_expand_function_end): New variable.
6689 (struct if_elt): Add if_stmt.
6690 (c_expand_start_cond): Add the if-statement to the statement-tree,
6691 rather than generating RTL.
6692 (c_finish_then): New function.
6693 (c_expand_start_else): Don't generate RTL.
6694 (c_finish_else): New function.
6695 (c_expand_expr_stmt): Don't generate RTL.
6696 (statement_code_p): Add SCOPE_STMT.
6697 (case_compare): New function.
6698 (c_add_case_label): Likewise.
6699 (mark_stmt_tree): Likewise.
6700 (c_mark_lang_decl): Likewise.
6701 (mark_c_language_function): Likewise.
6702 (c_expand_expr): Likewise.
6703 (c_safe_from_p): Likewise.
6704 * c-decl.c (c_stmt_tree): New variable
6705 (c_scope_stmt_stack): Likewise.
6706 (c_function_name_declared_p): Likewise.
6707 (lang_expand_expr_stmt): Remove.
6708 (poplevel): Don't call output_inline_function for nested
6709 functions.
6710 (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
6711 `extern' function.
6712 (redeclaration_error_message): Change means of computing whether
6713 or not a function is nested.
6714 (lookup_label): Don't call label_rtx.
6715 (init_decl_processing): Add more GC roots.
6716 (start_decl): Add DECL_STMTs to the statement-tree, rather than
6717 calling rest_of_decl_compilation.
6718 (finish_decl): Don't call expand_decl.
6719 (store_parm_decls): Begin the statement-tree, but don't generate
6720 RTL.
6721 (finish_function): Tie off the statement-tree. Call c_expand_body
6722 if appropriate.
6723 (c_expand_body): New function.
6724 (push_c_function_context): Save more information.
6725 (pop_c_function_contxt): Likewise.
6726 (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
6727 (lang_mark_tree): Mark it.
6728 (current_stmt_tree): Adjust.
6729 (current_scope_stmt_stack): New function.
6730 (do_case): Remove.
6731 (set_current_name_declared): Likewise.
6732 (c_begin_compound_stmt): Define.
6733 (c_expand_decl_stmt): Likewise.
6734 * c-lang.c: Include rtl.h and expr.h.
6735 (lang_init): Set more language-specific hooks.
6736 * c-lex.c: Include expr.h.
6737 * c-parse.in: Changes throughout to add statements to the
6738 statement-tree, rather than generating RTL after every statement.
6739 * c-semantics.c (lang_expand_decl_stmt): Define.
6740 (add_decl_stmt): New function.
6741 (add_scope_stmt): Likewise.
6742 (finish_stmt_tree): Tweak.
6743 (genrtl_expr_stmt): Likewise.
6744 (genrtl_decl_stmt): Handle local labels, and call
6745 lang_expand_decl_stmt if required.
6746 (genrtl_for_stmt): Fix line-number handling.
6747 (genrtl_case_label): Handle cleanups.
6748 (genrtl_asm_stmt): Don't call combine_strings.
6749 (genrtl_compound_stmt): Simplify.
6750 (expand_stmt): Handle SCOPE_STMTs.
6751 * c-tree.h (struct lang_decl): New structure.
6752 (C_DECLARED_LABEL_FLAG): Remove.
6753 (c_begin_compound_stmt): Declare.
6754 (c_expand_decl_stmt): Likewise.
6755 (c_expand_start_case): Rename to c_start_case.
6756 (c_finish_case): New function.
6757 * c-typeck.c (start_init): Tweak setting of
6758 constructor_incremental.
6759 (c_expand_asm_operands): Tweak error-handling. Add to the
6760 statement-tree.
6761 (c_expand_return): Add to the statement-tree.
6762 (c_expand_start_case): Rename to ...
6763 (c_start_case): ... this.
6764 (struct c_switch): New type.
6765 (switch_stack): New variable.
6766 (do_case): Simplify.
6767 (c_finish_case): New function.
6768 * dependence.c: Include expr.h.
6769 (enum dependence_type): Change spelling of enumerals.
6770 (check_node_dependence): Adjust.
6771 * expr.h (lang_safe_from_p): Declare.
6772 (safe_from_p): Likewise.
6773 * expr.c (lang_safe_from_p): New variable.
6774 (safe_from_p): Give it external linkage. Use lang_safe_from_p.
6775 * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
6776 * toplev.c (rest_of_decl_compilation): Robustify.
6777 * tree.c (contains_placeholder_p): Likewise.
6778 * Makefile.in: Update dependencies.
6779 * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
6780 * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
6781 (objc_expand_function_end): New function.
6782 (finish_method_def): Use it.
6783 (init_objc): Initialize more language-specific hooks.
6784 * objc/Make-lang.in: Update dependencies.
6785
6786 2000-09-16 Geoffrey Keating <geoffk@cygnus.com>
6787
6788 * configure.in: Define macros that affect features before
6789 testing for features. Don't define _XOPEN_SOURCE.
6790 * configure: Regenerated.
6791 * config.in: Regenerated.
6792
6793 Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com)
6794
6795 * rtlanal.c (rtx_varies_p): Volatile asms vary.
6796 (rtx_unstable_p): Restructure code. Volatile asms
6797 are unstable.
6798
6799 Sat Sep 16 14:35:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6800
6801 * function.h (no_debugging_symbols): New field.
6802 * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
6803 Initialize no_debugging_symbols.
6804 (output_inline_function): Save and restore write_symbols and set from
6805 no_debugging_symbols.
6806 * toplev.c (rest_of_compilation): Call save_for_inline.
6807 * tree.h: Update comment.
6808
6809 * stor-layout.c (place_field): Don't do anything if field or
6810 its type are ERROR_MARK.
6811
6812 Sat Sep 16 19:14:00 2000 Laurynas Biveinis <lauras@softhome.net>
6813
6814 * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
6815 (read_include_file): Ensure inc->mmaped is initialized.
6816
6817 2000-09-16 Richard Henderson <rth@cygnus.com>
6818
6819 * cppiles.c (purge_cache): Use PTR not caddr_t.
6820
6821 2000-09-16 Hans-Peter Nilsson <hp@axis.com>
6822
6823 * gcc.c: In description for %{<S}, say the option removed is -S.
6824 * invoke.texi (Spec Files): Ditto.
6825
6826 2000-09-16 Andreas Jaeger <aj@suse.de>
6827
6828 * configure.in: Always define _GNU_SOURCE to make interfaces
6829 visible that were hidden by only defining _GNU_SOURCE.
6830 * configure: Regenerated.
6831
6832 Sat 16-Sep-2000 08:13:45 BST Neil Booth <NeilB@earthling.net>
6833
6834 * cpplex.c (push_macro_context): Set an argument's level after
6835 calling parse_args. We could loop infinitely otherwise.
6836
6837 2000-09-15 Tom Tromey <tromey@cygnus.com>
6838
6839 * configure, config.in: Rebuilt.
6840 * configure.in: Check for iconv.h. Define _XOPEN_SOURCE.
6841
6842 2000-09-15 Greg McGary <greg@mcgary.org>
6843
6844 * cppmacro.c (check_trad_stringification): Check token
6845 text pointers against limit before dereferencing.
6846
6847 2000-09-15 Joseph S. Myers <jsm28@cam.ac.uk>
6848
6849 * c-common.c (format_wanted_type): New structure.
6850 (check_format_types): New function.
6851 (check_format_info): Pass all checking of types of format
6852 arguments, including width and precision arguments, to this new
6853 function.
6854
6855 2000-09-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
6856
6857 * BUGS: Remove file.
6858
6859 2000-09-15 Jakub Jelinek <jakub@redhat.com>
6860
6861 * config/alpha/alpha.c (override_options): ev6 cache latencies
6862 from Richard Henderson. Don't allow -mmemory-latency=L0.
6863
6864 * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
6865 (TARGET_OPTIONS): Add tune=.
6866 (alpha_tune_string): Declare.
6867 * config/alpha/alpha.c (override_options): Add cpu_table.
6868 Use alpha_cpu_string first to set both alpha_cpu and target_flags
6869 and then alpha_tune_string to set alpha_cpu only.
6870 Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
6871 * config/alpha/elf.h (ASM_FILE_START): Likewise.
6872 * config/alpha/osf.h (ASM_FILE_START): Likewise.
6873 * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
6874
6875 Fri Sep 15 19:45:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
6876
6877 * i386-protos.h (no_comparison_operator, uno_comparison_operator):
6878 Remove.
6879 (ix86_comparison_operator, ix86_cc_mode): Declare
6880 * i386.h (CCGC, CCGCO): New modes.
6881 (SELECT_CC_MODE): Move offline to ....
6882 * i386.c (ix86_cc_mode): .... here; use new modes.
6883 (ix86_comparison_operator): New.
6884 (fcmov_comparison_operator): Ensure proper mode.
6885 (put_condition_mode): More sanity checking.
6886 (ix86_match_ccmode): Handle new modes.
6887 (ix86_expand_fp_compare): GEU requires CCmode.
6888 (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
6889 doing it by hand.
6890 * i386.md (cmp?i_ccz_1): Remove
6891 (cmp?i_ccno_1): Use ix86_match_ccmode.
6892 (cmp?i_minus_1): New.
6893 (cmpsi_1): New expander.
6894 (cmpqi_ext_1): Use match_ccmode
6895 (cmpqi_ext_3): New expander.
6896 (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
6897 (cmpqi_ext_4): Use match_ccmode.
6898 (add?i_?): Use match_ccmode.
6899 (add?i_6): New.
6900 (test?i_ccz_1): Remove
6901 (test?i_1): New.
6902 (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
6903 (testqi_ext_0): Use ix86_match_ccmode.
6904 (*xorqi_cc_ext_1): Use ix86_match_ccmode.
6905 (xorqi_cc_ext_1): New expander.
6906 (shift patterns): Use CCGOCmode for all shifts except for sar.
6907 (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
6908 (setcc_3, jcc_3, miv?icc_c): Remove.
6909
6910 2000-09-15 Will Cohen <wcohen@redhat.com>
6911
6912 * dwarf2out.c (add_const_value_attribute): Changed array into a
6913 xmalloced object, so it exists after function exit.
6914 (free_AT): Added case for dw_val_class_float to free allocated
6915 memory.
6916
6917 2000-09-15 Kazu Hirata <kazu@hxi.com>
6918
6919 * config/i386/i386.md: Fix a comment typo.
6920 * gcc.c: Fix formatting.
6921
6922 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
6923
6924 * optabs.c (emit_libcall_block): If target is a user variable,
6925 copy to a temporary first.
6926 * expr.c (convert_move): When generating a libcall, make a libcall
6927 block.
6928 * calls.c (emit_library_call_value_1): Don't create a libcall
6929 sequence here; our caller will in most cases do it.
6930
6931 * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
6932 MACH into FPUL.
6933 (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
6934 * sh.md (reload_outsf): Generate recognizable patterns for
6935 TARGET_SH3E.
6936 (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
6937 fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
6938 fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
6939 truncdfsf2_i4): Change not to use explicit references to fpul.
6940 (floatsisf2_ie): Remove USE of fpscr.
6941 (floatsisf2): Change default expansion to match this.
6942 (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
6943 unused patterns.
6944
6945 2000-09-15 Richard Henderson <rth@cygnus.com>
6946
6947 * expmed.c (store_bit_field): Consider naturally aligned
6948 memory for direct reference.
6949
6950 2000-09-15 Richard Henderson <rth@cygnus.com>
6951
6952 * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
6953 AND addresses into alias set 0.
6954 (alpha_expand_unaligned_store): Likewise.
6955 (alpha_expand_unaligned_load_words): Likewise.
6956 (alpha_expand_unaligned_store_words): Likewise.
6957
6958 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
6959
6960 * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
6961 * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
6962 is defined.
6963 * config/mips/mips.c (mips_va_arg): Args passed by reference have a
6964 rsize of UNITS_PER_WORD.
6965
6966 Fri 15-Sep-2000 06:49:07 BST Neil Booth <NeilB@earthling.net>
6967
6968 * cpplex.c (ON_REST_ARG): Correct the test.
6969 (maybe_paste_with_next): Duplicate a token that fail pasting,
6970 and clear its PASTE_LEFT flag, so that nested pasting attempts
6971 do not occur.
6972
6973 2000-09-14 Richard Henderson <rth@cygnus.com>
6974
6975 * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
6976 * cse.c (rtx_cost): Likewise.
6977 * optabls.c (expand_binop): Likewise.
6978 (expand_twoval_binop, prepare_cmp_insn): Likewise.
6979 * regclass.c (copy_cost): Likewise.
6980 * reload1.c (reload_cse_move2add): Likewise.
6981
6982 2000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
6983
6984 * c-parse.in (reswords): Add _Complex.
6985
6986 2000-09-14 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6987
6988 * gcc.1: Delete documentation for -undef preprocessor option.
6989
6990 2000-09-14 Alexandre Oliva <aoliva@redhat.com>
6991
6992 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
6993 STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
6994 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
6995 Remove undefine before config/elfos.h.
6996 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
6997
6998 2000-09-14 Kazu Hirata <kazu@hxi.com>
6999
7000 * invoke.texi (H8/300 Options): Add -ms2600.
7001 * config/h8300.c (h8300_init_once): Output an error when -ms2600
7002 is used without -ms.
7003 * config/h8300.h (TARGET_MAC): New.
7004 (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
7005 (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
7006 machine other than H8/S2600.
7007 * config/h8300.md: Accept mac instructions on the H8/S2600 instead
7008 of the H8/S2000.
7009
7010 2000-09-14 Alexandre Oliva <aoliva@redhat.com>, Bernd Schmidt <bernds@redhat.co.uk>
7011
7012 * reload.c (find_reloads_address_1): Generate reloads for auto_inc
7013 pseudos that refer to the original pseudos, not only to their
7014 equivalent memory locations.
7015
7016 Thu Sep 14 12:10:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7017
7018 * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
7019 when making new MEM.
7020
7021 * Makefile.in (LN): Remove duplicate definition.
7022
7023 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
7024
7025 From Joern Rennecke:
7026 * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
7027 on an insn and function_invariant_p returns nonzero for the source,
7028 add a REG_EQUAL note.
7029
7030 Thu Sep 14 00:51:57 EDT 2000 John Wehle (john@feith.com)
7031
7032 * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
7033 conflict with frame_pointer_rtx.
7034
7035 2000-09-13 Kazu Hirata <kazu@hxi.com>
7036
7037 * loop.c: Fix formatting.
7038 * loop.h: Likewise.
7039
7040 2000-09-13 Richard Henderson <rth@cygnus.com>
7041
7042 * config/ia64/ia64.md (divsf3): New.
7043 (divsf3_internal_lat, divsf3_internal_thr): New.
7044 (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
7045 (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
7046 (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
7047 (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
7048 (nmadddf4_alts, nmadddf4_trunc): New.
7049 (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
7050 (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
7051 (multf3_truncsf_alts, multf3_truncdf_alts): New.
7052 (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
7053 (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
7054 (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
7055 (nmaddtf4_truncdf_alts): New.
7056 (recip_approx): Don't predicate.
7057
7058 2000-09-13 Richard Henderson <rth@cygnus.com>
7059
7060 * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
7061
7062 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7063
7064 * flags.h (flag_dump_rtl_in_asm): Declare.
7065 * toplev.c (flag_dump_rtl_in_asm): Define.
7066 (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
7067 if -dP is specified.
7068 * rtl.h (print_rtx_head): Declare.
7069 * print-rtl.c (print_rtx_head): Define.
7070 (print_rtx): Print the string pointed to by print_rtx_head
7071 at beginning of each dump line.
7072 (print_rtl): Likewise.
7073 (print_rtl_single): Likewise.
7074 * final.c (final_scan_insn): Dump the insn in the assembly
7075 file for debugging.
7076 * gcc.1: Document -dP option.
7077 * invoke.texi (Debugging Options): Likewise.
7078
7079 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7080
7081 * md.texi (Machine Constraints): Document the 68HC11 constraints.
7082 * install.texi (Configurations): Document the 68HC11&68HC12 port.
7083 * invoke.texi (Option Summary, M68hc1x Options): Document the options.
7084
7085 Tue Sep 12 13:51:13 2000 Denis Chertykov <denisc@overta.ru>
7086
7087 * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
7088 * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
7089 (*clrstrqi): Likewise.
7090 (xorhi3,xorsi3,absqi2): Likewise.
7091 (one_cmplhi2,one_cmplsi2): Likewise.
7092 (addsi3): Two stupid constraint alternatives removed.
7093 (extendhisi2): Use `movw' for enhanced avr cores.
7094 (zero_extendhisi2): Likewise.
7095
7096 Wed Sep 13 02:31:23 EDT 2000 John Wehle (john@feith.com)
7097
7098 * alias.c (find_base_term): Use frame_pointer_rtx
7099 when handling an ADDRESSOF.
7100
7101 * cse.c (canon_hash): Handle USE of BLKmode memory.
7102 (cse_insn): Outgoing arguments for a libcall don't
7103 affect any recorded expressions.
7104
7105 2000-09-12 Tom Tromey <tromey@cygnus.com>
7106
7107 * configure, config.in: Rebuilt.
7108 * configure.in: Check for iconv, nl_langinfo, langinfo.h.
7109
7110 2000-09-12 Jakub Jelinek <jakub@redhat.com>
7111
7112 * c-lex.c (lex_string): Use charwidth to compute bytemask.
7113 * expr.c (expand_expr): Don't optimize constant array references
7114 initialized with wide string constants.
7115
7116 2000-09-13 Michael Hayes <mhayes@cygnus.com>
7117
7118 * loop.c (note_set_pseudo_multiple_uses): Correct.
7119
7120 2000-09-12 Jim Wilson <wilson@cygnus.com>
7121
7122 * ifcvt.c (noce_process_if_block): If A and B are the same, and no
7123 else block, and X has side-effects, then fail.
7124
7125 2000-09-12 Greg McGary <greg@mcgary.org>
7126
7127 * config/mips/mips-protos.h
7128 (trap_cmp_op, mips_gen_conditional_trap): New func decls.
7129 * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
7130 (PREDICATE_CODES): Add "trap_cmp_op".
7131 * config/mips/mips.c
7132 (trap_cmp_op, mips_gen_conditional_trap): New functions.
7133 * config/mips/mips.md (trap, conditional_trap): New patterns.
7134
7135 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
7136
7137 * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
7138 pointer.
7139
7140 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7141
7142 * builtins.c (built_in_decls): New array.
7143 (expand_builtin_fputs): New function.
7144 (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
7145
7146 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
7147
7148 * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
7149
7150 * tree.h (built_in_decls): New array.
7151
7152 Tue Sep 12 08:53:57 2000 Jeffrey A Law (law@cygnus.com)
7153
7154 * convex.md: Use "+" instead of "=" for outputs wrapped in a
7155 STRICT_LOW_PART.
7156 * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
7157
7158 2000-09-12 Kazu Hirata <kazu@hxi.com>
7159
7160 * haifa-sched.c: Fix formatting.
7161
7162 * genattrtab.c: Fix formatting.
7163
7164 * unroll.c: Fix formatting.
7165
7166 2000-09-12 Bruce Korb <bkorb@gnu.org>
7167
7168 * fixinc/fixfixes.c: make a type for the fix procedure & use it,
7169 remove obsolete code
7170 * fixinc/fixincl.c: Use PARAMS, not _P_. Add no-op default to switch.
7171 * fixinc/fixincl.tpl: make non-exported arrays static scope
7172 * fixinc/fixincl.x: regenerate
7173 * fixinc/fixlib.h: Use PARAMS, not _P_
7174 * fixinc/fixtests.c: make a type for the test proc & use it
7175 * fixinc/server.h: Use PARAMS, not _P_
7176
7177 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7178
7179 * c-typeck.c (process_init_element): Avoid union init warnings on
7180 floating point zero. Don't crash on unions containing structs.
7181
7182 2000-09-12 Alexandre Oliva <aoliva@redhat.com>
7183
7184 * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
7185 general_movsrc_operand, and remove CONST_INT from
7186 general_movdst_operand.
7187
7188 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
7189
7190 * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
7191 if a reference to non-fixed hardreg is seen. Otherwise, count hard
7192 regs with a higher cost.
7193 (preferrable): Deal with cases where either cost or regcost is
7194 MAX_COST.
7195 (cse_insn): Use MAX_COST rather than 10000. Always initialize
7196 regcost values.
7197 (COSTS_N_INSNS): Move definition...
7198 * rtl.h: ...here.
7199 (MAX_COST): New macro.
7200 * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
7201 constant.
7202
7203 2000-09-11 Mark Mitchell <mark@codesourcery.com>
7204
7205 * c-common.h (genrtl_clear_out_block): Remove.
7206 * c-semantics.c (genrtl_clear_out_block): Remove.
7207 (genrtl_while_stmt): Don't call it.
7208 (genrtl_for_stmt): Likewise.
7209
7210 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
7211
7212 * cppfiles.c: Move all default-#defines to top of file.
7213 (open_include_file): Replace by lookup_include_file.
7214 (read_with_read, read_file): Merged into read_include_file.
7215 (stack_include_file, purge_cache): New functions.
7216 (close_cached_fd): Delete.
7217 (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
7218 Cache the in-memory buffer, not the file descriptor.
7219
7220 * cpphash.h (struct include_file): Add buffer, st, refcnt,
7221 mapped fields.
7222 (xcnew): New utility macro.
7223 (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
7224 * cpplib.h (struct cpp_buffer): Remove mapped field.
7225
7226 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
7227
7228 * cpplex.c (parse_string): Accept backslash space newline as a
7229 line continuation.
7230 (lex_line): Likewise.
7231 (_cpp_get_token): Remove hard limit on macro nesting.
7232
7233 2000-09-12 Philipp Thomas <pthomas@suse.de>
7234
7235 * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
7236 * configure: Rebuilt.
7237
7238 2000-09-13 Michael Hayes <mhayes@cygnus.com>
7239
7240 * flow.c (split_block): Fix update of registers live at
7241 end of split block.
7242
7243 Tue Sep 12 01:51:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
7244
7245 * i386.md (add?i_3, add?i_5): New.
7246 (add?i_4): Rename from add?i_3; Fix compare pattern.
7247 (sub?i_3, xor?i_3, ior?i_3): New.
7248
7249 * genrecog.c (write_tree): Output code to clear insn_extract cache.
7250 * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
7251 instead of extract_insn and extract_constrain_insn_cache instead of
7252 extract_insn and constrain_operands.
7253 * recog.c (extract_insn_cached, extract_constrain_insn_cached):
7254 New functions.
7255 (extract_insn): Clear which_alternative.
7256 (constrain_operands): Set which_alternative to -1 when failed.
7257 * recog.h (extract_constrain_insn_cached, extract_insn_cached):
7258 Declare.
7259
7260 2000-09-11 Matthew Hiller <hiller@redhat.com>
7261
7262 * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
7263 on operand 0 to '+'.
7264 (movstricthi): Likewise.
7265
7266 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7267
7268 * loop.h (LOOP_IVS): New macro.
7269 (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
7270 (struct loop_ivs): New.
7271 (struct loop_info): Add ivs field.
7272 (reg_iv_type, reg_iv_info): Delete prototype.
7273 (reg_biv_class, loop_iv_list): Likewise.
7274 * loop.c (record_biv, find_life_end): Pass loop argument.
7275 (reg_iv_type): Remove global array and use
7276 field in loop_regs structure within loop_ivs structure.
7277 (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
7278 (first_increment_giv, last_increment_giv): Use entry in
7279 loop_ivs structure.
7280 (record_initial): Pass ivs pointer.
7281 * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
7282
7283 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7284
7285 * loop.h (LOOP_REGS): New macro.
7286 (struct loop_regs): New.
7287 (struct loop_info): Add regs field.
7288 * loop.c (set_in_loop): Remove global array and store
7289 in loop_regs structure as part of loop_info structure.
7290 (n_times_set, may_not_optimize): Likewise.
7291 (reg_single_usage, moved_once): Likewise.
7292 (count_one_set): Add regs argument.
7293 (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
7294 (set_pseudo_multiple_uses): Pass regs pointer.
7295
7296 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7297
7298 * unroll.c (iteration_info): Subsume into loop_iterations.
7299 * loop.h (loop_info): New field iv.
7300
7301 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7302
7303 * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
7304 (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
7305 (flow_loops_update): New prototype.
7306 (flow_loops_find): Add flags to prototype.
7307 (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
7308 * flow.c (flow_loop_pre_header_scan): New.
7309 (flow_loop_dump): Dump pre-header root and trace and exit dominators.
7310 (flow_loop_free): Free pre-header root and trace and exit dominators.
7311 (flow_loops_find): New argument flags.
7312 (flow_loops_update): New function.
7313 * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
7314
7315 2000-09-12 Michael Hayes <mhayes@cygnus.com>
7316
7317 * basic-block.h (split_block, update_bb_for_insn): New prototypes.
7318 * flow.c (split_block, update_bb_for_insn): New functions.
7319
7320 2000-09-11 Richard Henderson <rth@cygnus.com>
7321
7322 * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
7323
7324 2000-09-11 Richard Henderson <rth@cygnus.com>
7325
7326 * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
7327 * config/ia64/ia64.c (fr_nonimmediate_operand): New.
7328 (ia64_override_options): Prevent optimizing division for both
7329 latency and throughput.
7330 (rtx_needs_barrier): Handle frcpa.
7331 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
7332 (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
7333 (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
7334 (TARGET_SWITCHES): Add -minline-divide-min-latency and
7335 -minline-divide-max-throughput.
7336 (PREDICATE_CODES): Update.
7337 * config/ia64/ia64.md (extendsidi2): Remove * from f case.
7338 (zero_extendsidi2): Likewise. Fix typo in f case insn.
7339 (extendsfdf2): Add cases for gr<->fr and fr<->mem.
7340 (extendsftf2): Likewise.
7341 (extenddftf2): Likewise.
7342 (fix_trunctfdi2_alts): New.
7343 (fixuns_trunctfdi2_alts): New.
7344 (madd*4): Rename from madd*3.
7345 (divsi3, modsi3, udivsi3, umodsi3): New.
7346 (divsi3_internal): New.
7347 (divdi3, moddi3, udivdi3, umoddi3): New.
7348 (divdi3_internal_lat, divdi3_internal_thr): New.
7349 (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
7350 (recip_approx): New.
7351
7352 2000-09-11 Alexandre Oliva <aoliva@redhat.com>
7353
7354 * print-rtl.c (debug_call_placeholder_verbose): New variable.
7355 (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
7356 set.
7357 * integrate.c (copy_rtx_and_substitute): Don't share
7358 LEAF_REG_REMAPpable registers with the inlined function. Don't
7359 share the function value with calling sequences.
7360
7361 2000-09-11 Jakub Jelinek <jakub@redhat.com>
7362
7363 * c-decl.c (do_case): Fix a typo.
7364
7365 * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
7366 to a if the comparison is floating mode and not -ffast-math.
7367 * simplify-rtx.c (simplify_ternary_operation): Likewise.
7368
7369 Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
7370
7371 * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
7372 gen_ic_invalidate_line.
7373
7374 2000-09-11 Philip Blundell <pb@futuretv.com>
7375
7376 * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
7377
7378 Mon Sep 11 10:48:41 2000 Ulrich Drepper <drepper@redhat.com>
7379
7380 * install.texi (LANGUAGES): Update to include new languages.
7381 * INSTALL: Rebuilt.
7382
7383 2000-09-11 DJ Delorie <dj@redhat.com>
7384
7385 * gcc.c (main): Don't warn about unused -B prefixes
7386 (unused_prefix_warnings): remove
7387
7388 2000-09-11 Kazu Hirata <kazu@hxi.com>
7389
7390 * final.c: Fix formatting.
7391
7392 * integrate.c: Fix formatting.
7393
7394 2000-09-11 Geoff Keating <geoffk@cygnus.com>
7395
7396 * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
7397
7398 2000-09-11 Bernd Schmidt <bernds@redhat.co.uk>
7399
7400 * reload.c (regno_clobbered_p): Fix thinko in previous change.
7401
7402 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7403
7404 * gcc.1: Document 68hc11 specific options.
7405
7406 2000-09-10 Geoff Keating <geoffk@cygnus.com>
7407
7408 * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
7409 (TARGET_LONG_DOUBLE_128): Define.
7410 (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
7411 (LONG_DOUBLE_TYPE_SIZE): Redefine.
7412 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
7413 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
7414 of __LONG_DOUBLE_128__.
7415 (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
7416 passed.
7417 (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
7418 (CPP_SYSV_DEFAULT_SPEC): Define.
7419 (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
7420 (INIT_TARGET_OPTABS): Define.
7421
7422 * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
7423 (RS6000_UITRUNC): Likewise.
7424 (INIT_TARGET_OPTABS): New macro.
7425 * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
7426 (trunc_defined): Delete.
7427 (output_prolog): Don't output .extern definitions for fp->int
7428 conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
7429 * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
7430 (trunc_defined): Delete.
7431 (RS6000_ITRUNC): Moved to aix.h.
7432 (RS6000_UITRUNC): Likewise.
7433 * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
7434 only emit a libcall.
7435 (fixuns_truncdfsi2): Delete.
7436 (trunc_call): Delete.
7437 (trunc_call_rtl): Delete.
7438
7439 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
7440
7441 * varasm.c (make_decl_rtl): Restore leading star on
7442 DECL_ASSEMBLER_NAME set for decls with an asmspec.
7443
7444 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
7445
7446 * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
7447 won't give a spurious error for '#pragma pack()'. Simplify
7448 control flow for readability. 'reset' action is not necessary.
7449
7450 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
7451
7452 * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
7453 SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
7454 LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
7455 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
7456
7457 * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
7458 profile.c, sdbout.c, tradcif.y, tree.c:
7459 Include defaults.h if not already included.
7460 Don't define the above macros.
7461
7462 * Makefile.in: Update dependencies.
7463
7464 2000-09-10 Mark Mitchell <mark@codesourcery.com>
7465
7466 * c-common.h (add_stmt): Change prototype.
7467 (RECHAIN_STMTS): New macro.
7468 (CASE_LABEL_DECL): Likewise.
7469 (genrtl_case_label): Change prototype.
7470 (c_expand_start_case): Remove prototype.
7471 (build_case_label): Change prototype.
7472 (decl_constant_value): Declare.
7473 * c-common.c (check_case_value): Handle C++'s extensions to C
7474 semantics.
7475 * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
7476 field.
7477 * c-parse.in (stmt): Adjust handling of return statements and case
7478 laels.
7479 * c-semantics.c (add_stmt): Return the new statement.
7480 (genrtl_return_stmt): Take the RETURN_STMT as input, not the
7481 returned expression. Directly generate RTL, rather than calling
7482 c_expand_return.
7483 (genrtl_switch_stmt): Don't call c_expand_start_case.
7484 (build_case_label): Take the LABEL_DECL as input, too.
7485 (genrtl_case_label): Just call add_case_node.
7486 (expand_stmt): Adjust calls to genrtl_return_stmt and
7487 genrtl_case_label.
7488 * c-tree.h (c_expand_start_case): Declare.
7489 * c-typeck.c (decl_constant_value): Give it external linkage.
7490 (c_expand_return): Don't call expand_return or expand_null_return;
7491 use genrtl_return_stmt instead.
7492 * stmt.c (struct nesting): Remove num_ranges field.
7493 (add_case_node): Give it external linkage.
7494 (expand_start_case): Don't set num_ranges.
7495 (expand_start_case_dummy): Don't clear it.
7496 (pushcase): Rely on add_case_node to handle `default' labels.
7497 (add_case_node): Handle `default' labels.
7498 * tree.c (tree_int_cst_compare): New function.
7499 * tree.h (tree_int_cst_compare): Declare.
7500 (add_case_node): Likewise.
7501
7502 2000-09-10 Richard Henderson <rth@cygnus.com>
7503
7504 * c-parse.in: Revert last change.
7505 (init_reswords): Do not enter disabled keywords into the ridpointers
7506 table, modulo objc weirdness.
7507 (_yylex): Return the canonical spelling for a keyword.
7508
7509 2000-09-10 Philip Blundell <philb@gnu.org>
7510
7511 * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
7512 * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
7513
7514 Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
7515
7516 * alias.c (find_base_term): Handle ADDRESSOF.
7517 (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
7518
7519 2000-09-10 Denis Chertykov <denisc@overta.ru>
7520
7521 * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
7522 outputting templates with many lines.
7523
7524 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7525
7526 * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
7527 to decide whether 64-bit support must be generated.
7528
7529 2000-09-10 Richard Henderson <rth@cygnus.com>
7530
7531 * c-parse.in (asm patterns): Fix volatile check.
7532
7533 2000-09-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7534
7535 * cppmacro.c (check_trad_stringification): New function.
7536 (save_expansion): If -Wtraditional, warn about stringification of
7537 macro arguments.
7538
7539 2000-09-11 Michael Hayes <mhayes@cygnus.com>
7540
7541 * loop.h (struct loop_mem_info): Move from loop.c
7542 (struct loop_info): Add fields store_mems, mems, mems_idx,
7543 mems_allocated, unknown_address_altered,
7544 unknown_constant_address_altered, num_mem_sets, and
7545 first_loop_store_insn.
7546
7547 * loop.c (loop_store_mems): Replace with field in loop_info struct.
7548 (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
7549 (unknown_address_altered, unknown_constant_address_altered): Likewise.
7550 (num_mem_sets): Likewise.
7551 (replace_loop_mems, replace_loop_regs): New.
7552 (struct loop_replace_args): New.
7553 (load_mems): Use replace_loop_mems.
7554 (try_copy_prop): Use replace_loop_regs.
7555 (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
7556
7557 2000-09-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7558
7559 * configure.in: Recognize m6811-elf and m6812-elf.
7560 * configure: Regenerate.
7561
7562 2000-09-09 Geoff Keating <geoffk@cygnus.com>
7563
7564 * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
7565 to operand_subword.
7566
7567 2000-09-10 Michael Hayes <mhayes@cygnus.com>
7568
7569 * loop.c (struct movables): New.
7570 (num_movables): Move into struct movables.
7571 (the_movables): Change type to struct movables.
7572 (ignore_some_movables): Change struct movable arg to struct movables.
7573 (force_movables, combine_movables, regs_match_p): Likewise.
7574 (rtx_equal_for_loop_p, move_movables): Likewise.
7575 (scan_loop): Change movables to be of type struct movables.
7576 Replace last_movable with field in movables structure.
7577
7578 2000-09-08 Zack Weinberg <zack@wolery.cumb.org>
7579
7580 * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
7581 (init_pragma): Avoid warning if pfile happens to be unused.
7582 * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never
7583 define init_pragma to nothing. Always prototype
7584 init_pragma. Prototype dispatch_pragma if !USE_CPPLIB.
7585
7586 * c-lex.c (process_directive): Always call dispatch_pragma.
7587 Initialize entering_c_header to 0.
7588
7589 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7590
7591 * config/m68hc11/m68hc11.md: New file, machine description for
7592 68HC11 & 68HC12.
7593 * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
7594 * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
7595 * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
7596 * config/m68hc11/m68hc11-protos.h: New file.
7597 * config/m68hc11/m68hc11-crt0.S: New file, startup code.
7598 * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
7599 * config/m68hc11/xm-m68hc11.h: New file, target defs.
7600 * config/m68hc11/larith.asm: New file, libgcc routines.
7601
7602 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7603
7604 * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
7605 (FPBIT_FUNCS): Add _usi_to_sf.
7606 * config/fp-bit.c (usi_to_float): New function.
7607 * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
7608 (usi_to_float): Add appropriate #define.
7609
7610 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
7611
7612 * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
7613 new functions.
7614 * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
7615 * i386.md (attr "type"): Add sse and mmx types.
7616 (attr "memory"): Handle them without a crash.
7617 (movsi_1, movdi_2): Allow MMX regs.
7618 (movdi splits): Don't split moves involving MMX regs.
7619 (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
7620 (movv4sf_internal, movv4si_internal, movv8qi_internal,
7621 movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
7622 movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
7623 sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
7624 sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
7625 sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
7626 addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
7627 divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
7628 sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
7629 sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
7630 vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
7631 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
7632 cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
7633 addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
7634 subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
7635 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
7636 mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
7637 mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
7638 eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
7639 smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
7640 lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
7641 mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
7642 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
7643 mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
7644 mmx_clrdi): New patterns.
7645
7646 2000-09-08 Richard Earnshaw <rearnsha@arm.com>
7647
7648 * arm.c: Don't include tm.h directly.
7649
7650 Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka <jh@suse.cz>
7651
7652 * recog.c (validate_replace_rtx_1): Fix confusion about equality
7653 testing; simplify subregs of constants and nested subregs.
7654
7655 2000-09-08 Alexandre Oliva <aoliva@redhat.com>
7656
7657 * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
7658
7659 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
7660
7661 * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
7662 VEC_CONCAT.
7663 * rtl.texi (description of USE): Add note about possible pitfalls
7664 with this rtx.
7665 From Richard Henderson:
7666 * reload1.c (choose_reload_regs): Compute need_mode properly.
7667
7668 2000-09-07 Richard Henderson <rth@cygnus.com>
7669
7670 * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
7671 (__modsi3, __umodsi3): Likewise.
7672 (__udivsi3): Likewise. Normalize the TFmode values.
7673
7674 2000-09-07 Geoff Keating <geoffk@cygnus.com>
7675
7676 * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
7677 with a prototype.
7678 * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
7679 warning.
7680
7681 Fri Sep 8 03:26:38 2000 J"orn Rennecke <amylaar@redhat.co.uk>
7682
7683 * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
7684 (cmpeqdi_t): Add output pattern.
7685 (cmpeqdi_t+1): Don't split when not optimizing.
7686 Restore proper splitting operation.
7687
7688 2000-09-07 Richard Henderson <rth@cygnus.com>
7689
7690 * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
7691 do not call dispatch_pragma.
7692
7693 2000-09-07 Jim Wilson <wilson@cygnus.com>
7694
7695 * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
7696 to CLASS_CANNOT_CHANGE_MODE.
7697 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
7698 mode classes are different.
7699
7700 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
7701
7702 * cpplib.h (struct cpp_options): Add user_label_prefix member,
7703 left out of commit which removed cppulp.c.
7704
7705 2000-09-07 Richard Henderson <rth@cygnus.com>
7706
7707 * bb-reorder.c (fixup_reorder_chain): Add jump in new block
7708 after switch for CASE_DROPS_THROUGH.
7709
7710 2000-09-07 Richard Henderson <rth@cygnus.com>
7711
7712 * loop.c (strength_reduce): Call check_ext_dependant_givs.
7713 Properly extend the biv initial value for the giv.
7714 (record_biv): Zero ext_dependant.
7715 (record_giv): New argument ext_val. Update all callers.
7716 (general_induction_var): Likewise.
7717 (consec_sets_giv): Likewise.
7718 (simplify_giv_expr): Likewise. Fill in ext_val if we find
7719 a sign-extend, zero-extend, or truncate.
7720 (combine_givs_p): Make sure modes are compatible.
7721 (check_ext_dependant_givs): New.
7722 (extend_value_for_giv): New.
7723 * loop.h (struct induction): Add ext_dependant.
7724 * unroll.c (iteration_info): Extend the biv initial value for the giv.
7725 (find_splittable_givs): Likewise.
7726 (final_giv_value): Likewise.
7727
7728 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
7729
7730 * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
7731 REGISTER_TARGET_PRAGMAS is defined. Duplicate some
7732 definitions from cpplib.h.
7733 * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
7734 already done it.
7735 * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add
7736 documentation for REGISTER_TARGET_PRAGMAS.
7737
7738 * c-lex.c: Include cpplib.h before c-pragma.h. Define a
7739 default-pragma callback to implement -Wunknown-pragmas if
7740 USE_CPPLIB.
7741 * c-parse.in: Move all includes to top of file.
7742 * c-pragma.c: Include cpplib.h before c-pragma.h. Include
7743 tm_p.h.
7744 (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
7745 warning.
7746 (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
7747
7748 * arm.h, arm-protos.h, arm.c,
7749 c4x.h, c4x-protos.h, c4x.c,
7750 h8300.h, h8300-protos.h, h8300.c,
7751 i370.h, i370-protos.h, i370.c,
7752 i960.h, i960-protos.h, i960.c,
7753 sh.h, sh-protos.h, sh.c,
7754 v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
7755 pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
7756
7757 * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add
7758 multiple include guard.
7759 * i370.md (untyped_call): Use GEN_CALL.
7760 (umodsi3): Remove unused variable.
7761 * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
7762 * v850.c (output_move_single, output_move_double): Constify
7763 return value.
7764 (print_operand): Constify a char *.
7765 * v850.h (struct small_memory_info): Constify name member.
7766
7767 2000-09-07 Kazu Hirata <kazu@hxi.com>
7768
7769 * config/h8300.h: Fix comment typos.
7770 * config/h8300/h8300.md: Likewise.
7771 * config/h8300/lib1funcs.asm: Likewise.
7772
7773 Thu 07-Sep-2000 21:29:00 BST Neil Booth <NeilB@earthling.net>
7774
7775 * Makefile.in: Remove references to cppulp.{c,o}.
7776 * cppinit.c (initialize_builtins, cpp_start_read,
7777 cpp_handle_option): Update to use cpp_options structure.
7778 * cppulp.c: Remove.
7779
7780 2000-09-07 Joseph S. Myers <jsm28@cam.ac.uk>
7781
7782 * c-common.c (time_char_table): Allow %#b and %#h.
7783
7784 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7785
7786 * reorg.c (find_end_label): If the basic block reorder pass moves the
7787 return insn to some other place try to locate it again and put our
7788 end_of_function_label there.
7789 * reorg.c (relax_delay_slots): Check if find_end_label created a
7790 new label that invalidates the current optimazation.
7791
7792 2000-09-07 Catherine Moore <clm@redhat.com>
7793
7794 * unroll.c (unroll_loop): Check for unconditional jumps
7795 to loop continuation. Delete if n_iterations is 1.
7796 (ujump_to_loop_cont): New routine.
7797
7798 2000-09-07 Bernd Schmidt <bernds@redhat.co.uk>
7799
7800 * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
7801 MODE_VECTOR_FLOAT.
7802 * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
7803 to handle multiword modes correctly. All callers and the declaration
7804 changed.
7805
7806 2000-09-06 Mark Mitchell <mark@codesourcery.com>
7807
7808 * c-common.h (prep_stmt): Declare.
7809 (lang_expand_stmt): Likewise.
7810 * c-decl.c (lang_expand_stmt): Remove.
7811 * c-semantics.c (lang_expand_stmt): Define.
7812 (prep_stmt): New function.
7813 (expand_stmt): Handle common statement types here.
7814
7815 2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
7816
7817 * configure.in (sh-*-linux*): Added.
7818 * configure: Rebuilt.
7819 * config/sh/t-linux: New file.
7820 * config/sh/sh.h (USERMODE_BIT): Define.
7821 (TARGET_USERMODE): Likewise.
7822 (TARGET_SWITCHES): New switches for the bits above.
7823 (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
7824 * config/sh/linux.h: New file.
7825 * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
7826 underscore on linux.
7827 (L_sdivsi3, L_udivsi3): Define for linux.
7828 (L_ic_invalidate): Define.
7829 * invoke.texi (SH Options): Document -musermode.
7830
7831 2000-09-07 Alexandre Oliva <aoliva@redhat.com>
7832
7833 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
7834 CSE unless generating PIC.
7835
7836 * config/sh/sh.md (symPLT_label2reg): Force the initialization of
7837 the PIC register.
7838
7839 2000-09-06 H.J. Lu (hjl@gnu.org)
7840
7841 * Makefile.in (clean_s1): Depend on stage_b.
7842 (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
7843 stage2. They are used for "make compare".
7844
7845 2000-09-06 Mark Mitchell <mark@codesourcery.com>
7846
7847 Move statement-tree facilities from C++ to C front-end.
7848 * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
7849 (void_zero_node): New macro.
7850 (struct stmt_tree_s): New type.
7851 (stmt_tree): New typedef.
7852 (struct language_function): New type.
7853 (last_tree): New macro.
7854 (last_expr_type): Likewise.
7855 (walk_tree_fn): New typedef.
7856 (current_stmt_tree): New function.
7857 (begin_stmt_tree): Likewise.
7858 (add_stmt): Likewise.
7859 (finish_stmt_tree): Likewise.
7860 (statement_code_p): Likewise.
7861 (lang_statement_code_p): New variable.
7862 (walk_stmt_tree): New function.
7863 (STMT_IS_FULL_EXPR_P): New macro.
7864 * c-common.c (lang_statement_code_p): New variable.
7865 (c_common_nodes_and_builtins): Initialize void_zero_node.
7866 (statement_code_p): New function.
7867 (walk_stmt_tree): Likewise.
7868 * c-decl.c (language_function): Rename to ...
7869 (c_language_function): ... this. Include language_function.
7870 (push_c_function_context): Adjust accordingly.
7871 (pop_c_function_context): Likewise.
7872 (mark_c_function_context): Likewise.
7873 (current_stmt_tree): Define.
7874 * c-semantics.c (begin_stmt_tree): New function.
7875 (add_stmt): Likewise.
7876 (prune_unused_decls): Likewise.
7877 (finish_stmt_tree): Likewise.
7878
7879 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7880
7881 * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
7882
7883 2000-09-06 Kazu Hirata <kazu@hxi.com>
7884
7885 * calls.c: Fix formatting.
7886
7887 2000-09-06 Graham Stott <grahams@cygnus.co.uk>
7888
7889 * config/i386/i386.h (ADDRESS_COST): Fix typo.
7890
7891 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
7892
7893 Integrated preprocessor.
7894
7895 * Makefile.in: Remove all references to c-parse.gperf,
7896 c-gperf.h, and c-parse.h. Remove -d from yacc command line
7897 generating c-parse.c. Update dependencies.
7898 * c-parse.gperf, c-gperf.h: Delete.
7899
7900 * c-common.c: Don't define parse_options, cpp_token, yy_cur,
7901 yy_lim, or yy_get_token. Don't define get_directive_line if
7902 USE_CPPLIB.
7903 * c-common.h: Add multiple include guard. Define RID values
7904 for every keyword in C, C++, and Objective C. Put all the
7905 modifiers first.
7906 (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
7907 * c-decl.c (c_decode_option): Handle -lang-objc here.
7908 (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
7909 (grokdeclarator): Adjust for new RID scheme.
7910 (extract_interface_info): New stub.
7911 * c-lang.c: Don't declare yy_cur or parse_options.
7912 (lang_init_options): Call cpp_init. Don't call
7913 cpp_options_init.
7914 (lang_init): Don't call check_newline if USE_CPPLIB.
7915
7916 * c-lex.c: Don't include c-parse.h. Do include timevar.h.
7917 Elide lots of unnecessary code if USE_CPPLIB. Delete code
7918 rendered unnecessary by new architecture. Move routines not
7919 shared with C++ to c-parse.in. Maintain a local idea of the
7920 line number. Handle C++ as well as C.
7921 [USE_CPPLIB]: Declare and register callbacks for #ident and
7922 for entering/leaving files.
7923 (init_c_lex, c_lex): Are now the entry points to this file.
7924 (check_newline): Break out directive handling to
7925 process_directive.
7926 (read_ucs, is_extended_char, utf8_extend_token): Moved here
7927 from C++ front end.
7928 (readescape, parse_float): Overhaul.
7929 (lex_number, lex_string, lex_charconst): Break out of c_lex
7930 (n'ee yylex).
7931 (get_fileinfo, update_header_times, dump_one_header,
7932 dump_time_statistics): New and/or moved here from C++.
7933 Support per-file data needed by C++ and per-header timing
7934 statistics (C++ only, at the moment).
7935 * c-lex.h: Update prototypes. Add multiple include guard.
7936 * c-tree.h (struct lang_identifier): Add rid_code field.
7937 (C_IS_RESERVED_WORD, C_RID_CODE): New.
7938
7939 * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
7940 reinit_parse_for_function and/or position_after_white_space.
7941 (save_filename, save_lineno): Look ahead before saving.
7942 (label -> identifier ':'): Save file and line before shifting ':'.
7943 (reservedwords): No need to call get_identifier.
7944 (init_parse, finish_parse, yyerror, yylex, yyprint,
7945 make_pointer_declarator): Are now here for C/ObjC.
7946 (rid_to_yy): Conversion table from RID constants to Yacc codes.
7947
7948 * c-pragma.c: Rewrite parsing logic to fit with cpplib's
7949 #pragma registry. Provide dummy implementation of that
7950 interface if !USE_CPPLIB.
7951 * c-pragma.h: Update to match.
7952
7953 * flags.h: Add multiple include guard.
7954 (flag_detailed_statistics): Moved here from C++.
7955 * toplev.c: Define flag_detailed_statistics.
7956
7957 * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
7958 #if USE_CPPLIB.
7959 * timevar.def (TV_CPP, TV_LEX): New.
7960 * timevar.h: Add multiple include guard.
7961
7962 * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
7963 #if USE_CPPLIB.
7964 * objc/objc-act.c: Don't mention yy_cur or parse_options.
7965 Initialize cpplib properly. Force lineno to 0 after first
7966 call to check_newline. Don't handle -lang-objc here.
7967 Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
7968
7969 2000-09-06 David Edelsohn <edelsohn@gnu.org>
7970
7971 * rs6000.md: Correct function unit definitions for cr_logical and
7972 mtjmpr.
7973 (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
7974 and use portable method for >=0 and floating point >=. Remove
7975 associated matchers.
7976
7977 2000-09-06 Mark Mitchell <mark@codesourcery.com>
7978
7979 * extend.texi: Mark named return value extension as deprecated.
7980
7981 2000-09-06 Geoff Keating <geoffk@cygnus.com>
7982
7983 * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
7984 the result.
7985
7986 2000-09-06 Gabriel Dos Reis <gdr@codesourcery.com>
7987
7988 * toplev.c (display_help): Fix thinko in documentation.
7989
7990 * diagnostic.h (output_buffer::indent_skip): New fields.
7991 (output_indentation): New macro.
7992
7993 * diagnostic.c (output_indent): New function.
7994 (output_set_prefix, clear_diagnostic_info): Use.
7995 (output_emit_prefix): Predict future indentation.
7996
7997 2000-09-06 DJ Delorie <dj@redhat.com>
7998
7999 * Makefile.in (stage_*): add more dependencies to ensure parallel
8000 builds build correctly
8001
8002 2000-09-06 Manfred Hollstein <manfredh@redhat.com>
8003
8004 * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
8005 not bootstrap-lean_f.
8006
8007 2000-09-06 Andreas Schwab <schwab@suse.de>
8008
8009 * mklibgcc.in: Emit rule for libgcc-stage-start.
8010 * Makefile.in (stage1-start, stage2-start, stage3-start,
8011 stage4-start): Don't handle libgcc here, use libgcc.mk instead.
8012
8013 2000-09-06 Bernd Schmidt <bernds@redhat.co.uk>
8014
8015 * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
8016 (update_equiv_regs): Likewise, except for the mn10200 kludge.
8017 (combine_regs): Likewise.
8018
8019 * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
8020 * cse.c: Include "basic-block.h".
8021 (struct table_elt): New field REGCOST.
8022 (CHEAP_REG): Delete macro.
8023 (COST): Return 0 for REGs.
8024 (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
8025 (notreg_cost): Return 0 for appropriate SUBREGs.
8026 (COSTS_N_INSNS): Return N * 2.
8027 (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
8028 SUBREGs.
8029 (CHEAPER): Use new function preferrable.
8030 (insert): Initialize REGCOST member.
8031 (find_best_addr): Use approx_reg_cost for estimation of register
8032 usage.
8033 (cse_insn): Likewise.
8034 * loop.c (iv_add_mult_cost): New function.
8035 (add_cost, shift_cost, mult_cost): Delete variables.
8036 (init_loop): Don't initialize add_cost; reduce copy_cost by half.
8037 (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
8038 Make code that detects autoinc opportunities slightly less optimistic.
8039 (simplify_giv_expr): If expression contains other reg that is also a
8040 giv, only increment benefit if this is the only use of that reg.
8041 (consec_sets_giv): Take that change into account.
8042 (combine_givs): Slightly more verbose output.
8043
8044 * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
8045 not the cost of an equivalent shift.
8046 * sh-protos.h (addsubcosts): Declare.
8047 * sh.c (addsubcosts): New function.
8048 * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
8049 (RTX_COSTS): Tweak. Use addsubcosts.
8050 (ADDRESS_COST): Return higher cost for reg+reg addressing.
8051
8052 2000-09-06 Geoff Keating <geoffk@cygnus.com>
8053
8054 * config/rs6000/rs6000.c (validate_condition_mode): New function.
8055 (branch_comparison_operator): Call validate_condition_mode to
8056 abort rather than returning 0.
8057 (branch_positive_comparison_operator): New function.
8058 (scc_comparison_operator): Call validate_condition_mode to abort
8059 rather than returning 0.
8060 (ccr_bit): Call validate_condition_mode. Update for
8061 new branch scheme.
8062 (print_operand): Delete %C modifier. Update %E case
8063 to use EQ bit not SO bit.
8064 (rs6000_reverse_condition): New function.
8065 (rs6000_generate_compare): New function.
8066 (rs6000_emit_sCOND): New function.
8067 (rs6000_emit_cbranch): New function.
8068 (output_cbranch): The length of a long branch insn is
8069 now only 8 bytes. Add validate_condition_mode. Use
8070 rs6000_reverse_condition. Remove cror generation.
8071
8072 * config/rs6000/rs6000.h: Update comments.
8073 (PREDICATE_CODES): Add new predicate. Update codes used
8074 by branch_comparison_operator and scc_comparison_operator.
8075 * config/rs6000/rs6000-protos.h: Add prototypes for
8076 new external functions.
8077 * config/rs6000/rs6000.md: Add new scheduling parameters
8078 for cr_logical instructions. Change length of branch
8079 instructions.
8080 (bCOND patterns): Call rs6000_emit_cbranch.
8081 (sCOND patterns): Call rs6000_emit_sCOND.
8082 (branch patterns): Change lengths to 4.
8083 (cr logical patterns): New.
8084
8085 2000-09-06 Richard Henderson <rth@cygnus.com>
8086
8087 * config/i386/i386.md (call_pop): Fix test for setting
8088 current_function_uses_pic_offset_table.
8089 (call, call_value_pop, call_value): Likewise.
8090
8091 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
8092
8093 * timevar.c (timevar_add): Delete.
8094 (timevar_get): Also count time since the selected timer was
8095 last updated. Do not examine the timevar stack if the
8096 selected timer is standalone.
8097
8098 2000-09-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8099
8100 * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
8101
8102 2000-09-05 Jason Merrill <jason@redhat.com>
8103
8104 * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
8105 for 'extern' arrays.
8106
8107 2000-09-05 Richard Henderson <rth@cygnus.com>
8108
8109 * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
8110 Eliminate final copy from non-trapping case.
8111 (__divdf3, __divsf3): Likewise.
8112
8113 2000-09-05 Richard Henderson <rth@cygnus.com>
8114
8115 * config/ia64/ia64.md (mulhi3): Fix typo last change.
8116 * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
8117
8118 2000-09-03 Donn Terry <donn@interix.com>, Laurynas Biveinis <lauras@softhome.net>
8119
8120 * Makefile.in: Restructure bootstrap stages to allow clean
8121 restart after failure.
8122
8123 2000-09-05 Richard Henderson <rth@cygnus.com>
8124
8125 * config/ia64.md (movsi and movdi patterns): Allow moves from
8126 8-bit constants to AR registers.
8127
8128 2000-09-05 Richard Henderson <rth@cygnus.com>
8129
8130 * config/ia64/ia64.md (mulhi3): New.
8131
8132 2000-09-05 Richard Henderson <rth@cygnus.com>
8133
8134 * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
8135 * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
8136 Optimization Guide, minimum latency alternative.
8137 (__moddi3, __udivdi3, __umoddi3): Likewise.
8138 (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
8139
8140 2000-09-05 Bruce Korb <bkorb@gnu.org>
8141
8142 * fixinc/fixincl.c (load_file): always read header files
8143 with sizes that are a multiple of the page size.
8144 & use libiberty's getpagesize for determining that.
8145
8146 2000-09-05 Alexandre Oliva <aoliva@redhat.com>
8147
8148 * gcse.c (hash_string_1): Add prototype.
8149 * cse.c (canon_hash_string): Likewise.
8150
8151 2000-09-04 Craig Newell <CraigN@ieee.org>
8152
8153 * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
8154
8155 2000-09-04 Andreas Schwab <schwab@suse.de>
8156
8157 * Makefile.in (STAGESTUFF): Remove libgcc.
8158 (stage1-start, stage2-start, stage3-start): Copy the contents of
8159 the libgcc directory explicitly.
8160 (mostlyclean): Clean libgcc.
8161
8162 2000-09-04 Andrew Haley <aph@redhat.com>
8163
8164 * dwarf2out.c: (stack_adjust_offset): New prototype.
8165
8166 Wed Jan 1 00:23:59 MET 1997 Jan Hubicka <jh@suse.cz>
8167
8168 * combine.c (make_extraction): Fix rtx_cost comparison to
8169 match the comment.
8170
8171 Wed Jan 1 00:17:32 MET 1997 Jan Hubicka <jh@suse.cz>
8172
8173 * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
8174 umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
8175 Add '*' to insn pattern name.
8176
8177 2000-09-04 Jakub Jelinek <jakub@redhat.com>
8178
8179 * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
8180 use posn - 1 to index into tokens array.
8181 (maybe_paste_with_next): Adjust caller.
8182
8183 2000-09-03 Geoff Keating <geoffk@cygnus.com>
8184
8185 * invoke.texi: Document the -mvxworks option for rs6000 ELF.
8186
8187 * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
8188 (REGNO_REG_CLASS): Use symbolic register
8189 names.
8190
8191 2000-09-03 Richard Earnshaw <rearnsha@arm.com>
8192
8193 * arm.c (final_prescan_insn): If the form of a jump insn isn't
8194 recognized, don't try to conditionally execute it.
8195
8196 Sun Sep 3 13:10:56 2000 Denis Chertykov <denisc@overta.ru>
8197
8198 * config/avr/avr.md ("*tablejump_lib"): New pattern.
8199 (call_value_insn): Right length claculation.
8200 (call_insn): Likewise.
8201
8202 2000-09-02 Marek Michalkiewicz <marekm@linux.org.pl>
8203
8204 * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
8205 gas_output_limited_string, gas_output_ascii, output_movqi,
8206 output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
8207 out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
8208 out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
8209 ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
8210 lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
8211 out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
8212 Add "const" as needed to remove warnings.
8213
8214 * config/avr/avr.c (avr_override_options, avr_init_once,
8215 function_prologue, function_epilogue, frame_pointer_required_p,
8216 class_likely_spilled_p, order_regs_for_local_alloc,
8217 avr_address_cost, avr_ret_register): Use K&R style arguments.
8218 (initial_elimination_offset, gas_output_limited_string):
8219 Remove ATTRIBUTE_UNUSED from the used arguments.
8220 (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
8221 Use local variables src, dest, base to access operands[].
8222 Rename reg_dest to reg_src if that's what it is.
8223 (output_movhi, output_movsisf): Optimize loading 8-bit immediate
8224 constants to LD_REGS if reg_was_0.
8225 (output_reload_insisf): Change arg 3 to insn length and set it.
8226 (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
8227 access to 16-bit I/O register pairs.
8228 (avr_address_cost): Lower cost for the above case.
8229 (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
8230 may be clobbered, also for LD_REGS.
8231 (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
8232 with a CONST_INT.
8233
8234 * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
8235
8236 * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
8237 macro to test_hard_reg_class function.
8238 (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
8239 for loading immediate constants to LD_REGS.
8240 (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
8241
8242
8243 Sat Sep 2 13:58:23 2000 Marek Michalkiewicz <marekm@linux.org.pl>
8244
8245 * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
8246 * config/avr/libgcc.S: Lost part of the previous patch.
8247
8248 2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8249
8250 * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
8251 object before calling pthread_mutex_init.
8252
8253 2000-09-02 Alexandre Oliva <aoliva@redhat.com>
8254
8255 * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
8256 config/sh/crtn.asm: New files.
8257 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
8258 (crt1.o, crti.o, crtn.o): New targets.
8259 * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
8260 sh/t-elf.
8261 * configure: Rebuilt.
8262 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8263 STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
8264 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
8265 Undefine for config/elfos.h to redefine.
8266 (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
8267
8268 2000-09-02 Alexandre Oliva <aoliva@redhat.com>, Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
8269
8270 * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
8271 legitimize_pic_address, output_pic_addr_const): Declare.
8272 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
8273 (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
8274 (TARGET_SWITCHES): New switch -mprefergot.
8275 (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
8276 (PIC_OFFSET_TABLE_REGNUM): Define.
8277 (GOT_SYMBOL_TABLE): Likewise.
8278 (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
8279 (ENCODE_SECTION_INFO): Define.
8280 (FINALIZE_PIC): New macros.
8281 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
8282 (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
8283 * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
8284 (prepare_move_operands): Call emit_pic_move or
8285 emit_pic_const_move if appropriate.
8286 (output_far_jump): For PIC, use braf and output long offset.
8287 (machine_dependent_reorg):
8288 (sh_expand_prologue): Save and initialize the PIC register.
8289 (sh_expand_epilogue): Restore it.
8290 (initial_elimination_offset): Account for it.
8291 (nonpic_symbol_mentioned_p): New function.
8292 (legitimize_pic_address): Likewise.
8293 (output_pic_addr_const): Likewise.
8294 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
8295 (call, call_value): Use them.
8296 (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
8297 symPLT_label2reg): New expands.
8298 * invoke.texi (SH Options): Document -mprefergot.
8299
8300 2000-09-01 Alexandre Oliva <aoliva@redhat.com>
8301
8302 * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
8303 * gcse.c (hash_string_1): New function.
8304 (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
8305 (expr_equiv_p) <ASM_OPERANDS>: Likewise.
8306 * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
8307 (canon_hash_string): New function.
8308 (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
8309 (exp_equiv_p) <ASM_OPERANDS>: Likewise.
8310 (fold_rtx): Use ASM_OPERANDS accessor macros.
8311 * emit-rtl.c (copy_insn_1): Likewise.
8312 * integrate.c (copy_rtx_and_substitute): Likewise.
8313 * stmt.c (expand_asm_operands): Likewise. Give an
8314 ASM_OPERANDS rtx the mode of the output reg being set from it.
8315
8316 2000-09-01 Fred Fish <fnf@be.com>
8317
8318 * fix-header.c (write_rbrac): Add putc and getc to list of
8319 functions to protect against prior definition as a macro.
8320
8321 2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
8322
8323 * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
8324 (c_size_type_node): Define.
8325 * c-decl.c (init_decl_processing): Initialize c_size_type_node.
8326 * c-common.c (enum format_lengths, enum format_std_version,
8327 format_length_info, format_type_detail, BADLEN, NOLENGTHS,
8328 format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
8329 T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
8330 T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
8331 T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
8332 TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
8333 format_types): Define.
8334 (format_char_info, print_char_table, scan_char_table,
8335 time_char_table): Rearrange for new organization of information
8336 about format length modifiers and standard versions.
8337 (T_ST): Redefine to use c_size_type_node.
8338 (check_format_info): Obtain information about length modifiers and
8339 standard versions from tables. Adjust warning message wordings.
8340 Use the name from the user's program for `ll' and `hh' length
8341 modifiers in warning messages. Use more informative names for
8342 wanted types where available (for wchar_t, wint_t, size_t, signed
8343 size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
8344
8345 2000-09-01 Jim Wilson <wilson@cygnus.com>
8346
8347 * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
8348 * combine.c (distribute_notes): Handle REG_NORETURN.
8349 * rtl.c (reg_note_name): Add REG_NORETURN.
8350 * rtl.h (enum reg_note): Likewise.
8351
8352 * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
8353 ia64_file_start.
8354 * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
8355 (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
8356 (emit_predicate_relation_info): Handle conditional calls with
8357 REG_NORETURN.
8358 * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
8359 instead of ia64_file_start.
8360 * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
8361 * config/ia64/ia64.md (safe_across_calls_all,
8362 save_across_calls_normal): New patterns.
8363
8364 * loop.c (check_final_value): Check for biv use before checking for
8365 giv use. Check for both biv and giv uses. Always set last_giv_use
8366 if there is a giv use.
8367
8368 2000-09-01 Richard Henderson <rth@cygnus.com>
8369
8370 * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
8371 (madddi3): Likewise.
8372 (maddsi3): New.
8373
8374 Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8375
8376 * expr.c (clear_storage): Don't use emit_move_insn unless
8377 either BLKmode or proper size.
8378 (store_constructor): Don't call clear_storage if REG of wrong size.
8379
8380 * flow.c (init_propagate_block_info): Don't mark frame dead at end
8381 of function if returns wiht stack pointer depressed.
8382
8383 2000-09-01 Andrew Haley <aph@redhat.com>
8384
8385 * dwarf2out.c (stack_adjust_offset): New function.
8386 (dwarf2out_stack_adjust): Break out stack adjust logic into
8387 new stack_adjust_offset function. Look inside parallels and
8388 sequences for stack adjustments.
8389
8390 2000-08-31 Jeff Law <law@cygnus.com>
8391
8392 * arm.md: Use no_new_pseudos to determine when it is safe
8393 to create new pseudo registers.
8394
8395 * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
8396 when we can safely allocate new registers.
8397
8398 2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
8399
8400 * stmt.c (expand_asm_operands): Twiddle generating_concat_p
8401 so that CONCATs are not generated for ASMs.
8402 * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
8403 not generating_concat_p.
8404 * function.c (pop_function_context_from): Reset
8405 generating_concat_p.
8406 (prepare_function_start): Likewise.
8407 * rtl.c (generating_concat_p): Define.
8408 * rtl.h (generating_concat_p): Declare.
8409 * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
8410
8411 2000-08-22 Philipp Thomas <pthomas@suse.de>
8412 Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
8413
8414 * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
8415 for translation.
8416
8417 2000-08-30 Greg McGary <greg@mcgary.org>
8418
8419 * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
8420 * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
8421 * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
8422
8423 2000-08-30 Greg McGary <greg@mcgary.org>
8424
8425 * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
8426 (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
8427 (TREE_INT_CST): New macro.
8428 * varasm.c (const_hash, compare_constant_1, record_constant_1):
8429 Use new macro TREE_INT_CST.
8430
8431 Wed 30-Aug-2000 23:18:59 BST Neil Booth <NeilB@earthling.net>
8432
8433 * contrib.texi: Add self.
8434
8435 2000-08-30 Alexandre Oliva <aoliva@redhat.com>
8436
8437 * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
8438 (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
8439 and labels.
8440
8441 2000-08-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8442
8443 * fixinc/gnu-regex.c: Don't define `const'.
8444
8445 Tue Aug 29 22:09:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8446
8447 * expr.c (store_constructor): Allow variable bounds of array type.
8448 (expand_expr): Don't blow up if type is ERROR_MARK.
8449 * varasm.c (output_constructor): Don't access lower bound of array
8450 type unless need it if index is supplied (so it can be a variable
8451 if no index is supplied).
8452 Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
8453 Other minor cleanups.
8454
8455 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8456
8457 * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
8458 for compilations in stage 1 and subsequent stages, respectively.
8459 * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
8460 * configure: Rebuilt.
8461 * x-vax, x-vax-gcc: Deleted.
8462
8463 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8464
8465 * c-common.c (declare_function_name): Use func_id_node,
8466 function_id_node, and pretty_function_id_node. Do not make
8467 __func__ visible at file scope.
8468 * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
8469 CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
8470 (function_id_node, pretty_function_id_node, func_id_node): New
8471 macros.
8472 * c-decl.c (init_decl_processing): Initialize function_id_node,
8473 pretty_function_id_node, and func_id_node.
8474 (c_make_fname_decl): Correct comment.
8475
8476 * tree.h (struct tree_identifier): Constify pointer member.
8477
8478 * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
8479 * c-pragma.h (struct weak_syms): Constify name and value members.
8480 (add_weak): Constify arguments.
8481
8482 * calls.c (special_function_p): Constify a char *.
8483 (expand_call): Remove variable which is initialized and then
8484 never used.
8485 * dependence.c (struct def_use, struct induction, struct subscript):
8486 Constify 'variable' member.
8487 (get_low_bound, have_induction_variable): Constify char * argument.
8488 (find_induction_variable): Add braces to avoid dangling else.
8489 (classify_dependence): Constify char * arrays.
8490 * profile.c (output_func_start_profiler): Constify a char *.
8491 * stor-layout.c (finalize_record_size): Constify a char *.
8492 * tree.c (is_attribute_p): Constify a char *.
8493 * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
8494
8495 * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
8496 for comprehensibility. Do not call get_identifier if we did
8497 not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to
8498 create temporary string constants, not ggc_alloc_string. No
8499 need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const
8500 char * to hold IDENTIFIER_POINTERs.
8501
8502 2000-08-29 Richard Henderson <rth@cygnus.com>
8503
8504 * config/ia64/ia64.md (muldi3): Use grfr_register_operand
8505 for the inputs.
8506
8507 2000-08-29 Richard Henderson <rth@cygnus.com>
8508
8509 * reload.c (push_secondary_reload): Allow class == reload_class
8510 if we're using a reload_in/out pattern.
8511
8512 * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use
8513 the half that does not conflict with the reload register.
8514 (reload_outti): Likewise.
8515
8516 2000-08-29 Kazu Hirata <kazu@hxi.com>
8517
8518 * reload.c: Fix formatting.
8519
8520 * stmt.c: Fix formatting.
8521
8522 * gcc.c: Fix formatting.
8523
8524 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8525
8526 * flags.h (time_report, mem_report): New global flags.
8527 * toplev.c: Define time_report and mem_report.
8528 (f_options): Add -ftime-report and -fmem-report.
8529 (compile_file): Turn on time_report if quiet_flag is off.
8530 Call ggc_print_statistics at very end if mem_report is on.
8531 * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
8532
8533 * ggc-common.c (ggc_print_statistics): Rename to
8534 ggc_print_common_statistics; all callers changed. Scale
8535 quantities above 10K to kilobytes and above 10M to megabytes.
8536 * ggc-page.c (ggc_page_print_statistics): Rename to
8537 ggc_print_statistics. Report memory consumed by internal data
8538 structures for each allocation bucket. Scale quantities above
8539 10K to kilobytes and above 10M to megabytes.
8540 * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
8541 Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
8542 Define tally_leaves always.
8543 (ggc_print_statistics): New function.
8544 * ggc.h: Adjust for renamed functions.
8545
8546 Wed Aug 30 00:11:42 2000 Denis Chertykov <denisc@overta.ru>
8547
8548 * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
8549 output_movsisf instead of which_alternative.
8550
8551 * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
8552
8553 Tue Aug 29 22:29:58 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
8554
8555 * config/avr/avr-protos.h: (avr_output_ascii) Removed.
8556 (avr_progmem_p): New prototype.
8557 (output_movsisf): Prototype declaration changed.
8558 (output_movqi): New prototype.
8559 (output_movhi): New prototype.
8560 (call_insn_operand): Likewise.
8561 (final_prescan_insn): Likewise.
8562 (avr_simplify_comparision_p): Likewise.
8563 (avr_normalize_condition): Likewise.
8564 (compare_eq_p): Likewise.
8565 (out_shift_with_cnt): Likewise.
8566 (const_int_pow2_p): Likewise.
8567 (output_reload_inhi): Prototype declaration changed.
8568
8569 * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
8570 (ldi_reg_rtx): New. rtx for r31.
8571 (avr_init_stack): Initialize as "__stack".
8572 (function_prologue): Use it.
8573 Replace all TARGET_ENHANCED with AVR_ENHANCED.
8574 (avr_mcu_name): Initialize as "avr2".
8575 (avr_enhanced_p, avr_mega_p): New variables.
8576 (mcu_types, avr_override_options): Handle all known MCU types.
8577 Also handle avr1 (only preprocess, assemble and link).
8578 (print_operand): Using of `%K' in output template removed.
8579 (out_movqi_r_mr): Optimized.
8580 (out_movhi_r_mr): Likewise.
8581 (output_movqi): New function.
8582 (output_movhi): Likewise.
8583 (out_movsi_r_mr): Optimized.
8584 (output_movsisf): Compute insn length for `adjust_insn_length'
8585 (out_movqi_mr_r): Optimized.
8586 (out_movhi_mr_r): Optimized.
8587 (adjust_insn_length): Use output_movsisf, output_movqi,
8588 output_movhi for insn length adjusting.
8589 (reg_unused_after): Use dead_or_set_p.
8590 (preferred_reload_class): Now havn't any restriction.
8591 (reg_was_0): New function.
8592 (io_address_p): Likewise.
8593 (const_int_pow2_p): Likewise.
8594 (output_reload_inhi): Likewise.
8595 (output_reload_insisf): Likewise.
8596
8597 * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
8598 (LIB_SPEC): Use -lc for all supported devices.
8599 (LIBGCC_SPEC): Use -lgcc for all supported devices.
8600 (AVR_MEGA): Define as avr_mega_p.
8601 (AVR_ENHANCED): New, define as avr_enhanced_p.
8602 (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
8603 (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
8604 (CRT_BINUTILS_SPECS): Handle all known MCU types.
8605 Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
8606 (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
8607 (ASM_SPEC): Pass -mmcu=... to the assembler.
8608 Change all -DAVR_* to -D__AVR_*__.
8609 (INIT_TARGET_OPTABS), config/avr/libgcc.S:
8610 Rename library functions to start with two underscores.
8611 (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
8612 alignment.
8613 (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
8614 (SUPPORTS_WEAK): Likewise.
8615 (LDI_REG_REGNO): New. Register r31 will be used as temporary
8616 register for loading constants to r0-r14.
8617
8618 * config/avr/avr.md: Replace all TARGET_ENHANCED with
8619 AVR_ENHANCED.
8620 (*mov_r_sp): Removed. Handled by output_movhi.
8621 (*mov_sp_r): Likewise.
8622 (*mov_sp_r_no_interrupts): Likewise
8623 (*mov_sp_r_tiny): Likewise.
8624 (*movqi): Use output_movqi.
8625 (*reload_inqi): New.
8626 (*movhi): Use output_movhi.
8627 (*reload_inhi): New.
8628 (*negsi2): Optimized.
8629 (*negsf2): Likewise.
8630 Added peepholes (define_peephole2) for loading constants to r0-r14
8631 and for using `cpse' command.
8632
8633 * config/avr/libgcc.S: Rename library functions to start with two
8634 underscores.
8635 Add support for enhanced core.
8636 (_moqhi3): Fix typo, now _modqi3.
8637 (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
8638 (__prologue_saves__): Remove test for stack adjust by 0.
8639 (__tablejump__): New.
8640
8641 * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
8642 Add multilib support.
8643
8644 Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com)
8645
8646 * loop.c (prescan_loop): Don't check unknown_address_altered
8647 when deciding if insert_loop_mem is safe. Add BLKmode MEMs
8648 to loop_store_mems as necessary.
8649 (loop_invariant_p): Don't check unknown_address_altered
8650 or unknown_constant_address_altered.
8651
8652 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8653
8654 * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
8655
8656 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
8657
8658 * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
8659 print just the filename.
8660 * cpplex.c (_cpp_run_directive): Add additional argument, the
8661 name to give the synthetic buffer. This defaults to
8662 translated "<command line>".
8663 * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
8664 Adjust to match.
8665 (_cpp_define_builtin): New function.
8666 * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
8667 * cpphash.h: Update prototypes.
8668
8669 * tradcpp.c (main): Process -D and -U simultaneously, in the
8670 order they appeared on the command line.
8671
8672 2000-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8673
8674 * c-decl.c (define_label): Call warning_with_file_and_line and
8675 error_with_file_and_line instead of plain warning or error.
8676
8677 * c-parse.in (label): Use save_filename/save_lineno to ensure
8678 correct values for calls to define_label.
8679
8680 2000-08-29 Mark Mitchell <mark@codesourcery.com>
8681
8682 * calls.c (expand_call): Don't create a VAR_DECL just to throw it
8683 away.
8684 * expr.c (expand_expr, case TARGET_EXPR): Don't call
8685 mark_addressable.
8686 * tree.h (get_file_function_name): Remove two duplicate
8687 declarations.
8688
8689 2000-08-28 Kazu Hirata <kazu@hxi.com>
8690
8691 * tree.c: Fix formatting.
8692
8693 * xcoffout.c: Fix formatting.
8694
8695 2000-08-28 Jason Merrill <jason@redhat.com>
8696
8697 * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
8698
8699 2000-08-28 Daniel Berlin <dberlin@redhat.com>
8700
8701 * dwarf2out.c (dwarf2out_finish): Don't bother calling
8702 break_out_includes if it won't do anything.
8703
8704 2000-08-28 Richard Henderson <rth@cygnus.com>
8705
8706 * reload.c (push_secondary_reload): Revert 2000-08-16 change.
8707 (find_reloads): Likewise.
8708 * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
8709 (reload_inhi): Likewise.
8710
8711 2000-08-28 Richard Henderson <rth@cygnus.com>
8712
8713 * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
8714 (call_insn_operand): Don't expect a surrounding mem.
8715 (constant_call_address_operand): Likewise.
8716 * config/i386/i386.h (PREDICATE_CODES): Update.
8717 * config/i386/i386.md (call patterns): Move the match_operand
8718 for the call destination inside the mem.
8719
8720 2000-08-28 Richard Henderson <rth@cygnus.com>
8721
8722 * local-alloc.c (requires_inout): Don't use reserved range for
8723 EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
8724 * recog.c (asm_operand_ok): Likewise.
8725 (preprocess_constraints, constrain_operands): Likewise.
8726 * regclass.c (record_reg_classes): Likewise.
8727 * reload.c (find_reloads): Likewise.
8728 * reload1.c (maybe_fix_stack_asms): Likewise.
8729 (reload_cse_simplify_operands): Likewise.
8730 * stmt.c (expand_asm_operands): Likewise.
8731
8732 * md.texi: Update constraints documentation.
8733 * tm.texi (EXTRA_CONSTRAINT): Update.
8734
8735 2000-08-28 Daniel Berlin <dberlin@redhat.com>
8736
8737 * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
8738 (print_die): If we don't know the offset of the
8739 target die, try the symbol. Add a trailing newline.
8740 (reverse_all_dies): New fn.
8741 (dwarf2out_finish): Call it.
8742 (break_out_includes): Reorganize for clarity.
8743 (add_sibling_attributes): Don't call reverse_die_lists.
8744 (output_comp_unit): Rename from output_comdat_comp_unit. Use for
8745 primary CU, too.
8746 * flags.h: Add flag_eliminate_dwarf2_dups.
8747 * toplev.c (f_options): Support -feliminate-dwarf2-dups.
8748
8749 2000-08-28 Jason Merrill <jason@redhat.com>
8750
8751 * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
8752 * dwarf2out.c: #include "md5.h".
8753 (DIE_LABEL_PREFIX): New macro.
8754 (dw_val_struct): Add 'external' flag to val_die_ref.
8755 (add_AT_die_ref, AT_ref): Adjust.
8756 (AT_ref_external, set_AT_ref_external): New fns.
8757 (build_abbrev_table): Call set_AT_ref_external.
8758 (value_format): Call AT_ref_external.
8759 (die_struct): Add die_symbol field.
8760 (new_die): Clear it.
8761 (dwarf_tag_name): Handle BINCL/EINCL.
8762 (dwarf2out_start_source_file): Add BINCL DIE.
8763 (dwarf2out_end_source_file): Add EINCL DIE.
8764 (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
8765 (loc_checksum, attr_checksum, die_checksum): New fns.
8766 (is_type_die, is_comdat_die, is_symbol_die): New fns.
8767 (compute_section_prefix, assign_symbol_names): New fns.
8768 (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
8769 (output_die): Call output_die_symbol and AT_ref_external.
8770 (output_comdat_comp_unit): New fn, split out from...
8771 (dwarf2out_finish): ...here. Also call add_sibling_attributes for
8772 secondary CUs.
8773 (output_pubnames, output_aranges): Abort if we see entries from
8774 secondary CUs.
8775 * toplev.h: Declare file_name_nondirectory.
8776 * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
8777 (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
8778 (debug_start_source_file): Call dwarf2out_start_source_file
8779 regardless of debug verbosity.
8780 (debug_end_source_file): Similarly.
8781 * tree.h: Declare clean_symbol_name.
8782 * tree.c (clean_symbol_name): Split out from...
8783 (get_file_function_name_long): ...here.
8784
8785 * dwarf2out.c (new_loc_descr): Use calloc.
8786 (splice_child_die): Remove the die from the right parent.
8787 (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
8788
8789 Mon Aug 28 19:02:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8790
8791 * toplev.c (decode_g_option): Don't give warning for unknown -g
8792 option; return 0 instead.
8793 (main): If -g option is not recognized by front end or
8794 language-independent code, give warning.
8795
8796 2000-08-28 Greg McGary <greg@mcgary.org>
8797
8798 * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
8799 * config/i386/i386.c (ix86_expand_compare): Remove `static'.
8800 * config/i386/i386.md (trap, conditional_trap): New insn & expand.
8801
8802 2000-08-27 Greg McGary <greg@mcgary.org>
8803
8804 * cpplex.c (parse_string): Don't look for backslash
8805 before first char in `namebuf'.
8806 * loop.c (strength_reduce): Skip NOTEs.
8807
8808 2000-08-27 Jason Merrill <jason@redhat.com>
8809
8810 * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
8811 DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or
8812 TREE_ASM_WRITTEN, either.
8813 (finish_decl): Adjust.
8814
8815 2000-08-28 Philipp Thomas <pthomas@suse.de>
8816
8817 * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
8818 they have been incorporated into the gettext CVS. Change the text to
8819 reflect the current status of NLS. Add instructions for accessing
8820 the gettext CVS and add the patch from Martin v. Loewis.
8821
8822 2000-08-27 Geoff Keating <geoffk@cygnus.com>
8823
8824 * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
8825 by using gen_lowpart_common.
8826 (movdi_internal64+6): Likewise.
8827
8828 2000-08-26 Alexandre Oliva <aoliva@redhat.com>
8829
8830 * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
8831 Document.
8832
8833 * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
8834 numbers to the ranges used by GDB.
8835
8836 2000-08-25 Richard Henderson <rth@cygnus.com>
8837
8838 * config/ia64/ia64.h (struct machine_function): Add n_varargs.
8839 * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
8840 (ia64_expand_prologue): Likewise.
8841 (ia64_setup_incoming_varargs): Set it. Properly skip the current
8842 argument for stdargs.
8843
8844 2000-08-25 Jason Merrill <jason@redhat.com>
8845
8846 * integrate.c (expand_inline_function): Pull out the original decl.
8847
8848 2000-08-25 Jim Wilson <wilson@cygnus.com>
8849
8850 * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
8851
8852 * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
8853
8854 2000-08-25 Greg McGary <greg@mcgary.org>
8855
8856 * flow.c (dump_edge_info): Use ARRAY_SIZE.
8857 * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
8858
8859 2000-08-25 Richard Earnshaw <rearnsha@arm.com>
8860
8861 * arm.h (STRUCT_VALUE): Define to 0, not NULL.
8862
8863 Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com)
8864
8865 * i386.c (ix86_find_base_term): New.
8866 * i386-protos.h (ix86_find_base_term): Prototype.
8867 * i386.h (FIND_BASE_TERM): Define.
8868 * alias.c (find_base_term): Use it.
8869 * tm.texi (FIND_BASE_TERM): Document it.
8870
8871 * alias.c (true_dependence, write_dependence_p): Unchanging
8872 memory can't conflict with non-unchanging memory.
8873
8874 * alias.c (memrefs_conflict_p): A BLKmode reference
8875 to a symbol (or CONST_INT address) always conflicts
8876 with a reference to another symbol.
8877
8878 2000-08-25 Joseph S. Myers <jsm28@cam.ac.uk>
8879
8880 * c-common.c (time_char_table): Don't allow width and flags with
8881 "z" format.
8882
8883 2000-08-25 Jakub Jelinek <jakub@redhat.com>
8884
8885 * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
8886 way as LT and LTU when the second operand has 0 in low word.
8887
8888 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8889
8890 * basic-block.h (struct loop): Rename `exits' field to
8891 `exit_edges'. Add `entry_edges' and `num_entries' fields.
8892
8893 * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
8894 (flow_loop_entry_edges_find): Add.
8895 (flow_edge_list_print): Rename from flow_exits_print.
8896 (flow_loops_find): Call flow_loop_entry_edges_find.
8897 (flow_loop_dump): Dump entry_edges list.
8898 (flow_loops_free): Free entry_edges.
8899
8900 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8901
8902 * loop.c (loop_dump_aux, debug_loop): New functions.
8903 (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
8904
8905 * flow.c (flow_loops_dump): Add callback parameter.
8906 (flow_loop_dump): Add callback parameter and call it. Move
8907 loop note debugging code to loop_dump_aux.
8908
8909 * basic-block.h (flow_loop_dump): Add callback parameter
8910 (flow_loops_dump): Likewise.
8911
8912 * toplev.c (rest_of_compilation): Add NULL callback function pointer
8913 to call to flow_loops_dump.
8914
8915 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8916
8917 * loop.c (count_loop_regs_set): Replace start and end arguments
8918 with loop argument. All callers udated.
8919
8920 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8921
8922 * loop.c (constant_high_bytes): Delete.
8923
8924 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8925
8926 * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
8927 and NOTE_INSN_LOOP_VTOP to...
8928 (find_and_verify_loops) ...here.
8929
8930 Fri Aug 25 04:21:13 2000 Alexandre Oliva <aoliva@redhat.com>
8931
8932 * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
8933 (fini_dummy, init_dummy): Use it.
8934
8935 Fri 25-Aug-2000 08:03:27 BST Neil Booth <NeilB@earthling.net>
8936
8937 * cpplex.c (is_macro_disabled): Caller has already checked
8938 that we're not a preprocessed file.
8939
8940 2000-08-24 Mark Mitchell <mark@codesourcery.com>
8941
8942 * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
8943 (c-iterate.o): Remove target.
8944 * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
8945 * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
8946 (finish_decl): Don't handle iterators.
8947 (grokdeclarator): Likewise.
8948 * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
8949 * gcc/c-gperf.h: Regenerated.
8950 * gcc/c-iterate.c: Removed.
8951 * gcc/c-lex.c (init_lex): Don't handle iterators.
8952 * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
8953 (compstmt_primary_start): Remove push_iterator_stack call.
8954 (stmt): Don't allow iterator statements. Replace iterator_expand
8955 with expand_expr_stmt.
8956 (all_iter_stmt): Remove.
8957 (all_iter_stmt_simple): Likewise.
8958 (all_iter_stmt_with_decl): Likewise.
8959 * gcc/c-tree.h (ITERATOR_P): Remove.
8960 (ITERATOR_BOUND_P): Likewise.
8961 (init_iterators): Remove declaration.
8962 (iterator_expand): Likewise.
8963 (iterator_for_loop_start): Likewise.
8964 (iterator_for_loop_end): Likewise.
8965 (iterator_for_loop_record): Likewise.
8966 (push_iterator_stack): Likewise.
8967 (pop_iterator_stack): Likewise.
8968 * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
8969 (readonly_warning): Likewise.
8970 * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
8971
8972 2000-08-24 Jim Wilson <wilson@cygnus.com>
8973
8974 * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
8975 Copy type in a TYPE_DECL, just like pushdecl does.
8976
8977 2000-08-24 Richard Henderson <rth@cygnus.com>
8978
8979 * toplev.c (main): Enable flag_reorder_blocks at -O2.
8980
8981 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
8982
8983 * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
8984 asked for one page, allocate GGC_QUIRE_SIZE of them and put
8985 the extras on the free list.
8986 (release_pages): Clean up.
8987 (ggc_set_mark): Don't adjust G.allocated here...
8988 (sweep_pages): ... do it here.
8989
8990 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
8991
8992 * cppfiles.c (read_include_file): Rearrange initializations.
8993
8994 2000-08-24 Richard Henderson <rth@cygnus.com>
8995
8996 * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
8997
8998 * config/ia64/ia64-protos.h: Update.
8999 * config/ia64/ia64.c (gr_register_operand): New.
9000 (fr_register_operand, grfr_register_operand): New.
9001 (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
9002 (grfr_reg_or_8bit_operand): New.
9003 (gr_reg_or_0_operand): Rename from reg_or_0_operand and
9004 use gr_register_operand.
9005 (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
9006 (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
9007 (gr_reg_or_8bit_and_adjusted_operand): Likewise.
9008 (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
9009 (fr_reg_or_fp01_operand): Likewise.
9010 (not_postinc_memory_operand): New.
9011 (ia64_split_timode): Remove unused variables.
9012 (rtx_needs_barrier): Check arguments to cmpxchg.
9013 (builtin_description): Remove.
9014 (bdesc_2argsi, bdesc_2argdi): Remove.
9015 (ia64_init_builtins): Declare all builtins directly.
9016 (ia64_expand_fetch_and_op): Rewrite to be called from
9017 ia64_expand_builtin directly. Use expand_binop and co.
9018 (ia64_expand_op_and_fetch): Likewise.
9019 (ia64_expand_compare_and_swap): Likewise.
9020 (ia64_expand_binop_builtin): Remove.
9021 (ia64_expand_lock_test_and_set): New.
9022 (ia64_expand_lock_release): New.
9023 (ia64_expand_builtin): Use them.
9024 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
9025 (EXTRA_CONSTRAINT): Use it.
9026 (PREDICATE_CODES): Update.
9027 * config/ia64/ia64.md (*): Use gr_register_operand and co.
9028 (mf): Indicate that we set memory as well as use it.
9029 (fetchadd_acq_si): Show memory being modified as well.
9030 (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
9031 (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
9032 (lock_test_and_set_si, lock_test_and_set_di): Remove.
9033 (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
9034 (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
9035 (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
9036 (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
9037 (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
9038 (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
9039 (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
9040 (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
9041 * config/ia64/ia64intrin.h (*): Cast result to the appropriate
9042 return type. Pretty print definitions.
9043
9044 2000-08-24 Jim Wilson <wilson@cygnus.com>
9045
9046 * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
9047 we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
9048
9049 2000-08-24 Jason Merrill <jason@redhat.com>
9050
9051 * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
9052 AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
9053 (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
9054 get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
9055
9056 2000-08-24 Greg McGary <greg@mcgary.org>
9057
9058 * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
9059 and extendtab within their proper array boundaries.
9060 * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
9061 for the entire array.
9062
9063 * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
9064 * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
9065 * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
9066 * config/fr30/fr30.c (fr30_print_operand): Likewise.
9067 * config/i386/dgux.c (output_options): Likewise.
9068 * config/i386/dgux.h (ASM_FILE_START): Likewise.
9069 * config/m88k/m88k.c (output_options): Likewise.
9070 * config/m88k/m88k.h (ASM_FILE_START): Likewise.
9071 * config/mcore/mcore.c (mcore_output_inline_const_forced,
9072 layout_mcore_frame, handle_structs_in_regs): Likewise.
9073 * config/mips/mips.c (output_block_move): Likewise.
9074 * config/rs6000/rs6000.c (rs6000_override_options,
9075 rs6000_file_start): Likewise.
9076 * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
9077 * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
9078 * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
9079 * builtins.c (expand_builtin_setjmp): Likewise.
9080 * expr.c (safe_from_p): Likewise.
9081 * flow.c (life_analysis): Likewise.
9082 * fold-const.c (size_int_type_wide): Likewise.
9083 * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
9084 * genattrtab.c (make_length_attrs): Likewise.
9085 * genopinit.c (gen_insn): Likewise.
9086 * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
9087 * global.c (global_alloc): Likewise.
9088 * local-alloc.c (find_free_reg): Likewise.
9089 * mips-tdump.c (print_symbol): Likewise.
9090 * mips-tfile.c (parse_def, parse_input): Likewise.
9091 * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
9092 * stmt.c (expand_nl_goto_receiver): Likewise.
9093 * stor-layout.c (set_sizetype): Likewise.
9094 * varasm.c (decode_reg_name): Likewise.
9095 * toplev.c (decode_f_option, decode_W_option,
9096 set_target_switch, print_switch_values): Likewise.
9097 (NUM_ELEM): Remove macro.
9098 (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
9099
9100 2000-08-24 Greg McGary <greg@mcgary.org>
9101
9102 * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
9103 (MAIN_NAME_P, main_identifier_node): New macros.
9104 * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
9105 * c-decl.c (start_decl, grokdeclarator, start_function,
9106 store_parm_decls, finish_function): Use MAIN_NAME_P.
9107 * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
9108 * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
9109 * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
9110 * config/pdp11/pdp11.c (output_function_prologue): Likewise.
9111
9112 2000-08-24 Greg McGary <greg@mcgary.org>
9113
9114 * cppfiles.c (actual_directory): Don't write beyond `dir'
9115 when it contains "".
9116 * real.c (asctoeg): Stay within bounds of etens[][].
9117
9118 2000-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9119
9120 * dependence.c (dependence_string, direction_string,
9121 dump_one_node, dump_node_dependence): Hide unused identifiers.
9122 (get_low_bound, normalize_coefficients): Match definition to
9123 static prototype.
9124 (get_one_coefficient): Initialize variables `value0_is_idx' and
9125 `value1_is_idx'.
9126 (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
9127 (ziv_test): Delete variable `idx', use parameter `sub' instead.
9128 (direction_merge): Avoid automatic aggregate initialization.
9129 (have_dependence_p): Use `src' not `dest' to set `src_idx'.
9130 Initialize variables `dest_idx' and `src_idx'.
9131 (end_dependence_analysis): Avoid C89 style function definition.
9132
9133 2000-08-24 Joseph S. Myers <jsm28@cam.ac.uk>
9134
9135 * c-common.c (time_char_table): Don't allow width with %F.
9136 (check_format_info): Don't allow "Z" length with scanf.
9137
9138 2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
9139
9140 * diagnostic.c (finish_diagnostic): Define.
9141 (output_do_printf): Use wrap_text instead of output_add_string.
9142 (default_print_error_function): Avoid embedded '\n'.
9143
9144 * diagnostic.h (flush_diagnostic_buffer): Declare.
9145
9146 2000-08-23 Alexandre Oliva <aoliva@redhat.com>
9147
9148 * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
9149
9150 2000-08-23 Hans-Peter Nilsson <hp@axis.com>
9151
9152 * Makefile.in (GCC_PASSES): Add specs.
9153
9154 2000-08-23 Jim Wilson <wilson@cygnus.com>
9155
9156 * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
9157 * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
9158 EHANDLER nor UHANDLER bit is set.
9159 (__get_except_table): Likewise.
9160
9161 2000-08-23 Nick Clifton <nickc@redhat.com>
9162
9163 * config/arm/lib1funcs.asm: Replace upper case condition codes
9164 with lower case versions.
9165
9166 * config/arm/arm.h (STRUCT_VALUE): Define.
9167 (STRUCT_VALUE_REGNUM): Delete.
9168
9169 2000-08-23 Zack Weinberg <zack@wolery.cumb.org>
9170
9171 * cpphash.h (IN_I): New flag for directive table.
9172 * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
9173 #pragma with IN_I.
9174 (_cpp_check_directive): If -fpreprocessed, execute directives
9175 marked with IN_I. Issue no warnings in this case.
9176 * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
9177
9178 2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk>
9179
9180 * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
9181 %u.
9182 (check_format_info): Support printf 'I' flag; warn about it with
9183 -pedantic.
9184
9185 2000-08-23 Richard Earnshaw (rearnsha@arm.com)
9186
9187 * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
9188 barrier can't be ignored by the alias analysis code.
9189
9190 2000-08-12 Eli Zaretskii <eliz@is.elta.co.il>
9191
9192 * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
9193 works inside fixincl.
9194
9195 Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com>
9196
9197 * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
9198 simplify_relational_operation() unless both operands are of
9199 VOIDmode.
9200 * cse.c (fold_rtx): Likewise.
9201
9202 Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com)
9203
9204 * rtlanal.c (rtx_unstable_p): The pic register is stable
9205 (within one function) and the actual rtx should be used
9206 when checking the registers.
9207 (rtx_addr_can_trap_p): Pic memory addresses can't trap.
9208
9209 * alias.c (true_dependence, write_dependence_p): Fix
9210 bug in previous patch.
9211
9212 * i386.c (ix86_GOT_alias_set): New.
9213 (legitimize_pic_address): Use it.
9214
9215 * rtlanal.c (rtx_unstable_p): An unchanging MEM is
9216 only stable if its address is stable.
9217 (rtx_varies_p): An unchanging MEM can't vary if
9218 its address doesn't vary.
9219
9220 2000-08-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9221
9222 * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
9223
9224 2000-08-22 J. David Anglin <dave@hiauly1.hia.nrc.ca>
9225
9226 * vax.h (ASM_SPEC): Pass `-J' to assembler.
9227 * x-vax-gcc: New file for bootstrapping with gcc.
9228 * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
9229 * configure.in: Use x-vax-gcc with gcc.
9230 * configure: Rebuilt.
9231
9232 Tue Aug 22 21:21:05 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
9233
9234 * toplev.c (rest_of_compilation): Rebuild label notes after
9235 post-reload splitting pass if new labels have been created.
9236
9237 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
9238
9239 * diagnostic.h (output_buffer_state): New macro.
9240 * diagnostic.c (diagnostic_for_decl, sorry,
9241 default_print_error_function, output_do_verbatim,
9242 report_diagnostic, report_problematic_module): Use it.
9243 (wrap_text): Tweak.
9244 (output_format): Use wrap_text instead of maybe_wrap_text.
9245
9246 2000-08-22 Nick Clifton <nickc@redhat.com>
9247
9248 * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
9249 Common code for ARM divide and modulus functions.
9250 (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
9251 ARM_DIV_MOD_BODY.
9252 (FUNC_END): New macro: Common code at the end of the division and
9253 modulo functions.
9254 (THUMB_FUNCTION_START): New macro: Common code at the start of
9255 Thumb functions.
9256 (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
9257
9258 Tue Aug 22 20:34:52 2000 Kaz Kojima <kkojima@rr.iij4u.or.jp>
9259
9260 * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
9261
9262 * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
9263 sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
9264 const0_rtx.
9265
9266 2000-08-22 Nick Clifton <nickc@redhat.com>
9267
9268 * config/arm/lib1funcs.asm (__umodsi3): Before performing any
9269 restorative additions, test for bottom bits of IP being set,
9270 rather than relying upon the RORs not matching.
9271 (__modsi3): Ditto.
9272
9273 2000-08-22 David Edelsohn <edelsohn@gnu.org>
9274
9275 * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
9276 text_section() as appropriate instead of emitting text csect
9277 pseudo-op directly.
9278 (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
9279 (UNIQUE_SECTION): Define macro.
9280 (ASM_OUTPUT_SECTION_NAME): Define macro.
9281 * rs6000.c (rs6000_override_options): Disable -ffunction-sections
9282 on AIX if debugging and -fdata-sections always.
9283
9284 2000-08-22 Steven King <sxking@uswest.net>
9285
9286 * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
9287 machinery.
9288 (LDBL_MAX): Same here.
9289
9290 2000-08-22 Richard Henderson <rth@cygnus.com>
9291
9292 * flow.c (tidy_fallthru_edge): Update b->end properly.
9293
9294 2000-08-22 Stan Cox <scox@redhat.com>
9295
9296 * Makefile.in (OBJS): Add dependence.o.
9297 * dependence.c: New file.
9298
9299 2000-08-22 Alexandre Oliva <aoliva@redhat.com>, John David Anglin <dave.anglin@nrc.ca>
9300
9301 * calls.c (check_sibcall_argument_overlap_1): Adjust for
9302 ARGS_GROW_DOWNWARD.
9303 (check_sibcall_argument_overlap): Likewise.
9304
9305 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
9306
9307 * invoke.texi (SH Options): Document -m4-nofpu,
9308 -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
9309 -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
9310
9311 2000-08-22 Joseph S. Myers <jsm28@cam.ac.uk>
9312
9313 * c-common.c (check_format_info): Give the 'some locales' warning
9314 for strftime %Ey rather than the unconditional 'only last 2 digits
9315 of year' one.
9316
9317 2000-08-22 Richard Henderson <rth@cygnus.com>
9318
9319 * alias.c (init_alias_analysis): Do not register
9320 struct_value_incoming_rtx or static_chain_rtx as pointing
9321 to stack memory.
9322
9323 Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com)
9324
9325 * protoize.c (munge_compile_params): Fix typo and formatting buglets.
9326
9327 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
9328
9329 * diagnostic.h (report_problematic_module): Declare.
9330 * diagnostic.c (report_problematic_module): New function.
9331 (report_error_function): Tweak.
9332
9333 Tue Aug 22 02:31:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9334
9335 * stmt.c (expand_goto_internal, fixup_gotos): Only check
9336 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
9337
9338 2000-08-21 Richard Henderson <rth@cygnus.com>
9339
9340 * flow.c (calculate_global_regs_live): Mark frame pointer live
9341 everywhere before reload.
9342
9343 2000-08-21 Jim Wilson <wilson@cygnus.com>
9344
9345 * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
9346 INTEL_EXTENDED_IEEE_FORMAT.
9347 (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally
9348 clear last two bytes of output FP value.
9349
9350 2000-08-21 Graham Stott <grahams@cygnus.co.uk>
9351
9352 * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
9353
9354 2000-08-21 Jakub Jelinek <jakub@redhat.com>
9355
9356 * unroll.c (loop_find_equiv_value): If ret is modified between
9357 insn and loop_start, ret might not be equivalent to reg.
9358
9359 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
9360
9361 * c-common.c (init_dollar_format_checking,
9362 maybe_read_dollar_number, finish_dollar_format_checking): New
9363 functions.
9364 (dollar_arguments_used, dollar_arguments_count,
9365 dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
9366 New variables.
9367 (check_format_info): Support $ formats for scanf and printf width
9368 and precision. Always increment format_chars to advance past the
9369 '*' of precision, not just when the format parameters are
9370 available to check.
9371
9372 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9373
9374 * mips.c (block_move_loop, expand_block_move,
9375 function_arg_partial_nregs, save_restore_insns, function_prologue,
9376 mips_expand_prologue, RA_MASK): Avoid using the `U' integer
9377 constant suffix.
9378 (function_arg_advance, function_arg): Match argument to format
9379 specifier `%p'.
9380
9381 2000-08-21 Nix <nix@esperi.demon.co.uk>
9382
9383 * gcc.c (do_spec_1): Implement %j spec flag.
9384 Remove dead comment.
9385
9386 * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
9387 * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
9388 * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
9389 * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
9390
9391 * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
9392 writable) instead of hardcoded value.
9393
9394 * toplev.c (compile_file): Output to a file even if -fsyntax-only.
9395
9396 * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
9397 MKTEMP_EACH_FILE.
9398
9399 * gcc.c (cc1_options): Do not process -o or run the assembler if
9400 -fsyntax-only.
9401 * objc/lang-spec.h: Likewise.
9402
9403 2000-08-21 Eli Zaretskii <eliz@is.elta.co.il>
9404
9405 * fixinc/fixincl.c (fix_with_system): Pipe the output of
9406 "external" fixes through `cat', to avoid truncating the input
9407 file by redirection.
9408
9409 2000-08-21 Jakub Jelinek <jakub@redhat.com>
9410
9411 * config/i386/i386.md (lea_general_1): Copy insn condition to split
9412 condition.
9413 (lea_general_2, lea_general_3): Likewise.
9414
9415 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9416
9417 * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
9418 warnings to user code.
9419
9420 * c-lex.c (readescape, yylex): Likewise.
9421
9422 * c-typeck.c (store_init_value, process_init_element): Likewise
9423 (c_expand_start_case): Format.
9424
9425 2000-08-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
9426
9427 * mips/linux.h (LINK_SPEC): Use %(endian_spec).
9428
9429 * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
9430 and linker_endian_spec to endian_spec.
9431 (ENDIAN_SPEC): Add %{EB} and %{EL}.
9432 (LINK_SPEC): Remove %{EB} and %{EL}.
9433 (ASM_SPEC): Likewise. Use %(endian_spec).
9434
9435 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
9436
9437 * c-tree.h (flag_hosted): Move declaration from here...
9438 * c-common.h (flag_hosted): ... to here.
9439 (flag_noniso_default_format_attributes): New declaration.
9440 * c-decl.c (flag_noniso_default_format_attributes): New variable.
9441 (c_decode_option): Set it appropriately for options choosing
9442 language standard variant.
9443 * c-common.c (init_function_format_info): Only provide default
9444 format attributes if flag_hosted. Only provide the gettext
9445 formats if flag_noniso_default_format_attributes. Update
9446 comments.
9447 (check_format_info): Disable treatment of %a as a scanf flag in
9448 C99 mode.
9449
9450 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
9451
9452 * c-common.c (scan_char_table): Add 'w' to flags for all formats
9453 except 'n'.
9454 (check_format_info): Set 'wide' for scanf format widths. Warn for
9455 a zero scanf width. Make the check for writing into a constant
9456 object at the first level of indirection; at later levels, warn if
9457 any type qualifiers are encountered.
9458
9459 Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com)
9460
9461 * reload.c (reload_inner_reg_of_subreg): New function broken out of
9462 push_reload.
9463 (push_reload): Use reload_inner_reg_of_subreg.
9464 (combine_reloads): Do not combine reloads if the input reload
9465 is a SUBREG in which the inner part will need reloading.
9466
9467 * global.c (global_alloc): Avoid passing dumpfile argument to
9468 reload routines.
9469 * toplev.c (rest_of_compilation): Likewise.
9470 * reload.h (reload): Remove dumpfile argument. Callers changed.
9471 (debug_reload, debug_reload_to_stream): Move prototypes here.
9472 * rtl.h (reload): Remove dumpfile argument.
9473 * reload.c (debug_reload): Remove prototype.
9474 (debug_reload_to_stream): Likewise.
9475 * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
9476 instead.
9477
9478 2000-08-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
9479
9480 * diagnostic.c (context_as_prefix): Export.
9481 (need_error_newline): Remove.
9482 (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
9483 (error_module_changed, record_last_error_module,
9484 error_function_changed, record_last_error_function): New functions.
9485 (initialize_diagnostics): Default intialize
9486 lang_diagnostic_starter, lang_diagnostic_finalizer.
9487 (init_output_buffer): Tweak.
9488 (file_name_as_prefix): New function.
9489 (announce_function, default_print_error_function,
9490 report_error_function, set_diagnostic_context): Tweak.
9491
9492 2000-08-21 Richard Earnshaw <rearnsha@arm.com>
9493
9494 * flow.c (init_propagate_block_info): Handle SUBREG in a jump
9495 condition expression.
9496
9497 2000-08-20 Richard Henderson <rth@cygnus.com>
9498
9499 * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
9500
9501 2000-08-20 Zack Weinberg <zack@wolery.cumb.org>
9502
9503 * cppinit.c (cpp_init): Set global flag when called.
9504 (cpp_reader_init): Bomb out if cpp_init hasn't been called.
9505
9506 Sun Aug 20 01:41:35 2000 Dennis Chernoivanov <cdi@sparc.spb.su>
9507
9508 * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
9509 before `process_directive' so that newlines won't be missed
9510 for directives.
9511 (cpp_printf): Increment `print->lineno' when newline is emitted.
9512
9513 * cppmain.c (cb_ident): Likewise.
9514 (cb_define): Likewise.
9515 (cb_undef): Likewise.
9516 (cb_include): Likewise.
9517 (cb_def_pragma): Likewise.
9518 (dump_macros_helper): Likewise.
9519
9520 2000-08-20 Richard Henderson <rth@cygnus.com>
9521
9522 * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
9523 assigned before a loop.
9524
9525 * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
9526 (ashrsi3, lshrsi3): Likewise.
9527
9528 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
9529
9530 * c-lang.c: #include diagnostic.h
9531 (c_tree_printer): New function.
9532 (lang_init): Initialize lang_printer.
9533
9534 * Makefile.in (c-lang.o): Depends on diagnostic.h
9535
9536 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
9537
9538 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
9539
9540 * diagnostic.c (default_diagnostic_starter,
9541 default_diagnostic_finalizer): New functions.
9542 (diagnostic_for_asm, diagnostic_for_decl): Tweak.
9543 (pedwarn, pedwarn_with_file_and_line, error,
9544 error_with_file_and_line, fatal, warning,
9545 warning_with_file_and_line): Adjust call to report_diagnostic.
9546 (report_diagnostic): Rework.
9547 (set_diagnostic_context): New function.
9548
9549 * diagnostic.h (struct diagnostic_context): New data structure.
9550 (diagnostic_message, diagnostic_argument_list,
9551 diagnostic_file_location, diagnostic_line_location,
9552 diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
9553 diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
9554 (set_diagnostic_context): Declare.
9555 (report_diagnostic): Change prototype.
9556
9557 Sun 20-Aug-2000 09:25:45 BST Neil Booth <NeilB@earthling.net>
9558
9559 * fix-header.c (main): Initialize cpplib.
9560
9561 2000-08-19 Michael Meissner <meissner@redhat.com>
9562
9563 * ifcvt.c (find_if_block): Do not assume that a THEN block has any
9564 instructions in it before checking for indirect jumps.
9565
9566 * ifcvt.c (find_if_block): Do not consider a THEN block that ends
9567 in a indirect jump as a potential for conditional execution.
9568
9569 * d30v.h (d30v_init_expanders): Don't declare here.
9570 * d30v-protos.h (d30v_init_expanders): Declare here with a valid
9571 prototype.
9572
9573 Sat 19-Aug-2000 21:11:45 BST Neil Booth <NeilB@earthling.net>
9574
9575 * cpp.texi: Add @section for assertions.
9576
9577 Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com)
9578
9579 * loop.c (scan_loop): Use CONST_CALL_P instead of
9580 checking for REG_LIBCALL / REG_RETVAL.
9581
9582 Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com)
9583
9584 * reload1.c (reload_as_needed): Accept dumpfile argument,
9585 pass it to emit_reload_insns.
9586 (emit_reload_insns): Add new dumpfile argument. If non-null
9587 then dump the reloads for each insn into the dumpfile.
9588 (reload): Pass dumpfile to reload_as_needed.
9589
9590 * invoke.texi: Clean up linux-gnu vs linux comments.
9591
9592 2000-08-19 Richard Henderson <rth@cygnus.com>
9593
9594 * config/ia64/ia64.c (reg_or_5bit_operand): New.
9595 (ia64_depz_field_mask): New.
9596 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
9597 (PREDICATE_CODES): Update.
9598 * config/ia64/ia64.md: Update commentary.
9599 (depz_internal): New.
9600 (ashlsi3): Implement directly.
9601 (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
9602 (ashldi3): Use shladd.
9603 * config/ia64/ia64-protos.h: Update.
9604
9605 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
9606
9607 * toplev.c (independent_decode_option): Always process -g.
9608 Remove third argument, now unused. Adjust caller to match.
9609
9610 2000-08-18 Richard Henderson <rth@cygnus.com>
9611
9612 * combine.c (make_compound_operation): Break after creating
9613 the extraction.
9614
9615 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
9616
9617 * cpplib.c (cpp_register_pragma_space): Just return if the
9618 namespace is already registered.
9619
9620 2000-08-18 Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton <nickc@redhat.com>
9621
9622 * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
9623 constant amount. Do not generate ROTL instruction.
9624
9625 Fri Aug 18 16:22:20 2000 Alexandre Oliva <aoliva@redhat.com>
9626
9627 * config/sh/elf.h: Do not include sh/sh.h.
9628 * config/sh/rtems.h: Likewise.
9629 * config/sh/rtemself.h: Do not include sh/elf.h.
9630 * configure.in: Get them included with `tm_file's.
9631 * configure: Rebuilt.
9632
9633 * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
9634 * config/sh/sh.c (fpscr_set_from_mem): Use them.
9635
9636 Fri Aug 18 14:23:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9637
9638 * stor-layout.c (compute_record_type): Don't use mode of single
9639 field as mode of record if not integer mode of same type.
9640
9641 * regmove.c (perhaps_ends_bb_p): New function.
9642 (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
9643 (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
9644 (fixup_match_1): Likewise.
9645 (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
9646 avoid signed/unsigned warnings.
9647
9648 * function.c (fixup_var_refs_1, case MEM): Update CODE after
9649 updating X.
9650
9651 Fri 18-Aug-2000 18:33:45 BST Neil Booth <NeilB@earthling.net>
9652
9653 * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
9654 (_cpp_trigraph_map): Declaration moved from cpplex.c
9655
9656 * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1
9657 instead of 256. Use consistent test for designated initializers.
9658 (cpp_init): Initialize trigraph_map.
9659 (initialize_standard_includes, parse_option): Use memcmp
9660 instead of strncmp.
9661
9662 * cpplex.c (init_trigraph_map): Remove.
9663 (trigraph_ok, trigraph_replace, lex_line): Refer to
9664 _cpp_trigraph_map.
9665
9666 * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
9667 (do_unassert): Remove unused "next" local.
9668
9669 * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
9670
9671 2000-08-18 Emmanuel Marty <emarty@suntech.fr>
9672
9673 * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
9674 insn.
9675
9676 2000-08-17 Richard Henderson <rth@cygnus.com>
9677
9678 * config/ia64/ia64.c (spill_restore_mem): Handle emitting
9679 the first insn in a sequence.
9680
9681 Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com)
9682
9683 * alias.c (true_dependence, write_dependence_p): A read
9684 involving a label_ref or the constant pool doesn't create
9685 a dependency.
9686
9687 * rtl.h (unchanging): Improve documentation.
9688
9689 2000-08-17 Rodney Brown <RodneyBrown@mynd.com>
9690
9691 * cse.c (insert_regs): Remove unused `regno'.
9692
9693 2000-08-17 Neil Booth <NeilB@earthling.net>
9694
9695 * (cppinit.c) merge_include_chains: Use remove_dup_dir,
9696 remove_dup_dirs. If qtail == brack, remove brack not
9697 qtail.
9698 (remove_dup_dir, remove_dup_dirs): New functions.
9699
9700 2000-08-17 Neil Booth <NeilB@earthling.net>
9701
9702 * cppinit.c (cpp_cleanup): Free include dir chains.
9703 * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
9704 (do_unassert): Free the assert with _cpp_free_definition.
9705 * cppmacro.c (_cpp_free_definition): Free memory allocated for
9706 assertions. Make the node a T_VOID node.
9707
9708 2000-08-17 Neil Booth <NeilB@earthling.net>
9709
9710 * cppinit.c (path_include, append_include_chain):
9711 Remove 2nd parameter (struct cpp_pending *).
9712 (path_include, initialize_standard_includes, cpp_handle_option):
9713 Update callers appropriately.
9714 (cpp_handle_option): Use pend.
9715
9716 2000-08-17 Neil Booth <NeilB@earthling.net>
9717
9718 * cppinit.c (sort_options): Remove, put functionality in
9719 cpp_init.
9720 (cpp_init): New.
9721 (initialize_builtins): Free memory.
9722 (cpp_start_read): Move init_IStable to cpp_init.
9723
9724 * cpplib.h (cpp_init): New prototype.
9725 * cppmain.c (main): Call cpp_init.
9726
9727 Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com)
9728
9729 * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
9730 (rtx_unstable_p, rtx_varies_p): Process vectors.
9731
9732 2000-08-16 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
9733
9734 * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all
9735 references to GLOBAL symbols. Use LOCAL where appropriate.
9736
9737 2000-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9738
9739 * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always
9740 use t-aix41 when host == target.
9741
9742 2000-08-16 Richard Henderson <rth@cygnus.com>
9743
9744 * reload.c (push_secondary_reload): Revert last change.
9745 If we use a reload_in/out pattern, make the when the same
9746 as the primary reload.
9747 (find_reloads): Likewise.
9748
9749 2000-08-16 Manfred Hollstein <manfredh@redhat.com>
9750
9751 * configure.in (libstdcxx-v3): Fix test.
9752 * configure: Regenerate.
9753
9754 Wed Aug 16 08:10:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9755
9756 * calls.c (calls_function_1, expand_call): Only test
9757 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
9758 * function.c (thread_prologue_and_epilogue_insns): Likewise.
9759
9760 2000-08-16 Richard Henderson <rth@cygnus.com>
9761
9762 * combine.c (simplify_shift_const): Revert previous two
9763 changes. If SHIFT_COUNT_TRUNCATED, crop the shift count
9764 before the main loop.
9765
9766 2000-08-15 Richard Henderson <rth@cygnus.com>
9767
9768 * combine.c (simplify_shift_const): Bound shift count when
9769 combining shifts.
9770
9771 Tue Aug 15 17:33:05 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9772
9773 * calls.c (ECF_SP_DEPRESSED): New macro.
9774 (calls_function_1): Treat calling sp-depressed function as alloca.
9775 (emit_call_1): Don't adjust SP if calling sp-depressed function.
9776 (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
9777 If sp-depressed, ensure block saves and restores SP.
9778 * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
9779 for INTEGER_TYPE.
9780 * function.c (keep_stack_depressed): New function.
9781 (thread_prologue_and_epilogue_insns): Call it.
9782 * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
9783 to print DECL_OFFSET_ALIGN.
9784 Print no-force-blk and transparent-union flags properly.
9785 * stmt.c (expand_goto_internal): Don't restore stack if last block
9786 and function returns with sp depressed.
9787 (fixup_gotos): Likewise.
9788 (save_stack_pointer): New function, from code in expand_decl.
9789 (expand_decl): Call new function.
9790 * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
9791 (TYPE_RETURNS_STACK_DEPRESSED): New macro.
9792 (save_stack_pointer): New declaration.
9793
9794 * diagnostic.c (fatal_function): New variable.
9795 (set_fatal_function): New function.
9796 (fatal): Call it.
9797 * diagnostic.h (set_fatal_function): New declaration.
9798
9799 2000-08-15 William Cohen <wcohen@redhat.com>
9800
9801 * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
9802 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
9803 (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
9804
9805 2000-08-15 Richard Henderson <rth@cygnus.com>
9806
9807 * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
9808
9809 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9810
9811 * arm.c (arm_function_ok_for_sibcall): New function.
9812 * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
9813 * arm.md (call expanders): Don't check here for calls that can't
9814 be sibling calls.
9815
9816 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9817
9818 * arm.md (splits generating cond_exec): Disable.
9819
9820 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9821
9822 * arm/linux-elf.h (text_section): Delete declaration.
9823
9824 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9825
9826 ARM support for unordered FP operations.
9827 * arm-protos.h (arm_comparison_operator): Declare.
9828 * arm.c (arm_comparison_operator): New function.
9829 (arm_select_cc_mode): Add unordered comparison codes.
9830 (get_arm_condition_code): Likewise.
9831 (arm_final_prescan_insn): Can't handle unordered jumps that can't
9832 be done in one insn.
9833 * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
9834 * arm.md (all uses of comparison_operator): Replace with
9835 arm_comparison_operator.
9836 (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
9837 expands.
9838 (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
9839 patterns.
9840
9841 Tue Aug 15 00:36:36 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
9842
9843 * gthr-posix.h: Conditionally include <sched.h>; include
9844 <config.h> from libobjc/.
9845
9846 2000-08-14 Richard Henderson <rth@cygnus.com>
9847
9848 * config/i386/i386.c (legitimize_pic_address): Use Pmode
9849 for all CONSTs.
9850
9851 2000-08-14 Richard Henderson <rth@cygnus.com>
9852
9853 * configure.in (ia64-*): Set float_format for i386 long double.
9854
9855 * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
9856 as we would for i386 XFmode.
9857 (PUT_REAL): Likewise.
9858 (endian, ereal_atof, real_value_truncate): Likewise.
9859 (ereal_isneg, toe64, etens, make_nan): Likewise.
9860 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
9861
9862 * config/ia64/ia64-protos.h: Update.
9863 * config/ia64/ia64.c (general_tfmode_operand): New.
9864 (destination_tfmode_operand): New.
9865 (tfreg_or_fp01_operand): New.
9866 (ia64_split_timode): New.
9867 (spill_tfmode_operand): New.
9868 (ia64_expand_prologue): Use TFmode not XFmode.
9869 (ia64_expand_epilogue): Likewise.
9870 (ia64_function_arg): Likewise.
9871 (ia64_function_arg_advance): Likewise.
9872 (ia64_return_in_memory): Likewise.
9873 (ia64_function_value): Likewise.
9874 (ia64_print_operand): Likewise.
9875 (ia64_register_move_cost): Set GR<->FR to 5.
9876 (ia64_secondary_reload_class): Get GR for TImode memory op.
9877 * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
9878 (ROUND_TYPE_ALIGN): Remove.
9879 (LONG_DOUBLE_TYPE_SIZE): Set to 128.
9880 (INTEL_EXTENDED_IEEE_FORMAT): Define.
9881 (HARD_REGNO_NREGS): Use TFmode, not XFmode.
9882 (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs.
9883 (MODES_TIEABLE_P): Use TFmode, not XFmode.
9884 (CLASS_MAX_NREGS): Likewise.
9885 (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
9886 (PREDICATE_CODES): Update.
9887 * config/ia64/ia64.md (movti): New.
9888 (movti_internal): Use a clobber for memory alternatives.
9889 (reload_inti, reload_outti): New.
9890 (movsfcc_astep): Predicate properly.
9891 (movdfcc_astep): Likewise.
9892 (movxf): Remove.
9893 (movtf): New.
9894 (extendsftf2, extenddftf2): New.
9895 (trunctfsf2, trunctfdf2): New.
9896 (floatditf2, fix_trunctfdi2): New.
9897 (floatunsditf2, fixuns_trunctfdi2): New.
9898 (addtf3, subtf3, multf3, abstf2): New.
9899 (negtf2, nabstf2, mintf3, maxtf3): New.
9900 (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
9901 (cmptf): New.
9902 (fr_spill): Use TFmode, not XFmode.
9903 (fr_restore): Likewise.
9904 * config/ia64/lib1funcs.asm (__divtf3): New.
9905 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
9906
9907 2000-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9908
9909 * cse.c (fold_rtx): Avoid empty body in an if-statement.
9910
9911 * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
9912 `U' integer constant suffix.
9913
9914 * dwarf2out.c (add_subscript_info): Avoid empty body in an
9915 else-statement.
9916
9917 * sparc/sol2.h (__enable_execute_stack): Prototype.
9918
9919 2000-08-14 David Edelsohn <edelsohn@gnu.org>
9920
9921 * collect2.c: Remove use of AIX import file.
9922
9923 * longlong.h: Test ARCH_PWR not ARCH_POWER.
9924
9925 * rs6000.c (print_operand, case 'E'): Add else.
9926
9927 2000-08-14 Richard Henderson <rth@cygnus.com>
9928
9929 * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
9930 (movdi_symbolic): New.
9931
9932 2000-08-14 Jim Wilson <wilson@cygnus.com>
9933
9934 * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
9935 to GNU as. For Intel as, pass -M const_gp and -M no_plabel.
9936 * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
9937 to GNU as.
9938
9939 2000-08-14 Richard Henderson <rth@cygnus.com>
9940
9941 * expr.c (emit_group_load): Don't force constants into registers.
9942 Special case source already in the correct mode.
9943
9944 2000-08-14 Zack Weinberg <zack@wolery.cumb.org>
9945
9946 * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
9947 * fixinc/inclhack.def: Likewise.
9948 * fixinc/mkfixinc.sh: Likewise.
9949 * configure: Regenerate.
9950 * fixinc/fixincl.x: Regenerate.
9951 * install.texi: Document equivalence of linux and linux-gnu.
9952
9953 Mon Aug 14 18:51:44 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
9954
9955 * cse.c (insert_regs): Also in REG case: When finding an invalid
9956 value, and we make a new quantity, make sure that it won't be
9957 mistaken by for a valid one by mention_regs.
9958
9959 2000-08-13 Ralf Gütlein <ralf.guetlein@aranea.de>
9960
9961 * h8300.md: Remove obsolete peepholes.
9962
9963 2000-08-13 Kazu Hirata <kazu@hxi.com>
9964
9965 * invoke.texi (H8/300 Options): Fix typos.
9966 * config/h8300.c: Fix formatting.
9967 * config/h8300.h: Fix comment typos.
9968 (OVERRIDE_OPTIONS): Fix formatting.
9969
9970 * function.c: Fix formatting.
9971
9972 * cse.c: Fix formatting.
9973
9974 2000-08-13 Geoff Keating <geoffk@cygnus.com>
9975
9976 * flow.c (attempt_auto_inc): Remove unused variable `bb'.
9977 (attempt_auto_inc): Suppress parentheses warning.
9978 * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
9979 * loop.c (load_mems): Remove `u' suffix in two places.
9980 * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
9981 hex constants.
9982 * config/rs6000/rs6000.h: Likewise.
9983 * config/rs6000/sol-c0.c: Prototype some functions. Remove the
9984 __eabi dummy routine.
9985 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
9986 variable `buf_ptr'.
9987
9988 * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
9989 not put stuff in .sdata unnecessarily.
9990 (rs6000_unique_section): New function.
9991 * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
9992 * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
9993
9994 * c-typeck.c (build_array_ref): Don't complain about non-lvalue
9995 arrays in C99. Don't try to look at DECL_REGISTER of a
9996 COMPONENT_REF. Don't complain twice about the same error.
9997
9998 * fixinc/inclhack.def (aix_pthread): New fix.
9999 (aix_sysmachine): New fix.
10000 * fixinc/fixincl.x: Regenerate.
10001
10002 * expr.c (expand_expr): Call convert_modes when turning a large
10003 multiply into a small one.
10004
10005 2000-08-12 Geoff Keating <geoffk@cygnus.com>
10006
10007 * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
10008 the tree structure an exponent rather than an explicit alignment
10009 so it doesn't overflow.
10010 (SET_DECL_OFFSET_ALIGN): New macro.
10011 * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
10012 rather than DECL_OFFSET_ALIGN.
10013 (place_field): Likewise.
10014 * expmed.c (store_bit_field): Abort on align==0 to avoid
10015 antisocial machine behaviour.
10016
10017 2000-08-12 Richard Henderson <rth@cygnus.com>
10018
10019 * sibcall.c (uses_addressof): Accept both addressof and
10020 current_function_internal_arg_pointer inside a mem.
10021 (optimize_sibling_and_tail_recursive_call): Fail tail recursion
10022 if current_function_uses_addressof.
10023 * stmt.c (expand_return): Kill tail recursion and HAVE_return
10024 optimizations.
10025
10026 2000-08-11 Richard Henderson <rth@cygnus.com>
10027
10028 * config/ia64/ia64.md (addsi3): Remove expander.
10029 (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
10030 (*addsi3_shladd): New.
10031
10032 2000-08-11 Richard Henderson <rth@cygnus.com>
10033
10034 * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
10035 (do_restore): Likewise.
10036 (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
10037 (ia64_expand_prologue, ia64_expand_epilogue): Use them.
10038 (rtx_needs_barrier): Track actual bit manipulation for
10039 ar.unat moves, gr_spill, and gr_restore.
10040 (emit_insn_group_barriers): Special case gr_spill/gr_restore.
10041 (process_set): Don't handle varargs spills.
10042 * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit
10043 .mem.offset here instead of in process_set.
10044 (gr_restore): Likewise.
10045
10046 2000-08-11 Richard Henderson <rth@cygnus.com>
10047
10048 * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
10049
10050 2000-08-11 Mark Elbrecht <snowball3@bigfoot.com>
10051
10052 * gcc.texi (The Configuration File): Document
10053 COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
10054 UPDATE_PATH_HOST_CANONICALIZATION.
10055
10056 2000-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10057
10058 * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
10059 unprototyped function pointer casts on integer constants.
10060
10061 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
10062
10063 * fixproto: Recognize DOS paths with drive letters as absolute paths.
10064
10065 2000-08-11 Nathan Sidwell <nathan@codesourcery.com>
10066
10067 * extend.texi (Volatiles): Fix typos.
10068
10069 2000-08-11 Kazu Hirata <kazu@hxi.com>
10070
10071 * flow.c: Fix formatting.
10072
10073 2000-08-11 Richard Henderson <rth@cygnus.com>
10074
10075 * reload.c (push_secondary_reload): When invoking a reload_{in,out}
10076 pattern, always allocate a tertiary scratch register.
10077
10078 * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
10079 (reload_inhi): Likewise.
10080
10081 2000-08-11 Richard Henderson <rth@cygnus.com>
10082
10083 * function.c (put_reg_into_stack): Allow type to be NULL.
10084 (schedule_fixup_var_refs): Likewise.
10085 (gen_mem_addressof): Allow decl to be NULL.
10086 (put_addressof_into_stack): Likewise.
10087
10088 * flow.c (merge_blocks_nomove): Be more careful about
10089 locating the beginning of block A.
10090
10091 * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
10092
10093 Thu Aug 10 22:47:09 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10094
10095 * configure.in:
10096 * configure:
10097 * gthr-posix.h:
10098 * config.in: Reverted the check for <sched.h>.
10099
10100 2000-08-10 Chris Demetriou <cgd@sibyte.com>
10101
10102 * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
10103 macros define the name of CTOR and DTOR sections.
10104 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
10105 DTOR_LIST_END): Change to use attributes to specify
10106 sections.
10107 * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
10108 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
10109 DTOR_LIST_END): Same as in mips/elf.h.
10110
10111 2000-08-10 Drew Moseley <dmoseley@redhat.com>
10112
10113 * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
10114 disabling just crt0.o.
10115
10116 2000-08-10 Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton <nickc@cygnus.com>
10117
10118 * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
10119 (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
10120 (EXTRA_SPECS): Add them.
10121 * arm/lib1funcs.asm: Support builds for interworking.
10122 Use macros to eliminate duplicated pieces of code.
10123
10124 2000-08-10 Kazu Hirata <kazu@hxi.com>
10125
10126 * h8300.c (expand_a_rotate): New.
10127 (emit_a_rotate): Likewise.
10128 (h8300_adjust_insn_length): Add support for the rotate insns.
10129 * h8300.md (rotlqi3): New.
10130 (*rotlqi3_1): Likewise.
10131 (rotlhi3): Likewise.
10132 (*rotlhi3_1): Likewise.
10133 (rotlhi3): Likewise.
10134 (*rotlhi3_1): Likewise.
10135 * h8300-proto.h: Add prototypes for expand_a_rotate and
10136 emit_a_rotate.
10137
10138 * h8300.c: Fix comment typos.
10139 (dosize): Declare the variable amount as unsigned.
10140 (get_shift_alg): Fix a comparison between signed and unsigned.
10141 (emit_a_shift): Likewise.
10142 (h8300_adjust_insn_length): Simplify the code.
10143
10144 * c-decl.c: Fix formatting.
10145
10146 2000-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10147
10148 * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
10149 warning about non-traditional numeric constant suffixes.
10150
10151 * cppexp.c (parse_number): Likewise.
10152
10153 * invoke.texi: (-Wtraditional): Document new behavior.
10154
10155 Thu Aug 10 00:11:04 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10156
10157 * gthr-posix.h: Include auto-host.h. Conditionally include
10158 <sched.h>.
10159 * configure.in: Check for the <sched.h> header file.
10160 * config.in: Added define for HAVE_SCHED_H.
10161
10162 2000-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10163
10164 * c-typeck.c (process_init_element): For -Wtraditional, warn about
10165 initialization of unions.
10166
10167 * invoke.texi (-Wtraditional): Document new behavior.
10168
10169 2000-08-09 Zack Weinberg <zack@wolery.cumb.org>
10170
10171 * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE
10172 instead of extra_c_flags.
10173 (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
10174 * configure: Regenerate.
10175 * config.in: Regenerate.
10176
10177 * cpperror.c (cpp_type2name): New function.
10178 * cpplex.c (lex_line): If we issued an error for an invalid
10179 preprocessing directive, discard that logical line.
10180 * cpplib.c (do_line): Call a hook function if the current file
10181 is renamed by #line.
10182 (do_ident): Pass the contents of the string, not the entire
10183 token, to the callback function.
10184 * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
10185 (cb.rename_file): New hook function.
10186 (cb.ident): Adjust prototype.
10187 (cpp_type2name): Prototype.
10188 * cppmacro.c (dump_macro_args): Correct precedence lossage.
10189
10190 * cppmain.c (cb_ident): Update for changed interface.
10191 (cb_rename_file): New function.
10192 (main): Set rename callback.
10193
10194 2000-08-09 Alexandre Oliva <aoliva@redhat.com>
10195
10196 * caller-save.c (mark_referenced_regs): Mark partially-overwritten
10197 multi-word registers.
10198
10199 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
10200
10201 * c-common.c (combine_strings, check_format_info): Refer to ISO C
10202 or ISO C89 instead of ANSI C.
10203 * c-decl.c (grokdeclarator, xref_tag, finish_struct,
10204 build_enumerator, do_case): Likewise.
10205 * c-lex.c (parse_float, yylex): Likewise.
10206 * c-parse.in: Likewise.
10207 * c-typeck.c (common_type, build_array_ref, build_binary_op,
10208 build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
10209 build_c_cast, convert_for_assignment, set_init_index,
10210 set_init_label, c_expand_start_case): Likewise.
10211 * toplev.c (documented_lang_options, display_help): Likewise.
10212
10213 2000-08-08 Kazu Hirata <kazu@hxi.com>
10214
10215 * h8300.c: Fix formatting.
10216 * h8300.h: Likewise.
10217 * h8300.md: Likewise.
10218 (movsi_h8300hs): Fix formatting of the resulting assembly code.
10219
10220 * reload1.c: Fix formatting.
10221
10222 2000-08-08 Rodney Brown <RodneyBrown@mynd.com>
10223
10224 * alpha/alpha.c (alpha_emit_xfloating_libcall):
10225 Use GEN_CALL_VALUE define.
10226 * alpha/alpha.md (untyped_call): Use GEN_CALL define.
10227 * clipper/clipper.md (untyped_call): Likewise.
10228 * dsp16xx/dsp16xx.md (untyped_call): Likewise.
10229 * fx80/fx80.md (untyped_call): Likewise.
10230 * mips/mips.md (untyped_call): Likewise.
10231 * ns32k/ns32k.md (untyped_call): Likewise.
10232 * pa/pa.md (untyped_call): Likewise.
10233 * romp/romp.md (untyped_call): Likewise.
10234 * sparc/sparc.md (untyped_call): Likewise.
10235
10236 2000-08-08 Jason Eckhardt <jle@cygnus.com>
10237
10238 * config/i860/i860.c (singlemove_string): Do not generate assembler
10239 pseudo instructions that must be expanded (that is, with signed
10240 constants larger than 16 bits).
10241
10242 2000-08-08 Richard Henderson <rth@cygnus.com>
10243
10244 * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
10245 PROP_AUTOINC at -O0. Don't collect alias info at -O0.
10246 (init_propagate_block_info): Don't kill memory stores at -O0.
10247 (mark_set_1, mark_used_regs): Likewise.
10248
10249 2000-08-08 David Edelsohn <edelsohn@gnu.org>
10250
10251 * rs6000.c (optimization_options): Decorate 'level' as
10252 ATTRIBUTE_UNUSED.
10253 (mask64_operand): Remove sign-extend thinko.
10254 (rldic_operand): New function.
10255 (load_multiple_operation): regno's are unsigned ints.
10256 (store_multiple_operation): Likewise.
10257 (lmw_operation): Likewise.
10258 (stmw_operation): Likewise.
10259 (includes_lshift_p): shift_mask is unsigned int.
10260 (includes_lshift64_p): New function.
10261 (addrs_ok_for_quad_peep): unsigned int reg1.
10262 (print_operand): Consistently add "else" after
10263 output_operand_lossage().
10264 (print_operand, case 'b'): Fold in case 'W'.
10265 (print_operand, case 'W'): Print rldic MB value.
10266 (output_epilogue): Update Objective-C language string.
10267 (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
10268 * rs6000.h (PREDICATE_CODES): Add rldic_operand.
10269 * rs6000.md (ashldi3): Add rldic instruction.
10270 (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
10271 (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
10272 modifier.
10273
10274 2000-08-08 Richard Henderson <rth@cygnus.com>
10275
10276 * config/ia64/ia64-protos.h: Remove duplicates. Update
10277 for massive code rearrangements.
10278 * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
10279 (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
10280 (ia64_local_regs, ia64_need_regstk): Remove.
10281 (ar_ccv_reg_operand): New.
10282 (ia64_gp_save_reg): New.
10283 (struct ia64_frame_info): Combine most of the size elements;
10284 add new gr save elements.
10285 (find_gr_spill): New.
10286 (next_scratch_gr_reg): New.
10287 (mark_reg_gr_used_mask): New.
10288 (ia64_compute_frame_size): Rewrite. Allocate special AR regs
10289 to GR backing store regs when possible.
10290 (ia64_initial_elimination_offset): New.
10291 (ia64_rap_fp_offset): Remove.
10292 (save_restore_insns): Remove.
10293 (setup_spill_pointers): New.
10294 (finish_spill_pointers): New.
10295 (spill_restore_mem): New.
10296 (do_spill, do_restore): New.
10297 (ia64_expand_prologue): Rewrite to use them.
10298 (ia64_expand_epilogue): Likewise.
10299 (ia64_direct_return): Update for current_frame_info changes.
10300 (ia64_function_prologue): Simplify .prologue emission. Emit
10301 .spill when needed.
10302 (ia64_setup_incoming_varargs): Don't ever emit rtl.
10303 (ia64_dbx_register_number): New.
10304 (ia64_initialize_trampoline): New.
10305 (ia64_secondary_reload_class): Request GR_REGS for integer
10306 arithmetic destined for FR_REGS.
10307 (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
10308 (ia64_mark_machine_status): Mark ia64_gp_save.
10309 (rws_access_regno): Rename from rws_access_reg; don't treat
10310 predicates specially.
10311 (rws_access_reg): New. Update all callers.
10312 (rtx_needs_barrier): Remove dead unspecs.
10313 (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
10314 (ia64_encode_section_info): Silence signed/unsigned warnings.
10315 (spill_offset, sp_offset, spill_offset_emitted): Remove.
10316 (tmp_reg, tmp_saved): Remove.
10317 (process_set): Rewrite to expect complicated bits via
10318 REG_FRAME_RELATED_EXPR.
10319 (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
10320 in the use of ar.ccv; never set RTX_UNCHANGING_P.
10321 (ia64_expand_op_and_fetch): Likewise.
10322 (ia64_expand_compare_and_swap): Likewise.
10323 (ia64_expand_builtin): Likewise.
10324 * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
10325 (FIRST_PSEUDO_REGISTER): Update.
10326 (AR_M_REGNO_P): Update.
10327 (FIXED_REGS): Don't mark three local registers as used.
10328 (EXTRA_CC_MODES): New.
10329 (SELECT_CC_MODE): New.
10330 (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
10331 (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
10332 (FRAME_GROWS_DOWNWARD): Unset.
10333 (STARTING_FRAME_OFFSET): Zero.
10334 (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
10335 (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
10336 (HARD_FRAME_POINTER_REGNUM): New.
10337 (CAN_DEBUG_WITHOUT_FP): Define.
10338 (TRAMPOLINE_TEMPLATE): Remove.
10339 (TRAMPOLINE_SIZE): Lower to 32.
10340 (TRAMPOLINE_ALIGNMENT): Lower to 64.
10341 (INITIALIZE_TRAMPOLINE): Defer to out of line function.
10342 (PREDICATE_CODES): Update.
10343 (struct machine_function): Add ia64_gp_save.
10344 * config/ia64/ia64.md: Purge unused unspecs.
10345 (movsi patterns): Allow moves to/from AR_M_REGS.
10346 (movdi patterns): Allow moves to/from p0.
10347 (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
10348 (gr_spill, gr_restore): Indicate ar.unat read/written.
10349 (nonlocal_goto): Don't pass old frame_pointer.
10350 (nonlocal_goto_receiver): Remove.
10351 (exception_receiver): New.
10352 (builtin_setjmp_setup): New.
10353 (builtin_setjmp_receiver): New.
10354 * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
10355 (__ia64_nonlocal_goto): Bundle. Don't kill r7.
10356 (__ia64_restore_stack_nonlocal): Likewise.
10357 (__ia64_trampoline): New.
10358 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
10359 function.
10360 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
10361
10362 2000-08-08 Richard Henderson <rth@cygnus.com>
10363
10364 * frame.h (ia64_frame_state): Add my_psp.
10365 * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
10366 (__throw): Pass it in. Don't clobber r7.
10367 * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
10368 (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
10369 and nothing to do with sp.
10370 (normalize_reg_loc): Use frame->my_psp.
10371 (frame_translate): Handle frame-pointer-less functions. Set
10372 spill_base correctly, in absence of being told.
10373 (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp.
10374 (__ia64_backtrace_helper): New sp argument. Use
10375 builtin_return_address instead of label addresses.
10376 (print_record) [mem_stack_v]: No size member.
10377
10378 2000-08-08 Richard Henderson <rth@cygnus.com>
10379
10380 * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
10381
10382 2000-08-08 Richard Henderson <rth@cygnus.com>
10383
10384 * tm.texi (LOCAL_REGNO): Document.
10385 * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
10386 (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
10387 * reload1.c (reload): Likewise when considering nonlocal labels.
10388
10389 * config/ia64/ia64.h (LOCAL_REGNO): New.
10390 * config/sparc/sparc.h (LOCAL_REGNO): New.
10391
10392 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
10393
10394 * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
10395
10396 2000-08-07 Nick Clifton <nickc@redhat.com>
10397
10398 * config/mips/mips.c: Fix compile time warning messages.
10399 * config/mips/mips-protos.h: Add prototype for equality_op.
10400
10401 * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
10402
10403 2000-08-07 Graham Stott <grahams@cygnus.co.uk>
10404
10405 * mn10300.md: Use nonimmediate_operand instead of general_operand
10406 on output operands.
10407
10408 * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
10409
10410 2000-08-07 Alexandre Oliva <aoliva@redhat.com>
10411
10412 * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
10413 * sh.c (expand_block_move): Break long lines.
10414 (expand_ashiftrt, fpscr_set_from_mem): Likewise.
10415 * sh.md (mulsi3): Likewise.
10416 (movdi): Adjust spacing.
10417
10418 2000-08-07 Richard Henderson <rth@cygnus.com>
10419
10420 * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
10421 * expr.c (emit_group_store): Don't set it.
10422
10423 2000-08-07 Kazu Hirata <kazu@hxi.com>
10424
10425 * invoke.texi (Options for Debugging Your Program or GCC): Remove
10426 duplicate entries for 'w' and 'z'.
10427
10428 * flow.c: Fix a comment typo.
10429
10430 Sun Aug 6 23:47:35 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10431
10432 * c-parse.in: Changed the language string for Objective-C to "GNU
10433 Objective-C".
10434
10435 Sun Aug 6 11:54:03 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10436
10437 * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
10438 to improve the Posix thread support for Objective-C.
10439
10440 2000-08-06 Joseph S. Myers <jsm28@cam.ac.uk>
10441
10442 * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
10443 CTI_UNSIGNED_PTRDIFF_TYPE.
10444 (signed_size_type_node): Define.
10445 (unsigned_ptrdiff_type_node): Define.
10446 * c-decl.c (init_decl_processing): Create the
10447 signed_size_type_node and unsigned_ptrdiff_type_node types.
10448 * c-common.c (T_SC): Define.
10449 (T_SST): Define.
10450 (T_UPD): Define.
10451 (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for
10452 %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for
10453 %s and %p.
10454 (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for
10455 %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the
10456 flags for %c, %s and %[.
10457 (check_format_info): Only allow leniency for signedness of targets
10458 of character pointers (when pedantic) for formats flagged with
10459 "c", so for strings but not for %hh formats. When pedantic, don't
10460 allow character pointers to substitute for void pointers if a
10461 second level of indirection is present.
10462
10463 2000-08-06 Kazu Hirata <kazu@hxi.com>
10464
10465 * invoke.texi (Options for Debugging Your Program or GCC): Update
10466 the names of dump files.
10467
10468 * h8300.c (dosize): Rearrange code for conciseness.
10469 (split_adds_subs): Likewise.
10470
10471 * loop.c: Fix formatting.
10472
10473 * dwarf2out.c: Fix formatting.
10474
10475 * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
10476
10477 * expr.c: Fix formatting.
10478
10479 2000-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10480
10481 * rs6000.c (rs6000_maybe_dead): Prototype.
10482
10483 2000-08-06 Richard Henderson <rth@cygnus.com>
10484
10485 * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
10486 HAVE_nonlocal_goto as well.
10487 * config/i960/i960.md (nonlocal_goto): Don't do it here.
10488 * config/pj/pj.md (nonlocal_goto): Likewise.
10489
10490 2000-08-07 Michael Hayes <mhayes@cygnus.com>
10491
10492 * loop.c (try_swap_copy_prop): New function.
10493 (load_mems): Rename copies to load_copies and add new regset
10494 store_copies. Check for sets of shadow registers and mark
10495 in store_copies. Call try_swap_copy_prop for registers
10496 marked in store_copies.
10497
10498 Sun Aug 6 00:54:42 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
10499
10500 * objc/objc-act.c: New command line option -fconstant-string-class
10501 to allow specifying a user defined constant string class,
10502 different from NXConstantString.
10503
10504 * toplev.c: Moved the Objective-C specific options to
10505 objc/lang-options.h.
10506
10507 * objc/lang-options.h: Moved the Objective-C specific options from
10508 toplev.c. Added -fconstant-string-class.
10509
10510 2000-08-05 Chris Demetriou <cgd@sibyte.com>
10511
10512 * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
10513 DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
10514 __CTOR_LIST__ from func_ptr array to just func_ptr, to
10515 avoid extra alignment imposed on arrays.
10516 * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
10517 DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
10518
10519 * mips.h: Clean up comments and spacing near MASKs.
10520 (TARGET_UNIX_ASM): Delete.
10521 (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
10522 MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
10523 values contiguous.
10524
10525 2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk>
10526
10527 * c-common.c (print_char_table): Add entries for the X/Open '
10528 format flag (print decimals with locale's thousands grouping
10529 character). Make %C expect wint_t.
10530 (check_format_info): If pedantic, warn when the %n$ operand
10531 number form is used. Allow for the ' flag; warn about it if
10532 pedantic.
10533
10534 2000-08-05 Zack Weinberg <zack@wolery.cumb.org>
10535
10536 * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return
10537 type is a float mode, cfun->decl's return type is not, and
10538 TARGET_FLOAT_RETURNS_IN_80387.
10539
10540 2000-08-04 Andreas Schwab <schwab@suse.de>
10541
10542 * cppmain.c (cb_def_pragma): Skip the first two tokens from the
10543 token list, which are always `#' and `pragma'.
10544
10545 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
10546
10547 * tree.c (tree_expr_nonnegative_p): Move to...
10548 * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR.
10549 (rtl_expr_nonnegative_p): New.
10550 * tree.h: Add prototype for rtl_expr_nonnegative_p.
10551
10552 * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
10553 CONST_DOUBLE_CHAIN: Move to...
10554 * rtl.h: ...here. Use XCINT/XCEXP.
10555
10556 * Makefile.in: Remove toplev.o from OBJS. Add rule to make
10557 libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND
10558 variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND
10559 to VOL_FILES.
10560
10561 * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
10562
10563 2000-08-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10564
10565 * config/c4x/c4x.md (return_indirect_internal): New.
10566 * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
10567
10568 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10569
10570 * c-common.c (time_char_table): Mark up formats added in C99 and
10571 make other corrections. %D and %g were added in C99. %Og is an
10572 extension. %EX is permitted. %R, %T, %n, %r, %t were added in
10573 C99. %e was added in C99. %Oj is an extension. %G and %z are in
10574 C99 rather than GNU extensions, but %OG and %Oz are extensions.
10575 %h was added in C99. %C was added in C99. %OY and %OC are
10576 extensions. Add the C99 format %F.
10577 (check_format_info): If pedantic and not in C99 mode, warn for C99
10578 formats, %E and %O.
10579
10580 Fri Aug 4 23:01:58 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10581
10582 * function.c (schedule_fixup_var_refs): New function, broken out
10583 of put_reg_into_stack.
10584 (put_reg_into_stack): Use it.
10585 (put_var_into_stack): In CONCAT case, fixup up references for
10586 components only after fixing up references to the whole concat.
10587
10588 2000-08-04 Rodney Brown <RodneyBrown@pmsc.com>
10589
10590 * alias.c (mark_constant_function): Use INSN_P.
10591 (init_alias_analysis): Likewise.
10592 * combine.c (combine_instructions): Use INSN_P.
10593 (can_combine_p): Likewise.
10594 (try_combine): Likewise.
10595 (distribute_notes): Likewise.
10596 (distribute_links): Likewise.
10597 * cse.c (cse_around_loop): Use INSN_P.
10598 (invalidate_skipped_block): Likewise.
10599 (cse_set_around_loop): Likewise.
10600 (cse_end_of_basic_block): Likewise.
10601 (delete_trivially_dead_insns): Likewise.
10602 * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
10603 (unshare_all_rtl_1): Likewise.
10604 (next_cc0_user): Likewise.
10605 (try_split make_insn_raw): Likewise.
10606 (remove_unnecessary_notes): Likewise.
10607 * final.c (shorten_branches): Use INSN_P.
10608 (leaf_renumber_regs): Likewise.
10609 (leaf_renumber_regs_insn): Likewise.
10610 * flow.c (find_label_refs): Use INSN_P.
10611 (verify_wide_reg): Likewise.
10612 (notice_stack_pointer_modification): Likewise.
10613 (count_or_remove_death_notes): Likewise.
10614 (verify_flow_info): Likewise.
10615 (clear_log_links): Likewise.
10616 * function.c (fixup_var_refs_insns): Use INSN_P.
10617 (compute_insns_for_mem): Likewise.
10618 * gcse.c (alloc_gcse_mem): Use INSN_P.
10619 (compute_sets): Likewise.
10620 (compute_hash_table): Likewise.
10621 (classic_gcse): Likewise.
10622 (cprop): Likewise.
10623 (insert_insn_end_bb): Likewise.
10624 (delete_null_pointer_checks_1): Likewise.
10625 * global.c (expand_preferences): Use INSN_P.
10626 (build_insn_chain): Likewise.
10627 * graph.c (node_data): Use INSN_P.
10628 * haifa-sched.c (priority): Use INSN_P.
10629 (rm_line_notes): Likewise.
10630 (rm_other_notes): Likewise.
10631 (find_insn_reg_weight): Likewise.
10632 (init_target_units): Likewise.
10633 (schedule_block): Likewise.
10634 (compute_block_forward_dependences): Likewise.
10635 (debug_dependencies): Likewise.
10636 (set_priorities): Likewise.
10637 * integrate.c (function_cannot_inline_p): Use INSN_P.
10638 (save_parm_insns): Likewise.
10639 (copy_insn_list): Likewise.
10640 * jump.c (mark_all_labels): Use INSN_P.
10641 (never_reached_warning): Likewise.
10642 * lcm.c (optimize_mode_switching): Use INSN_P.
10643 * local-alloc.c (validate_equiv_mem): Use INSN_P.
10644 (memref_used_between_p): Likewise.
10645 (update_equiv_regs): Likewise.
10646 (block_alloc): Likewise.
10647 (no_conflict_p): Likewise.
10648 * loop.c (scan_loop): Use INSN_P.
10649 (find_and_verify_loops): Likewise.
10650 (count_loop_regs_set): Likewise.
10651 (loop_reg_used_before_p): Likewise.
10652 (strength_reduce): Likewise.
10653 (recombine_givs): Likewise.
10654 (check_dbra_loop): Likewise.
10655 (load_mems): Likewise.
10656 (try_copy_prop): Likewise.
10657 * print-rtl.c (print_rtx): Use INSN_P.
10658 * recog.c (find_single_use): Use INSN_P.
10659 * reg-stack.c (stack_regs_mentioned): Use INSN_P.
10660 (next_flags_user): Likewise.
10661 (swap_rtx_condition): Likewise.
10662 * regmove.c (mark_flags_life_zones): Use INSN_P.
10663 (optimize_reg_copy_1): Likewise.
10664 (optimize_reg_copy_2): Likewise.
10665 (optimize_reg_copy_3): Likewise.
10666 (reg_is_remote_constant_p): Likewise.
10667 (fixup_match_2): Likewise.
10668 (regmove_optimize): Likewise.
10669 (fixup_match_1): Likewise.
10670 * regrename.c (build_def_use): Use INSN_P.
10671 (replace_reg_in_block): Likewise.
10672 (consider_use): Likewise.
10673 * reload.c (find_equiv_reg): Use INSN_P.
10674 * reload1.c (reload): Use INSN_P.
10675 (maybe_fix_stack_asms): Likewise.
10676 (calculate_needs_all_insns): Likewise.
10677 (reload_as_needed): Likewise.
10678 (emit_output_reload_insns): Likewise.
10679 (delete_address_reloads_1): Likewise.
10680 (reload_cse_regs_1): Likewise.
10681 (reload_combine): Likewise.
10682 (reload_cse_move2add): Likewise.
10683 * reorg.c (redundant_insn): Use INSN_P.
10684 (dbr_schedule): Likewise.
10685 * resource.c (find_dead_or_set_registers): Use INSN_P.
10686 (mark_target_live_regs): Likewise.
10687 * rtlanal.c (reg_used_between_p): Use INSN_P.
10688 (reg_referenced_between_p): Likewise.
10689 (reg_set_between_p): Likewise.
10690 (reg_set_p): Likewise.
10691 (single_set): Likewise.
10692 (multiple_sets): Likewise.
10693 (find_last_value): Likewise.
10694 (reg_set_last): Likewise.
10695 (find_reg_note): Likewise.
10696 (find_regno_note): Likewise.
10697 * sibcall.c (sequence_uses_addressof): Use INSN_P.
10698 * simplify-rtx.c (cselib_process_insn): Use INSN_P.
10699 * ssa.c (find_evaluations): Use INSN_P.
10700 (rename_block): Likewise.
10701 (rename_equivalent_regs): Likewise.
10702 * unroll.c (loop_find_equiv_value): Use INSN_P.
10703 (set_dominates_use): Likewise.
10704 * varasm.c (mark_constant_pool): Use INSN_P.
10705 (mark_constants): Likewise.
10706 * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
10707 (alphaev4_next_group): Likewise.
10708 (alphaev5_next_group): Likewise.
10709 * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
10710 (c4x_rptb_rpts_p): Likewise.
10711 * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
10712 * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
10713 (rs6000_adjust_priority): Likewise.
10714 * config/sh/sh.c (sh_loop_align): Use INSN_P.
10715 (machine_dependent_reorg): Likewise.
10716 (split_branches): Likewise.
10717 * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
10718
10719 Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com)
10720
10721 * combine.c (recog_for_combine): Remove the old notes
10722 prior to attempting to recognize the new pattern.
10723 (distribute_notes): Ignore REG_NONNEG notes.
10724
10725 2000-08-04 Chandrakala Chavva <cchavva@redhat.com>
10726
10727 * varasm.c (output_constructor): Add .align 0 for packed vars.
10728
10729 2000-08-04 J. David Anglin <dave@hiauly1.hia.nrc.ca>
10730
10731 * configure.in: Use default thread_file even when enable_threads is
10732 yes or dce because hpux10.20 pa port uses MULTILIB implementation.
10733 * configure: Rebuilt.
10734
10735 * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
10736
10737 2000-08-04 Donn Terry (donnte@microsoft.com)
10738
10739 * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
10740
10741 2000-08-04 Mark Elbrecht <snowball3@bigfoot.com>
10742
10743 * i386/x-djgpp: Delete code that conditionally modifies target_alias.
10744 Delete code that conditionally modifies 'version'.
10745 Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
10746 * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
10747 * gcc.c (main): Use it.
10748 * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
10749 * prefix.c (update_path): Use it.
10750 * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
10751 (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
10752 (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
10753 code.
10754 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
10755 (SUBTARGET_SWITCHES): Adjust.
10756 (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
10757 defining.
10758 (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
10759
10760 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10761
10762 * c-common.h (flag_isoc94): Declare.
10763 * c-decl.c (flag_isoc94): Define.
10764 (c_decode_option): Set flag_isoc94 as appropriate.
10765 * c-common.c (T_PD, T_IM, T_UIM): Define.
10766 (format_char_info): Add tlen and jlen.
10767 (print_char_table): Add entries for %t and %j. Allow %zn. Allow
10768 %F. Allow %lf.
10769 (scan_char_table): Add entries for %t and %j. Allow %F. Allow
10770 %l[.
10771 (time_char_table): Add NULL entries for %t and %j.
10772 (check_format_info): Allow for %t and %j. Warn for %F if pedantic
10773 and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94.
10774 Warn for printf %lf if pedantic and not C99. Don't warn for empty
10775 precision. Allow precision argument to be unsigned int. If
10776 pedantic, warn for %p passed an argument not a pointer to possibly
10777 qualified void or a possibly qualified character type, and for
10778 pointer targets of the wrong sign, except for character pointers.
10779
10780 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10781
10782 * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
10783 * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
10784 (wint_type_node): Define.
10785 * c-decl.c (WINT_TYPE): Define.
10786 (init_decl_processing): Create the wint_type_node type.
10787 * c-common.c (T_WI): Define.
10788 (print_char_table): Use T_WI for %lc format.
10789
10790 2000-08-04 Bruce Korb <bkorb@gnu.org>
10791
10792 * fixinc/: Verified that the MSDOS patch does not break
10793 the UNIX functionality and applied the next three patches
10794 from July:
10795
10796 2000-07-28 Eli Zaretskii <eliz@is.elta.co.il>
10797
10798 * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
10799 output file with the temporary one by appending ".X" to generate
10800 the temporary fuile's name. If the output file already has an
10801 extension, replace it with ".X".
10802
10803 * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
10804 not $DESTDIR, to find applyfix. Use sprintf instead of snprintf;
10805 reallocate the command buffer while copying the command-line
10806 argument. Redirect the output directly to the temporary file,
10807 instead of going through another temporary file.
10808 (process): Close the temporary file before unlinking it.
10809 (machine_matches) [__MSDOS__]: If the machine doesn't match, set
10810 the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag.
10811 (run_compiles): Pass p_fixd argument to machine_matches, as it
10812 expects.
10813
10814 * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the
10815 environment, assume there are no symlinks in the include
10816 directory. When cleaning up the DONE files, look for them
10817 case-insensitively. Don't try to remove symlinks if they aren't
10818 there.
10819
10820 * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
10821 all callers changed. Declare pz "const char *", to avoid compiler
10822 warnings.
10823
10824 * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
10825 Change prototype of make_raw_shell_str.
10826
10827 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
10828
10829 * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
10830 (initialize) [__MSDOS__]: Use tempnam.
10831 (initialize): Don't use SIGPIPE if it is not defined.
10832
10833 * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
10834 return stdout.
10835
10836 2000-07-25 Bruce Korb <bkorb@gnu.org>
10837
10838 * fixinc/fix*.[ch]: substantially reworked to make it possible
10839 to run this program without using fork(2) or pipe(2) (i.e. in
10840 a DOS environment).
10841
10842 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10843
10844 * cppdefault.h (WINT_TYPE): Define.
10845 * cppinit.c (builtin_array): Define __WINT_TYPE__.
10846 * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
10847 * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
10848
10849 Fri Aug 4 06:53:46 2000 Clinton Popetz <cpopetz@cygnus.com>
10850
10851 * (mips_legitimate_address_p): Don't allow register+offset
10852 if the offset is large and negative, and we are compiling
10853 for 64 bit registers.
10854
10855 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10856
10857 * gencodes.c (main): Define CODE_FOR_nothing as the last possible
10858 insn_code_number + 1.
10859
10860 2000-08-04 Kazu Hirata <kazu@hxi.com>
10861
10862 * h8300.c (function_prologue): Rearrange code for conciseness.
10863 (function_epilogue): Likewise.
10864 * h8300.h (OK_FOR_U): Fix formatting.
10865
10866 * cse.c: Fix a comment typo. Fix formatting.
10867
10868 2000-08-03 Richard Henderson <rth@cygnus.com>
10869
10870 * config/i386/i386.md (return_indirect_internal): New.
10871 * config/i386/i386.c (ix86_expand_epilogue): Use it.
10872
10873 2000-08-03 Zack Weinberg <zack@wolery.cumb.org>
10874
10875 * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
10876 before the name.
10877 (lex_line): Glue @ onto the beginning of identifiers and
10878 string constants, in Objective-C mode.
10879 (output_token, spell_token): Handle CPP_OSTRING.
10880 (can_paste, maybe_paste_with_next): Handle pasting @ onto the
10881 beginning of a NAME or a STRING, in objc mode.
10882
10883 * cpplib.c (get_define_node): Do not permit identifiers that
10884 begin with @ to be #defined.
10885 * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
10886 * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
10887
10888 * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
10889 * c-tree.h (build_objc_string): Delete prototype.
10890 * objc/objc-tree.def: Delete OBJC_STRING_CST.
10891 * c-lex.c (yylex): Use build_string for all three kinds of strings.
10892
10893 * c-parse.in, objc/objc-act.c: Update commentary.
10894
10895 2000-08-03 Mark Mitchell <mark@codesourcery.com>
10896
10897 * extend.texi: Fix typo in last change.
10898
10899 * extend.texi: Add commentary on statement-expressions and their
10900 interactions with C++.
10901
10902 2000-08-03 Nick Clifton <nickc@cygnus.com>
10903
10904 * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
10905 * dwarf.h (LANG_JAVA): Change value to 0x000b.
10906
10907 2000-08-03 Anthony Green <green@cygnus.com>
10908
10909 * dwarf2out.c (gen_compile_unit_die): Add java language support.
10910 (add_bound_info): Check for java language.
10911 (is_java): New function.
10912 * dwarfout.c (output_compile_unit_die): Ditto.
10913 * dwarf.h (dwarf_source_language): Add java source language type.
10914 * dwarf2.h (dwarf_source_language): Ditto.
10915
10916 Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
10917
10918 * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap
10919 operands.
10920
10921 * i386.c (ix86_expand_branch): Mode of comparison in
10922 IF_THEN_ELSE is VOIDmode.
10923
10924 Thu Aug 3 10:05:53 2000 Akiko Matsushita <matusita@sra.co.jp>
10925
10926 * gengenrtl.c, rtl.c: Avoid #elif.
10927
10928 2000-08-03 Michael Poole <poole@troilus.org>
10929
10930 * tm.texi (Register Classes): Clarify order of sub-initializers
10931 in REG_CLASS_CONTENTS.
10932
10933 Thu Aug 3 15:53:03 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10934
10935 From SAITOH Masanobu:
10936 * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
10937
10938 2000-08-03 David Billinghurst <David.Billinghurst@riotinto.com.au>
10939
10940 * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
10941 is not supported by tradcpp and isn't actually needed for cygwin.
10942
10943 2000-08-03 Kazu Hirata <kazu@hxi.com>
10944
10945 * h8300.c: Fix a comment typo.
10946 * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
10947
10948 * jump.c: Fix formatting.
10949
10950 * toplev.c: Fix formatting.
10951
10952 Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com)
10953
10954 * flow.c (find_auto_inc): Verify that we've got a REG before
10955 peeking at its regno. Fail, don't abort if we can't find
10956 the increment of the desired register.
10957
10958 * pa.md (shadd height reduction patterns/splitters): Remove.
10959
10960 2000-08-02 Jim Wilson <wilson@cygnus.com>
10961
10962 * config/ia64/ia64-protos.h (flag_ssa): Declare.
10963 * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
10964
10965 2000-08-02 Mark Mitchell <mark@codesourcery.com>
10966
10967 * dce.c: Remove all uses of assert.
10968 * dwarf2out.c: Likewise.
10969 * dwarfout.c: Likewise.
10970 * ssa.c: Likewise.
10971
10972 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
10973
10974 * gcc.h (lang_specific_driver): Constify second argument.
10975 * gcc.c (translate_options, process_command, main): Likewise.
10976 Constify variables to match. Cast second argument to
10977 pexecute.
10978
10979 * cppspec.c, gccspec.c: Adjust type of second argument to
10980 lang_specific_driver, and update code as necessary.
10981
10982 2000-08-02 Jakub Jelinek <jakub@redhat.com>
10983
10984 * loop.c (scan_loop): Ensure update_end label does not
10985 go away until reg_scan_update is run.
10986
10987 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
10988
10989 * c-common.h: Prototype min_precision and c_build_qualified_type here...
10990 * c-tree.h: ... not here.
10991 * errors.h: Prototype fancy_abort.
10992
10993 * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
10994 HOST_BITS_PER_WIDE_INT == 64 ifdef block.
10995 * regrename.c (regrename_optimize): Make control flow explicit.
10996 (replace_reg_in_block): Initialize reg_use to 0.
10997
10998 * i386.c (legitimate_address_p): Rename error label to
10999 report_error to avoid namespace clash.
11000
11001 2000-08-02 Kazu Hirata <kazu@hxi.com>
11002
11003 * fold-const.c: Fix formatting.
11004
11005 Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka <jh@suse.cz>
11006
11007 * i386.c (legitimate_address_p): Accept other bases than
11008 pic_offset_table_rtx for GOTOFF constructs.
11009
11010 Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
11011
11012 * i386.md (shift to lea splitter): Use const_int_operand.
11013
11014 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
11015
11016 * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
11017 cppspec.c: Do not use 'legal' or 'illegal' in error messages
11018 and comments.
11019
11020 * cppmain.c (cb_define, cb_undef): Don't generate any output
11021 if not done_initializing.
11022 * cpplex.c (maybe_paste_with_next): When the token after a ##
11023 is an omitted rest argument, only delete the token before it
11024 if that token is a comma. Do not warn about bogus token
11025 pastes for , ## rest_arg.
11026
11027 * cpp.texi: Update.
11028 * cpp.1: Regenerate.
11029
11030 2000-08-02 Fred Fish <fnf@be.com>
11031
11032 * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
11033 when user gives -p option. Add init_term_dyn.o for BeOS 5.0
11034 and later.
11035
11036 * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
11037 Be directories to search path.
11038
11039 Remove support for __declspec(dllimport) and __declspec(dllexport).
11040 This is leftover cruft from the earlier BeOS gcc port when BeOS
11041 used Microsoft's PE object file format.
11042 * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
11043 * config/i386/t-beos (winnt.o): Remove Makefile frag.
11044 * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
11045 (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
11046 (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
11047 (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
11048 (REDO_SECTION_INFO_P): Remove.
11049 (ASM_EXPORT_DECL): Remove.
11050 (ASM_DECLARE_FUNCTION_NAME): Remove.
11051 (ASM_DECLARE_OBJECT_NAME): Remove.
11052 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
11053 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
11054 (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
11055 (STRIP_NAME_ENCODING): Remove.
11056
11057 Remove support for obsolete version of BeOS that is no longer
11058 supported by Be.
11059 * configure.in (i*86-*-beospe*): Remove.
11060 * config/i386/beos-pe.h: Remove.
11061
11062 2000-08-01 Jeffrey Oldham <oldham@codesourcery.com>
11063 Mark Mitchell <mark@codesourcery.com>
11064
11065 * Makefile.in (OBJS): Added dce.o.
11066 (ssa.o): Updated target to include ssa.h.
11067 (flow.o): Likewise.
11068 (toplev.o): Likewise.
11069 (dce.o): Created target.
11070 * basic-block.h: Added comments.
11071 (INVALID_BLOCK): Added definition.
11072 (connect_infinite_loops_to_exit): Added declaration.
11073 Moved SSA declarations to ssa.h.
11074 * flow.c: Added inclusion of ssa.h.
11075 (struct depth_first_search_dsS, depth_first_search_ds):
11076 Added definitions.
11077 (compute_immediate_postdominators): Added definition.
11078 (connect_infinite_loops_to_exit): Likewise.
11079 (flow_dfs_compute_reverse_init): Likewise.
11080 (flow_dfs_compute_reverse_add_bb): Likewise.
11081 (flow_dfs_compute_reverse_execute): Likewise.
11082 (flow_dfs_compute_reverse_finish): Likewise.
11083 * rtl.h (rtx/in_struct): Added use to determine insn necessity.
11084 (LABEL_P): Added definition.
11085 (JUMP_P): Likewise.
11086 (NOTE_P): Likewise.
11087 (BARRIER_P): Likewise.
11088 (JUMP_TABLE_DATA_P): Likewise.
11089 (INSN_DEAD_CODE_P): Likewise.
11090 * ssa.c: Replaced inclusions with ssa.h inclusion.
11091 (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
11092 (rename_registers): Removed unnecessary variables.
11093 * ssa.h: Created by moving declarations from ssa.c and
11094 basic-block.h.
11095 * timevar.def: Defined TV_DEAD_CODE_ELIM.
11096 * toplev.c: Added ssa.h inclusion.
11097 (dump_file_index): Added DFI_dce.
11098 (dump_file): Added "dce" entry.
11099 Defined flag_ssa.
11100 (f_options): Added dce entry.
11101 * invoke.texi: Document -fdce. Emphasize experimental status of
11102 -fssa.
11103 * dce.c: New file.
11104
11105 2000-08-01 Zack Weinberg <zack@wolery.cumb.org>
11106
11107 * cpperror.c (v_message): Split into _cpp_begin_message and
11108 v_message macro. All callers updated.
11109 (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
11110 checks here.
11111
11112 * cppfiles.c (cpp_syshdr_flags): New function.
11113 (read_include_file): Don't call cpp_output_tokens. Call
11114 enter_file hook.
11115 * cppinit.c (dump_macros_helper): Moved to cppmain.c.
11116 (cpp_reader_init): Don't initialize token_buffer. Call
11117 _cpp_init_internal_pragmas.
11118 (cpp_cleanup): Don't clear token_buffer.
11119 (cpp_start_read): Don't worry about output from -D processing.
11120 Don't call cpp_output_tokens.
11121 (cpp_finish): Don't dump macros here. Don't call
11122 cpp_output_tokens.
11123 * cppmacro.c (_cpp_dump_definition): Rename
11124 cpp_dump_definition. Write directly to a FILE *.
11125 (dump_funlike_macro): Delete.
11126 (dump_macro_args): New.
11127
11128 * cpplex.c (TOKEN_LEN): Convert to inline function.
11129 (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
11130 cpp_scan_line, _cpp_dump_list): Delete.
11131 (cpp_printf, cpp_output_list): New.
11132 (output_line_command): Don't worry about entering or leaving files.
11133 (cpp_scan_buffer): Just output each token as we hit it.
11134 (process_directive): Don't call cpp_output_tokens.
11135 (_cpp_glue_header_name): Don't use token_buffer.
11136 (output_token, dump_param_spelling): Write directly to a FILE *.
11137
11138 * cpplib.c (pass_thru_directive, dump_macro_name,
11139 pragma_dispatch, do_pragma_gcc): Delete.
11140 (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
11141 do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
11142 functions.
11143 (do_error, do_warning, pragma_dependency): Call
11144 _cpp_begin_message, then cpp_output_list.
11145 (cpp_register_pragma, cpp_register_pragma_space,
11146 _cpp_init_internal_pragmas): New.
11147 (do_pragma): Walk the pragmas table here.
11148 (do_pragma_once, do_pragma_poison, do_pragma_system_header,
11149 do_pragma_dependency): Return void.
11150 (do_pragma_implementation): Moved to cppmain.c.
11151
11152 * cpplib.h: Update prototypes.
11153 (struct cpp_reader): Remove printer, token_buffer,
11154 token_buffer_size, and limit. Add struct cb, and pragmas.
11155 (struct cpp_printer): Remove last_id and written.
11156 (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
11157 CPP_ADJUST_WRITTEN): Delete.
11158 * cpphash.h: Update prototypes.
11159 (ufputs): New wrapper.
11160
11161 * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
11162 cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
11163 (main): Set up callbacks. Register #pragma implementation.
11164 Dump macros from here.
11165
11166 2000-08-01 Geoff Keating <geoffk@cygnus.com>
11167
11168 * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
11169 * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
11170 * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
11171 insns if they have a REG_MAYBE_DEAD note attached.
11172 * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
11173 (rs6000_emit_load_toc_table): TOC loads may go dead.
11174
11175 2000-08-01 Jim Wilson <wilson@cygnus.com>
11176
11177 * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify
11178 type exists before using it. Use number of words as alignment
11179 otherwise.
11180 (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
11181 ia64_va_arg): Propagate ia64_function_args changes here.
11182
11183 2000-08-01 Richard Henderson <rth@cygnus.com>
11184
11185 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
11186 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
11187
11188 2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk>
11189
11190 From Joern Rennecke:
11191 * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
11192 * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
11193 unless TARGET_SH3E is set.
11194 * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
11195
11196 * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
11197 (ashlsi3_std): New pattern.
11198 (ashlsi3 expander): Use it for TARGET_SH3.
11199 * sh.c (gen_ashift): Use it instead of ashlsi3_k.
11200
11201 Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
11202
11203 * loop.c (canonicalize_condition): Use destination, not source to
11204 determine SET's mode.
11205
11206 2000-07-31 Mark Mitchell <mark@codesourcery.com>
11207
11208 * flow.c (clear_log_links): Fix typo.
11209
11210 Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com)
11211
11212 * loop.c (check_dbra_loop): Make change from July 17, 2000 work
11213 on targets which need more than one insn for a compare/cbranch
11214 operation.
11215
11216 2000-07-31 Jim Wilson <wilson@cygnus.com>
11217
11218 * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
11219 when computing offset.
11220
11221 Mon Jul 31 20:35:50 2000 Denis Chertykov <denisc@overta.ru>
11222
11223 * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
11224
11225 2000-07-31 Geoff Keating <geoffk@cygnus.com>
11226
11227 * flow.c (clear_log_links): Nuke global_live_at_start and
11228 global_live_at_end data, since if the log_links stuff is invalid
11229 so is global_live_at_*.
11230
11231 2000-07-31 Richard Henderson <rth@cygnus.com>
11232
11233 * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
11234
11235 2000-07-31 Jakub Jelinek <jakub@redhat.com>
11236
11237 * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
11238 (_cpp_get_token): Don't macro expand a just pasted token if it
11239 was pasted at no_expand_level.
11240
11241 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
11242
11243 * cppmacro.c (find_param, count_params, save_expansion):
11244 Permit 'defined' as a macro parameter name.
11245
11246 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
11247
11248 * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
11249 xcpp to cpp throughout.
11250 (native): Remove unnecessary dependency on cpp.
11251
11252 * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
11253 tradcpp to tradcpp0.
11254 (.i spec): Add missing output-file spec to cc1 command line.
11255 * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
11256
11257 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
11258
11259 * c-decl.c (mesg_implicit_function_declaration): Init to -1.
11260 (implicit_decl_warning): New function.
11261 (implicitly_declare): Use it.
11262 * c-typeck.c (build_external_ref): Use implicit_decl_warning
11263 to complain about implicit decls of builtins.
11264
11265 * c-lang.c (lang_init): Set mesg_implicit_function_declaration
11266 based on pedantic && flag_isoc99, if not already set.
11267 * c-tree.h: Declare mesg_implicit_function_declaration.
11268 Prototype implicit_decl_warning.
11269
11270 2000-07-30 Jeffrey D. Oldham <oldham@codesourcery.com>
11271
11272 * Makefile.in (ssa.o): Updated header files in dependences.
11273 * basic-block.h: Added compute_immediate_postdominators declaration.
11274 * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
11275 definition.
11276 * flow.c (compute_immediate_dominators): Updated comment.
11277 (compute_immediate_postdominators): Added definition.
11278 * rtl.h (HARD_REGISTER_P): Added definition.
11279 * ssa.c: Include additional header files.
11280 (assert): Added definition.
11281 (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
11282 include select hard registers.
11283 (ssa_rename_to_insert): Likewise.
11284 (ssa_rename_from_initialize): Likewise.
11285 (ssa_rename_from_lookup): Likewise.
11286 (original_register): Likewise.
11287 (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
11288 include select hard reigsters.
11289 (ssa_rename_from_traverse): Likewise.
11290 (ssa_rename_from_free): Likewise.
11291 (ssa_rename_from_print): Likewise.
11292 (ssa_rename_from_print_1): Likewise.
11293 (ssa_rename_from_hash_function): Likewise.
11294 (ssa_rename_from_equal): Likewise.
11295 (ssa_rename_from_delete): Likewise.
11296 (simplify_to_immediate_dominators): Removed in favor of
11297 flow.c:compute_immediate_dominators.
11298 (find_evaluations_1): Modified to work with hard registers.
11299 (insert_phi_node): Likewise.
11300 (insert_phi_nodes): Likewise.
11301 (struct rename_set_data): Updated prev_reg comment.
11302 (create_delayed_rename): Modified to work with hard registers.
11303 (RENAME_NO_RTX): Updated comment.
11304 (apply_delayed_renames): Modified to work with hard registers.
11305 (rename_insn_1): Likewise and added handling of CLOBBER rtls.
11306 (rename_block): Updated to use revised ssa_rename_to interface.
11307 (rename_registers): Updated to use revised ssa_rename_to and
11308 ssa_rename_from interface.
11309 (convert_to_ssa): Revised to use compute_immediate_dominators and
11310 deal with hard registers.
11311 (make_regs_equivalent_over_bad_edges): Modified to work with hard
11312 registers. Added check for illegal unification of hard register.
11313 (make_equivalent_phi_alternatives_equivalent): Modified to work
11314 with hard registers.
11315 (compute_conservative_reg_partition): Likewise.
11316 (coalesce_if_unconflicting): Modified to work with hard registers
11317 and check for conflicting hard registers.
11318 (mark_phi_and_copy_regs): Revised loop to work only on pseudo
11319 registers.
11320 (rename_equivalent_regs_in_insn): Modified to work with hard
11321 registers.
11322 (record_canonical_element_1): Added definition.
11323 (check_hard_regs_in_partition): Added definition.
11324 (convert_from_ssa): Added data structure deallocation and check
11325 for illegal hard register unification.
11326 (conflict_hard_regs_p): Added definition.
11327 * toplev.c (rest_of_compilation): Added comment.
11328
11329 2000-07-31 Anthony Green <green@redhat.com>
11330
11331 * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
11332
11333 2000-07-31 Jason McMullan <jmcmullan@linuxcare.com>
11334
11335 * builtins.c (expand_builtin_apply): Don't defer pop during
11336 argument setup.
11337
11338 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11339
11340 * calls.c (combine_pending_stack_adjustment_and_call): Only use
11341 preferred_unit_stack_boundary when it is > 1.
11342
11343 2000-07-31 Joseph S. Myers <jsm28@cam.ac.uk>
11344
11345 * c-common.c (init_function_format_info): Add C99 format functions
11346 in C99 mode.
11347
11348 * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
11349 void' or 'register void' as being the special case of 'void' alone
11350 in a parameter list.
11351
11352 * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
11353 discarding qualifiers into a plain warning.
11354
11355 2000-07-31 Kazu Hirata <kazu@hxi.com>
11356
11357 * combine.c: Fix formatting.
11358
11359 * h8300.md: Fix formatting.
11360
11361 * local-alloc.c: Fix formatting.
11362
11363 * h8300.c (get_shift_alg): Remove the variable alg.
11364 (emit_a_shift): Rearrange code to improve readability.
11365
11366 * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
11367
11368 * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
11369 HImode on all architectures and a combination of HImode and SImode
11370 on H8/300H and H8/S.
11371
11372 * h8300.c (split_adds_subs): Rearrange code for conciseness.
11373
11374 Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
11375
11376 * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
11377 in my last checkin.
11378
11379 Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
11380
11381 * recog.c (extract_insn): Set operand_mode according to
11382 operand if match_operand is VOIDmode.
11383
11384 Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
11385
11386 * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
11387
11388 2000-07-31 Geoff Keating <geoffk@cygnus.com>
11389
11390 * c-parse.in (extdefs): Call ggc_collect between external
11391 definitions.
11392
11393 2000-07-30 Michael Hayes <mhayes@cygnus.com>
11394 Richard Henderson <rth@cygnus.com>
11395
11396 * Makefile.in (OBJS): Add doloop.o.
11397 * doloop.c: New file.
11398
11399 * final.c (insn_current_reference_address): Return 0 before final.
11400 * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
11401 * jump.c (any_uncondjump_p): Likewise.
11402 * loop.c (indirect_jump_in_function): Make static.
11403 (strength_reduce): Call doloop_optimize.
11404 (insert_bct, instrument_loop_bct): Remove.
11405 * loop.h (doloop_optimize): Prototype.
11406 * recog.c (split_all_insns): Split all INSN_P.
11407 * toplev.c (flag_branch_on_count_reg): Default on.
11408
11409 * config/c4x/c4x.c (c4x_optimization_options): Don't set
11410 flag_branch_on_count_reg.
11411 * config/i386/i386.c (override_options): Likewise.
11412 * config/rs6000/rs6000.c (optimization_options): Likewise.
11413
11414 * config/i386/i386.md (decrement_and_branch_on_count): Remove.
11415 (doloop_end): New.
11416 (dbra_ge): Remove, as well as all it's splitters.
11417
11418 * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
11419 (doloop_end): New.
11420
11421 * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
11422 (ia64_register_move_cost): Declare.
11423 * config/ia64/ia64.c (ar_lc_reg_operand): New.
11424 (struct ia64_frame_info): Add ar_size.
11425 (ia64_compute_frame_size): Set it.
11426 (save_restore_insns): Save and restore ar.lc.
11427 (ia64_register_move_cost): New, moved from header file. Handle
11428 application registers.
11429 (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers.
11430 (emit_insn_group_barriers): Special case doloop_end_internal.
11431 (ia64_epilogue_uses): Mark ar.lc live at end.
11432 * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
11433 (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
11434 (FIRST_PSEUDO_REGISTER): Make room.
11435 (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
11436 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
11437 (REG_ALLOC_ORDER): Update.
11438 (HARD_REGNO_MODE_OK): Update.
11439 (REGISTER_NAMES): Update.
11440 (enum reg_class): Add AR_M_REGS and AR_I_REGS.
11441 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
11442 (REGNO_REG_CLASS): Update.
11443 (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
11444 (REGISTER_MOVE_COST): Move out of line.
11445 (PREDICATE_CODES): Update.
11446 * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
11447 (addsi3_plus1_alt, adddi3_plus1_alt): New.
11448 (shladd_elim splitter): Allow constants in the predicate.
11449 (doloop_end, doloop_end_internal): New.
11450
11451 2000-07-30 Richard Henderson <rth@cygnus.com>
11452
11453 * genattrtab.c (struct insn_def): Add lineno member.
11454 (struct insn_ent): Likewise.
11455 (struct attr_desc): Likewise.
11456 (struct delay_desc): Likewise.
11457 (struct function_unit_op): Likewise.
11458 (struct function_unit): Likewise.
11459 (check_attr_value): Use message_with_line.
11460 (check_defs): Likewise.
11461 (expand_units): Likewise.
11462 (check_attr_test): Take a lineno argument.
11463 (gen_attr): Likewise.
11464 (gen_insn): Likewise.
11465 (gen_delay): Likewise.
11466 (gen_unit): Likewise.
11467 (main): Give it to them.
11468 (convert_set_attr_alternative): Take an insn_def argument
11469 instead of num_alt and insn_index.
11470 (convert_set_attr): Likewise.
11471 (write_test_expr): Protect INSN_ADDRESSES load
11472 with INSN_ADDRESSES_SET_P.
11473
11474 2000-07-30 Richard Henderson <rth@cygnus.com>
11475
11476 * flow.c (init_propagate_block_info): Use pc_set.
11477
11478 Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
11479
11480 * i386.md (*lea_general_[123]) New insns and splits.
11481 (addsi3 to lea splitter): Handle other modes too.
11482 (shlsi3 to lea splitter): Likewise.
11483 (addhi_1_lea, shlhi_1_lea): New patterns.
11484 (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
11485
11486 Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
11487
11488 * recog.c (general_operand, nonimmediate_operand): Accept
11489 any mode for VOIDmode CONSTANT_P operands.
11490
11491 Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
11492
11493 * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
11494 instead of replace_rtx.
11495 * recog.c (validate_replace_rtx_subexp): New function.
11496 * recog.h (validate_replace_rtx_subexp): Declare.
11497
11498 Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
11499
11500 * combine.c (simplify_set, make_extraction, make_compound_operation
11501 make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
11502 as force_to_mode argument.
11503
11504 Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
11505
11506 * combine.c (if_then_else_cond): Be sure that mode fits in
11507 HOST_WIDE_INT.
11508
11509 Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
11510
11511 * combine.c (record_promoted_value): Allow bitsize of mode
11512 to be equivalent to HOST_BITS_PER_WISE_INT.
11513
11514 Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
11515
11516 * function.c (assign_stack_local_1, assign_stack_temp_for_type):
11517 Do not call gen_mode_alignment when mode is BLKmode.
11518
11519 Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka <jh@suse.cz>
11520
11521 * loop.c (express_from_1): Fix call of simplify_gen_binary.
11522
11523 Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
11524
11525 * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
11526 VOIDmode implies both operands to be VOIDmode.
11527 (simplify_ternary_operation): Compute properly the mode of comparison.
11528 * combine.c (combine_simplify_rtx): Likewise.
11529
11530 2000-07-25 Michael Hayes <mph@paradise.net.nz>
11531
11532 * basic-block.h (struct loops): New field rc_order.
11533 * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
11534 (flow_loops_free): Free rc_order.
11535 (flow_depth_first_order_compute): New parameter rc_order.
11536 (flow_loops_find): Allocate rc_order and swap usage with
11537 dfs_order.
11538
11539 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11540 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11541
11542 * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
11543 (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
11544 (nodb_call, return_from_epilogue): Likewise.
11545 (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
11546 * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
11547 * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
11548 (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
11549 (c4x_valid_type_attribute_p): Likewise.
11550 * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
11551 (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
11552
11553 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11554
11555 * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
11556 and loadhi_big_constant if applicable.
11557 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
11558 and add new splitter.s
11559
11560 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11561
11562 * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
11563
11564 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11565
11566 * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
11567
11568 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11569
11570 * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
11571
11572 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11573
11574 * config/c4x/libgcc.S (divqf3): Improve accuracy.
11575
11576 2000-07-27 Mark Mitchell <mark@codesourcery.com>
11577
11578 Put phi nodes after NOTE_INSN_BASIC_BLOCK.
11579 * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
11580 * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
11581 (get_prev_bb_note): Likewise.
11582 (remove_scope_notes): Likewise.
11583 * flow.c (commit_one_edge_insertion): Likewise.
11584 (merge_blocks_nomove): Likewise.
11585 (verify_flow_info): Likewise.
11586 * gcse.c (insert_insn_end_bb): Likewise.
11587 * reg-stack.c (emit_swap_insn): Likewise.
11588 * ssa.c (first_insn_after_basic_block_note): New function.
11589 (insert_phi_node): Use it.
11590 (rename_block): Likewise.
11591 (eliminate_phi): Likewise.
11592 (make_regs_equivalent_over_bad_edges): Likewise.
11593 (make_equivalent_phi_alternatives_equivalent): Likewise.
11594 (for_each_successor_phi): Likewise.
11595 (convert_from_ssa): Modify phi-node deletion algorithm.
11596
11597 2000-07-29 Andreas Jaeger <aj@suse.de>
11598
11599 * configure.in (mips*-*-linux*): Use mips*el to check for little
11600 endian MIPS, add tmake_file.
11601
11602 * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
11603 (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
11604 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
11605
11606 2000-07-28 Richard Henderson <rth@cygnus.com>
11607
11608 * config/ia64/ia64.c (ia64_print_operand): Fix typos.
11609 Sign extend mode size before negating.
11610
11611 2000-07-28 Richard Henderson <rth@cygnus.com>
11612
11613 * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
11614
11615 2000-07-28 Bernd Schmidt <bernds@cygnus.co.uk>
11616
11617 * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
11618 (cse_insn): Likewise.
11619 (addr_affects_sp_p): Likewise.
11620 * expr.c (move_by_pieces): Likewise.
11621 (clear_by_pieces): Likewise.
11622 * gcse.c (oprs_unchanged_p): Likewise.
11623 * haifa-sched.c (sched_analyze_2): Likewise.
11624 * recog.c (offsettable_address_p): Likewise.
11625 * regclass.c (record_address_regs): Likewise.
11626 * reload.c (find_reusable_reload): Likewise.
11627 (push_reload): Likewise.
11628 (operands_match_p): Likewise.
11629 (decompose): Likewise.
11630 (find_reloads_address_1): Likewise.
11631 (find_inc_amount): Likewise.
11632 * reload1.c (elimination_effects): Likewise.
11633 * resource.c (mark_set_resources): Likewise.
11634 * flow.c (attempt_auto_inc): New function; mostly broken out
11635 of find_auto_inc.
11636 (find_auto_inc): Split into two functions and enhanced to
11637 generate POST_MODIFY.
11638 * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
11639 * rtl.h (count_all_occurrences): Declare.
11640 (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
11641 defined.
11642 * rtlanal.c (count_all_occurrences): New function.
11643 * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
11644 HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
11645
11646 * config/ia64/ia64-protos.h (destination_operand): Declare.
11647 * config/ia64/ia64.c (destination_operand): New function.
11648 (ia64_print_operand): Handle POST_MODIFY.
11649 (rtx_needs_barrier): Likewise.
11650 * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
11651 (HAVE_POST_MODIFY_REG): Define to 1.
11652 (MAX_REGS_PER_ADDRESS): Change to 2.
11653 (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
11654 (LEGITIMATE_ADDRESS_REG): New helper macro.
11655 (LEGITIMATE_ADDRESS_DISP): Likewise.
11656 (PREDICATE_CODES): Add entry for destination_operand.
11657 * config/ia64/ia64.md (all mov patterns): Use destination_operand
11658 predicate for operand 0.
11659
11660 2000-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11661
11662 * dwarf2out.c: Indent #error directive.
11663
11664 * gbl-ctors.h: Fix typo in comment.
11665 (__do_global_ctors): Prototype.
11666
11667 * gcse.c (record_one_set, pre_delete): Remove unused variables.
11668
11669 * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
11670 (print_operand): Initialize variable `t'.
11671
11672 2000-07-27 Aldy Hernandez <aldyh@redhat.com>
11673
11674 * config/arm/arm.md ("call_value"): removed constraints.
11675 Constraints are ignored in expanders.
11676 (*call_value_reg): split =rf into various constraints.
11677 (*call_value_mem): same
11678 (*call_value_symbol): same
11679 (*sibcall_value_insn): same
11680
11681 2000-07-28 Philipp Thomas <pthomas@suse.de>
11682
11683 * install.texi (--enable-nls): Change the description of the NLS
11684 related configure options to match the current state.
11685 (--with-included-gettext): Likewise.
11686 (--enable-maintainer-mode): New description added.
11687 * extend.texi (-fstrict-prototype): Add missing '.'.
11688
11689 2000-07-27 Jim Wilson <wilson@cygnus.com>
11690
11691 * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
11692 DECL_INITIAL (decl) == NULL_TREE.
11693
11694 2000-07-27 Alexandre Oliva <aoliva@redhat.com>
11695
11696 * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies
11697 on insn-attr.h with it.
11698 * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
11699 * insn-addr.h: New header.
11700 (insn_addresses_): Renamed from insn_addresses.
11701 (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
11702 INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
11703 INSN_ADDRESSES_NEW): New macros.
11704 * genattrtab.c (write_test_expr): Use new macros.
11705 * final.c (insn_addresses, init_insn_lengths): Likewise.
11706 (align_fuzz, shorten_branches): Likewise.
11707 (final): Likewise. Do not reject new insns if their addresses
11708 have been added to INSN_ADDRESSES.
11709 * config/arm/arm.c, config/avr/avr.c: Use new macros.
11710 * config/h8300/h8300.c, config/i370/i370.c: Likewise.
11711 * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
11712 * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
11713 * config/sh/sh.c: Likewise.
11714 (output_branchy_insn): Use INSN_ADDRESSES_NEW.
11715
11716 * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
11717
11718 2000-07-27 Andrew Cagney <cagney@b1.cygnus.com>
11719
11720 * gcc.c (struct prefix_list): Add member priority.
11721 (enum path_prefix_priority): Declare.
11722 (add_prefix): Replace ``first'' with ``priority''. Append new
11723 entry but keep list in priority order.
11724 (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or
11725 PREFIX_PRIORITY_LAST to add_prefix.
11726 (process_command): Move include kludge - foo/stageN - to before
11727 foo/include.
11728
11729 2000-07-27 Jason Merrill <jason@redhat.com>
11730
11731 * dwarf2out.c (gen_typedef_die): Abort if we get identical
11732 TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
11733
11734 2000-07-27 RodneyBrown <RodneyBrown@pmsc.com>
11735
11736 * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
11737 * tree.h (get_alias_set, lang_get_alias_set): Prototype.
11738
11739 2000-07-27 Joseph S. Myers <jsm28@cam.ac.uk>
11740
11741 * c-decl.c (finish_function): Don't treat 'main' specially unless
11742 flag_hosted. In C99 mode, return 0 from 'main' unless
11743 DEFAULT_MAIN_RETURN is otherwise defined.
11744
11745 * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
11746 parameters defaulting to int in an old-style function definition.
11747
11748 2000-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11749
11750 * c-parse.in (string): For -Wtraditional, warn about string
11751 concatenation only once per line.
11752
11753 Thu Jul 27 09:25:17 2000 Akiko Matsushita <matusita@sra.co.jp>
11754
11755 * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
11756 for HI-UX/WE2 systems.
11757
11758 2000-07-24 Bruce Korb <bkorb@gnu.org>
11759
11760 * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
11761 defining the __xxx_TYPE__ macros.
11762 * fixincl/fixincl.tpl(gnu_type_map): now obsolete
11763 * fixincl/fixlib.h: don't need to include "tm.h" anymore
11764 * fixincl/inclhack.def(type_map): now obsolete
11765
11766 Thu Jul 27 11:54:17 2000 Andrew Cagney <cagney@b1.cygnus.com>
11767
11768 * cpp.texi: Append a trailing full-stop to xrefs where needed.
11769
11770 2000-07-26 Dave Pitts <dpitts@cozx.com>
11771
11772 * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
11773 routine constants.
11774 (mvs_hash_alias): New function.
11775 (mvs_add_alias): Change argument spacing.
11776 (mvs_need_alias): Change aliasing criteria. Added documentation.
11777 (mvs_get_alias): Change to use hashed name. The hashed name prevents
11778 CSECT name collisions.
11779 (mvs_check_alias): Likewise.
11780 (handle_pragma): Change documentation.
11781 * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
11782 mode from SImode to DImode.
11783 (iorhi3): Changed LTORG size for insn.
11784
11785 Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
11786
11787 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
11788 mem if the address is a mode_dependent_address_p.
11789
11790 2000-07-26 Kazu Hirata <kazu@hxi.com>
11791
11792 * h8300.c (print_operand): Print ":8" when the 'R' operand is
11793 suitable for 8-bit absolute.
11794 * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
11795 (OK_FOR_U): Add a case for the 8-bit constant address on the
11796 H8/300H.
11797
11798 Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson <hp@axis.com>
11799
11800 * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
11801 && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
11802 ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
11803 lack of implemented alignment.
11804
11805 2000-07-26 Geoffrey Keating <geoffk@cygnus.com>
11806
11807 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
11808 cross-compiling between 64-bit and 32-bit machines.
11809
11810 2000-07-27 Richard Henderson <rth@cygnus.com>
11811
11812 * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
11813 (movhicc_astep, movhi_internal_astep): New.
11814 (movsicc_astep, movsi_internal_astep): New.
11815 (movdicc_astep, movdi_internal_astep): New.
11816 (movsfcc_astep, movsf_internal_astep): New.
11817 (movdfcc_astep, movdf_internal_astep): New.
11818 (movxfcc_astep, movxf_internal_astep): New.
11819 (cmovdi_internal_astep, cmovsi_internal_astep): New.
11820 Unify the cmov[ds]i splitters.
11821
11822 2000-07-27 Rodney Brown <RodneyBrown@pmsc.com>
11823
11824 * real.c (asctoeg): Rename `error' label to unexpected_char_error
11825
11826 2000-07-26 Nick Clifton <nickc@cygnus.com>
11827
11828 * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
11829 __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h
11830
11831 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
11832 well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
11833
11834 2000-07-26 Alexandre Oliva <aoliva@redhat.com>
11835
11836 * c-decl.c (finish_enum): Convert enumerations that fit in an
11837 `int' to `int'.
11838 (build_enumerator): In pedantic mode, cast to `int' those that
11839 don't.
11840
11841 2000-07-25 Rodney Brown <RodneyBrown@pmsc.com>
11842
11843 * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
11844
11845 Tue Jul 25 23:08:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
11846
11847 * sh.md (cmpgtdi_t): Must be split.
11848 (cmpgtdi_t+1): New splitter.
11849
11850 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
11851
11852 * cpplib.c (_cpp_check_directive): Issue -Wtraditional
11853 warnings for indented directives even if we are skipping.
11854
11855 2000-07-25 Nathan Sidwell <nathan@codesourcery.com>
11856
11857 * invoke.texi (strict-prototypes): Remove.
11858 * extend.texi (Deprecated Features): Add strict-prototypes.
11859 (Backwards Compatibility): New node.
11860
11861 2000-07-25 Jakub Jelinek <jakub@redhat.com>
11862
11863 * config/i386/i386.md (andsi_1+1): Allow HImode.
11864 (andsi_1+2): Require q_regs_operand.
11865
11866 2000-07-25 Jakub Jelinek <jakub@redhat.com>
11867
11868 * config/i386/i386.md (call_pop): Check operands[0],
11869 not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
11870 (call): Likewise.
11871 (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
11872 (call_value): Likewise.
11873
11874 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
11875
11876 * toplev.c (pipe_closed): Delete.
11877 (crash_signal): New. Generate ICE for a fatal signal.
11878 (float_signal): Call crash_signal outside a float-handler
11879 block, not abort.
11880 (main): Install crash_signal as handler for core-dumping signals.
11881
11882 2000-07-25 David Edelsohn <edelsohn@gnu.org>
11883
11884 * rs6000.c (print_operand, case 'T'): New case.
11885
11886 * rs6000.md (call_indirect_aix32): Convert to expander of
11887 scheduled instructions.
11888 (call_indirect_aix64): Likewise.
11889 (call_value_indirect_aix{32,64}): Likewise.
11890 (call, call_value): Invoke expanders for AIX. Fall through to
11891 matchers for SysV.
11892 (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
11893 (call_value_indirect_nonlocal_aix{32,64}): New patterns.
11894 (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1
11895 only "g" constraint.
11896 (call_nonlocal_aix64): Likewise.
11897 (call_value_nonlocal_aix{32,64}): Likewise.
11898 (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
11899 operands.
11900 (call_value_nonlocal_sysv): New pattern.
11901 (indirect_jump{si,di}): Use new 'T' modifier.
11902 (tablejump{si,di} matchers): Likewise.
11903 (return_internal_{si,di}): Likewise.
11904 (return_eh_{si,di}): Likewise.
11905
11906 2000-07-24 Richard Henderson <rth@cygnus.com>
11907
11908 * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
11909 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
11910 * config/ia64/ia64.md (movdi_internal): Use it.
11911
11912 2000-07-24 Zack Weinberg <zack@wolery.cumb.org>
11913
11914 * cppexp.c: Warn about unary + if -Wtraditional.
11915 * cpplex.c (lex_line): Always set BOL on the first token of a line.
11916
11917 2000-07-24 Michael Meissner <meissner@redhat.com>
11918
11919 * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
11920 unsupported macro.
11921
11922 2000-07-24 Nick Clifton <nickc@cygnus.com>
11923
11924 * config/arm/arm.c (emit_multi_reg_push): Generate a
11925 REG_FRAME_RELEATED_NOTE that is compatable with the code in
11926 dwarf2out_debug_frame_expr.
11927
11928 2000-07-24 Jason Merrill <jason@redhat.com>
11929
11930 * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
11931 UNALIGNED_INT_ASM_OP.
11932 (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
11933 a location expression.
11934 (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't
11935 assume indirect access if we're saving the CFA address exactly.
11936
11937 * Makefile.in (bootstrap): Move -BstageN/ to the end.
11938
11939 2000-07-24 Jakub Jelinek <jakub@redhat.com>
11940
11941 * tradcpp.c (main): Update max_include_len for cpp_include_defaults
11942 as well.
11943
11944 2000-07-24 Michael Meissner <meissner@redhat.com>
11945
11946 * invoke.texi (D30V Options): Add d30v options.
11947
11948 Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com)
11949
11950 * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
11951 needed by our gcse pass anymore.
11952 (free_pre_mem): Corresponding changes.
11953 (compute_pre_data): Do not call compute_transpout anymore.
11954
11955 * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
11956 (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
11957 changes.
11958
11959 * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
11960 (compute_pre_data): Do it here instead.
11961
11962 * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
11963 'temp_bitmap'.
11964 (pre_delete): Corresponding changes.
11965
11966 2000-07-23 Mark Mitchell <mark@codesourcery.com>
11967
11968 * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
11969 to figure out whether or not a variable has already been emitted.
11970
11971 Sun Jul 23 14:49:12 2000 Jason Eckhardt <jle@cygnus.com>
11972
11973 * config/i860/i860.md (untyped_call expander): Use GEN_CALL
11974 instead of gen_call.
11975
11976 Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk)
11977
11978 * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
11979
11980 2000-07-23 Kazu Hirata <kazu@hxi.com>
11981
11982 * h8300.c: Fix formatting.
11983
11984 2000-07-23 Joseph S. Myers <jsm28@cam.ac.uk>
11985
11986 * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
11987 for `long' switch expression into a plain warning.
11988
11989 * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
11990 (yylex): Don't pedwarn for "inline" in C99 mode.
11991
11992 * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
11993 with %p.
11994 * ggc-page.c (debug_print_page_list, alloc_page, free_page,
11995 ggc_alloc): Likewise.
11996 * bb-reorder.c (dump_scope_forest_1): Likewise.
11997
11998 2000-07-22 Aldy Hernandez <aldyh@redhat.com>
11999
12000 * reload.c (find_reloads_toplev): Add new parameter
12001 "address_reloaded".
12002 (find_reloads): Add new parameter to find_reloads_toplev calls.
12003
12004 2000-07-22 Jeffrey Oldham <oldham@codesourcery.com>
12005
12006 * collect2.c (main): Typo fixed.
12007 * diagnostic.c: Typo fixed.
12008 * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
12009 * eh-common.h: Typo fixed.
12010 * emit-rtl.c (start_sequence): Typo fixed.
12011 * flow.c (find_label_refs): Typo fixed.
12012 (calculate_global_regs_live): Typo fixed.
12013 (mark_regno_cond_dead): Typo fixed.
12014 (create_edge_list): Typos fixed.
12015 (verify_edge_list): Typo fixed.
12016 * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
12017 * loop.c (strength_reduce): Typo in function name fixed.
12018 * rtl.h: Added comments. Typo in function name fixed.
12019 * rtlanal.c: Typo in function name fixed.
12020 (insn_dependant_p): Rename to ...
12021 (insn_dependent_p): ... this.
12022 (computed_jumo_p): Typo fixed.
12023
12024 2000-07-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12025
12026 * system.h (__FUNCTION__): Wrap definition in #ifndef.
12027
12028 2000-07-21 David Edelsohn <edelsohn@gnu.org>
12029
12030 * rs6000.h (SIZE_TYPE): Define.
12031
12032 2000-07-21 Mark Mitchell <mark@codesourcery.com>
12033
12034 * ssa.c (rename_insn_1): Don't rename registers that are
12035 CLOBBERed.
12036
12037 2000-07-21 Zack Weinberg <zack@wolery.cumb.org>
12038
12039 * diagnostic.c (trim_filename, fancy_abort): Moved here from
12040 rtl.c.
12041 (fatal_function, set_fatal_function): Removed.
12042 (fatal): Don't prepare for or call the fatal_function.
12043 (diagnostic_lock, error_recursion): New.
12044 (diagnostic_for_decl, report_diagnostic): Guard against
12045 re-entering the error reporting routines.
12046 (fancy_abort): Assume function is not NULL.
12047
12048 * errors.c (fancy_abort): New. Assume function is not NULL.
12049 * tradcpp.c (fancy_abort): Assume function is not NULL.
12050
12051 * system.h: Provide default definition of __FUNCTION__.
12052 * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
12053 Always use __FUNCTION__ in definition of abort.
12054 * tree.h: Likewise.
12055 * varray.h: Likewise.
12056 * toplev.h: Likewise. Don't prototype set_fatal_function.
12057
12058 2000-07-20 Geoff Keating <geoffk@cygnus.com>
12059
12060 * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
12061 in 64-bit mode.
12062 * glimits.h: Don't do #if defined for ARCH_PPC.
12063
12064 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
12065 constants of size no larger than a pointer should go in the TOC.
12066 Add 'MODE' parameter.
12067 (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
12068 ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
12069 (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
12070 * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
12071 * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
12072 * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
12073 (rs6000_legitimize_address): Likewise.
12074 (rs6000_emit_move): Likewise.
12075 (rs6000_select_rtx_section): Likewise.
12076 (output_toc): Deal properly with outputting small constants like
12077 HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
12078 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
12079 MODE parameter. Put small constants in the TOC.
12080
12081 * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
12082 easy in SImode.
12083 (rs6000_emit_move): When reload calls us with an illegitimate
12084 address, exit early. Move the change_address calls to one place
12085 at the end of the routine. Merge the SImode and DImode expanders.
12086 When called by reload to put an integer into a FP register, force
12087 it to memory.
12088
12089 * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
12090 field.
12091 (rs6000_hash_constant): Hash mode too.
12092 (toc_hash_function): Allow for key_mode.
12093 (toc_hash_eq): Structures are different if key_mode differs.
12094 (output_toc): Add 'mode' parameter. Save key_mode.
12095 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
12096 Pass 'mode' parameter.
12097 * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
12098
12099 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
12100 for vtable references.
12101
12102 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
12103 choice, don't put integer values in FP regs.
12104
12105 Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com)
12106
12107 * flow.c (verify_flow_info): Revamp code to verify that the
12108 head and end of each basic block are in the insn chain.
12109
12110 Thu Jul 20 18:02:35 2000 Michael Matz <matzmich@cs.tu-berlin.de>
12111
12112 * gcse.c (record_one_set): Prepend instead of append onto
12113 reg_set_table, making it O(n) instead O(n^2).
12114 * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
12115 Use a queue instead of a stack as worklist.
12116
12117 2000-07-20 Kazu Hirata <kazu@hxi.com>
12118
12119 * h8300.c (two_insn_adds_subs_operand): Fix a typo.
12120 * h8300.h (OK_FOR_T): New.
12121 (EXTRA_CONSTRAINT): Support OK_FOR_T.
12122 * h8300.md: Use inc/dec.[wl] for increment/decrement
12123 by 1 and 2 in HI and SI modes.
12124
12125 2000-07-20 Jim Wilson <wilson@cygnus.com>
12126
12127 * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
12128 larger than 14 bits.
12129
12130 2000-07-20 Zack Weinberg <zack@wolery.cumb.org>
12131
12132 * cppmacro.c (CAN_PASTE_AFTER): New macro.
12133 (count_params): Don't set GNU_REST_ARGS on anything.
12134 (save_expansion): Set PASTE_LEFT only on tokens for which
12135 CAN_PASTE_AFTER is true, or which are named operators.
12136
12137 * cpplex.c (parse_args): Distinguish between a rest argument
12138 given one empty argument, and a rest argument given zero arguments.
12139 (maybe_paste_with_next): Look for VOID_REST tag, and trigger
12140 deletion of previous token based on that.
12141 (get_raw_token): Flatten some control structure.
12142
12143 * cpplib.h (CPP_LAST_EQ): Correct.
12144 (VOID_REST): New token flag.
12145 (GNU_REST_ARGS): Delete.
12146
12147 * tradcpp.c (main): Don't munge -D options.
12148 (make_definition): Bring -D handling in line with cpplib.
12149 (do_define): Strip all leading whitespace from macro definitions.
12150
12151 2000-07-20 David Billinghurst <David.Billinghurst@riotinto.com.au>
12152
12153 * Makefile.in (tradcpp): Depend on intl.o and version.o.
12154
12155 2000-07-20 Bruce Korb <bkorb@gnu.org>
12156
12157 * fixincl/check.tpl: strip the platform specific types before testing
12158 * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
12159 * fixincl/fixincl.tpl: use platform specific types
12160 * fixincl/fixlib.h: include the platform specific types
12161 * fixincl/inclhack.def(gnu_types): don't supply the types
12162 * fixincl/fixincl.x: regen
12163
12164 2000-07-19 Jim Wilson <wilson@cygnus.com>
12165
12166 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
12167 GR_REGS.
12168
12169 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
12170
12171 * tradcpp.c (rescan): Do not recognize directives when the #
12172 is indented.
12173
12174 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
12175
12176 Implement C++ named operators.
12177
12178 * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
12179 of operators allowed in #if and having an _EQ variant. Add
12180 CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
12181 (cpp_token flags): Add NAMED_OP.
12182 (enum node_type): Add T_OPERATOR.
12183 (struct cpp_hashnode): Add code slot to value union.
12184 * cpphash.h (spec_nodes): Remove n_defined.
12185
12186 * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
12187 (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
12188 (is_macro_disabled): Tweak error messages.
12189
12190 * cpplib.c (get_define_node): Disallow all named operators as
12191 macro names. Tweak error messages.
12192 (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
12193
12194 * cppinit.c (builtin_array): Add entries for the named operators.
12195 * cppexp.c (lex): Check for CPP_DEFINED token.
12196 (priority table): Add entries for CPP_MIN and CPP_MAX.
12197 (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
12198
12199 2000-07-19 Bernd Schmidt <bernds@cygnus.co.uk>
12200
12201 * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
12202 larger than the array of cuids.
12203 (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
12204 cuids.
12205
12206 2000-07-19 Bruce Korb <bkorb@gnu.org>
12207
12208 * fixinc/fixincl.c: Convert to using a table of environment variables
12209 and activate the auto-edit marker on the fixed output files.
12210 * fixinc/fixlib.h: Define the environment table
12211 * fixinc/fixincl.sh: export the ${INPUT} dir
12212 * fixinc/check.tpl: likewise
12213
12214 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
12215
12216 * gcc.c (.h spec): Fix typo.
12217
12218 Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
12219
12220 * Makefile.in: Fix tradcif.c path.
12221
12222 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
12223
12224 * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
12225 macros, not five.
12226
12227 * cpphash.h (TOKEN_NAME): New macro.
12228 (_cpp_spell_operator): Deleted.
12229 (token_spellings): Now _cpp_token_spellings.
12230
12231 * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
12232 * cpplex.c: Use OP and TK macros when expanding the
12233 TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens,
12234 store the stringification of the enumeration name (CPP_CHAR,
12235 etc.) in the name slot of token_spellings.
12236 Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
12237 token_spellings directly.
12238 * cpplib.c: Use TOKEN_SPELL.
12239
12240 * cpplex.c (_cpp_push_token): If the token being pushed back
12241 is the previous token in this context, just subtract one from
12242 context->posn.
12243 * cppmacro.c (save_expansion): Clear aux field when storing a
12244 placemarker.
12245
12246 2000-07-18 Jakub Jelinek <jakub@redhat.com>
12247
12248 * cpplex.c (cpp_scan_buffer): Output line command even at the stop
12249 buffer, provided it is not NULL.
12250
12251 2000-07-18 Alexandre Oliva <aoliva@redhat.com>
12252
12253 * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
12254 case of invalid volatile re-declaration.
12255
12256 2000-07-18 Jakub Jelinek <jakub@redhat.com>
12257
12258 * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
12259 (expand_call): Adjust caller.
12260
12261 2000-07-17 Gabriel Dos Reis <gdr@codesourcery.com>
12262
12263 * diagnostic.h (report_diagnostic): Change prototype.
12264
12265 * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
12266 diagnostic_for_decl): Change prototype.
12267 (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
12268 error, warning, error_with_file_and_line,
12269 warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
12270 Adjust call to report_diagnostic, diagnostic_for_decl.
12271 (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
12272 (output_verbatim, verbatim): Adjust call to output_do_verbatim.
12273
12274 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
12275 varaible argument list.
12276
12277 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
12278
12279 * cpphash.c: Don't include hashtab.h. Most macro-handling code
12280 moved to cppmacro.c.
12281 (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
12282 dump_hash_helper): Delete.
12283 (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
12284 cpp_forall_identifiers): New. Implement specialized version of
12285 Vlad's expandable hash table.
12286 (cpp_lookup): Use new functions.
12287 (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
12288 implementation.
12289 * cppmacro.c: New file.
12290 * cppinit.c (dump_macros_helper): New.
12291 (cpp_finish): Iterate over the identifier table directly.
12292 * cpplex.c (parse_name): Calculate the hash of the identifier
12293 while we scan it. Use _cpp_lookup_with_hash when we can.
12294
12295 * cpphash.h: Update prototypes.
12296 (xcnewvec, HASHSTEP): New helper macros.
12297 * cpplib.h: Update prototypes.
12298 * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
12299 (cppmacro.o): New rule.
12300 (cpphash.o): Update deps.
12301
12302 * cppmain.c: Do not set pfile->printer if no_output is on.
12303
12304 2000-07-15 Neil Booth <neilb@earthling.net>
12305
12306 * cpplib.c: Change all directive-handler functions to return
12307 void, not int.
12308 * cpphash.h: Update typedefs.
12309
12310 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
12311
12312 * configure: Regenerate.
12313
12314 * extend.texi (Extended Asm): Mention that a memory clobber
12315 does not count as a side-effect.
12316
12317 * unroll.c (copy_loop_body): Fix one instance of using host
12318 arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
12319 cross-compile.
12320
12321 * tlink.c (scan_linker_output): Tweak for output of AIX ld.
12322
12323 2000-07-17 Richard Henderson <rth@cygnus.com>
12324
12325 * config/ia64/ia64.md (movdi): Split out load address code.
12326 New post-reload splitter for symbolic operands.
12327 (movdi_internal): Abort if we didn't split symbolic operands
12328 when we should have.
12329 * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
12330 (ia64_reorg): Split insns when not optimizing.
12331 * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
12332
12333 Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
12334
12335 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
12336 instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
12337
12338 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
12339
12340 * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
12341
12342 2000-07-17 Jason Merrill <jason@redhat.com>
12343
12344 * Makefile.in (clean): Remove libgcc directory.
12345
12346 * configure.in (-Wno-long-long check): Use higher-level macros.
12347
12348 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
12349
12350 * simplify-rtx.c (simplify_binary_operation): Recognize
12351 (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
12352 (simplify_ternary_operation): Do not examine MODE_BITSIZE of
12353 a CONST_INT, it will always be zero.
12354
12355 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
12356
12357 * loop.c (check_dbra_loop) : Return if more than one condition is
12358 present to control the loop.
12359
12360 Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com>
12361
12362 * mips.c (mips_expand_prologue): Don't calculate the last argument
12363 register unless we need it. When we are calculating this, make
12364 sure FUNCTION_ARG is giving us a REG.
12365
12366 2000-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
12367
12368 * flow.c (libcall_dead_p): Use single_set to verify the insn
12369 has only one set and get for analysis.
12370 (propagate_one_insn): Don't pass the PATTERN of the insn.
12371
12372 2000-07-17 Mark Klein <mklein@dis.com>
12373
12374 * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
12375
12376 2000-07-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
12377
12378 * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
12379 * configure.in (TARGET_GETGROUPS_T): Evaluate.
12380 * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
12381 of second argument of getgroups.
12382 * configure, config.in: Rebuilt.
12383
12384 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
12385
12386 * simplify-rtx.c (simplify_relational_operation): Two signed
12387 values with equal high words are less/greater than each other if
12388 their low words are less/greater when considered as unsigned.
12389
12390 Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org>
12391
12392 * configure.in (vax-*-openbsd): Change to new style configuration,
12393 add collect2/float_format information.
12394 * configure: Rebuilt.
12395 * config/vax/openbsd1.h: New.
12396 * config/vax/openbsd.h: New.
12397 * config/vax/t-openbsd: New.
12398
12399 2000-07-17 Chip Salzenberg <chip@valinux.com>
12400
12401 * c-common.c (shorten_compare): Quiet warnings about unsigned
12402 comparisons with zero when they occur in a system header.
12403
12404 2000-07-17 Joseph S. Myers <jsm28@cam.ac.uk>
12405
12406 * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
12407 update to describe current practice.
12408
12409 * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
12410
12411 * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
12412 references to C9X. Change references to -fstd and -flang-isoc9x
12413 to refer to -std.
12414
12415 * c-common.c (scan_char_table): Allow "z" length modifiers on
12416 diouxXn formats.
12417 (check_format_info): Use TYPE_DOMAIN on the type matched against
12418 for "z" formats, to retrieve the language size_t rather than the
12419 internal one.
12420
12421 * c-common.c (check_format_info): Do not make a pedantic objection
12422 to the 'L' length modifier if used with a floating point type
12423 character.
12424
12425 * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
12426 constants in C99 mode.
12427
12428 2000-07-17 Kazu Hirata <kazu@hxi.com>
12429
12430 * h8300.md: Fix the format of mac.
12431 (movsi_h8300hs): Output a tab after stmac instead of a space.
12432
12433 * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
12434 profitable adds/subs sequences.
12435
12436 * fold-const.c: Fix comment typos.
12437
12438 2000-07-16 Laurynas Biveinis <lauras@softhome.net>
12439
12440 * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
12441
12442 2000-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12443
12444 * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
12445
12446 2000-07-16 Neil Booth <NeilB@earthling.net>
12447
12448 * cpplex.c: Update comments.
12449 * README.Portability: Small update.
12450
12451 2000-07-16 Neil Booth <NeilB@earthling.net>
12452
12453 * README.Portability: Small update.
12454
12455 2000-07-15 Richard Henderson <rth@cygnus.com>
12456
12457 * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
12458 * config/ia64/ia64.c (ia64_move_ok): New function.
12459 * config/ia64/ia64.md (movqi, movqi_internal): Use it.
12460 (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
12461
12462 2000-07-15 Zack Weinberg <zack@wolery.cumb.org>
12463
12464 * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
12465 immediately following a paste operator.
12466 * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
12467 (cpp_reader_init): Call it, if HOST_EBCDIC.
12468 (cpp_handle_options): Do not sort option list here.
12469 (handle_option): Rename to cpp_handle_option and export.
12470 * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
12471 _cpp_get_token directly.
12472 (cpp_scan_line): Return 0 at EOF, 1 otherwise.
12473 * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
12474 * cpplib.h: Prototype cpp_handle_option. Update prototype of
12475 cpp_scan_line.
12476
12477 2000-07-15 Richard Henderson <rth@cygnus.com>
12478
12479 * fold-const.c (extract_muldiv): Don't optimize past an unsigned
12480 cast around an expression. Tidy other unsigned tests.
12481
12482 2000-07-15 Gabriel Dos Reis <gdr@codesourcery.com>
12483
12484 * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
12485 v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
12486 (v_message_with_decl): Rename to ...
12487 (format_with_decl): ... this. Tweak
12488 (diagnostic_for_decl): New function.
12489 (fatal_io_error): Use verbatim in lieu of notice.
12490 (announce_function): Use verbatim.
12491 (default_print_error_function): Likewise.
12492 (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
12493 infratructure.
12494
12495 2000-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12496
12497 * mips.c (function_arg_pass_by_reference): Don't do automatic
12498 aggregate initialization.
12499 (machine_dependent_reorg): Initialize variable `mode'.
12500
12501 * mips.md (absdi2): Change variable `regno1' to unsigned int.
12502 (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
12503 conflicts with sys/param.h macro of the same name.
12504 (reload_outdi): Likewise.
12505
12506 2000-07-15 Michael Meissner <meissner@redhat.com>
12507
12508 * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
12509 == CONST + INCREMENT, don't overwrite the tree node for FOO++,
12510 create a new node instead.
12511
12512 2000-07-15 Neil Booth <NeilB@earthling.net>
12513
12514 * README.Portability: Correct example about calling a function
12515 through a pointer to function. Format wide paragraphs.
12516
12517 2000-07-15 Michael Meissner <meissner@redhat.com>
12518
12519 * README.Portability: Update integer suffixes and function
12520 prototype sections.
12521
12522 2000-07-15 Neil Booth <NeilB@earthling.net>
12523
12524 * README.Portability: Small update.
12525
12526 2000-07-15 Neil Booth <NeilB@earthling.net>
12527
12528 * README.Portability: New file.
12529
12530 Fri Jul 14 18:13:53 2000 Mark P Mitchell <mark@codesourcery.com>
12531
12532 * INSTALL: Give special instructions for building GCC on Irix 6.
12533 * config/mips/x-iris6 (CC): Don't set it.
12534 (OLDCC): Likewise.
12535
12536 2000-07-14 Jason Merrill <jason@redhat.com>
12537
12538 * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
12539 register in the stack and later in another register, use the new
12540 register.
12541
12542 Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com>
12543
12544 * config/mips/mips.md: (absdi2): Handle sign_extend for
12545 second operand.
12546
12547 2000-07-14 Nathan Sidwell <nathan@codesourcery.com>
12548
12549 * cpplib.c (do_pragma_dependency): Tidy warning messages.
12550
12551 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
12552
12553 * .cvsignore: Correct typo.
12554
12555 2000-07-13 Mark Mitchell <mark@codesourcery.com>
12556
12557 * .cvsignore: Add generated YACC files.
12558 * objc/.cvsignore: New file.
12559
12560 2000-07-14 Neil Booth <NeilB@earthling.net>
12561
12562 * cpplex.c (adjust_column): New funcion.
12563 (skip_whitespace): Use it.
12564 (skip_block_comment): Use it, and warn about /*/* with
12565 -Wcomments.
12566
12567 2000-07-14 Neil Booth <NeilB@earthling.net>
12568
12569 * cpphash.c (struct macro_info): Add new members.
12570 (_cpp_free_definition): Delete the macro directly.
12571 (count_params): Return void, with first token of
12572 expansion in struct macro_info on success.
12573 (parse_define): Return int. Hoist syntax checking from
12574 save_macro_expansion. Leave call to save_expansion to
12575 _cpp_create_definition.
12576 (alloc_macro): Needs just 2 arguments.
12577 (free_macro): Delete.
12578 (save_expansion): Don't perform syntax check.
12579 (_cpp_create_definition): Call save_expansion.
12580
12581 2000-07-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12582
12583 * genrecog.c (write_header): Split long string.
12584
12585 * cpphash.c (macro_info): Don't use the `signed' keyword.
12586
12587 * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
12588
12589 2000-07-13 Jakub Jelinek <jakub@redhat.com>
12590
12591 * calls.c (stored_args_map): New variable.
12592 (check_sibcall_argument_overlap_1): New.
12593 (check_sibcall_argument_overlap): New.
12594 (expand_call): Initialize stored_args_map.
12595 Call check_sibcall_argument_overlap.
12596
12597 2000-07-13 Bruce Korb <bkorb@gnu.org>
12598
12599 * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
12600 (emit_gnu_type): utility procedure for gnu_type_fix
12601 (gnu_type_fix): implement various pre-processor guards around
12602 standard types so these types can be defined over and over
12603 * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
12604 types alluded to above will have GNU-compliant base types
12605 * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
12606 * fixinc/inclhack.def: add test_text entries and utilize the new
12607 "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
12608 * fixinc/fixincl.x: regenerate
12609
12610 2000-07-12 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
12611
12612 * diagnostic.c (vline_wrapper_message_with_location,
12613 v_message_with_file_and_line, v_error_with_file_and_file,
12614 v_error_for_asm, v_warning_for_asm, vfatal,
12615 v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
12616 vsorry, verror, vwarning, vpedwarn): Remove.
12617 (diagnostic_for_asm): New function.
12618 (pedwarn, error, warning, pedwarn_with_file_and_line,
12619 error_with_file_and_line, warning_with_file_and_line, sorry,
12620 error_for_asm, warning_for_asm, fatal): Reimplement.
12621 (finish_diagnostic): Clear diagnostic info as well.
12622
12623 2000-07-13 Neil Booth <NeilB@earthling.net>
12624
12625 * c-common.h (flag_digraphs): New.
12626 * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
12627 * c-lex.c (yylex): Use flag_digraphs to decide whether to
12628 honour digraphs.
12629
12630 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
12631
12632 * gcc.c (do_spec_1): Add new %B operator.
12633 (set_input): Prepare for %B.
12634
12635 (link_command_spec): Move up with the other tm.h-
12636 overrideable specs. Factor out the portion conditional on
12637 LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
12638 (struct compiler): Just have a single spec string. All users
12639 updated.
12640 (default_compilers): Remove unnecessary braces.
12641 (static_specs): Update.
12642
12643 (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
12644 named specs.
12645 (C and assembly specs): Use the new named specs, as appropriate.
12646
12647 * objc/lang-specs.h: Use the new named specs.
12648 Remove unnecessary braces.
12649
12650 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12651
12652 * gcc.c (execute): If a subprocess gets a fatal signal, report
12653 strsignal() of the signal number, and ask for a bug report.
12654 Do not do this for SIGPIPE if there's already been an error.
12655
12656 * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
12657 Delete pipe_closed.
12658
12659 * tradcif.c: Remove.
12660
12661 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12662
12663 * final.c (profile_function): Do not emit profile counters in
12664 the data section, if NO_PROFILE_COUNTERS is defined.
12665 * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
12666 FUNCTION_PROFILER.
12667
12668 * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
12669 (FUNCTION_PROFILER): Just emit a call to mcount.
12670
12671 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12672
12673 * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
12674
12675 * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
12676 cpplib.c, cpplib.h: Eradicate all traces of code dependent on
12677 traditional, lang_chill, or lang_fortran.
12678
12679 * cppfiles.c: #undef strcmp to suppress warning about macros
12680 used without arguments.
12681 (_cpp_execute_include): Use f, not fname, in "No include path"
12682 error.
12683 (_cpp_pop_file_buffer): New function.
12684 * cpplib.c: Don't include <sys/mman.h>.
12685 (cpp_push_buffer): Set line_base and lineno in new buffer.
12686 (cpp_pop_buffer): Use _cpp_pop_file_buffer.
12687
12688 * cpplex.c: Move all prototypes and structure declarations to the
12689 top of the file. Properly parenthesise some macro arguments.
12690 (cpp_scan_line): New function.
12691 (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
12692 don't need to walk up the stack counting.
12693
12694 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12695
12696 * c-common.c (combine_strings): Emit a pedantic warning when a
12697 string length is greater than the minimum ANSI C is required
12698 to support.
12699
12700 Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com)
12701
12702 * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
12703 * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
12704
12705 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12706
12707 * c-decl.c (define_label): Warn about identifier conflicts with
12708 labels in traditional C.
12709
12710 * c-parse.in (unop +): Warn about the unary plus operator for
12711 traditional C.
12712
12713 * c-typeck.c (store_init_value): Warn about automatic aggregate
12714 initialization for traditional C.
12715
12716 * invoke.texi (-Wtraditional): Document new warnings.
12717
12718 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
12719
12720 * Makefile.in (c-errors.o): Fix thinko in dependency.
12721
12722 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12723
12724 * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
12725 -traditional, -ftraditional, or -traditional-cpp was given.
12726 Do not pass -traditional to the preprocessor.
12727 (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
12728 preprocessor does it automatically.
12729 * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
12730
12731 * ch/lang-specs.h: Always use tradcpp. Do not pass
12732 -traditional, -trigraphs, or -pedantic to the preprocessor.
12733 * f/lang-specs.h (.F spec): Likewise. Don't bother defining
12734 _LANGUAGE_FORTRAN.
12735
12736 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12737
12738 * cppexp.c (LOGICAL): Delete macro.
12739 (_cpp_parse_expr): Do not use UNARY for unary +. Implement ||
12740 and && directly.
12741
12742 * cpphash.c (HASHSIZE): Increase to 4096.
12743 (struct hashdummy): Add hash field.
12744 (eq_HASHNODE): Compare unreduced hashes, then lengths, then
12745 the string values using memcmp.
12746 (cpp_lookup): Set dummy.hash.
12747
12748 Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
12749
12750 * configure.in (m88k-openbsd): Express configuration using new fragment
12751 style.
12752 * configure: Rebuilt.
12753 * m88k/aout-dbx.h: New.
12754 * m88k/openbsd.h: New.
12755 * m88k/xm-openbsd.h: New.
12756
12757 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12758
12759 * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
12760
12761 2000-07-12 Richard Henderson <rth@cygnus.com>
12762
12763 * reload.c (push_secondary_reload): Make sure to add the new
12764 reload at the end, after acquiring secondary memory.
12765
12766 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12767
12768 * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
12769
12770 * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
12771 lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
12772
12773 * c-parse.in (stmt): Delete unused variables.
12774
12775 * convert.c (convert_to_vector): Likewise.
12776
12777 * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
12778
12779 * tree.c (finish_vector_type): Prototype.
12780
12781 2000-07-12 Bruce Korb <bkorb@gnu.org>
12782
12783 * fixinc/fixfixes.c: use xmalloc
12784 * fixinc/fixincl.c(initialize): set program name for xmalloc
12785 * fixinc/fixlib.c(must_malloc): obsolete
12786 (is_cxx_header): no longer used - disabled
12787 (skip_quote): inserted and disabled for future use
12788 * fixinc/fixlib.h: reflects above
12789 * fixinc/fixtests.c: removed dinkleberries
12790
12791 2000-07-12 Neil Booth <NeilB@earthling.net>
12792
12793 * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
12794 * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
12795
12796 * cpphash.c: (struct macro_info, alloc_macro, free_macro,
12797 struct toklist_dummy): New.
12798 (cpp_free_definition): Free macros with free_macro.
12799 (count_params): Don't save paramter spellings. Save macro
12800 information in a struct macro_info.
12801 (parse_define): Don't allocate a token list.
12802 (save_expansion): Allocate the macro's token list, and
12803 save parameter spellings if necessary. Use TOKEN_SPELL.
12804 (cpp_create_definition): Make list const.
12805
12806 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
12807
12808 * c-typeck.c (pedwarn_c99): Move to
12809 * c-errors.c: ... Here.
12810 * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
12811 * diagnostic.c (verror, vwarning, vpedwarn): Make static.
12812 * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
12813 (c-errors.o): List dependency.
12814
12815 2000-07-12 Mark Mitchell <mark@codesourcery.com>
12816
12817 * c-parse.c: Remove.
12818 * c-parse.h: Likewise.
12819 * c-parse.y: Likewise.
12820 * objc/objc-parse.c: Likewise.
12821 * objc/objc-pasre.y: Likewise.
12822
12823 2000-07-11 Rodney Brown <RodneyBrown@pmsc.com>
12824
12825 * gcc.texi: Fix minor typos
12826 * extend.texi: Fix minor typos
12827
12828 2000-07-11 Marc Espie <espie@openbsd.org>
12829
12830 * collect2.c (main): Recognize .lo as object files.
12831
12832 2000-07-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
12833
12834 * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
12835 true.
12836
12837 * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
12838 with MAP_ANONYMOUS and MAP_ANON.
12839 * configure, config.in: Rebuilt.
12840
12841 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
12842
12843 * diagnostic.c (save_output_state): Remove.
12844 (restore_output_state): Likewise.
12845 (clear_text_info): New function.
12846 (clear_diagnostic_info): Likewise.
12847 (output_text_length, is_starting_newline, output_prefix,
12848 line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
12849 prefixing_policy, output_buffer_ptr_to_format_args): New macros
12850 (set_real_maximum_length, output_set_maximum_length,
12851 output_set_prefix, output_get_prefix, output_set_maximum_length,
12852 output_destroy_prefix, init_output_buffer,
12853 reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
12854 output_add_newline, output_add_character, output_add_space,
12855 output_append_r, output_append, wrap_text, output_format,
12856 output_do_printf, output_printf, output_do_verbatim,
12857 output_verbatim, verbatim): Use them.
12858 (output_clear): Split into cleat_text_info and
12859 clear_diagnostic_info.
12860 (struct output_state): Move to...
12861
12862 * diagnostic.h: ...Here
12863 (struct output_buffer): Adjust.
12864
12865 2000-07-11 Zack Weinberg <zack@wolery.cumb.org>
12866
12867 * cpplex.c (parse_name): No longer inline (premature optimization).
12868 (do_pop_context): Fold into pop_context.
12869 (pop_context): Returns int.
12870 (lex_next): Hoist test for end of directive into pop_context.
12871 (push_macro_context): Returns int; takes just reader and token.
12872 Hoist test for excessive nesting to caller.
12873 (push_arg_context): Returns void; takes just reader and token.
12874 Do not call stringify_arg or get_raw_token.
12875 (get_raw_token): Convert tail recursion through push_arg_context
12876 to a loop at this level. Call stringify_arg here if appropriate.
12877 (maybe_paste_with_next): Convert tail recursion to a while loop.
12878 Hoist test of paste_level to caller.
12879
12880 (stringify_arg): Push arg context at beginning.
12881 (cpp_get_token): Split out core into _cpp_get_token. Call
12882 process_directive here. Throw away CPP_PLACEMARKER tokens.
12883 (_cpp_get_token): Convert tail recursion through
12884 push_macro_context to a loop at this level.
12885 (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
12886 _cpp_get_raw_token): Use _cpp_get_token.
12887 (_cpp_skip_rest_of_line): Drop the context stack directly; do
12888 not call pop_context.
12889 (_cpp_run_directive): Call lex_next directly.
12890
12891 * cpphash.h: Prototype _cpp_get_token.
12892 * cppexp.c (lex): Use it.
12893 * cpphash.c (parse_define): Use it.
12894 * cpplib.c (get_define_node, do_undef, parse_include,
12895 read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
12896 do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
12897 parse_ifdef, validate_else): Use it.
12898 (cpp_push_buffer): Tweak error message; abort if anyone tries
12899 to push a buffer while macro expansions are stacked.
12900
12901 2000-07-11 Donn Terry <donnte@microsoft.com>
12902
12903 * cpplex.c (free_macro_args, save_token): Cast arg of free
12904 and/or xrealloc to PTR.
12905 (_cpp_init_input_buffer): Clear all fields of the base context.
12906
12907 Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz <cpopetz@cygnus.com>
12908
12909 * gensupport.c (process_rtx): Make rtl checking stop
12910 complaining about the define_insn while it is being
12911 converted from a define_insn_and_split.
12912
12913 Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
12914
12915 * config/mips/mips.c (simple_memory_operand): Access the
12916 INTVAL of the address, not it's containing MEM.
12917
12918 2000-07-11 Bruce Korb <bkorb@gnu.org>
12919
12920 * fixinc/fixtests.c(double_slash): obsolete
12921 (else_endif_label): likewise
12922 * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
12923 (libc1_ifdefd_memx): correct initial comment
12924 and omit the #if/#endif pair from the memxxx declarations
12925 * fixinc/fixincl.x: regen
12926
12927 2000-07-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12928
12929 * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
12930
12931 2000-07-11 Neil Booth <NeilB@earthling.net>
12932
12933 * cpp.texi: Update.
12934
12935 2000-07-11 Neil Booth <NeilB@earthling.net>
12936
12937 * cppinit.c: (cpp_reader_init): Allow digraphs by default.
12938 (handle_option): Set digraphs according to standard.
12939 Merge OPT_lang_c89 handler with OPT_std_c89.
12940
12941 * cpplex.c: (lex_line, can_paste): Honour digraphs in
12942 accordance with the digraphs flag.
12943
12944 * cpplib.h: (struct cpp_options): New option digraphs.
12945
12946 2000-07-10 Hans-Peter Nilsson <hp@axis.com>
12947 Bruce Korb <bkorb@gnu.org>
12948
12949 * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
12950 * fixinc/fixincl.x: Regenerate.
12951 * fixinc/tests/base/testing.h: Add testcase.
12952
12953 2000-07-10 Richard Henderson <rth@cygnus.com>
12954
12955 * config/ia64/ia64.c (got_symbolic_operand): New.
12956 (symbolic_operand, move_operand): Revert 0701 change.
12957 * config/ia64/ia64.h (PREDICATE_CODES): Update.
12958 * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
12959 * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
12960 split the offset into a 14-bit low part instead of a 13-bit low part.
12961 (load_fptr): Mark the mem as unchanging.
12962 (load_symptr): Use got_symbolic_operand.
12963
12964 2000-07-10 Nick Clifton <nickc@cygnus.com>
12965
12966 * libgcc2.c (next_stack_level): Cast result of computation to
12967 (void **) so that the assignment does not generate a warning.
12968
12969 2000-07-10 Chandrakala Chavva <cchavva@redhat.com>
12970
12971 * flags.h : Add new variable flag_single_precision_constant.
12972 * toplev.c (display_help) : Add -fsingle-precision-constant option.
12973 (flag_single_precision_constant): New.
12974 * c-lex.c (yylex): Convert floating point constant to single
12975 precision constant.
12976 * invoke.texi : Add documentation for this new option.
12977
12978 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
12979
12980 * diagnostic.c (output_octal): Second parameter is unsigned.
12981 (output_long_octal): Likewise.
12982 (output_hexadecimal): Likewise.
12983 (output_long_hexadecimal): Likewise.
12984 (output_format): Adjust arguments extraction. Tweak.
12985 (output_verbatim, verbatim): End variable argument list.
12986 (report_diagnostic): Improve documentation.
12987
12988 2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
12989
12990 * c-common.h (build_stmt): Declare.
12991 (build_continue_stmt): Likewise.
12992 (build_break_stmt): Likewise.
12993 (build_return_stmt): Likewise.
12994
12995 * c-decl.c (do_case): Rewrite to do what previously done in
12996 c-parse.in.
12997
12998 * c-semantics.c (build_stmt): Define.
12999 (build_return_stmt): Likewise.
13000 (build_break_stmt): Likewise.
13001 (build_continue_stmt): Likewise.
13002 (build_case_label): Likewise.
13003
13004 * c-parse.in (BREAK): Change to build tree, then generate RTL.
13005 (CONTINUE): Likewise.
13006 (RETURN): Likewise.
13007 (CASE): Likewise.
13008 (DEFAULT): Likewise.
13009
13010 * c-parse.y: Regenerate.
13011 * c-pasre.c: Likewise.
13012
13013 2000-07-09 Jason Merrill <jason@redhat.com>
13014
13015 * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
13016
13017 * tree.h (STRIP_NOPS): Check for error_mark_node.
13018 (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
13019 (dwarf2out_*): Remove duplicate declarations.
13020
13021 * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
13022 DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
13023
13024 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
13025
13026 * diagnostic.c (wrap_text): New function.
13027 (maybe_wrap_text): Likewise.
13028 (output_add_string): Use it.
13029 (output_format): Likewise.
13030 (count_error): Use verbatim instead of notice.
13031 (report_error_function): Likewise. Don't use plain fprintf.
13032 (finish_diagnostic): New function.
13033 (output_do_verbatim): Tweak. Commonalize functionalities in
13034 output_verbatim and verbatim.
13035 (output_verbatim): Adjust.
13036 (verbatim): Likewise.
13037 (report_diagnostic): Define.
13038
13039 * diagnostic.h (report_diagnostic): Prototype.
13040
13041 2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
13042
13043 * cppexp.c (_cpp_parse_expr): Don't use unary plus.
13044
13045 2000-07-09 Neil Booth <NeilB@earthling.net>
13046
13047 * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
13048 IShspace, ISspace: Update.
13049
13050 * cppinit.c: ISTABLE: Update.
13051 V: New.
13052
13053 * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
13054 (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
13055 (skip_block_comment, skip_line_comment, parse_string,
13056 lex_line): Use is_vspace rather than IS_NEWLINE.
13057 (skip_whitespace, lex_line): Clean up to use is_nvspace.
13058 (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive
13059 gets a BOL flag.
13060 (lex_next): Unconditionally stop if within a directive.
13061 Treat directives within macro invocations as directives
13062 (after parse_args emits error), not as the argument.
13063
13064 2000-07-09 Gabriel Dos Reis <gdr@codesourcery.com>
13065
13066 * diagnostic.c (diagnostic_args): New macro.
13067 (diagnostic_msg): Likewise.
13068 (output_formatted_integer): Likewise.
13069 (output_state): New data type.
13070 (digit_buffer): Make global.
13071 (output_add_integer): Rename to output_decimal. Squeeze
13072 digit_buffer.
13073 (output_long_decimal, output_unsigned_decimal,
13074 output_long_unsigned_decimal, output_octal, output_long_octal,
13075 output_hexadecimal, output_long_hexadecimal): New functions.
13076 (output_append_r): New function.
13077 (output_append): Tweak.
13078 (output_flush_on): Rename to output_to_stream.
13079 (output_format): Change prototype. Improve documentation. Handle
13080 more format specifiers.
13081 (build_location_prefix): Rename to context_as_prefix.
13082 (output_notice): Rename to output_do_printf.
13083 (output_printf): Tweak.
13084 (line_wrapper_printf): Likewise.
13085 (vline_wrapper_message_with_location): Adjust call to renamed
13086 functions.
13087 (v_message_with_decl): Likewise.
13088 (default_print_error_function): Likewise.
13089 (save_output_state): New function.
13090 (restore_output_state): Likewise.
13091 (output_do_verbatim): Likewise.
13092 (output_verbatim): Define.
13093 (verbatim): Likewise.
13094
13095 * diagnostic.h (printer_fn): Change return type from void to int.
13096 Improve documentation.
13097 (output_add_integer): Rename to output_decimal.
13098 (output_flush_on, output_format): Don't export.
13099 (output_verbatim, verbatim): Declare.
13100
13101 2000-07-08 Toon Moene <toon@moene.indiv.nluug.nl>
13102
13103 * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
13104 Check whether c divides op1 exactly if operation is not
13105 multiplication.
13106
13107 2000-07-08 Richard Henderson <rth@cygnus.com>
13108
13109 * final.c (final): Do not abort when reg-stack introduces
13110 a new insn.
13111
13112 2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
13113
13114 * cpplib.h (struct cpp_name): Now struct cpp_string.
13115 (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
13116 CPP_HEADER_NAME): Change to type S.
13117 (struct cpp_token): Rename 'name' field to 'str'. Add 'node'
13118 field, a cpp_hashnode *. All references to val.name updated
13119 to use val.str or val.node as appropriate.
13120 (struct cpp_reader): Add spec_nodes field.
13121 (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
13122
13123 * cpphash.h (struct spec_nodes): New.
13124 (enum spell_type): Reorder. Only SPELL_STRING tokens use
13125 val.str. All references to 'spelling > SPELL_NONE' updated to
13126 match.
13127
13128 (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
13129 pfile->buffer->inc are not NULL before dereferencing them.
13130
13131 * cpplex.c (parse_name): Take a pointer to the current token,
13132 plus current position and limit as args; return the new
13133 position; don't copy the text of a name into the string
13134 buffer, instead call cpp_lookup and store the node pointer.
13135 If extending a token, copy out the text of the old into a
13136 scratch buffer, append the new, look that up and store the new
13137 node pointer. Inline.
13138 (maybe_paste_with_next): If the result of paste is a NAME,
13139 then look up the pasted text and store its node pointer.
13140 (lex_line): Adjust for new parse_name interface.
13141 Check for L"str", L'str' using spec_nodes->n_L.
13142 (spell_token): SPELL_IDENT tokens have their spelling in
13143 val.node->name. Handle SPELL_STRING tokens that don't have
13144 string delimiters.
13145 (_cpp_expand_name_space,
13146 (can_paste): Check for L ## "str" using spec_nodes->n_L.
13147 (cpp_get_token, special_symbol): No need to call cpp_lookup.
13148 (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
13149 return 1=equal 0=not, not a tristate.
13150
13151 * cpphash.c (var_args_str): Delete.
13152 (find_param): Compare node fields directly.
13153 (is__va_args__): Use CPP_PEDANTIC. Just compare
13154 token->val.node with spec_nodes->n__VA_ARGS__.
13155 (dump_funlike_macro): Don't use var_args_str.
13156
13157 * cpplib.c (_cpp_check_directive): Just walk through
13158 spec_nodes->dirs comparing pointers.
13159 (get_define_node, do_pragma_poison, detect_if_not_defined,
13160 parse_ifdef): The identifier has already been looked up.
13161 (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
13162 node.
13163 (do_if): Only call detect_if_not_defined at beginning of file.
13164 (_cpp_parse_assertion): Only copy string pointers for
13165 SPELL_STRING tokens.
13166 (pragma_dispatch): Take a node pointer and examine its name
13167 field.
13168 (_cpp_init_stacks): Also initialize the spec_nodes structure.
13169
13170 * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
13171 _cpp_init_macros.
13172 (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
13173 reverse order from the corresponding _cpp_init_* routines.
13174
13175 * cppexp.c (parse_number, parse_charconst, parse_defined,
13176 lex): Check val.node->type instead of calling cpp_defined.
13177 Use spec_nodes entries where appropriate.
13178
13179 * fix-header.c, scan-decls.c: Update for interface changes.
13180
13181 2000-07-08 Geoffrey Keating <geoffk@cygnus.com>
13182
13183 * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
13184 emitting aux_truncdfsf2.
13185
13186 2000-07-03 Donn Terry (donnte@microsoft.com)
13187
13188 * cppinit.c (print_help): split overlong line into ISO C89
13189 maximum chunks.
13190
13191 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
13192
13193 * cppexp.c: Update all code for new lexer interface.
13194 (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
13195 (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
13196 * cpplex.c (token_names): Trim leading CPP_ from names; make
13197 the strings unsigned.
13198 (_cpp_spell_operator): New.
13199 (is_macro_disabled): Disable all macros if rescanning
13200 preprocessed text.
13201 (_cpp_get_directive_token): Remove.
13202
13203 * cppinit.c: Don't set no_macro_expand.
13204 * cpplib.c (read_line_number, do_line): Check only for EOF,
13205 not VSPACE.
13206 * cpphash.h: Update prototypes.
13207 * cpplib.h (CPP_VSPACE): Remove.
13208 (struct cpp_reader): Remove no_macro_expand.
13209
13210 2000-07-08 Neil Booth <NeilB@earthling.net>
13211
13212 * cpphash.c (is__va_args__): New function.
13213 (count_params): Fix line reported in error messages. Use
13214 is__va_args__. Don't return ')' on error. Flag GNU style
13215 rest args macro definitions.
13216 (parse_define): Check macro name is not __VA_ARGS__.
13217 (save_expansion): Check identifier in non-varargs-macro is
13218 not __VA_ARGS__. Don't flag GNU_VARARGS.
13219 * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
13220 (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
13221 than per-token GNU_VARARGS.
13222 * cpplib.h (GNU_VARARGS): Remove.
13223 (GNU_REST_ARGS): New.
13224
13225 Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
13226
13227 * i386.md (call_pop, call, call_value_pop): Do not set
13228 current_function_uses_pic_offset_table for calls to static
13229 functions or indirect calls.
13230
13231 2000-07-07 Jim Wilson <wilson@cygnus.com>
13232
13233 * config/ia64/ia64.c (rws_access_reg): New local write_count. If
13234 is_predicate_reg, then take max write_count of register pair.
13235
13236 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13237
13238 * tradcpp.c (main): Rename label `include' to `add_include' to
13239 avoid conflicts with variable `include' in traditional C.
13240
13241 2000-07-07 Jakub Jelinek <jakub@redhat.com>
13242
13243 * integrate.c (copy_insn_list): Remove REG_LABEL notes.
13244
13245 2000-07-07 Jakub Jelinek <jakub@redhat.com>
13246
13247 * sibcall.c (uses_addressof): Add INMEM argument, check for
13248 current_function_internal_arg_pointer outside of MEM rtxs in addition
13249 to ADDRESSOFs.
13250 (sequence_uses_addressof): Update caller.
13251
13252 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
13253
13254 * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
13255 and friends.
13256
13257 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13258
13259 * system.h (UNION_INIT_ZERO): New macro for initializing union
13260 members in structs.
13261
13262 * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
13263
13264 2000-07-07 Neil Booth <NeilB@earthling.net>
13265
13266 * cpp.texi: Update.
13267
13268 Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com)
13269
13270 * final.c (final): Detect out of bounds array access to
13271 the insn_lengths array.
13272
13273 2000-07-07 Kazu Hirata <kazu@hxi.com>
13274
13275 * fold-const.c (fold): Fix a comment typo.
13276
13277 2000-07-07 Neil Booth <NeilB@earthling.net>
13278
13279 * cpp.texi: Update to new lexer.
13280
13281 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
13282
13283 * tradcpp.c: New file.
13284 * tradcif.y: New file.
13285 * tradcif.c: New generated file.
13286
13287 * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
13288 $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and
13289 dependencies of C. Install tradcpp from install-common, in
13290 $(libsubdir).
13291
13292 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
13293
13294 * cppinit.c: Include cppdefault.h. Refer to
13295 cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
13296 to GCC_INCLUDE_DIR and its length.
13297 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
13298 USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
13299 STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to
13300 cppdefault.h.
13301 (include_defaults_array): Move to cppdefault.c.
13302
13303 * cppdefault.h: New file.
13304 * cppdefault.c: New file.
13305
13306 * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
13307 (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
13308 (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
13309 this file.
13310
13311 Thu Jul 6 18:30:36 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13312
13313 * reload.c (push_reload): When seeing if can reuse a register,
13314 check extra registers against widest of INMODE and OUTMODE.
13315
13316 2000-07-06 Neil Booth <NeilB@earthling.net>
13317
13318 * cpplib.c: (_cpp_parse_assertion): Perform hash lookups
13319 based on full length of predicate.
13320
13321 2000-07-06 Hans-Peter Nilsson <hp@axis.com>
13322
13323 * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
13324 [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
13325
13326 2000-07-05 Kazu Hirata <kazu@hxi.com>
13327
13328 * h8300-proto.h: Fix formatting.
13329 * h8300.c: Likewise.
13330 * h8300.h: Likewise.
13331
13332 2000-07-05 Jim Wilson <wilson@cygnus.com>
13333
13334 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
13335 CCmode.
13336
13337 2000-07-05 Rodney Brown <RodneyBrown@pmsc.com>
13338
13339 * invoke.texi: Fix minor typos
13340 * md.texi: Fix minor typos
13341
13342 2000-07-05 Zack Weinberg <zack@wolery.cumb.org>
13343
13344 * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
13345
13346 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
13347
13348 * cpplex.c: Don't include sys/mman.h.
13349 (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
13350
13351 * cpplib.c: Include sys/mman.h and obstack.h.
13352 (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
13353 obstack.
13354 (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
13355 (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't
13356 bother freeing if stack entries (they will be freed with their buffer).
13357 (do_endif): Free if stack entries from the buffer obstack.
13358 (push_conditional): Allocate if stack entries from the buffer obstack.
13359
13360 (find_answer): Rename to _cpp_find_answer.
13361 (do_assert, do_unassert): Update.
13362
13363 * cpphash.h: Update prototypes.
13364 (xobnew): New convenience macro.
13365 * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
13366 Update comments.
13367 (struct cpp_hashnode): Remove disabled field.
13368
13369 * cppinit.c: Don't include hashtab.h or splay-tree.h.
13370 (report_missing_guard): Moved to cppfiles.c.
13371 (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
13372 cpp_init_includes.
13373 (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
13374 cpp_cleanup_includes. Don't destroy hashtab or
13375 all_include_files here.
13376 (cpp_finish): Use _cpp_report_missing_guards.
13377
13378 * cppfiles.c (report_missing_guard): Moved from cppinit.c.
13379 (_cpp_init_include_table): Rename _cpp_init_includes.
13380 (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
13381
13382 * cppexp.c (parse_assertion): Update for new name of
13383 find_answer.
13384
13385 * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
13386
13387 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
13388
13389 * cpplib.c (do_ident): s/VSPACE/EOF/
13390
13391 2000-07-05 Neil Booth <NeilB@earthling.net>
13392
13393 * cpplex.c: Fix trigraph replacement within strings.
13394
13395 2000-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13396
13397 * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
13398
13399 * xcoffout.c (assign_type_number): Constify.
13400 (xcoffout_source_file): Add static prototype. Don't needlessly
13401 cast away const-ness.
13402
13403 2000-07-04 Jason Merrill <jason@redhat.com>
13404
13405 * frame.h (frame_state): Move base_offset to end.
13406
13407 Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
13408
13409 * calls.c (emit_library_call_value_1): Revert previous change.
13410
13411 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
13412
13413 * fix-header.c (struct partial_proto): Remove unnecessary fields.
13414 (recognized_extern, recognized_function, read_scan_file):
13415 Update for new scheme.
13416 (check_protection): It's still a multiple include guard even
13417 if it doesn't always trigger.
13418 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
13419 new scheme.
13420 * scan.h: Declare struct cpp_token. Update prototypes.
13421
13422 2000-07-03 Neil Booth <neilb@earthling.net>
13423 Zack Weinberg <zack@wolery.cumb.org>
13424
13425 Complete overhaul of the lexer and macro expander.
13426
13427 * cpphash.c (object_defn, funct_defn, push_macro_expansion,
13428 arg, arglist, argdata, reflist, collect_objlike_expansion,
13429 collect_funlike_expansion, collect_params,
13430 warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
13431 unsafe_chars, macarg, compare_defs, special_symbol,
13432 scan_arguments, stringify, funlike_macroexpand,
13433 _cpp_quote_string, monthnames): Delete.
13434 (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
13435 _cpp_create_definition, _cpp_dump_definition,
13436 dump_hash_helper): Adjust.
13437 (find_param, count_params, parse_define, var_args_str,
13438 check_macro_redefinition, save_expansion): New.
13439
13440 * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
13441 parse_string, output_line_command, trigraph_replace,
13442 lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
13443 cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
13444 cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
13445 _cpp_skip_rest_of_line): Modify.
13446
13447 (maybe_macroexpand, skip_comment, copy_comment, skip_string,
13448 find_position, null_warning, bump_column, expand_name_space,
13449 pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
13450 _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
13451 _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
13452 _cpp_prescan): Delete.
13453
13454 (dump_param_spelling, process_directive, lex_next,
13455 is_macro_disabled, stringify_arg, expand_context_stack,
13456 output_token, make_string_token, alloc_number_token,
13457 special_symbol, duplicate_token, maybe_paste_with_next,
13458 can_paste, prevent_macro_expansion, restore_macro_expansion,
13459 get_temp_token, release_temp_tokens, quote_string,
13460 token_names, token_spellings, _cpp_expand_name_space,
13461 _cpp_glue_header_name, _cpp_reserve_name_space,
13462 digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
13463 placemarker_token, eof_token, cpp_context, macro_args,
13464 get_raw_token, parse_arg, parse_args, save_token,
13465 push_arg_context, push_macro_context, pop_context,
13466 do_pop_context, free_macro_args, _cpp_get_line,
13467 _cpp_run_directive): New.
13468
13469 * cpplib.c (validate_else, parse_include, push_conditional,
13470 pass_thru_directive, read_line_number, parse_ifdef,
13471 detect_if_not_defined, _cpp_check_directive, do_define,
13472 do_undef, do_include, do_import, do_include_next, do_error,
13473 do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
13474 top_pragmas, do_pragma_gcc, do_pragma_implementation,
13475 do_pragma_poison, do_pragma_system_header,
13476 do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
13477 dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
13478 do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
13479 cpp_defined): Update for new scheme.
13480 (strtoul_for_line, get_define_node, dump_macro_name,
13481 _cpp_check_linemarker, _cpp_parse_assertion): New.
13482 (_cpp_handle_directive, do_pragma_default): Delete.
13483
13484 * cpphash.h (struct predicate): Now struct answer.
13485 (enum spell_type, struct token_spelling, struct directive,
13486 directive_handler): New.
13487 Update prototypes. Remove unused macros.
13488 * cpplib.h: Update prototypes. Remove unused macros,
13489 structure definitions, and fields.
13490
13491 * cpperror.c (print_containing_files, v_message): Adjust.
13492 * cppexp.c (parse_assertion, lex, parse_escape,
13493 _cpp_parse_expr): Adjust.
13494 * cppfiles.c (open_include_file, _cpp_execute_include,
13495 _cpp_compare_file_date, cpp_read_file, read_include_file):
13496 Adjust.
13497 * cppinit.c (dump_special_to_buffer): Delete.
13498 (append_include_chain, merge_include_chains, cpp_reader_init,
13499 cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
13500 cpp_finish, handle_option, print_help): Adjust.
13501 * cppmain.c (main): Adjust.
13502
13503 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
13504
13505 * cppspec.c (lang_specific_driver): Use double quotes in error
13506 message.
13507
13508 Mon Jul 3 16:53:43 2000 Clinton Popetz <cpopetz@cygnus.com>
13509
13510 * calls.c (emit_library_call_value_1): Use valreg instead
13511 of hard_libcall_value.
13512
13513 2000-07-03 Geoff Keating <geoffk@cygnus.com>
13514
13515 * config/rs6000/rs6000.c (rs6000_emit_move): New function.
13516 * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
13517 * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
13518 (movhi): Likewise.
13519 (movqi): Likewise.
13520 (movdf): Likewise.
13521 (movsf): Likewise.
13522 (movdi): Likewise.
13523 (movti): Likewise.
13524
13525 * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
13526 mode instead of wider_mode is being used.
13527
13528 2000-07-03 Jakub Jelinek <jakub@redhat.com>
13529
13530 * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
13531 of 'r'. Use q_regs_operand.
13532 (andsi_1+2): Use q_regs_operand.
13533
13534 2000-07-03 Jakub Jelinek <jakub@redhat.com>
13535
13536 * builtins.c (get_memory_rtx): Always put into alias set 0.
13537
13538 2000-07-03 Nick Clifton <nickc@cygnus.com>
13539
13540 * config/arm/arm.md: Fix post increment and pre increment
13541 peepholes so that they do not generate UNPREDICATBLE opcodes.
13542 (ie ones where the increment clobbers the source/destination).
13543
13544 2000-07-01 Marek Michalkiewicz <marekm@linux.org.pl>
13545
13546 * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
13547 change too big for -mtiny-stack" a warning, if larger than 63.
13548 (out_set_stack_ptr): Change the logic so -mno-interrupts is
13549 always safe to use on possible future devices.
13550 (function_prologue): Write SPH before SPL, for consistency.
13551 If interrupt_func_p true, we know we have enabled interrupts.
13552 (avr_num_arg_regs): New function. Round up to even number of
13553 bytes if no -mpack-args or if calling a libgcc function.
13554 (function_arg, function_arg_advance): Use it.
13555 (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
13556 Output "movw" if available.
13557 (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
13558 of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
13559 (asm_output_section_name): Add blanks for consistent output.
13560 (encode_section_info): Set TREE_READONLY for progmem data to
13561 avoid gas warnings about changed section attributes.
13562 (avr_hard_regno_mode_ok): Force non-QImode data to start in
13563 even numbered registers on devices with "movw".
13564 * config/avr/avr.h (MASK_*): Define bits for target_flags.
13565 (TARGET_SWITCHES): Mark help strings for translation.
13566 Add new -mpack-args and -menhanced switches.
13567 (TARGET_OPTIONS): Mark help strings for translation.
13568 (progmem_section): Add section attributes.
13569 * config/avr/avr.md (*movhi, call_insn, call_value_insn):
13570 Output "movw" if available.
13571 (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
13572 New patterns.
13573 * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
13574 call convention (arguments aligned on even registers).
13575 (_cleanup, _exit): Make weak symbols libc can override.
13576
13577 2000-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13578
13579 * fp-bit.h: New file.
13580
13581 * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
13582 Comment #endif statements.
13583 (__thenan_sf, __thenan_df): Add missing braces around initializer.
13584
13585 Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
13586
13587 * gcse.c (compute_pre_data): Compute ae_kill using other local
13588 properties instead of calling compute_ae_kill.
13589
13590 * alias.c (init_alias_analysis): Do not call
13591 prologue_epilogue_contains until after reload has completed.
13592
13593 2000-07-02 Benjamin Chelf <chelf@codesourcery.com>
13594
13595 * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
13596 (genrtl_finish_compound_stmt): Likewise.
13597 (genrtl_compound_stmt): Change to return void.
13598
13599 * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
13600 move code from here to ...
13601 (genrtl_compound_stmt): ... here.
13602 (genrtl_finish_compound_stmt): Remove.
13603 (expand_stmt): Add comment.
13604
13605 2000-07-02 Zack Weinberg <zack@wolery.cumb.org>
13606
13607 * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
13608 and VOID_TYPE_P.
13609
13610 2000-07-02 Jakub Jelinek <jakub@redhat.com>
13611
13612 * cpplib.h (struct cpp_reader): New field include_depth.
13613 (struct cpp_printer): Rename last_bsd to last_id.
13614 * cppfiles.c (read_include_file): Bump include_depth.
13615 * cpplex.c (cpp_pop_buffer): Decrement include_depth.
13616 (output_line_command): Output correct #line if a header
13617 is including itself and is not protected against multiple inclusion.
13618 Use include_depth instead of buffer_stack_depth, last_id instead of
13619 last_bsd.
13620 * cppinit.c (cpp_start_read): Initialize last_id instead of
13621 last_bsd.
13622
13623 2000-07-01 Benjamin Chelf <chelf@codesourcery.com>
13624
13625 * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
13626 (c-semantics.o): New target.
13627
13628 * c-common.h (TREE_LANG_FLAG_?): Added documentation.
13629 (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
13630 (genrtl_clear_out_block): Likewise.
13631 (genrtl_goto_stmt): Likewise.
13632 (genrtl_expr_stmt): Likewise.
13633 (genrtl_decl_stmt): Likewise.
13634 (genrtl_if_stmt): Likewise.
13635 (genrtl_while_stmt): Likewise.
13636 (genrtl_do_stmt): Likewise.
13637 (genrtl_return_stmt): Likewise.
13638 (genrtl_for_stmt): Likewise.
13639 (genrtl_break_stmt): Likewise.
13640 (genrtl_continue_stmt): Likewise.
13641 (genrtl_scope_stmt): Likewise.
13642 (genrtl_switch_stmt): Likewise.
13643 (genrtl_case_label): Likewise.
13644 (genrtl_begin_compound_stmt): Likewise.
13645 (gerntl_finish_compound_stmt): Likewise.
13646 (genrtl_compound_stmt): Likewise.
13647 (genrtl_asm_stmt): Likewise.
13648 (genrtl_decl_cleanup): Likewise.
13649 (DECL_ANON_UNION_ELEMS): Likewise.
13650 (emit_local_var): Likewise.
13651 (make_rtl_for_local_static): Likewise.
13652 (expand_cond): Likewise.
13653 (expand_stmt): Likewise.
13654 (c_expand_return): Likewise.
13655 (c_expand_start_case): Likewise.
13656 (do_case): Likewise.
13657 (COMPOUND_STMT_NO_SCOPE): Likewise.
13658 (c_expand_asm_operands): Likewise.
13659 (NEW_FOR_SCOPE_P): New macro.
13660 (expand_expr_stmt_fn): New type.
13661
13662 (set_current_function_name_declared): Likewise.
13663 (current_function_name_declared): Likewise.
13664 (lang_expand_stmt): Likewise.
13665 (stmts_are_full_exprs_p): Likewise.
13666 (anon_aggr_type_p): Likewise.
13667 (lang_expand_expr_stmt): Likewise.
13668 (build_case_label): Likewise.
13669
13670 * c-decl.c (lang_expand_expr_stmt): Initialize.
13671 (stmts_are_full_exprs_p): Define.
13672 (current_function_name_declared): Likewise.
13673 (do_case): Likewise.
13674 (lang_expand_stmt): Likewise.
13675 (set_current_function_name_declared): Likewise.
13676 (anon_aggr_type_p): Likewise.
13677
13678 * c-semantics.c: New file.
13679 (expand_cond): Moved from cp/semantics.c.
13680 (genrtl_do_pushlevel): Likewise.
13681 (genrtl_clear_out_block): Likewise.
13682 (genrtl_goto_stmt): Likewise.
13683 (genrtl_expr_stmt): Likewise.
13684 (genrtl_decl_stmt): Likewise.
13685 (genrtl_if_stmt): Likewise.
13686 (genrtl_while_stmt): Likewise.
13687 (genrtl_do_stmt): Likewise.
13688 (genrtl_return_stmt): Likewise.
13689 (genrtl_for_stmt): Likewise.
13690 (genrtl_break_stmt): Likewise.
13691 (genrtl_continue_stmt): Likewise.
13692 (genrtl_scope_stmt): Likewise.
13693 (genrtl_switch_stmt): Likewise.
13694 (genrtl_case_label): Likewise.
13695 (genrtl_begin_compound_stmt): Likewise.
13696 (genrtl_finish_compound_stmt): Likewise.
13697 (genrtl_compound_stmt): Likewise.
13698 (genrtl_asm_stmt): Likewise.
13699 (genrtl_decl_cleanup): Likewise.
13700 (make_rtl_for_local_static): Moved from cp/decl.c.
13701 (emit_local_var): Likewise.
13702 (expand_stmt): Define.
13703
13704 * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
13705 (c_expand_return): Likewise.
13706 (c_expand_start_case): Likewise.
13707
13708 2000-07-01 Richard Henderson <rth@cygnus.com>
13709
13710 * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
13711 with the low 13 bits set.
13712 (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
13713 * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one
13714 of the low 13 bits into a CONST plus an adddi3.
13715 (load_symptr): Set RTX_UNCHANGING_P.
13716
13717 See ChangeLog.3 for earlier changes.
This page took 0.602756 seconds and 5 git commands to generate.