c-decl.c (grokdeclarator): Give zero-length arrays size zero.
[gcc.git] / gcc / ChangeLog
1 2000-01-03 Richard Henderson <rth@redhat.com>
2
3 * c-decl.c (grokdeclarator): Give zero-length arrays size zero.
4 Remove dead code.
5 * c-typeck.c (push_init_level): Move checks for flexible array
6 members and zero length arrays ...
7 (pop_init_level): ... here. Silently discard empty initializations.
8 Remove dead code.
9 * varasm.c (output_constructor): Update for sizeof change to
10 zero-length arrays.
11
12 * extend.texi (Zero Length): Clarify semantics.
13
14 2001-01-03 Alexandre Oliva <aoliva@redhat.com>
15
16 * configure.in (tm.h): Include isns-codes.h last.
17 * configure: Rebuilt.
18
19 2001-01-03 Richard Henderson <rth@redhat.com>
20
21 * config/alpha/alpha.md (addvsi3, addvdi3): New.
22 (negvsi2, negvdi2, subvsi3, subvdi3, mulvsi3, mulvdi3): New.
23
24 2001-01-03 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
25
26 * tradcpp.c (main): Make sure finclude() is called with a valid
27 indepth value while handling -include.
28
29 2001-01-03 Alexandre Oliva <aoliva@redhat.com>
30
31 * gencodes.c (output_predicate_decls): New function.
32 (main): Call it.
33 * machmode.h (GET_MODE_MASK): Arrange for it to be defined
34 even if it is not the first time machmode.h is #included.
35 * config/sh/sh.c (fpul_operand): Declare MODE argument.
36 * tm.texi (PREDICATE_CODES): Document predicate declarations.
37 * gcc.texi (Copyright): Added 2001.
38
39 2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
40
41 * c-common.c (c_common_lang_init): New function. Warn if format
42 warning options which only have effects when used with -Wformat
43 are used without -Wformat.
44 * c-common.h (c_common_lang_init): Declare.
45 * c-lang.c (lang_init): Call c_common_lang_init.
46 * objc/objc-act.c (lang_init): Call c_common_lang_init.
47
48 2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
49
50 * configure.in: Check for the mktemp command.
51 * configure: Regenerate.
52 * gccbug.in: Use a separate temporary file $TEMP0 for one use of
53 $TEMP. Create temporary files with mktemp, if available at
54 configure time; otherwise use set -C. Remove temporary files
55 before exit.
56
57 2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
58
59 * configure.in: Require at least texinfo 4.0. Check for whether
60 Pod::Man is sufficiently recent to regenerate GCC manpages.
61 * configure: Regenerate.
62 * Makefile.in (TEXI2POD): Call perl explicitly rather than relying
63 on #!.
64 (GENERATED_MANPAGES): Define.
65 (generated-manpages): New target. Depend on cpp.1 as well as
66 gcov.1.
67 (install-man): Depend on $(GENERATED_MANPAGES) (defined by
68 configure to generated-manpages or empty) rather than on the
69 manpages directly. Remove execute permission from installed
70 gcov.1 as well as cpp.1.
71 * cpp.1, gcov.1: Regenerate.
72
73 2001-01-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
74
75 * builtins.c (expand_builtin_strncmp): Use host_integerp and
76 tree_low_cst. Allow using cmpstrsi in more cases.
77
78 Wed Jan 3 10:48:43 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
79
80 * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable
81 sized types.
82
83 Wed Jan 3 12:22:32 2001 Alexandre Oliva <aoliva@redhat.com>
84
85 * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'.
86 * Makefile.in (HOST_CFLAGS): Mention build-make.
87
88 Wed Jan 3 08:53:50 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
89
90 * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore
91 as JUMP_INSN.
92
93 2001-01-01 Bernd Schmidt <bernds@redhat.com>
94
95 * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on
96 a REG rtx.
97
98 * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg. All
99 callers changed.
100
101 * alias.c (throughout): Use ORIGINAL_REGNO when accessing
102 reg_base_value and reg_known_value arrays.
103 (init_alias_analysis): Add more cases to detect known values.
104 * sched-deps.c (deps_may_trap_p): New function.
105 (sched_analyze_2): Use it.
106
107 2001-01-03 Alexandre Oliva <aoliva@redhat.com>
108
109 * combine.c (simplify_shift_const): Even if we're sign-extracting,
110 don't discard an ASHIFTRT if we're shifting in a wider mode.
111
112 2000-01-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
113
114 * toplev.c (rest_of_compilation): Don't print basic block information
115 when CFG isn't up to date.
116
117 2001-01-02 Mark Elbrecht <snowball3@bigfoot.com>
118
119 * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define.
120 (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define.
121 (UNALIGNED_SHORT_ASM_OP): Define.
122 (CPP_PREDEFINES): Remove defines for GO32 and DJGPP.
123
124 2001-01-02 Mark Mitchell <mark@codesourcery.com>
125
126 * fold-const.c (fold_convert): Fix typo.
127
128 2001-01-02 Richard Henderson <rth@redhat.com>
129
130 * c-common.h (ASM_INPUT_P): New.
131 * c-parse.in (asm): Set it when needed.
132 * c-semantics.c (genrtl_asm_stmt): Test it instead of the
133 existance of an operand.
134
135 Tue Jan 2 20:27:07 MET 2001 Jan Hubicka <jh@suse.cz>
136
137 * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY.
138 (dwarf2out_frame_debug_expr): Likewise.
139 (mem_loc_descriptor): Handle PRE and POST_MODIFY.
140
141 Tue Jan 2 20:21:31 MET 2001 Jan Hubicka <jh@suse.cz>
142
143 * i386.c (ix86_split_to_parts): Return number of part required;
144 handle TFmodes.
145 (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle
146 TFmodes.
147 (ix86_split_long_move): Use number of part returned
148 by ix86_split_to_parts
149 * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE):
150 New macros.
151 (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double
152 (LONG_DOUBLE_TYPE_SIZE): Change from constant.
153 (MAX_LONG_DOUBLE_TYPE_SIZE): New macro.
154 (INTEL_EXTENDED_IEEE_FORMAT): Likewise.
155 (ALIGN_MODE_128): Add TFmode.
156 (IS_STACK_MODE): Likewise.
157 (HARD_REGNO_NREGS): TFmode needs 3 registers.
158 (HARD_REGNO_OK): Support TFmodes.
159 (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes.
160 * i386.md (scheduler definitions): Use memory operand to determine
161 fst/fld instructions; use mode attribute to determine real mode of
162 the instruction.
163 (*tf): New patterns, expanders and splitters; based on XFmode patterns.
164 * invoke.texi (128bit-long-double, 96bit-long-double): Document.
165
166 2001-01-02 Mark Mitchell <mark@codesourcery.com>
167
168 * tree.def (TRUTH_NOT_EXPR): Improve documentation.
169
170 Tue Jan 2 10:47:38 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.
171
172 * expr.c (store_constructor_field): Update ALIGN before calling
173 store_constructor.
174
175 2001-01-02 Jeffrey Oldham <oldham@codesourcery.com>
176
177 * config/mips/mips.c (function_arg): Don't pass NULL_TREE to
178 host_integerp.
179
180 2001-01-02 Jeffrey Oldham <oldham@codesourcery.com>
181
182 * tm.texi (FUNCTION_ARG): Document that @var{type} can be an
183 incomplete type.
184
185 Tue Jan 2 10:47:38 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.
186
187 * c-decl.c (start_function): Don't warn on third parameter to main.
188
189 2001-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
190
191 * tsystem.h: Define HAVE_DECL_GETOPT.
192
193 2001-01-02 Philip Blundell <pb@futuretv.com>
194
195 * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber
196 of input operand.
197
198 2001-01-02 Richard Henderson <rth@redhat.com>
199
200 * alpha.md (*ze_and_ne): Duplicate insn condition to split.
201
202 2001-01-02 Andreas Jaeger <aj@suse.de>
203
204 * c-decl.c (c_decode_option): Remove support of
205 -Wmissing-noreturn.
206
207 * toplev.c (documented_lang_options): Remove -Wmissing-noreturn.
208 (W_options): Add -Wmissing-noreturn here.
209
210 * flow.c: Define lang_missing_noreturn_ok_p.
211 (check_function_return_warnings): Use it.
212
213 * c-common.h: Declare lang_missing_noreturn_ok_p.
214
215 * c-lang.c (c_missing_noreturn_ok_p): New function.
216 (lang_init): Set lang_missing_noreturn_ok_p.
217
218 * invoke.texi (Warning Options): Document this.
219
220 2000-12-27 Phil Edwards <pme@sources.redhat.com>
221
222 * extend.texi (C++ Extensions): New node for C++ attributes;
223 describe init_priority and com_interface.
224 * invoke.texi: Remove -finit-priority as it now has zero effect.
225 * install.texi: Fix xref syntax.
226 * md.texi: Likewise.
227
228 Mon Jan 1 21:28:29 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
229
230 * config.gcc (sparc64-wrs-vxworks*): New case.
231 * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files.
232
233 * config/sparc/sparc.c (sparc_override_options): Do support different
234 pointer and architecture size.
235 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4.
236 (POINTERS_EXTEND_UNSIGNED): Define.
237 (Pmode): Test TARGET_ARCH64, not TARGET_PTR64.
238 (FUNCTION_MODE): Define to be Pmode.
239 * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI.
240
241 * function.c (expand_function_end): Properly handle DECL_RESULT
242 and copy when ptr_mode != Pmode.
243 * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed.
244
245 2001-01-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
246
247 * c-common.c (c_common_nodes_and_builtins): Set prototype
248 parameters for __builtin_fputs, __builtin_fputc and
249 __builtin_fwrite. Don't declare plain fputc as a builtin.
250
251 2001-01-01 John David Anglin <dave@hiauly1.hia.nrc.ca>
252
253 * loop.c (add_label_notes): Increment the label usage count when
254 a note is added to an insn which refers to a CODE_LABEL.
255 * gcse.c (add_label_notes): Likewise.
256
257 2001-01-01 Andreas Jaeger <aj@suse.de>
258
259 * loop.c (scan_loop): Use xmalloc to allocate movables.
260
261 2001-01-01 Alexandre Oliva <aoliva@redhat.com>
262
263 * tm.texi (REGISTER_MOVE_COST): Add a mode argument.
264 * reload.c (REGISTER_MOVE_COST): Likewise. Adjust all callers.
265 * reload1.c (REGISTER_MOVE_COST): Likewise.
266 * regclass.c (REGISTER_MOVE_COST): Likewise.
267 (move_cost, may_move_in_cost, may_move_out_cost): Add mode
268 dimension. Adjust all users.
269 (init_reg_sets_1): Iterate on all modes.
270 * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust.
271 * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust.
272 * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust.
273 * config/arc/arc.h (REGISTER_MOVE_COST): Adjust.
274 * config/arm/arm.h (REGISTER_MOVE_COST): Adjust.
275 * config/avr/avr.h (REGISTER_MOVE_COST): Adjust.
276 * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust.
277 * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust.
278 * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust.
279 * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust.
280 * config/i386/i386.h (REGISTER_MOVE_COST): Adjust.
281 * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust.
282 * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust.
283 * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust.
284 * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust.
285 * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust.
286 * config/mips/mips.h (REGISTER_MOVE_COST): Adjust.
287 * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust.
288 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust.
289 * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust.
290 * config/pa/pa.h (REGISTER_MOVE_COST): Adjust.
291 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust.
292 * config/pj/pj.h (REGISTER_MOVE_COST): Adjust.
293 * config/romp/romp.h (REGISTER_MOVE_COST): Adjust.
294 * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust.
295 * config/sh/sh.h (REGISTER_MOVE_COST): Adjust.
296 * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust.
297
298 2001-01-01 Bernd Schmidt <bernds@redhat.com>
299
300 * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of
301 arg VARIES_P. Call it with extra arg.
302 (true_dependence): Likewise.
303 * rtl.h (rtx_addr_can_trap_p): Declare.
304 (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update
305 prototypes.
306 * rtlanal.c (rtx_addr_can_trap_p): No longer static.
307 (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow
308 pic offset table register if it's zero. All callers changed.
309 (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed.
310
311 Mon Jan 1 07:38:33 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
312
313 * explow.c (convert_memory_address, case SYMBOL_REF): Copy
314 STRING_POOL_ADDRESS_P.
315
316 * config/sparc/sparc.c (input_operand): Properly test for short op.
317
318 * config.gcc (sparc-*-elf): Include sparc/sol2.h.
319 (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h.
320 (sparclite-*-elf*, sparc86x-*-elf*): Likewise.
321 * config/sparc/elf.h: No longer include sol2.h.
322 * config/sparc/lifeelf.h: No longer include sparc/elf.h.
323 * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise.
324
325 * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64.
326
327 2001-01-01 Michael Hayes <mhayes@redhat.com>
328
329 * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds.
330 (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise.
331 (record_initial): Likewise.
332 * unroll.c (copy_loop_body, loop_iterations): Likewise.
333 (remap_split_bivs): Likewise.
334
335 2001-01-01 Michael Hayes <mhayes@redhat.com>
336
337 * loop.c (loop_ivs_free): New function.
338 (strength_reduce): Break out from...
339
340 2001-01-01 Michael Hayes <mhayes@redhat.com>
341
342 * loop.h (struct iv): New.
343 (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'.
344 (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info',
345 'reg_biv_class' fields with 'regs' and 'n_regs'.
346 (struct ivs): Rename 'loop_iv_list' field to 'list'.
347 * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array.
348 * unroll.c (loop_iterations): Check array bounds with ivs->n_regs.
349
350 2000-12-31 Alexandre Oliva <aoliva@redhat.com>
351
352 * resource.c (mark_referenced_resources): Abort() before
353 attempting to mark a pseudo register.
354 (mark_set_resources): Likewise.
355
356 2001-01-01 Michael Hayes <mhayes@redhat.com>
357
358 * loop.h (REG_IV_CLASS): New accessor macro.
359 * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array.
360 * unroll.c (REG_IV_CLASS): Likewise.
361
362 Sun Dec 31 19:20:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
363
364 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR): New.
365 (loc_descriptor_from_tree, case SAVE_EXPR): New.
366
367 2001-01-01 Michael Hayes <mhayes@redhat.com>
368
369 * loop.c (loop_giv_reduce_benefit): Break out from strength_reduce.
370 (loop_givs_dead_check, loop_givs_reduce, loop_givs_rescan): Likewise.
371 (prescan_loop): Set pre_header_has_call in loop_info.
372 * loop.h (struct_iv_class): Add `final_value' and `all_reduced'.
373 (struct loop_info): Add `pre_header_has_call'.
374
375 * loop.c (loop_bivs_find): Break out from strength_reduce.
376 (loop_bivs_init_find, loop_bivs_check, loop_givs_find): Likewise.
377 (loop_givs_check, loop_biv_eliminable_p): Likewise.
378
379 * loop.c (LOOP_REG_LIFETIME, LOOP_REG_GLOBAL_P): Define.
380 (scan_loop, record_giv): Use LOOP_REG_LIFETIME and LOOP_REG_GLOBAL_P.
381
382 * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Define.
383 * loop.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Use in place of
384 direct access to uid_luid array.
385 * unroll.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Likewise.
386
387 * loop.h (struct loop_movables): New.
388 (LOOP_MOVABLES): New.
389 (struct loop_info): Add movables field.
390 * loop.c (struct movables): Delete. Replace all uses
391 with struct loop_movables.
392 (the_movables): Delete. Replace all uses with movables
393 field in loop_info.
394 (loop_movables_add, loop_movables_free): New functions.
395 (scan_loop): Use xmalloc instead of alloca for movables.
396 Call loop_movables_free.
397
398 * loop.c (debug_loops): New.
399
400 2000-12-31 Philip Blundell <philb@gnu.org>
401
402 * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Add missing asm
403 operands.
404
405 2000-12-30 Richard Henderson <rth@redhat.com>
406
407 * dbxout.c (dbxout_block): Invert logic on eliding LBRAC/RBRAC.
408 Initialize variables properly for DBX_LBRAC_FIRST.
409
410 2000-12-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
411
412 * expr.c (expand_expr, case COMPONENT_REF): Fix typo in last change.
413
414 2000-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
415
416 * builtins.c (validate_arglist): New function, use it.
417
418 2000-12-30 Philip Blundell <philb@gnu.org>
419
420 * config/arm/arm.c (arm_expand_prologue): Fix typos in error
421 message and comment. Note location of testcase for an unhandled
422 situation.
423
424 2000-12-30 Jeffrey Oldham <oldham@codesourcery.com>
425
426 * defaults.h (BUILD_VA_LIST_TYPE): New definition.
427 * tree.c (build_common_tree_nodes_2): Ensure the va_list_type_node
428 is a copy, not an alias.
429
430 2000-12-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
431
432 * calls.c (calls_function_1, case CONSTRUCTOR): New case.
433
434 * alias.c (alias_sets_conflict_p): New function.
435 (mems_in_disjoint_alias_sets_p): Use it.
436 (readonly_fields_p): Moved from expr.c; check for record type.
437 (objects_must_conflict_p): New function.
438 * calls.c (expand_call): Use assign_temp as much as possible, use
439 readonly variant if assigned once, and don't set memory attributes.
440 (emit_library_call_value_1, store_one_arg): Likewise.
441 * integrate.c (expand_inline_function): Likewise.
442 * stmt.c (expand_asm_operands, expand_return): Likewise.
443 * expr.c (copy_blkmode_from_reg, store_constructor): Likewise.
444 (store_field, save_noncopied_parts, expand_expr): Likewise.
445 (expand_expr_unaligned): Likewise.
446 (readonly_fields_p): Moved to alias.c.
447 (safe_from_p): Rework handling of SAVE_EXPR.
448 MEMs ony conflict if alias sets conflict; likewise for INDIRECT_REF.
449 * function.c (struct temp_slot): Delete field ALIAS_SET; add TYPE.
450 (assign_stack_for_temp): Use objects_must_confict_p.
451 Set all memory attributes from type, if specified.
452 (mark_temp_slot): Mark TYPE field.
453 * tree.h (alias_sets_conflict_p, readonly_fields_p): New decls.
454 (objects_must_conflict_p): Likewise.
455
456 * stmt.c (expand_decl): Don't use assign_stack_temp in error case.
457 (add_case_node): No need to copy nodes anymore.
458
459 2000-12-30 Alexandre Oliva <aoliva@redhat.com>
460
461 * config/sh/sh.c (split_branches): Don't dereference re-computed
462 `beyond' before checking it's non-NULL.
463
464 2000-12-29 Robert Lipe <robertl@sco.com>
465
466 Remove COFF support from i?86-pc-sco3.2v5.
467 * i386/sco5.h (PREFERRED_DEBUGGING_TYPE): Change to Dwarf II.
468 (TARGET_ELF): Now always true.
469 (SUBTARGET_SWTICHES: )Remove -mcoff.
470
471 * i386/t-sco5 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
472 MULTILIB_EXCEPTION): Nuke coff.
473 (CRTSTUFF_T_CFLAGS_S): Deleted.
474 (TARGET_LIBGCC2_CFLAGS): Added.
475
476 2000-12-29 Alexandre Oliva <aoliva@redhat.com>
477
478 * varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO
479 twice. Update desc->rtl and ->label, in case ENCODE_SECTION_INFO
480 modifies them.
481
482 2000-12-29 Bernd Schmidt <bernds@redhat.com>
483
484 * ia64.c (ia64_expand_load_address): Accept additional scratch
485 register argument. All callers & prototype changed.
486 Use scratch register when generating load_symptr insns.
487 * ia64.md (movdi_symbolic): Clobber a scratch register. Use it
488 when calling ia64_expand_load_address.
489 (movdi): Generate movdi_symbolic with additional operand.
490 (load_gprel64): Use pic_offset_table_rtx instead of (reg:DI 1).
491 (load_symptr): Likewise. Use additional operand as a scratch
492 register instead of generating it here.
493
494 * basic-block.h: Add a comment.
495 * flow.c (PROP_POSTRELOAD): New macro.
496 (update_life_info): Add it to prop_flags.
497 (mark_set_1): If it is set, compute REG_N_SETS for the original
498 register number of a hard reg.
499
500 * emit-rtl.c (gen_raw_REG): New function.
501 (gen_rtx_REG, gen_reg_rtx, init_emit_once): Use it instead of
502 gen_rtx_raw_REG.
503 * print-rtl.c (print_rtx): Print ORIGINAL_REGNO.
504 * final.c (alter_subreg): Update it.
505 * regrename.c (do_replace): Likewise. Use gen_raw_REG.
506 * rtl.def (REG): Update comment.
507 * rtl.h (X0UINT, ORIGINAL_REGNO): New macros.
508 (gen_raw_REG): Declare.
509
510 2000-12-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
511
512 * tree.c (get_set_constructor_bits): Use host_integerp and
513 tree_low_cst.
514
515 * local-alloc.c (update_equiv_regs): Don't use copy_rtx on PATTERN.
516
517 * toplev.c (main): Call xmalloc_set_program_name.
518 * gcc.c (main): Likewise.
519
520 2000-12-29 Philip Blundell <philb@gnu.org>
521
522 * config/arm/arm.c (arm_override_options): Fix typo in warning
523 message.
524
525 2000-12-29 Richard Henderson <rth@redhat.com>
526
527 * config/alpha/alpha.c (alpha_expand_block_move): Initialize
528 src_align and dst_align in bits. Do unaligned quadword loads
529 if possible for BWX too.
530 (alpha_expand_block_clear): Initialize align in bits. Track
531 small leading offsets into a larger alignment. Play games with
532 stq_u for large 4-byte aligned blocks. Use load/mask/store
533 for appropreately aligned heads and tails.
534
535 2000-12-29 Alexandre Oliva <aoliva@redhat.com>
536
537 * function.c (assign_parms): Convert arguments passed by
538 reference to the right mode.
539
540 2000-12-28 Geoffrey Keating <geoffk@redhat.com>
541
542 * c-parse.in (select_or_iter_stmt): Use truthvalue_conversion
543 on the condition of a FOR statement, so that it gets typechecked
544 and optimised.
545
546 2000-12-29 Alexandre Oliva <aoliva@redhat.com>
547
548 * c-decl.c (grokdeclarator): Prevent crash in case of overflow in
549 array size.
550
551 * calls.c (emit_library_call_value_1): Add to call_fusage the
552 stack slot assigned to argument passed by reference.
553
554 2000-12-28 Jeffrey Oldham <oldham@codesourcery.com>
555
556 * toplev.h (extern really_sorry): Remove extern declaration for
557 nonexistent function.
558
559 2000-12-28 Jeffrey Oldham <oldham@codesourcery.com>
560
561 * varasm.c (initializer_constant_valid_p): Indicate subtraction of
562 pointers to the same string constant is absolute.
563
564 2000-12-28 Joseph S. Myers <jsm28@cam.ac.uk>
565
566 * c-common.c (enum format_type): Add strfmon_format_type.
567 (decl_attributes): Handle format attributes strfmon and
568 __strfmon__.
569 (FMT_FLAG_USE_DOLLAR, FMT_FLAG_ZERO_WIDTH_BAD,
570 FMT_FLAG_EMPTY_PREC_OK): Define.
571 (format_char_info): Update comment for flag_chars.
572 (format_flag_spec): Add skip_next_char.
573 (format_kind_info): Add left_precision_char.
574 (printf_flag_specs, scanf_flag_specs, strftime_flag_specs,
575 format_types): Update for these new structure members and flags.
576 (time_char_table): Make const.
577 (strfmon_length_specs, strfmon_flag_specs, strfmon_flag_pairs,
578 monetary_char_table): New.
579 (format_types): Add details of strfmon formats.
580 (init_function_format_info): Create default attribute for strfmon.
581 (check_format_info_main): Check the new flags. Handle
582 skip_next_char and left precision.
583 * toplev.c (documented_lang_options): Update description of
584 -Wformat.
585 * extend.texi: Document strfmon format attributes. Document
586 attribute forms such as __printf__. Clarify format_arg attribute
587 documentation.
588 * invoke.texi (-Wformat): Update for strfmon formats.
589
590 2000-12-28 Andreas Jaeger <aj@suse.de>
591
592 * expmed.c (store_bit_field): Fix last patch.
593
594 2000-12-28 Alexandre Oliva <aoliva@redhat.com>
595
596 * config/sh/crt1.asm (start_l): `__SH4_SINGLE_ONLY__' was missing
597 the trailing `__'.
598
599 2000-12-28 Alan Lehotsky <lehotsky@tiac.net>
600
601 * expmed.c (store_bit_field): Correctly compute smallest mode that
602 is sufficient to contain all bits we are storing.
603
604 2000-12-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
605
606 * builtins.c (build_function_call_expr): New function. Use it
607 everywhere in lieu of manually constructing a CALL_EXPR.
608
609 2000-12-27 Chandrakala Chavva <cchavva@redhat.com>
610
611 * calls.c (store_one_arg): If parm is passed both in stack and in
612 register and offset is greater than reg_parm_stack_space, split
613 the offset and call emit_push_insn().
614
615 2000-12-27 Nick Clifton <nickc@redhat.com>
616
617 * ifcvt.c (noce_emit_store_flag): Handle jump insns that are
618 PARALLEL.
619
620 2000-12-27 Alexandre Oliva <aoliva@redhat.com>
621
622 * rtl.c (copy_most_rtx, shallow_copy_rtx): Copy frame_related
623 flag.
624
625 2000-12-27 Bruce Korb <bkorb@gnu.org>
626
627 * fixinc/Makefile.in: fix for ancient Bourne shell
628 * fixinc/Makefile.BEOS: obsolete
629 * fixinc/Makefile.DOS: obsolete
630 * fixinc/fixincl.sh(LINKS): use `test -d' rather than `ls' for testing
631
632 2000-12-27 Bernd Schmidt <bernds@redhat.com>
633
634 * sched-deps.c (get_condition, conditions_mutex_p): New functions.
635 (add_dependence): Use them to avoid adding unnecessary dependencies
636 between conditionally executed insns.
637 (sched_analyze_1, sched_analyze_2, sched_analyze_insn): Don't free
638 dependency lists if current insn is a COND_EXEC.
639
640 2000-12-27 Geoffrey Keating <geoffk@redhat.com>
641
642 * config/rs6000/rs6000.md (define_attr "length"): Correct
643 calculation.
644
645 2000-12-26 Kazu Hirata <kazu@hxi.com>
646
647 * config/h8300/h8300.c: Fix a comment typo.
648 (get_shift_alg): Fix a typo in the assembly code for 12-bit
649 ASHIFTRT in HImode. Do not output extra whitespace after one line
650 of assembly code. Output a tab after an opcode instead of a
651 space.
652 (emit_a_shift): Output a tab after an opcode instead of a space.
653
654 2000-12-23 Marek Michalkiewicz <marekm@linux.org.pl>
655
656 * config/avr/avr.c (out_movqi_r_mr, out_movhi_r_mr, out_movsi_r_mr,
657 out_movsi_mr_r, out_movqi_mr_r, out_movhi_mr_r): Use %o instead of
658 %4 in output templates, do not modify operands passed by the caller.
659
660 2000-12-23 Joseph S. Myers <jsm28@cam.ac.uk>
661
662 * builtins.def (BUILT_IN_LABS, BUILT_IN_LLABS, BUILT_IN_IMAXABS):
663 Don't define.
664 * builtins.c (expand_builtin): Don't handle BUILT_IN_LABS,
665 BUILT_IN_LLABS and BUILT_IN_IMAXABS.
666 * c-common.c (c_common_nodes_and_builtins): Use BUILT_IN_ABS for
667 builtin labs, llabs and imaxabs.
668 (expand_tree_builtin): Don't handle BUILT_IN_LABS, BUILT_IN_LLABS
669 and BUILT_IN_IMAXABS.
670
671 2000-12-23 Joseph S. Myers <jsm28@cam.ac.uk>
672
673 * c-common.c (builtin_function_2): New function.
674 (c_common_nodes_and_builtins): Use it to define each pair (foo,
675 __builtin_foo) of builtins in one place.
676
677 2000-12-22 Joseph S. Myers <jsm28@cam.ac.uk>
678
679 * gccbug.in: Add libgcj and preprocessor categories.
680
681 2000-12-22 Bernd Schmidt <bernds@redhat.com>
682
683 * config/ia64/ia64.c (itanium_reorder): Only schedule stops in
684 the final scheduling pass.
685
686 2000-12-22 Nick Clifton <nickc@redhat.com>
687
688 * config/arm/arm.h (struct machine_function): Add new field
689 'lr_save_eliminated'.
690 * config/arm/arm.c (arm_compute_save_reg_mask): Do not include the
691 link register if its save has been eliminated.
692 (output_arm_prologue): Mention if the save of the link register
693 has been eliminated.
694 (output_arm_epilogue): Rename 'live_regs_mask' to
695 'saved_regs_mask'.
696 Test 'saved_regs_mask' for the link register, not regs_ever_live.
697 (arm_expand_prologue): If the link register has not been saved set
698 lr_save_eliminated and emit a USE to prevent later passes from
699 scavenging it.
700
701 * dwarf2out_frame_debug_expr: Allow the (scratch) frame
702 pointer to be initialised from the stack pointer plus a
703 constant.
704
705 2000-12-22 Bernd Schmidt <bernds@redhat.com>
706
707 * regrename.c (struct du_chain): New field "earlyclobber".
708 (enum scan_actions): Remove unused entry "note_reference".
709 (enum scan_actions_name): Likewise.
710 (note_sets, clear_dead_regs, merge_overlapping_regs): New static
711 functions.
712 (regrename_optimize): Use them to compute unavailable regs; get
713 rid of the more simpleminded code we used to have here.
714 Use a tick array to ensure registers are allocated in a more
715 round-robin way. Disable code that only optimizes registers
716 that were seen more than once.
717 (referenced_regs): Remove variable.
718 (scan_rtx_reg): New arg "earlyclobber". All callers changed.
719 Store its value in newly generated du_chain structures.
720 Add new du_chains at the end, not the start, of the list.
721 Don't handle the "note_reference" action.
722 (scan_rtx): New arg "earlyclobber". All callers changed.
723 (build_def_use): Lose code to keep track of referenced regs.
724
725 2000-12-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
726
727 * Makefile.in (sched-deps.o, sched-rgn.o): Fix dependency typo.
728
729 * fp-bit.h (usi_to_float): Add prototype.
730
731 * i386.c (ix86_expand_builtin): Delete unused label.
732
733 * dwarf2out.c (file_info_cmp): Prototype.
734 (dwarf2out_line): Hide variable `old_in_use'.
735
736 * objc-act.c (objc_fatal): Delete.
737
738 * sched-vis.c (visualize_stall_cycles): Remove unused variable.
739
740 * system.h (getopt): Fix error in last change.
741
742 * varasm.c (assemble_trampoline_template): Constify.
743
744 2000-12-22 Jason Merrill <jason@redhat.com>
745
746 * collect2.c (main): Use auto_demangling.
747
748 2000-12-22 Alexandre Oliva <aoliva@redhat.com>
749
750 * function.c (assign_parms): Update parm's DECL_INCOMING_RTL
751 when optimizing PARALLEL to REG.
752
753 2000-12-22 Graham Stott <grahams@redhat.com>
754
755 * reload.c (update_auto_inc_notes): New, broken out from ...
756 (find_reloads_address_1): ... use here, also correct possible
757 use of uninitialised reloadnum.
758
759 2000-12-21 David O'Brien <obrien@FreeBSD.org>
760
761 * config/freebsd.h (LIB_SPEC): remove -kthread option.
762
763 2000-12-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
764
765 * resource.c (mark_set_resources): Use MARK_SRC_DEST for
766 PRE_MODIFY and POST_MODIFY cases.
767
768 * rtlanal.c (side_effects_p): Handle PRE_MODIFY and POST_MODIFY.
769
770 2000-12-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
771
772 * md.texi (Looping Patterns): New node.
773
774 2000-12-21 Joseph S. Myers <jsm28@cam.ac.uk>
775
776 * gcc.texi, cpp.texi: Update last-updated dates.
777
778 2000-12-21 Chandrakala Chavva <cchavva@redhat.com>
779
780 * varasm.c (output_addressed_constants): Use language specific
781 expander on unknown nodes.
782
783 2000-12-21 Graham Stott <grahams@redhat.com>
784
785 * combine.c (distribute_notes): Handle REG_NON_LOCAL_GOTO notes.
786
787 2000-12-21 Bernd Schmidt <bernds@redhat.com>
788
789 * Makefile.in (out_object_file): Depend on sched-int.h.
790 * rtl.h (single_set_1): New macro.
791 (single_set_2): Renamed from single_set_1 and extra argument added.
792 * rtlanal.c (single_set_2): Likewise.
793
794 * config/ia64/ia64-protos.h (get_bundle_name, ia64_issue_rate,
795 ia64_adjust_cost, ia64_sched_init, ia64_sched_finish,
796 ia64_sched_reorder, ia64_sched_reorder2, ia64_variable_issue):
797 Declare.
798 * config/ia64/ia64.c: Include "sched-int.h".
799 (hard_regno_rename_ok): Also disallow renaming from the various
800 reg_save_* regs.
801 (ia64_safe_itanium_requiers_unit0, ia64_safe_itanium_class,
802 ia64_safe_type, init_insn_group_barriers, group_barrier_needed_p,
803 safe_group_barrier_needed_p, fixup_errata): New static functions.
804 (rtx_needs_barrier): Handle bundle selector and cycle display
805 insns.
806 (emit_insn_group_barriers): Accept additional FILE * arg. All
807 callers changed. Rework to only generate stop bits between
808 basic blocks that haven't been inserted by scheduling.
809 (struct bundle, struct ia64_packet): New structures.
810 (NR_BUNDLES, NR_PACKETS): New macros.
811 (bundle, packets, type_names): New static arrays.
812 (ia64_final_schedule): New variable.
813 (ia64_single_set, insn_matches_slot, ia64_emit_insn_before,
814 gen_nop_type, finish_last_head, rotate_one_bundle, rotate_two_bundles,
815 cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
816 find_best_packet, itanium_reorder, dump_current_packet, schedule_stop):
817 New static functions.
818 (ia64_issue_rate, ia64_sched_init, ia64_sched_reorder,
819 ia64_sched_finish, ia64_sched_reorder2, ia64_variable_issue): New
820 functions.
821 (ia64_reorg): Perform a final scheduling pass.
822 * config/ia64/ia64.h (CONST_COSTS): Slightly increase SYMBOL_REF costs.
823 (MAX_CONDITIONAL_EXECUTE, ADJUST_COST, ISSUE_RATE, MD_SCHED_INIT,
824 MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_FINISH,
825 MD_SCHED_VARIABLE_ISSUE): Define macros.
826 (ia64_final_schedule): Declare variable.
827 * config/ia64/ia64.md (attr itanium_class): Add some more classes.
828 (attr type): Account for them.
829 (itanium_requires_unit0): New attribute.
830 (function units): Rewrite.
831 (some splitters): Don't create scheduling barriers here.
832 (gr_spill_internal, gr_restore_internal): Don't predicate the
833 pseudo-op.
834 (nop_m, nop_i, nop_f, nop_b, nop_x, cycle_display, cycle_display_1,
835 bundle_selector): New patterns.
836 (insn_group_barrier): Now has an operand.
837
838 2000-12-21 DJ Delorie <dj@redhat.com>
839
840 * dwarf2out.c (simple_decl_align_in_bits): new
841 (field_byte_offset): Try both the type align and the
842 decl align, use whichever works, preferring the type align.
843
844 2000-12-21 Joseph S. Myers <jsm28@cam.ac.uk>
845
846 * gccbug.in: Fix typo.
847
848 2000-12-20 Benjamin Kosnik <bkoz@redhat.com>
849
850 * Makefile.in (gcc_gxx_target_include_dir): Use instead of
851 build_tooldir and libstdcxx_incdir.
852
853 2000-12-20 Robert Lipe <robertlipe@usa.net>
854
855 * haifa-sched.c (schedule_block): Provide empty source statement
856 if not MD_SCHED_REORDER2.
857
858 2000-12-20 Richard Henderson <rth@redhat.com>
859
860 * rtl.h (REG_NON_LOCAL_GOTO): New.
861 * rtl.c (reg_note_name): Update.
862 * stmt.c (expand_goto): Emit a REG_NON_LOCAL_GOTO note.
863 * builtins.c (expand_builtin_longjmp): Likewise.
864 * flow.c (make_edges): Check for REG_NON_LOCAL_GOTO and do
865 not emit an edge.
866
867 2000-12-20 Marek Michalkiewicz <marekm@linux.org.pl>
868
869 * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r, out_movhi_mr_r):
870 Do not output undefined opcodes where source or destination register
871 overlaps with modified pointer register. Handle (X + d) addresses.
872 * config/avr/avr.md (*movhi, *movsi, *movsf): Correct insn length
873 in alternatives with memory operand.
874
875 2000-12-20 Richard Henderson <rth@redhat.com>
876
877 * c-typeck.c (build_asm_stmt): New, broken out from ...
878 (c_expand_asm_operands): ... here. Just do rtl expansion.
879 (c_expand_return): Return the new stmt node.
880 (c_start_case, do_case): Likewise.
881 * c-common.c (c_expand_expr_stmt): Likewise.
882 * c-common.h: Update declarations.
883 * c-tree.h: Likewise.
884 * c-semantics.c (build_stmt): Use STMT_LINENO not TREE_COMPLEXITY.
885 * c-parse.in (fndef): Set DECL_SOURCE_LINE to the open brace.
886 (nested_function, notype_nested_function): Likewise.
887 (compstmt): Return the compound statement not the binding level.
888 (lineno_labeled_stmt): Simplify.
889 (lineno_stmt, lineno_label): Set STMT_LINENO.
890 (stmt, label): Return the new stmt node.
891
892 2000-12-20 Bernd Schmidt <bernds@redhat.com>
893
894 * Makefile.in (OBJS): Add sched-ebb.o.
895 (sched-ebb.o): New rule.
896 (sched-vis.o): Depend on hard-reg-set.h and $(BASIC_BLOCK_H).
897 (haifa-sched.o): Depend on insn-flags.h.
898 * haifa-sched.c: Include "insn-flags.h".
899 (priority): Don't access BLOCK_NUM, use the new contributes_to_priority
900 callback.
901 * rtl.h (schedule_ebbs): Declare.
902 * sched-int.h (struct sched_info): Add new members
903 contributes_to_priority and compute_jump_reg_dependencies.
904 * sched-rgn.c (contributes_to_priority, compute_jump_reg_dependencies):
905 New functions.
906 (region_sched_info): Add them.
907 * sched-vis.c: Include "hard-reg-set.h" and "basic-block.h".
908 * sched-ebb.c: New file.
909 * sched-deps.c (sched_analyze_insn): Add code to handle JUMP_INSNs.
910
911 * flow.c (ior_reg_cond, and_reg_cond, elim_reg_cond): Properly
912 handle all relational operators.
913
914 2000-12-20 Alexandre Oliva <aoliva@redhat.com>
915
916 * final.c (output_addr_const): Use ASM_OUTPUT_SYMBOL_REF.
917 * tm.texi: Document it.
918
919 2000-12-19 Benjamin Kosnik <bkoz@redhat.com>
920
921 * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Use build_tooldir
922 instead of gcc_tooldir.
923
924 2000-12-19 John David Anglin <dave@hiauly1.hia.nrc.ca>
925
926 * system.h (getopt): Update prototype to match include/getopt.h.
927
928 2000-12-19 John David Anglin <dave@hiauly1.hia.nrc.ca>
929
930 From Jeff Law.
931 * pa.c (basereg_operand): Simplify.
932
933 2000-12-19 Bernd Schmidt <bernds@redhat.co.uk>
934
935 * haifa-sched.c (rm_line_notes): Arguments are now head and tail,
936 not block number. All callers and prototype changed.
937 (set_priorities): Likewise.
938 (save_line_notes): Add head and tail arguments; all callers and
939 prototype changed.
940 (restore_line_notes): Likewise. Don't crash on insns generated
941 during scheduling.
942 (schedule_block): Don't use BLOCK_HEAD/BLOCK_END macros.
943 Call MD_SCHED_INIT with additional argument.
944 When starting a new cycle, emit cycle_display insns if available.
945 Don't stop scheduling when encountering a JUMP_INSN, but add another
946 call to schedule_more_p in the inner loop.
947 Call MD_SCHED_REORDER2 after scheduling an insn.
948 Call MD_SCHED_FINISH once all insns are scheduled.
949 (sched_init): Compensate for the fact that get_block_head_tail
950 doesn't include leading notes.
951 * sched-deps.c (free_deps): Free vectors here.
952 * sched-rgn.c (compute_block_backward_dependencies): Not here.
953 (last_was_jump): New static variable.
954 (schedule_more_p): Test it.
955 (init_ready_list): Initialize it.
956 (can_schedule_ready_p): Set it if we have a JUMP_INSN.
957
958 * config/i386/i386.h (MD_SCHED_INIT): Add new arg.
959 * config/m32r/m32r.h (MD_SCHED_INIT): Add new arg.
960 * config/sparc/sparc.h (MD_SCHED_INIT): Add new arg.
961
962 * md.texi (cycle_display): Document.
963 * tm.texi (MD_SCHED_INIT): Document new arg.
964 (MD_SCHED_FINISH, MD_SCHED_REORDER2): Document.
965
966 * flow.c (ior_reg_cond, nand_reg_cond, not_reg_cond): Rewrite
967 to use different representation. All callers changed.
968 (and_reg_cond): Renamed from nand_reg_cond; caller changed.
969 (init_propagate_block_info): Don't test flags to determine
970 whether to compute conditional lifetimes.
971 Adjust code for new representation of conditional lifetimes.
972 (mark_regno_cond_dead): Similar adjustment.
973 (free_reg_cond_life_info): Similar adjustment.
974 (elim_reg_cond): New function.
975 (flush_reg_cond_1): Use it.
976
977 2000-12-19 Catherine Moore <clm@redhat.com>
978
979 * reload1.c (reload_combine): Take multi-hard-regs into account
980 when processing CALL_INSN_FUNCTION_USAGE.
981
982 2000-12-19 Joseph S. Myers <jsm28@cam.ac.uk>
983
984 * invoke.texi (-print-search-dirs): Make references to cpp refer
985 to cpp0 instead.
986
987 2000-12-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
988
989 * fold-const.c (tree_expr_nonnegative_p): Treat truth values as
990 non-negative.
991
992 Tue Dec 19 00:37:08 2000 J"orn Rennecke <amylaar@redhat.com>
993
994 * reload.c (push_reload): When using a dying register for the reload
995 register in an in-out reload, use outmode if wider than inmode.
996
997 2000-12-19 Joseph S. Myers <jsm28@cam.ac.uk>
998
999 * config/d30v/d30v.h (EXIT_BODY): Update comment.
1000
1001 2000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
1002
1003 * config.gcc (*-*-linux*): Don't define HAVE_ATEXIT or BSTRING.
1004 * tm.texi (EXIT_BODY): Update documentation.
1005 * config/freebsd.h, config/netware.h, config/arm/coff.h,
1006 config/arm/conix-elf.h, config/arm/unknown-elf.h,
1007 config/d30v/d30v.h, config/mcore/mcore.h, config/pj/pj.h,
1008 sparc/sp86x-aout.h: Remove definitions of HAVE_ATEXIT (some
1009 commented out) and associated comments.
1010
1011 2000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
1012
1013 * c-common.c (STD_C9L, ADJ_STD): Define.
1014 (printf_length_specs, scanf_length_specs): Mark "ll" as standard
1015 STD_C9L.
1016 (T99_LL): Rename to T9L_LL.
1017 (T99_ULL): Rename to T9L_ULL.
1018 (print_char_table, scan_char_table): Use T9L_LL and T9L_ULL
1019 instead of T99_LL and T99_ULL.
1020 (check_format_info_main): Use ADJ_STD on all format standard
1021 versions being compared.
1022 * c-common.h: Declare warn_long_long.
1023 * c-tree.h: Don't declare warn_long_long.
1024
1025 2000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
1026
1027 * COPYING: Update to current
1028 ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
1029 to 19yy as example year in copyright notice).
1030
1031 2000-12-18 Neil Booth <neil@daikokuya.demon.co.uk>
1032
1033 * c-lex.c (cb_file_change): Treat in_system_header as strictly
1034 boolean (0 or 1).
1035
1036 2000-12-18 Neil Booth <neil@daikokuya.demon.co.uk>
1037
1038 * cppmain.c: Update print.lineno with -P.
1039
1040 2000-12-18 Neil Booth <neil@daikokuya.demon.co.uk>
1041
1042 * c-lex.c: s/change_file/file_change.
1043 * cpplib.h: Similarly.
1044 * cppmain.c: Similarly.
1045 * fix-header.c: Similarly.
1046 * cppfiles.c (stack_include_file): Pass the buffer location and
1047 size to cpp_push_buffer. Generate the file_change callback,
1048 so that sysp is already set.
1049 * cpphash.h: Add _cpp_do_file_change.
1050 * cpplib.c (do_line): Set buffer->sysp directly. Generate the
1051 file_change callback after setting sysp.
1052 (_cpp_do_file_change): Handle FC_ENTER and the FC_RENAME exception
1053 here.
1054 (cpp_push_buffer): Don't generate a callback. Clear sysp.
1055 (cpp_pop_buffer): Clean up logic.
1056
1057 2000-12-18 Benjamin Kosnik <bkoz@redhat.com>
1058
1059 * configure.in (gcc_gxx_include_dir): Simplify.
1060 (libstdcxx_incdir): Export.
1061 * configure: Regenerate.
1062 * Makefile.in (PREPROCESSOR_DEFINES): Add in
1063 GPLUSPLUS_TOOL_INCLUDE_DIR bits here..
1064 (libstdcxx_incdir): Add.
1065 * cppdefault.c (GPLUSPLUS_TOOL_INCLUDE_DIR): Add search path.
1066
1067 2000-12-18 Neil Booth <neil@daikokuya.demon.co.uk>
1068
1069 * c-lex.c (lex_lineno): Remove.
1070 (init_c_lex, c_lex): Remove lex_lineno.
1071 (cb_change_file): Update lineno correctly, both before calling
1072 push_srcloc and before leaving the function.
1073 (cb_def_pragma): Set lineno before outputting diagnostics.
1074
1075 Sun Dec 17 18:45:41 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1076
1077 * print-tree.c (print_node): Print DECL_USER_ALIGN and TYPE_USER_ALIGN.
1078 Print TYPE_MIN_VALUE and TYPE_MAX_VALUE for REAL_TYPE.
1079 Use print_node_brief to print bounds.
1080
1081 2000-12-17 Neil Booth <neil@daikokuya.demon.co.uk>
1082
1083 * cpplib.h (struct cpp_reader): Remove references to string_pool
1084 and temp_string_pool.
1085 * cppinit.c (cpp_create_reader, cpp_cleanup): Similarly; using
1086 ident_pool in place.
1087 * cpplex.c (parse_number, unescaped_terminator_p, parse_string,
1088 save_comment, cpp_token_as_text): Similarly.
1089 * cpplib.c (do_define, glue_header_name, parse_assertion): Similarly.
1090 * cppmacro.c (make_number_token, builtin_macro, lock_pools,
1091 unlock_pools, stringify_arg, paste_tokens): Similarly.
1092
1093 Sun Dec 17 12:41:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1094
1095 * dwarf2out.c (loc_descriptor_from_tree, case NOP_EXPR): New case.
1096 (loc_descriptor_from_tree, case CONVERT_EXPR): Likewise.
1097 (loc_descriptor_from_tree, case NON_LVALUE_EXPR): Likewise.
1098
1099 2000-12-17 Richard Earnshaw <rearnsha@arm.com>
1100
1101 * Makefile.in (check-po): Use $(MAKE).
1102 (risky-stage1, risky-stage2, risky-stage3, risky-stage4): Likewise.
1103
1104 2000-12-17 Neil Booth <neil@daikokuya.demon.co.uk>
1105
1106 * cppmain.c (check_multiline_token): New function.
1107 (scan_buffer): Use it.
1108 (cb_change_file): Restructure to avoid warning.
1109 * cpperror.c (print_location): Initialize col.
1110
1111 2000-12-14 Philipp Thomas <pthomas@suse.de>
1112
1113 * protoize.c (main): Correctly set locale categories.
1114 * gcc.c (main): Likewise.
1115 * cppmain.c (general_init): Likewise.
1116 * toplev.c (main): Likewise.
1117 * gcov.c (main): Likewise.
1118 * collect2.c (main): Likewise.
1119
1120 2000-12-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1121
1122 * c-common.c (c_common_nodes_and_builtins): Create a
1123 cstring_endlink, use it. Rename int_ftype_string_string to
1124 int_ftype_cstring_cstring, string_ftype_string_int to
1125 string_ftype_cstring_int, and string_ftype_string_string to
1126 string_ftype_cstring_cstring. Prefer sizetype_endlink and
1127 int_endlink to manually recreating them. Fix the prototype
1128 set for __builtin_strspn/__builtin_strcspn.
1129
1130 2000-12-12 Marek Michalkiewicz <marekm@linux.org.pl>
1131
1132 * config/avr/avr.c (out_set_stack_ptr): Update comment.
1133 (print_operand): Add support for %~ and %o.
1134
1135 2000-12-17 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1136
1137 * c4x.h: Add ASM_OUTPUT_DEF definition for bounded pointer code.
1138
1139 2000-12-17 Neil Booth <neil@daikokuya.demon.co.uk>
1140
1141 * c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up.
1142 * cpperror.c (print_containing_files): Get right line number.
1143 (print_location): Output column of 1 if 0.
1144 * cppfiles.c (stack_include_file): cpp_push_buffer handles
1145 the callback.
1146 * cpphash.h (_cpp_do_file_change): No longer external.
1147 * cpplib.c (do_file_change): Now local to cpplib.c.
1148 (do_line): Fake a buffer stack for preprocessed files.
1149 (cpp_push_buffer): Create a file_change callback. Handle faked
1150 buffers.
1151 (cpp_pop_buffer): Similarly.
1152 * cpplib.h: BUF_FAKE: New buffer type.
1153 * cppmain.c: Update to handle correct file renaming where a
1154 #line is the first line of the main file, and produce only
1155 the renamed file, not the original file, as output.
1156
1157 2000-12-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1158
1159 * config/c4x/c4x.md: Remove redundant @s from output patterns.
1160
1161 2000-12-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1162 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1163
1164 * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma.
1165
1166 * config/c4x/c4x-protos.h (c4x_init_pragma): New prototype.
1167
1168 * config/c4x/c4x.c (c4x_init_pragma): New function.
1169 (c_lex_func): New variable.
1170 (c4x_parse_pragma): Use c_lex_func.
1171
1172 2000-12-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1173 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1174
1175 * config/c4x/c4x.h (MD_INIT_BUILTINS): Add void_list_node argument
1176 to c4x_init_builtins.
1177
1178 * config/c4x/c4x-protos.h (c4x_init_builtins): Add tree argument.
1179
1180 * config/c4x/c4x.c (c4x_init_builtins): Add tree argument.
1181 (c4x_output_ascii): Fix.
1182
1183 2000-12-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1184 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1185
1186 * config/c4x/c4x.h (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Define.
1187
1188 * config/c4x/c4x-protos.h (c4x_init_builtins): New prototype.
1189 (c4x_expand_builtin): Likewise.
1190
1191 * config/c4x/c4x.c (c4x_init_builtins): New function.
1192 (c4x_expand_builtin): Likewise.
1193
1194 * config/c4x/c4x.md (floatunsqihf2): New pattern.
1195 (*floatqihf2_set, *fixhfqi_set, fix_trunchfqi2): Likewise.
1196 (fixuns_trunchfqi2, toieee, frieee, *ldhf_conditional): Likewise.
1197 (*ldhf_conditional_noov, movhfcc, trap, cond_trap_cc): Likewise.
1198 (*toieee_movqf_clobber, *frieee_movqf_clobber): Likewise.
1199
1200 2000-12-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1201
1202 * libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes.
1203 * libgcc2.c (__absvsi2): Use Wtype and DWtype.
1204 (__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise.
1205 (__subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Likewise.
1206
1207 2000-12-16 Alexandre Oliva <aoliva@redhat.com>
1208
1209 * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Enclose the block
1210 statement in do/while(0).
1211
1212 Sat Dec 16 19:56:24 MET 2000 Jan Hubicka <jh@suse.cz>
1213
1214 * i386.md (ashrsi3_cmpno, ashrhi3_cmpno, ashrqi3_cmpno, lshrsi3_cmpno,
1215 lshrhi3_cmpno): Remove redundant '@' from the template.
1216
1217 * i386.md (cmpstrsi_1): Fix type of the compare.
1218
1219 * genattrtab.c (attr_rtx_cost): New function.
1220 (simplify_test_exp): Avoid overactive inlining; use temporary
1221 obstacks for tests.
1222
1223 Sat Dec 16 10:41:11 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1224
1225 * diagnostic.c (finish_abort): Deleted.
1226 (fatal): Add code from finish_abort.
1227 (error_recursion, fancy_abort): Call fatal, not finish_abort.
1228 (trim_filename): Remove leading "../".
1229 * diagnostic.h (finish_abort): Deleted.
1230 * toplev.c (crash_signal): Call fatal, not finish_abort.
1231
1232 * stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT
1233 as if size were variable.
1234
1235 * expmed.c (expand_mult): Write REG_EQUAL note with proper mode.
1236
1237 2000-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
1238
1239 * tradcpp.c: T_WARNING: New.
1240 (do_warning): New function.
1241 (finclude): Skip past the newline and increase the line number
1242 before calling output_line_command.
1243 (do_line): Skip the new line after output_line_command. Don't
1244 pre-decrement the line number.
1245
1246 2000-12-15 Diego Novillo <dnovillo@redhat.com>
1247
1248 * i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix references to
1249 _GLOBAL_OFFSET_TABLE_ when using Intel syntax.
1250
1251 2000-12-15 Jakub Jelinek <jakub@redhat.com>
1252
1253 * gcc.c (cpp_options): Pass -fno-operator-names.
1254 * cpplib.h (struct cpp_options): Add operator_names.
1255 * cppinit.c (cpp_create_reader): Initialize it.
1256 (initialize_builtins): If -fno-operator-names, don't add
1257 C++ alternate operator names.
1258 (COMMAND_LINE_OPTIONS): Add -fno-operator-names.
1259 (cpp_handle_option): Clear operator_names.
1260
1261 2000-12-15 Jason Merrill <jason@redhat.com>
1262
1263 * jump.c (jump_optimize_1): Don't delete the line note after the
1264 prologue even if it seems redundant.
1265
1266 * config/arm/arm.c (arm_expand_prologue): Set RTX_FRAME_RELATED_P
1267 on all insns used to adjust the stack.
1268
1269 Fri Dec 15 15:32:16 MET 2000 Jan Hubicka <jh@suse.cz>
1270
1271 * combine.c (cant_combine_insn_p): Get around SUBREGs when determining
1272 hardreg<->reg moves.
1273
1274 Fri Dec 15 14:48:37 MET 2000 Jan Hubicka <jh@suse.cz>
1275
1276 * genrecog.c (add_to_sequence): Remove special case for
1277 const_int_operand.
1278 (maybe_both_true): Return 1 when falling out of sequence when
1279 trying to find common possition in the pattern.
1280
1281 Fri Dec 15 14:44:51 MET 2000 Jan Hubicka <jh@suse.cz>
1282
1283 * integrate.c (copy_rtx_and_substitute): Copy mode too.
1284
1285 Fri Dec 15 14:11:57 MET 2000 Jan Hubicka <jh@suse.cz>
1286
1287 * flow.c (notice_stack_pointer_modification_1): Cleanup.
1288
1289 2000-12-15 Alexandre Oliva <aoliva@redhat.com>
1290
1291 * function.c (adjust_trampoline_addr): New function.
1292 (trampoline_address): Call it instead of round_trampoline_addr().
1293 * tm.texi (TRAMPOLINE_ADJUST_ADDRESS): Document it.
1294
1295 2000-12-14 Zack Weinberg <zack@wolery.stanford.edu>
1296
1297 * cppfiles.c (hack_vms_include_specification): Delete function
1298 (not used since 1998).
1299
1300 Fri Dec 15 03:37:51 2000 J"orn Rennecke <amylaar@redhat.com>
1301
1302 * haifa-sched.c (sched_init): Don't put a note in front of any BARRIER.
1303
1304 2000-12-14 Jim Wilson <wilson@redhat.com>
1305
1306 * alias.c (get_alias_set): Call record_component_aliases for
1307 COMPLEX_TYPE.
1308 (record_component_aliases): Handle COMPLEX_TYPE.
1309
1310 2000-12-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1311
1312 * fixinc/gnu-regex.c: Disable NLS.
1313
1314 2000-12-14 Richard Henderson <rth@redhat.com>
1315
1316 * config/alpha/alpha.c (alpha_emit_conditional_move): Do not swap
1317 comparison operands when that would create non-canonical rtl.
1318
1319 * config/i386/i386.md (umulsi3_highpart): Remove * from name.
1320 (smulsi3_highpart): Likewise.
1321
1322 2000-12-14 Neil Booth <neil@daikokuya.demon.co.uk>
1323
1324 * gcc.c (cpp_options): Add -remap.
1325
1326 2000-12-14 Neil Booth <neil@daikokuya.demon.co.uk>
1327
1328 * gcc.c (cpp_options): Update to use '&'.
1329 (struct switchstr): Change type of validated to save space.
1330 New member 'ordering'.
1331 (handle_braces, validate_switches): Update to handle '&'.
1332
1333 2000-12-13 Laurynas Biveinis <lauras@softhome.net>
1334
1335 * fixinc/inclhack.def: skip stdio_va_list fix if __DJ_va_list
1336 found in a header.
1337 * fixinc/fixincl.x: regenerated.
1338
1339 2000-12-13 DJ Delorie <dj@redhat.com>
1340
1341 * config.gcc (cygwin, win32, mingw32): Use float-i386.h.
1342
1343 2000-12-13 Tom Tromey <tromey@redhat.com>
1344
1345 * gcc.c (handle_braces): Handle %{<S*} spec correctly.
1346
1347 2000-12-13 Alexandre Oliva <aoliva@redhat.com>
1348
1349 * function.c (assign_parms): Optimize incoming PARALLELs into
1350 REGs if possible.
1351
1352 2000-12-13 Bruce Korb <bkorb@gnu.org>
1353
1354 * fixinc/Makefile.in(*): substantial rewrite to accommodate systems
1355 that cannot handle bi-directional pipes, viz. BeOS and DOS.
1356 * fixinc/fixlib.h(IGNORE_ARG): new macro
1357 (STATIC): define for all of fixinc to use
1358 * fixinc/fixfixes.c(*): eliminate unused arg warnings
1359 * fixinc/fixtests.c(*): ditto
1360 * fixinc/fixincl.c(start_fixer): chain_open now uses const arg list
1361 * fixinc/gnu-regex.c: reorder some includes to avoid _GNU_SOURCE
1362 warning. Also, eliminate the ``#ifdef emacs'' stuff.
1363 (re_syntax_options): make global as it is declared so.
1364 * fixinc/mkfixinc.sh: process the argument list more consistently
1365 (beos/msdosdjgpp): set TARGETS to twoprocess vs. oneprocess
1366 * fixinc/procopen.c(globals): include "fixlib.h" for std defs
1367 * fixinc/server.c(globals): ditto
1368 * fixinc/server.h(defines): ditto
1369
1370 2000-12-13 Neil Booth <neil@daikokuya.demon.co.uk>
1371
1372 * tradcpp.c (special_symbol): Improve test for definedness,
1373 though it is still not perfect.
1374 (do_define): Don't define illegal macro names.
1375
1376 2000-12-07 Aldy Hernandez <aldyh@redhat.com>
1377
1378 * config/mips/elf.h (ASM_OUTPUT_SECTION_NAME): emit @nobits
1379 if changing into .bss section.
1380 * config/mips/elf64.h: same.
1381 * config/mips/iris6.h: same.
1382 * config/mips/netbsd.h: same.
1383 * config/mips/openbsd.h: same.
1384
1385 2000-12-13 Neil Booth <neil@daikokuya.demon.co.uk>
1386
1387 * cppfiles.c (read_name_map): Return null if open () fails.
1388 (remap_filename): Simplify logic. Add ICE if it doesn't work
1389 as expected. Perform secondary lookup attempt on base filename
1390 only.
1391
1392 Wed Dec 13 19:48:04 MET 2000 Jan hubicka <jh@suse.cz>
1393
1394 * flow.c (notice_stack_pointer_modification_1): Notice midifications
1395 using PRE_MODIFY and POST_MODIFY.
1396
1397 Wed Dec 13 17:25:32 MET 2000 Jan Hubicka <jh@suse.cz>
1398
1399 * genoutput.c (process_template): Add sanity checking for '@' templates.
1400
1401 2000-12-13 Bernd Schmidt <bernds@redhat.co.uk>
1402
1403 * simplify-rtx.c (cselib_finish): Free reg_values and used_regs
1404 varrays.
1405
1406 2000-12-12 Mike Stump <mrs@wrs.com>
1407
1408 * Makefile.in (distclean): Remove safe-ctype.c as well.
1409
1410 2000-12-12 Brad Lucier <lucier@math.purdue.edu>
1411
1412 * tradcpp.c (do_error): Cast difference of pointers to int
1413 for error message.
1414
1415 2000-12-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1416
1417 * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Move from here...
1418 * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): ...to here.
1419
1420 2000-12-12 Jim Wilson <wilson@redhat.com>
1421
1422 * rtlanal.c (may_trap_p): Check operand modes of LE, LT, GE, and GT.
1423
1424 2000-12-12 Alexandre Oliva <aoliva@redhat.com>
1425
1426 * configure.in: Simplify language enabling/disabling code.
1427 * configure: Rebuilt.
1428 * ch/config-lang.in (target_libs): Set.
1429 (build_by_default): Set to no.
1430 * cp/config-lang.in (target_libs): Set.
1431 * f/config-lang.in (target_libs): Set.
1432 * java/config-lang.in (target_libs): Set.
1433 * objc/config-lang.in (target_libs): Set.
1434
1435 2000-12-12 Neil Booth <neil@daikokuya.demon.co.uk>
1436
1437 * tradcpp.c (enum node_type): Add T_ERROR.
1438 (do_error): New function.
1439 (directive_table): Add #error handler.
1440
1441 2000-12-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1442
1443 * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Enable .file/.loc check
1444 for powerpc*-*-*.
1445 * configure: Regenerated.
1446 * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1447 * config/rs6000/rs6000.c (rs6000_unique_section): Use
1448 STRIP_NAME_ENCODING.
1449
1450 Mon Dec 11 13:51:09 2000 Jeffrey A Law (law@cygnus.com)
1451
1452 * pa.c (cmpib_comparison_operator): Remove GEU and LTU.
1453 * pa.h (PREDICATE_CODES, cmpib_comparison_operator): Corresponding
1454 changes.
1455
1456 2000-12-11 Bruce Korb <bkorb@gnu.org>
1457
1458 * fixinc/fixincl.tpl: initialize all fields for warnings
1459 * fixinc/fixincl.x: regenerate
1460
1461 2000-12-11 Neil Booth <neilb@earthling.net>
1462
1463 * tradcpp.h: For tradcpp, NUL is not whitespace.
1464
1465 2000-12-11 Neil Booth <neilb@earthling.net>
1466
1467 * fix-header.c (read_scan_file): Macro expansion is not a file buffer.
1468
1469 2000-12-05 Marek Michalkiewicz <marekm@linux.org.pl>
1470
1471 * config/avr/avr.c (compare_condition, compare_sign_p): New functions.
1472 (compare_diff_p, compare_eq_p): Call compare_condition.
1473 (out_tsthi, out_tstsi): Call compare_sign_p.
1474 (avr_progmem_p): Check for error_mark_node.
1475
1476 2000-12-11 Neil Booth <neilb@earthling.net>
1477
1478 * cpperror.c (print_location): New function.
1479 (print_containing_files): Simplify.
1480 (_cpp_begin_message): Simplify and use print_location.
1481 * cppfiles.c (stack_include_file): Update.
1482 (_cpp_pop_file_buffer): Update.
1483 * cpphash.h (struct cpp_buffer): New members
1484 include_stack_listed and type.
1485 * cpplib.c (_cpp_handle_directive): Buffer->inc is not null.
1486 (run_directive): Take buffer type. cpp_push_buffer cannot fail.
1487 (_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef,
1488 handle_assertion): Update.
1489 (cpp_push_buffer): Take a buffer type and file name.
1490 (cpp_pop_buffer): Update. Clear include_stack_listed.
1491 * cpplib.h (input_stack_listing_current): Remove.
1492 (enum cpp_buffer_type): New.
1493 (cpp_push_buffer): New prototype.
1494 * cppmacro.c (builtin_macro): Simplify; buffer cannot be null.
1495 * fix-header.c (read_scan_file): Update.
1496
1497 2000-12-10 Robert Lipe <robertlipe@usa.net>
1498
1499 * install.texi (i*86-*-sco3.2v5*): Remove information duplicated
1500 in html version.
1501
1502 2000-12-10 Richard Henderson <rth@redhat.com>
1503
1504 * genrecog.c (find_operand): Handle 'V' format code.
1505 (find_matching_operand): New.
1506 (validate_pattern): Accept '=' for an in-out operand if there
1507 is another operand with a matching constraint.
1508
1509 * config/i386/i386.md (andqi_ext_0_cc): Use matching constraint
1510 for op1 to op0.
1511
1512 2000-12-10 Richard Henderson <rth@redhat.com>
1513
1514 * genrecog.c (validate_pattern) [STRICT_LOW_PART]: Fix thinko.
1515
1516 2000-12-09 Richard Henderson <rth@redhat.com>
1517
1518 * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and
1519 STRICT_LOW_PART as SET_DEST have in-out constraints.
1520
1521 2000-12-09 Joseph S. Myers <jsm28@cam.ac.uk>
1522
1523 * c-common.c (check_function_format): Don't suggest adding format
1524 attributes to functions with no parameter to which to add them.
1525
1526 2000-12-09 Nick Clifton <nickc@redhat.com>
1527
1528 * config/arm/arm.c (arm_expand_prologue): Mark the generated
1529 insn not the set as being DWARF2_FRAME_RELATED_P.
1530
1531 2000-12-09 Laurynas Biveinis <lauras@softhome.net>
1532
1533 * Makefile.in: use $(build_exeext) for all build
1534 system executable targets.
1535
1536 2000-12-09 Laurynas Biveinis <lauras@softhome.net>
1537
1538 * install.texi: remove i[345]86-*-winnt3.5 section.
1539 * configur.bat: removed.
1540 * config/msdos: directory removed.
1541
1542 2000-12-09 Neil Booth <neilb@earthling.net>
1543
1544 * cppfiles.c (NEVER_REREAD, DO_NOT_REREAD): Move from cpphash.h.
1545 * cpphash.h (NEVER_REREAD, DO_NOT_REREAD, ABSOLUTE_PATH): Delete.
1546 * cpplex.c (parse_identifier): Improve diagnostic.
1547 (_cpp_lex_token): Return unconditionally at the end of a directive.
1548 * cpplib.c (read_flag): Verify legality of each flag.
1549 (end_directive): Resotre pfile->skipping before skip_rest_of_line.
1550 (do_line): Use the new read_flag.
1551 * cppmacro.c (struct cpp_macro, parse_arg, replace_args,
1552 check_macro_redefinition, parse_params): Rename var_args to
1553 variadic.
1554
1555 2000-12-09 Joseph S. Myers <jsm28@cam.ac.uk>
1556
1557 * .cvsignore: Add info files.
1558
1559 2000-12-08 Laurynas Biveinis <lauras@softhome.net>
1560
1561 * config/winnt: Remove obsolete directory.
1562 * install.texi (Configurations): Remove obsolete documentation for
1563 Windows NT.
1564
1565 2000-12-08 Joseph S. Myers <jsm28@cam.ac.uk>
1566
1567 * configure.in: Don't define INSTALL_INFO.
1568 * configure: Regenerate.
1569 * Makefile.in (INSTALL_INFO): Remove.
1570 (info): Depend on info files in source directory.
1571 (cpp.info, gcc.info, c-tree.info): Build info files in source
1572 directory.
1573 (distclean): Don't remove info files.
1574 (maintainer-clean): Remove info files from source directory.
1575 (install-normal): Depend on install-info.
1576 (install-info): Install info files from source directory, if they
1577 exist.
1578 * texinfo.tex: Update to version 2000-11-09.08 from ftp.gnu.org.
1579
1580 2000-12-08 Alexandre Oliva <aoliva@redhat.com>
1581
1582 * lcm.c (optimize_mode_switching): Check whether an insn is a NOTE
1583 before taking its NOTE_LINE_NUMBER.
1584
1585 2000-12-08 Nick Clifton <nickc@redhat.com>
1586
1587 * config/arm/arm.md (load_indirect_jump): Add pool ranges.
1588
1589 * extend.texi: Document ARM "interrupt" function attribute.
1590 Mention that the ARM also support the "naked" function
1591 attribute.
1592
1593 * config/arm/arm-protos.h (arm_current_func_type): Add
1594 prototype.
1595
1596 * config/arm/arm.h (EXCEPTION_LR_REGNUM): Define.
1597 (struct machine_function): Add 'func_type' field.
1598 Define bit values for 'func_type' field.
1599 (ARM_FUNC_TYPE): New macro.
1600 (IS_INTERRUPT): New macro.
1601 (IS_VOLATILE): New macro.
1602 (IS_NAKED): New macro.
1603 (IS_NESTED): New macro.
1604 (ARM_INITIAL_ELIMINATION_OFFSET): Use IS_VOLATILE.
1605
1606 * config/arm/arm.c (isr_attribute_args): New Structure. A
1607 list of "interrupt" function attribute modifiers.
1608 (arm_isr_value): New Function: Returns the type of the current
1609 interrupt function.
1610 (arm_compute_func_type): New Function: Computes the type of
1611 the current function.
1612 (arm_current_func_type): New Function: Returns the type of the
1613 current function.
1614 (use_return_insn): Use arm_current_func_type.
1615 (arm_valid_type_attribute_p): Accept "interrupt" function
1616 attribute.
1617 (arm_comp_type_attributes): Check "interrupt" attributes.
1618 (arm_valid_machine_decl): Accept "interrupt" function
1619 attribute.
1620 (arm_function_ok_for_sibcall): Do not allow interrupt
1621 functions to use sibcalls.
1622 (arm_naked_function_p): Delete.
1623 (print_multi_reg): Remove redundant parameter 'hat'.
1624 (arm_compute_save_reg_mask): New Function: Compute a bit mask
1625 of registers saved during the current function's prologue.
1626 (output_arm_return_instruction): Use arm_current_func_type.
1627 Generate return instruction when LR is not poppsed off the
1628 stack.
1629 (arm_volatile_func): Delete.
1630 (output_arm_prologue): Use arm_current_func_type and
1631 arm_compute_save_reg_mask.
1632 Note presernce of interrupt functions.
1633 (arm_output_epilogue): Use arm_current_func_type and
1634 arm_compute_save_reg_mask.
1635 (arm_expand_prologue): Use arm_current_func_type and
1636 arm_compute_save_reg_mask.
1637 (arm_init_machine_status): Initialise func_type field, if
1638 necessary.
1639 (thumb_expand_prologue): Use arm_current_func_type.
1640 (output_thumb_prologue): Use arm_current_func_type.
1641
1642 2000-12-08 Brad Lucier <lucier@math.purdue.edu>
1643
1644 * tradcpp.c (do_include): Make pointer differences 64-bit clean.
1645
1646 Fri Dec 8 08:23:29 2000 J"orn Rennecke <amylaar@redhat.com>
1647
1648 * fp-bit.c (_fpmul_parts): Use USItype variables as inputs
1649 for multiplies.
1650
1651 2000-12-07 Mike Stump <mrs@wrs.com>
1652
1653 * Makefile.in (distclean): Remove alloca.c hashtab.c.
1654
1655 2000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
1656
1657 * Makefile.in (HOST_RTL): Add safe-ctype.o.
1658 (safe-ctype.o): New rule.
1659 * system.h: Include safe-ctype.h, not ctype.h. No need to
1660 wrap ctype macros.
1661
1662 * cpphash.h: Zap IStable and related macros. Define is_* in
1663 terms of safe-ctype.h macros.
1664 * cppinit.c: Delete the IStable and all related code.
1665
1666 * tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and
1667 is_space arrays. Delete initialize_char_syntax. Change all
1668 references to the above arrays to use macros instead.
1669 * tradcpp.h: Define is_idchar, is_idstart, is_space, and
1670 is_nvspace in terms of safe_ctype.h's macros.
1671 * tradcif.y: is_idchar, is_idstart are macros not arrays.
1672
1673 * config/i370/i370.c, config/winnt/dirent.c,
1674 config/winnt/fixinc-nt.c, config/winnt/ld.c:
1675 Use uppercase ctype macros. If we included ctype.h,
1676 include safe-ctype.h instead.
1677
1678 * fixinc/fixfixes.c: Use uppercase ctype macros. Don't test
1679 ISLOWER(c) before calling TOUPPER(c).
1680 * fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk.
1681 * fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h. No need to
1682 wrap ctype macros. Don't test ISUPPER(x) before calling TOLOWER(x).
1683
1684 2000-12-07 DJ Delorie <dj@redhat.com>
1685
1686 * c-decl.c (grokdeclarator): preserve previous alignments when
1687 rebuilding array types.
1688
1689 2000-12-07 Neil Booth <neilb@earthling.net>
1690
1691 * cppfiles.c (struct include_file): Move from cpphash.h.
1692 (_cpp_never_reread): New function.
1693 (open_file, read_include_file): Use it.
1694 (stack_include_file): Set the buffer's sysp according to the
1695 path in which the file was found.
1696 (find_include_file): Don't set sysp.
1697 (cpp_make_system_header, actual_directory): Update.
1698 (_cpp_execute_include): Do #include_next lookup handling here,
1699 not in cpplib.c. Use _cpp_never_reread.
1700 * cpphash.h (struct_include_file): Remove.
1701 (struct cpp_buffer): New member sysp.
1702 (CPP_IN_SYSTEM_HEADER, _cpp_execute_include): Update.
1703 (_cpp_never_reread): New.
1704 * cpplib.c (read_line_number): Rename read_flag. Rework slightly.
1705 (end_directive): Clear line_extension flag.
1706 (_cpp_handle_directive): Set line_extension flag for #number.
1707 (do_include_next): Handle path lookup in _cpp_execute_include.
1708 (do_line): Cleanup to use read_flag. Don't allow flags in #line.
1709 (_cpp_do_file_change): Update.
1710 (do_pragma_once): Use cpp_never_reread. Clean up.
1711 * cpplib.h (struct lexer_state): New member line_extension.
1712
1713 2000-12-07 Richard Henderson <rth@redhat.com>
1714
1715 * flow.c (calculate_global_regs_live): Force the stack pointer live
1716 after reload as well.
1717
1718 2000-12-07 Bruce Korb <bkorb@gnu.org>
1719
1720 * fixinc/Makefile.*(exeext): the variables are exeext, the
1721 substitution expression is build_exeext.
1722
1723 2000-12-07 Neil Booth <neilb@earthling.net>
1724
1725 * c-common.c (parse_in): Make a cpp_reader *.
1726 * cppfiles.c (_cpp_fake_include): Remove.
1727 * cpphash.h: Similarly.
1728 * cpplib.c (do_line): Don't call _cpp_fake_include. A valid
1729 #line always creates a callback; FC_RENAME if there are no
1730 #line flags.
1731 * fix-header.c (read_scan_file): cpp_push_buffer cannot fail.
1732 The first EOF must be our get_char buffer.
1733
1734 2000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
1735
1736 * c-common.c (warn_format_security): New variable.
1737 (check_format_info): Warn about non-literal formats with no format
1738 arguments if either -Wformat-nonliteral or -Wformat-security is
1739 specified.
1740 (set_Wformat): Set warn_format_security for settings other than 1.
1741 * c-common.h (warn_format_security): Declare.
1742 * c-decl.c (c_decode_option): Decode -Wformat-security and
1743 -Wno-format-security.
1744 * invoke.texi: Document -Wformat-security.
1745 * toplev.c (documented_lang_options): Include -Wformat-security
1746 and -Wno-format-security.
1747
1748 2000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
1749
1750 * c-common.c (check_format_info): Warn for non-constant format
1751 strings with strftime formats if -Wformat-nonliteral. Where the
1752 format can convert arguments, if the format is not a string
1753 literal and there are no arguments to the format, give a different
1754 warning message from the general non-string-literal case.
1755
1756 2000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
1757
1758 * c-common.c (format_wanted_type): Add reading_from_flag.
1759 (print_char_table): Mark %s and %S formats with flag "R".
1760 (check_format_info_main): Set up reading_from_flag appropriately.
1761 If aflag, always set writing_in_flag rather than relying on the
1762 format used being a scanf format and so having it set.
1763 (check_format_types): Check for formats reading through null
1764 pointers.
1765
1766 2000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
1767
1768 * invoke.texi (-Wformat): Document what format features are
1769 checked.
1770
1771 2000-12-06 Kazu Hirata <kazu@hxi.com>
1772
1773 * config/h8300/h8300.h: Fix formatting.
1774
1775 2000-12-06 Joel Sherrill <joel@OARcorp.com>
1776
1777 * config.gcc (a29k*-*-rtems*, arm*-*-rtems*, c4x-*-rtems*,
1778 h8300-*-rtems*, hppa1.1-*-rtems, *mips*-*-rtems*): New targets.
1779 * config.gcc (*-rtems*): Add support for gthr-rtems.h.
1780 * gthr-rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
1781 config/h8300/rtems.h, config/mips/rtems.h: New files.
1782
1783 2000-12-06 Mark Kettenis <kettenis@gnu.org>
1784
1785 * config.gcc: Reorganize handling of *-*-gnu*, to share target
1786 specific make details with Linux. Update comments to clarify
1787 the distinction between GNU/Linux and GNU/Hurd.
1788
1789 Wed Dec 6 19:22:02 2000 Jeffrey A Law (law@cygnus.com)
1790
1791 * contrib.texi: Fix my email address. Update Per's
1792 list of contributions.
1793
1794 2000-12-06 Rodney Brown <RodneyBrown@mynd.com>
1795
1796 * c-lex.c (cb_indent): Decorate `str' argument, unused on HP-UX.
1797 * collect2.c (scan_libraries): Remove unused `ch'.
1798 (COFF specific stuff): Prototype ldgetname. Declare and prototype
1799 ldbtread and ldclose.
1800
1801 * config/alpha/osf.h: Standarize copyright statement.
1802 * config/arc/arc.h: Likewise.
1803 * config/arm/elf.h config/arm/coff.h config/arm/aout.h: Likewise.
1804 * config/arm/arm.c config/arm/arm.h: Likewise.
1805 * config/elxsi/elxsi.h: Likewise.
1806 * config/i386/sco.h: Likewise.
1807 * config/m68k/crds.h config/m68k/hp320.h config/m68k/lynx.h: Likewise.
1808 * config/m68k/m68kv4.h config/m68k/next21.h: Likewise.
1809 * config/m68k/sun3.h: Likewise.
1810 * config/m88k/dgux.h config/m88k/dguxbcs.h: Likewise.
1811 * config/pdp11/2bsd.h config/pdp11/pdp11.h: Likewise.
1812 * config/romp/romp.h: Likewise.
1813 * config/rs6000/aix41.h: Likewise.
1814 * config/sparc/sysv4.h: Likewise.
1815 * config/we32k/we32k.c config/we32k/we32k.h: Likewise.
1816 * fixinc/gnu-regex.c fixinc/gnu-regex.h: Likewise.
1817 * cpplib.h cppexp.c cselib.h profile.c: Likewise.
1818 * longlong.h: Likewise.
1819 * libgcc2.c: Likewise.
1820
1821 2000-12-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1822
1823 * machmode.def: Use correct definition for BITSIZE on targets where
1824 BITS_PER_UNIT != 8.
1825
1826 2000-12-06 Bruce Korb <bkorb@gnu.org>
1827
1828 * fixinc/Makefile.*: Reduce differences to (ultimately) reduce
1829 the number of them.
1830
1831 2000-12-06 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1832
1833 * pa.c: Include expr.h before c-tree.h.
1834 (remove_useless_addtr_insns): Use reverse_condition_maybe_unordered
1835 instead of reverse_condition.
1836 (print_operand): Correct predicates for GT, GE, LT and LE. Add
1837 predicates for LTGT, UNLE, UNLT, UNGE, UNGT, UNEQ, UNORDERED and
1838 ORDERED.
1839 (cmpib_comparison_operator): Add GEU and LTU codes.
1840 * pa.h (PREDICATE_CODES): Add codes for cmpib_comparison_operator.
1841 * pa.md (bltgt, bunle, bunlt, bunge, bungt, buneq, bunordered,
1842 bordered): New float conditional branch patterns.
1843
1844 Wed Dec 6 21:03:41 2000 J"orn Rennecke <amylaar@redhat.com>
1845
1846 * final.c (final_addr_vec_align): Fix clipping to BIGGEST_ALIGNMENT.
1847
1848 2000-12-06 Sylvain Pion <Sylvain.Pion@sophia.inria.fr>
1849
1850 * cpplex.c (skip_escaped_newlines): Don't warn for spaces between
1851 backslash and newline, when inside a comment.
1852
1853 2000-12-06 Joseph S. Myers <jsm28@cam.ac.uk>
1854
1855 * invoke.texi: Use @table @samp instead of @itemize @minus for
1856 table of language standards. Fix use of @pxref. From Zack
1857 Weinberg. Also exclude specs documentation from generated
1858 manpage, and create separate ENVIRONMENT section.
1859
1860 2000-12-06 Michael Matz <matzmich@cs.tu-berlin.de>
1861
1862 * gcse.c (compute_pre_data): Kill trapping expressions in
1863 destination blocks of abnormal edges.
1864
1865 2000-12-05 Richard Sandiford <r.sandiford@redhat.com>
1866
1867 * config/mn10300/mn10300.c (mn10300_print_reg_list): Added.
1868 (mn10300_get_live_callee_saved_regs): Likewise.
1869 (mn10300_gen_multiple_store): Likewise.
1870 (store_multiple_operation): Likewise.
1871 (expand_prologue): Use mn10300_gen_multiple_store().
1872 * config/mn10300/mn10300-protos.h (mn10300_print_reg_list): Added.
1873 (mn10300_get_live_callee_saved_regs): Likewise.
1874 (mn10300_gen_multiple_store): Likewise.
1875 (store_multiple_operation): Likewise.
1876 * config/mn10300/mn10300.md (store_movm): Use a MATCH_PARALLEL
1877 tied to store_multiple_operation().
1878
1879 Tue Dec 5 20:09:14 2000 Jeffrey A Law (law@cygnus.com)
1880
1881 * builtins.c (expand_builtin_setjmp_setup): Set
1882 current_function_has_nonlocal_label.
1883
1884 2000-12-05 Neil Booth <neilb@earthling.net>
1885
1886 * cppfiles.c (stack_include_file): Push zero-length buffers
1887 in case of failure. Return void, as we don't fail any more.
1888 (read_include_file): Check for files we shouldn't re-read.
1889 Don't return an error code; errors are implied by marking the
1890 file NEVER_REREAD.
1891 (_cpp_execute_include): Move the recursion and in-macro checks
1892 here. Update for stack_include_file not failing.
1893 * cpplib.c (cpp_push_buffer): Always succeed, since
1894 _cpp_execute_include performs the recursion check. Tidy up.
1895 * cpplib.h (cpp_push_buffer): Update prototype.
1896
1897 2000-12-05 Alexandre Oliva <aoliva@redhat.com>
1898
1899 * sched-vis.c (visual_tbl_line_length): New variable.
1900 (get_visual_tbl_length): Set it.
1901 (visualize_stall_cycles): Don't let stalls overrun
1902 visual_tbl_line_length.
1903
1904 2000-12-05 Geoffrey Keating <geoffk@redhat.com>
1905
1906 * global.c (global_conflicts): Allow for a REG_UNUSED note
1907 with a different mode to the REG set in the insn.
1908
1909 2000-12-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1910
1911 * Makefile.in (fixinc.sh): Pass $WARN_CFLAGS into fixinc dir.
1912
1913 * fixinc/Makefile.in (FIXINC_DEFS): Add $(WARN_CFLAGS).
1914
1915 2000-12-05 Bruce Korb <bkorb@gnu.org>
1916
1917 * fixinc/mkfixinc.sh(*-gnu*): activate fixinc for GNU/Hurd and
1918 GNU/Linux.
1919
1920 2000-12-05 Richard Earnshaw <rearnsha@arm.com>
1921
1922 * fixinc/mkfixinc.sh: Run fixinc on netbsd.
1923 * fixinc/inclhack.def (machine/ansi.h): Run this rule on all files,
1924 to cope with aliased copies.
1925 * fixinc/fixincl.x: Regenerate.
1926
1927 2000-12-05 Bernd Schmidt <bernds@redhat.co.uk>
1928
1929 * sched-vis.c: Guard with #ifdef INSN_SCHEDULING.
1930 * sched-rgn.c: Likewise.
1931 (rgn_print_insn): Fix output.
1932
1933 2000-12-05 Bruce Korb <bkorb@gnu.org>
1934
1935 * fixinc/Makefile.*: make these more consistent
1936 * fixinc/mkfixincl.sh: enable BeOS fixincludes
1937
1938 2000-12-05 Richard Henderson <rth@redhat.com>
1939
1940 * stmt.c (warn_if_unused_value): Move side effects test earlier.
1941
1942 2000-12-05 Alan Modra <alan@linuxcare.com.au>
1943
1944 * bb-reorder.c (reorder_basic_blocks): Do check for EH edges even
1945 when using sjlj.
1946
1947 2000-12-05 Richard Henderson <rth@redhat.com>
1948
1949 * flow.c (calculate_global_regs_live): Only force stack pointer
1950 live before reload. Force pic register live before reload.
1951 (insn_dead_p): Don't protect pic references from deletion.
1952
1953 2000-12-05 Joseph S. Myers <jsm28@cam.ac.uk>
1954
1955 * invoke.texi: Add support for using texi2pod.pl. Don't use
1956 @multitable.
1957
1958 2000-12-04 Nick Clifton <nickc@redhat.com>
1959
1960 * config/arm/arm.c (arm_override_options): Test 'insn_flags' not
1961 'tune_flags' for XScale nature.
1962 Remove spurious test of HARD_FLOAT and XScale flags.
1963
1964 * config/arm/arm.md (umulsidi3adddi): Restore "=&r" register
1965 contraint, accidentally changed during XScale contribution.
1966
1967 * config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do
1968 not create these functions if the target architecture does not
1969 support Thumb instructions.
1970
1971 2000-12-04 Joseph S. Myers <jsm28@cam.ac.uk>
1972
1973 * ONEWS: New file with the current contents of NEWS up to EGCS
1974 1.1.
1975 * NEWS: Generate automatically from online release notes from EGCS
1976 1.0 to GCC 2.95.2, using ../contrib/gennews.
1977
1978 2000-12-04 Neil Booth <neilb@earthling.net>
1979
1980 * tradcif.y: Move lexptr to top of file. Add rule to handle
1981 assertions in conditional expressions.
1982 * tradcpp.c (parse_answer): Assertions do not need to go to
1983 end of line in conditional directives.
1984 (parse_assertion): Get first character of identifiers correct.
1985 (test_assertion): New function.
1986 * tradcpp.h (test_assertion): New prototype.
1987
1988 2000-12-01 Rodney Brown <RodneyBrown@mynd.com>
1989
1990 * config.gcc: Fix typo for UnixWare 7.
1991
1992 2000-12-03 Phil Edwards <pme@sources.redhat.com>
1993
1994 * invoke.texi: Replace `pedwarns' with clearer text.
1995
1996 2000-12-04 Bruce Korb <bkorb@gnu.org>
1997
1998 * fixinc/Makefile.*(clean): don't clean autogenerated files.
1999 (mainainer-clean): clean autogenerated files
2000
2001 2000-12-04 DJ Delorie <dj@redhat.com>
2002
2003 * md.texi: Add overview, clarify match_dup and define_expand.
2004
2005 2000-12-04 DJ Delorie <dj@redhat.com>
2006
2007 * print-tree.c (print_node): Target-specific builtins print
2008 numbers, not names.
2009
2010 2000-12-04 Jason Merrill <jason@redhat.com>
2011
2012 * stor-layout.c (int_mode_for_mode): Handle MODE_VECTOR_INT,
2013 MODE_VECTOR_FLOAT.
2014
2015 * diagnostic.c (report_problematic_module): s/function/module/.
2016
2017 * c-lex.h: Remove decl for check_newline.
2018
2019 2000-12-04 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2020
2021 * README.APOLLO: Remove obsolete file.
2022
2023 2000-12-04 Neil Booth <neilb@earthling.net>
2024
2025 * cppinternals.texi: New file.
2026
2027 2000-12-04 Neil Booth <neilb@earthling.net>
2028
2029 * cppfiles.c (cpp_make_system_header): Take 2 booleans,
2030 and operate on current buffer.
2031 (cpp_read_file): Rename _cpp_read_file.
2032 * cpplib.c (do_line, do_pragma_system_header): Update calls to
2033 cpp_make_system_header.
2034 * fix-header.c: Similarly.
2035 * cpphash.h (_cpp_read_file): Move from...
2036 * cpplib.h: ... here.
2037 * cppinit.c (do_includes, cpp_start_read): Update appropriately.
2038
2039 2000-12-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2040
2041 * builtins.c (expand_builtin_strspn, expand_builtin_strcspn):
2042 Handle another transformation.
2043
2044 2000-12-03 Nick Clifton <nickc@redhat.com>
2045
2046 * config.gcc: Add support for StrongARM targets.
2047 * config/arm/t-strongarm-elf: New file.
2048 * config/arm/t-strongarm-coff: New file.
2049 * config/arm/t-strongarm-pe: New file.
2050 * config/arm/strongarm-pe.h: New file.
2051
2052 2000-12-03 Nick Clifton <nickc@redhat.com>
2053
2054 * NEWS: Mention XScale has been added.
2055 * config.gcc: Add support for XScale targets.
2056 * config/arm/arm.h: Add support for XScale processor.
2057 * config/arm/arm.c: Add support for XScale processor.
2058 * config/arm/arm.md: Add support for XScale processor.
2059 * config/arm/t-xscale-elf: New file.
2060 * config/arm/t-xscale-coff: New file.
2061 * config/arm/xscale-elf.h: New file.
2062 * config/arm/xscale-coff.h: New file.
2063
2064 2000-12-03 Richard Henderson <rth@redhat.com>
2065
2066 * bb-reorder.c (reorder_basic_blocks): Don't check for EH edges
2067 unless exception handling is enabled, and if not using sjlj.
2068
2069 * builtins.c (expand_builtin_setjmp_setup): New.
2070 (expand_builtin_setjmp_receiver): New.
2071 (expand_builtin_setjmp): Split out _setup and _receiver functions.
2072 Move argument parsing in from ...
2073 (expand_builtin): ... here.
2074 * except.c (receive_exception_label): Branch around receiver
2075 unless new-style exceptions. Call expand_builtin_setjmp_receiver.
2076 (start_dynamic_handler): Call expand_builtin_setjmp_setup.
2077 * expr.h: Update builtin setjmp decls.
2078
2079 2000-12-03 Bruce Korb <bkorb@gcc.org>
2080
2081 * fixinc/mkfixinc.sh(build machine): Sometimes, there is no canonical
2082 build machine name. Default to the target.
2083
2084 2000-12-03 Laurynas Biveinis <lauras@softhome.net>
2085
2086 * Makefile.in: use $(build_canonical), not $(canonical_build).
2087
2088 2000-12-03 Bernd Schmidt <bernds@redhat.co.uk>
2089
2090 * Makefile.in (OBJS): Add sched-rgn.o.
2091 (sched-rgn.o): New rule. * haifa-sched.c (sched_verbose): No
2092 longer static.
2093 (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
2094 INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
2095 UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
2096 MAX_BLOCKAGE_COST): Move to sched-int.h.
2097 (MAX_RGN_BLOCKS, MAX_RGN_INSNS, INSN_REF_COUNT, FED_BY_SPEC_LOAD,
2098 IS_LOAD_INSN, struct haifa_edge, edge_table, NEXT_IN, NEXT_OUT,
2099 FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES,
2100 OUT_EDGES, edgelst, struct region, nr_regions, rgn_table,
2101 rgn_bb_table, block_to_bb, containing_rgn, RGN_NR_BLOCKS,
2102 RGN_BLOCKS, BLOCK_TO_BB, BB_TO_BLOCK, CONTAINING_RGN,
2103 debug_regions, find_single_block_region, find_rgns, too_large,
2104 init_regions, current_nr_blocks, current_blocks, bitset, bitlst,
2105 bitlst_table_last, bitlst_table_size, bitlst_table, bitset_member,
2106 extract_bitlst, bblst, struct candidate, candidate_table,
2107 bblst_table, bblst_size, bblst_last, IS_VALID, IS_SPECULATIVE,
2108 SRC_PROB, target_bb, split_edges, compute_trg_info,
2109 debug_candidate, debug_candidates, bbset, bbset_size, dom,
2110 IS_RGN_ENTRY, IS_DOMINATED, prob, GET_SRC_PROB, edgeset,
2111 rgn_nr_edges, rgn_edges, edgeset_size, edgeset_bitsize,
2112 EDGE_TO_BIT, edge_to_bit, pot_split, ancestor_edges,
2113 compute_dom_prob_ps, ABS_VALUE, INSN_PROBABILITY,
2114 IS_SPECULATIVE_INSN, INSN_BB, MIN_DIFF_PRIORITY, MIN_PROBABILITY,
2115 MIN_PROB_DIFF, check_live_1, update_live_1, check_live,
2116 update_live, set_spec_fed, is_pfree, find_conditional_protection,
2117 is_conditionally_protected, may_trap_exp, haifa_classify_insn,
2118 is_prisky, is_exception_free, add_branch_dependences,
2119 propagate_deps, compute_block_backward_dependences,
2120 debug_dependencies, is_cfg_nonregular, build_control_flow,
2121 new_edge, bb_deps, BITSET_UNION, BITSET_INTER, BITSET_DIFFER,
2122 BITSET_INVERT, BITSET_ADD, BITSET_REMOVE, debug_regions,
2123 UPDATE_LOOP_RELATIONS, INSN_TRAP_CLASS, WORST_CLASS, IS_REACHABLE,
2124 CONST_BASED_ADDRESS_P, free_pending_lists, sched_target_n_insns,
2125 target_n_insns, sched_n_insns, init_ready_list, deaths_in_region,
2126 can_schedule_ready_p, new_ready, schedule_more_p, rgn_print_insn,
2127 rgn_rank, region_sched_info): Move to sched-rgn.c.
2128 (debug_reg_vector): Delete useless function.
2129 (get_bb_head_tail): Likewise.
2130 (insn_issue_delay, insn_cost, ready_add, get_block_head_tail,
2131 no_real_insns_p, rm_line_notes, save_line_notes,
2132 restore_line_notes, rm_redundant_line_notes, sched_init): No
2133 longer static.
2134 (rm_line_notes, save_line_notes, restore_line_notes,
2135 schedule_block, set_priorities): Change argument to be a real
2136 basic block, not one of haifa's "bb"s. All callers changed
2137 (rm_other_notes): Initialize note_list here, not in
2138 schedule_region.
2139 (sched_finish): New function, called from schedule_insn. * *
2140 sched-int.h (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
2141 INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
2142 UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
2143 MAX_BLOCKAGE_COST): Moved here from haifa-sched.c.
2144 (get_block_head_tail, no_real_insns_p, rm_line_notes,
2145 save_line_notes, restore_line_notes, rm_redundant_line_notes,
2146 rm_other_notes, insn_issue_delay, set_priorities, schedule_block,
2147 sched_init, sched_finish, ready_add, insn_cost): Declare.
2148
2149 2000-12-03 Laurynas Biveinis <lauras@softhome.net>
2150 Bruce Korb <bkorb@gnu.org>
2151
2152 * Makefile.in: pass $(build_canonical) to mkfixinc.sh.
2153 * fixinc/mkfixinc.sh: accept build system name as an argument.
2154 Use it for choosing the fix build method. Use the target for
2155 selecting special fix rules.
2156
2157 2000-12-03 Bernd Schmidt <bernds@redhat.co.uk>
2158
2159 * Makefile.in (OBJS): Add sched-deps.o.
2160 (sched-deps.o): New rule.
2161 * haifa-sched.c (struct deps, struct haifa_insn_data): Moved to
2162 sched-int.h.
2163 (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved to
2164 sched-int.h.
2165 (SIZE_FOR_MODE): Delete unused macro.
2166 (reg_known_equiv_p, reg_known_value, reg_pending_clobbers,
2167 reg_pending_sets, reg_pending_sets_all, true_dependency_cache,
2168 anti_dependency_cache, output_dependency_cache,
2169 forward_dependency_cache): Variables moved to sched-deps.c.
2170 (add_dependence, remove_dependence, find_insn_list,
2171 find_insn_mem_list, add_insn_mem_dependence, flush_pending_lists,
2172 sched_analyze_insn, sched_analyze_1, sched_analyze_2,
2173 sched_analyze, group_leader, compute_forward_dependences,
2174 init_deps, free_deps, init_dependency_caches, free_dependency_caches):
2175 Functions moved to sched-deps.c.
2176 (schedule_region): Call init_deps_global and finish_deps_global
2177 instead of directly manipulating dependency data structures.
2178 * sched-deps.c: New file.
2179 (init_deps_global, finish_deps_global): New functions.
2180 * sched-int.h (struct haifa_insn_data, struct deps): Moved here from
2181 haifa-sched.c.
2182 (h_i_d): Declare.
2183 (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved here
2184 from haifa-sched.c.
2185
2186 * Makefile.in (OBJS): Add sched-vis.o.
2187 (sched-vis.o): New rule.
2188 * haifa-sched.c (get_unit_last_insn): New function.
2189 (sched_dump, insn_unit, actual_hazard_this_instance): No longer
2190 static.
2191 (schedule_block): Call visualize_alloc and visualize_free. Delete
2192 spurious return statement.
2193 (init_target_units, insn_print_units, get_visual_tbl_length,
2194 init_block_visualization, print_block_visualization, safe_concat,
2195 visualize_scheduled_inns, visualize_no_unit, visualize_stall_cycles,
2196 print_exp, print_value, print_pattern, print_insn, target_units,
2197 MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, visual_tbl,
2198 n_vis_no_unit, vis_no_unit): Move scheduling visualization
2199 functions/variables...
2200 * sched-vis.c: ...here. New file.
2201 (visualize_alloc, visualize_free): New functions.
2202 (visualize_scheduled_insns, visualize_stall_cycles,
2203 print_block_visualization): Lose basic block argument. All callers
2204 changed.
2205 (visualize_scheduled_insns): Use new function get_unit_last_insn.
2206 * sched-int.h (current_sched_info, sched_dump): Declare.
2207 (init_target_units, insn_print_units, init_block_visualization,
2208 print_block_visualization, visualize_scheduled_inns,
2209 visualize_no_unit, visualize_stall_cycles, visualize_alloc,
2210 visualize_free): Declare functions.
2211
2212 * sched-int.h: New file.
2213 * Makefile.in (haifa-sched.o): Depend on it.
2214 * haifa-sched.c: Include it.
2215 (no_real_insns_p): New function.
2216 (current_sched_info): New static variable.
2217 (__inline, HAIFA_INLINE): Moved to sched-int.h.
2218 (get_block_head_tail): Minor cleanup.
2219 (init_ready_list, can_schedule_ready_p, new_ready, schedule_more_p,
2220 rgn_print_insn, rgn_rank): New functions, broken out of
2221 rank_for_schedule, schedule_insn and schedule_block, where they
2222 are now called through function pointers in current_sched_info.
2223 (queue_insn, schedule_insn, queue_to_ready, debug_ready_list,
2224 print_insn): To display uid and block number, call the print_insn
2225 function pointer in current_schedule_info.
2226 (region_sched_info): New static variable.
2227 (sched_target_n_insns, sched_n_insns, target_n_insns): New global
2228 variables, moved out of schedule_block.
2229 (schedule_block): Return void. All callers changed.
2230 Move some of the setup code into schedule_region. Get head/tail
2231 from current_sched_info, and update it when done.
2232 (schedule_region): Slightly rearranged, some code moved here from
2233 schedule_block. Call no_real_insns_p to avoid doing work for a
2234 block that consists only of notes and labels.
2235 (schedule_insns): Initialize current_sched_info.
2236
2237 2000-12-03 Neil Booth <neilb@earthling.net>
2238
2239 * cppmacro.c (funlike_invocation_p): Re-disable macros enabled
2240 by contexts drops AFTER argument pre-expansion, so that they
2241 remain enabled during argument pre-expansion.
2242 (_cpp_pop_context): Unconditionally re-enable a macro when
2243 dropping a context level.
2244
2245 2000-12-03 Manfred Hollstein <manfredh@redhat.com>
2246
2247 * arm/t-linux (MULTILIB_OPTIONS): Comment.
2248 (MULTILIB_DIRNAMES): Likewise.
2249 (EXTRA_MULTILIB_PARTS): Likewise.
2250 (LIBGCC): Likewise.
2251 (INSTALL_LIBGCC): Likewise.
2252
2253 2000-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2254
2255 * builtins.c (expand_builtin_strcat, expand_builtin_strncat,
2256 expand_builtin_strspn, expand_builtin_strcspn): New functions.
2257 (expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
2258 BUILT_IN_STRSPN and BUILT_IN_STRCSPN.
2259
2260 * builtins.def (BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
2261 BUILT_IN_STRSPN, BUILT_IN_STRCSPN): New entries.
2262
2263 * c-common.c (c_common_nodes_and_builtins): Declare builtin
2264 strcat, strncat, strspn and strcspn.
2265 (string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'.
2266
2267 * extend.texi (strcat, strcspn, strncat, strspn): Document new
2268 builtins.
2269
2270 2000-12-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2271
2272 * builtins.c (expand_builtin_strcmp): Use const*_rtx when
2273 expanding strcmp at compile-time. Add another transformation.
2274 (expand_builtin_strncmp): Add more transformations. Call
2275 expand_builtin_memcmp, not expand_builtin_strcmp, under
2276 appropriate conditions if HAVE_cmpstrsi.
2277
2278 2000-12-02 David Edelsohn <edelsohn@gnu.org>
2279
2280 * rs6000.md (anddi3_internal[23]): Prefer rldic? over andis
2281 instruction.
2282 (cr logic): Really make operands sequential.
2283
2284 2000-12-02 Geoffrey Keating <geoffk@redhat.com>
2285
2286 * c-common.c (combine_strings): When the ISO C standard specifies
2287 the maximum length of a string, it doesn't include the trailing
2288 zero byte.
2289
2290 * cpplib.c (do_ifdef): Add check_eol() call.
2291 (do_ifndef): Likewise.
2292
2293 2000-12-02 Daniel Berlin <dberlin@redhat.com>
2294 Bruce Korb <bkorb@gnu.org>
2295
2296 * fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/
2297 * fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos*
2298 * fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build
2299 * fixinc/fixfix.c(wrap_fix): avoid wrapping files that
2300 use the "__need_" hackery. It breaks them.
2301 * fixinc/fixincl.c(process - SEPARATE_FIX_PROC):
2302 Sometimes on DOS and BeOS the temp output file cannot be opened.
2303 Skip the file noisily. Ought to be fixed instead.
2304
2305 2000-12-02 Bruce Korb <bkorb@gnu.org>
2306
2307 From: 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2308
2309 * fixfixes.c (emit_gnu_type, format_write): Prototype.
2310 (format_write, char_macro_use_fix, char_macro_def_fix): Use gcc's
2311 custom uppercase ctype macros.
2312 * fixincl.c (do_version): Make static and add ATTRIBUTE_NORETURN.
2313 Use gcc's custom uppercase ctype macros.
2314 (main): Prototype.
2315 (machine_matches): Add static prototype and constify variable.
2316 (create_file, test_test, egrep_test): Add static prototype.
2317 (quoted_file_exists): Likewise, and constify parameters.
2318 (extract_quoted_files, internal_fix, start_fixer, fix_applies,
2319 write_replacement, test_for_changes): Add static prototype.
2320 (write_replacement, test_for_changes): Delete excess argument to
2321 `create_file'.
2322 * fixtests.c (test): Make static.
2323 * server.c (load_data, sig_handler, server_setup, find_shell): Add
2324 static prototype.
2325 (sig_handler): Mark parameter with ATTRIBUTE_UNUSED.
2326
2327 2000-12-02 Bruce Korb <bkorb@gnu.org>
2328
2329 * fixnc/mkfixinc.sh(msdosdjgpp): remove from fixincludes exception list
2330 (per Laurynas Biveinis <lauras@softhome.net>)
2331
2332 2000-12-02 Richard Earnshaw <rearnsha@arm.com>
2333
2334 * arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New
2335 macros.
2336 (REGNO_MODE_OK_FOR_BASE_P): Define in terms of above.
2337 (REGNO_OK_FOR_FOR_BASE_P): Delete.
2338 (ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for
2339 both strict and non-strict uses.
2340 (REG_MODE_OK_FOR_BASE_P): Define in terms of above.
2341 (ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros.
2342 (REG_OK_FOR_INDEX_P): Define in terms of above.
2343 (REG_OK_FOR_BASE_P): Delete.
2344 (REG_OK_FOR_PRE_POST_P): Delete.
2345 (ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P.
2346 (ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P.
2347 (ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX.
2348 (THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET.
2349 (ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes. Use ARM
2350 specific variants rather than general ones. Use ARM_REG_OK_FOR_BASE_P
2351 in pre/post increment cases.
2352 (THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb.
2353 (ARM_LEGITIMIZE_ADDRESS): Similarly.
2354 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly.
2355 * arm.c (legitimate_pic_address): Similarly.
2356
2357 2000-12-02 Neil Booth <neilb@earthling.net>
2358
2359 * tradcpp.c (struct answer, parse_assertion, parse_answer,
2360 canonicalize_text, find_answer): New.
2361 (do_assert, do_unassert): Provide appropriate function bodies.
2362 (union hashval): New member answers.
2363
2364 2000-11-23 Marek Michalkiewicz <marekm@linux.org.pl>
2365
2366 * config/avr/avr.md: Document UNSPEC usage.
2367 (*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump):
2368 Make operand 0 input only, clobber it. Use UNSPEC, not a bogus
2369 MEM for program memory word reference. Do not add the label to
2370 the table index in each of the asm output templates, instead ...
2371 (casesi): ... do it in RTL. Adjust to match the above change.
2372
2373 2000-12-02 Bernd Schmidt <bernds@redhat.co.uk>
2374
2375 * c-common.c (PTRDIFF_TYPE): Provide default here, ...
2376 * c-decl.c: ... not here.
2377
2378 * haifa-sched.c (sched_dump): Renamed from dump. All users changed.
2379 (old_max_uid): New variable.
2380 (compute_forward_dependences): Renamed from
2381 compute_block_forward_dependences; changed to accept block head and
2382 tail instead of block number. Caller changed.
2383 (free_deps, init_dependency_caches, free_dependency_caches,
2384 init_regions, sched_init): New functions, split out from
2385 schedule_insns and compute_block_backward_dependences.
2386
2387 2000-12-02 Neil Booth <neilb@earthling.net>
2388
2389 * cppexp.c (parse_number): Update diagnostic test.
2390
2391 2000-12-02 Bernd Schmidt <bernds@redhat.co.uk>
2392
2393 * reload1.c (free_for_value_p): New function, frontend to
2394 reload_reg_free_for_value_p. All callers of the latter now call
2395 this function with an additional mode argument.
2396
2397 2000-12-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2398
2399 * install.texi (Configurations): Remove obsolete documentation for
2400 hppa*-*-*.
2401
2402 2000-12-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2403
2404 * install.texi (Installation): Remove obsolete description for
2405 libstdc++ which is now an integral part of GCC.
2406
2407 2000-12-01 Jim Blandy <jimb@redhat.com>
2408
2409 * dbxout.c (dbxout_parms): Correctly describe parameters passed by
2410 invisible reference in registers, but then spilled to the stack.
2411 Remove code to emit a second stab for such parameters; it attempts
2412 to describe the value's location by introducing a synthetic C++
2413 `reference' type, and then saying the stack slot has that
2414 reference type. This loses type information (breaking GDB's
2415 `ptype' command, among other things) just to describe a location
2416 which stabs can represent correctly in other ways.
2417
2418 2000-12-01 Alexandre Oliva <aoliva@redhat.com>
2419
2420 * final.c (output_addr_const) <PLUS>: Don't assume at least one
2421 operand is a CONST_INT.
2422
2423 * config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS.
2424 (machine_dependent_reorg): Split all insns.
2425 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute
2426 reg_class_contents[SIBCALL_REGS].
2427 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add SIBCALL_REGS.
2428 * config/sh/sh.md (calli_pcrel, call_pcrel, call_valuei_pcrel,
2429 call_value_pcrel, call, call_value, sibcall): Match even when
2430 not optimizing.
2431 (sibcalli_pcrel, sibcall_pcrel): Likewise. Use constraint `k'
2432 for call address.
2433 (sibcalli): Likewise.
2434
2435 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
2436
2437 * c-common.c (warn_format, warn_format_y2k,
2438 warn_format_extra_args, warn_format_nonliteral): Define.
2439 (check_format_info): Check warn_format_nonliteral and
2440 warn_format_extra_args.
2441 (check_format_info_main): Check warn_format_y2k.
2442 (set_Wformat): New function.
2443 * c-common.h (warn_format_y2k, warn_format_extra_args,
2444 warn_format_nonliteral, set_Wformat): Declare.
2445 * c-decl.c (warn_format): Remove definition.
2446 (c_decode_option): Handle -Wformat-nonliteral,
2447 -Wno-format-extra-args and -Wno-format-y2k, and negated versions.
2448 Use set_Wformat.
2449 * invoke.texi: Document these new options and -Wformat=2.
2450 * toplev.c (documented_lang_options): Add these new options.
2451
2452 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
2453
2454 * builtins.def (BUILT_IN_IMAXABS): Add.
2455 * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS.
2456 * c-common.c (c_common_nodes_and_builtins): Create builtin
2457 functions __builtin_imaxabs, and plain imaxabs unless
2458 flag_no_nonansi_builtin outside C99 mode.
2459 (expand_tree_builtin): Handle BUILT_IN_IMAXABS.
2460 * extend.texi: Document builtin imaxabs.
2461
2462 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
2463
2464 * c-common.c: Include "defaults.h".
2465 (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Define.
2466 (c_common_nodes_and_builtins): Create string_type_node,
2467 const_string_type_node, wint_type_node, intmax_type_node,
2468 uintmax_type_node, default_function_type, ptrdiff_type_node and
2469 unsigned_ptrdiff_type_node.
2470 * c-common.h (identifier_global_value): Declare.
2471 * c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
2472 (init_decl_processing): Don't create string_type_node,
2473 const_string_type_node, wint_type_node, intmax_type_node,
2474 uintmax_type_node, default_function_type, ptrdiff_type_node and
2475 unsigned_ptrdiff_type_node.
2476 (identifier_global_value): New function.
2477
2478 2000-12-01 Neil Booth <neilb@earthling.net>
2479
2480 * cppinit.c (initialize): Forgotten prototype.
2481 * cpplex.c (_cpp_lex_token): Loop until not skipping.
2482 Always clear PREV_WHITE upon meeting a new line.
2483 * cpplib.c (end_directive): Set pfile->skipping after
2484 skip_rest_of_line.
2485 * cpplib.h (cpp_reader): Remove macro_pos.
2486 * cppmacro.c (cpp_get_line): Don't do anything special inside
2487 macros.
2488 (parse_arg): Add PREV_WHITE if a token appears after new lines.
2489 (funlike_invocation_p): Save and restore the output position
2490 over a successful check for a '('.
2491 (enter_macro_context): Delete uses of macro_pos.
2492 (cpp_get_token): Don't use pfile->skipping.
2493
2494 2000-12-01 Phil Edwards <pme@sources.redhat.com>
2495
2496 * diagnostic.c: Fix typos in comments.
2497 * diagnostic.h: Likewise.
2498
2499 2000-11-30 Phil Edwards <pme@sources.redhat.com>
2500
2501 * rtl.texi (Machine Modes): Document BImode and OImode.
2502
2503 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
2504
2505 * gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and
2506 .FPP.
2507
2508 2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
2509
2510 * c-decl.c (grokdeclarator): If pedantic, warn about arrays with
2511 incomplete element type.
2512 (grokparms): Before checking for incomplete parameter type, check
2513 the type isn't error_mark_node.
2514
2515 2000-12-01 Jakub Jelinek <jakub@redhat.com>
2516
2517 * builtins.c (target_char_cast): New function.
2518 (expand_builtin_strchr): Use it.
2519 (expand_builtin_strrchr): Use it.
2520 (builtin_memset_read_str): New function.
2521 (expand_builtin_memset): Use target_char_cast.
2522 Try to optimize memset with second argument non-zero using
2523 store_by_pieces.
2524
2525 2000-11-30 Marek Michalkiewicz <marekm@linux.org.pl>
2526
2527 * install.texi (avr): Replace incomplete list of supported MCU
2528 types with a link to the current one ...
2529 * invoke.texi (AVR Options): ... here. Update -mmcu= to list
2530 all supported MCU types. Document -minit-stack= default.
2531 Document new options -mno-tablejump, -mtiny-stack.
2532 * md.texi (AVR family): Fix typo in 'w' constraint letter
2533 description. Document 'q'. Update 'O'.
2534
2535 2000-12-01 Bernd Schmidt <bernds@redhat.co.uk>
2536
2537 * combine.c (cant_combine_insn_p): Only disallow insns involving
2538 hard regs if they are reg-reg moves.
2539 (try_combine, can_combine_p, combinable_i3pat): Delete old
2540 SMALL_REGISTER_CLASSES tests.
2541
2542 2000-12-01 Alexandre Oliva <aoliva@redhat.com>
2543
2544 * config/sh/sh.c (shiftcosts): Don't get INTVAL before testing
2545 whether X is a CONST_INT.
2546 (addsubcosts): Likewise.
2547
2548 * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of
2549 mis-used XINT.
2550 (ARG_POINTER_REGNUM): Set to AP_REG.
2551
2552 2000-11-30 Alexandre Oliva <aoliva@redhat.com>
2553
2554 * config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
2555 splits): Only match on TARGET_SH4.
2556
2557 * combine.c (try_combine): Disregard USEs when updating LOG_LINKS
2558 of subsequent insns.
2559
2560 2000-11-30 Richard Henderson <rth@redhat.com>
2561
2562 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable.
2563 * config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
2564
2565 2000-11-30 Richard Henderson <rth@redhat.com>
2566
2567 * config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn.
2568 (DO_SELECT_SECTION): New.
2569 (SELECT_SECTION): Use it.
2570 (UNIQUE_SECTION_P): New.
2571 (UNIQUE_SECTION): New.
2572
2573 2000-11-30 Alexandre Oliva <aoliva@redhat.com>
2574
2575 * c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status
2576 from va_list before using it.
2577
2578 2000-11-30 Michael Matz <matzmich@cs.tu-berlin.de>
2579
2580 * flow.c (make_edge): Early out, if no flags to set.
2581 (calculate_global_regs_live): Clear out garbage only when necessary.
2582
2583 * simplify-rtx.c (varray_type used_regs): New.
2584 (clear_table): Use it to only clear necessary items.
2585 (cselib_lookup, cselib_record_set): Remember newly set items.
2586 (cselib_update_varray_sizes, cselib_init): Initialize and grow
2587 used_regs.
2588
2589 * local-alloc.c (update_equiv_regs): New local `cleared_regs'.
2590 Move clearing of dead regs out of insn-loop.
2591
2592 2000-11-30 Richard Henderson <rth@redhat.com>
2593
2594 * calls.c (expand_call): Emit queued insns before creating
2595 the tail recursion sequence.
2596
2597 2000-11-30 J. David Anglin <dave.anglin@nrc.ca>
2598 Bruce Korb <bkorb@gnu.org>
2599
2600 * fixinc/inclhack.def(): prevent dual double definition protection
2601 * fixinc/fixincl.x: regenerate
2602
2603 2000-11-29 Loren J. Rittle <ljrittle@acm.org>
2604
2605 * fixinc/Makefile.in (fixincl.x): Explicitly state the
2606 location of the generated file.
2607
2608 2000-11-30 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2609
2610 * README.FRESCO: Remove obsolete file.
2611
2612 2000-11-30 Mark Kettenis <kettenis@gnu.org>
2613
2614 * config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS,
2615 TARGET_LIBGCC2_CFLAGS): Remove. We now use the settings from
2616 config/t-linux for the Hurd.
2617
2618 2000-11-30 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2619
2620 * config/mn10200/udivmod.c, config/mn10200/divmod.c,
2621 config/mn10200/udivmodsi4.c: Moved from here.
2622 * config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here.
2623 * config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic
2624 C division functions.
2625 * config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise.
2626
2627 Thu Nov 30 01:12:52 2000 Jeffrey A Law (law@cygnus.com)
2628
2629 * pa.md (conditional moves): Avoid holes in operand list.
2630 (mod, umod patterns): Similarly.
2631 (variable extract/shift patterns): Similarly.
2632
2633 2000-11-30 Neil Booth <neilb@earthling.net>
2634
2635 * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
2636 maybe_objc_check_decl, build_objc_string_object,
2637 objc_declare_alias, objc_declare_class, build_message_expr,
2638 build_protocol_expr, build_selector_expr, build_encode_expr,
2639 get_class_ivars, start_class, start_protocol): Remove
2640 redundant code, assuming doing_objc_thang is true.
2641
2642 2000-11-29 John David Anglin <dave@hiauly1.hia.nrc.ca>
2643
2644 * pa.c (restore_unscaled_index_insn_codes): Delete procedure.
2645 (record_unscaled_index_insn_codes): Likewise.
2646 (unscaled_index_insn_codes): Delete.
2647 (max_unscaled_index_insn_codes_uid): Delete.
2648 (output_function_prologue, output_function_epilogue, pa_reorg):
2649 Don't use the unscaled index insn hack.
2650
2651 * pa.md: Remove hack from all index insns to reverse the operand
2652 order of frame and stack pointer references incorrectly created
2653 in the reload pass.
2654
2655 * function.h (emit_status): Delete member regno_pointer_flag and
2656 rename regno_pointer_flag_length to regno_pointer_align_length.
2657 Delete define for REGNO_POINTER_FLAG.
2658 * integrate.h (inline_remap): Delete member regno_pointer_flag.
2659 Add member x_regno_reg_rtx.
2660 * rtl.h (rtx_def): Use frame_related bit to indicate register is
2661 a pointer in REG expressions. Define REG_POINTER macro.
2662 * alias.c (find_base_value, find_base_term): Use REG_POINTER
2663 instead of REGNO_POINTER_FLAG.
2664 * combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
2665 * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
2666 of regno_pointer_flag_length. Remove code which refers to
2667 regno_pointer_flag.
2668 (mark_reg_pointer): Use REG_POINTER.
2669 (free_emit_status): Remove code which refers to regno_pointer_flag.
2670 (init_emit, mark_emit_status): Likewise.
2671 * flow.c (dump_flow_info): Likewise.
2672 * function.c (preserve_temp_slots): Likewise.
2673 * integrate.c (expand_inline_function, copy_rtx_and_substitute):
2674 Use x_regno_reg_rtx instead of regno_pointer_flag for function
2675 pointer determination in map.
2676 * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
2677 * predict.c (estimate_probability): Likewise.
2678 * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
2679 * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
2680 regno_pointer_flag for function pointer determination in map.
2681 * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
2682 REG_POINTER.
2683 * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
2684 Use REG_POINTER.
2685 (restore_unscaled_index_insn_codes): Revise comment.
2686
2687 * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
2688
2689 2000-11-30 Joseph S. Myers <jsm28@cam.ac.uk>
2690
2691 * extend.texi: Update documentation for attributes.
2692
2693 2000-11-29 David O'Brien <obrien@FreeBSD.org>
2694
2695 * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define.
2696 (ASM_DECLARE_OBJECT_NAME): Same.
2697 (ASM_FILE_END): Same.
2698 (ASM_FINISH_DECLARE_OBJECT): Same.
2699 (ASM_IDENTIFY_GCC): Same.
2700 (ASM_IDENTIFY_LANGUAGE): Same.
2701 (ASM_OUTPUT_CONSTRUCTOR): Same.
2702 (ASM_OUTPUT_DEF): Same.
2703 (ASM_OUTPUT_DESTRUCTOR): Same.
2704 (ASM_OUTPUT_EXTERNAL_LIBCALL): Same.
2705 (ASM_OUTPUT_SECTION_NAME): Same.
2706 (ASM_WEAKEN_LABEL): Same.
2707 (BSS_SECTION_ASM_OP): Same.
2708 (COMMON_ASM_OP): Same.
2709 (CONST_SECTION_ASM_OP): Same.
2710 (CONST_SECTION_FUNCTION): Same.
2711 (CTORS_SECTION_ASM_OP): Same.
2712 (DTORS_SECTION_ASM_OP): Same.
2713 (ESCAPES): Same.
2714 (FINI_SECTION_ASM_OP): Same.
2715 (IDENT_ASM_OP): Same.
2716 (IDENT_ASM_OP): Same.
2717 (INIT_SECTION_ASM_OP): Same.
2718 (INT_ASM_OP): Same.
2719 (MAX_OFILE_ALIGNMENT): Same.
2720 (SBSS_SECTION_ASM_OP): Same.
2721 (SDATA_SECTION_ASM_OP): Same.
2722 (SECTION_FUNCTION_TEMPLATE): Same.
2723 (SELECT_SECTION): Same.
2724 (SE_CONST_SECTION): Same.
2725 (SIZE_ASM_OP): Same.
2726 (SKIP_ASM_OP): Same.
2727 (STRING_ASM_OP): Same.
2728 (STRING_LIMIT): Same.
2729 (TYPE_ASM_OP): Same.
2730 (TYPE_OPERAND_FMT): Same.
2731
2732 2000-11-29 Neil Booth <neilb@earthling.net>
2733
2734 * c-decl.c (c_decode_option): Don't handle -lang-objc.
2735 * objc/lang-options.h: Remove -lang-objc.
2736 * objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
2737 * objc/objc-act.c (lang_init_options): Set c_language.
2738
2739 2000-11-29 Jakub Jelinek <jakub@redhat.com>
2740
2741 * expr.c (can_store_by_pieces): Reinitialize max_size for reverse
2742 tests.
2743
2744 2000-11-29 Neil Booth <neilb@earthling.net>
2745
2746 * c-pragma.c (init_pragma): Update for parse_in type change.
2747
2748 2000-11-29 Laurynas Biveinis <lauras@softhome.net>
2749
2750 * configure.in: recognize DOS-style absolute paths.
2751
2752 2000-11-29 Jakub Jelinek <jakub@redhat.com>
2753
2754 * expr.h (store_by_pieces): Add prototype.
2755 (can_store_by_pieces): Likewise.
2756 * expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
2757 (can_store_by_pieces): New.
2758 (store_by_pieces): New.
2759 (clear_by_pieces): New.
2760 (clear_by_pieces_1): New.
2761 (store_by_pieces_1): Renamed from clear_by_pieces, handle storing
2762 arbitrary compiler generated constants into memory block.
2763 (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
2764 * builtins.c (c_readstr): New.
2765 (builtin_memcpy_read_str): New.
2766 (expand_builtin_memcpy): If src is string constant and
2767 emit_block_move would move it by pieces, compute integer constants
2768 from the string and store it into memory block instead.
2769 (builtin_strncpy_read_str): New.
2770 (expand_builtin_strncpy): If N is not constant zero and c_strlen does
2771 not return INTEGER_CST, don't optimize.
2772 If N is larger than strlen(src) + 1, try to copy the string
2773 including padding with store_by_pieces.
2774 (expand_builtin_strcmp): If both arguments have side effects, don't
2775 optimize.
2776 (expand_builtin_fputs): If STR has side effects, don't optimize.
2777
2778 2000-11-29 Richard Earnshaw <rearnsha@arm.com>
2779
2780 * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn):
2781 Add use of link register.
2782
2783 2000-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
2784
2785 * extend.texi: Update documentation for default format attributes.
2786
2787 Tue Nov 28 21:56:45 2000 Jeffrey A Law (law@cygnus.com)
2788
2789 * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
2790 a list, to keep track of the sections.
2791
2792 2000-11-28 Nick Clifton <nickc@redhat.com>
2793
2794 * config/arm/arm.md (pic_load_addr): Split into
2795 pic_load_addr_arm and pic_load_addr_thumb.
2796
2797 * config/arm/arm.c (legitimize_pic_address): Generate either
2798 ARM or Thumb versions of pic_load_addr.
2799 (arm_finalize_pic): Generate either ARM or Thumb versions of
2800 pic_load_addr.
2801
2802 2000-11-28 Richard Henderson <rth@redhat.com>
2803
2804 * calls.c (expand_call): Defer const/pure NO_DEFER_POP until
2805 after sibcall do_pending_stack_adjust.
2806
2807 Wed Nov 29 00:08:23 2000 J"orn Rennecke <amylaar@redhat.com>
2808
2809 * jump.c (delete_insn): Check that REG_LABEL note actually contains
2810 a CODE_LABEL.
2811
2812 2000-11-28 Neil Booth <neilb@earthling.net>
2813
2814 * c-common.h: Remove flag_digraphs.
2815 * c-decl.c: Remove flag_digraphs.
2816 (c_decode_option): Don't set it.
2817 * c-lex.c (init_c_lex): Don't do anything for digraphs.
2818
2819 2000-11-28 Richard Henderson <rth@redhat.com>
2820
2821 * c-parse.in (finish_parse): Update for parse_in type change.
2822 (_yylex): Likewise.
2823
2824 2000-11-28 Neil Booth <neilb@earthling.net>
2825
2826 * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
2827 indicating whether to scan all buffers on the stack or
2828 just one.
2829 * cppinit.c (do_includes): Update.
2830 * cppmain.c (main): Update.
2831 * cpplib.h: Update prototype.
2832
2833 2000-11-28 Richard Henderson <rth@redhat.com>
2834
2835 * genoutput.c (validate_insn_operands): New.
2836 (gen_insn): Call it.
2837
2838 * config/alpha/alpha.md (divmodsi_internal): Renumber operands.
2839 (divmoddi_internal): Likewise.
2840 * config/arm/arm.md (andsi3_compare0_scratch): Likewise.
2841 * config/i960/i960.md (branch patterns): Likewise.
2842 * config/ia64/ia64.md (tbit_and_0): Likewise.
2843 (tbit_and_1, tbit_or_0, tbit_or_1): Likewise.
2844 * config/m68k/m68k.md (zero_extract memory patterns): Likewise.
2845 * config/mips/mips.md (divmodsi4_internal): Likewise.
2846 (divmoddi4_internal): Likewise.
2847 * config/rs6000/rs6000.md (call patterns): Likewise.
2848 * config/sh/sh.md (movsi_y): Likewise.
2849 * config/sparc/sparc.md: Comment out if 0 v8p shift pattern.
2850
2851 2000-11-28 Richard Henderson <rth@redhat.com>
2852
2853 * config.gcc: Kill residual pyramid support.
2854
2855 2000-11-28 Neil Booth <neilb@earthling.net>
2856
2857 * c-lex.h (parse_in): Change parse_in to a cpp_reader *.
2858 * c-decl.c (c_decode_option): Update to match.
2859 * c-lex.c (init_c_lex, yyparse): Update to match.
2860 * c-lang.c (lang_init_options): Use cpp_create_reader.
2861 * cppinit.c (cpp_init): Rename initialize.
2862 (cpp_reader_init): Rename cpp_create_reader. Create the
2863 reader. Initialize cpplib if appropriate.
2864 * cpplib.h (cpp_create_reader) New prototype.
2865 (cpp_init, cpp_reader_init): Delete prototypes.
2866 * cppmain.c (general_init, setup_callbacks): New functions.
2867 (main): Use them.
2868 * fix-header.c (scan_in): Change type to cpp_reader *.
2869 (read_scan_file): Update for new cpplib interface and scan_in type.
2870
2871 * cp/decl.c (parse_in): Change to cpp_reader *.
2872 (lang_decode_option): Update.
2873 * cp/lex.c (lang_init_options): Use new cpplib interface.
2874 (init_cp_pragma, finish_parse, handle_pragma_implementation): Update.
2875 * cp/spew.c (read_token): Update.
2876 * objc/objc-act.c (lang_init_options): Update new cpplib interface.
2877
2878 2000-11-28 Jakub Jelinek <jakub@redhat.com>
2879
2880 * loop.c (load_mems): Avoid using next_label to find end_label. If
2881 jumping outside of the loop (other than loop end), don't hoist MEMs
2882 out of loop.
2883
2884 2000-11-28 Jan Hubicka <jh@suse.cz>
2885
2886 * calls.c (expand_call): Don't disable tail recursion based
2887 on the loop nest.
2888
2889 2000-11-28 Neil Booth <neilb@earthling.net>
2890
2891 * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
2892 (struct directive): Drop 4th argument from handlers.
2893 (do_define, do_line, do_include, do_undef, do_else, do_elif,
2894 do_endif): Similarly.
2895 (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
2896 (do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
2897 (make_definition, make_undef): Take a const char*.
2898 (make_assertion): New function.
2899 (struct directive_table): Update.
2900 (main): Handle -A command line argument.
2901 (handle_directive): Drop fourth handler argument.
2902
2903 2000-11-28 Bernd Schmidt <bernds@redhat.co.uk>
2904
2905 * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination
2906 is anything but REG or MEM, but look inside STRICT_LOW_PART.
2907
2908 Tue Nov 28 09:53:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2909
2910 * system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
2911 (IS_ABSOLUTE_PATHNAME): New macro.
2912 * gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
2913
2914 2000-11-28 Jakub Jelinek <jakub@redhat.com>
2915
2916 * config/i386/i386.md (truncxfsf2_2): Fix predicate.
2917
2918 2000-11-27 Jim Wilson <wilson@redhat.com>
2919
2920 * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size.
2921
2922 2000-11-27 Matthias Klose <doko@cs.tu-berlin.de>
2923
2924 * extend.texi (Nested Functions): Update URL of Usenix paper.
2925
2926 2000-11-27 Mark Mitchell <mark@codesourcery.com>
2927
2928 * function.c (free_after_compilation): Clear x_clobber_return_insn.
2929
2930 2000-11-27 Neil Booth <neilb@earthling.net>
2931
2932 * cppinit.c (cpp_reader_init): Remove handling of warn_paste
2933 command line options.
2934 (cpp_handle_option): Similarly.
2935 * cpplib.h (struct cpp_options): Remove warn_paste.
2936 * cppmacro.c (paste_tokens): Apart from assembler, make
2937 unpasteable token warning mandatory.
2938
2939 2000-11-27 Neil Booth <neilb@earthling.net>
2940
2941 * tradcpp.c (enum pending_dir_t, struct pending_dir): New.
2942 (main): Allocate a pending directive set of these. Use it.
2943 Merge handling of -D and -U. Update handling of pending
2944 directives. Free the memory after use.
2945
2946 2000-11-27 Bernd Schmidt <bernds@redhat.co.uk>
2947
2948 * flow.c (entry_exit_blocks): Add entry for cond_local_set.
2949 (struct propagate_block_info): Add new member cond_local_set.
2950 (propagate_block): Accept new arg cond_local_set. All callers
2951 changed.
2952 (init_propagate_block_info): Likewise.
2953 (calculate_global_regs_live): Allocate & free cond_local_set. Always
2954 rescan if there's overlap between cond_local_set and new_live_at_end.
2955 (mark_set_1): Set bits either in cond_local_set or local_set, as
2956 appropriate.
2957 * basic-block.h (struct basic_block_def): New field cond_local_set.
2958 (propagate_block, init_propagate_block_info): Update prototypes.
2959
2960 Mon Nov 27 17:29:44 2000 kaz Kojima <kkojima@rr.iij4u.or.jp>
2961
2962 * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber
2963 T register.
2964
2965 2000-11-27 Richard Earnshaw <rearnsha@arm.com>
2966
2967 * arm.c (select_dominance_cc_mode): Handle new way that combine
2968 canonicalizes conditional compares.
2969 (arm_select_cc_mode): Likewise.
2970 * arm.md: Garbage collect some dead code.
2971 (cmp_and, cmp_ior): New patterns.
2972 (splitter for conditional move with inverted false): Use cond_exec
2973 and handle unordered comparisons.
2974
2975 Mon Nov 27 17:22:56 MET 2000 Jan Hubicka <jh@suse.cz>
2976
2977 * i386.c (ix86_force_to_memory, ix86_free_from_memory): New.
2978 * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare
2979 * i386.md (float?i?f, int/fp operations): Rewrite spliters to use
2980 ix86_force_to_memory and ix86_free_from_memory.
2981
2982 2000-11-27 Richard Earnshaw <rearnsha@arm.com>
2983
2984 * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
2985 arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
2986 anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
2987 one_cmpldi2): Merge with splitters to create define_insn_and_split
2988 patterns. Remove redundant splits.
2989 (peephole2 for add:SI of invalid immediate): New.
2990 (peephole2 for minus:SI of invalid immediate): New.
2991 (peephole2 for ior:SI of invalid immediate): New.
2992 (peephole for merge of move and compare): Convert ot peephole2.
2993 (addsf3, adddf3): Mark as commutative.
2994
2995 * arm.md (thumb peephole for merging stack adjustments): Convert to
2996 peephole2.
2997
2998 2000-11-27 Bernd Schmidt <bernds@redhat.co.uk>
2999
3000 * haifa-sched.c (print_pattern): Prettier output for COND_EXEC.
3001
3002 * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup.
3003 (reload_cse_simplify_operands): Do nothing about operands where both
3004 the operand and the match_operand fail to give us a mode.
3005 * simplify-rtx.c (wrap_constant): New function.
3006 (entry_and_rtx_equal_p): Except integer constants to come wrapped in a
3007 CONST describing the proper mode.
3008 (rtx_equal_for_cselib_p): Pass down modes to recursive calls of
3009 cselib_lookup.
3010 (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to
3011 htab_find_slot_with_hash.
3012 (cselib_lookup): Likewise.
3013
3014 Based on a patch from Geoff Keating <geoffk@redhat.com>:
3015 * loop.c (basic_induction_var): If a REG is set from something
3016 that is not a biv, then the REG is not a biv. Even if it is
3017 earlier set from something that is a biv.
3018
3019 2000-11-27 Alexandre Oliva <aoliva@redhat.com>
3020
3021 * configure.in (extra_objs): Enclose extra_headers in quotes.
3022 * configure: Rebuilt.
3023
3024 2000-11-27 Neil Booth <neilb@earthling.net>
3025
3026 * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file):
3027 Combine into the new function cb_change_file.
3028 (init_c_lex): Update.
3029 * cppfiles.c (stack_include_file): Use _cpp_do_file_change.
3030 (cpp_syshdr_flags): Delete.
3031 * cpphash.h (_cpp_do_file_change): New prototype.
3032 Move struct cpp_buffer here from...
3033 * cpplib.h (struct cpp_buffer): ... here.
3034 (enum cpp_fc_reason, struct cpp_file_loc,
3035 struct_cpp_file_change, change_file): New.
3036 (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete.
3037 * cpplib.c (do_line): Update for new cb_change_file callback.
3038 (_cpp_do_file_change): New function.
3039 (_cpp_pop_buffer): Update to use it.
3040 * cppmain.c (move_printer): Delete.
3041 (main): Set up single callback cb_change_file.
3042 (cb_enter_file, cb_leave_file, cb_rename_file): Delete.
3043 (cb_change_file): New.
3044 * fix-header.c (cur_file, cb_change_file): New.
3045 (recognized_function, read_scan_file): Update.
3046 * scan-decls.c (scan_decls): Update.
3047 * scan.h (recognized_function): Update prototype.
3048
3049 2000-11-26 Mark Mitchell <mark@codesourcery.com>
3050
3051 * tree.h (mark_tree_hashtable): New function.
3052 * tree.c (mark_tree_hashtable_entry): New function.
3053 (mark_tree_hashtable): Likewise.
3054
3055 2000-11-27 Michael Meissner <meissner@redhat.com>
3056
3057 * d30v-protos.h (srelational_si_operator): Correctly spell
3058 function.
3059 (urelational_si_operator): Ditto.
3060 (relational_si_operator): Ditto.
3061 (d30v_expand_prologue): Add prototype.
3062 (d30v_expand_epilogue): Ditto.
3063
3064 * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change.
3065
3066 * d30v.md (movcccc_*): Delete now unused patterns.
3067 (64 bit comparison splitters): Rewrite to use COND_EXEC instead of
3068 IF_THEN_ELSE.
3069 (define_cond_exec): Use 'b' to select branch flags.
3070
3071 2000-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3072
3073 * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New
3074 functions.
3075 (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP.
3076
3077 * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries.
3078
3079 * c-common.c (c_common_nodes_and_builtins): Declare builtin
3080 strncpy and strncmp.
3081
3082 * extend.texi (strncmp, strncpy): Document new builtins.
3083
3084 2000-11-26 Mark Mitchell <mark@codesourcery.com>
3085
3086 * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
3087 a list, to keep track of the sections.
3088 * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
3089 parameter provided will always be a canonical string.
3090
3091 2000-11-26 Neil Booth <neilb@earthling.net>
3092
3093 * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the
3094 current buffer.
3095
3096 2000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
3097
3098 * makefile.vms: Remove EGCS references.
3099
3100 2000-11-26 Ulrich Drepper <drepper@redhat.com>
3101
3102 * dwarf2out.c (output_file_names): New function. Compute minimal
3103 combination of directory and file name table and emit them.
3104 (output_line_info): Remove code to emit directory and file name
3105 table and call output_file_names instead.
3106 (file_info_cmp): Helper function to sort directory names.
3107
3108 2000-11-26 Neil Booth <neilb@earthling.net>
3109
3110 * cpplib.h (struct cpp_reader): Remove lang_asm.
3111 (struct cpp_options): Remove c89. New members lang,
3112 extended_numbers.
3113 * cppexp.c (parse_number): Use them.
3114 * cpphash.h (VALID_SIGN): Use them.
3115 * cppinit.c (set_lang, cpp_start_read): Update.
3116 * cpplex.c (parse_string, _cpp_lex_token): Update.
3117 * cpplib.c (_cpp_handle_directive): Update.
3118 * cppmacro.c (parse_args): Update.
3119 * cppmain.c (scan_buffer): Update.
3120
3121 Sun Nov 26 10:02:37 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3122
3123 * fold-const.c (fold, case CONVERT_EXPR): Always return tree of
3124 proper type.
3125
3126 2000-11-26 Neil Booth <neilb@earthling.net>
3127
3128 * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.
3129 * c-decl.c: Remove parse_in declaration.
3130 * c-lang.c: Similarly.
3131 * c-lex.c: Similarly.
3132 * c-parse.in: Similarly.
3133 * c-pragma.c: Similarly.
3134 * configure.in: Similarly.
3135 * cp/Make-lang.in: Similarly.
3136 * cp/spew.c: Similarly.
3137 * cp/decl2.c: Remove check for lang-c++ option.
3138 * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line.
3139 * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++.
3140 * c-lex.h: Add declaration of parse_in.
3141 * cppinit.c: Call set_lang after allocating pfile->pending.
3142 * configure: Regenerate.
3143
3144 2000-11-25 Zack Weinberg <zack@wolery.stanford.edu>
3145
3146 * combine.c (try_combine): Remove redundant test.
3147
3148 2000-11-25 Richard Henderson <rth@redhat.com>
3149
3150 * c-common.h (DECL_C_HARD_REGISTER): New.
3151 * c-decl.c (finish_decl): Set it for asm register variables.
3152 * c-semantics.c (emit_local_var): Test it when instantiating one.
3153
3154 2000-11-25 Richard Henderson <rth@redhat.com>
3155
3156 * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
3157 lineno for the start of the function.
3158
3159 2000-11-25 Richard Henderson <rth@redhat.com>
3160
3161 * dwarf2out.c (file_table, file_table_allocated): Remove.
3162 (file_table_allocated): Remove.
3163 (struct file_table): New.
3164 (decl_file_table, line_file_table): New.
3165 (print_dwarf_line_table): Use them.
3166 (size_of_line_prolog): Likewise.
3167 (output_line_info): Likewise.
3168 (add_src_coords_attributes): Likewise.
3169 (gen_subprogram_die): Likewise.
3170 (gen_variable_die): Likewise.
3171 (dwarf2out_add_library_unit_info): Likewise.
3172 (dwarf2out_line): Likewise.
3173 (lookup_filename): Take a struct file_table argument.
3174 (init_file_table): New.
3175 (dwarf2out_init): Use it.
3176
3177 2000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
3178
3179 * invoke.texi: Update sequence points references.
3180
3181 2000-11-25 Neil Booth <neilb@earthling.net>
3182
3183 * c-common.c: Remove USE_CPPLIB conditional inclusions.
3184 * c-common.h: Similarly.
3185 * c-decl.c: Similarly.
3186 * c-lang.c: Similarly.
3187 * c-lex.c: Similarly.
3188 * c-parse.in: Similarly.
3189 * c-pragma.c: Similarly.
3190 * c-pragma.h: Similarly.
3191 * gcc.c: Similarly.
3192 * toplev.c: Similarly.
3193 * cp/cp-tree.h: Similarly.
3194 * cp/decl2.c: Similarly.
3195 * cp/lang-specs.h: Similarly.
3196 * cp/lex.c: Similarly.
3197 * cp/lex.h: Similarly.
3198 * cp/spew.c: Similarly.
3199 * java/lang-options.h: Similarly.
3200 * objc/lang-specs.h: Similarly.
3201 * objc/objc-act.c: Similarly.
3202
3203 * configure.in: Remove configure option.
3204 * config.in: Regenerate.
3205 * configure: Regenerate.
3206
3207 2000-11-25 Richard Henderson <rth@redhat.com>
3208
3209 * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
3210 Revert 2000-11-22 change.
3211
3212 2000-11-25 Bernd Schmidt <bernds@redhat.co.uk>
3213
3214 * config/i386/i386.h (FIXED_REGS): Make the three flags registers
3215 fixed.
3216
3217 2000-11-25 Philipp Thomas <pthomas@suse.de>
3218 * configure.in (ALL_LINGUAS): Remove en_GB and add sv.
3219 * configure: Rebuilt.
3220
3221 2000-11-25 Jakub Jelinek <jakub@redhat.com>
3222
3223 * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
3224 Handle CONST_INT as second argument.
3225 * config/sparc/sparc.c (set_extends): Remove first argument.
3226 Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
3227 MOV.
3228 (sparc_check_64): Abort if first argument is not REG.
3229 If it is DImode REG, look at the lower register of the register
3230 pair.
3231
3232 * config/sparc/sparc.c (load_pic_register, restore_regs,
3233 output_return, sparc_v8plus_shift, sparc_function_profiler,
3234 sparc_function_block_profiler, sparc_block_profiler): Fix output
3235 formatting.
3236
3237 2000-11-25 Alexandre Oliva <aoliva@redhat.com>
3238
3239 * config/sh/sh.h (TARGET_NONE): New.
3240 (TARGET_SWITCHES): For all variant-selecting switch, use
3241 TARGET_NONE to reset all other variant-selecting switch. Added
3242 empty strings to avoid warnings.
3243 (TARGET_DEFAULT): Set to SH1_BIT.
3244
3245 * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for
3246 insn-codes.h.
3247
3248 * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
3249 (sibcall_pcrel): New insn_and_split.
3250 (sibcall, sibcall_value, sibcall_epilogue): New expands.
3251
3252 * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
3253 symPLT_label2reg, call, call_value): Don't set
3254 current_function_uses_pic_offset_table.
3255 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
3256 PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
3257 takes it into account.
3258 (FINALIZE_PIC): Delete, useless.
3259 (LEGITIMATE_CONSTANT_P): Delete, unused.
3260 * config/sh/sh.c (sh_expand_prologue): Don't use
3261 current_function_uses_pic_offset_table. Don't special-case
3262 PIC_OFFSET_TABLE_REGNUM. Initialize it if it's ever live and
3263 PIC is enabled.
3264 (sh_expand_epilogue, initial_elimination_offset): Don't
3265 special case PIC_OFFSET_TABLE_REGNUM.
3266
3267 2000-11-25 Alexandre Oliva <aoliva@redhat.com>, NIIBE Yutaka <gniibe@m17n.org>
3268
3269 * config/sh/sh-protos.h (symbol_ref_operand): Declare.
3270 * config/sh/sh.md (UNSPEC_CALLER): New constant.
3271 (calli_pcrel, call_valuei_pcrel): Use PIC_REG.
3272 (call_pcrel, call_value_pcrel): New insn_and_splits.
3273 (call, call_value): Use them.
3274 (call_site): New expand.
3275 (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
3276 * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]:
3277 Output call_site label.
3278 (PREDICATE_CODES): Added symbol_ref_operand.
3279 * config/sh/sh.c (symbol_ref_operand): Define.
3280 * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
3281 to CALL_INSNs in the split sequence.
3282
3283 2000-11-24 Nick Clifton <nickc@redhat.com>
3284
3285 * config.gcc (v850-*-*): Define c_target_objs and
3286 cxx_target_objs.
3287
3288 * config/v850/t-v850: Define how to build v850-c.o
3289
3290 * config/v850/v850.h (struct data_area_stack_element): Move
3291 definition here from v850.c.
3292
3293 * config/v850v850.c: Include gcc.h to avoid compile time
3294 warning.
3295 (push_data_area): Move to v850-c.c.
3296 (pop_data_area): Move to v850-c.c.
3297 (mark_current_function_as_interrupt): Move to v850-c.c.
3298 (GHS_default_section_names): Allow to be exported.
3299 (GHS_current_section_names): Allow to be exported.
3300 (data_area_stack_elements): Allow to be exported.
3301 (ghs_pragma_section): Move to v850-c.c.
3302 (ghs_pragma_interrupt): Move to v850-c.c.
3303 (ghs_pragma_starttda): Move to v850-c.c.
3304 (ghs_pragma_startsda): Move to v850-c.c.
3305 (ghs_pragma_startzda): Move to v850-c.c.
3306 (ghs_pragma_endtda): Move to v850-c.c.
3307 (ghs_pragma_endsda): Move to v850-c.c.
3308 (ghs_pragma_endzda): Move to v850-c.c.
3309
3310 * config/v850/v850-c.c: New file: Contains v850 specific
3311 pragma parsing functions.
3312
3313 2000-11-24 Nick Clifton <nickc@redhat.com>
3314
3315 * config.gcc (extra_objs): Remove duplicate description.
3316 (c_target_objs): New variable. Contains target specific
3317 object files for the gcc C compiler only.
3318 (cxx_target_objs): New variable. Contains target specific
3319 object files for the gxx C++ compiler only.
3320
3321 * configure.in (c_target_objs): Substitute in the makefile.
3322 (cxx_target_objs): Substitute in the makefile.
3323 * configure: Regenerate.
3324
3325 * Makefile.in (C_TARGET_OBJS): Define and initialise from
3326 c_target_objs.
3327 (CXX_TARGET_OBJS): Define and initialise from
3328 cxx_target_objs.
3329 (C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
3330
3331 * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
3332
3333 * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
3334 about how the use of the 'c_lex' function requires the use of
3335 the target specific, language specific object files feature of
3336 the configuration mechanism.
3337
3338 Fri Nov 24 18:50:58 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3339
3340 * gcc.c (process_command): Use F_OK, not R_OK.
3341
3342 2000-11-24 Arno J. Klaassen <arno@heho.snv.jussieu.fr>
3343
3344 * flow.c (print_rtl_and_abort): Remove ANSIism.
3345
3346 Fri Nov 24 19:54:36 2000 Alexandre Oliva <aoliva@redhat.com>
3347
3348 * config/sh/sh.h (GENERAL_REGISTER_P,
3349 GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
3350 FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros. Use them
3351 all over.
3352 (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
3353 * config/sh/sh.c: Use new macros.
3354 * config/sh/sh.md: Likewise.
3355
3356 Fri Nov 24 19:46:16 2000 Alexandre Oliva <aoliva@redhat.com>
3357
3358 * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode,
3359 instead of just MACH_REG in DImode. Always refer to FPSCR_REG
3360 in PSImode.
3361
3362 Fri Nov 24 22:37:41 2000 Denis Chertykov <denisc@overta.ru>
3363
3364 * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
3365 fixed.
3366 (machine_dependent_reorg): Wrong optimization based on
3367 NOTICE_UPDATE_CC removed.
3368
3369 Fri Nov 24 19:48:09 2000 J"orn Rennecke <amylaar@redhat.com>
3370
3371 * jump.c (delete_computation): Re-instate deletion of feeding insn.
3372 (delete_insn): Look for REG_LABEL notes.
3373 (redirect_tablejump): Delete feeding insns.
3374
3375 2000-11-24 Bernd Schmidt <bernds@redhat.co.uk>
3376
3377 * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0,
3378 call_value_pop_1): Make sure operand numbers are contiguous.
3379
3380 * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
3381
3382 * reload1.c (conflicts_with_override): New function.
3383 (emit_input_reload_insns): Use it to tighten test for validity
3384 of substituting into output of previous insn.
3385
3386 * haifa-sched.c (struct ready_list): New.
3387 (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
3388 functions.
3389 (schedule_insn): Replace args READY and N_READY with a pointer to a
3390 ready_list; return void. Use the new functions to access the ready
3391 list. All callers changed.
3392 (queue_to_ready, debug_ready_list): Likewise.
3393 (schedule_block): Initialize a ready_list structure. Use new
3394 functions to access it.
3395 (max_priority): Remove unused variable.
3396 (schedule_insn): Don't set it.
3397
3398 * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
3399
3400 * combine.c (cant_combine_insn_p): New function.
3401 (try_combine): Use it.
3402
3403 * Makefile.in (c-common.o): Depend on $(OBSTACK_H).
3404 * c-common.c (c-obstack.c): Include "obstack.h".
3405 (struct reverse_tree): Delete.
3406 (reverse_list, reverse_max_depth): Delete.
3407 (build_reverse_tree, common_ancestor, modify_ok): Delete functions.
3408 (struct tlist, struct tlist_cache): New.
3409 (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
3410 (add_tlist, merge_tlist, verify_tree, warning_candidate_p,
3411 warn_for_collisions, warn_for_collisions_1, new_tlist): New
3412 static functions.
3413 (verify_sequence_points): Rewritten.
3414 * fold-const.c (fold): Don't lose possibly important sequence
3415 points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
3416
3417 2000-11-24 Richard Sandiford <rsandifo@redhat.com>
3418
3419 * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
3420 when reversing a register-to-register copy. Reversal now disabled
3421 when the previous instruction has a REG_EQUIV.
3422
3423 2000-11-24 Nathan Sidwell <nathan@codesourcery.com>
3424
3425 * c-parse.in (unary_expr): Move VA_ARG from here ...
3426 (primary): ... to here.
3427
3428 2000-11-23 Graham Stott <grahams@redhat.com>
3429
3430 * expr.c (store_constructor): If a field is non addressable and
3431 the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
3432
3433 2000-11-23 Bernd Schmidt <bernds@redhat.co.uk>
3434
3435 * flow.c (print_rtl_and_abort): New function.
3436 (verify_wide_reg, verify_local_live_at_start): Try to dump more
3437 information before aborting.
3438
3439 2000-11-23 Alexandre Oliva <aoliva@redhat.com>
3440
3441 * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
3442 is narrower than requested mode.
3443 (gen_highpart): Abort if register mode is narrower than
3444 requested mode.
3445
3446 2000-11-23 Graham Stott <grahams@redhat.com>
3447
3448 * cse.c (cse_insn): Initialise all regcost variables.
3449 Fix a typo add missing '='.
3450 Only compare costs if there is a replacement insn.
3451
3452 Thu Nov 23 04:33:33 2000 Alexandre Oliva <aoliva@redhat.com>
3453
3454 * final.c (output_addr_const) [LABEL_REF]: Simplify.
3455 [MINUS]: Enclose non-CONST_INTs in parentheses.
3456 [default]: Try OUTPUT_ADDR_CONST_EXTRA.
3457 * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
3458 * varasm.c (decode_rtx_const) [CONST]: If it's not something
3459 PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
3460 instead of abort()ing.
3461 * sh.c (output_pic_addr_const): Removed. Fixed all callers.
3462 * sh.h (OUTPUT_ADDR_CONST_EXTRA): New. Handle the UNSPECs
3463 formerly handled in output_pic_addr_const.
3464 * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
3465 operands of MINUS in CONSTs so that decode_rtx_const() will
3466 accept them.
3467
3468 Thu Nov 23 04:10:30 2000 Alexandre Oliva <aoliva@redhat.com>
3469
3470 * config/sh/sh.md (mova_const): New pattern.
3471 (GOTaddr2picreg): Use it.
3472 * config/sh/sh.c (broken_move): Match it.
3473 (mova_p): Don't match it.
3474 (machine_dependent_reorg): Adjust it.
3475
3476 Thu Nov 23 02:09:09 2000 Alexandre Oliva <aoliva@redhat.com>
3477
3478 * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
3479 Moved most register-number #defines...
3480 * config/sh/sh.md (define_constants): ... here. Use macros to
3481 refer to registers and unspecs.
3482 * config/sh/sh.c: Likewise.
3483
3484 Thu Nov 23 01:01:32 2000 J"orn Rennecke <amylaar@redhat.com>
3485
3486 * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE.
3487 (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
3488 (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
3489 (splay-tree.o, hash.o): Likewise.
3490 GCONFIG_H: New.
3491 (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
3492 (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
3493 (hashtab.o): Likewise.
3494 (gcov.o): Depend on $(CONFIG_H).
3495 * configure.in: #include insn-codes.h in tm.h.
3496
3497 2000-11-22 Nick Clifton <nickc@redhat.com>
3498
3499 * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
3500 const char * to avoid a compile time warning.
3501
3502 * config/arm/arm.md (define_constants): Define symbolic names for
3503 the link register, last integer register and the fake CC register.
3504 Update patterns to use these symbolic names.
3505
3506 2000-11-22 Neil Booth <neilb@earthling.net>
3507
3508 * cpplex.c (trigraph_ok): Ensure we don't warn twice.
3509 * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
3510
3511 2000-11-22 Richard Henderson <rth@redhat.com>
3512
3513 * haifa-sched.c (sched_analyze_1): Don't special-case calls
3514 for clobbering registers.
3515 (sched_analyze_2): Likewise.
3516 (sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
3517
3518 2000-11-22 Chris Demetriou <cgd@sibyte.com>
3519 Neil Booth <neilb@earthling.net>
3520
3521 * gcc.c (validate_switches): Validate multiple switches named
3522 in '|' (or) expressions in specs.
3523 (handle_braces): If more than 1 alternative in a '|' spec
3524 matches, call do_spec1 just once.
3525
3526 2000-11-22 Michael Meissner <meissner@redhat.com>
3527
3528 * d30v.h (TARGET_SWITCHES): Add documentation strings.
3529 (TARGET_OPTIONS): Ditto.
3530 (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
3531 -O3.
3532
3533 Wed Nov 22 06:40:56 2000 Jeffrey A Law (law@cygnus.com)
3534
3535 * pa.c (hppa_encode_label): Account for addition of encoding
3536 character when allocating persistent space for the new label
3537 name.
3538
3539 2000-11-22 Zack Weinberg <zack@wolery.stanford.edu>
3540
3541 * Makefile.in, config.gcc, configure.in: Expunge remaining
3542 traces of facility for running MD files through C preprocessor.
3543
3544 2000-11-22 Joseph S. Myers <jsm28@cam.ac.uk>
3545
3546 * gcov.texi: Add magic comments for texi2pod.pl.
3547 * Makefile.in: Add rules to generate and install gcov.1.
3548 * gcov.1: New (generated) file.
3549
3550 2000-11-21 Richard Henderson <rth@redhat.com>
3551
3552 * regrename.c (scan_rtx_reg): Terminate the chain rather than
3553 abort on mark_read with NO_REGS.
3554
3555 2000-11-21 Mike Stump <mrs@wrs.com>
3556
3557 * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
3558 compilation with older compilers, such as /bin/cc on SunOS.
3559 * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
3560
3561 2000-11-21 Richard Henderson <rth@redhat.com>
3562
3563 * varasm.c (record_constant): Pad the constructed
3564 constant_descriptor appropriately.
3565
3566 Wed Nov 22 00:52:55 2000 J"orn Rennecke <amylaar@redhat.com>
3567
3568 * rtl.h (traverse_md_constants): Declare.
3569 (struct md_constant): Define.
3570 * Makefile.in (HOST_RTL): Add hashtab.o .
3571 (OBJS): Add hashtab.o .
3572 (hashtab.o): New rule.
3573 (rtl.o): Depends on HASHTAB_H.
3574 * rtl.c (hashtab.h): #include.
3575 (md_constants): New static variable.
3576 (def_hash, def_name_eq_p, read_constants): New static functions.
3577 (traverse_md_constants): New function.
3578 (read_name): Do constant expansion.
3579 (read_rtx): Recognize define_constants.
3580 * gencodes.c (print_md_constant): New function.
3581 (main): Emit #defines for all constant definitions encountered.
3582 * md.texi (Constant Definitions): New node.
3583 * gensupport.c (xcalloc): New function.
3584
3585 2000-11-21 Richard Henderson <rth@redhat.com>
3586
3587 * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
3588 * config/alpha/alpha-protos.h: Declare it.
3589 * config/alpha/alpha.md (abstf_internal): Use it.
3590 (negtf_internal): Likewise.
3591 (andnotdi3): Unstar the name.
3592 (movtf_internal): Add o/G alternative.
3593
3594 2000-11-21 Zack Weinberg <zack@wolery.stanford.edu>
3595
3596 * stringpool.c (stringpool_statistics): Also report number and
3597 percentage of entries which are identifiers.
3598
3599 2000-11-21 Diego Novillo <dnovillo@redhat.com>
3600
3601 * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
3602 visited before visiting it.
3603
3604 2000-11-21 Nick Clifton <nickc@redhat.com>
3605
3606 * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
3607 TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
3608
3609 * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
3610
3611 2000-11-21 Richard Henderson <rth@redhat.com>
3612
3613 * c-common.c (c_unsafe_for_reeval): New function.
3614 (add_c_tree_codes): Register it.
3615 * c-common.h: Declare it.
3616 * tree.c (lang_unsafe_for_reeval): New hook.
3617 (unsafe_for_reeval): Call it.
3618 * tree.h: Declare it.
3619
3620 2000-11-21 Richard Henderson <rth@redhat.com>
3621
3622 * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
3623 references as well.
3624
3625 2000-11-21 Neil Booth <neilb@earthling.net>
3626
3627 * do_includes: Revert to using cpp_read_file.
3628
3629 2000-11-21 Bernd Schmidt <bernds@redhat.co.uk>
3630
3631 * loop.c (consec_sets_giv): If the reg we're examining is anything
3632 but UNKNOWN_INDUCT, do nothing.
3633 Reset the reg's type to UNKNOWN_INDUCT before returning.
3634
3635 Mostly from Vladimir Makarov (vmakarov@redhat.com)
3636 * ia64.md (attr itanium_class): Define insn types as described in
3637 Itanium docs.
3638 (all insn patterns): Use itanium_class, not type attributes.
3639 Occasionally split alternatives as necessary.
3640 (attr type): Compute from new attr itanium_class.
3641
3642 2000-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3643
3644 * tradcpp.c (output_line_command): Mark system headers as such in
3645 `line' commands.
3646
3647 2000-11-21 Jakub Jelinek <jakub@redhat.com>
3648
3649 * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
3650 support in as as well.
3651 * configure: Regenerate.
3652
3653 2000-11-20 Richard Henderson <rth@redhat.com>
3654
3655 * c-lex.c (orig_filename): New variable.
3656 (init_c_lex): Set it. Move call to cpp_start_read ...
3657 (yyparse): ... here. New function.
3658 * c-parse.in (yyparse_1): Rename the parser entry point.
3659 * c-tree.h: Declare it.
3660
3661 2000-11-21 Jakub Jelinek <jakub@redhat.com>
3662
3663 * expr.c (do_compare_and_jump): If op0 was replaced by promoted
3664 integer constant, use type of op1 for comparison.
3665
3666 2000-11-20 Stan Shebs <shebs@apple.com>
3667
3668 * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
3669 * config/rs6000/x-darwin: New file, Darwin host fragment.
3670 * config.gcc (powerpc-*-darwin*): New host.
3671 * system.h (HAVE_DESIGNATED_INITIALIZERS): Allow this to be
3672 overridden by a config file.
3673
3674 2000-11-20 Neil Booth <neilb@earthling.net>
3675
3676 * cppmacro.c (paste_tokens): Rename from paste_payloads.
3677 Change token type after pasting spellings.
3678 (paste_all_tokens): Use it.
3679 * gcc.dg/cpp/paste2.c: Update test.
3680 * objc/execute/paste.m: New test.
3681
3682 2000-11-20 Richard Henderson <rth@redhat.com>
3683
3684 * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
3685 dwarf_subscr_data_formats bits.
3686 * dwarfout.c (simple_type_size_in_bits): Handle a type with
3687 no computed size as size zero.
3688 (field_byte_offset): Likewise.
3689 (subscript_data_attribute): Handle a range with no upper bound.
3690
3691 2000-11-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3692
3693 * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
3694
3695 2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
3696
3697 * c-typeck.c (build_conditional_expr): When merging type
3698 qualifiers for conditional expressions between a pointer and a
3699 pointer to a void type, merge the qualifiers on the target types
3700 rather than the pointer type. Remove obsolete conditioned out
3701 code.
3702
3703 2000-11-20 Neil Booth <neilb@earthling.net>
3704
3705 * c-lang.c (lang_init_options): Update call to
3706 cpp_reader_init.
3707 * cppmain.c (main): Similarly.
3708 * fix-header.c (read_scan_file): Similarly.
3709 * cp/lex.c (lang_init_options): Similarly.
3710 * objc/objc-act.c (lang_init_options): Similarly.
3711 * cppexp.c (parse_number): Only warn for unextended C89.
3712 * cppinit.c (set_lang): New function.
3713 (cpp_reader_init): Take a LANG argument and pass it to set_lang.
3714 (COMMAND_LINE_OPTIONS): New option std=c++98.
3715 (cpp_handle_option): Use set_lang.
3716 * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
3717 * cppib.h (enum_c_lang): New enumeration. Update comments.
3718
3719 2000-11-20 Will Cohen <wcohen@redhat.com>
3720
3721 * calls.c (expand_call): Clear target only when target is in
3722 hard register and current_function_check_memory_usage is set.
3723
3724 2000-11-20 Bernd Schmidt <bernds@redhat.co.uk>
3725
3726 * toplev.c (rest_of_compilation): Run optimize_mode_switching even
3727 if not optimizing.
3728 * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
3729
3730 2000-11-19 Richard Henderson <rth@redhat.com>
3731
3732 * crtstuff.c (force_to_data): Use array size 1 not 0.
3733
3734 * dwarf2out.c (simple_type_size_in_bits): Handle a type with
3735 no computed size as size zero.
3736 (field_byte_offset): Likewise.
3737
3738 2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
3739
3740 * config.gcc: Fix another typo.
3741
3742 2000-11-19 Richard Henderson <rth@redhat.com>
3743
3744 * c-decl.c (grokdeclarator): Support flexible array members.
3745 Use open-ended ranges for these and zero-length arrays.
3746 * c-typeck.c (push_init_level): Validate the context of
3747 initialization of a zero-length array.
3748 * tree.c (int_fits_type_p): Be prepared for missing bounds.
3749 * varasm.c (array_size_for_constructor): New.
3750 (output_constructor): Use it for arrays of unspecified length.
3751 * extend.texi (Zero Length): Mention C99 flexible array members.
3752 Document initialization in a top-level struct as valid.
3753
3754 2000-11-19 Joseph S. Myers <jsm28@cam.ac.uk>
3755
3756 * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
3757
3758 * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
3759 stdarg and varargs functions.
3760
3761 2000-11-19 Zack Weinberg <zack@wolery.stanford.edu>
3762
3763 * gcc.c (process_command): Define 'j' variable when
3764 MODIFY_TARGET_NAME is defined.
3765
3766 2000-11-19 Richard Henderson <rth@redhat.com>
3767
3768 * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
3769
3770 2000-11-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3771
3772 * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
3773 calculation and allocation.
3774
3775 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3776
3777 * builtins.c (c_getstr): Constify variable.
3778 * gmon-sol2.c (_mcleanup): Comment out #endif labels.
3779 * conflict.c (const_conflict_graph_arc): New typedef.
3780 (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
3781 * cppmacro.c (builtin_macro): Likewise.
3782 * dwarf2out.c (output_comp_unit): Constify variable.
3783 * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
3784 * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
3785 * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
3786 away const-ness.
3787 * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
3788 ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
3789 * varasm.c (const_str_htab_hash, const_str_htab_eq,
3790 compare_constant_1, record_constant_1): Constify.
3791
3792 2000-11-18 Richard Henderson <rth@redhat.com>
3793
3794 * c-decl.c (grokdeclarator): Special case the creation of an
3795 index for a zero-length array.
3796 * tree.c (build_index_type): Revert Oct 20 change.
3797
3798 2000-11-18 Marek Michalkiewicz <marekm@linux.org.pl>
3799
3800 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
3801 * config/avr/avr.c (jump_tables_size): New variable.
3802 (function_prologue): Initialize it as 0.
3803 (function_epilogue): Add it to function_size.
3804 (avr_output_addr_vec_elt): New function. Count words in jump
3805 tables in jump_tables_size. Move code ...
3806 * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
3807 Call avr_output_addr_vec_elt instead.
3808 * config/avr/avr.md (tablejump): Remove disabled define_expand.
3809
3810 2000-11-18 Mark Mitchell <mark@codesourcery.com>
3811
3812 * configure.in: Make --enable-new-gxx-abi the default.
3813 * configure: Likewise.
3814
3815 2000-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3816
3817 * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
3818
3819 * tradcif.y: Include tradcpp.h. Constify. Make functions static.
3820 Move extern function declarations to tradcpp.h.
3821
3822 * tradcpp.c: Likewise.
3823
3824 * tradcpp.h: New file.
3825
3826 2000-11-18 Joseph S. Myers <jsm28@cam.ac.uk>
3827
3828 * c-decl.c (check_for_loop_decls): New function.
3829 * c-parse.in (for_init_stmt): New.
3830 (select_or_iter_stmt): Use for_init_stmt.
3831 * c-tree.h (check_for_loop_decls): New declaration.
3832
3833 2000-11-18 Neil Booth <neilb@earthling.net>
3834
3835 * cppinit.c: Update comments.
3836 (cpp_reader_init): Make -imacro and -include use the standard
3837 #include "" search path.
3838 (do_includes): New function.
3839
3840 2000-11-18 Ben Elliston <bje@redhat.com>
3841
3842 * config/sh/crt1.asm (start_l): Move PC-relative move instruction
3843 out of a branch delay slot.
3844
3845 2000-11-17 Richard Henderson <rth@redhat.com>
3846
3847 * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
3848 (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
3849 (ASM_FILE_START): Only write out ecoff .file directive if
3850 emitting mdebug debugging.
3851
3852 2000-11-17 Richard Henderson <rth@redhat.com>
3853
3854 * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New. Detect
3855 whether as accepts .file/.loc and produces dwarf2 line info.
3856 * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
3857 the assembler supports it.
3858 * config.in, configure: Regenerate.
3859
3860 2000-11-17 Richard Henderson <rth@redhat.com>
3861
3862 * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
3863
3864 2000-11-17 Jim Wilson <wilson@redhat.com>
3865
3866 * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
3867 Don't clear need_barrier is next_insn is a CALL_INSN, or has
3868 instruction type B or UNKNOWN.
3869
3870 2000-11-17 Neil Booth <neilb@earthling.net>
3871
3872 * cpperror.c (print_file_and_line): Don't display line number if 0.
3873
3874 2000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
3875
3876 * ggc.h: Delete ggc_add_string_root and ggc_mark_string. Add
3877 digit_vector and digit_string.
3878 * stringpool.c (digit_vector): New.
3879 (ggc_alloc_string): Use digit_string.
3880
3881 * stmt.c (digit_strings): Delete.
3882 (init_stmt): Do not initialize digit_strings.
3883 (expand_asm_operands): Use ggc.h's digit_string macro.
3884 * toplev.c (mark_file_stack): Delete.
3885 (compile_file): Don't call init_tree_codes.
3886 (main): No need to make the file stack a GC root.
3887 * tree.c (init_tree_codes): Delete.
3888 * tree.h (init_tree_codes): Delete.
3889
3890 * c-lex.c: Don't include ggc.h.
3891 (mark_splay_tree_node, mark_splay_tree): Delete.
3892 (init_c_lex): No need to ggc_strdup string constant. Don't add
3893 file_info_tree to GGC roots.
3894 (cb_enter_file, cb_rename_file): No need to ggc_strdup
3895 ip->nominal_fname.
3896
3897 * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
3898
3899 * dbxout.c (dbxout_init),
3900 dwarf2out.c (dwarf2out_line),
3901 ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
3902 varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
3903 xcoffout.c (xcoffout_source_file),
3904 i386.c (load_pic_register):
3905 Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
3906
3907 * except.c (create_rethrow_ref),
3908 profile.c (init_edge_profiler),
3909 toplev.c (compile_file),
3910 varasm.c (named_section, assemble_static_space,
3911 assemble_trampoline_template, output_constant_def, force_const_mem),
3912 i386.c (load_pic_register),
3913 ia64.c (ia64_encode_section_info),
3914 rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
3915 rs6000_emit_prologue, rs6000_emit_epilogue),
3916 rs6000.md (load_toc_aix_si, load_toc_aix_di):
3917 Change ggc_alloc_string (var, -1) to ggc_strdup (var).
3918
3919 * profile.c (output_func_start_profiler),
3920 tree.c (make_node),
3921 i386.c (load_pic_register): No need to ggc_strdup string constant.
3922
3923 2000-11-17 Hans-Peter Nilsson <hp@axis.com>
3924
3925 * Makefile.in (config.status): Depend on config.gcc.
3926 * configure.in <for machine in $build $host $target>: Move
3927 contents of loop into config.gcc, removing autoconf quoting.
3928 Fix changequote bug for alpha*-*-vxworks*.
3929 * configure: Regenerate.
3930 * config.gcc: New.
3931
3932 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
3933
3934 * c-parse.in (if_prefix): Find the filename and line number at
3935 $-2 and $-1 respectively.
3936 * diagnostic.c (error_recursion): Add missing newline, use
3937 fputs, translate string.
3938
3939 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
3940
3941 * stringpool.c: New file.
3942 * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
3943 (ggc_alloc_string): Now in stringpool.o.
3944 * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
3945 * ggc.h: Delete prototype of ggc_add_string_root. #define
3946 ggc_add_string_root and ggc_mark_string to nothing. Prototype
3947 init_stringpool and stringpool_statistics.
3948 (ggc_alloc_string): Returns a const char *.
3949 * tree.c (hash_table, do_identifier_warnings): Delete.
3950 (init_obstacks): Don't initialize the identifier hash table.
3951 (get_identifier, maybe_get_identifier, start_identifier_warnings,
3952 set_identifier_size): Now in stringpool.c.
3953 * tree.h (struct tree_string): Constify pointer field.
3954 (approx_sqrt): Prototype.
3955
3956 * Makefile.in (stringpool.o): Add rule, mention in OBJS.
3957
3958 * toplev.c (approx_sqrt): New function.
3959 (compile_file): Call stringpool_statistics if mem_report is on.
3960 (main): Call init_stringpool.
3961
3962 * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
3963 (process_directive), c-typeck.c (constructor_asmspec, struct
3964 initializer_stack, start_init), except.c (create_rethrow_ref),
3965 stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
3966 (built_in_filename), varasm,c (in_named_name,
3967 assemble_static_space, struct constant_descriptor, struct
3968 deferred_string, struct pool_constant, force_const_mem),
3969 i386.c (pic_label_name, global_offset_table_name), rs6000.c
3970 (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
3971
3972 * c-common.c (combine_strings): Combine strings in scratch
3973 buffer, then pass to build_string.
3974 * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
3975 output_func_start_profiler), stmt.c (init_stmt), alpha.c
3976 (alpha_need_linkage), arm.c (arm_encode_call_attribute),
3977 i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
3978 rs6000.c (rs6000_encode_section_info): Create string in
3979 scratch buffer, then pass to ggc_alloc_string.
3980
3981 * stmt.c (expand_asm_operands): If we must adjust the
3982 constraint strings, do so by creating a new one, not by
3983 modifying the old one in place. Constify some char *s.
3984 * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
3985 argument. Create string in scratch buffer, then pass to
3986 ggc_alloc_string.
3987 * config/pa/pa-protos.h: Update prototype.
3988 * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
3989 hppa_encode_label takes only one argument.
3990
3991 2000-11-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3992
3993 * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
3994 malloc/realloc.
3995
3996 * cpplib.c (glue_header_name): Likewise.
3997
3998 * fixincl.c (run_compiles, start_fixer): Likewise.
3999
4000 * fixlib.c (load_file_data): Likewise.
4001
4002 * mkdeps.c (munge): Likewise.
4003
4004 2000-11-17 Hans-Peter Nilsson <hp@axis.com>
4005
4006 * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
4007 trailing ';'. Fix formatting.
4008
4009 2000-11-16 Jim Wilson <wilson@redhat.com>
4010
4011 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
4012 Shift masks left by one to avoid conflict.
4013
4014 * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
4015 DECL_EXTERNAL set.
4016
4017 2000-11-16 Nick Clifton <nickc@redhat.com>
4018
4019 * config/arm/arm.c (output_arm_prologue): Note nested functions.
4020 (arm_expand_prologue): For nested functions preserve the
4021 static chain register during stack frame creation.
4022
4023 * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
4024 (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
4025 with a stack frame there is a 4 byte gap between the arg
4026 pointer and the hard frame pointer (used to preserve the
4027 static chain register during stack frame creation).
4028
4029 2000-11-16 DJ Delorie <dj@redhat.com>
4030
4031 * rtl.c (read_rtx): Provide suitable names for unnamed
4032 define_insn and define_insn_and_split patterns, based on file
4033 and line numbers.
4034
4035 2000-11-15 Neil Booth <neilb@earthling.net>
4036
4037 * cpplib.c (start_directive, end_directive): New functions.
4038 (_cpp_handle_directive, run_directive): Use them.
4039 (_cpp_handle_directive): Don't -Wtraditional on indented
4040 null directives.
4041 (_cpp_push_buffer): Don't re-clear was_skipping.
4042 * cpplib.h (struct cpp_reader): New member la_saved.
4043 * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
4044 directives.
4045
4046 gcc.dg/cpp/_Pragma1.c: Update.
4047 gcc.dg/cpp/_Pragma2.c: New test.
4048
4049 2000-11-15 Mark Mitchell <mark@codesourcery.com>
4050
4051 * toplev.c (wrapup_global_declarations): Don't write out
4052 artificial static variables that aren't needed.
4053
4054 2000-11-15 Bernd Schmidt <bernds@redhat.co.uk>
4055
4056 * ia64.c (struct group): New structure.
4057 (last_group): New static array.
4058 (group_idx): New static variable.
4059 (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
4060 New static functions.
4061 (emit_insn_group_barriers): Initialize and keep track of group_idx
4062 and last_group.
4063 Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
4064 Replace all calls to emit_insn_after that emit a group barrier to use
4065 emit_group_barrier_after.
4066 * ia64.h (MASK_B_STEP): New.
4067 (other MASK_XXX macros): Renumbered.
4068 (TARGET_B_STEP): New.
4069 (TARGET_SWITCHES): Add -mb-step.
4070
4071 2000-11-15 Fred Fish <fnf@be.com>
4072
4073 * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
4074 machines for which fixincludes is not needed.
4075 * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
4076
4077 2000-11-15 Jason Merrill <jason@redhat.com>
4078
4079 * diagnostic.c (finish_abort): New fn.
4080 (fancy_abort, error_recursion): Use it.
4081 * toplev.c (crash_signal): Likewise.
4082 * diagnostic.h: Declare it.
4083
4084 2000-11-13 Andrew Haley <aph@redhat.com>
4085
4086 * tree.c (build_type_no_quals): New function.
4087 * tree.h (build_type_no_quals): Declare.
4088 * c-common.c (c_get_alias_set): When considering type
4089 compatibility for pointer types, ignore cv-qualifiers anywhere in
4090 a pointer chain.
4091
4092 2000-11-15 Graham Stott <grahams@redhat.com>
4093
4094 * regrename.c (scan_rtx_rtx): Skip to the next chain on
4095 encountering a terminated chain.
4096
4097 2000-11-14 Mark Mitchell <mark@codesourcery.com>
4098
4099 * configure.in: Move check for V3 above check for C++ header-file
4100 directory.
4101 * configure: Regenerated.
4102
4103 2000-11-14 DJ Delorie <dj@redhat.com>
4104
4105 * config/v850/v850.c: Remove obstacks.
4106
4107 Tue Nov 14 21:54:31 2000 Marek Michalkiewicz <marekm@linux.org.pl> & Denis Chertykov <denisc@overta.ru>
4108
4109 * config/avr/avr.c (avr_case_values_threshold): New.
4110 (avr_override_options): Set it depending on options, make it large
4111 when not optimizing to work around "unable to generate reloads".
4112
4113 * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
4114 (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
4115 executable if not AVR_MEGA. Make sure jump tables are word-aligned.
4116 (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
4117 (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
4118 (avr_case_values_threshold): Declare as extern int.
4119 (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
4120
4121 * config/avr/avr.md (tablejump): Removed.
4122 (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
4123 (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
4124 index in the table, not multiplied by 2.
4125 (casesi): Change to match the above insns. Always enable.
4126
4127 * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
4128 Change to expect the word address of the table, multiply it by 2
4129 here and not in the caller. Change "adiw" to faster "inc".
4130
4131 2000-11-14 Neil Booth <neilb@earthling.net>
4132
4133 * cppexp.c (parse_defined): Call cpp_get_token not
4134 _cpp_get_token.
4135 (lex): Similarly.
4136 * cpplex.c (cpp_output_line): Similarly.
4137 * cpplib.c (glue_header_name, do_line, do_ident,
4138 parse_answer, parse_assertion): Similarly.
4139 (_cpp_handle_diretive): Don't save to lookaheads
4140 when processing directives.
4141 * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
4142 _cpp_get_token.
4143 (funlike_invocation_p): Don't save to lookaheads
4144 when pre-expanding arguments.
4145 (_cpp_get_token): Delete.
4146 (cpp_get_token): Merge contents of _cpp_get_token.
4147
4148 2000-11-14 Jakub Jelinek <jakub@redhat.com>
4149
4150 * builtins.c (expand_builtin_setjmp): Set
4151 current_function_calls_setjmp.
4152 (expand_builtin_longjmp): Set current_function_calls_longjmp.
4153
4154 * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
4155 (do_builtin_setjmp_setup): New insn.
4156
4157 Tue Nov 14 12:34:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4158
4159 * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
4160 (int_fits_type_p): For variable bounds, call force_fit_type.
4161
4162 2000-11-14 Jakub Jelinek <jakub@redhat.com>
4163
4164 * varasm.c (struct deferred_string): New structure.
4165 (const_str_htab): New variable.
4166 (STRHASH): New macro.
4167 (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
4168 constr_str_htab_eq, const_str_htab_del): New functions.
4169 (output_constant_def): Add DEFER argument, defer string
4170 constants until mark_constant_pool time if requested.
4171 (mark_constant_pool): Walk the insn chain even if const_str_htab is
4172 not empty.
4173 (mark_constants): If a SYMBOL_REF for deferred string is found,
4174 output it and remove from hash table.
4175 (output_addressed_constants): Set DEFER to 0 in call to
4176 output_constant_def.
4177 * rtl.h (STRING_POOL_ADDRESS_P): Define.
4178 (output_constant_def): Adjust prototype.
4179 * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
4180
4181 2000-11-14 Chandrakala Chavva <cchavva@redhat.com>
4182
4183 * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
4184 signed types if flag_trapv.
4185
4186 2000-11-14 Zack Weinberg <zack@wolery.stanford.edu>
4187
4188 * tradcpp.c, tradcif.y: Update FSF mailing address, delete
4189 reference to GPLv1.
4190
4191 2000-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
4192
4193 * c-common.h (CTI_C_SIZE_TYPE): Update comment.
4194
4195 2000-11-14 Jakub Jelinek <jakub@redhat.com>
4196
4197 * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
4198 to array of pool_constnat pointers.
4199 (struct pool_constant): Add next_sym and label members.
4200 (struct pool_sym): Remove.
4201 (init_varasm_status): Change pool_sym into pool_constant.
4202 (mark_pool_constant): Mark pc->label string as well.
4203 (mark_pool_sym_hash_table): Remove.
4204 (mark_varasm_status): Remove it from caller as well.
4205 (free_varasm_status): Don't free pool_sym structures.
4206 (force_const_mem): Don't allocate pool_sym structure, instead
4207 fill pool->label and chain it into rtx_sym hash table.
4208 (find_pool_constant, mark_constant_pool): Use pool_constant instead
4209 of pool_sym.
4210
4211 2000-11-14 Jakub Jelinek <jakub@redhat.com>
4212
4213 * reload1.c (emit_input_reload_insns): Honour forcing of constants
4214 into memory by PREFERRED_RELOAD_CLASS NO_REGS.
4215
4216 2000-11-14 Michael Matz <matzmich@cs.tu-berlin.de>
4217
4218 * dominance.c: New file.
4219 * Makefile.in (OBJS): Add dominance.o.
4220
4221 * flow.c (compute_flow_dominators): Remove.
4222 (compute_immediate_dominators): Remove.
4223 (compute_immediate_postdominators): Remove.
4224 * basic-block.h: Remove their prototypes.
4225 (calculate_dominance_info): Add prototype.
4226
4227 * dce.c (eliminate_dead_code): Change calls to above functions.
4228 Don't compute dominators but only immediate dominators.
4229 * flow.c (flow_loops_find): Change callers.
4230 * gcse.c (compute_code_hoist_data): Likewise.
4231 * haifa-sched.c (schedule_insns): Likewise.
4232 * ifcvt.c (if_convert): Likewise.
4233 * ssa.c (convert_to_ssa): Likewise, and only compute immediate
4234 dominators.
4235
4236 2000-11-14 Richard Henderson <rth@redhat.com>
4237
4238 * stmt.c (warn_if_unused_value): Don't warn if the expression
4239 has side effects.
4240
4241 * c-typeck.c (c_sizeof): Fold result to c_size_type_node.
4242 (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
4243
4244 2000-11-13 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4245
4246 * loop.c (basic_induction_var): Revert accidental checkin.
4247
4248 2000-11-13 Hans-Peter Nilsson <hp@axis.com>
4249
4250 * c-lex.c (cb_leave_file): Harmonize conditions and order of
4251 statements to those of process_directive for (action == act_pop).
4252
4253 * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
4254
4255 * local-alloc.c (equiv_init_movable_p): References to CC0 are not
4256 movable.
4257
4258 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4259
4260 * c-parse.in (stmts_and_decls): Deprecate use of label at end of
4261 compound statement.
4262
4263 2000-11-13 Neil Booth <neilb@earthling.net>
4264
4265 * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
4266 cases return without MI check.
4267 * cpplib.c (do_diagnostic): Take boolean of whether to
4268 print the directive name.
4269 (do_error, do_warning): Update.
4270 (do_pragma_dependency): Use it.
4271 * cpplib.h (VARARGS_FIRST): Delete.
4272 (struct cpp_token): Delete integer.
4273 * cppmacro.c (enter_macro_context): Move disabled check
4274 to _cpp_get_token.
4275 (_cpp_get_token): Simplify into a single loop.
4276
4277 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
4278
4279 * configure.in: Use 'test -f' not '[ -e'.
4280 * configure: Regenerated.
4281
4282 2000-11-13 DJ Delorie <dj@redhat.com>
4283
4284 * config/mn10300/mn10300.md (store_movm): Note which registers are
4285 really used or clobbered.
4286
4287 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4288
4289 * c-parse.in (ends_in_label): Remove from %union and %type.
4290 (decls, stmts, lineno_stmt_or_labels, xstmts,
4291 lineno_stmt_or_label, stmt_or_label): Remove.
4292 (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
4293 lineno_stmt_decl_or_labels_ending_decl,
4294 lineno_stmt_decl_or_labels_ending_label,
4295 lineno_stmt_decl_or_labels_ending_error,
4296 lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
4297 lineno_stmt, lineno_label): New.
4298 (compstmt_nostart): Use compstmt_contents_nonempty.
4299
4300 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4301
4302 * c-common.c (boolean_increment): New function.
4303 * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
4304 CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE.
4305 (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
4306 (boolean_increment): Declare.
4307 * c-convert.c (convert): Allow for BOOLEAN_TYPE.
4308 * c-decl.c (init_decl_processing): Create boolean nodes.
4309 (finish_struct): Allow for _Bool bitfields.
4310 * c-parse.in (reswords): Add _Bool.
4311 (rid_to_yy): Allow for RID_BOOL.
4312 * c-typeck.c (default_conversion): Make booleans promote to int.
4313 (convert_arguments, build_unary_op, build_modify_expr,
4314 convert_for_assignment): Allow for booleans.
4315 * ginclude/stdbool.h: Make conforming to C99.
4316
4317 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4318
4319 * c-parse.in (c99_block_start, c99_block_end,
4320 c99_block_lineno_labeled_stmt): New.
4321 (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
4322 (stmt): Split off selection and iteration statements into...
4323 (select_or_iter_stmt): New. Use c99_block_lineno_labeled_stmt.
4324
4325 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4326
4327 * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
4328 -time): Update.
4329
4330 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
4331
4332 * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
4333 Rewrite to avoid use of match_dup. Don't try to tie registers that
4334 are not in the same mode.
4335
4336 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4337
4338 * invoke.texi: Update lists of languages and suffixes supported.
4339
4340 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4341
4342 * configure.in: Take toplevel configure arguments from the
4343 environment to create configargs.h and substitute
4344 gcc_config_arguments, taking account of any existing configargs.h
4345 if reconfiguring.
4346 * configure: Regenerate.
4347 * gccbug.in: Include toplevel configure arguments in gccbug.
4348
4349 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
4350
4351 * varasm.c (struct constant_descriptor): Put CONTENTS inside a
4352 union to make it well-aligned. Update all uses.
4353
4354 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4355
4356 * c-parse.in (initelt): Give appropriate pedantic warnings,
4357 depending on flag_isoc99, for non-ISO syntax and for C99 syntax
4358 outside C99 mode.
4359 (designator): If pedantic, pedwarn for a designator specifying a
4360 range of elements.
4361 * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
4362 these cases.
4363 * extend.texi: Document the C99 syntax as the preferred syntax,
4364 and the pre-2.5 syntax as obsolete. Mention use of designator
4365 lists for nested subobjects.
4366
4367 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4368
4369 * diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
4370 Add ATTRIBUTE_PRINTF.
4371 * tradcpp.c (v_message, warning, error, fatal, error_with_line):
4372 Add ATTRIBUTE_PRINTF*.
4373
4374 2000-11-12 Mark Mitchell <mark@codesourcery.com>
4375
4376 * function.c (assign_parms): When calling put_var_into_stack, make
4377 sure that there are no hidden pending sequences.
4378
4379 2000-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4380
4381 * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
4382 BUILT_IN_RINDEX. Add missing checks for BUILT_IN_STRCHR and
4383 BUILT_IN_STRRCHR.
4384
4385 * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
4386
4387 * c-common.c (c_common_nodes_and_builtins): Declare index and
4388 rindex when nonansi builtins are allowed.
4389
4390 * extend.texi (index, rindex): Document new builtins.
4391
4392 2000-11-12 Mark Mitchell <mark@codesourcery.com>
4393
4394 * configure.in: Turn on libstdc++ V3 by default.
4395 * configure: Regenerated.
4396
4397 * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
4398
4399 2000-11-12 Jakub Jelinek <jakub@redhat.com>
4400
4401 * reload1.c (set_label_offsets): Go inside of PARALLELs.
4402
4403 2000-11-12 Joseph S. Myers <jsm28@cam.ac.uk>
4404
4405 * invoke.texi: Clean up option summary.
4406
4407 2000-11-12 Nick Clifton <nickc@redhat.com>
4408
4409 * config/mcore/mcore.c: Fix comment formating, and adjust sequence
4410 of #include headers.
4411
4412 2000-11-12 Marc Espie <espie@openbsd.org>
4413
4414 * configure.in: Fix filds test.
4415 * configure: Regen.
4416
4417 2000-11-12 Mark Mitchell <mark@codesourcery.com>
4418
4419 * jump.c (delete_computation): Don't assume that just becuase an
4420 instruction sets a register, that register is dead.
4421
4422 2000-11-12 Neil Booth <neilb@earthling.net>
4423
4424 * cppexp.c: Don't worry about pfile->skipping.
4425 * cpplib.c (struct if_stack): Make was_skipping unsigned char.
4426 (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
4427 for handled directives.
4428 (skip_rest_of_line): Use _cpp_lex_token after popping contexts
4429 and releasing lookaheads.
4430 (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
4431 (do_else, do_elif, push_conditional): Update logic.
4432 (do_endif): Set buffer->was_skipping rather than pfile->skipping.
4433 (unwind_if_stack): Inline into cpp_pop_buffer.
4434 (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
4435 * cpplex.c (_cpp_lex_token): Clear skipping on EOF. Handle
4436 multiple-include optimisation.
4437 * cpplib.h (struct cpp_buffer): New member was_skipping.
4438 * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping. This
4439 works because skipping == 0 in directives.
4440 (_cpp_release_lookahead): Renamed from release_lookahead.
4441 (cpp_get_token): No need to check skipping as _cpp_get_token does
4442 this for us. No need to handle MI optimisation.
4443
4444 Sat Nov 11 21:14:02 2000 Mark P Mitchell <mark@codesourcery.com>
4445
4446 * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
4447 declarations that use `__MATH_EXCEPTION' in their prototypes, too.
4448 * fixinc/fixincl.x: Regenerated.
4449
4450 2000-11-11 Bruce Korb <bkorb@gnu.org>
4451
4452 * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
4453 (avoid_wchar_t_type): ditto
4454 * fixinc/fixinc.irix: obsoleted
4455
4456 2000-11-11 Zack Weinberg <zack@wolery.stanford.edu>
4457
4458 * configure.in: Don't add $outputs to all_lang_makefiles. Add
4459 $srcdir/$s/Makefile.in if it exists.
4460 * configure: Regenerate.
4461
4462 Sat Nov 11 18:41:20 2000 Mark P Mitchell <mark@codesourcery.com>
4463
4464 * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX.
4465
4466 2000-11-11 Jason Merrill <jason@redhat.com>
4467
4468 * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
4469 give the parm a register and then call put_var_into_stack.
4470 * stmt.c (expand_decl): Likewise.
4471
4472 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
4473
4474 * gcc.texi: Adjust wording.
4475
4476 2000-11-11 Mark Mitchell <mark@codesourcery.com>
4477
4478 * fixinc/inclhack.def (avoid_wchar_t_type): New fix.
4479 * fininc/fixincl.x: Regenerated.
4480
4481 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
4482
4483 * invoke.texi: Correct spelling of -foptimize-register-move.
4484
4485 2000-11-11 Neil Booth <neilb@earthling.net>
4486
4487 Remove CPP_PLACEMARKERs.
4488
4489 * cppexp.c (lex): Don't handle CPP_PLACEMARKER.
4490 * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
4491 * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
4492 Similarly.
4493 * cpplib.h: Remove CPP_PLACEMARKER.
4494 (struct lexer_state): Rename skip_newlines to next_bol.
4495 * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
4496 Simplify prev_white handling as a result.
4497 (paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
4498 (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
4499 (parse_args): Similarly. Update argument count tests.
4500 (enter_macro_context): Return 2 to indicate an empty macro.
4501 (replace_args): Don't bother pre-expanding an empty argument.
4502 Handle placemarkers and ## extension during pre-expansion.
4503 (cpp_get_token): Handle empty macro expansions. Don't worry
4504 about CPP_PLACEMARKERs.
4505 (_cpp_create_definition): Empty macros are now empty.
4506 (cpp_macro_defintion): Don't special case empty macros.
4507 * scan-decls.c: Don't bother with CPP_PLACEMARKERs.
4508 * c-lex.c: Similarly.
4509
4510 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
4511
4512 * gcc.texi, invoke.texi: Add new section discussing language
4513 standards; link to it where appropriate; refer to ISO C instead of
4514 ANSI C.
4515
4516 2000-11-11 Alexandre Oliva <aoliva@redhat.com>
4517
4518 * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
4519 into account.
4520
4521 * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
4522 modes.
4523
4524 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
4525
4526 * gcc.texi, gcov.texi: Update dates and version numbers.
4527
4528 2000-11-10 Zack Weinberg <zack@wolery.stanford.edu>
4529
4530 * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC. Look for
4531 flex and bison, specifically, first in a unified build and
4532 then installed on the system.
4533 * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@. Rename
4534 LEXFLAGS to FLEXFLAGS. Adjust ORDINARY_FLAGS_TO_PASS to
4535 match.
4536
4537 (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
4538 cppdefault.o): Remove pointless sed munging of source file
4539 name.
4540
4541 2000-11-10 Bernd Schmidt <bernds@redhat.co.uk>
4542
4543 * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
4544 for address reloads. Push replacements for REG_INC notes.
4545 (regno_clobbered_p): New arg SETS. Examine SETs if it's nonzero. All
4546 callers changed.
4547 * reload1.c (choose_reload_regs): Registers set in the insn can't be
4548 used for RELOAD_OTHER reloads.
4549
4550 2000-11-10 Mark Mitchell <mark@codesourcery.com>
4551
4552 * c-dump.h: New file.
4553
4554 2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4555
4556 * alpha.c (check_float_value): Use memcpy, not bcopy.
4557 * arm.c (output_move_double): Likewise.
4558 * arm.md: Likewise.
4559 * m88k.c (legitimize_operand): Likewise.
4560 * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
4561 * m88k.md: Likewise.
4562 * mips.c (override_options): Likewise.
4563 * mips.md: Likewise.
4564 * romp.c (output_fpops): Likewise.
4565 * rs6000.c (rs6000_override_options): Likewise.
4566 * sh.md: Likewise.
4567 * vax.c (check_float_value): Likewise.
4568
4569 * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
4570 * expmed.c (synth_mult): Likewise.
4571 * final.c (add_bb_string): Likewise.
4572 * genattr.c (main): Likewise.
4573 * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
4574 Likewise.
4575 * jump.c (thread_jumps): Likewise.
4576 * prefix.c (save_string): Likewise.
4577 * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
4578 * regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
4579 * reload1.c (reload, eliminate_regs): Likewise.
4580
4581 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
4582
4583 * gcc.texi (Service): Update to reflect current practice and
4584 location of the GNU service directory.
4585
4586 2000-11-09 Bernd Schmidt <bernds@redhat.co.uk>
4587
4588 * regrename.c (build_def_use): Mark contents of REG_INC notes as
4589 needing replacement.
4590
4591 * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
4592 a no-op move if regs are equal.
4593 * toplev.c (rest_of_compilation): Do the noop moves elimination pass
4594 when calling jump after post-reload splitting.
4595
4596 2000-11-09 Jan van Male <jan.vanmale@fenk.wau.nl>
4597
4598 * c-tree.texi: Fix typos.
4599 * extend.texi: Likewise
4600 * gcov.texi: Likewise
4601 * rtl.texi: Likewise
4602 * tm.texi: Likewise
4603
4604 2000-11-09 Hans-Peter Nilsson <hp@axis.com>
4605
4606 * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
4607 in_system_header and flags[1] before dereferencing flags[2].
4608
4609 2000-11-09 Matthew Hiller <hiller@redhat.com>
4610
4611 * reload1.c (reload_combine): Fixed calculation of
4612 first_index_reg, last_index_reg.
4613
4614 2000-11-09 Mark Mitchell <mark@codesourcery.com>
4615
4616 * c-dump.c (dequeue_and_dump): Dump function bodies.
4617
4618 * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
4619 (c-dump.o): New target.
4620 * c-common.h (flag_dump_translation_unit): New variable.
4621 (C_TYPE_QUALS): New macro.
4622 (strip_array_types): New function.
4623 (DECL_C_BIT_FIELD): New macro.
4624 (SET_DECL_C_BIT_FIELD): Likewise.
4625 (CLEAR_DECL_C_BIT_FIELD): Likewise.
4626 (dump_info_p): New typedef.
4627 (dump_tree_fn): Likewise.
4628 (lang_dump_tree): New variable.
4629 (dump_node_to_file): New function.
4630 * c-common.c (flag_dump_translation_unit): Define it.
4631 (strip_array_types): New function.
4632 * c-decl.c (c_decode_option): Handle -fdump-translation-unit.
4633 * c-lang.c (finish_file): Call dump_node_to_file if
4634 flag_dump_translation_unit.
4635 * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
4636 * c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
4637 * c-dump.c: New file.
4638
4639 2000-11-09 Christopher Faylor <cgf@cygnus.com>
4640
4641 * config/i386/cygwin.h: Add mingw startfile prefix.
4642
4643 2000-11-09 Richard Henderson <rth@redhat.com>
4644
4645 * flow.c (invalidate_mems_from_set): Split out from ...
4646 (mark_set_1): ... here.
4647 (try_pre_increment_1): Use it. Use propagate_block_delete_insn
4648 instead of turning insn into a NOTE_INSN_DELETED.
4649
4650 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
4651
4652 * extend.texi, invoke.texi: Move documentation of builtin versions
4653 of C library functions to one place and update.
4654
4655 2000-11-09 Richard Henderson <rth@redhat.com>
4656
4657 * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
4658 the types themselves to discover type equivalence.
4659
4660 2000-11-09 Mike Stump <mrs@wrs.com>
4661
4662 * Makefile.in (distclean): Remove a few extra leftovers.
4663
4664 2000-11-09 Richard Henderson <rth@redhat.com>
4665
4666 * recog.c (validate_replace_rtx_1): Consider subregs when
4667 replacing a register with a constant inside a sign/zero_extend.
4668
4669 * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
4670
4671 2000-11-09 Geoffrey Keating <geoffk@redhat.com>
4672
4673 * c-decl.c (finish_struct): When a structure is completed,
4674 check all its variant types for completeness.
4675
4676 2000-11-09 Neil Booth <neilb@earthling.net>
4677
4678 * cpphash.c: Move cpp_defined here from cpplib.c.
4679 * cpplib.c: Update comments, move cpp_defined to cpphash.c.
4680 * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
4681 * cppmacro.c (cpp_get_token): Update comments, no need now
4682 to catch the CPP_EOF meaning EOL case.
4683
4684 2000-11-08 Geoffrey Keating <geoffk@redhat.com>
4685
4686 * config/sparc/sparc.c (sparc_va_arg): When the required alignment
4687 is more than that provided, copy to a temporary.
4688
4689 2000-11-09 Alexandre Oliva <aoliva@redhat.com>
4690
4691 * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
4692 interpreting $out as a macro assignment.
4693 * Makefile.in (T_TARGET): New auxiliary macro and target.
4694 (all): Add a target right in the beginning, so that we don't build
4695 T_TARGET by default.
4696
4697 2000-11-09 Graham Stott <grahams@redhat.com>
4698
4699 * config/i386/i386.md (mmx_pinsrw): Output operands in correct
4700 order for -mintel-syntax. Remove comment now that the operand
4701 order has been checked.
4702 (mmx_pextrw): Likewise.
4703 (mmx_pshufw): Likewise.
4704
4705 2000-11-09 Jakub Jelinek <jakub@redhat.com>
4706
4707 * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max.
4708 (c_getstr): New function.
4709 (expand_builtin_strstr): Do nothing if -fcheck-memory-usage.
4710 If both arguments are constant string, optimize out.
4711 (expand_builtin_strchr, expand_builtin_strrchr): New functions.
4712 (expand_builtin_strpbrk): Use c_getstr, do nothing if
4713 -fcheck-memory-usage.
4714 (expand_builtin_fputs): Likewise.
4715 (expand_builtin_strcmp): Add MODE argument.
4716 Use even if !HAVE_cmpstrsi.
4717 Optimize the case when both arguments are constant strings.
4718 (expand_builtin): Adjust expand_builtin_strcmp caller.
4719 Call expand_builtin_strchr and expand_builtin_strrchr.
4720 * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr
4721 builtins.
4722 * builtins.def (BUILT_IN_STRRCHR): Add.
4723
4724 2000-11-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4725
4726 * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL.
4727
4728 2000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
4729
4730 * calls.c (expand_call, emit_library_call_value_1), collect2.c
4731 (scan_prog_file), config/a29k/a29k.c (print_operand),
4732 config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy ()
4733 instead of bcopy ().
4734 * real.h: Use memcmp () instead of bcmp ().
4735 * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c
4736 (split_branches), config/sparc/sparc.c (ultra_flush_pipeline,
4737 ultrasparc_sched_init, ultrasparc_sched_reorder),
4738 config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset ()
4739 instead of bzero ().
4740 * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr ()
4741 instead of rindex ().
4742 * configure.in: Don't check for bzero, bcmp, index or rindex.
4743 * configure, config.in: Regenerate.
4744 * system.h: Don't include declarations for bzero, bcmp, index or
4745 rindex.
4746 * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define
4747 bzero, bcmp, index or rindex.
4748
4749 Wed Nov 8 21:58:20 2000 Christopher Faylor <cgf@cygnus.com>
4750
4751 * config/i386/cygwin.h: Add -no-win32 switch. Separate -mno-cygwin
4752 include and library paths from -mcygwin case. Parameterize some
4753 declarations to avoid warnings. Use standard locations for include and
4754 lib dirs.
4755
4756 2000-11-08 Nick Clifton <nickc@redhat.com>
4757
4758 * config/arm/arm.md (mulsidi3adddi): Change output operand
4759 constraint from "=&" to "+&".
4760 (umulsidi3adddi): Change output operand constraint from "=&" to
4761 "+&".
4762
4763 2000-11-08 Richard Henderson <rth@redhat.com>
4764
4765 * flow.c (init_propagate_block_info): Protect the rtx stored in
4766 mem_set_list from modification by find_auto_inc.
4767 (mark_set_1): Likewise.
4768
4769 2000-11-08 Neil Booth <neilb@earthling.net>
4770
4771 Move directive handling into the lexer itself.
4772
4773 * cpplex.c (_cpp_lex_token): Handle directives directly.
4774 In the case of a directive interrupting a function-like
4775 macro invocation, use extra_char since read_ahead is
4776 used to store the '#'. Return a CPP_EOF in this case.
4777 * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
4778 (cpp_get_token): Don't handle directives here.
4779 * cpplib.h: Remove CPP_DHASH token type.
4780
4781 Wed Nov 8 21:53:41 MET 2000 Jan Hubicka <jh@suse.cz>
4782
4783 * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes
4784 formed using PRE_MODIFY too.
4785
4786 2000-11-08 Mark Mitchell <mark@codesourcery.com>
4787
4788 * c-tree.texi (VAR_DECL): Describe representation of GCC's
4789 extension for placing variables in particular registers.
4790
4791 * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for
4792 unprototyped C functions with no parameters.
4793
4794 2000-11-08 Jakub Jelinek <jakub@redhat.com>
4795
4796 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int
4797 before passing to fprintf.
4798
4799 2000-11-08 Jakub Jelinek <jakub@redhat.com>
4800
4801 * function.c (expand_function_start): Cast GET_MODE_SIZE to
4802 HOST_WIDE_INT before negating it.
4803
4804 2000-11-08 Jakub Jelinek <jakub@redhat.com>
4805
4806 * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
4807 passed in multiple non-contiguous locations.
4808
4809 2000-11-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4810
4811 * README.gnat: Remove file.
4812
4813 2000-11-08 Alexandre Oliva <aoliva@redhat.com>
4814
4815 * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts
4816 in-place.
4817
4818 2000-11-07 Richard Henderson <rth@redhat.com>
4819
4820 * dwarfout.c (INSN_LABEL_FMT): Remove.
4821 (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
4822 (dwarfout_label): Remove.
4823 * dwarfout.h: Remove it's prototype.
4824 * dwarf2out.c (INSN_LABEL_FMT): Remove.
4825 (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
4826 (dwarf2out_label): Remove.
4827 * dwarf2out.h: Remove it's prototype.
4828 * final.c (final_scan_insn): Don't call dwarf[2]out_label.
4829
4830 2000-11-07 Richard Henderson <rth@redhat.com>
4831
4832 * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary
4833 search on the unwind region section.
4834
4835 * config/ia64/ia64.md (movbi): Add r/r alternative.
4836 (cmovdi_internal_astep): Describe all combinations of register
4837 classes for sources & destinations; remove matching constraints.
4838 (cmovdi_internal): Likewise.
4839
4840 * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed.
4841
4842 2000-11-07 Richard Henderson <rth@redhat.com>
4843
4844 * c-lang.c (start_cdtor, finish_cdtor): New functions.
4845 (finish_file): Use them in building constructor/destructor functions.
4846
4847 * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
4848 LD_FINI_SWITCH): Move ...
4849 * config/alpha/osf.h: ... here.
4850 * config/alpha/alpha-interix.h: Don't undef them.
4851
4852 2000-11-07 Jeffrey Oldham <oldham@oz.codesourcery.com>
4853
4854 * config/mips/t-iris6 (FPBIT): New. Added so that __unorddf2 is
4855 included in libgcc.a.
4856 (DPBIT): Likewise.
4857 (dp-bit.c): Likewise.
4858 (fp-bit.c): Likewise.
4859
4860 2000-11-07 Nick Clifton <nickc@redhat.com>
4861
4862 * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab.
4863 (INTERNAL_ASM_OP): Add missing tab.
4864
4865 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
4866
4867 * alias.c (init_alias_analysis), calls.c (expand_call,
4868 emit_library_call_value_1), combine.c (init_reg_last_arrays),
4869 cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
4870 (init_output_buffer, set_diagnostic_context), dwarf2out.c
4871 (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
4872 (init_emit_once), fold-const.c (mul_double, div_and_round_double),
4873 function.c (assign_parms), gcse.c (compute_can_copy,
4874 alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
4875 compute_hash_table, compute_set_hash_table,
4876 compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
4877 (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
4878 clear_units, schedule_block), integrate.c (initialize_for_inline,
4879 expand_inline_function), jump.c (thread_jumps), local-alloc.c
4880 (local_alloc), loop.c (combine_movables, count_loop_regs_set,
4881 load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
4882 regclass.c (init_reg_sets, init_reg_sets_1, regclass,
4883 record_reg_classes, allocate_reg_info), reload.c
4884 (get_secondary_mem, remove_address_replacements, find_reloads),
4885 reload1.c (reload, set_initial_label_offsets, finish_spills,
4886 reload_as_needed, choose_reload_regs_init,
4887 reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
4888 (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
4889 (rename_registers), stmt.c (expand_end_case), unroll.c
4890 (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
4891 () instead of bzero ().
4892
4893 2000-11-07 Neil Booth <neilb@earthling.net>
4894
4895 * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
4896
4897 2000-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4898
4899 * c-common.c (combine_strings): Only warn about long strings for C.
4900
4901 Tue Nov 7 19:44:30 2000 J"orn Rennecke <amylaar@redhat.com>
4902
4903 * combine.c (distribute_notes): Fix typo in last change.
4904
4905 2000-11-07 Geoff Keating <geoffk@redhat.com>
4906
4907 * config/rs6000/rs6000.md (movdi_internal32+1): Use
4908 operand_subreg_force rather than gen_rtx_SUBREG.
4909 (movdi_internal32+2): Likewise.
4910
4911 2000-11-07 Philip Blundell <philb@gnu.org>
4912
4913 * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
4914 * config/arm/linux-aout.h: Likewise.
4915 * configure: Regenerate.
4916
4917 2000-11-07 Philipp Thomas <pthomas@suse.de>
4918
4919 * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
4920 accepted my the gettext maintainer.
4921
4922 2000-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4923
4924 * builtins.c (expand_builtin_strpbrk): New function.
4925 (expand_builtin): Handle BUILT_IN_STRPBRK.
4926
4927 * builtins.def (BUILT_IN_STRPBRK): New entry.
4928
4929 * c-common.c (c_common_nodes_and_builtins): Declare builtin
4930 strpbrk.
4931
4932 2000-11-07 David O'Brien <obrien@dragon.nuxi.com>
4933
4934 * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
4935 * POTFILES.in: Add config/alpha/freebsd.h
4936 * configure.in: Add alpha*-freebsd support.
4937 * configure: Regenerate.
4938
4939 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
4940
4941 * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
4942 copy of ptr_type_node rather than ptr_type_node itself.
4943
4944 Tue Nov 7 06:29:24 2000 J"orn Rennecke <amylaar@redhat.com>
4945
4946 * combine.c (recog_for_combine): Allocate uninitialized vector with
4947 rtvec_alloc.
4948 * recog.c (apply_change_group): Likewise.
4949
4950 Tue Nov 7 06:24:02 2000 J"orn Rennecke <amylaar@redhat.com>
4951
4952 * flow.c (verify_local_live_at_start): Back out last change.
4953 * combine.c (distribute_notes): When parts of a hard reg are
4954 neither set nor referenced in PLACE, search backwards for a
4955 place to put a REG_UNUSED note; if none found, ask for flow
4956 info refresh.
4957
4958 Mon Nov 6 20:08:13 2000 J"orn Rennecke <amylaar@redhat.com>
4959
4960 * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
4961 with (clobber (match_scratch...)).
4962
4963 2000-11-06 Neil Booth <neilb@earthling.net>
4964
4965 * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
4966 error status.
4967
4968 2000-11-06 Neil Booth <neilb@earthling.net>
4969
4970 * tradcpp.c (special_symbol): Assign an null string rather
4971 than writing to an unallocated buffer.
4972
4973 2000-11-06 Neil Booth <neilb@earthling.net>
4974
4975 * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
4976 CPP_MACRO_ARG case.
4977
4978 2000-11-06 Neil Booth <neilb@earthling.net>
4979
4980 * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
4981 tok.val.arg_no as appropriate.
4982 * cppexp.c (lex): Similarly.
4983 * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
4984 cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
4985 * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
4986 cpp_macro_definition): Similarly.
4987 * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
4988
4989 2000-11-06 Jakub Jelinek <jakub@redhat.com>
4990
4991 * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
4992 operands[1] is constant, calculate the sum and generate movdi.
4993 (addsi3): Similarly. Use SImode in call to arith_4096_operand.
4994 (subsi3): Use SImode in call to arith_4096_operand.
4995
4996 2000-11-06 Jakub Jelinek <jakub@redhat.com>
4997
4998 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
4999 adjust %o1, not %o0 if the return type is large structure.
5000
5001 2000-11-06 Jakub Jelinek <jakub@redhat.com>
5002
5003 * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
5004 update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
5005
5006 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
5007
5008 * expmed.c (expand_divmod): For signed divide by 2, prefer
5009 a branch and fewer shifts if branches are very cheap.
5010
5011 2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
5012
5013 * Makefile.in: Remove all targets related to building
5014 distributions and diffs, or INSTALL.
5015 * INSTALL, install1.texi: Remove.
5016 * configure.in: Remove mention of distdir.
5017 * configure: Regenerate.
5018 * objc/Make-lang.in: Remove mention of distdir.
5019
5020 2000-11-04 Neil Booth <neilb@earthling.net>
5021
5022 * cpp.texi: Update for _Pragma.
5023
5024 2000-11-04 Joseph S. Myers <jsm28@cam.ac.uk>
5025
5026 * gcc.texi (Contributing): Update URL for projects web page.
5027
5028 2000-11-04 Neil Booth <neilb@earthling.net>
5029
5030 * cpplex.c (parse_string): Don't allow multiline strings in
5031 #include family directives.
5032
5033 2000-11-04 Neil Booth <neilb@earthling.net>
5034
5035 * cpplib.c (do_line): Only warn pedantically if not reading
5036 preprocessed input.
5037
5038 2000-11-04 Alexandre Oliva <aoliva@redhat.com>
5039
5040 * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
5041 RETURN_POPS_ARGS().
5042
5043 2000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
5044
5045 * builtins.c (expand_builtin_strlen): Remove unused mode
5046 argument.
5047 * gcc.c (process_command): Remove unused variable.
5048 * fold-const.c: Include expr.h.
5049 * recog.c: Include reload.h.
5050 * Makefile.in (recog.o, fold-const.o): Update deps.
5051
5052 2000-11-02 Geoffrey Keating <geoffk@cygnus.com>
5053
5054 * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
5055
5056 Fri Nov 3 13:41:04 2000 Mark P Mitchell <mark@codesourcery.com>
5057
5058 * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
5059 handling.
5060 (STARTFILE_SPEC): Likewise.
5061 (LINK_SPEC): Likewise.
5062
5063 2000-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5064
5065 * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
5066 (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
5067 (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
5068
5069 2000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
5070
5071 * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
5072 (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
5073 perm_calloc, get_identifier, maybe_get_identifier,
5074 real_value_from_int_cst, simple_cst_equal), varasm.c
5075 (assemble_name, assemble_real, immed_real_const_1,
5076 compare_constant_1, decode_rtx_const, output_constant_pool): Use
5077 strrchr () instead of rindex (). Use memcmp () instead of bcmp
5078 (). Use memcpy () instead of bcopy (). Use memset () instead of
5079 bzero ().
5080
5081 2000-11-03 Nathan Sidwell <nathan@codesourcery.com>
5082
5083 * cppfiles.c (open_file): If already read, then don't reopen.
5084 Immediately close an empty file.
5085
5086 2000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
5087
5088 * expr.h (fold_builtin): Move declaration...
5089 * tree.h (fold_builtin): ... here.
5090
5091 Fri Nov 3 05:41:07 2000 J"orn Rennecke <amylaar@redhat.com>
5092
5093 * flow.c (verify_local_live_at_start): Allow hard regs to die.
5094
5095 2000-11-02 Neil Booth <neilb@earthling.net>
5096
5097 config:
5098 * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
5099 alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
5100 alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
5101 alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
5102 arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
5103 arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
5104 c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
5105 elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
5106 i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
5107 i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
5108 i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
5109 i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
5110 i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
5111 i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
5112 i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
5113 i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
5114 i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
5115 i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
5116 i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
5117 i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
5118 i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
5119 ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
5120 m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
5121 m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
5122 m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
5123 m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
5124 m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
5125 m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
5126 m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
5127 m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
5128 m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
5129 m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
5130 mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
5131 mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
5132 mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
5133 mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
5134 mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
5135 mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
5136 ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
5137 ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
5138 pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
5139 pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
5140 romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
5141 rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
5142 rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
5143 rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
5144 sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
5145 sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
5146 sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
5147 sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
5148 sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
5149 sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
5150 sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
5151 v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
5152 vax/vaxv.h, vax/vms.h, we32k/we32k.h
5153
5154 Replace -A() with -A=, the new assertion syntax.
5155
5156 Thu Nov 2 21:52:35 2000 J"orn Rennecke <amylaar@redhat.com>
5157
5158 * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
5159 elim_i1.
5160 In REG_DEAD handling: When handling parts of multi-hard-reg hard
5161 registers, increment the loop counter by the size of the parts;
5162 use recursion to handle individual parts.
5163
5164 2000-11-02 Neil Booth <neilb@earthling.net>
5165
5166 * configure.in: Make integrated CPP the default.
5167 * configure: Regenerate.
5168
5169 Thu Nov 2 19:20:12 2000 J"orn Rennecke <amylaar@redhat.com>
5170
5171 * reload.c (find_equiv_reg): Test all hard registers for membership
5172 in the requested class.
5173
5174 2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
5175
5176 * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
5177 process_command, main), gcov.c (open_files, output_data), tlink.c
5178 (frob_extension, scan_linker_output), toplev.c
5179 (file_name_nondirectory): Use strchr () and strrchr () instead of
5180 index () and rindex ().
5181
5182 2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
5183
5184 * c-common.c (get_flag_spec, check_format_info_main,
5185 check_format_types): Use strchr () instead of index (). Compare
5186 against error_mark_node instead of comparing the TREE_CODE against
5187 ERROR_MARK.
5188
5189 2000-11-02 Zack Weinberg <zackw@Stanford.EDU>
5190
5191 Integrated CPP.
5192
5193 * c-lex.c (init_c_lex): Update cpp_start_read call.
5194 (cb_ident): Update for new callback prototype.
5195 (cb_def_pragma): Update for new cpp_get_token prototype.
5196 (c_lex): Similarly. Use cpp_get_line.
5197
5198 * c-parse.in (finish_parse): Update for new cpp_finish
5199 prototype.
5200
5201 * cp/lex.c (finish_parse): Similarly.
5202
5203 2000-11-01 Geoff Keating <geoffk@cygnus.com>
5204
5205 * machmode.def: Add V16QImode.
5206
5207 2000-11-01 Richard Henderson <rth@redhat.com>
5208
5209 * dwarf2out.c (loc_descriptor_from_tree): Check for null result
5210 from rtl_for_decl_location.
5211 (add_location_or_const_value_attribute): Likewise.
5212
5213 2000-11-01 Neil Booth <neilb@earthling.net>
5214
5215 * cpplib.c (run_directive): Use correct line number for output
5216 of _Pragma. Remember any in-progress directive.
5217
5218 * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
5219
5220 2000-11-01 Richard Henderson <rth@redhat.com>
5221
5222 * stmt.c (expand_start_null_loop): Set continue_label.
5223
5224 2000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
5225
5226 * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
5227 (expand_builtin_constant_p): Move parts of the code into
5228 fold_builtin_constant_p.
5229 (expand_builtin_strlen): Move parts of the code into fold_builtin.
5230 * expr.h (fold_builtin): Declare.
5231 * fold-const.c (fold): Handle builtin calls.
5232
5233 * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
5234
5235 2000-11-01 Richard Henderson <rth@redhat.com>
5236
5237 * stmt.c (expand_start_null_loop): New.
5238 (expand_end_null_loop): New.
5239 * c-semantics.c (genrtl_do_stmt): Use them.
5240 * tree.h: Declare them.
5241
5242 2000-11-01 Richard Henderson <rth@redhat.com>
5243
5244 * cppmain.c (scan_buffer): Don't avoid paste for assembly.
5245
5246 2000-11-01 Neil Booth <neilb@earthling.net>
5247
5248 * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
5249 * cp/spew.c: Similarly.
5250 * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
5251 * cppmacro.c (stringify_arg): Similarly.
5252 * cpplib.h (CPP_BACKSLASH): Delete.
5253
5254 2000-10-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5255
5256 * builtins.c (expand_builtin_strstr): New function.
5257 (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
5258
5259 * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
5260
5261 * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
5262 and builtin strchr.
5263
5264 2000-10-31 Richard Henderson <rth@redhat.com>
5265
5266 * config/i386/i386.c (fcmov_comparison_operator): Check for
5267 CCFPmode or CCFPUmode instead of CCmode.
5268 (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
5269 unordered operations as well.
5270
5271 2000-10-31 Richard Henderson <rth@redhat.com>
5272
5273 * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
5274 of integer_zero_node.
5275
5276 2000-10-31 Richard Henderson <rth@redhat.com>
5277
5278 * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
5279
5280 2000-10-31 Nick Clifton <nickc@redhat.com>
5281
5282 * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
5283 -fdata-sections to override the section attribute of a DECL.
5284
5285 2000-10-31 Chris Demetriou <cgd@sibyte.com>
5286
5287 * libgcc2.c (__shtab): Remove __shtab variable.
5288 * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
5289 * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
5290 members.
5291
5292 2000-10-31 Jim Wilson <wilson@redhat.com>
5293
5294 * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
5295 * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
5296 * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
5297 instead of ASM_OUTPUT_INTERNAL_LABEL.
5298 (dwarf2out_end_block, dwarf2out_label): Likewise.
5299 * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
5300 * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
5301
5302 2000-10-31 Richard Henderson <rth@redhat.com>
5303
5304 * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
5305 (size_of_locs): Set it.
5306 (output_loc_operands): Use it to compute branch displacement.
5307 (int_loc_descriptor): New.
5308 (mem_loc_descriptor): Dereference memory in the proper size.
5309 Use DW_OP_plus_uconst when possible. Use int_loc_descriptor.
5310 (loc_descriptor_from_tree): New.
5311 (rtl_for_decl_location): Break out from ...
5312 (add_location_or_const_value_attribute): ... here.
5313 (add_bound_info): Use loc_descriptor_from_tree.
5314
5315 2000-10-31 Neil Booth <neilb@earthling.net>
5316
5317 * cpp.texi: Update for new command line assertion syntax.
5318 * cpplib.c (cpp_define): Simplify a bit.
5319 (cpp_assert, cpp_unassert): Use handle_assertion.
5320 (handle_assertion): New function; accept new command line
5321 syntax with '='.
5322 * testsuite/gcc.dg/cpp/assert3.c: New tests.
5323
5324 2000-10-31 Neil Booth <neilb@earthling.net>
5325
5326 * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
5327 undefined. Remove #ifdef check.
5328 * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
5329 Define STDC_0_IN_SYSTEM_HEADERS to 1.
5330
5331 2000-10-31 Jan Hubicka <jh@suse.cz>
5332 Jakub Jelinek <jakub@redhat.com>
5333
5334 * config/i386/i386.h: Clarify CCNOmode description in comment.
5335 (EXTRA_CC_MODES): Remove CCRCmode.
5336 * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
5337 (put_condition_code, ix86_match_ccmode): Likewise.
5338 (ix86_cc_mode): Likewise. Fix comment.
5339 (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
5340 * config/i386/i386.md: Add unspec 12 description.
5341 (adddi3 split): Use unspec 12 instead of CCRCmode.
5342 (addsi3_carry_rc): Remove.
5343 (addsi3_cc, addqi3_cc): New patterns.
5344 (addsi_3): Swap operands, match CCZmode.
5345 (addsi_4): Rewritten.
5346 (addsi_5): Renamed from addsi_6.
5347 (addsi_6): Removed.
5348 (addhi_3): Swap operands, match CCZmode.
5349 (addhi_4): Rewritten.
5350 (addhi_5): Renamed from addhi_6.
5351 (addhi_6): Removed.
5352 (addqi_3): Swap operands, match CCZmode.
5353 (addqi_4): Rewritten.
5354 (addqi_5): Renamed from addqi_6. Use =q constraint for clobber.
5355 (subsi3_carry_rc): Removed.
5356 (iorqi_3): Use =q constraint for clobber.
5357 (xorqi_cc_2): Likewise.
5358 (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
5359 (x86_movsicc_0_m1_rc): Removed.
5360 (cmp?i peepholes): Remove neg. Use CCGCmode instead of CCRCmode.
5361
5362 2000-10-31 Joseph S. Myers <jsm28@cam.ac.uk>
5363
5364 * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
5365 and decrement of complex types.
5366
5367 2000-10-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5368
5369 * builtins.c (expand_builtin_fputs): When deleting NOP calls to
5370 builtin fputs, ensure we still evaluate the stream in case it
5371 has side-effects.
5372
5373 2000-10-31 Jakub Jelinek <jakub@redhat.com>
5374
5375 * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
5376 to expand_shift.
5377
5378 Tue Oct 31 15:33:27 2000 J"orn Rennecke <amylaar@redhat.com>
5379
5380 * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
5381 (fp_extended_operand, emit_fpscr_use): Likewise.
5382 * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
5383 (fpul_operand): New function.
5384 * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
5385 fp_extended_operand. Add fpul_operand.
5386 * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
5387 (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
5388 (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
5389 (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
5390 (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
5391 (divdf3_i): Likewise.
5392 (floatsisf2): Likewise. Use fpul_operand for 'y' operand.
5393 (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
5394 (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
5395 (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
5396 (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
5397
5398 2000-10-31 Bernd Schmidt <bernds@redhat.co.uk>
5399
5400 * config/i386/i386.c (ix86_init_builtins): Correct return type
5401 building v4hi_ftype_v4hi_int_int tree node.
5402 (ix86_expand_builtin): Use correct operand numbers 0 and 1.
5403 Copy operand 0 into a Pmode register, don't generate a MEM rtx.
5404
5405 * config/i386/i386.md (sse_movntdi): Use mmx register constraint
5406 for operand 1.
5407 (mmx__uavgv8qi3): Correct insn mnemonic.
5408 (mmx_psadbw): Correct insn mnemonic. Use V8QI mode for operands 1 and 2.
5409 (mmx_punpckhwd): Correct insn mnemonic.
5410 (mmx_punpckhdq): Likewise.
5411 (mmx_punpcklwd): Likewise.
5412 (mmx_punpckldq): Likewise.
5413 (prefetch): Use immediare_operand and 'n' constraint for operand 1.
5414 Renumber case labels to match the _mm_prefetch constants defined in
5415 xmmintrin.h.
5416
5417 * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
5418 if the splitter didn't emit new insns.
5419 Make sure we call cleanup_subreg_operands even when splitting the last
5420 insn in a basic block.
5421
5422 * invoke.texi (Debugging Options): Describe -do.
5423 * toplev.c (enum_dump_file_index): New entry DFI_postreload.
5424 (dump_file): Likewise.
5425 (rest_of_compilation): Split .greg dump into .greg and .postreload.
5426
5427 2000-10-30 Neil Booth <neilb@earthling.net>
5428
5429 * cppfiles.c (stack_include_file): Check for stacked contexts
5430 here.
5431 * cpphash.h (_cpp_do__Pragma): New prototype.
5432 * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
5433
5434 * cpplex.c (skip_escaped_newlines): Only process trigraphs and
5435 escaped newlines if !(buffer->from_stage3).
5436 (_cpp_lex_token): Warn about missing newlines iff
5437 !buffer->from_stage3.
5438
5439 * cpplib.c (get__Pragma_string, destringize,
5440 _cpp_do__Pragma): New functions.
5441 (run_directive): Set output_line for _Pragma to avoid line
5442 markers in output. Set from_stage3 and prevent macro expansion
5443 for _Pragma and command-line options. Check buffer exhaustion.
5444 (cpp_push_buffer): Don't check for stacked macro contexts, as
5445 this is perfectly legitimate for _Pragma. Move the check to
5446 stack_include_file instead. Set from_stage3 iff buffer is
5447 preprocessed input.
5448
5449 * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
5450 unsigned. New boolean from_stage3.
5451 (struct spec_nodes): Add n__Pragma.
5452
5453 * cppmacro.c (enter_macro_context): Flip sense of return value.
5454 (_cpp_get_token): Handle _Pragma operator.
5455
5456 2000-10-30 Phil Edwards <pme@sources.redhat.com>
5457
5458 * gcc.texi: The C++ standard isn't "draft" anymore.
5459
5460 2000-10-30 Mark Mitchell <mark@codesourcery.com>
5461
5462 * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
5463
5464 2000-10-29 Neil Booth <neilb@earthling.net>
5465
5466 * cpplib.c (skip_rest_of_line): Use _cpp_get_token.
5467
5468 2000-10-29 Joseph S. Myers <jsm28@cam.ac.uk>
5469
5470 * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
5471 fixinc/inclhack.def: Change comments mentioning C9X to refer to
5472 C99 instead.
5473
5474 * invoke.texi: Document that -V will only work for very similar
5475 versions of driver and compiler.
5476
5477 2000-10-29 Neil Booth <neilb@earthling.net>
5478
5479 * cppmacro.c (_cpp_create_definition): Optimize the case of
5480 a macro defined to itself.
5481
5482 2000-10-29 Neil Booth <neilb@earthling.net>
5483
5484 * cpplex.c (save_comment): Don't store new lines in C++ comments.
5485
5486 2000-10-29 Michael Hayes <mhayes@redhat.com>
5487
5488 * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
5489
5490 2000-10-28 Geoffrey Keating <geoffk@cygnus.com>
5491
5492 * cpphash.c (cpp_forall_identifiers): Add context variable
5493 for callback routine.
5494 * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
5495 change.
5496 (main): Call cpp_forall_identifiers with null context.
5497 * cpplib.h (cpp_forall_identifiers): Update prototype.
5498
5499 * cppmain.c: Make `parse_in' and `print' static.
5500
5501 2000-10-28 Alan Modra <alan@linuxcare.com.au>
5502
5503 * c-decl.c (finish_function): Clear c_function_name_declared_p.
5504
5505 2000-10-28 Richard Henderson <rth@redhat.com>
5506
5507 * regrename.c (scan_rtx_address): Frob action, not class,
5508 when trying to disable optimization.
5509
5510 2000-10-28 Mark Mitchell <mark@codesourcery.com>
5511
5512 * c-semantics.c (make_rtl_for_local_static): Don't clobber
5513 DECL_ASSEMBLER_NAME.
5514
5515 2000-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
5516
5517 * configure.in: Determine and substitute gcc_version_full.
5518 * configure: Regenerate.
5519 * gccbug.in: Use it to give full version. Don't allow
5520 confidential PRs.
5521
5522 2000-10-28 Richard Henderson <rth@redhat.com>
5523
5524 * recog.c (split_all_insns): Run cleanup_subreg_operands
5525 after reload.
5526
5527 * regrename.c (regrename_optimize): Verify that all registers of
5528 a multiple register mode are available.
5529 (scan_rtx_address): Accept the mode of the address; all callers
5530 changed.
5531
5532 * cpplib.c (run_directive): Fix prototype.
5533
5534 2000-10-28 Bernd Schmidt <bernds@redhat.co.uk>
5535
5536 * reload.c (find_reloads): Distinguish "wins" so that we know whether
5537 a given operand won because of a matching constraint or not; then use
5538 that information to compute goal_alternative_matched properly.
5539 * reload1.c (choose_reload_regs): Never set reload_override_in for an
5540 optional reload.
5541
5542 * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
5543 accurate value for MULT.
5544 * config/ia64/ia64.c (ia64_print_operand): Require probability to be
5545 2% or > 98% before using static branch prediction bits.
5546
5547 2000-10-28 Neil Booth <neilb@earthling.net>
5548
5549 New macro expander.
5550
5551 * cpplib.c (struct answer): New.
5552 (struct if_stack): Use cpp_lexer_pos rather than line and col.
5553 Rename cmacro mi_cmacro.
5554 (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
5555 IN_I): New directive and flags.
5556 (skip_rest_of_line, check_eol, run_directive, glue_header_name,
5557 parse_answer, parse_assertion, find_answer): New functions.
5558 (parse_ifdef, detect_if_not_defined, validate_else): Remove.
5559 (lex_macro_node): New function to replace parse_ifdef and
5560 get_define_node.
5561
5562 (_cpp_handle_directive): New function, combines _cpp_check_directive
5563 and _cpp_check_linemarker.
5564
5565 (do_define, do_undef, parse_include, do_include, do_import,
5566 do_include_next, read_line_number, do_line, do_ident, do_pragma,
5567 do_pragma_once, do_pragma_poison, do_pragma_dependency):
5568 Update for new token getting interface.
5569
5570 (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
5571 : Update for new multiple-include optimisation technique.
5572 (do_elif): Don't forget to invalidate controlling macros.
5573
5574 (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
5575 (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
5576 Functions to handle assertions with the new token interface.
5577 (do_assert, do_unassert): Use them.
5578
5579 (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
5580 Use run_directive.
5581
5582 (_cpp_init_stacks): Register directive names. Don't register special
5583 nodes.
5584
5585 * cpperror.c (print_containing_files, _cpp_begin_message): Update to
5586 new position recording regime.
5587 (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
5588 cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
5589 cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
5590 (cpp_type2name): Move to cpplex.c.
5591
5592 * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
5593 (parse_defined): Update to handle new multiple include optimisation
5594 method. Remove poisoned identifier warning.
5595 (parse_assertion, TYPE_NAME): Delete.
5596 (lex): Update for multiple include optimisation, removal of
5597 CPP_DEFINED, to use _cpp_test_assertion for assertions and
5598 cpp_token_as_text.
5599 (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
5600 (op_as_text): New function, to wrap cpp_token_as_text.
5601
5602 * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
5603 Update for MI optimisation.
5604 (_cpp_execute_include): Take a token rather than 3 arguments. Fix
5605 segfault on diagnostic.
5606 (_cpp_compare_file_date): Take a token rather than 3 args.
5607 (cpp_read_file): Work correctly for zero-length files.
5608
5609 * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
5610 _cpp_init_hashtable and _cpp_cleanup_hashtable.
5611 (cpp_lookup): Place identifiers at front of identifier pool
5612 for _cpp_lookup_with_hash.
5613 (_cpp_lookup_with_hash): Require identifiers to be at the front of
5614 the identifier pool. Commit the memory if not already in the
5615 hash table.
5616
5617 * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
5618 Initialise various members of cpp_reader, memory pools, and the
5619 special nodes.
5620 (cpp_printer_init): Delete.
5621 (cpp_cleanup): Update.
5622 (struct builtin, builtin_array, initialize_builtins): Update for new
5623 hashnode definition and builtin handling.
5624 (cpp_start_read, cpp_finish): Don't take or initialise a
5625 printer. Update.
5626
5627 * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
5628 PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
5629 T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
5630 T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
5631 (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
5632 struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
5633 NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
5634 struct toklist, struct cpp_context, struct specnodes,
5635 TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
5636 NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
5637 enum builtin_type, cpp_can_paste): New.
5638 (struct cpp_token): Delete line and col members.
5639 (struct cpp_buffer): New member output_lineno.
5640 (struct lexer_state): Delete indented, in_lex_line, seen_dot.
5641 Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
5642 (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
5643 ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
5644 base_context, context, directive, mi_state, mi_if_not_defined,
5645 mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
5646 mlstring_pos, macro_buffer, macro_buffer_len.
5647 Delete members mls_line, mls_column, token_list, potential_control_macro,
5648 temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
5649 context_cap, cur_context, no_expand_level, paste_level, contexts, args,
5650 save_parameter_spellings, need_newline, .
5651 Change type of date, time and spec_nodes members.
5652 Change prototypes for include and ident callbacks.
5653 (struct cpp_hashnode): Change type of name. Remove union members
5654 expansion and code. Add members macro, operator and builtin.
5655
5656 (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
5657 cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
5658 cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
5659 cpp_stop_lookahead): New prototypes.
5660 (cpp_printer_init, cpp_dump_definition): Delete prototypes.
5661
5662 (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
5663 Move from cpphash.h.
5664
5665 * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
5666 ufputs): Move to cpplib.h.
5667 (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
5668 TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
5669 COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
5670 struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
5671 _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
5672 _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
5673 _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
5674 _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
5675 _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
5676 _cpp_parse_assertion, _cpp_find_answer): Delete.
5677 (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
5678 POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
5679 _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
5680 _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
5681 _cpp_handle_directive, DSC): New.
5682 (struct include_file): New member defined.
5683
5684 (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
5685 _cpp_compare_file_date): Update.
5686 (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
5687 (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
5688 _cpp_cleanup_hashtable.
5689
5690 * Makefile.in: Remove cppoutput.c.
5691
5692 * cppoutput.c: Delete
5693
5694 * fixheader.c (read_scan_file): Update for new cpp_get_token
5695 prototype.
5696 (recognized_function): New argument LINE.
5697
5698 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
5699 new cpp_get_token prototype.
5700
5701 * scan.h (recognized_function): Update prototype.
5702
5703 * po/POTFILES.in: Remove cppoutput.c.
5704
5705 2000-10-27 Mark Mitchell <mark@codesourcery.com>
5706
5707 * c-typeck.c (check_init_type_bitfields): Remove.
5708 (constructor_incremental): Likewise.
5709 (struct constructor_stack): Remove incremental bit.
5710 (struct initializer_stack): Likewise.
5711 (start_init): Don't play with constructor_incremental.
5712 (finish_init): Likewise.
5713 (really_start_incremental_init): Likewise.
5714 (push_init_level): Likewise.
5715 (pop_init_level): Likewise.
5716 (output_init_level): Likewise.
5717 (output_pending_init_elements): Likewise.
5718
5719 2000-10-21 Mike Coleman <mcoleman2@kc.rr.com>
5720
5721 * c-pragma.c (handle_pragma_pack): Initialize align to -1.
5722 Improve error messages. Correct parsing of
5723 #pragma pack(pop [,id]). Do not check the user-supplied
5724 alignment if we're popping.
5725
5726 * gcc.dg/pack-test-1.c: New test case.
5727 * gcc.dg/pack-test-2.c: New test case.
5728 * gcc.dg/pack-test-1.h: New file.
5729
5730 2000-10-27 Neil Booth <neilb@earthling.net>
5731
5732 * cpp.texi: Update.
5733
5734 2000-10-27 Kelley Cook <kelley.cook@home.com>
5735
5736 * invoke.texi: Document -mintel-syntax
5737
5738 2000-10-27 Richard Henderson <rth@redhat.com>
5739
5740 * invoke.texi: Document -frename-registers. Add it to -O3.
5741 * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
5742 (enum dump_file_index, dump_file): Update order.
5743 (main): Set flag_rename_registers at -O3.
5744
5745 2000-10-27 Richard Henderson <rth@redhat.com>
5746
5747 * config/alpha/alpha.h (enum reg_class): Add PV_REG.
5748 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
5749 (REG_CLASS_FROM_LETTER): Assign it to 'c'.
5750 * config/alpha/alpha.md (call_osf_1): Use it.
5751 (call_value_osf_1): Likewise.
5752
5753 * config/ia64/ia64.c: Revert 10-23 patch.
5754 (ia64_hard_regno_rename_ok): New.
5755 * config/ia64/ia64-protos.h: Declare it.
5756 * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
5757
5758 2000-10-27 Bernd Schmidt <bernds@redhat.co.uk>
5759 Richard Henderson <rth@redhat.com>
5760
5761 * regrename.c: Rewrite to handle multi-register modes and
5762 cond_exec instructions.
5763 * Makefile.in (regrename.o): Update dependancies.
5764 * recog.h (struct operand_alternative): Add is_address.
5765 * recog.c (preprocess_constraints) [case 'p']: Set it.
5766
5767 2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
5768
5769 * configure.in: If not NO_MINUS_C_MINUS_O, substitute
5770 OUTPUT_OPTION with '-o $@'. Make zlibdir, zlibinc relative to
5771 top level. Kill oldstyle_subdirs. Do not include
5772 $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
5773 $outputs. Do not run configure.lang from config.status.
5774 Rearrange warning-flag logic to correspond to what the
5775 makefile wants. Put special vax stage1 options in
5776 @stage1_flags@ not @stage1_warn_cflags@. Don't do anything
5777 with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
5778 (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
5779 switch is given, nothing otherwise.
5780 * configure.lang: Delete.
5781
5782 * Makefile.in: Expunge all traces of extra_c_objs,
5783 extra_cxx_objs, and extra_cpp_objs. Set MAYBE_CPPLIB from
5784 @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS. Set
5785 warning options via a three level scheme so that -pedantic and
5786 -Wtraditional are not used for non-C front ends: LOOSE_WARN,
5787 STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
5788 WARN_CFLAGS. Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
5789 Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
5790 Set OUTPUT_OPTION, ZLIB, ZLIBINC. Do not set P,
5791 LANG_FLAGS_TO_PASS. Add OUTPUT_OPTION to all object-file
5792 generation rules. Wrap all rules that change the current
5793 directory in parentheses; pmake doesn't spawn a new shell for
5794 each command. Expunge all references to $(P). When one
5795 command depends on another and they're run all at once, use &&
5796 to separate them, not ;. Add libgcc_s$(SHLIB_EXT) to files
5797 deleted on make clean. Force OUTPUT_OPTION='-o $@' in stage2
5798 and beyond.
5799
5800 * objc/Make-lang.in: Wrap all rules that change the current
5801 directory in parentheses. Expunge all references to $(P).
5802 When one command depends on another and they're run all at
5803 once, use && to separate them, not ;. Add OUTPUT_OPTION to
5804 all object-file generation rules. Delete obsolete variables.
5805 * objc/Makefile.in: Delete.
5806
5807 2000-10-27 Jakub Jelinek <jakub@redhat.com>
5808
5809 * calls.c (expand_call): If sibcall_failure is set during pass 1,
5810 clear tail_call_insns as well.
5811
5812 2000-10-27 Nick Clifton <nickc@redhat.com>
5813
5814 * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
5815 prototype.
5816
5817 2000-10-26 Richard Henderson <rth@redhat.com>
5818
5819 * calls.c (expand_call): Supress sibcall if we have a
5820 BLKmode return in registers.
5821
5822 2000-10-26 Bernd Schmidt <bernds@redhat.co.uk>
5823
5824 * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
5825 into memory.
5826
5827 2000-10-26 Nathan Sidwell <nathan@codesourcery.com>
5828
5829 * tree.c (make_node, case 't'): Set alignment to that of
5830 char_type_node.
5831 * expr.c (move_by_pieces_ninsns): Abort if some length remains.
5832
5833 2000-10-25 Mark Mitchell <mark@codesourcery.com>
5834
5835 * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
5836 * configure.in (enable-libstdcxx-v3): Arrange to have
5837 HAVE_LIBSTDCXX_V3 substituted into the output files.
5838
5839 2000-10-25 Richard Henderson <rth@redhat.com>
5840
5841 * recog.c (constrain_operands): Initialize which_alternative
5842 before no alternatives early exit.
5843
5844 * cse.c (find_comparison_args): Check that we can reverse a
5845 comparison if needed before accepting the substitution.
5846
5847 * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
5848
5849 * simplify-rtx.c (simplify_relational_operation): Sign extend
5850 low words before sign extending to high words.
5851
5852 2000-10-25 Nick Clifton <nickc@redhat.com>
5853
5854 * config/mcore/mcore.c: Include config.h before system.h.
5855
5856 2000-10-25 Ray Essick <essick@ddna.labs.mot.com>
5857
5858 * config/mcore/mcore.md (return): Force function epilogue to
5859 always be generated to work around epilogue suppression bug in
5860 M*Core backend.
5861
5862 2000-10-25 Joseph S. Myers <jsm28@cam.ac.uk>
5863
5864 * c-decl.c (grokdeclarator): Move warning for qualified void
5865 return types with -pedantic to when the function type is
5866 constructed. At -W, warn in general for qualified function return
5867 types, except for volatile void.
5868 * invoke.texi: Document this new warning at -W.
5869
5870 2000-10-25 Neil Booth <neilb@earthling.net>
5871
5872 * cpp.texi: Update with implementation-defined behavior and
5873 internal limits.
5874
5875 2000-10-25 Jakub Jelinek <jakub@redhat.com>
5876
5877 * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
5878 incomplete type force it into alias set 0.
5879
5880 Wed Oct 25 01:02:44 EDT 2000 John Wehle (john@feith.com)
5881
5882 * alias.c: Include basic-block.h.
5883 (loop_p): New function.
5884 (mark_constant_function): Use it.
5885 * Makefile.in (alias.o): Update dependencies.
5886
5887 2000-10-24 Aldy Hernandez <aldyh@redhat.com>
5888
5889 * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
5890 like memory.
5891
5892 2000-10-24 Jim Wilson <wilson@cygnus.com>
5893
5894 * expmed.c (store_bit_field): Move integer pun code down after
5895 code that calls emit_move_insn for entire register move.
5896 * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
5897 Oct 20 changes. Only store mode in TYPE_MODE if RECORD_TYPE.
5898
5899 2000-10-24 Richard Henderson <rth@cygnus.com>
5900
5901 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
5902 register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
5903
5904 2000-10-24 Aldy Hernandez <aldyh@redhat.com>
5905
5906 * gcse.c (cprop_insn): do not propagate constants into jump_insn
5907 for machines with CC0 more than once.
5908
5909 2000-10-24 Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
5910
5911 * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
5912 pseudos just like memory.
5913
5914 2000-10-24 Alexandre Oliva <aoliva@redhat.com>
5915
5916 * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
5917 when deleting libcall sequence collapsed to a single instruction.
5918
5919 2000-10-24 Andrew Haley <aph@cygnus.co.uk>
5920
5921 * expr.c (do_store_flag): Don't crash if either side of a
5922 comparison is error_mark_node.
5923
5924 2000-10-24 Jakub Jelinek <jakub@redhat.com>
5925
5926 * sibcall.c (purge_mem_unchanging_flag): New function.
5927 (optimize_sibling_and_tail_recursive_calls): Call it.
5928
5929 2000-10-24 Philipp Thomas <pthomas@suse.de>
5930
5931 * Makefile.in (check-po): New target for doing checks in the po
5932 subdir if all languages configured.
5933 (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
5934 configure if NLS is enabled.
5935 * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
5936 otherwise leave empty.
5937 * configure: Regenerate.
5938
5939 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
5940
5941 * i386.c (print_operand): Handle new 'A' formatting code.
5942 387 opcodes need suffixes even with -mintel-syntax.
5943 Check for explicit size override (codes 'b', 'w' and 'k').
5944 (print_operand_address): Check if register prefix is needed when
5945 emitting `ds' segment override.
5946 * i386.h: Add comment about new 'A' formatting code.
5947 * i386.md (jump and call patterns): Emit absolute references using %A.
5948
5949 2000-10-23 Richard Henderson <rth@cygnus.com>
5950
5951 * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
5952 output registers as fixed.
5953 (ia64_function_epilogue): Undo output fixation.
5954
5955 2000-10-23 Richard Henderson <rth@cygnus.com>
5956
5957 * config/alpha/alpha.md: Add names for all unnamed insns; use
5958 define_insn_and_split in some obvious places.
5959 (lda): Remove.
5960 (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
5961 (zero_extendqisi2, zero_extendqidi2): Likewise.
5962 (zero_extendhisi2, zero_extendhidi2): Likewise.
5963 (abs splitters): Fix match_scratch operand number.
5964 (bcc_reverse): Swap pc & label instead of non-canonical compare.
5965
5966 2000-10-23 Jim Wilson <wilson@cygnus.com>
5967
5968 * ia64.c (ia64_print_operand, case 'r'): Correct comment. Handle
5969 CONST_INT.
5970 * ia64.md (cmpsi_adjusted): Use %r3.
5971 (cmpdi_adjusted): Likewise.
5972
5973 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
5974
5975 * config/i386/att.h (ASM_FILE_START): Define.
5976
5977 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
5978
5979 * config/i386/linux.h (ASM_FILE_START): Define.
5980
5981 Wed Oct 18 11:16:40 2000 Donald Lindsay <dlindsay@cygnus.com>
5982
5983 * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
5984 since this (only) drags in a crt0.o reference that the .ld files
5985 also introduce.
5986
5987 2000-10-23 Geoff Keating <geoffk@cygnus.com>
5988
5989 * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
5990 overwrite the value in a RELOAD_FOR_INPUT and other kinds of
5991 reloads just like an RELOAD_FOR_OUTPUT would.
5992
5993 * local-alloc.c (update_equiv_regs): Add an abort(). When
5994 deleting or moving insns, update reg_equiv[regno].init_insns.
5995
5996 2000-10-23 Mark Mitchell <mark@codesourcery.com>
5997
5998 * c-tree.texi: Improve documentation for IF_STMTs and related
5999 conditional statements.
6000
6001 2000-10-22 Mark Mitchell <mark@codesourcery.com>
6002
6003 * expr.c (do_preexpand_calls): Remove.
6004 (same_from_p): Don't use CALL_EXPR_RTL.
6005 (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
6006 (preexpand_calls): Remove.
6007 * tree.c (first_rtl_op): Remove CALL_EXPR case.
6008 (unsave_expr_1): Likewise.
6009 * tree.def (CALL_EXPR): Give it only two slots.
6010 * tree.h (CALL_EXPR_RTL): Remove.
6011
6012 2000-10-21 Chandrakala Chavva <cchavva@redhat.com>
6013
6014 * libgcc-std.ver (__addvsi3, __addvdi3, __subvsi3, __subvdi3,
6015 __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
6016 New functions.
6017
6018 2000-10-22 Alexandre Oliva <aoliva@redhat.com>
6019
6020 * calls.c (combine_pending_stack_adjustment_and_call): Don't
6021 adjust stack when unadjusted_alignment ends up as zero.
6022
6023 2000-10-22 Joseph S. Myers <jsm28@cam.ac.uk>
6024
6025 * fixinc/genfixes: Remove EGCS reference.
6026 * install.texi: Remove EGCS reference.
6027 * INSTALL: Regenerate.
6028
6029 2000-10-22 Mark Mitchell <mark@codesourcery.com>
6030
6031 * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
6032
6033 2000-10-21 Joseph S. Myers <jsm28@cam.ac.uk>
6034
6035 * diagnostic.c: Remove EGCS reference in comment.
6036
6037 Sat Oct 21 08:24:25 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6038
6039 * loop.c (strength_reduce): Fix error in last change.
6040
6041 2000-10-20 David Edelsohn <edelsohn@gnu.org>
6042
6043 * Makefile.in (SHLIB_NM_FLAGS): New.
6044 (libgcc.mk): Pass it.
6045 * mklibgcc.in (libgcc.map): Use it.
6046
6047 * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
6048 SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
6049
6050 2000-10-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6051
6052 * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
6053
6054 * sparc.c (load_pic_register): Delete unused varaible.
6055
6056 * libgcc2.c (__addvsi3): Delete unused variable.
6057
6058 * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
6059 __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
6060 __negvdi2): Prototype.
6061
6062 * ssa.c (apply_delayed_renames): Avoid undefined operation.
6063
6064 * toplev.c (display_target_options): Make static to match
6065 prototype. Delete empty declaration.
6066
6067 2000-10-20 Tom Tromey <tromey@cygnus.com>
6068
6069 * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
6070 * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
6071
6072 Fri Oct 20 17:05:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6073
6074 * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
6075 returned MEM.
6076 (expand_expr_unaligned, case ARRAY_REF): Check that index is
6077 a constant before comparing it; use tree_low_cst.
6078 * tree.c (save_expr): Set TREE_READONLY.
6079 (substitute_expr): Return inside of NON_LVALUE_EXPR.
6080 (build, build1): Set TREE_READONLY if all operands are.
6081 (build_index_type): If upper bound is a negative number, lower
6082 bound is zero and sizetype is unsigned, use upper bound of one and
6083 lower of zero.
6084
6085 2000-10-20 David Edelsohn <edelsohn@gnu.org>
6086
6087 * gcc.c (process_command, main): Use "because" instead of
6088 "since" in error messages.
6089
6090 Fri Oct 20 13:33:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6091
6092 * stor-layout.c (compute_record_mode): Use tree_low_cst.
6093 Don't use mode of field for record unless sizes are the same.
6094 (layout_type, case ARRAY_TYPE): Remove special bounds handling
6095 previously added for Ada; also change to using host_integerp
6096 and tree_low_cst.
6097
6098 * loop.c (strength_reduce): Show when new register made for
6099 giv is known to be a pointer and its aligment if so and known.
6100 (loop_dump_aux): Show VERBOSE parameter unused.
6101
6102 * gcse.c (set_hash_table_size): Now unsigned.
6103 * sdbout.c (template_name_p): Add "const" to avoid warnings.
6104 (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
6105 (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
6106 (sdbout_end_epilogue): Remove variable NAME.
6107 * system.h (getopt): Add default definition.
6108 * config/alpha/alpha.c (print_operand): Don't continue processing
6109 after issuing error.
6110 (summarize_insn): Avoid use of UL in constant.
6111
6112 * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
6113
6114 * fold-const.c (force_fit_type): Unsigned values can overflow
6115 if they are sizetype.
6116 (int_const_binop): Don't use cache if overflows.
6117
6118 2000-10-20 Richard Henderson <rth@cygnus.com>
6119
6120 * function.c (locate_and_pad_parm): Zero alignment_pad.
6121
6122 * regrename.c (rr_replace_reg): Rewrite to use recog_data to
6123 perform substitutions, and apply_change_group to see if it worked.
6124
6125 Fri Oct 20 13:33:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6126
6127 * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
6128
6129 * combine.c (struct undo): Change int to unsigned int.
6130 (do_SUBST_INT): Args are unsigned int.
6131 (make_extraction, force_to_mode): Use proper type when forming mask.
6132 (make_field_assignment): Likewise.
6133
6134 2000-10-20 Joseph S. Myers <jsm28@cam.ac.uk>
6135
6136 * c-common.c (check_format_info_recurse): Extract string constant
6137 initializers from non-volatile constant arrays and check them as
6138 formats.
6139 * c-typeck.c (decl_constant_value): Don't check pedantic or check
6140 for DECL_MODE (decl) != BLKmode.
6141 (decl_constant_value_for_broken_optimization): New function which
6142 includes these checks.
6143 (default_conversion, convert_for_assignment, digest_init): Use
6144 decl_constant_value_for_broken_optimization instead of
6145 decl_constant_value.
6146
6147 2000-10-20 Mark Mitchell <mark@codesourcery.com>
6148
6149 * tree.h (DECL_ALIGN_UNIT): New macro.
6150
6151 2000-10-14 Marek Michalkiewicz <marekm@linux.org.pl>
6152
6153 * config/avr/avr-protos.h (avr_output_bld): New.
6154 (out_shift_with_cnt): Add t_len argument.
6155 * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
6156 (output_movqi, output_movhi, output_movsisf): Optimize loading
6157 any constant with exactly one bit set to NO_LD_REGS.
6158 (out_shift_with_cnt): Optimize output code for size or speed,
6159 depending on optimize_size. Handle small shift counts as well
6160 (if not hand-optimized in ?sh??i3_out). Shifts can be done
6161 with or without a scratch register, with help of __tmp_reg__
6162 or __zero_reg__ if necessary. Add T_LEN argument to pass the
6163 length of TEMPLATE in words, return total insn length in *LEN.
6164 (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
6165 out_shift_with_cnt to work with the above change.
6166 (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
6167 lshrsi3_out): Likewise. Optimize more known shift count cases.
6168 Remove cases already well optimized in out_shift_with_cnt.
6169 (avr_output_bld): New function.
6170 * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
6171 (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
6172 * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
6173 Add reload_completed to insn condition - only for peepholes.
6174 (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
6175 in a register or memory.
6176 (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
6177 Do not require a scratch register.
6178 (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
6179 *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
6180 Optimize shifts by known count using a scratch register, but only
6181 if one is still available after register allocation.
6182
6183 2000-10-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6184
6185 * t-vax: New file. Don't build modules from libgcc1.c.
6186
6187 Fri Oct 20 00:57:00 EDT 2000 John Wehle (john@feith.com)
6188
6189 * alias.c: (mark_constant_function): Don't check pure functions.
6190 Initialize and end alias analysis.
6191 (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
6192 Don't make a special exception for recursion. Handle
6193 UNSPEC_VOLATILE. Don't assume ASM_OPERANDS is non-local
6194 unless it's volatile.
6195
6196 * local-alloc.c (equivalence): New structure.
6197 (reg_equiv): Define.
6198 (contains_replace_regs): Remove array and use
6199 field in reg_equiv.
6200 (memref_referenced_p): Likewise.
6201 (no_equiv): Likewise.
6202 (update_equiv_regs): Likewise.
6203
6204 (equiv_init_varies_p,
6205 equiv_init_movable_p): New functions.
6206 (update_equiv_regs): Use them. Use rtx_varies_p
6207 instead of function_invariant_p. Process insns
6208 from end to beginning. Allow a REG_EQUIV insn
6209 within the same loop as a use to be moved, also
6210 allow it to be moved out of a loop. Update
6211 REG_DEAD notes when substituting into an insn.
6212
6213 2000-10-19 Jim Wilson <wilson@cygnus.com>
6214
6215 * c-decl.c (start_decl): Check for error_mark_node type before using
6216 COMPLETE_TYPE_P.
6217 (finish_decl): Likewise. Don't give an error if decl type is
6218 already error_mark_node.
6219
6220 * haifa-sched.c (compute_trg_info): Add explanatory comments.
6221 New local update_blocks. Use update_blocks to remove duplicates
6222 when computing update blocks. Check for bblst_table overflow.
6223 (schedule_block): Add explanatory comment. Reduce bblst_size by
6224 factor of 2.
6225 * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
6226 notes.
6227
6228 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
6229
6230 * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
6231
6232 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
6233
6234 * expmed.c: Minor corrections in comments.
6235 * invoke.texi: Added desciption for the new option -ftrapv.
6236
6237 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
6238
6239 * libgcc2.c: Added the missing #endif.
6240
6241 Thu Oct 19 14:25:11 MET DST 2000 Jan Hubicka <jh@suse.cz>
6242
6243 * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
6244
6245 2000-10-18 Chandrakala Chavva <cchavva@redhat.com>
6246
6247 * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
6248 Use smulv_optab for -ftrapv.
6249 (expand_mult_highpart): Use unsigned multiply.
6250 (expand_divmod): Special-case division by -1.
6251 For EXACT_DIV_EXPR, do right shift first, then the multiply.
6252 For complex divide, use abs with unsigned result.
6253 * expr.c (force_operand): Use unsigned multiply.
6254 (expand_expr): Use overflow-trapping optabs for signed types if
6255 flag_trapv.
6256 If flag_trapv, don't generate a recursive call with EXPAND_SUM
6257 if the type is signed and the original call wasn't EXPAND_SUM or
6258 EXPAND_INITIALIZER.
6259 * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
6260 (negv_optab, absv_optab): Declare.
6261 * flags.h (flag_trapv): Declare.
6262 * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
6263 smulv_optab, sdivv_optab, negv_optab and absv_optab.
6264 (gen_insn): Interpret '$P' as requiring an integer mode,
6265 including partial integer modes.
6266 * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
6267 (product_cheap_p): Use unsigned expand_mult.
6268 * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
6269 (negv_optab, absv_optab): Define.
6270 (expand_binop): Use overflow-trapping optabs for signed types if
6271 flag_trapv.
6272 Handle negv_optab libe neg_optab.
6273 (expand_abs): Take result_unsignedp argument instead of unsignedp one.
6274 Use overflow-trapping optabs for signed result if flag_trapv.
6275 (expand_complex_abs): Use overflow-trapping optabs for signed types if
6276 flag_trapv.
6277 Don't open-code complex absolute-value operation for flag_trapv.
6278 (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
6279 sdivv_optab, negv_optab and absv_optab.
6280 * toplev.c (flag_trapv): Define.
6281 (lang_independent_options f_options): Include flag_trapv.
6282 * tree.h (TYPE_TRAP_SIGNED): Define.
6283 * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
6284 __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
6285 New functions.
6286 * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
6287 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
6288
6289 2000-10-18 Geoffrey Keating <geoffk@cygnus.com>
6290 David V. Henkel-Wallace <gumby@cygnus.com>
6291
6292 * config/i386/t-netware: Bring in from the Red Hat tree.
6293 * config/i386/netware.h: Likewise.
6294 * config/netware.h: Likewise.
6295 * config/rs6000/netware.h: Delete.
6296 * configure.in: Add i[34567]86-*-netware.
6297 * configure: Hand-edit to match configure.in change.
6298
6299 2000-10-18 Mark Mitchell <mark@codesourcery.com>
6300
6301 * c-common.h (flag_no_builtin): Declare.
6302 (flag_no_nonansi_builtin): Likewise.
6303 (c_common_nodes_and_builtins): Change prototype.
6304 * c-common.c (flag_no_builtin): New variable.
6305 (flag_no_nonansi_builtin): Likewise.
6306 (c_common_nodes_and_builtins): Remove parameters. Adjust
6307 accordingly.
6308 * c-decl.c (flag_no_builtin): Remove.
6309 (flag_no_nonansi_builtin): Likewise.
6310 (init_decl_processing): Adjust call to
6311 c_common_nodes_and_builtins.
6312
6313 2000-10-18 Marc Espie <espie@openbsd.org>
6314
6315 * tm.texi (LIBGCC_SPEC): Synch with reality.
6316
6317 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
6318
6319 * c-common.c (check_format_types): Check for writing through a
6320 NULL pointer argument.
6321
6322 2000-10-18 Hans-Peter Nilsson <hp@axis.com>
6323
6324 * tm.texi (Exception Region Output): Document
6325 DWARF_CIE_DATA_ALIGNMENT.
6326 * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
6327 #ifndef.
6328 [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
6329 DWARF_CIE_DATA_ALIGNMENT.
6330
6331 2000-10-18 Michael Hayes <mhayes@cygnus.com>
6332
6333 * basic-block.h (struct loop): Delete fields pre_header_root
6334 and pre_header_trace and replace with pre_header_edges
6335 and num_pre_header_edges.
6336 * flow.c (flow_loop_dump): Dump pre_header_edges.
6337 (flow_loops_free): Free pre_header_edges.
6338 (flow_loop_pre_header_scan): Calculate pre_header_edges.
6339
6340 2000-10-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
6341
6342 * contrib.texi: Update references to steering committee members
6343 and Jeff Law's entry.
6344
6345 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
6346
6347 * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
6348 (maybe_read_dollar_number, check_format_info_main): Use them for
6349 pedantic warning messages.
6350
6351 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
6352
6353 * c-common.c (check_format_info_main): Minor cleanup: move
6354 variables into inner scopes; initialize declarations where
6355 appropriate; don't hardcode "scanf" name on warning for zero
6356 width.
6357
6358 2000-10-17 Mark Mitchell <mark@codesourcery.com>
6359
6360 * c-common.c (back_end_hook): New variable.
6361 * c-common.h (back_end_hook): Declare it.
6362 * c-lang.c (finish_file): Use it.
6363
6364 * emit-rtl.c (init_emit_once): Initialize the const_int_htab
6365 earlier.
6366
6367 2000-10-18 Jan Hubicka <jh@suse.cz>
6368
6369 * i386.c (ix86_comparison_operator, put_condition_code,
6370 ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
6371 (ix86_expand_strlensi_unroll_1): Use CCRCmode.
6372 * i386.h (EXTRA_CC_MODES): Add CCRCmode.
6373 * i386.md (adddi and negdi splitter): Use CCRCmode.
6374 (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
6375 (subsi3_carry): add '*'
6376 (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
6377 (cmp to add peep2): Use CCRCmode; swap operands.
6378
6379 2000-10-18 Kazu Hirata <kazu@hxi.com>
6380
6381 * h8300.c: Fix a comment typo.
6382 (round_frame_size): New.
6383 (compute_saved_regs): Likewise.
6384 (push): Likewise.
6385 (pop): Likewise.
6386 (push_order): Remove.
6387 (pop_order): Likewise.
6388 (function_prologue): Rearrange code for readability.
6389 (function_epilogue): Likewise.
6390
6391 * config/h8300/h8300.md: Remove an unnecessary sign_extend
6392 expander that is used when not optimizing. Output a tab after
6393 each assembly insns.
6394
6395 * reorg.c: Fix formatting.
6396
6397 2000-10-17 Joern Rennecke <amylaar@redhat.co.uk>
6398
6399 * reload1.c (move2add_note_store): Check for simple
6400 auto-inc in destination.
6401
6402 2000-10-17 Michael Chastain <chastain@redhat.com>
6403
6404 * config/i386/i386-aout.h: define INT_ASM_OP.
6405
6406 Tue Oct 17 20:11:08 2000 Alan Modra <alan@linuxcare.com.au>
6407
6408 * pa.c (print_operand): Handle case 'c' for .vtable_inherit
6409
6410 Tue Oct 17 20:05:51 2000 Martin Buchholz <martin@xemacs.org>
6411
6412 * i370.md: Fix spelling typo.
6413
6414 2000-10-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6415
6416 * function.c (locate_and_pad_parm): Don't align stack unconditionally.
6417 Fixes execute/20001017-1.c on powerpc-linux-gnu.
6418
6419 * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
6420 * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
6421 LABEL_REF.
6422
6423 * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
6424 ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
6425 here...
6426 * rs6000/aix.h: ...to here.
6427 * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
6428
6429 2000-10-17 Jakub Jelinek <jakub@redhat.com>
6430
6431 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
6432
6433 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
6434 sure linker can relax even the delay slot mov %g1,%o7, fix output
6435 formating.
6436
6437 2000-10-17 Kazu Hirata <kazu@hxi.com>
6438
6439 * config/h8300/h8300.md: Remove an unnecessary zero_extend
6440 expander that is used when not optimizing. Output a tab after
6441 each assembly insns.
6442
6443 2000-10-17 Chandrakala Chavva <cchavva@redhat.com>
6444
6445 * gcc.c: New options --target-help.
6446 (process_command): Added code to parse this new option.
6447 * toplev.c (display_target_options): New function to support the
6448 above new option.
6449 * cppinit.c (new_pending_directive) : New option OPT_target__help.
6450 (cpp_handle_option): Support this new option.
6451 * invoke.texi: Added notes about --target-help option.
6452
6453 2000-10-17 Graham Stott <grahams@redhat.com>
6454
6455 * config/i386/i386.md (testqi_1): Add missing operand prefix
6456 for operand 0.
6457 * config/i386/i386-protos.h: Add missing prototype.
6458
6459 2000-10-17 Diego Novillo <dnovillo@cygnus.com>
6460
6461 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
6462 _GLOBAL_OFFSET_TABLE should not have a $ prefix when
6463 using -mintel-syntax.
6464
6465 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
6466
6467 * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
6468 (format_types): Use it for printf.
6469 (maybe_read_dollar_number): Add parameter for the kind of format
6470 involved. Warn for multiple use for arguments if this is
6471 inappropriate for the kind of format involved.
6472 (check_format_info_main): Update calls to maybe_read_dollar_number.
6473
6474 2000-10-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6475
6476 * inclhack.def (hpux_maxint): Also apply fix to values.h.
6477 * fixincl.x: Rebuilt.
6478
6479 2000-10-17 Alexandre Oliva <aoliva@redhat.com>
6480
6481 * genrecog.c (write_switch): Return the first condition that needs a
6482 label.
6483
6484 2000-10-17 Bernd Schmidt <bernds@redhat.co.uk>
6485
6486 * c-tree.h (warn_sequence_point): Move declaration to...
6487 * c-common.h (warn_sequence_point): ... here.
6488 * c-decl.c (warn_sequence_point): Move definition to...
6489 * c-common.c (warn_sequence_point): ... here.
6490 (struct reverse_tree): New.
6491 (reverse_list, reverse_max_depth): New static variables.
6492 (build_reverse_tree, common_ancestor, modify_ok
6493 verify_sequence_points): New functions.
6494 (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
6495 * c-typeck.c (check_modify_expr): Delete.
6496 (build_modify_expr): Don't call it.
6497
6498 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
6499
6500 * c-common.h (warn_missing_format_attribute): New variable.
6501 * c-decl.c (warn_missing_format_attribute): New variable.
6502 (c_decode_option): Decode -Wmissing-format-attribute and
6503 -Wno-missing-format-attribute.
6504 * c-common.c (check_function_format): If
6505 -Wmissing-format-attribute, give a warning where a vprintf or
6506 vscanf function is called by a function without its own printf or
6507 scanf attribute.
6508 * toplev.c (documented_lang_options): Add
6509 -Wmissing-format-attribute.
6510 * invoke.texi: Document -Wmissing-format-attribute.
6511
6512 2000-10-17 Marc Espie <espie@openbsd.org>
6513
6514 * invoke.texi (-shared): Insist on requiring code generation flags
6515 to be used along with -shared, and document the subtle failure that
6516 may occur otherwise.
6517
6518 2000-10-16 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6519
6520 * pa.md (return_internal): Move `use' after `return'.
6521
6522 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
6523
6524 * machmode.def: Correct comment.
6525
6526 2000-10-16 Rodney Brown <RodneyBrown@mynd.com>
6527
6528 * print-rtl.c (print_rtx_head): Constify.
6529 * rtl.h (print_rtx_head): Similarly.
6530
6531 * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
6532 Constify char * return value.
6533 * config/pa/pa/pa.c
6534 (output_64bit_and, output_64bit_ior): Constify char * return value.
6535 (pa_can_combine_p): Make static.
6536 (function_arg): Decorate unused `named' argument. Fix comment typo.
6537 (function_arg_partial_nregs): Decorate unused `named' argument.
6538
6539 2000-10-16 Joseph S. Myers <jsm28@cam.ac.uk>
6540
6541 * c-common.c (format_check_results): New structure.
6542 (finish_dollar_format_checking): Adjust to take a
6543 format_check_results * parameter.
6544 (check_format_info, check_format_info_recurse,
6545 check_format_info_main): Split check_format_info into three
6546 functions, the main checking going in check_format_info_main.
6547 Recurse when any reduction of the format string argument towards a
6548 string literal is done; go down both branches of a conditional
6549 expression. Don't warn for extra format arguments or empty format
6550 strings if they only occur in some branches of a conditional
6551 expression.
6552
6553 2000-10-16 Kazu Hirata <kazu@hxi.com>
6554
6555 * config/h8300/h8300.c: Remove obstack. Include ggc.h.
6556
6557 2000-10-16 Jakub Jelinek <jakub@redhat.com>
6558
6559 * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
6560
6561 2000-10-15 Diego Novillo <dnovillo@cygnus.com>
6562
6563 * i386.md (*movsi_or): Switch operand order for intel syntax.
6564
6565 2000-10-14 Joseph S. Myers <jsm28@cam.ac.uk>
6566
6567 * PROBLEMS: Remove.
6568
6569 * gcc.texi (Contributing): Update.
6570
6571 2000-10-13 Diego Novillo <dnovillo@cygnus.com>
6572
6573 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
6574 appropriate assembler dialect.
6575
6576 2000-10-13 Alexandre Oliva <aoliva@redhat.com>
6577
6578 * c-common.c (c_expand_builtin): PARAMS-ize prototype.
6579
6580 2000-10-12 Marek Michalkiewicz <marekm@linux.org.pl>
6581
6582 * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
6583 constants 1 and 2 to NO_LD_REGS.
6584
6585 2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6586
6587 * Makefile.in (c-parse.c, tradcif.c): Create atomically.
6588
6589 * objc/Make-lang.in (objc-parse.c): Likewise.
6590
6591 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
6592
6593 * arm.c: Include obstack.h
6594 (minipool_obstack, minipool_startobj): Define.
6595 (arm_add_gc_roots): Initialize them.
6596 (create_fix_barrier): Use our new obstack.
6597 (push_minipool_barrier, push_minipool_fix): Likewise.
6598 (arm_reorg): Release obstack memory.
6599
6600 2000-10-13 Jakub Jelinek <jakub@redhat.com>
6601
6602 * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
6603 (prologue, exception_receiver, builtin_setjmp_receiver): New
6604 patterns.
6605 * config/sparc/sparc.h (FINALIZE_PIC): Remove.
6606 * config/sparc/sparc-protos.h (finalize_pic): Remove.
6607 (load_pic_register): New prototype.
6608 * config/sparc/sparc.c (pic_setup_code): Remove.
6609 (finalize_pic): Rename to...
6610 (load_pic_register): ...this function.
6611 Don't look for nonlocal_goto_receivers and emit pic setup code
6612 directly. Don't check current_function_uses_pic_offset_table.
6613
6614 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
6615
6616 * tree.h (struct obstack): Declare.
6617
6618 2000-10-12 Mark Mitchell <mark@codesourcery.com>
6619
6620 Remove obstacks.
6621 * Makefile.in (ggc-callbacks.o): Remove target.
6622 (flow.o): Depend on GGC_H.
6623 * alias.c (init_alias_analysis):
6624 Remove ggc_p conditionals.
6625 (end_alias_analysis): Likewise.
6626 * basic-block.h (init_flow): New function.
6627 (allocate_reg_life_data): Declare.
6628 * bb-reorder.c (function_obstack): Replace with ...
6629 (flow_obstack): ... new variable.
6630 (fixup_reorder_chain): Use it.
6631 * c-decl.c (ggc_p): Remove.
6632 (caller-save.c): Don't call oballoc/obfree.
6633 * combine.c (struct
6634 undobuf): Remove storage.
6635 (try_combine): Don't call oballoc.
6636 (undo_all): Don't call obfree.
6637 * cse.c (insert): Use xmalloc, not
6638 oballoc.
6639 (cse_main): Adjust accordingly.
6640 * dwarf2out.c (save_rtx): Remove
6641 obstack code.
6642 (dwarf2out_init): Remove ggc_p conditionals.
6643 * emit-rtl.c (rtl_obstack): Remove.
6644 (gen_rtx_CONST_INT): Remove ggc_p conditionals.
6645 (make_insn_raw): Likewise.
6646 (emit_insn_before): Likewise.
6647 (emit_insn_after): Likewise.
6648 (emit_insn): Likewise.
6649 (gen_sequence): Likewise.
6650 (copy_insn_1): Remove handling of `b' RTL components.
6651 (init_emit_once): Remove ggc_p conditionals.
6652 * except.c (create_rethrow_ref): Don't fool with obstacks.
6653 (add_partial_entry): Likewise.
6654 (call_get_eh_context): Likewise.
6655 (begin_protect_partials): Likewise.
6656 (protect_with_terminate): Likewise.
6657 * explow.c
6658 (plus_constant_wide): Likewise.
6659 * expr.c (init_expr_once):
6660 Likewise.
6661 (emit_block_move): Likewise.
6662 (clear_storage): Likewise.
6663 (expand_expr): Likewise.
6664 * flow.c (function_obstack): Remove.
6665 (flow_obstack): New variable.
6666 (flow_firstobj): Likewise.
6667 (create_base_block): Use the flow_obstack.
6668 (split_block): Likewise.
6669 (split_edge): Likewise.
6670 (calculate_global_regs_live): Likewise.
6671 (allocate_bb_life_data): Make it static. Likewiwse.
6672 (init_flow): New function.
6673 (size_int_type_wide): Remove ggc_p conditionals.
6674 * function.c
6675 (push_function_context_to): Don't call save_tree_status.
6676 (pop_function_context_from): Or restore_tree_status.
6677 (assign_stack_local_1): Don't call push_obstacks.
6678 (find_fixup_replacement): Use xmalloc.
6679 (fixup_var_refs_insns): Free the storage.
6680 (insns_for_mem_walk): Don't mess with obstacks.
6681 (instantiate_decls): Likewise.
6682 (trampoline_address): Likewise.
6683 (expand_function_end): Likewise.
6684 * function.h (sturct function):
6685 Remove obstack-related variables.
6686 (save_tree_status): Don't declare.
6687 (restore_tree_status): Likewise.
6688 * gcse.c (compute_can_copy):
6689 Don't call oballoc/obfree.
6690 * genattrtab.c (operate_exp): Remove
6691 ggc_p conditionals.
6692 (simplify_cond): Likewise.
6693 (simplify_test_exp): Don't mess with obstacks.
6694 (optimize_attrs): Likewise.
6695 * gengenrtl.c (gendef): Don't include
6696 ggc_p conditionals.
6697 * ggc-callbacks.c (ggc_p): Remove.
6698 * ggc-none.c (ggc_p): Remove.
6699 * ggc.h (ggc_p): Don't declare.
6700 * integrate.c (save_for_inline): Don't mess with obstacks.
6701 (integrate_decl_tree): Likewise.
6702 (output_inline_function): Likewise.
6703 * lists.c
6704 (init_EXPR_INSN_LIST_cache): Likewise.
6705 * loop.c (temp_obstack):
6706 Remove.
6707 (rtl_obstack): Likewise.
6708 (init_loop): Don't mess with obstacks.
6709 (reg_address_cost): Free BIVs and GIVs.
6710 (check_insns_for_bivs): Use xmalloc, not oballoc.
6711 (find_mem_givs): Likewise.
6712 (record_biv): Likewise.
6713 (general_induction_var): Likewise.
6714 (product_cheap_p): Likewse.
6715 * optabs.c (init_one_libfunc): Remove
6716 ggc_p conditional.
6717 * print-tree.c (debug_tree): Don't use
6718 oballoc/obfree.
6719 (print_node): Likewise.
6720 * profile.c (output_func_start_profiler):
6721 Remove call to temporary_allocation.
6722 * reload1.c
6723 (eliminate_regs_in_insn): Don't mess with obstacks.
6724 * resource.c
6725 (mark_target_live_regs): Use xmalloc.
6726 (free_resource_info): Free the memory.
6727 * rtl.c (rtl_obstack):
6728 Remove.
6729 (rtvec_alloc): Don't mess with obstacks.
6730 (rtx_alloc): Likewise.
6731 (rtx_free): Remove.
6732 (copy_rtx): Don't handle `b' cases.
6733 (read_rtx): Use a local rtl_obstack.
6734 * rtl.h (oballoc): Remove.
6735 (obfree): Likewise.
6736 (pop_obstacks): Likewise.
6737 (push_obstacks): Likewise.
6738 (allocate_bb_life_data): Likewise.
6739 (allocate_reg_life_data): Likewise.
6740 (rtx_free): Likewise.
6741 * sdbout.c (sdbout_queue_anonymous_type):
6742 Use tree_cons, not saveable_tree_cons.
6743 * simplify-rtx.c
6744 (cselib_init): Don't mess with obstacks.
6745 * stmt.c
6746 (mark_block_nesting): Mark the label_chain.
6747 (epxand_label): Use ggc_alloc, not oballoc.
6748 (clear_last_expr): Don't mess with obstacks.
6749 (expand_decl_cleanup): Likewise.
6750 (expand_dcc_cleanup): Likewise.
6751 (expand_dhc_cleanup): Likewise.
6752 (expand_anon_union_decl): Likewise.
6753 (add_case_node): Use xmalloc, not oballoc.
6754 (free_case_nodes): New function.
6755 (expand_end_case): Call it.
6756 * stor-layout.c (layout_type): Don't
6757 mess with obstacks.
6758 (layout_type): Likewise.
6759 * toplev.c (wrapup_global_declarations):
6760 Likewise.
6761 (compile_file): Remove ggc_p conditionals.
6762 (rest_of_compilation): Call init_flow. Remove ggc_p conditionals.
6763 (decode_f_option): Remove ggc_p conditionals.
6764 * tree.c
6765 (function_maybepermanent_obstack): Remove.
6766 (maybepermanent_obstack): Likewise.
6767 (function_obstack): Likewise.
6768 (tmeporary_obstack): Likewise.
6769 (momentary_obstack): Likewise.
6770 (temp_decl_obstack): Likewise.
6771 (saveable_obstack): Likewise.
6772 (rtl_obstack): Likewise.
6773 (current_obstack): Likewise.
6774 (expression_obstack): Likewise.
6775 (struct obstack_stack): Likewise.
6776 (obstack_stack): Likewise.
6777 (obstack_stack_obstack): Likewise.
6778 (maybepermanent_firstobj): Likewise.
6779 (temporary_firstobj): Likewise.
6780 (momentary_firstobj): Likewise.
6781 (temp_decl_firstobj): Likewise.
6782 (momentary_function_firstobj): Likewise.
6783 (all_types_permanent): Likewise.
6784 (struct momentary_level): Likewise.
6785 (momentary_stack): Likewise.
6786 (init_obstacks): Remove initialization of removed obstacks.
6787 (save_tree_status): Remove.
6788 (restore_tree_status): Likewise.
6789 (temporary_allocation): Liekwise.
6790 (end_temporary_allocation): Liekwise.
6791 (resume_temporary_allocation): Likewise.
6792 (saveable_allocation): Likewise.
6793 (push_obstacks): Likewise.
6794 (push_obstacks_nochange): Likewise.
6795 (pop_obstacks): Likewise.
6796 (allocation_temporary_p): Likewise.
6797 (permanent_allocation): Likewise.
6798 (preserve_data): Likewise.
6799 (preserve_initializer): Likewise.
6800 (rtl_in_current_obstack): Likewise.
6801 (rtl_in_saveable_obstack): Likewise.
6802 (oballoc): Likewise.
6803 (obfree): Likewise.
6804 (savealloc): Likewise.
6805 (expralloc): Likewise.
6806 (print_obstack_name): Likewise.
6807 (debug_obstack): Likewise.
6808 (object_permanent_p): Likewise.
6809 (push_momentary): Likewise.
6810 (perserve_momentary): Likewise.
6811 (clear_momentary): Likewise.
6812 (pop_momentary): Likewise.
6813 (pop_momentary_nofree): Likewise.
6814 (suspend_momentary): Likewise.
6815 (resume_momentary): Likewise.
6816 (make_node): Don't set TREE_PERMANENT.
6817 (copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK.
6818 Don't set TREE_PERMANENT.
6819 (get_identifier): Remove ggc_p conditionals.
6820 (build_string): Likewise.
6821 (make_tree_vec): Likewise.
6822 (build_decl_list): Remove.
6823 (build_expr_list): Likewise.
6824 (tree_cons): Remove ggc_p conditionals.
6825 (decl_tree_cons): Remove.
6826 (expr_tree_cons): Likewise.
6827 (perm_tree_cons): Likewise.
6828 (temp_tree_cons): Likewise.
6829 (saveable_tree_cons): Likewise.
6830 (build1): Remove ggc_p conditionals.
6831 (build_parse_node): Likewise.
6832 (build_type_attribute_variant): Don't mess with obstacks.
6833 (build_type_copy): Likewise.
6834 (type_hash_canon): Likewise.
6835 (build_pointer_type): Likewise.
6836 (build_reference_type): Likewise.
6837 (build_index_type): Likewise.
6838 (build_range_type): Likewise.
6839 (dump_tree_statistics): Don't print obstack information.
6840 * tree.h
6841 (struct tree_common): Remove permanent_flag.
6842 (TREE_PERMANENT): Remove.
6843 (TREE_SET_PERMANENT): Likewise.
6844 (TYPE_OBSTACK): Likewise.
6845 (struct tree_type): Remove obstack.
6846 (oballoc): Remove.
6847 (savealloc): Likewise.
6848 (build_decl_list): Likewise.
6849 (build_expr_list): Likewise.
6850 (perm_tree_cons): Likewise.
6851 (temp_tree_cons): Likewise.
6852 (saveable_tree_cons): Likewise.
6853 (decl_tree_cons): Likewise.
6854 (expr_tree_cons): Likewise.
6855 (suspend_momentary): Likewise.
6856 (allocation_temporary_p): Likewise.
6857 (resume_momentary): Likewise.
6858 (push_obstacks_nochange): Likewise.
6859 (permanent_allocation): Likewise.
6860 (push_momentary): Likewise.
6861 (clear_momentary): Likewise.
6862 (pop_momentary): Likewise.
6863 (end_temporary_allocation): Likewise.
6864 (pop_obstacks): Likewise.
6865 (push_obstacks): Likewise.
6866 (pop_momentary_nofree): LIkewise.
6867 (preserve_momentary): Likewise.
6868 (saveable_allocation): Likewise.
6869 (temporary_allocation): Likewise.
6870 (resume_temporary_allocation): Likewise.
6871 (perserve_initializer): Likewise.
6872 (debug_obstack): Likewise.
6873 (rtl_in_current_obstack): Likewise.
6874 (rtl_in_saveable_obstack): Likewise.
6875 (obfree): Likewise.
6876 * varasm.c (current_obstack): Remove.
6877 (saveable_obstack): Remove.
6878 (rtl_obstack): Remove.
6879 (immed_double_const): Don't mess with obstacks.
6880 (immed_real_cons): Likewise.
6881 (output_constant_def): Likewise.
6882 (init_varasm_status): Use xcalloc.
6883 (mark_pool_constant): Mark the pool constant itself.
6884 (free_varasm_status): Free memory.
6885 (decode_rtx_const): Call bzero directly, rather than expanding it
6886 inline.
6887 (record_rtx_const): Don't mess with obstacks.
6888 (force_const_mem): Likewise.
6889 * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
6890 conditionals.
6891 (aof_pic_entry): Likewise.
6892 * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
6893 * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
6894 * config/pa/pa.c (saveable_obstack): Remove.
6895 (rtl_obstack): Likewise.
6896 (current_obstack): Likewise.
6897 (output_call): Don't mess with obstacks.
6898 (hppa_encode_label): Remove ggc_p conditionals.
6899 * config/romp/romp.c (get_symref): Don't mess with obstacks.
6900 * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
6901 (rs6000_encode_section_info): Likewise.
6902 * config/sh/sh.c (get_fpscr_rtx): Likewise.
6903
6904 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka <jh@suse.cz>
6905
6906 * i386.md (adddi3, subdi3 splitters): Update for new pattern.
6907 (addsi3_cc, addqi3_cc, subsi3_cc): Remove
6908 (addsi3_carry): Canonicalize.
6909 (addqi_5): Remove '*'.
6910 (sbb pattern): Canonicalize.
6911
6912 * i386.md (cmp to inc/add peep2): New.
6913
6914 2000-10-12 Richard Earnshaw <rearnsha@arm.com>
6915
6916 * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
6917 the exit block.
6918
6919 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
6920
6921 * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
6922 * README.TRAD, TESTS.FLUNK: Remove.
6923
6924 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
6925
6926 * c-common.c (decl_attributes): Don't allow strftime formats with
6927 first_arg_num nonzero.
6928 (check_format_info): Set wanted_type and wanted_type_name to zero
6929 before they are possibly assigned and used.
6930
6931 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
6932
6933 * c-common.c (scanf_flag_specs): Add flags ' and I.
6934 (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
6935 or the ^ and # flags together.
6936 (scan_char_table): Handle the ' and I flags.
6937 (format_types): Add ' and I flags for scanf.
6938
6939 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
6940
6941 * c-common.c (print_char_table): Use the unpromoted type for
6942 lengths "h" and "hh" with conversions dioxXu.
6943 (check_format_types): Apply the default argument promotions where
6944 the wanted type is not a pointer target.
6945
6946 2000-10-11 Michael Meeks <mmeeks@gnu.org>
6947 Joseph S. Myers <jsm28@cam.ac.uk>
6948
6949 * c-typeck.c (check_modify_expr): New function.
6950 (build_modify_expr): Call it if warn_sequence_point.
6951 * c-decl.c (warn_sequence_point): New variable.
6952 (c_decode_option): Handle -Wsequence-point and
6953 -Wno-sequence-point. Enable -Wsequence-point as part of -Wall.
6954 * c-tree.h (warn_sequence_point): Declare.
6955 * invoke.texi (-Wsequence-point): Document.
6956 * toplev.c (documented_lang_options): Add -Wsequence-point and
6957 -Wno-sequence-point.
6958 Original work by Michael Meeks, 16 Jun 1998.
6959
6960 Wed Oct 11 06:15:41 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6961
6962 * tree.c (get_narrower): Don't look at precision of field if
6963 not laid out yet.
6964
6965 Tue Oct 10 23:14:33 2000 Denis Chertykov <denisc@overta.ru>
6966
6967 * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
6968 declaration for data with "progmem" attribute.
6969
6970 2000-10-09 Marek Michalkiewicz <marekm@linux.org.pl>
6971
6972 * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
6973 Correct insn length if shift count is a memory operand.
6974 * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
6975 (*iorhi3_clobber): Change lo8 to hi8.
6976 (zero_extendhisi2): Change %B0 to %A1.
6977 (ashlhi3, ashrhi3): Correct insn length.
6978 (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
6979 from "clobber" to "set_n" in some alternatives.
6980
6981 2000-10-10 Jakub Jelinek <jakub@redhat.com>
6982
6983 * reload1.c (calculate_needs_all_insns): If deleting an instruction,
6984 remove its insn_chain structure as well.
6985
6986 2000-10-09 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6987
6988 * dbxout.c (dbxout_source_line): Remove extra tab.
6989
6990 2000-10-09 Hans-Peter Nilsson <hp@bitrange.com>
6991
6992 * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
6993
6994 2000-10-09 Richard Henderson <rth@cygnus.com>
6995
6996 * Makefile.in (LANG_LIB2FUNCS): Remove.
6997 (LIB2FUNCS): Remove _pure.
6998 (LIB2ADD): Remove LANG_LIB2FUNCS.
6999 (stage_a): Don't set LANG_LIB2FUNCS.
7000 * libgcc2.c (__terminate): Mark noreturn.
7001 (__pure_virtual): Remove.
7002 * mklibgcc.in: Remove LIB2ADD .txt processing.
7003
7004 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
7005
7006 * arm.md (push_multi): Revert unintended change.
7007
7008 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
7009
7010 * arm.c: Miscellaneous white space and comment clean-ups. No
7011 functional change.
7012 * arm.md: Likewise.
7013
7014 2000-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7015
7016 * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
7017 STRING_CST by calling combine_strings.
7018
7019 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
7020
7021 * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
7022 (thumb_output_move_mem_multiple): Support new insn format.
7023 * arm.md (movmem12b): Use SSA compatible format.
7024 (movmem8b): Likewise.
7025
7026 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
7027
7028 * arm.md (predicable): New attribute, default to "no".
7029 (all patterns): Mark as predicable if appropriate.
7030 (conditional execution splits): Split using predication format.
7031 (define_cond_exec): Define.
7032 * arm.c (arm_print_operand): handle insn predicate.
7033
7034 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7035
7036 * README.NS32K: Remove file.
7037
7038 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7039
7040 * README-bugs: Remove file.
7041
7042 2000-10-08 Philipp Thomas <pthomas@suse.de>
7043 * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
7044 for test.
7045 * configure: Rebuilt.
7046
7047 2000-10-08 Philipp Thomas <pthomas@suse.de>
7048 * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
7049 disable catalog building if no suitable program was found.
7050 Move warning message from here
7051 (AM_GNU_GETTEXT): To here.
7052 * configure: Rebuilt.
7053
7054 2000-10-08 Philipp Thomas <pthomas@suse.de>
7055 * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
7056 different cache variables.
7057 (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
7058 uses different cache variables.
7059 (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
7060 * configure: Regenerated.
7061
7062 2000-10-08 Richard Henderson <rth@cygnus.com>
7063
7064 * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
7065 * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
7066 * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
7067 Use SHLIB_EXT.
7068
7069 * config/t-linux (SHLIB_EXT): New.
7070 (SHLIB_LINK): Use the entire build command, with substitutions.
7071 (SHLIB_LIBS): Remove.
7072 * config/alpha/t-osf4: Likewise.
7073 * config/mips/t-iris6: Likewise.
7074 * config/sparc/t-sol2: Likewise, but move shlib stuff...
7075 * config/sparc/t-slibgcc-sld: ...here.
7076 * config/sparc/t-slibgcc: New file.
7077
7078 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
7079
7080 * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
7081 * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
7082 CTI_UINTMAX_TYPE.
7083 (intmax_type_node, uintmax_type_node): Define.
7084 * c-common.c (decl_attributes): If pedantic, warn if `mode'
7085 attributes create a type wider than intmax_t.
7086 (T_IM, T_UIM): Define properly.
7087 * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
7088 defined.
7089 (init_decl_processing): Initialize intmax_type_node and
7090 uintmax_type_node.
7091 * c-lex.c (lex_number): When pedantic and warning for integer
7092 constants that are too large, in C99 mode warn for those that have
7093 a type wider than long long.
7094
7095 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
7096
7097 * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
7098 FMT_FLAG_FANCY_PERCENT_OK): Define.
7099 (format_char_info): Add flag "4" to comment.
7100 (format_flag_spec, format_flag_pair): New structures.
7101 (format_kind_info): Add additional fields to control format
7102 checking.
7103 (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
7104 scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
7105 arrays.
7106 (time_char_table): Use "4" flag to handle %Ey.
7107 (format_types): Add entries for new fields.
7108 (get_flag_spec): New function.
7109 (check_format_info): Increase size of flag_chars[] to 256.
7110 Control format checking using the new fields of a format_kind_info
7111 and the new tables; remove all conditionals on printf_format_type,
7112 scanf_format_type or strftime_format_type. Handle all details of
7113 bad combinations of flags (including width, precision and strftime
7114 modifiers) through data rather than ad hoc code. Handle all
7115 details of standard versions in which flags appeared through
7116 data. Use the "4" flag.
7117
7118 2000-10-07 Will Cohen <wcohen@redhat.com>, Kazu Hirata <kazu@hxi.com>
7119
7120 * config/h8300/h8300.md: Remove the memory alternative and correct
7121 the insn lengths in the templates for sign extention and zero
7122 extention.
7123
7124 2000-10-07 Richard Henderson <rth@cygnus.com>
7125
7126 * calls.c (expand_call): Disallow sibcalls to noreturn functions.
7127 * flow.c (make_edges): Revert last change.
7128
7129 * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
7130 TREE_THIS_VOLATILE.
7131 * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
7132
7133 2000-10-06 David O'Brien <obrien@dragon.nuxi.com>
7134
7135 * config/alpha/elf.h: Standardize the formatting.
7136
7137 2000-10-06 David O'Brien <obrien@FreeBSD.org>
7138
7139 * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
7140 #undef.
7141
7142 2000-10-06 Richard Henderson <rth@cygnus.com>
7143
7144 * function.c (diddle_return_value): Examine
7145 current_function_return_rtx instead of the DECL_RESULT.
7146 (expand_function_end): Handle reloading DECL_RESULT from memory
7147 into a hard register. Query promote_mode for sign of mismatched
7148 modes.
7149
7150 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
7151
7152 * haifa-sched.c (schedule_insns): Fix typo in freeing
7153 forward_dependency_cache.
7154
7155 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
7156
7157 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
7158 `TARGET_SH2' as a condition.
7159
7160 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
7161
7162 * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
7163 forward_dependency_cache): New variables.
7164 (add_dependence, remove_dependence): Use anti_dependency_cache and
7165 output_dependency_cache.
7166 (compute_block_forward_dependences): Use forward_dependency_cache.
7167 (schedule_insns): Allocate and free memory for anti/output/forward
7168 dependencies caches.
7169
7170 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
7171
7172 * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
7173 `! TARGET_SH1'. Reindent.
7174
7175 2000-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7176
7177 * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
7178 Move functions from here ...
7179
7180 * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
7181 ... to here.
7182 (c_expand_builtin): New function.
7183 (init_function_format_info): Don't set `check_function_format_ptr'.
7184 (c_common_nodes_and_builtins): Set built_in_class type for
7185 printf/__builtin_printf to BUILT_IN_FRONTEND.
7186 (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
7187
7188 * c-common.h (build_function_call): Declare.
7189
7190 * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
7191 to `lang_expand_expr' rather than `expand_builtin'.
7192
7193 * tree.c (check_function_format_ptr): Delete.
7194
7195 * tree.h (check_function_format_ptr): Likewise.
7196
7197 2000-10-06 Hans-Peter Nilsson <hp@bitrange.com>
7198
7199 * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
7200 DW_OP_bregx when cfa->reg > 31.
7201
7202 * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
7203 break.
7204
7205 2000-10-05 Richard Henderson <rth@cygnus.com>
7206
7207 * c-decl.c (warn_missing_noreturn): Remove.
7208 (c_expand_body): Don't set or check can_reach_end.
7209 * c-tree.h (warn_missing_noreturn): Move ...
7210 * flags.h: ... here.
7211 (can_reach_end): Remove.
7212 * flow.c (check_function_return_warnings): New.
7213 (make_edges): No edge to exit for noreturn sibcalls.
7214 * function.c (expand_function_end): Save the return value
7215 clobber instruction.
7216 (mark_function_status): Mark it.
7217 * function.h (struct function): Add x_clobber_return_insn.
7218 * jump.c (can_reach_end): Remove.
7219 (calculate_can_reach_end): Remove.
7220 (jump_optimize_1): Don't call it.
7221 * output.h (check_function_return_warnings): Declare.
7222 * toplev.c (warn_missing_noreturn): Move from c-decl.c
7223 (rest_of_compilation): Call check_function_return_warnings.
7224
7225 2000-10-05 Richard Henderson <rth@cygnus.com>
7226
7227 * Makefile.in (NM_FOR_TARGET): New.
7228 (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
7229 (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
7230 * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map. Depend the
7231 shared library build on that and EXTRA_MULTILIB_PARTS.
7232 * mkmap-flat.awk: New file.
7233 * mkmap-symver.awk: New file.
7234 * libgcc-std.ver: New file.
7235 * config/libgcc-glibc.ver: New file.
7236 * config/ia64/libgcc-ia64.ver: New file.
7237 * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
7238 (SHLIB_LINK): Add --version-script.
7239 * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
7240 * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
7241 * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
7242 (SHLIB_LINK): Add -M.
7243
7244 2000-10-05 Richard Henderson <rth@cygnus.com>
7245
7246 * Makefile.in (LIB2FUNCS): Add _clz.
7247 * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
7248 (__clz_tab): Put in its own unit, non-static.
7249 * libgcc2.h: Always include longlong.h.
7250
7251 * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
7252 a zero instead of -1.
7253 (count_trailing_zeros): Likewise.
7254
7255 2000-10-05 Richard Henderson <rth@cygnus.com>
7256
7257 * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
7258 when second op1 is const0_rtx. Validate op0 as a register.
7259 * config/alpha/alpha.md (setcc_internal): Don't allow constants
7260 in the first argument of the compare.
7261 (setcc_swapped_internal): Likewise.
7262 (setne_internal): Likewise.
7263
7264 2000-10-05 Geoff Keating <geoffk@cygnus.com>
7265
7266 * tree.c (tree_size): New function split out of copy_node.
7267 (make_node): Remove obstack handling. Use tree_size.
7268 (copy_node): Use tree_size.
7269 * tree.h: Prototype tree_size.
7270
7271 2000-10-05 Richard Henderson <rth@cygnus.com>
7272
7273 * diagnostic.c (output_format): Add missing break.
7274
7275 2000-10-05 Jim Wilson <wilson@cygnus.com>
7276
7277 * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
7278 SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
7279 sequence insn to INSN, and delete last sequence insn.
7280
7281 2000-10-05 Phil Edwards <pme@gcc.gnu.org>
7282
7283 * gcc.c (main): Include generated configargs.h header
7284 and use arguments in '-v' output.
7285
7286 Thu Oct 5 16:16:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7287
7288 * gcc.c: Move data on prefixes forward in file and reorganize.
7289 (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
7290 Always define, but make null if no value.
7291 (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
7292 and "md_startfile_prefix_1".
7293 (main): Check whether md_exec_prefix and the others are the
7294 null string rather than whether the macro is defined.
7295
7296 Thu Oct 5 19:04:18 2000 J"orn Rennecke <amylaar@redhat.co.uk>
7297
7298 * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
7299 from PSImode to SImode.
7300
7301 2000-10-05 Jakub Jelinek <jakub@redhat.com>
7302
7303 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
7304 from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
7305 * dwarf2out.c (add_const_value_attribute): Divide by 4, not
7306 sizeof(long).
7307
7308 Thu Oct 5 09:31:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7309
7310 * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
7311 negation in proper type.a
7312
7313 2000-10-04 Richard Henderson <rth@cygnus.com>
7314
7315 * configure.in (enable-shared): New.
7316 * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
7317 (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
7318 * mklibgcc.in: Use them to link shared a libgcc.
7319 * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
7320 * config/alpha/t-ieee (SHLIB_MULTILIB): New.
7321 * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
7322 * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
7323
7324 * configure.in (alpha-osf*): Use t-osf and x-osf.
7325 * config/alpha/t-osf: New file.
7326 * config/alpha/t-osf4: New file.
7327 * config/alpha/x-osf: New file.
7328 * config/alpha/x-alpha: Remove file.
7329
7330 2000-10-04 Will Cohen <wcohen@redhat.com>
7331
7332 * c-typeck.c (process_init_element): Added warning for zero-length
7333 array.
7334
7335 * extend.texi (Zero Length): State that static initializers for
7336 zero-length arrays are not allowed.
7337
7338 Mon Oct 2 14:50:14 MET DST 2000 Jan Hubicka <jh@suse.cz>
7339
7340 * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
7341 to come last.
7342
7343 2000-10-03 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7344
7345 * config/float-c4x.h: New.
7346 * configure.in (c4x-*): Set float_format to c4x.
7347 * configure: Regenerate.
7348
7349 2000-10-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7350
7351 * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
7352 compilation for solaris versions 2.7 and greater.
7353
7354 2000-10-02 Marc Espie <espie@openbsd.org>
7355
7356 * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
7357 instead of redefining from scratch.
7358
7359 2000-10-02 David O'Brien <obrien@dragon.nuxi.com>
7360
7361 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
7362
7363 2000-10-01 Mark Mitchell <mark@codesourcery.com>
7364
7365 * config/ns32k/genix.h: Remove.
7366 * config/ns32k/x-genix: Likewise.
7367 * config/ns32k/xm-genix.h: Likewise.
7368 * config/fx80: Remove all filee in directory.
7369 * config/pyr: Likewise.
7370 * config/tahoe: Likewise.
7371 * config/gmicro: Likewise.
7372 * config/spur: Likewise.
7373 * configure.in: Remove configury bits for above targets.
7374 * configure: Regenerated.
7375
7376 * configure.in: Don't configure chill by default.
7377 * configure: Regenerated.
7378
7379 * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
7380 (lang_mark_false_label_stack): Remove.
7381 * c-lex.c (init_c_lex): Add file_info_tree as GC root. Allocate
7382 <top level> string in GC area.
7383 (mark_splay_tree_node): New function.
7384 (mark_splay_tree): Likewise.
7385 * except.c (mark_eh_status): Only call lang_mark_false_label_stack
7386 if it exists.
7387 * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
7388 * ggc-common.c (lang_mark_false_label_stack): Change type.
7389 * ggc.h (ggc_alloc_string): Add comment.
7390 (ggc_strdup): New function.
7391
7392 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru>
7393
7394 * config/avr/avr.h (BRANCH_COST): Define as 0.
7395
7396 * config/pdp11/pdp11.c: #include "tree.h" added.
7397
7398 2000-09-30 Marek Michalkiewicz <marekm@linux.org.pl>
7399
7400 * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
7401 ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
7402 with known shift count.
7403 * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
7404 New alternative for shift count 2 with no scratch register.
7405 (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
7406 "set_n" for shift counts 1 and 2.
7407
7408 2000-09-30 Geoff Keating <geoffk@cygnus.com>
7409
7410 * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE. Calculate
7411 the mask value from the individual SET operations.
7412 (return_internal_si): Move the USE after the RETURN.
7413 (return_internal_di): Likewise.
7414 (return_and_restore_fpregs_si): Likewise.
7415 (return_and_restore_fpregs_di): Likewise.
7416 (return_eh_si): Likewise.
7417 (return_eh_di): Likewise.
7418 * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
7419 or check, the USE.
7420 (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
7421 Don't generate a PARALLEL around a single operation movsi_to_cr.
7422 Generate the RETURN first in any PARALLELs.
7423
7424 * rtlanal.c (single_set_1): Use fatal_insn to display the
7425 invalid insn. Check for more cases when a USE or CLOBBER occurs
7426 before a SET.
7427 * Makefile.in: Update dependencies for rtlanal.o.
7428
7429 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
7430
7431 * i386.c: Move include of "config.h" to before that of <setjmp.h>.
7432
7433 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
7434
7435 * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
7436 Consistently use @email for formatting email addresses.
7437
7438 2000-09-29 Richard Henderson <rth@cygnus.com>
7439
7440 * cse.c (notreg_cost): New argument outer.
7441 (COST): Pass in SET to notreg_cost
7442 (COST_IN): New.
7443 (fold_rtx): Use COST_IN. Prefer constants when costs
7444 are the same.
7445
7446 2000-09-29 David Edelsohn <edelsohn@gnu.org>
7447
7448 * fixinc/inclhack.def (broken_cabs): Generalize regex.
7449 * fixinc/fixincl.x: Regenerate.
7450
7451 2000-09-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7452
7453 * loop.c (check_final_value): A GIV is not replaceable if used
7454 before set.
7455
7456 Fri Sep 29 10:04:12 2000 Jeffrey A Law (law@cygnus.com)
7457
7458 * version.c: Bump to gcc-2.97.
7459
7460 Frs Sep 29 13:37:59 MET DST 2000 Jan Hubicka <jh@suse.cz>
7461
7462 * final.c (final_scan_insn): Remove extra extract_insn call;
7463 Use caching for constrain_operands.
7464 (cleanup_subreg_operands): Use caching for extract_insn.
7465 * recog.c (constrain_operands_cached): New.
7466 * recog.h (constrain_operands_cached): Declare.
7467 * i386.c (ix86_attr_length_immediate_default,
7468 ix86_attr_length_address_default, ix86_agi_dependant): Cache
7469 extract_insn call.
7470
7471 * recog.c (asm_noperands): Tweak.
7472 (extract_insn): Do not call asm_noperads for non-asm instructions.
7473
7474 Fri Sep 29 13:20:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
7475
7476 * recog.c (recog_memoized): Rename to recog_memoized_1.
7477 * recog.h (recog_memoized): Rename to recog_memoized_1.
7478 (recog_memoized): New macro.
7479 * rtl.h (single_set): Rename to single_set_1
7480 (single_set): New macro.
7481 * rtlanal.c (single_set): Rename to single_set_1; expect clobbers
7482 to be last.
7483
7484 * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
7485 Do not use match_dup of input operands at outputs.
7486 Use register_operand for memory expression.
7487 (rep_movsi): Put use last, canonicalize.
7488 Use register_operand for memory expression.
7489 (rep_movqi): Put use last.
7490 Use register_operand for memory expression.
7491 (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
7492 of input operands at outputs. Use register_operand for memory
7493 expression.
7494 (rep_stossi): Put use last; canonicalize; fix match_dup in
7495 the address expression
7496 (rep_stosqi): Likewise.
7497 (memcmp expander): Update calls.
7498 (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
7499 the clobbers.
7500
7501 * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
7502 VOIDmode.
7503 (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
7504
7505 2000-09-28 David O'Brien <obrien@FreeBSD.org>
7506
7507 * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
7508 Contains the old contents of config/i386/freebsd.h
7509 * config/i386/freebsd.h: Now the ELF rather than a.out config file.
7510 Contains the old contents of config/i386/freebsd-elf.h
7511 * config/i386/freebsd-elf.h: Retire this file -- contents moved to
7512 config/i386/freebsd.h.
7513 * configure.in: Adjust for above changes.
7514 * po/POTFILES.in: Likewise.
7515 * po/en_GB.po: Likewise.
7516 * po/gcc.pot: Likewise.
7517 * configure: Rebuilt.
7518
7519 2000-09-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7520
7521 * doloop.c (doloop_modify): Prevent delete_insn() from
7522 deleting too much. Prefer loop->top over loop->start as
7523 target for the new JUMP insn.
7524 (doloop_valid_p): Ignore loop with exit_count != 0.
7525
7526 2000-09-28 Philipp Thomas <pthomas@suse.de>
7527
7528 * invoke.texi (i386 Options): Add athlon to table of possible
7529 choices for -mcpu=.
7530
7531 2000-09-28 Gabriel Dos Reis <gdr@codesourcery.com>
7532
7533 * diagnostic.h (output_clear_message_text): New function.
7534 (output_message_text): New macro.
7535
7536 * diagnostic.c (clear_text_info): Rename to
7537 output_clear_message_text.
7538 (output_clear): Adjust.
7539 (output_finish): Rename to output_finalize_message. Tweek.
7540 (output_to_stream): Adjust.
7541
7542 2000-09-28 Neil Booth <neilb@earthling.net>
7543
7544 * cpperror.c (_cpp_begin_message): Do the test for suppression
7545 of warnings and pedantic warnings before the "is a warning an
7546 error" tests.
7547 * cppinit.c (cpp_handle_option): Remove surplus \n.
7548 * cpplex.c (ON_REST_ARG): Delete.
7549 (skip_block_comment): Initialise prevc.
7550 (parse_args): Improve error messages.
7551 (maybe_paste_with_next): Use CONTEXT_VARARGS rather
7552 than ON_REST_ARG.
7553 * cpplib.c (cpp_push_buffer): Fix grammar in message.
7554 * cppmain.c (main): Set callbacks for #ident and #pragma
7555 only if no_output option is false.
7556 (do_pragma_implementation): Only call the #pragma handler
7557 if it is set in the cpp_reader structure.
7558
7559 Wed Sep 27 14:00:07 2000 Donald Lindsay <dlindsay@cygnus.com>
7560
7561 * integrate.c (copy_insn_list): if an ignored return value
7562 is being clobbered, skip cloning that into the inline copy.
7563
7564 2000-09-27 Joseph S. Myers <jsm28@cam.ac.uk>
7565
7566 * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
7567 use @uref for formatting URLs.
7568
7569 2000-09-27 Mark Elbrecht <snowball3@bigfoot.com>
7570
7571 * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
7572 name and prefix.
7573
7574 Tue 26-Sep-2000 18:25:38 BST Neil Booth <neilb@earthling.net>
7575
7576 * gcc.c (cpp_options): Add spec for -ftabstop=.
7577 (invoke_as): New spec that handles invoking as.
7578 Update specs to handle -save-temps and -traditional.
7579 * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
7580 Use invoke_as.
7581 * cp/lang-specs.h, objc/lang-specs.h: Update to use
7582 invoke_as, and handle -save-temps and -traditional (if
7583 appropriate).
7584
7585 2000-09-26 Jakub Jelinek <jakub@redhat.com>
7586
7587 * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
7588 op0 is a SUBREG.
7589 (function_arg_slotno): Accept TImode/CTImode.
7590 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
7591 to UNITS_PER_WORD.
7592
7593 2000-09-26 Michael Hayes <mhayes@cygnus.com>
7594
7595 * flow.c (flow_loop_pre_header_scan): Punt if loop enters
7596 from entry block.
7597
7598 2000-09-25 Jim Wilson <wilson@cygnus.com>
7599
7600 * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
7601 (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
7602 (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
7603 (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
7604
7605 Tue 26-Sep-2000 00:16:22 BST Neil Booth <neilb@earthling.net>
7606
7607 * cpplex.c (parse_args): Don't set VOID_REST flag.
7608 (CONTEXT_VARARGS): New flag.
7609 (maybe_paste_with_next): Set context earlier in loop. Use
7610 it. Do varargs test with CONTEXT_VARARGS flag.
7611 (push_arg_context): Set CONTEXT_VARARGS flag if we're
7612 pushing an argument context for a varargs argument.
7613 * cpplib.h (VOID_REST): Delete.
7614 * gcc.dg/cpp/vararg1.c: Add test case.
7615
7616 2000-09-25 Branko Cibej <branko.cibej@hermes.si>
7617
7618 * flags.h: Declare warning flag warn_system_headers.
7619 * toplev.c: Define it.
7620 (W_options): Add option -Wsystem-headers.
7621 * diagnostic.c (count_error): Test warn_system_headers.
7622 * invoke.texi: Add description for -Wsystem-headers.
7623 * cpplib.h (cpp_options): New member warn_system_headers.
7624 * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
7625 CPP_IN_SYSTEM_HEADER.
7626 * cpplib.c (do_import, do_pragma_once): Likewise.
7627 * cpperror.c (_cpp_begin_message): Test warn_system_headers
7628 and CPP_IN_SYSTEM_HEADER.
7629 * cppinit.c (handle_option): Recognize -Wsystem_headers.
7630 (print_help): Describe -Wsystem_headers.
7631 * cpplex.c (lex_line): Reorganize condition so that warnings
7632 about C++ comments in system headers can be enabled. Remove
7633 label do_line_comment.
7634
7635 Mon 25-Sep-2000 23:38:27 BST Neil Booth <neilb@earthling.net>
7636
7637 * cpplex.c (save_comment): Only store the initial '/'
7638 now.
7639 (lex_token): Combine handling of the two comment types.
7640 Pass everything but the initial '/' to save_comment.
7641
7642 Mon 25-Sep-2000 23:31:45 BST Neil Booth <neilb@earthling.net>
7643
7644 * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
7645 _cpp_can_paste): New library-internal prototypes.
7646 * cpplex.c (dump_param_spelling, output_line_command,
7647 output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
7648 cpp_printf, cpp_output_list): Move to cppoutput.c.
7649 (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
7650 * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
7651 cppoutput.c.
7652 * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
7653 dump_param_spelling, output_line_command, cpp_scan_buffer,
7654 cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
7655 from elsewhere.
7656 * Makefile.in: Add cppoutput.c.
7657 * po/POTFILES.in: Add cppoutput.c.
7658
7659 2000-09-25 Richard Henderson <rth@cygnus.com>
7660
7661 * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
7662 * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
7663 split until after reload.
7664 (rotlsi3, rotldi3): New.
7665
7666 2000-09-25 Gabriel Dos Reis <gdr@codesourcery.com>
7667
7668 * diagnostic.c (output_last_position): Define.
7669 (set_real_maximum_length): Tweek.
7670 * diagnostic.h (output_last_position): Declare.
7671
7672 2000-09-25 Kazu Hirata <kazu@hxi.com>
7673
7674 * config/i386/i386.c: Fix formatting.
7675
7676 2000-09-24 Alan Lehotsky <alehotsky@cygnus.com>
7677
7678 * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
7679 UNITS_PER_WORD is small.
7680
7681 2000-09-25 Joseph S. Myers <jsm28@cam.ac.uk>
7682
7683 * c-common.c (format_char_info): Add flags2; update comments.
7684 (print_char_table, scan_char_table, time_char_table): Split some
7685 flags out into flags2.
7686 (check_format_info): Use flags2 for those flags, for identifying
7687 the initial character of a scanf scanset, and for identifying
7688 printf formats where the '0' flag is ignored with precision.
7689
7690 2000-09-25 Hans-Peter Nilsson <hp@axis.com>
7691
7692 Changes below marked "here" add TABs on either or both sides,
7693 covering start of line, up to any operand for all noted .*ASM.*_OP
7694 definitions. All callers changed.
7695 * tm.texi: Make documented *_ASM.*_OP:s include spacing
7696 (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
7697 BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
7698 ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
7699 ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
7700 Fix typos in description for LONG_LONG_TYPE_SIZE and
7701 FINI_SECTION_ASM_OP.
7702 * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
7703 why these defaults don't have leading spacing.
7704 * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
7705 * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7706 UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
7707 * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
7708 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
7709 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
7710 * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
7711 * varasm.c (ASM_STABS_OP): Here.
7712 * xcoffout.h (ASM_STABS_OP): Here.
7713 * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
7714 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
7715 INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
7716 STRING_ASM_OP): Here.
7717 * config/freebsd.h (IDENT_ASM_OP): Here.
7718 * config/linux-aout.h (SET_ASM_OP): Here.
7719 * config/linux.h (SET_ASM_OP): Here.
7720 * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7721 INT_ASM_OP): Here.
7722 * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
7723 * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
7724 * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
7725 * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7726 INT_ASM_OP): Here.
7727 * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
7728 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
7729 INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
7730 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
7731 FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
7732 * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7733 CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
7734 * config/a29k/udi.h (INT_ASM_OP): Here.
7735 * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
7736 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
7737 SET_ASM_OP): Here.
7738 * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
7739 READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7740 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7741 UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
7742 ASM_STABD_OP): Here.
7743 * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
7744 COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
7745 CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7746 BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
7747 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
7748 SIZE_ASM_OP, STRING_ASM_OP): Here.
7749 * config/alpha/vms.h (LINK_SECTION_ASM_OP,
7750 READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
7751 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
7752 * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
7753 (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
7754 * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
7755 Here.
7756 * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7757 BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
7758 * config/arm/coff.h (INT_ASM_OP): Here.
7759 * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
7760 * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
7761 * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
7762 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
7763 * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
7764 * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7765 ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
7766 STRING_ASM_OP): Here. Update documentation copy in comments.
7767 * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
7768 * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
7769 DATA_SECTION_ASM_OP): Here.
7770 * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
7771 Here.
7772 * config/convex/convex.h (TEXT_SECTION_ASM_OP,
7773 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
7774 * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7775 BSS_SECTION_ASM_OP): Here.
7776 * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7777 BSS_SECTION_ASM_OP): Here.
7778 * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7779 Here.
7780 * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
7781 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
7782 * config/h8300/h8300.h (ASM_WORD_OP): Here.
7783 * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7784 BSS_SECTION_ASM_OP): Here.
7785 * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
7786 * config/i386/bsd.h (ASM_BYTE_OP): Here.
7787 * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
7788 * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
7789 * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
7790 Here.
7791 * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
7792 * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
7793 Here.
7794 * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
7795 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7796 * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
7797 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
7798 SET_ASM_OP): Here.
7799 * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
7800 * config/i386/netbsd.h (INT_ASM_OP): Here.
7801 * config/i386/openbsd.h (INT_ASM_OP): Here.
7802 * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
7803 IDENT_ASM_OP): Here.
7804 * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
7805 ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
7806 LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
7807 SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
7808 * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
7809 SHARED_BSS_SECTION_ASM_OP): Here.
7810 * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
7811 * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
7812 DATA_SECTION_ASM_OP): Here.
7813 * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7814 CONST_SECTION_ASM_OP): Here.
7815 * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
7816 * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7817 BSS_SECTION_ASM_OP): Here.
7818 * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
7819 * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
7820 * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
7821 BSS_ASM_OP): Here, but use trailing spaces.
7822 * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
7823 DATA_SECTION_ASM_OP): Here.
7824 * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
7825 Here.
7826 * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
7827 DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
7828 * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7829 TDESC_SECTION_ASM_OP): Here.
7830 * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
7831 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7832 * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7833 Here.
7834 * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7835 BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
7836 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7837 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
7838 * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
7839 COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
7840 FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7841 SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
7842 * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
7843 * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
7844 * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
7845 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
7846 SET_ASM_OP): Here.
7847 * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
7848 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7849 * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
7850 * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
7851 * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
7852 * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
7853 * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
7854 * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7855 GLOBAL_ASM_OP): Here.
7856 * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
7857 BSS_SECTION_ASM_OP): Here.
7858 * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
7859 * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7860 ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
7861 DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
7862 SKIP_ASM_OP): Here.
7863 * config/m68k/newsgas.h (SET_ASM_OP): Here.
7864 * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
7865 FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
7866 * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
7867 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
7868 SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
7869 but use trailing spaces.
7870 * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
7871 DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
7872 FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
7873 Here.
7874 * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
7875 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
7876 * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7877 CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
7878 DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7879 IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
7880 GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
7881 BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
7882 CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
7883 SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
7884 VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7885 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
7886 ASM_BYTE_OP): Here.
7887 * config/m88k/openbsd.h (SET_ASM_OP): Here.
7888 * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7889 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
7890 * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
7891 UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
7892 DTORS_SECTION_ASM_OP): Here.
7893 * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
7894 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7895 * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
7896 BSS_SECTION_ASM_OP): Here.
7897 * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
7898 * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
7899 * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
7900 POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
7901 CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
7902 DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
7903 * config/mips/mips.c (ABICALLS_ASM_OP): Here.
7904 * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
7905 Here.
7906 * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
7907 Here.
7908 * config/mips/osfrose.h (SET_ASM_OP): Here.
7909 * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
7910 * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
7911 * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
7912 * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7913 Here.
7914 * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
7915 * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
7916 * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
7917 * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
7918 * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
7919 * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7920 Here.
7921 * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7922 Here.
7923 * config/rs6000/rs6000.h (SET_ASM_OP): Here.
7924 * config/rs6000/sol2.h (ASM_STABN_OP): Here.
7925 * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
7926 Here.
7927 * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
7928 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
7929 * config/sparc/linux.h (COMMON_ASM_OP): Here.
7930 * config/sparc/linux64.h (COMMON_ASM_OP,
7931 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
7932 * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
7933 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7934 * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
7935 * config/sparc/pbd.h (ASM_INT_OP): Here.
7936 * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
7937 * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
7938 DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
7939 * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
7940 UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
7941 * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
7942 UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
7943 UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
7944 TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
7945 CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7946 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7947 EH_FRAME_SECTION_ASM_OP): Here.
7948 * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
7949 * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7950 Here.
7951 * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7952 Here.
7953 * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
7954 TCOMMON_ASM_OP): Here.
7955 * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7956 Here.
7957 * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7958 ASM_BYTE_OP): Here.
7959
7960 2000-09-25 Richard Henderson <rth@cygnus.com>
7961
7962 * expmed.c (store_bit_field): Adjust last change to not consider
7963 any word-sized field naturally aligned.
7964
7965 2000-09-24 Richard Henderson <rth@cygnus.com>
7966
7967 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
7968 TFmode unordered compares properly. Revalidate integer compare
7969 operands.
7970 (alpha_emit_setcc): New.
7971 (alpha_emit_conditional_move): Revalidate integer compare operands.
7972 * config/alpha/alpha-protos.h: Update.
7973 * config/alpha/alpha.md (cmpdi): Allow general operands.
7974 (sne): Use alpha_emit_setcc.
7975 (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
7976 (sunordered, sordered): New.
7977
7978 2000-09-24 Richard Henderson <rth@cygnus.com>
7979
7980 * config/ia64/ia64-protos.h: Update.
7981 * config/ia64/ia64.c (call_multiple_values_operation): Remove.
7982 (ia64_expand_call): New.
7983 (ia64_expand_prologue): Emit an alloc if we need extra input
7984 registers.
7985 (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
7986 instruction if true.
7987 (struct reg_flags): Add is_sibcall.
7988 (rtx_needs_barrier): A sibcall does not use CFM et al. Ignore USEs.
7989 (emit_insn_group_barriers): Set flags.is_sibcall. Remove hacks
7990 for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
7991 * config/ia64/ia64.h (PREDICATE_CODES): Update.
7992 * config/ia64/ia64.md (call): Use ia64_expand_call.
7993 (call_value): Likewise.
7994 (sibcall, sibcall_value): New.
7995 (call patterns): Remove extra expanders; tidy.
7996 (sibcall_epilogue): New.
7997 (set_bsp): Remove the extra USE. Put the operand inside the UNSPEC.
7998
7999 2000-09-24 Richard Henderson <rth@cygnus.com>
8000
8001 * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
8002
8003 * sibcall.c (skip_pic_restore): New.
8004 (identify_call_return_value): Use it.
8005
8006 2000-09-24 Mark Mitchell <mark@codesourcery.com>
8007
8008 * c-tree.texi: Moved here from cp/ir.texi. Documented nested
8009 functions. Generalize to handle both C and C++.
8010 * Makefile.in (c-tree.info): New target.
8011 (info): Add c-tree.info.
8012
8013 Sun Sep 24 09:15:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8014
8015 * expr.c (store_field): If BITSIZE is negative, use size of type.
8016 (expand_expr, case COMPONENT_EXPR): Likewise.
8017
8018 Sun 24-Sep-2000 11:40:23 BST Neil Booth <NeilB@earthling.net>
8019
8020 * cpplex.c: Update TODO comment.
8021 * cpplib.c (do_error, do_warning): Merge common code of
8022 do_error and do_warning into do_diagnostic. Use it.
8023 (do_diagnostic): New function.
8024 * cpplib.h: Fix comment typo.
8025
8026 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
8027
8028 * c-common.c (check_format_info): Warn for a wide character string
8029 used as a non-wide format argument.
8030
8031 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
8032
8033 * builtins.def (BUILT_IN_LLABS): Add.
8034 * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
8035 * c-common.c (c_common_nodes_builtins): Create builtin functions
8036 __builtin_llabs, and plain llabs unless no_nonansi_builtins
8037 outside of C99 mode.
8038 (expand_tree_builtin): Handle BUILT_IN_LLABS.
8039
8040 Sat 23-Sep-2000 22:39:18 BST Neil Booth <NeilB@earthling.net>
8041
8042 * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
8043 CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
8044 * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
8045 _cpp_free_toklist): No need to worry about extra dummy token
8046 at the start of token lists any more.
8047 (trigraph_ok): Only warn outside comments.
8048 (skip_block_comment): Set and clear lexing_comment.
8049 (skip_line_comment): Take a cpp_reader not cpp_buffer.
8050 Set and clear lexing_comment.
8051 (parse_number): Handle leading '.' indicated by pfile->seen_dot.
8052 (check_long_token): Delete.
8053 (lex_percent, lex_dot): New subroutines of lex_token to
8054 handle lexing of '.' and '%' without lookback.
8055 (lex_token): Use lex_dot and lex_percent.
8056 (lex_line): Don't check for LIST_OFFSET.
8057 (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
8058 * cpplib.c (_cpp_parse_assertion): Similarly.
8059 (cpp_push_buffer): Initialize extra_char.
8060 * cpplib.h (LIST_OFFSET): Delete.
8061 (struct cpp_buffer): New member extra_char.
8062 (struct lexer_state): New members lexing_comment and seen_dot.
8063
8064 2000-09-23 Jason Merrill <jason@redhat.com>
8065
8066 * config/rs6000/x-aix41 (CLIB): Define here.
8067 * config/rs6000/t-aix43: Not here.
8068 * config/rs6000/t-aix41: Or here. Remove.
8069 * configure.in: Don't use it.
8070
8071 2000-09-22 Jason Merrill <jason@redhat.com>
8072
8073 * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
8074 * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
8075 * config.in: Regenerate.
8076
8077 * configure.in: Fix checks for assembler features when using a
8078 one-tree assembler that has not yet been built.
8079 Fix --disable-threads.
8080
8081 2000-09-19 Geoff Keating <geoffk@cygnus.com>
8082
8083 * stmt.c (expand_asm_operands): Allow # in constraints.
8084
8085 2000-09-22 Jason Merrill <jason@redhat.com>
8086
8087 * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
8088
8089 * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
8090 function-local names.
8091
8092 2000-09-22 Brad Lucier <lucier@math.purdue.edu>
8093 Mark Mitchell <mark@codesourcery.com>
8094
8095 * toplev.c (warn_disabled_optimization): Declare new warning flag.
8096 * flags.h (warn_disabled_optimization): Add it here.
8097 * gcse.c (gcse_main): Add warning when disabled.
8098 * invoke.texi: Document -Wdisabled-optimization.
8099
8100 2000-09-21 Jason Merrill <jason@redhat.com>
8101
8102 * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
8103
8104 * dwarf2out.c (tree_add_const_value_attribute): New fn.
8105 (gen_variable_die): Call it for non-definitions.
8106
8107 * dwarf2out.c (die_struct): Add die_mark field.
8108 (mark_dies, unmark_dies): New fns.
8109 (clear_die_sizes): Remove.
8110 (print_die): Check die_symbol rather than die_offset.
8111 (build_abbrev_table, output_pubnames, output_aranges): Check
8112 die_mark rather than die_offset.
8113 (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
8114 Call mark_dies.
8115
8116 Thu 21-Sep-2000 18:19:05 BST Neil Booth <NeilB@earthling.net>
8117
8118 * cppfiles.c (lookup_include_file): Rename to open_file.
8119 Always create a splay tree value, even on syscall failures.
8120 Negative entries indicated by fd == -2.
8121 Re-open files closed in the meantime.
8122 (_cpp_fake_include): Create a negative splay tree entry.
8123 (find_include_file, cpp_read_file): Update for function name
8124 change.
8125 * gcc.gd/cpp/mi4.c: Testcase.
8126
8127 2000-09-21 Nick Clifton <nickc@redhat.com>
8128
8129 * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
8130 ARM and THUMB modes.
8131
8132 * config/mcore/mcore.c: Fix compile time warnings.
8133 * config/mcore/mcore-protos.h: Fix compile time warnings.
8134
8135 2000-09-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8136
8137 * configure.in: Correct test of gcc_cv_glibc.
8138 * configure: Rebuilt.
8139 * config.in: Rebuilt.
8140
8141 2000-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8142
8143 * builtins.c (expand_builtin_fputs): Also expand when length!=1.
8144 (expand_builtin): Handle BUILT_IN_FWRITE.
8145
8146 * builtins.def (BUILT_IN_FWRITE): New entry.
8147
8148 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
8149
8150 Wed Sep 20 15:39:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8151
8152 * gcc.c (modify_target): New variable and struct.
8153 (process_command): Handle MODIFY_TARGET_NAME.
8154 * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
8155 * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
8156
8157 * c-decl.c (finish_decl): Add else's to avoid referencing
8158 TYPE_DOMAIN of an ERROR_MARK.
8159
8160 Wed Sep 20 21:44:31 2000 Denis Chertykov <denisc@overta.ru>
8161
8162 * config/avr/avr.c (adjust_insn_length): Adjust lengths of
8163 `reload_in*' insns.
8164
8165 2000-09-19 Marek Michalkiewicz <marekm@linux.org.pl>
8166
8167 * config/avr/avr.md (neghi2): Add alternative for input and output
8168 operands in different registers, as in negsi2.
8169 (*negsi2): Remove '*' from the name. Use "movw" if available.
8170
8171 2000-09-19 Jim Wilson <wilson@cygnus.com>
8172
8173 * config/ia64/crtbegin.asm (__dso_handle): Delete use of
8174 HAVE_GAS_HIDDEN macro.
8175
8176 Tue 19-Sep-2000 22:38:57 BST Neil Booth <NeilB@earthling.net>
8177
8178 * cpplex.c (lex_line): Drop the EOF token for unknown
8179 directives in assembler.
8180
8181 2000-09-19 David Edelsohn <edelsohn@gnu.org>
8182
8183 * configure.in: Allow enable_threads_flag value of "aix". Define
8184 thread_file as "aix" for AIX 4.3 and above.
8185 * configure: Regenerated.
8186
8187 * gthr-aix.h: New file.
8188
8189 * rs6000/t-aix43: Replace soft-float multilib with pthread.
8190 Remove 403 processor multilib match. Fix rios2 processor multilib
8191 match.
8192
8193 * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
8194 to return to appropriate csect.
8195
8196 2000-09-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8197
8198 * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
8199 functions.
8200 (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
8201 (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
8202 BUILT_IN_PRINTF.
8203
8204 * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
8205 New entries.
8206
8207 * c-common.c (init_function_format_info): Handle __builtin_printf.
8208 Set `check_function_format_ptr'.
8209 (c_common_nodes_and_builtins): Set `puts_ftype' and
8210 `printf_ftype'. Declare __builtin_putchar, __builtin_puts,
8211 __builtin_printf and printf.
8212
8213 * tree.c, tree.h (check_function_format_ptr): Declare.
8214
8215 Tue 19-Sep-2000 18:26:57 BST Neil Booth <NeilB@earthling.net>
8216
8217 * cppfiles.c (read_include_file): Take no special action for
8218 zero-length files.
8219
8220 2000-09-19 Bernd Schmidt <bernds@redhat.co.uk>
8221
8222 * final.c (insn_current_reference_address): Use INSN_SHUID of seq
8223 rather than that of branch.
8224 (shorten_branches): Don't increment insn_current_address twice.
8225
8226 Undo most of the Wed Jan 27 23:39:53 1999 patch:
8227 * loop.h (struct induction): Delete members derived, ix and last_use.
8228 (struct loop_ivs): Delete members first_increment_giv and
8229 last_increment_giv.
8230 * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
8231 recombine_givs): Delete functions.
8232 (find_and_verify_loops): Don't initialize cont_dominator.
8233 (strength_reduce): Lose code to try to find bivs that can be
8234 expressed as givs of another biv, and to convert biv increments
8235 into givs.
8236 Lose loop_scan_start variable, always use loop->scan_start.
8237 Don't call recombine_givs. Don't handle derived givs.
8238 (record_giv): Don't initialize derived and last_use fields.
8239 (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
8240 givs.
8241 * unroll.c (derived_regs): Delete static variable.
8242 (unroll_loop): Don't initialize it.
8243 (copy_loop_body): Lose code to handle derived givs.
8244 (find_splittable_givs): Don't check for givs made from biv
8245 increments.
8246 Don't set derived_regs.
8247
8248 Fix misapplied earlier patch:
8249 * config/sh/sh.md (floatsisf_ie): Reenable. Remove explicit reference
8250 to fpul.
8251 (floatsisf2): Generate floatsisf_ie by default.
8252 (floatsisf_i4): Conditional on TARGET_SH4.
8253
8254 (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
8255 predicate for the expanders.
8256
8257 2000-09-19 Richard Henderson <rth@cygnus.com>
8258
8259 * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
8260 in addition to pentium and pentiumpro symbols.
8261 (CPP_CPU_DEFAULT_SPEC): Likewise.
8262
8263 * c-typeck.c (c_expand_asm_operands): Restore the output tree
8264 after expanding.
8265
8266 * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
8267 if the tree has side effects.
8268 (warn_if_unused_value): Do not warn about void constructs.
8269
8270 * c-decl.c (poplevel): Invoke warn_about_unused_variables.
8271
8272 * unroll.c (copy_loop_body): Update LABEL_NUSES before
8273 calling invert_jump.
8274
8275 2000-09-18 Geoff Keating <geoffk@cygnus.com>
8276
8277 * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
8278 into anything.
8279
8280 2000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8281
8282 * Makefile.in (c-common.o): Depend on diagnostic.h.
8283
8284 * c-common.c: Include diagnostic.h.
8285 (tfaff): Delete.
8286 (status_warning): New function.
8287 (check_format_info, maybe_read_dollar_number, check_format_types,
8288 finish_dollar_format_checking, check_function_format): Accept a
8289 `status' parameter. All callers changed.
8290
8291 * c-common.h (check_function_format): Accept a `status' parameter.
8292
8293 * c-typeck.c: Update call to `check_function_format'.
8294
8295 2000-09-18 Richard Henderson <rth@cygnus.com>
8296
8297 * c-decl.c (c_expand_body): Call mark_varargs before
8298 expand_function_start.
8299
8300 2000-09-18 Geoff Keating <geoffk@cygnus.com>
8301
8302 * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
8303 * config/rs6000/eabi-ci.asm: Likewise.
8304
8305 2000-09-18 Richard Henderson <rth@cygnus.com>
8306
8307 * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
8308 for BImode.
8309
8310 2000-09-18 Jim Wilson <wilson@cygnus.com>
8311
8312 * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
8313 before passing it to fold_rtx_mult_add.
8314
8315 * unroll.c (final_giv_value): Pass increment through
8316 extend_value_for_giv before passing it to emit_iv_add_mult.
8317
8318 * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
8319 paradoxical subreg, then directly substitute the replacement and
8320 return.
8321
8322 Mon 18-Sep-2000 22:12:44 BST Neil Booth <NeilB@earthling.net>
8323
8324 * cpp.texi: Update documentation, including some clarifications,
8325 the treatment of various newline combinations, and space between
8326 backslash and newline.
8327
8328 Mon Sep 18 21:00:47 2000 J"orn Rennecke <amylaar@redhat.co.uk>
8329
8330 * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
8331 Replace ASM_OUTPUT_LABELREF with assemble_name.
8332
8333 Mon Sep 18 20:26:50 2000 J"orn Rennecke <amylaar@redhat.co.uk>
8334
8335 * sh.c (addsubcosts): CONST is not cheap.
8336 (find_barrier): For Sh1, take alignment after jumps into account.
8337
8338 2000-09-15 Andrew Haley <aph@redhat.com>
8339
8340 * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
8341 remove all SETs of SUBREGs of hard registers.
8342 * function.c (purge_hard_subreg_sets): New function.
8343 (purge_single_hard_subreg_set): New function.
8344 * rtl.h: (purge_hard_subreg_sets): New function.
8345
8346 2000-09-18 Richard Henderson <rth@cygnus.com>
8347
8348 * config/ia64/ia64-protos.h: Update.
8349 * config/ia64/ia64.c (signed_inequality_operator): New.
8350 (ia64_expand_compare): New.
8351 (ia64_register_move_cost): Handle PR_REGS moves.
8352 (ia64_secondary_reload_class): Require a GR when moving to a PR.
8353 (struct reg_write_state): Add written_by_and/or.
8354 (struct reg_flags): Add is_and/or.
8355 (rws_update): Set them.
8356 (rws_access_regno): Test them to allow parallel comparisons.
8357 (rtx_needs_barrier): Recognize parallel comparisons.
8358 (emit_insn_group_barriers): Set prev_insn after a call stop bit.
8359 Call recog_memoized; ignore pred_rel_mutex.
8360 (emit_predicate_relation_info): Don't call find_basic_blocks here.
8361 (ia64_reorg): Do it here instead.
8362 * config/ia64/ia64.h: s/CCmode/BImode/g
8363 (MODES_TIEABLE_P): Don't tie BImode.
8364 (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
8365 (CONST_COSTS): Pick sensible values for CONST_INT based on context.
8366 (RTX_COSTS): Make multiply 4 insns.
8367 (MEMORY_MOVE_COST): New.
8368 (PREDICATE_CODES): Update.
8369 * config/ia64/ia64.md: s/CCmode/BImode/g
8370 (movcci, movbi): New.
8371 (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
8372 (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
8373 (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
8374 (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
8375 (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
8376 (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
8377 (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
8378 (mulsi, muldi): Use xmpy not xma.
8379 (cmpbi): New.
8380 (movcc, movcc_internal): Remove.
8381 (branch expanders): Use ia64_expand_compare.
8382 (setcc expanders): Likewise.
8383 (cmov insns): Use move_operand and ia64_move_ok.
8384 (pred_rel_mutex): Use unspec not unspec_volatile. Prevent the
8385 scheduler from moving it past a use.
8386 * config/ia64/build.hacks: Remove.
8387
8388 Mon 18-Sep-2000 19:21:35 BST Neil Booth <NeilB@earthling.net>
8389
8390 * cpphash.h (HASHSTEP): Take character rather than pointer
8391 to character.
8392 (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
8393
8394 * cpphash.c (cpp_loookup): Update for new HASHSTEP.
8395
8396 * cpplex.c (auto_expand_name_space, trigraph_replace,
8397 backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
8398 IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
8399 BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
8400 KNOWN_DIRECTIVE): Delete.
8401
8402 (handle_newline, check_long_token, skip_escaped_newlines,
8403 unterminated): New functions.
8404 (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
8405
8406 (parse_identifier): Was parse_name, new implementation.
8407 (skip_line_comment, skip_block_comment, skip_whitespace,
8408 parse_number, parse_string, trigraph_ok, save_comment,
8409 adjust_column, _cpp_get_line): New implementations.
8410
8411 (lex_token): New function. Lexes a token at a time, looking
8412 forwards. Contains most of the guts of the old lex_line.
8413 (lex_line): New implementation, using lex_token to obtain
8414 individual tokens.
8415 (cpp_scan_buffer): Use the token's line, not the list's line.
8416
8417 * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
8418 New implementations.
8419 (do_assert): Don't bother setting the answer's list's line.
8420 (cpp_push_buffer): Initialise new pfile and read_ahead members
8421 of struct cpp_buffer.
8422
8423 * cpplib.h (cppchar_t): New typedef.
8424 (struct cpp_buffer): read_ahead, pfile and col_adjust are
8425 new members.
8426 (struct lexer_state): New structure that determines the state
8427 and behaviour of the lexer.
8428 (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
8429 (struct cpp_reader): New member "state". Rename
8430 multiline_string_line and multiline_string_column. Delete
8431 col_adjust, in_lex_line members.
8432 (CPP_BUF_COLUMN): Update.
8433
8434 2000-09-18 Richard Henderson <rth@cygnus.com>
8435
8436 * combine.c (simplify_comparison): Shift a NOT out of a single
8437 bit test.
8438
8439 * combine.c (if_then_else_cond): Canonicalize BImode true to
8440 STORE_FLAG_VALUE.
8441 * explow.c (trunc_int_for_mode): Likewise.
8442
8443 * combine.c (combine_simplify_rtx): Use gen_unary to distribute
8444 the NOT for De Morgan's rule.
8445 * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
8446 of a comparison to the reverse comparison.
8447
8448 * combine.c (try_combine): Allow split to create a single insn.
8449
8450 * machmode.def: Add BImode. Add a column for bitsize.
8451 * machmode.h (DEF_MACHMODE): Adjust for extra column.
8452 (GET_MODE_BITSIZE): Use it.
8453 * rtl.c (DEF_MACHMODE): Adjust for extra column.
8454 (mode_bitsize): New.
8455 (mode_mask_array): Use bitsize.
8456 * combine.c (combine_simplify_rtx): Require inner and outer
8457 modes to match on nonzero_bits optimizations.
8458
8459 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
8460
8461 * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
8462 its entry in spill_reg_store.
8463 * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
8464 * sh.c (reg_no_subreg_operand): New function.
8465 * sh-protos.h (reg_no_subreg_operand): Declare it.
8466 * sh.h (PREDICATE_CODES): Add it.
8467 * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
8468 input operand that needs to be in fpul.
8469 (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
8470 * sh.c (find_barrier): Take into account that machine_dependent_reorg
8471 might add new insns.
8472
8473 2000-09-18 Alexandre Oliva <aoliva@redhat.com>
8474
8475 * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
8476 MAYBE_DEAD.
8477 (sh_expand_epilogue): Take the PIC register into account when
8478 computing the frame size.
8479
8480 * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
8481 * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
8482 LABEL_REFs with a PIC-safe unspec.
8483
8484 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
8485
8486 * c-common.c (check_format_info): Properly save the argument
8487 number and parameter for $ operand number formats in case width
8488 and precision arguments are also used. Allow printf width and
8489 precision arguments to have operand numbers even if none was
8490 specified for the main format, since this is OK for %*.*m. Only
8491 object to missing $ operand number if the format used requires an
8492 argument.
8493
8494 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
8495
8496 * c-common.c (format_char_info): Add 'W' flag to comment.
8497 (print_char_table, scan_char_table): Use it.
8498 (check_format_info): Use the 'W' flag to determine whether a
8499 format argument is written into.
8500
8501 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
8502
8503 * c-common.c (check_format_types): Reorganise and clean up,
8504 checking earlier for ERROR_MARKs and making cur_type into its
8505 TYPE_MAIN_VARIANT where convenient.
8506
8507 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
8508
8509 * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
8510
8511 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
8512
8513 * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
8514
8515 * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
8516 * i386.c (struct builtin_description): New.
8517 (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
8518 (mmx_reg_operand): Declare MODE arg as unused.
8519 (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
8520 ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
8521 ix86_expand_binop_builtin, ix86_expand_store_builtin,
8522 ix86_init_builtins, ix86_expand_builtin): New functions.
8523 * i386.h (ix86_builtins): New enumeration.
8524 (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
8525 * i386.md (attr length_immediate): 0 for mmx/sse types.
8526 (attr prefix_0f): 1 for mmx/sse types.
8527 (setcc_2): Remove "*" so we get gen_setcc_2.
8528 (emms): Account for changed register numbering. Set "memory" attr
8529 to unknown.
8530 (sfence): Set "memory" attr to unknown.
8531
8532 2000-09-18 Andreas Jaeger <aj@suse.de>
8533
8534 * configure.in: Define _GNU_SOURCE only when using the GNU C
8535 Library.
8536 * configure: Regenerated.
8537 * config.in: Regenerated.
8538
8539 2000-09-17 Mark Mitchell <mark@codesourcery.com>
8540
8541 * cppinit.c (cpp_init): Don't use ANSI prototypes.
8542 * flow.c (flow_dump_loop): Likewise.
8543 (flow_loops_dump): Likewise.
8544
8545 * c-typeck.c (c_start_case): Fix typo.
8546
8547 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
8548
8549 * c-decl.c (grokdeclarator): Don't give a warning about defaulting
8550 to int for plain complex which defaults to complex double. Do
8551 warn about defaulting to complex double if pedantic. Warn about
8552 complex integer types if pedantic. Warn about complex types if
8553 pedantic and not in C99 mode.
8554 * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
8555 for complex conjugation.
8556
8557 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
8558
8559 * contrib.texi: Update my entry.
8560
8561 Sun Sep 17 18:48:32 2000 Denis Chertykov <denisc@overta.ru>
8562
8563 * config/avr/avr.md (mcu_enhanced): New attribute.
8564 (mcu_mega): Likewise.
8565 (extendhisi2): Use mcu_enhanced.
8566 (zero_extendhisi2): Likewise.
8567 (call_insn): Use mcu_enhanced and mcu_mega.
8568 (call_value_insn): Likewise.
8569 (*sbrx_branch): Use mcu_mega.
8570 (*sbrx_and_branchsi): Likewise.
8571 (*sbrx_and_branchhi): Likewise.
8572 (*tablejump_lib): Likewise.
8573
8574 Sun Sep 17 10:46:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8575
8576 * alias.c (true_dependence): Allow non-unchanging read to conflict
8577 with unchanging write.
8578
8579 * expr.c (store_constructor_field): Accept ALIAS_SET arg.
8580 (store_constructor): Pass alias_set to it.
8581
8582 * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
8583 TYPE_MAIN_VARIANT of ERROR_MARK.
8584 * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
8585
8586 * simplify-rtx.c (simplify_unary_operation): Add cases
8587 FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
8588
8589 2000-09-17 Bernd Schmidt <bernds@redhat.co.uk>
8590
8591 * expr.h (emit_library_call, emit_library_call_value): Delete
8592 declarations.
8593 * rtl.h (enum libcall_type): New.
8594 (emit_library_call, emit_library_call_value): Change fn_type arg to
8595 be of type enum libcall_type.
8596 * calls.c: Likewise for the function definitions. Several callers
8597 throughout changed to use the new enumeration appropriately.
8598 (emit_library_call_value_1): Likewise. Put back code to make libcall
8599 blocks of equal form, but only use it for the two new higher
8600 enumeration values.
8601
8602 2000-09-16 Mark Mitchell <mark@codesourcery.com>
8603
8604 Convert the C front-end to use function-at-a-time mode.
8605 * c-common.h: Include splay-tree.h.
8606 (C_DECLARED_LABEL_FLAG): New macro.
8607 (struct language_function): Add x_scope_stmt_stack and
8608 x_function_name_declared_p.
8609 (RECHAIN_STMTS): Move definition.
8610 (lang_statment_code_p): Likewise.
8611 (lang_expand_stmt): Likewise.
8612 (lang_expand_decl_stmt): New variable.
8613 (lang_expand_function_end): Likewise.
8614 (current_scope_stmt_stack): New function.
8615 (add_decl_stmt): Likewise.
8616 (add_scope_stmt): Likewise.
8617 (mark_stmt_tree): Likewise.
8618 (struct c_lang_decl): New structure.
8619 (DECL_SAVED_TREE): Define.
8620 (c_mark_lang_decl): New function.
8621 (c_expand_start_cond): Change prototype.
8622 (c_finish_then): New function.
8623 (c_finish_else): Likewise.
8624 (current_function_name_declared): Remove.
8625 (set_current_function_name_declared): Likewise.
8626 (mark_c_language_function): Declare.
8627 (case_compare): Likewise.
8628 (c_add_case_label): Likewise.
8629 (c_expand_expr): Likewise.
8630 (c_safe_from_p): Likewise.
8631 * c-common.c (lang_expand_function_end): New variable.
8632 (struct if_elt): Add if_stmt.
8633 (c_expand_start_cond): Add the if-statement to the statement-tree,
8634 rather than generating RTL.
8635 (c_finish_then): New function.
8636 (c_expand_start_else): Don't generate RTL.
8637 (c_finish_else): New function.
8638 (c_expand_expr_stmt): Don't generate RTL.
8639 (statement_code_p): Add SCOPE_STMT.
8640 (case_compare): New function.
8641 (c_add_case_label): Likewise.
8642 (mark_stmt_tree): Likewise.
8643 (c_mark_lang_decl): Likewise.
8644 (mark_c_language_function): Likewise.
8645 (c_expand_expr): Likewise.
8646 (c_safe_from_p): Likewise.
8647 * c-decl.c (c_stmt_tree): New variable
8648 (c_scope_stmt_stack): Likewise.
8649 (c_function_name_declared_p): Likewise.
8650 (lang_expand_expr_stmt): Remove.
8651 (poplevel): Don't call output_inline_function for nested
8652 functions.
8653 (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
8654 `extern' function.
8655 (redeclaration_error_message): Change means of computing whether
8656 or not a function is nested.
8657 (lookup_label): Don't call label_rtx.
8658 (init_decl_processing): Add more GC roots.
8659 (start_decl): Add DECL_STMTs to the statement-tree, rather than
8660 calling rest_of_decl_compilation.
8661 (finish_decl): Don't call expand_decl.
8662 (store_parm_decls): Begin the statement-tree, but don't generate
8663 RTL.
8664 (finish_function): Tie off the statement-tree. Call c_expand_body
8665 if appropriate.
8666 (c_expand_body): New function.
8667 (push_c_function_context): Save more information.
8668 (pop_c_function_contxt): Likewise.
8669 (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
8670 (lang_mark_tree): Mark it.
8671 (current_stmt_tree): Adjust.
8672 (current_scope_stmt_stack): New function.
8673 (do_case): Remove.
8674 (set_current_name_declared): Likewise.
8675 (c_begin_compound_stmt): Define.
8676 (c_expand_decl_stmt): Likewise.
8677 * c-lang.c: Include rtl.h and expr.h.
8678 (lang_init): Set more language-specific hooks.
8679 * c-lex.c: Include expr.h.
8680 * c-parse.in: Changes throughout to add statements to the
8681 statement-tree, rather than generating RTL after every statement.
8682 * c-semantics.c (lang_expand_decl_stmt): Define.
8683 (add_decl_stmt): New function.
8684 (add_scope_stmt): Likewise.
8685 (finish_stmt_tree): Tweak.
8686 (genrtl_expr_stmt): Likewise.
8687 (genrtl_decl_stmt): Handle local labels, and call
8688 lang_expand_decl_stmt if required.
8689 (genrtl_for_stmt): Fix line-number handling.
8690 (genrtl_case_label): Handle cleanups.
8691 (genrtl_asm_stmt): Don't call combine_strings.
8692 (genrtl_compound_stmt): Simplify.
8693 (expand_stmt): Handle SCOPE_STMTs.
8694 * c-tree.h (struct lang_decl): New structure.
8695 (C_DECLARED_LABEL_FLAG): Remove.
8696 (c_begin_compound_stmt): Declare.
8697 (c_expand_decl_stmt): Likewise.
8698 (c_expand_start_case): Rename to c_start_case.
8699 (c_finish_case): New function.
8700 * c-typeck.c (start_init): Tweak setting of
8701 constructor_incremental.
8702 (c_expand_asm_operands): Tweak error-handling. Add to the
8703 statement-tree.
8704 (c_expand_return): Add to the statement-tree.
8705 (c_expand_start_case): Rename to ...
8706 (c_start_case): ... this.
8707 (struct c_switch): New type.
8708 (switch_stack): New variable.
8709 (do_case): Simplify.
8710 (c_finish_case): New function.
8711 * dependence.c: Include expr.h.
8712 (enum dependence_type): Change spelling of enumerals.
8713 (check_node_dependence): Adjust.
8714 * expr.h (lang_safe_from_p): Declare.
8715 (safe_from_p): Likewise.
8716 * expr.c (lang_safe_from_p): New variable.
8717 (safe_from_p): Give it external linkage. Use lang_safe_from_p.
8718 * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
8719 * toplev.c (rest_of_decl_compilation): Robustify.
8720 * tree.c (contains_placeholder_p): Likewise.
8721 * Makefile.in: Update dependencies.
8722 * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
8723 * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
8724 (objc_expand_function_end): New function.
8725 (finish_method_def): Use it.
8726 (init_objc): Initialize more language-specific hooks.
8727 * objc/Make-lang.in: Update dependencies.
8728
8729 2000-09-16 Geoffrey Keating <geoffk@cygnus.com>
8730
8731 * configure.in: Define macros that affect features before
8732 testing for features. Don't define _XOPEN_SOURCE.
8733 * configure: Regenerated.
8734 * config.in: Regenerated.
8735
8736 Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com)
8737
8738 * rtlanal.c (rtx_varies_p): Volatile asms vary.
8739 (rtx_unstable_p): Restructure code. Volatile asms
8740 are unstable.
8741
8742 Sat Sep 16 14:35:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8743
8744 * function.h (no_debugging_symbols): New field.
8745 * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
8746 Initialize no_debugging_symbols.
8747 (output_inline_function): Save and restore write_symbols and set from
8748 no_debugging_symbols.
8749 * toplev.c (rest_of_compilation): Call save_for_inline.
8750 * tree.h: Update comment.
8751
8752 * stor-layout.c (place_field): Don't do anything if field or
8753 its type are ERROR_MARK.
8754
8755 Sat Sep 16 19:14:00 2000 Laurynas Biveinis <lauras@softhome.net>
8756
8757 * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
8758 (read_include_file): Ensure inc->mmaped is initialized.
8759
8760 2000-09-16 Richard Henderson <rth@cygnus.com>
8761
8762 * cppiles.c (purge_cache): Use PTR not caddr_t.
8763
8764 2000-09-16 Hans-Peter Nilsson <hp@axis.com>
8765
8766 * gcc.c: In description for %{<S}, say the option removed is -S.
8767 * invoke.texi (Spec Files): Ditto.
8768
8769 2000-09-16 Andreas Jaeger <aj@suse.de>
8770
8771 * configure.in: Always define _GNU_SOURCE to make interfaces
8772 visible that were hidden by only defining _GNU_SOURCE.
8773 * configure: Regenerated.
8774
8775 Sat 16-Sep-2000 08:13:45 BST Neil Booth <NeilB@earthling.net>
8776
8777 * cpplex.c (push_macro_context): Set an argument's level after
8778 calling parse_args. We could loop infinitely otherwise.
8779
8780 2000-09-15 Tom Tromey <tromey@cygnus.com>
8781
8782 * configure, config.in: Rebuilt.
8783 * configure.in: Check for iconv.h. Define _XOPEN_SOURCE.
8784
8785 2000-09-15 Greg McGary <greg@mcgary.org>
8786
8787 * cppmacro.c (check_trad_stringification): Check token
8788 text pointers against limit before dereferencing.
8789
8790 2000-09-15 Joseph S. Myers <jsm28@cam.ac.uk>
8791
8792 * c-common.c (format_wanted_type): New structure.
8793 (check_format_types): New function.
8794 (check_format_info): Pass all checking of types of format
8795 arguments, including width and precision arguments, to this new
8796 function.
8797
8798 2000-09-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
8799
8800 * BUGS: Remove file.
8801
8802 2000-09-15 Jakub Jelinek <jakub@redhat.com>
8803
8804 * config/alpha/alpha.c (override_options): ev6 cache latencies
8805 from Richard Henderson. Don't allow -mmemory-latency=L0.
8806
8807 * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
8808 (TARGET_OPTIONS): Add tune=.
8809 (alpha_tune_string): Declare.
8810 * config/alpha/alpha.c (override_options): Add cpu_table.
8811 Use alpha_cpu_string first to set both alpha_cpu and target_flags
8812 and then alpha_tune_string to set alpha_cpu only.
8813 Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
8814 * config/alpha/elf.h (ASM_FILE_START): Likewise.
8815 * config/alpha/osf.h (ASM_FILE_START): Likewise.
8816 * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
8817
8818 Fri Sep 15 19:45:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
8819
8820 * i386-protos.h (no_comparison_operator, uno_comparison_operator):
8821 Remove.
8822 (ix86_comparison_operator, ix86_cc_mode): Declare
8823 * i386.h (CCGC, CCGCO): New modes.
8824 (SELECT_CC_MODE): Move offline to ....
8825 * i386.c (ix86_cc_mode): .... here; use new modes.
8826 (ix86_comparison_operator): New.
8827 (fcmov_comparison_operator): Ensure proper mode.
8828 (put_condition_mode): More sanity checking.
8829 (ix86_match_ccmode): Handle new modes.
8830 (ix86_expand_fp_compare): GEU requires CCmode.
8831 (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
8832 doing it by hand.
8833 * i386.md (cmp?i_ccz_1): Remove
8834 (cmp?i_ccno_1): Use ix86_match_ccmode.
8835 (cmp?i_minus_1): New.
8836 (cmpsi_1): New expander.
8837 (cmpqi_ext_1): Use match_ccmode
8838 (cmpqi_ext_3): New expander.
8839 (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
8840 (cmpqi_ext_4): Use match_ccmode.
8841 (add?i_?): Use match_ccmode.
8842 (add?i_6): New.
8843 (test?i_ccz_1): Remove
8844 (test?i_1): New.
8845 (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
8846 (testqi_ext_0): Use ix86_match_ccmode.
8847 (*xorqi_cc_ext_1): Use ix86_match_ccmode.
8848 (xorqi_cc_ext_1): New expander.
8849 (shift patterns): Use CCGOCmode for all shifts except for sar.
8850 (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
8851 (setcc_3, jcc_3, miv?icc_c): Remove.
8852
8853 2000-09-15 Will Cohen <wcohen@redhat.com>
8854
8855 * dwarf2out.c (add_const_value_attribute): Changed array into a
8856 xmalloced object, so it exists after function exit.
8857 (free_AT): Added case for dw_val_class_float to free allocated
8858 memory.
8859
8860 2000-09-15 Kazu Hirata <kazu@hxi.com>
8861
8862 * config/i386/i386.md: Fix a comment typo.
8863 * gcc.c: Fix formatting.
8864
8865 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
8866
8867 * optabs.c (emit_libcall_block): If target is a user variable,
8868 copy to a temporary first.
8869 * expr.c (convert_move): When generating a libcall, make a libcall
8870 block.
8871 * calls.c (emit_library_call_value_1): Don't create a libcall
8872 sequence here; our caller will in most cases do it.
8873
8874 * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
8875 MACH into FPUL.
8876 (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
8877 * sh.md (reload_outsf): Generate recognizable patterns for
8878 TARGET_SH3E.
8879 (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
8880 fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
8881 fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
8882 truncdfsf2_i4): Change not to use explicit references to fpul.
8883 (floatsisf2_ie): Remove USE of fpscr.
8884 (floatsisf2): Change default expansion to match this.
8885 (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
8886 unused patterns.
8887
8888 2000-09-15 Richard Henderson <rth@cygnus.com>
8889
8890 * expmed.c (store_bit_field): Consider naturally aligned
8891 memory for direct reference.
8892
8893 2000-09-15 Richard Henderson <rth@cygnus.com>
8894
8895 * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
8896 AND addresses into alias set 0.
8897 (alpha_expand_unaligned_store): Likewise.
8898 (alpha_expand_unaligned_load_words): Likewise.
8899 (alpha_expand_unaligned_store_words): Likewise.
8900
8901 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
8902
8903 * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
8904 * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
8905 is defined.
8906 * config/mips/mips.c (mips_va_arg): Args passed by reference have a
8907 rsize of UNITS_PER_WORD.
8908
8909 Fri 15-Sep-2000 06:49:07 BST Neil Booth <NeilB@earthling.net>
8910
8911 * cpplex.c (ON_REST_ARG): Correct the test.
8912 (maybe_paste_with_next): Duplicate a token that fail pasting,
8913 and clear its PASTE_LEFT flag, so that nested pasting attempts
8914 do not occur.
8915
8916 2000-09-14 Richard Henderson <rth@cygnus.com>
8917
8918 * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
8919 * cse.c (rtx_cost): Likewise.
8920 * optabls.c (expand_binop): Likewise.
8921 (expand_twoval_binop, prepare_cmp_insn): Likewise.
8922 * regclass.c (copy_cost): Likewise.
8923 * reload1.c (reload_cse_move2add): Likewise.
8924
8925 2000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
8926
8927 * c-parse.in (reswords): Add _Complex.
8928
8929 2000-09-14 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8930
8931 * gcc.1: Delete documentation for -undef preprocessor option.
8932
8933 2000-09-14 Alexandre Oliva <aoliva@redhat.com>
8934
8935 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8936 STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
8937 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
8938 Remove undefine before config/elfos.h.
8939 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
8940
8941 2000-09-14 Kazu Hirata <kazu@hxi.com>
8942
8943 * invoke.texi (H8/300 Options): Add -ms2600.
8944 * config/h8300.c (h8300_init_once): Output an error when -ms2600
8945 is used without -ms.
8946 * config/h8300.h (TARGET_MAC): New.
8947 (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
8948 (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
8949 machine other than H8/S2600.
8950 * config/h8300.md: Accept mac instructions on the H8/S2600 instead
8951 of the H8/S2000.
8952
8953 2000-09-14 Alexandre Oliva <aoliva@redhat.com>, Bernd Schmidt <bernds@redhat.co.uk>
8954
8955 * reload.c (find_reloads_address_1): Generate reloads for auto_inc
8956 pseudos that refer to the original pseudos, not only to their
8957 equivalent memory locations.
8958
8959 Thu Sep 14 12:10:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8960
8961 * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
8962 when making new MEM.
8963
8964 * Makefile.in (LN): Remove duplicate definition.
8965
8966 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
8967
8968 From Joern Rennecke:
8969 * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
8970 on an insn and function_invariant_p returns nonzero for the source,
8971 add a REG_EQUAL note.
8972
8973 Thu Sep 14 00:51:57 EDT 2000 John Wehle (john@feith.com)
8974
8975 * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
8976 conflict with frame_pointer_rtx.
8977
8978 2000-09-13 Kazu Hirata <kazu@hxi.com>
8979
8980 * loop.c: Fix formatting.
8981 * loop.h: Likewise.
8982
8983 2000-09-13 Richard Henderson <rth@cygnus.com>
8984
8985 * config/ia64/ia64.md (divsf3): New.
8986 (divsf3_internal_lat, divsf3_internal_thr): New.
8987 (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
8988 (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
8989 (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
8990 (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
8991 (nmadddf4_alts, nmadddf4_trunc): New.
8992 (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
8993 (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
8994 (multf3_truncsf_alts, multf3_truncdf_alts): New.
8995 (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
8996 (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
8997 (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
8998 (nmaddtf4_truncdf_alts): New.
8999 (recip_approx): Don't predicate.
9000
9001 2000-09-13 Richard Henderson <rth@cygnus.com>
9002
9003 * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
9004
9005 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
9006
9007 * flags.h (flag_dump_rtl_in_asm): Declare.
9008 * toplev.c (flag_dump_rtl_in_asm): Define.
9009 (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
9010 if -dP is specified.
9011 * rtl.h (print_rtx_head): Declare.
9012 * print-rtl.c (print_rtx_head): Define.
9013 (print_rtx): Print the string pointed to by print_rtx_head
9014 at beginning of each dump line.
9015 (print_rtl): Likewise.
9016 (print_rtl_single): Likewise.
9017 * final.c (final_scan_insn): Dump the insn in the assembly
9018 file for debugging.
9019 * gcc.1: Document -dP option.
9020 * invoke.texi (Debugging Options): Likewise.
9021
9022 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
9023
9024 * md.texi (Machine Constraints): Document the 68HC11 constraints.
9025 * install.texi (Configurations): Document the 68HC11&68HC12 port.
9026 * invoke.texi (Option Summary, M68hc1x Options): Document the options.
9027
9028 Tue Sep 12 13:51:13 2000 Denis Chertykov <denisc@overta.ru>
9029
9030 * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
9031 * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
9032 (*clrstrqi): Likewise.
9033 (xorhi3,xorsi3,absqi2): Likewise.
9034 (one_cmplhi2,one_cmplsi2): Likewise.
9035 (addsi3): Two stupid constraint alternatives removed.
9036 (extendhisi2): Use `movw' for enhanced avr cores.
9037 (zero_extendhisi2): Likewise.
9038
9039 Wed Sep 13 02:31:23 EDT 2000 John Wehle (john@feith.com)
9040
9041 * alias.c (find_base_term): Use frame_pointer_rtx
9042 when handling an ADDRESSOF.
9043
9044 * cse.c (canon_hash): Handle USE of BLKmode memory.
9045 (cse_insn): Outgoing arguments for a libcall don't
9046 affect any recorded expressions.
9047
9048 2000-09-12 Tom Tromey <tromey@cygnus.com>
9049
9050 * configure, config.in: Rebuilt.
9051 * configure.in: Check for iconv, nl_langinfo, langinfo.h.
9052
9053 2000-09-12 Jakub Jelinek <jakub@redhat.com>
9054
9055 * c-lex.c (lex_string): Use charwidth to compute bytemask.
9056 * expr.c (expand_expr): Don't optimize constant array references
9057 initialized with wide string constants.
9058
9059 2000-09-13 Michael Hayes <mhayes@cygnus.com>
9060
9061 * loop.c (note_set_pseudo_multiple_uses): Correct.
9062
9063 2000-09-12 Jim Wilson <wilson@cygnus.com>
9064
9065 * ifcvt.c (noce_process_if_block): If A and B are the same, and no
9066 else block, and X has side-effects, then fail.
9067
9068 2000-09-12 Greg McGary <greg@mcgary.org>
9069
9070 * config/mips/mips-protos.h
9071 (trap_cmp_op, mips_gen_conditional_trap): New func decls.
9072 * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
9073 (PREDICATE_CODES): Add "trap_cmp_op".
9074 * config/mips/mips.c
9075 (trap_cmp_op, mips_gen_conditional_trap): New functions.
9076 * config/mips/mips.md (trap, conditional_trap): New patterns.
9077
9078 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
9079
9080 * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
9081 pointer.
9082
9083 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9084
9085 * builtins.c (built_in_decls): New array.
9086 (expand_builtin_fputs): New function.
9087 (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
9088
9089 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
9090
9091 * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
9092
9093 * tree.h (built_in_decls): New array.
9094
9095 Tue Sep 12 08:53:57 2000 Jeffrey A Law (law@cygnus.com)
9096
9097 * convex.md: Use "+" instead of "=" for outputs wrapped in a
9098 STRICT_LOW_PART.
9099 * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
9100
9101 2000-09-12 Kazu Hirata <kazu@hxi.com>
9102
9103 * haifa-sched.c: Fix formatting.
9104
9105 * genattrtab.c: Fix formatting.
9106
9107 * unroll.c: Fix formatting.
9108
9109 2000-09-12 Bruce Korb <bkorb@gnu.org>
9110
9111 * fixinc/fixfixes.c: make a type for the fix procedure & use it,
9112 remove obsolete code
9113 * fixinc/fixincl.c: Use PARAMS, not _P_. Add no-op default to switch.
9114 * fixinc/fixincl.tpl: make non-exported arrays static scope
9115 * fixinc/fixincl.x: regenerate
9116 * fixinc/fixlib.h: Use PARAMS, not _P_
9117 * fixinc/fixtests.c: make a type for the test proc & use it
9118 * fixinc/server.h: Use PARAMS, not _P_
9119
9120 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9121
9122 * c-typeck.c (process_init_element): Avoid union init warnings on
9123 floating point zero. Don't crash on unions containing structs.
9124
9125 2000-09-12 Alexandre Oliva <aoliva@redhat.com>
9126
9127 * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
9128 general_movsrc_operand, and remove CONST_INT from
9129 general_movdst_operand.
9130
9131 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
9132
9133 * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
9134 if a reference to non-fixed hardreg is seen. Otherwise, count hard
9135 regs with a higher cost.
9136 (preferrable): Deal with cases where either cost or regcost is
9137 MAX_COST.
9138 (cse_insn): Use MAX_COST rather than 10000. Always initialize
9139 regcost values.
9140 (COSTS_N_INSNS): Move definition...
9141 * rtl.h: ...here.
9142 (MAX_COST): New macro.
9143 * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
9144 constant.
9145
9146 2000-09-11 Mark Mitchell <mark@codesourcery.com>
9147
9148 * c-common.h (genrtl_clear_out_block): Remove.
9149 * c-semantics.c (genrtl_clear_out_block): Remove.
9150 (genrtl_while_stmt): Don't call it.
9151 (genrtl_for_stmt): Likewise.
9152
9153 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
9154
9155 * cppfiles.c: Move all default-#defines to top of file.
9156 (open_include_file): Replace by lookup_include_file.
9157 (read_with_read, read_file): Merged into read_include_file.
9158 (stack_include_file, purge_cache): New functions.
9159 (close_cached_fd): Delete.
9160 (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
9161 Cache the in-memory buffer, not the file descriptor.
9162
9163 * cpphash.h (struct include_file): Add buffer, st, refcnt,
9164 mapped fields.
9165 (xcnew): New utility macro.
9166 (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
9167 * cpplib.h (struct cpp_buffer): Remove mapped field.
9168
9169 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
9170
9171 * cpplex.c (parse_string): Accept backslash space newline as a
9172 line continuation.
9173 (lex_line): Likewise.
9174 (_cpp_get_token): Remove hard limit on macro nesting.
9175
9176 2000-09-12 Philipp Thomas <pthomas@suse.de>
9177
9178 * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
9179 * configure: Rebuilt.
9180
9181 2000-09-13 Michael Hayes <mhayes@cygnus.com>
9182
9183 * flow.c (split_block): Fix update of registers live at
9184 end of split block.
9185
9186 Tue Sep 12 01:51:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
9187
9188 * i386.md (add?i_3, add?i_5): New.
9189 (add?i_4): Rename from add?i_3; Fix compare pattern.
9190 (sub?i_3, xor?i_3, ior?i_3): New.
9191
9192 * genrecog.c (write_tree): Output code to clear insn_extract cache.
9193 * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
9194 instead of extract_insn and extract_constrain_insn_cache instead of
9195 extract_insn and constrain_operands.
9196 * recog.c (extract_insn_cached, extract_constrain_insn_cached):
9197 New functions.
9198 (extract_insn): Clear which_alternative.
9199 (constrain_operands): Set which_alternative to -1 when failed.
9200 * recog.h (extract_constrain_insn_cached, extract_insn_cached):
9201 Declare.
9202
9203 2000-09-11 Matthew Hiller <hiller@redhat.com>
9204
9205 * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
9206 on operand 0 to '+'.
9207 (movstricthi): Likewise.
9208
9209 2000-09-12 Michael Hayes <mhayes@cygnus.com>
9210
9211 * loop.h (LOOP_IVS): New macro.
9212 (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
9213 (struct loop_ivs): New.
9214 (struct loop_info): Add ivs field.
9215 (reg_iv_type, reg_iv_info): Delete prototype.
9216 (reg_biv_class, loop_iv_list): Likewise.
9217 * loop.c (record_biv, find_life_end): Pass loop argument.
9218 (reg_iv_type): Remove global array and use
9219 field in loop_regs structure within loop_ivs structure.
9220 (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
9221 (first_increment_giv, last_increment_giv): Use entry in
9222 loop_ivs structure.
9223 (record_initial): Pass ivs pointer.
9224 * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
9225
9226 2000-09-12 Michael Hayes <mhayes@cygnus.com>
9227
9228 * loop.h (LOOP_REGS): New macro.
9229 (struct loop_regs): New.
9230 (struct loop_info): Add regs field.
9231 * loop.c (set_in_loop): Remove global array and store
9232 in loop_regs structure as part of loop_info structure.
9233 (n_times_set, may_not_optimize): Likewise.
9234 (reg_single_usage, moved_once): Likewise.
9235 (count_one_set): Add regs argument.
9236 (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
9237 (set_pseudo_multiple_uses): Pass regs pointer.
9238
9239 2000-09-12 Michael Hayes <mhayes@cygnus.com>
9240
9241 * unroll.c (iteration_info): Subsume into loop_iterations.
9242 * loop.h (loop_info): New field iv.
9243
9244 2000-09-12 Michael Hayes <mhayes@cygnus.com>
9245
9246 * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
9247 (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
9248 (flow_loops_update): New prototype.
9249 (flow_loops_find): Add flags to prototype.
9250 (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
9251 * flow.c (flow_loop_pre_header_scan): New.
9252 (flow_loop_dump): Dump pre-header root and trace and exit dominators.
9253 (flow_loop_free): Free pre-header root and trace and exit dominators.
9254 (flow_loops_find): New argument flags.
9255 (flow_loops_update): New function.
9256 * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
9257
9258 2000-09-12 Michael Hayes <mhayes@cygnus.com>
9259
9260 * basic-block.h (split_block, update_bb_for_insn): New prototypes.
9261 * flow.c (split_block, update_bb_for_insn): New functions.
9262
9263 2000-09-11 Richard Henderson <rth@cygnus.com>
9264
9265 * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
9266
9267 2000-09-11 Richard Henderson <rth@cygnus.com>
9268
9269 * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
9270 * config/ia64/ia64.c (fr_nonimmediate_operand): New.
9271 (ia64_override_options): Prevent optimizing division for both
9272 latency and throughput.
9273 (rtx_needs_barrier): Handle frcpa.
9274 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
9275 (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
9276 (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
9277 (TARGET_SWITCHES): Add -minline-divide-min-latency and
9278 -minline-divide-max-throughput.
9279 (PREDICATE_CODES): Update.
9280 * config/ia64/ia64.md (extendsidi2): Remove * from f case.
9281 (zero_extendsidi2): Likewise. Fix typo in f case insn.
9282 (extendsfdf2): Add cases for gr<->fr and fr<->mem.
9283 (extendsftf2): Likewise.
9284 (extenddftf2): Likewise.
9285 (fix_trunctfdi2_alts): New.
9286 (fixuns_trunctfdi2_alts): New.
9287 (madd*4): Rename from madd*3.
9288 (divsi3, modsi3, udivsi3, umodsi3): New.
9289 (divsi3_internal): New.
9290 (divdi3, moddi3, udivdi3, umoddi3): New.
9291 (divdi3_internal_lat, divdi3_internal_thr): New.
9292 (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
9293 (recip_approx): New.
9294
9295 2000-09-11 Alexandre Oliva <aoliva@redhat.com>
9296
9297 * print-rtl.c (debug_call_placeholder_verbose): New variable.
9298 (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
9299 set.
9300 * integrate.c (copy_rtx_and_substitute): Don't share
9301 LEAF_REG_REMAPpable registers with the inlined function. Don't
9302 share the function value with calling sequences.
9303
9304 2000-09-11 Jakub Jelinek <jakub@redhat.com>
9305
9306 * c-decl.c (do_case): Fix a typo.
9307
9308 * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
9309 to a if the comparison is floating mode and not -ffast-math.
9310 * simplify-rtx.c (simplify_ternary_operation): Likewise.
9311
9312 Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
9313
9314 * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
9315 gen_ic_invalidate_line.
9316
9317 2000-09-11 Philip Blundell <pb@futuretv.com>
9318
9319 * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
9320
9321 Mon Sep 11 10:48:41 2000 Ulrich Drepper <drepper@redhat.com>
9322
9323 * install.texi (LANGUAGES): Update to include new languages.
9324 * INSTALL: Rebuilt.
9325
9326 2000-09-11 DJ Delorie <dj@redhat.com>
9327
9328 * gcc.c (main): Don't warn about unused -B prefixes
9329 (unused_prefix_warnings): remove
9330
9331 2000-09-11 Kazu Hirata <kazu@hxi.com>
9332
9333 * final.c: Fix formatting.
9334
9335 * integrate.c: Fix formatting.
9336
9337 2000-09-11 Geoff Keating <geoffk@cygnus.com>
9338
9339 * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
9340
9341 2000-09-11 Bernd Schmidt <bernds@redhat.co.uk>
9342
9343 * reload.c (regno_clobbered_p): Fix thinko in previous change.
9344
9345 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
9346
9347 * gcc.1: Document 68hc11 specific options.
9348
9349 2000-09-10 Geoff Keating <geoffk@cygnus.com>
9350
9351 * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
9352 (TARGET_LONG_DOUBLE_128): Define.
9353 (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
9354 (LONG_DOUBLE_TYPE_SIZE): Redefine.
9355 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9356 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
9357 of __LONG_DOUBLE_128__.
9358 (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
9359 passed.
9360 (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
9361 (CPP_SYSV_DEFAULT_SPEC): Define.
9362 (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
9363 (INIT_TARGET_OPTABS): Define.
9364
9365 * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
9366 (RS6000_UITRUNC): Likewise.
9367 (INIT_TARGET_OPTABS): New macro.
9368 * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
9369 (trunc_defined): Delete.
9370 (output_prolog): Don't output .extern definitions for fp->int
9371 conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
9372 * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
9373 (trunc_defined): Delete.
9374 (RS6000_ITRUNC): Moved to aix.h.
9375 (RS6000_UITRUNC): Likewise.
9376 * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
9377 only emit a libcall.
9378 (fixuns_truncdfsi2): Delete.
9379 (trunc_call): Delete.
9380 (trunc_call_rtl): Delete.
9381
9382 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
9383
9384 * varasm.c (make_decl_rtl): Restore leading star on
9385 DECL_ASSEMBLER_NAME set for decls with an asmspec.
9386
9387 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
9388
9389 * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
9390 won't give a spurious error for '#pragma pack()'. Simplify
9391 control flow for readability. 'reset' action is not necessary.
9392
9393 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
9394
9395 * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
9396 SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
9397 LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
9398 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
9399
9400 * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
9401 profile.c, sdbout.c, tradcif.y, tree.c:
9402 Include defaults.h if not already included.
9403 Don't define the above macros.
9404
9405 * Makefile.in: Update dependencies.
9406
9407 2000-09-10 Mark Mitchell <mark@codesourcery.com>
9408
9409 * c-common.h (add_stmt): Change prototype.
9410 (RECHAIN_STMTS): New macro.
9411 (CASE_LABEL_DECL): Likewise.
9412 (genrtl_case_label): Change prototype.
9413 (c_expand_start_case): Remove prototype.
9414 (build_case_label): Change prototype.
9415 (decl_constant_value): Declare.
9416 * c-common.c (check_case_value): Handle C++'s extensions to C
9417 semantics.
9418 * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
9419 field.
9420 * c-parse.in (stmt): Adjust handling of return statements and case
9421 laels.
9422 * c-semantics.c (add_stmt): Return the new statement.
9423 (genrtl_return_stmt): Take the RETURN_STMT as input, not the
9424 returned expression. Directly generate RTL, rather than calling
9425 c_expand_return.
9426 (genrtl_switch_stmt): Don't call c_expand_start_case.
9427 (build_case_label): Take the LABEL_DECL as input, too.
9428 (genrtl_case_label): Just call add_case_node.
9429 (expand_stmt): Adjust calls to genrtl_return_stmt and
9430 genrtl_case_label.
9431 * c-tree.h (c_expand_start_case): Declare.
9432 * c-typeck.c (decl_constant_value): Give it external linkage.
9433 (c_expand_return): Don't call expand_return or expand_null_return;
9434 use genrtl_return_stmt instead.
9435 * stmt.c (struct nesting): Remove num_ranges field.
9436 (add_case_node): Give it external linkage.
9437 (expand_start_case): Don't set num_ranges.
9438 (expand_start_case_dummy): Don't clear it.
9439 (pushcase): Rely on add_case_node to handle `default' labels.
9440 (add_case_node): Handle `default' labels.
9441 * tree.c (tree_int_cst_compare): New function.
9442 * tree.h (tree_int_cst_compare): Declare.
9443 (add_case_node): Likewise.
9444
9445 2000-09-10 Richard Henderson <rth@cygnus.com>
9446
9447 * c-parse.in: Revert last change.
9448 (init_reswords): Do not enter disabled keywords into the ridpointers
9449 table, modulo objc weirdness.
9450 (_yylex): Return the canonical spelling for a keyword.
9451
9452 2000-09-10 Philip Blundell <philb@gnu.org>
9453
9454 * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
9455 * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
9456
9457 Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
9458
9459 * alias.c (find_base_term): Handle ADDRESSOF.
9460 (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
9461
9462 2000-09-10 Denis Chertykov <denisc@overta.ru>
9463
9464 * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
9465 outputting templates with many lines.
9466
9467 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
9468
9469 * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
9470 to decide whether 64-bit support must be generated.
9471
9472 2000-09-10 Richard Henderson <rth@cygnus.com>
9473
9474 * c-parse.in (asm patterns): Fix volatile check.
9475
9476 2000-09-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9477
9478 * cppmacro.c (check_trad_stringification): New function.
9479 (save_expansion): If -Wtraditional, warn about stringification of
9480 macro arguments.
9481
9482 2000-09-11 Michael Hayes <mhayes@cygnus.com>
9483
9484 * loop.h (struct loop_mem_info): Move from loop.c
9485 (struct loop_info): Add fields store_mems, mems, mems_idx,
9486 mems_allocated, unknown_address_altered,
9487 unknown_constant_address_altered, num_mem_sets, and
9488 first_loop_store_insn.
9489
9490 * loop.c (loop_store_mems): Replace with field in loop_info struct.
9491 (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
9492 (unknown_address_altered, unknown_constant_address_altered): Likewise.
9493 (num_mem_sets): Likewise.
9494 (replace_loop_mems, replace_loop_regs): New.
9495 (struct loop_replace_args): New.
9496 (load_mems): Use replace_loop_mems.
9497 (try_copy_prop): Use replace_loop_regs.
9498 (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
9499
9500 2000-09-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
9501
9502 * configure.in: Recognize m6811-elf and m6812-elf.
9503 * configure: Regenerate.
9504
9505 2000-09-09 Geoff Keating <geoffk@cygnus.com>
9506
9507 * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
9508 to operand_subword.
9509
9510 2000-09-10 Michael Hayes <mhayes@cygnus.com>
9511
9512 * loop.c (struct movables): New.
9513 (num_movables): Move into struct movables.
9514 (the_movables): Change type to struct movables.
9515 (ignore_some_movables): Change struct movable arg to struct movables.
9516 (force_movables, combine_movables, regs_match_p): Likewise.
9517 (rtx_equal_for_loop_p, move_movables): Likewise.
9518 (scan_loop): Change movables to be of type struct movables.
9519 Replace last_movable with field in movables structure.
9520
9521 2000-09-08 Zack Weinberg <zack@wolery.cumb.org>
9522
9523 * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
9524 (init_pragma): Avoid warning if pfile happens to be unused.
9525 * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never
9526 define init_pragma to nothing. Always prototype
9527 init_pragma. Prototype dispatch_pragma if !USE_CPPLIB.
9528
9529 * c-lex.c (process_directive): Always call dispatch_pragma.
9530 Initialize entering_c_header to 0.
9531
9532 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
9533
9534 * config/m68hc11/m68hc11.md: New file, machine description for
9535 68HC11 & 68HC12.
9536 * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
9537 * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
9538 * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
9539 * config/m68hc11/m68hc11-protos.h: New file.
9540 * config/m68hc11/m68hc11-crt0.S: New file, startup code.
9541 * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
9542 * config/m68hc11/xm-m68hc11.h: New file, target defs.
9543 * config/m68hc11/larith.asm: New file, libgcc routines.
9544
9545 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
9546
9547 * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
9548 (FPBIT_FUNCS): Add _usi_to_sf.
9549 * config/fp-bit.c (usi_to_float): New function.
9550 * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
9551 (usi_to_float): Add appropriate #define.
9552
9553 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
9554
9555 * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
9556 new functions.
9557 * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
9558 * i386.md (attr "type"): Add sse and mmx types.
9559 (attr "memory"): Handle them without a crash.
9560 (movsi_1, movdi_2): Allow MMX regs.
9561 (movdi splits): Don't split moves involving MMX regs.
9562 (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
9563 (movv4sf_internal, movv4si_internal, movv8qi_internal,
9564 movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
9565 movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
9566 sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
9567 sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
9568 sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
9569 addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
9570 divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
9571 sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
9572 sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
9573 vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
9574 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
9575 cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
9576 addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
9577 subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
9578 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
9579 mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
9580 mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
9581 eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
9582 smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
9583 lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
9584 mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
9585 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
9586 mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
9587 mmx_clrdi): New patterns.
9588
9589 2000-09-08 Richard Earnshaw <rearnsha@arm.com>
9590
9591 * arm.c: Don't include tm.h directly.
9592
9593 Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka <jh@suse.cz>
9594
9595 * recog.c (validate_replace_rtx_1): Fix confusion about equality
9596 testing; simplify subregs of constants and nested subregs.
9597
9598 2000-09-08 Alexandre Oliva <aoliva@redhat.com>
9599
9600 * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
9601
9602 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
9603
9604 * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
9605 VEC_CONCAT.
9606 * rtl.texi (description of USE): Add note about possible pitfalls
9607 with this rtx.
9608 From Richard Henderson:
9609 * reload1.c (choose_reload_regs): Compute need_mode properly.
9610
9611 2000-09-07 Richard Henderson <rth@cygnus.com>
9612
9613 * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
9614 (__modsi3, __umodsi3): Likewise.
9615 (__udivsi3): Likewise. Normalize the TFmode values.
9616
9617 2000-09-07 Geoff Keating <geoffk@cygnus.com>
9618
9619 * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
9620 with a prototype.
9621 * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
9622 warning.
9623
9624 Fri Sep 8 03:26:38 2000 J"orn Rennecke <amylaar@redhat.co.uk>
9625
9626 * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
9627 (cmpeqdi_t): Add output pattern.
9628 (cmpeqdi_t+1): Don't split when not optimizing.
9629 Restore proper splitting operation.
9630
9631 2000-09-07 Richard Henderson <rth@cygnus.com>
9632
9633 * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
9634 do not call dispatch_pragma.
9635
9636 2000-09-07 Jim Wilson <wilson@cygnus.com>
9637
9638 * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
9639 to CLASS_CANNOT_CHANGE_MODE.
9640 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
9641 mode classes are different.
9642
9643 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
9644
9645 * cpplib.h (struct cpp_options): Add user_label_prefix member,
9646 left out of commit which removed cppulp.c.
9647
9648 2000-09-07 Richard Henderson <rth@cygnus.com>
9649
9650 * bb-reorder.c (fixup_reorder_chain): Add jump in new block
9651 after switch for CASE_DROPS_THROUGH.
9652
9653 2000-09-07 Richard Henderson <rth@cygnus.com>
9654
9655 * loop.c (strength_reduce): Call check_ext_dependant_givs.
9656 Properly extend the biv initial value for the giv.
9657 (record_biv): Zero ext_dependant.
9658 (record_giv): New argument ext_val. Update all callers.
9659 (general_induction_var): Likewise.
9660 (consec_sets_giv): Likewise.
9661 (simplify_giv_expr): Likewise. Fill in ext_val if we find
9662 a sign-extend, zero-extend, or truncate.
9663 (combine_givs_p): Make sure modes are compatible.
9664 (check_ext_dependant_givs): New.
9665 (extend_value_for_giv): New.
9666 * loop.h (struct induction): Add ext_dependant.
9667 * unroll.c (iteration_info): Extend the biv initial value for the giv.
9668 (find_splittable_givs): Likewise.
9669 (final_giv_value): Likewise.
9670
9671 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
9672
9673 * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
9674 REGISTER_TARGET_PRAGMAS is defined. Duplicate some
9675 definitions from cpplib.h.
9676 * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
9677 already done it.
9678 * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add
9679 documentation for REGISTER_TARGET_PRAGMAS.
9680
9681 * c-lex.c: Include cpplib.h before c-pragma.h. Define a
9682 default-pragma callback to implement -Wunknown-pragmas if
9683 USE_CPPLIB.
9684 * c-parse.in: Move all includes to top of file.
9685 * c-pragma.c: Include cpplib.h before c-pragma.h. Include
9686 tm_p.h.
9687 (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
9688 warning.
9689 (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
9690
9691 * arm.h, arm-protos.h, arm.c,
9692 c4x.h, c4x-protos.h, c4x.c,
9693 h8300.h, h8300-protos.h, h8300.c,
9694 i370.h, i370-protos.h, i370.c,
9695 i960.h, i960-protos.h, i960.c,
9696 sh.h, sh-protos.h, sh.c,
9697 v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
9698 pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
9699
9700 * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add
9701 multiple include guard.
9702 * i370.md (untyped_call): Use GEN_CALL.
9703 (umodsi3): Remove unused variable.
9704 * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
9705 * v850.c (output_move_single, output_move_double): Constify
9706 return value.
9707 (print_operand): Constify a char *.
9708 * v850.h (struct small_memory_info): Constify name member.
9709
9710 2000-09-07 Kazu Hirata <kazu@hxi.com>
9711
9712 * config/h8300.h: Fix comment typos.
9713 * config/h8300/h8300.md: Likewise.
9714 * config/h8300/lib1funcs.asm: Likewise.
9715
9716 Thu 07-Sep-2000 21:29:00 BST Neil Booth <NeilB@earthling.net>
9717
9718 * Makefile.in: Remove references to cppulp.{c,o}.
9719 * cppinit.c (initialize_builtins, cpp_start_read,
9720 cpp_handle_option): Update to use cpp_options structure.
9721 * cppulp.c: Remove.
9722
9723 2000-09-07 Joseph S. Myers <jsm28@cam.ac.uk>
9724
9725 * c-common.c (time_char_table): Allow %#b and %#h.
9726
9727 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9728
9729 * reorg.c (find_end_label): If the basic block reorder pass moves the
9730 return insn to some other place try to locate it again and put our
9731 end_of_function_label there.
9732 * reorg.c (relax_delay_slots): Check if find_end_label created a
9733 new label that invalidates the current optimazation.
9734
9735 2000-09-07 Catherine Moore <clm@redhat.com>
9736
9737 * unroll.c (unroll_loop): Check for unconditional jumps
9738 to loop continuation. Delete if n_iterations is 1.
9739 (ujump_to_loop_cont): New routine.
9740
9741 2000-09-07 Bernd Schmidt <bernds@redhat.co.uk>
9742
9743 * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
9744 MODE_VECTOR_FLOAT.
9745 * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
9746 to handle multiword modes correctly. All callers and the declaration
9747 changed.
9748
9749 2000-09-06 Mark Mitchell <mark@codesourcery.com>
9750
9751 * c-common.h (prep_stmt): Declare.
9752 (lang_expand_stmt): Likewise.
9753 * c-decl.c (lang_expand_stmt): Remove.
9754 * c-semantics.c (lang_expand_stmt): Define.
9755 (prep_stmt): New function.
9756 (expand_stmt): Handle common statement types here.
9757
9758 2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
9759
9760 * configure.in (sh-*-linux*): Added.
9761 * configure: Rebuilt.
9762 * config/sh/t-linux: New file.
9763 * config/sh/sh.h (USERMODE_BIT): Define.
9764 (TARGET_USERMODE): Likewise.
9765 (TARGET_SWITCHES): New switches for the bits above.
9766 (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
9767 * config/sh/linux.h: New file.
9768 * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
9769 underscore on linux.
9770 (L_sdivsi3, L_udivsi3): Define for linux.
9771 (L_ic_invalidate): Define.
9772 * invoke.texi (SH Options): Document -musermode.
9773
9774 2000-09-07 Alexandre Oliva <aoliva@redhat.com>
9775
9776 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
9777 CSE unless generating PIC.
9778
9779 * config/sh/sh.md (symPLT_label2reg): Force the initialization of
9780 the PIC register.
9781
9782 2000-09-06 H.J. Lu (hjl@gnu.org)
9783
9784 * Makefile.in (clean_s1): Depend on stage_b.
9785 (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
9786 stage2. They are used for "make compare".
9787
9788 2000-09-06 Mark Mitchell <mark@codesourcery.com>
9789
9790 Move statement-tree facilities from C++ to C front-end.
9791 * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
9792 (void_zero_node): New macro.
9793 (struct stmt_tree_s): New type.
9794 (stmt_tree): New typedef.
9795 (struct language_function): New type.
9796 (last_tree): New macro.
9797 (last_expr_type): Likewise.
9798 (walk_tree_fn): New typedef.
9799 (current_stmt_tree): New function.
9800 (begin_stmt_tree): Likewise.
9801 (add_stmt): Likewise.
9802 (finish_stmt_tree): Likewise.
9803 (statement_code_p): Likewise.
9804 (lang_statement_code_p): New variable.
9805 (walk_stmt_tree): New function.
9806 (STMT_IS_FULL_EXPR_P): New macro.
9807 * c-common.c (lang_statement_code_p): New variable.
9808 (c_common_nodes_and_builtins): Initialize void_zero_node.
9809 (statement_code_p): New function.
9810 (walk_stmt_tree): Likewise.
9811 * c-decl.c (language_function): Rename to ...
9812 (c_language_function): ... this. Include language_function.
9813 (push_c_function_context): Adjust accordingly.
9814 (pop_c_function_context): Likewise.
9815 (mark_c_function_context): Likewise.
9816 (current_stmt_tree): Define.
9817 * c-semantics.c (begin_stmt_tree): New function.
9818 (add_stmt): Likewise.
9819 (prune_unused_decls): Likewise.
9820 (finish_stmt_tree): Likewise.
9821
9822 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9823
9824 * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
9825
9826 2000-09-06 Kazu Hirata <kazu@hxi.com>
9827
9828 * calls.c: Fix formatting.
9829
9830 2000-09-06 Graham Stott <grahams@cygnus.co.uk>
9831
9832 * config/i386/i386.h (ADDRESS_COST): Fix typo.
9833
9834 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
9835
9836 Integrated preprocessor.
9837
9838 * Makefile.in: Remove all references to c-parse.gperf,
9839 c-gperf.h, and c-parse.h. Remove -d from yacc command line
9840 generating c-parse.c. Update dependencies.
9841 * c-parse.gperf, c-gperf.h: Delete.
9842
9843 * c-common.c: Don't define parse_options, cpp_token, yy_cur,
9844 yy_lim, or yy_get_token. Don't define get_directive_line if
9845 USE_CPPLIB.
9846 * c-common.h: Add multiple include guard. Define RID values
9847 for every keyword in C, C++, and Objective C. Put all the
9848 modifiers first.
9849 (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
9850 * c-decl.c (c_decode_option): Handle -lang-objc here.
9851 (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
9852 (grokdeclarator): Adjust for new RID scheme.
9853 (extract_interface_info): New stub.
9854 * c-lang.c: Don't declare yy_cur or parse_options.
9855 (lang_init_options): Call cpp_init. Don't call
9856 cpp_options_init.
9857 (lang_init): Don't call check_newline if USE_CPPLIB.
9858
9859 * c-lex.c: Don't include c-parse.h. Do include timevar.h.
9860 Elide lots of unnecessary code if USE_CPPLIB. Delete code
9861 rendered unnecessary by new architecture. Move routines not
9862 shared with C++ to c-parse.in. Maintain a local idea of the
9863 line number. Handle C++ as well as C.
9864 [USE_CPPLIB]: Declare and register callbacks for #ident and
9865 for entering/leaving files.
9866 (init_c_lex, c_lex): Are now the entry points to this file.
9867 (check_newline): Break out directive handling to
9868 process_directive.
9869 (read_ucs, is_extended_char, utf8_extend_token): Moved here
9870 from C++ front end.
9871 (readescape, parse_float): Overhaul.
9872 (lex_number, lex_string, lex_charconst): Break out of c_lex
9873 (n'ee yylex).
9874 (get_fileinfo, update_header_times, dump_one_header,
9875 dump_time_statistics): New and/or moved here from C++.
9876 Support per-file data needed by C++ and per-header timing
9877 statistics (C++ only, at the moment).
9878 * c-lex.h: Update prototypes. Add multiple include guard.
9879 * c-tree.h (struct lang_identifier): Add rid_code field.
9880 (C_IS_RESERVED_WORD, C_RID_CODE): New.
9881
9882 * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
9883 reinit_parse_for_function and/or position_after_white_space.
9884 (save_filename, save_lineno): Look ahead before saving.
9885 (label -> identifier ':'): Save file and line before shifting ':'.
9886 (reservedwords): No need to call get_identifier.
9887 (init_parse, finish_parse, yyerror, yylex, yyprint,
9888 make_pointer_declarator): Are now here for C/ObjC.
9889 (rid_to_yy): Conversion table from RID constants to Yacc codes.
9890
9891 * c-pragma.c: Rewrite parsing logic to fit with cpplib's
9892 #pragma registry. Provide dummy implementation of that
9893 interface if !USE_CPPLIB.
9894 * c-pragma.h: Update to match.
9895
9896 * flags.h: Add multiple include guard.
9897 (flag_detailed_statistics): Moved here from C++.
9898 * toplev.c: Define flag_detailed_statistics.
9899
9900 * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
9901 #if USE_CPPLIB.
9902 * timevar.def (TV_CPP, TV_LEX): New.
9903 * timevar.h: Add multiple include guard.
9904
9905 * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
9906 #if USE_CPPLIB.
9907 * objc/objc-act.c: Don't mention yy_cur or parse_options.
9908 Initialize cpplib properly. Force lineno to 0 after first
9909 call to check_newline. Don't handle -lang-objc here.
9910 Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
9911
9912 2000-09-06 David Edelsohn <edelsohn@gnu.org>
9913
9914 * rs6000.md: Correct function unit definitions for cr_logical and
9915 mtjmpr.
9916 (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
9917 and use portable method for >=0 and floating point >=. Remove
9918 associated matchers.
9919
9920 2000-09-06 Mark Mitchell <mark@codesourcery.com>
9921
9922 * extend.texi: Mark named return value extension as deprecated.
9923
9924 2000-09-06 Geoff Keating <geoffk@cygnus.com>
9925
9926 * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
9927 the result.
9928
9929 2000-09-06 Gabriel Dos Reis <gdr@codesourcery.com>
9930
9931 * toplev.c (display_help): Fix thinko in documentation.
9932
9933 * diagnostic.h (output_buffer::indent_skip): New fields.
9934 (output_indentation): New macro.
9935
9936 * diagnostic.c (output_indent): New function.
9937 (output_set_prefix, clear_diagnostic_info): Use.
9938 (output_emit_prefix): Predict future indentation.
9939
9940 2000-09-06 DJ Delorie <dj@redhat.com>
9941
9942 * Makefile.in (stage_*): add more dependencies to ensure parallel
9943 builds build correctly
9944
9945 2000-09-06 Manfred Hollstein <manfredh@redhat.com>
9946
9947 * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
9948 not bootstrap-lean_f.
9949
9950 2000-09-06 Andreas Schwab <schwab@suse.de>
9951
9952 * mklibgcc.in: Emit rule for libgcc-stage-start.
9953 * Makefile.in (stage1-start, stage2-start, stage3-start,
9954 stage4-start): Don't handle libgcc here, use libgcc.mk instead.
9955
9956 2000-09-06 Bernd Schmidt <bernds@redhat.co.uk>
9957
9958 * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
9959 (update_equiv_regs): Likewise, except for the mn10200 kludge.
9960 (combine_regs): Likewise.
9961
9962 * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
9963 * cse.c: Include "basic-block.h".
9964 (struct table_elt): New field REGCOST.
9965 (CHEAP_REG): Delete macro.
9966 (COST): Return 0 for REGs.
9967 (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
9968 (notreg_cost): Return 0 for appropriate SUBREGs.
9969 (COSTS_N_INSNS): Return N * 2.
9970 (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
9971 SUBREGs.
9972 (CHEAPER): Use new function preferrable.
9973 (insert): Initialize REGCOST member.
9974 (find_best_addr): Use approx_reg_cost for estimation of register
9975 usage.
9976 (cse_insn): Likewise.
9977 * loop.c (iv_add_mult_cost): New function.
9978 (add_cost, shift_cost, mult_cost): Delete variables.
9979 (init_loop): Don't initialize add_cost; reduce copy_cost by half.
9980 (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
9981 Make code that detects autoinc opportunities slightly less optimistic.
9982 (simplify_giv_expr): If expression contains other reg that is also a
9983 giv, only increment benefit if this is the only use of that reg.
9984 (consec_sets_giv): Take that change into account.
9985 (combine_givs): Slightly more verbose output.
9986
9987 * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
9988 not the cost of an equivalent shift.
9989 * sh-protos.h (addsubcosts): Declare.
9990 * sh.c (addsubcosts): New function.
9991 * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
9992 (RTX_COSTS): Tweak. Use addsubcosts.
9993 (ADDRESS_COST): Return higher cost for reg+reg addressing.
9994
9995 2000-09-06 Geoff Keating <geoffk@cygnus.com>
9996
9997 * config/rs6000/rs6000.c (validate_condition_mode): New function.
9998 (branch_comparison_operator): Call validate_condition_mode to
9999 abort rather than returning 0.
10000 (branch_positive_comparison_operator): New function.
10001 (scc_comparison_operator): Call validate_condition_mode to abort
10002 rather than returning 0.
10003 (ccr_bit): Call validate_condition_mode. Update for
10004 new branch scheme.
10005 (print_operand): Delete %C modifier. Update %E case
10006 to use EQ bit not SO bit.
10007 (rs6000_reverse_condition): New function.
10008 (rs6000_generate_compare): New function.
10009 (rs6000_emit_sCOND): New function.
10010 (rs6000_emit_cbranch): New function.
10011 (output_cbranch): The length of a long branch insn is
10012 now only 8 bytes. Add validate_condition_mode. Use
10013 rs6000_reverse_condition. Remove cror generation.
10014
10015 * config/rs6000/rs6000.h: Update comments.
10016 (PREDICATE_CODES): Add new predicate. Update codes used
10017 by branch_comparison_operator and scc_comparison_operator.
10018 * config/rs6000/rs6000-protos.h: Add prototypes for
10019 new external functions.
10020 * config/rs6000/rs6000.md: Add new scheduling parameters
10021 for cr_logical instructions. Change length of branch
10022 instructions.
10023 (bCOND patterns): Call rs6000_emit_cbranch.
10024 (sCOND patterns): Call rs6000_emit_sCOND.
10025 (branch patterns): Change lengths to 4.
10026 (cr logical patterns): New.
10027
10028 2000-09-06 Richard Henderson <rth@cygnus.com>
10029
10030 * config/i386/i386.md (call_pop): Fix test for setting
10031 current_function_uses_pic_offset_table.
10032 (call, call_value_pop, call_value): Likewise.
10033
10034 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
10035
10036 * timevar.c (timevar_add): Delete.
10037 (timevar_get): Also count time since the selected timer was
10038 last updated. Do not examine the timevar stack if the
10039 selected timer is standalone.
10040
10041 2000-09-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
10042
10043 * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
10044
10045 2000-09-05 Jason Merrill <jason@redhat.com>
10046
10047 * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
10048 for 'extern' arrays.
10049
10050 2000-09-05 Richard Henderson <rth@cygnus.com>
10051
10052 * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
10053 Eliminate final copy from non-trapping case.
10054 (__divdf3, __divsf3): Likewise.
10055
10056 2000-09-05 Richard Henderson <rth@cygnus.com>
10057
10058 * config/ia64/ia64.md (mulhi3): Fix typo last change.
10059 * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
10060
10061 2000-09-03 Donn Terry <donn@interix.com>, Laurynas Biveinis <lauras@softhome.net>
10062
10063 * Makefile.in: Restructure bootstrap stages to allow clean
10064 restart after failure.
10065
10066 2000-09-05 Richard Henderson <rth@cygnus.com>
10067
10068 * config/ia64.md (movsi and movdi patterns): Allow moves from
10069 8-bit constants to AR registers.
10070
10071 2000-09-05 Richard Henderson <rth@cygnus.com>
10072
10073 * config/ia64/ia64.md (mulhi3): New.
10074
10075 2000-09-05 Richard Henderson <rth@cygnus.com>
10076
10077 * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
10078 * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
10079 Optimization Guide, minimum latency alternative.
10080 (__moddi3, __udivdi3, __umoddi3): Likewise.
10081 (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
10082
10083 2000-09-05 Bruce Korb <bkorb@gnu.org>
10084
10085 * fixinc/fixincl.c (load_file): always read header files
10086 with sizes that are a multiple of the page size.
10087 & use libiberty's getpagesize for determining that.
10088
10089 2000-09-05 Alexandre Oliva <aoliva@redhat.com>
10090
10091 * gcse.c (hash_string_1): Add prototype.
10092 * cse.c (canon_hash_string): Likewise.
10093
10094 2000-09-04 Craig Newell <CraigN@ieee.org>
10095
10096 * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
10097
10098 2000-09-04 Andreas Schwab <schwab@suse.de>
10099
10100 * Makefile.in (STAGESTUFF): Remove libgcc.
10101 (stage1-start, stage2-start, stage3-start): Copy the contents of
10102 the libgcc directory explicitly.
10103 (mostlyclean): Clean libgcc.
10104
10105 2000-09-04 Andrew Haley <aph@redhat.com>
10106
10107 * dwarf2out.c: (stack_adjust_offset): New prototype.
10108
10109 Wed Jan 1 00:23:59 MET 1997 Jan Hubicka <jh@suse.cz>
10110
10111 * combine.c (make_extraction): Fix rtx_cost comparison to
10112 match the comment.
10113
10114 Wed Jan 1 00:17:32 MET 1997 Jan Hubicka <jh@suse.cz>
10115
10116 * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
10117 umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
10118 Add '*' to insn pattern name.
10119
10120 2000-09-04 Jakub Jelinek <jakub@redhat.com>
10121
10122 * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
10123 use posn - 1 to index into tokens array.
10124 (maybe_paste_with_next): Adjust caller.
10125
10126 2000-09-03 Geoff Keating <geoffk@cygnus.com>
10127
10128 * invoke.texi: Document the -mvxworks option for rs6000 ELF.
10129
10130 * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
10131 (REGNO_REG_CLASS): Use symbolic register
10132 names.
10133
10134 2000-09-03 Richard Earnshaw <rearnsha@arm.com>
10135
10136 * arm.c (final_prescan_insn): If the form of a jump insn isn't
10137 recognized, don't try to conditionally execute it.
10138
10139 Sun Sep 3 13:10:56 2000 Denis Chertykov <denisc@overta.ru>
10140
10141 * config/avr/avr.md ("*tablejump_lib"): New pattern.
10142 (call_value_insn): Right length claculation.
10143 (call_insn): Likewise.
10144
10145 2000-09-02 Marek Michalkiewicz <marekm@linux.org.pl>
10146
10147 * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
10148 gas_output_limited_string, gas_output_ascii, output_movqi,
10149 output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
10150 out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
10151 out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
10152 ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
10153 lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
10154 out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
10155 Add "const" as needed to remove warnings.
10156
10157 * config/avr/avr.c (avr_override_options, avr_init_once,
10158 function_prologue, function_epilogue, frame_pointer_required_p,
10159 class_likely_spilled_p, order_regs_for_local_alloc,
10160 avr_address_cost, avr_ret_register): Use K&R style arguments.
10161 (initial_elimination_offset, gas_output_limited_string):
10162 Remove ATTRIBUTE_UNUSED from the used arguments.
10163 (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
10164 Use local variables src, dest, base to access operands[].
10165 Rename reg_dest to reg_src if that's what it is.
10166 (output_movhi, output_movsisf): Optimize loading 8-bit immediate
10167 constants to LD_REGS if reg_was_0.
10168 (output_reload_insisf): Change arg 3 to insn length and set it.
10169 (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
10170 access to 16-bit I/O register pairs.
10171 (avr_address_cost): Lower cost for the above case.
10172 (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
10173 may be clobbered, also for LD_REGS.
10174 (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
10175 with a CONST_INT.
10176
10177 * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
10178
10179 * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
10180 macro to test_hard_reg_class function.
10181 (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
10182 for loading immediate constants to LD_REGS.
10183 (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
10184
10185
10186 Sat Sep 2 13:58:23 2000 Marek Michalkiewicz <marekm@linux.org.pl>
10187
10188 * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
10189 * config/avr/libgcc.S: Lost part of the previous patch.
10190
10191 2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
10192
10193 * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
10194 object before calling pthread_mutex_init.
10195
10196 2000-09-02 Alexandre Oliva <aoliva@redhat.com>
10197
10198 * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
10199 config/sh/crtn.asm: New files.
10200 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
10201 (crt1.o, crti.o, crtn.o): New targets.
10202 * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
10203 sh/t-elf.
10204 * configure: Rebuilt.
10205 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
10206 STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
10207 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
10208 Undefine for config/elfos.h to redefine.
10209 (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
10210
10211 2000-09-02 Alexandre Oliva <aoliva@redhat.com>, Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
10212
10213 * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
10214 legitimize_pic_address, output_pic_addr_const): Declare.
10215 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
10216 (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
10217 (TARGET_SWITCHES): New switch -mprefergot.
10218 (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
10219 (PIC_OFFSET_TABLE_REGNUM): Define.
10220 (GOT_SYMBOL_TABLE): Likewise.
10221 (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
10222 (ENCODE_SECTION_INFO): Define.
10223 (FINALIZE_PIC): New macros.
10224 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
10225 (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
10226 * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
10227 (prepare_move_operands): Call emit_pic_move or
10228 emit_pic_const_move if appropriate.
10229 (output_far_jump): For PIC, use braf and output long offset.
10230 (machine_dependent_reorg):
10231 (sh_expand_prologue): Save and initialize the PIC register.
10232 (sh_expand_epilogue): Restore it.
10233 (initial_elimination_offset): Account for it.
10234 (nonpic_symbol_mentioned_p): New function.
10235 (legitimize_pic_address): Likewise.
10236 (output_pic_addr_const): Likewise.
10237 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
10238 (call, call_value): Use them.
10239 (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
10240 symPLT_label2reg): New expands.
10241 * invoke.texi (SH Options): Document -mprefergot.
10242
10243 2000-09-01 Alexandre Oliva <aoliva@redhat.com>
10244
10245 * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
10246 * gcse.c (hash_string_1): New function.
10247 (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
10248 (expr_equiv_p) <ASM_OPERANDS>: Likewise.
10249 * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
10250 (canon_hash_string): New function.
10251 (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
10252 (exp_equiv_p) <ASM_OPERANDS>: Likewise.
10253 (fold_rtx): Use ASM_OPERANDS accessor macros.
10254 * emit-rtl.c (copy_insn_1): Likewise.
10255 * integrate.c (copy_rtx_and_substitute): Likewise.
10256 * stmt.c (expand_asm_operands): Likewise. Give an
10257 ASM_OPERANDS rtx the mode of the output reg being set from it.
10258
10259 2000-09-01 Fred Fish <fnf@be.com>
10260
10261 * fix-header.c (write_rbrac): Add putc and getc to list of
10262 functions to protect against prior definition as a macro.
10263
10264 2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
10265
10266 * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
10267 (c_size_type_node): Define.
10268 * c-decl.c (init_decl_processing): Initialize c_size_type_node.
10269 * c-common.c (enum format_lengths, enum format_std_version,
10270 format_length_info, format_type_detail, BADLEN, NOLENGTHS,
10271 format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
10272 T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
10273 T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
10274 T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
10275 TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
10276 format_types): Define.
10277 (format_char_info, print_char_table, scan_char_table,
10278 time_char_table): Rearrange for new organization of information
10279 about format length modifiers and standard versions.
10280 (T_ST): Redefine to use c_size_type_node.
10281 (check_format_info): Obtain information about length modifiers and
10282 standard versions from tables. Adjust warning message wordings.
10283 Use the name from the user's program for `ll' and `hh' length
10284 modifiers in warning messages. Use more informative names for
10285 wanted types where available (for wchar_t, wint_t, size_t, signed
10286 size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
10287
10288 2000-09-01 Jim Wilson <wilson@cygnus.com>
10289
10290 * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
10291 * combine.c (distribute_notes): Handle REG_NORETURN.
10292 * rtl.c (reg_note_name): Add REG_NORETURN.
10293 * rtl.h (enum reg_note): Likewise.
10294
10295 * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
10296 ia64_file_start.
10297 * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
10298 (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
10299 (emit_predicate_relation_info): Handle conditional calls with
10300 REG_NORETURN.
10301 * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
10302 instead of ia64_file_start.
10303 * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
10304 * config/ia64/ia64.md (safe_across_calls_all,
10305 save_across_calls_normal): New patterns.
10306
10307 * loop.c (check_final_value): Check for biv use before checking for
10308 giv use. Check for both biv and giv uses. Always set last_giv_use
10309 if there is a giv use.
10310
10311 2000-09-01 Richard Henderson <rth@cygnus.com>
10312
10313 * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
10314 (madddi3): Likewise.
10315 (maddsi3): New.
10316
10317 Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10318
10319 * expr.c (clear_storage): Don't use emit_move_insn unless
10320 either BLKmode or proper size.
10321 (store_constructor): Don't call clear_storage if REG of wrong size.
10322
10323 * flow.c (init_propagate_block_info): Don't mark frame dead at end
10324 of function if returns wiht stack pointer depressed.
10325
10326 2000-09-01 Andrew Haley <aph@redhat.com>
10327
10328 * dwarf2out.c (stack_adjust_offset): New function.
10329 (dwarf2out_stack_adjust): Break out stack adjust logic into
10330 new stack_adjust_offset function. Look inside parallels and
10331 sequences for stack adjustments.
10332
10333 2000-08-31 Jeff Law <law@cygnus.com>
10334
10335 * arm.md: Use no_new_pseudos to determine when it is safe
10336 to create new pseudo registers.
10337
10338 * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
10339 when we can safely allocate new registers.
10340
10341 2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
10342
10343 * stmt.c (expand_asm_operands): Twiddle generating_concat_p
10344 so that CONCATs are not generated for ASMs.
10345 * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
10346 not generating_concat_p.
10347 * function.c (pop_function_context_from): Reset
10348 generating_concat_p.
10349 (prepare_function_start): Likewise.
10350 * rtl.c (generating_concat_p): Define.
10351 * rtl.h (generating_concat_p): Declare.
10352 * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
10353
10354 2000-08-22 Philipp Thomas <pthomas@suse.de>
10355 Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
10356
10357 * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
10358 for translation.
10359
10360 2000-08-30 Greg McGary <greg@mcgary.org>
10361
10362 * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
10363 * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
10364 * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
10365
10366 2000-08-30 Greg McGary <greg@mcgary.org>
10367
10368 * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
10369 (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
10370 (TREE_INT_CST): New macro.
10371 * varasm.c (const_hash, compare_constant_1, record_constant_1):
10372 Use new macro TREE_INT_CST.
10373
10374 Wed 30-Aug-2000 23:18:59 BST Neil Booth <NeilB@earthling.net>
10375
10376 * contrib.texi: Add self.
10377
10378 2000-08-30 Alexandre Oliva <aoliva@redhat.com>
10379
10380 * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
10381 (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
10382 and labels.
10383
10384 2000-08-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
10385
10386 * fixinc/gnu-regex.c: Don't define `const'.
10387
10388 Tue Aug 29 22:09:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10389
10390 * expr.c (store_constructor): Allow variable bounds of array type.
10391 (expand_expr): Don't blow up if type is ERROR_MARK.
10392 * varasm.c (output_constructor): Don't access lower bound of array
10393 type unless need it if index is supplied (so it can be a variable
10394 if no index is supplied).
10395 Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
10396 Other minor cleanups.
10397
10398 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
10399
10400 * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
10401 for compilations in stage 1 and subsequent stages, respectively.
10402 * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
10403 * configure: Rebuilt.
10404 * x-vax, x-vax-gcc: Deleted.
10405
10406 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
10407
10408 * c-common.c (declare_function_name): Use func_id_node,
10409 function_id_node, and pretty_function_id_node. Do not make
10410 __func__ visible at file scope.
10411 * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
10412 CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
10413 (function_id_node, pretty_function_id_node, func_id_node): New
10414 macros.
10415 * c-decl.c (init_decl_processing): Initialize function_id_node,
10416 pretty_function_id_node, and func_id_node.
10417 (c_make_fname_decl): Correct comment.
10418
10419 * tree.h (struct tree_identifier): Constify pointer member.
10420
10421 * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
10422 * c-pragma.h (struct weak_syms): Constify name and value members.
10423 (add_weak): Constify arguments.
10424
10425 * calls.c (special_function_p): Constify a char *.
10426 (expand_call): Remove variable which is initialized and then
10427 never used.
10428 * dependence.c (struct def_use, struct induction, struct subscript):
10429 Constify 'variable' member.
10430 (get_low_bound, have_induction_variable): Constify char * argument.
10431 (find_induction_variable): Add braces to avoid dangling else.
10432 (classify_dependence): Constify char * arrays.
10433 * profile.c (output_func_start_profiler): Constify a char *.
10434 * stor-layout.c (finalize_record_size): Constify a char *.
10435 * tree.c (is_attribute_p): Constify a char *.
10436 * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
10437
10438 * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
10439 for comprehensibility. Do not call get_identifier if we did
10440 not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to
10441 create temporary string constants, not ggc_alloc_string. No
10442 need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const
10443 char * to hold IDENTIFIER_POINTERs.
10444
10445 2000-08-29 Richard Henderson <rth@cygnus.com>
10446
10447 * config/ia64/ia64.md (muldi3): Use grfr_register_operand
10448 for the inputs.
10449
10450 2000-08-29 Richard Henderson <rth@cygnus.com>
10451
10452 * reload.c (push_secondary_reload): Allow class == reload_class
10453 if we're using a reload_in/out pattern.
10454
10455 * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use
10456 the half that does not conflict with the reload register.
10457 (reload_outti): Likewise.
10458
10459 2000-08-29 Kazu Hirata <kazu@hxi.com>
10460
10461 * reload.c: Fix formatting.
10462
10463 * stmt.c: Fix formatting.
10464
10465 * gcc.c: Fix formatting.
10466
10467 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
10468
10469 * flags.h (time_report, mem_report): New global flags.
10470 * toplev.c: Define time_report and mem_report.
10471 (f_options): Add -ftime-report and -fmem-report.
10472 (compile_file): Turn on time_report if quiet_flag is off.
10473 Call ggc_print_statistics at very end if mem_report is on.
10474 * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
10475
10476 * ggc-common.c (ggc_print_statistics): Rename to
10477 ggc_print_common_statistics; all callers changed. Scale
10478 quantities above 10K to kilobytes and above 10M to megabytes.
10479 * ggc-page.c (ggc_page_print_statistics): Rename to
10480 ggc_print_statistics. Report memory consumed by internal data
10481 structures for each allocation bucket. Scale quantities above
10482 10K to kilobytes and above 10M to megabytes.
10483 * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
10484 Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
10485 Define tally_leaves always.
10486 (ggc_print_statistics): New function.
10487 * ggc.h: Adjust for renamed functions.
10488
10489 Wed Aug 30 00:11:42 2000 Denis Chertykov <denisc@overta.ru>
10490
10491 * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
10492 output_movsisf instead of which_alternative.
10493
10494 * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
10495
10496 Tue Aug 29 22:29:58 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
10497
10498 * config/avr/avr-protos.h: (avr_output_ascii) Removed.
10499 (avr_progmem_p): New prototype.
10500 (output_movsisf): Prototype declaration changed.
10501 (output_movqi): New prototype.
10502 (output_movhi): New prototype.
10503 (call_insn_operand): Likewise.
10504 (final_prescan_insn): Likewise.
10505 (avr_simplify_comparision_p): Likewise.
10506 (avr_normalize_condition): Likewise.
10507 (compare_eq_p): Likewise.
10508 (out_shift_with_cnt): Likewise.
10509 (const_int_pow2_p): Likewise.
10510 (output_reload_inhi): Prototype declaration changed.
10511
10512 * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
10513 (ldi_reg_rtx): New. rtx for r31.
10514 (avr_init_stack): Initialize as "__stack".
10515 (function_prologue): Use it.
10516 Replace all TARGET_ENHANCED with AVR_ENHANCED.
10517 (avr_mcu_name): Initialize as "avr2".
10518 (avr_enhanced_p, avr_mega_p): New variables.
10519 (mcu_types, avr_override_options): Handle all known MCU types.
10520 Also handle avr1 (only preprocess, assemble and link).
10521 (print_operand): Using of `%K' in output template removed.
10522 (out_movqi_r_mr): Optimized.
10523 (out_movhi_r_mr): Likewise.
10524 (output_movqi): New function.
10525 (output_movhi): Likewise.
10526 (out_movsi_r_mr): Optimized.
10527 (output_movsisf): Compute insn length for `adjust_insn_length'
10528 (out_movqi_mr_r): Optimized.
10529 (out_movhi_mr_r): Optimized.
10530 (adjust_insn_length): Use output_movsisf, output_movqi,
10531 output_movhi for insn length adjusting.
10532 (reg_unused_after): Use dead_or_set_p.
10533 (preferred_reload_class): Now havn't any restriction.
10534 (reg_was_0): New function.
10535 (io_address_p): Likewise.
10536 (const_int_pow2_p): Likewise.
10537 (output_reload_inhi): Likewise.
10538 (output_reload_insisf): Likewise.
10539
10540 * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
10541 (LIB_SPEC): Use -lc for all supported devices.
10542 (LIBGCC_SPEC): Use -lgcc for all supported devices.
10543 (AVR_MEGA): Define as avr_mega_p.
10544 (AVR_ENHANCED): New, define as avr_enhanced_p.
10545 (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
10546 (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
10547 (CRT_BINUTILS_SPECS): Handle all known MCU types.
10548 Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
10549 (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
10550 (ASM_SPEC): Pass -mmcu=... to the assembler.
10551 Change all -DAVR_* to -D__AVR_*__.
10552 (INIT_TARGET_OPTABS), config/avr/libgcc.S:
10553 Rename library functions to start with two underscores.
10554 (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
10555 alignment.
10556 (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
10557 (SUPPORTS_WEAK): Likewise.
10558 (LDI_REG_REGNO): New. Register r31 will be used as temporary
10559 register for loading constants to r0-r14.
10560
10561 * config/avr/avr.md: Replace all TARGET_ENHANCED with
10562 AVR_ENHANCED.
10563 (*mov_r_sp): Removed. Handled by output_movhi.
10564 (*mov_sp_r): Likewise.
10565 (*mov_sp_r_no_interrupts): Likewise
10566 (*mov_sp_r_tiny): Likewise.
10567 (*movqi): Use output_movqi.
10568 (*reload_inqi): New.
10569 (*movhi): Use output_movhi.
10570 (*reload_inhi): New.
10571 (*negsi2): Optimized.
10572 (*negsf2): Likewise.
10573 Added peepholes (define_peephole2) for loading constants to r0-r14
10574 and for using `cpse' command.
10575
10576 * config/avr/libgcc.S: Rename library functions to start with two
10577 underscores.
10578 Add support for enhanced core.
10579 (_moqhi3): Fix typo, now _modqi3.
10580 (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
10581 (__prologue_saves__): Remove test for stack adjust by 0.
10582 (__tablejump__): New.
10583
10584 * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
10585 Add multilib support.
10586
10587 Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com)
10588
10589 * loop.c (prescan_loop): Don't check unknown_address_altered
10590 when deciding if insert_loop_mem is safe. Add BLKmode MEMs
10591 to loop_store_mems as necessary.
10592 (loop_invariant_p): Don't check unknown_address_altered
10593 or unknown_constant_address_altered.
10594
10595 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
10596
10597 * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
10598
10599 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
10600
10601 * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
10602 print just the filename.
10603 * cpplex.c (_cpp_run_directive): Add additional argument, the
10604 name to give the synthetic buffer. This defaults to
10605 translated "<command line>".
10606 * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
10607 Adjust to match.
10608 (_cpp_define_builtin): New function.
10609 * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
10610 * cpphash.h: Update prototypes.
10611
10612 * tradcpp.c (main): Process -D and -U simultaneously, in the
10613 order they appeared on the command line.
10614
10615 2000-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10616
10617 * c-decl.c (define_label): Call warning_with_file_and_line and
10618 error_with_file_and_line instead of plain warning or error.
10619
10620 * c-parse.in (label): Use save_filename/save_lineno to ensure
10621 correct values for calls to define_label.
10622
10623 2000-08-29 Mark Mitchell <mark@codesourcery.com>
10624
10625 * calls.c (expand_call): Don't create a VAR_DECL just to throw it
10626 away.
10627 * expr.c (expand_expr, case TARGET_EXPR): Don't call
10628 mark_addressable.
10629 * tree.h (get_file_function_name): Remove two duplicate
10630 declarations.
10631
10632 2000-08-28 Kazu Hirata <kazu@hxi.com>
10633
10634 * tree.c: Fix formatting.
10635
10636 * xcoffout.c: Fix formatting.
10637
10638 2000-08-28 Jason Merrill <jason@redhat.com>
10639
10640 * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
10641
10642 2000-08-28 Daniel Berlin <dberlin@redhat.com>
10643
10644 * dwarf2out.c (dwarf2out_finish): Don't bother calling
10645 break_out_includes if it won't do anything.
10646
10647 2000-08-28 Richard Henderson <rth@cygnus.com>
10648
10649 * reload.c (push_secondary_reload): Revert 2000-08-16 change.
10650 (find_reloads): Likewise.
10651 * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
10652 (reload_inhi): Likewise.
10653
10654 2000-08-28 Richard Henderson <rth@cygnus.com>
10655
10656 * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
10657 (call_insn_operand): Don't expect a surrounding mem.
10658 (constant_call_address_operand): Likewise.
10659 * config/i386/i386.h (PREDICATE_CODES): Update.
10660 * config/i386/i386.md (call patterns): Move the match_operand
10661 for the call destination inside the mem.
10662
10663 2000-08-28 Richard Henderson <rth@cygnus.com>
10664
10665 * local-alloc.c (requires_inout): Don't use reserved range for
10666 EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
10667 * recog.c (asm_operand_ok): Likewise.
10668 (preprocess_constraints, constrain_operands): Likewise.
10669 * regclass.c (record_reg_classes): Likewise.
10670 * reload.c (find_reloads): Likewise.
10671 * reload1.c (maybe_fix_stack_asms): Likewise.
10672 (reload_cse_simplify_operands): Likewise.
10673 * stmt.c (expand_asm_operands): Likewise.
10674
10675 * md.texi: Update constraints documentation.
10676 * tm.texi (EXTRA_CONSTRAINT): Update.
10677
10678 2000-08-28 Daniel Berlin <dberlin@redhat.com>
10679
10680 * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
10681 (print_die): If we don't know the offset of the
10682 target die, try the symbol. Add a trailing newline.
10683 (reverse_all_dies): New fn.
10684 (dwarf2out_finish): Call it.
10685 (break_out_includes): Reorganize for clarity.
10686 (add_sibling_attributes): Don't call reverse_die_lists.
10687 (output_comp_unit): Rename from output_comdat_comp_unit. Use for
10688 primary CU, too.
10689 * flags.h: Add flag_eliminate_dwarf2_dups.
10690 * toplev.c (f_options): Support -feliminate-dwarf2-dups.
10691
10692 2000-08-28 Jason Merrill <jason@redhat.com>
10693
10694 * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
10695 * dwarf2out.c: #include "md5.h".
10696 (DIE_LABEL_PREFIX): New macro.
10697 (dw_val_struct): Add 'external' flag to val_die_ref.
10698 (add_AT_die_ref, AT_ref): Adjust.
10699 (AT_ref_external, set_AT_ref_external): New fns.
10700 (build_abbrev_table): Call set_AT_ref_external.
10701 (value_format): Call AT_ref_external.
10702 (die_struct): Add die_symbol field.
10703 (new_die): Clear it.
10704 (dwarf_tag_name): Handle BINCL/EINCL.
10705 (dwarf2out_start_source_file): Add BINCL DIE.
10706 (dwarf2out_end_source_file): Add EINCL DIE.
10707 (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
10708 (loc_checksum, attr_checksum, die_checksum): New fns.
10709 (is_type_die, is_comdat_die, is_symbol_die): New fns.
10710 (compute_section_prefix, assign_symbol_names): New fns.
10711 (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
10712 (output_die): Call output_die_symbol and AT_ref_external.
10713 (output_comdat_comp_unit): New fn, split out from...
10714 (dwarf2out_finish): ...here. Also call add_sibling_attributes for
10715 secondary CUs.
10716 (output_pubnames, output_aranges): Abort if we see entries from
10717 secondary CUs.
10718 * toplev.h: Declare file_name_nondirectory.
10719 * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
10720 (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
10721 (debug_start_source_file): Call dwarf2out_start_source_file
10722 regardless of debug verbosity.
10723 (debug_end_source_file): Similarly.
10724 * tree.h: Declare clean_symbol_name.
10725 * tree.c (clean_symbol_name): Split out from...
10726 (get_file_function_name_long): ...here.
10727
10728 * dwarf2out.c (new_loc_descr): Use calloc.
10729 (splice_child_die): Remove the die from the right parent.
10730 (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
10731
10732 Mon Aug 28 19:02:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10733
10734 * toplev.c (decode_g_option): Don't give warning for unknown -g
10735 option; return 0 instead.
10736 (main): If -g option is not recognized by front end or
10737 language-independent code, give warning.
10738
10739 2000-08-28 Greg McGary <greg@mcgary.org>
10740
10741 * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
10742 * config/i386/i386.c (ix86_expand_compare): Remove `static'.
10743 * config/i386/i386.md (trap, conditional_trap): New insn & expand.
10744
10745 2000-08-27 Greg McGary <greg@mcgary.org>
10746
10747 * cpplex.c (parse_string): Don't look for backslash
10748 before first char in `namebuf'.
10749 * loop.c (strength_reduce): Skip NOTEs.
10750
10751 2000-08-27 Jason Merrill <jason@redhat.com>
10752
10753 * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
10754 DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or
10755 TREE_ASM_WRITTEN, either.
10756 (finish_decl): Adjust.
10757
10758 2000-08-28 Philipp Thomas <pthomas@suse.de>
10759
10760 * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
10761 they have been incorporated into the gettext CVS. Change the text to
10762 reflect the current status of NLS. Add instructions for accessing
10763 the gettext CVS and add the patch from Martin v. Loewis.
10764
10765 2000-08-27 Geoff Keating <geoffk@cygnus.com>
10766
10767 * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
10768 by using gen_lowpart_common.
10769 (movdi_internal64+6): Likewise.
10770
10771 2000-08-26 Alexandre Oliva <aoliva@redhat.com>
10772
10773 * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
10774 Document.
10775
10776 * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
10777 numbers to the ranges used by GDB.
10778
10779 2000-08-25 Richard Henderson <rth@cygnus.com>
10780
10781 * config/ia64/ia64.h (struct machine_function): Add n_varargs.
10782 * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
10783 (ia64_expand_prologue): Likewise.
10784 (ia64_setup_incoming_varargs): Set it. Properly skip the current
10785 argument for stdargs.
10786
10787 2000-08-25 Jason Merrill <jason@redhat.com>
10788
10789 * integrate.c (expand_inline_function): Pull out the original decl.
10790
10791 2000-08-25 Jim Wilson <wilson@cygnus.com>
10792
10793 * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
10794
10795 * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
10796
10797 2000-08-25 Greg McGary <greg@mcgary.org>
10798
10799 * flow.c (dump_edge_info): Use ARRAY_SIZE.
10800 * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
10801
10802 2000-08-25 Richard Earnshaw <rearnsha@arm.com>
10803
10804 * arm.h (STRUCT_VALUE): Define to 0, not NULL.
10805
10806 Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com)
10807
10808 * i386.c (ix86_find_base_term): New.
10809 * i386-protos.h (ix86_find_base_term): Prototype.
10810 * i386.h (FIND_BASE_TERM): Define.
10811 * alias.c (find_base_term): Use it.
10812 * tm.texi (FIND_BASE_TERM): Document it.
10813
10814 * alias.c (true_dependence, write_dependence_p): Unchanging
10815 memory can't conflict with non-unchanging memory.
10816
10817 * alias.c (memrefs_conflict_p): A BLKmode reference
10818 to a symbol (or CONST_INT address) always conflicts
10819 with a reference to another symbol.
10820
10821 2000-08-25 Joseph S. Myers <jsm28@cam.ac.uk>
10822
10823 * c-common.c (time_char_table): Don't allow width and flags with
10824 "z" format.
10825
10826 2000-08-25 Jakub Jelinek <jakub@redhat.com>
10827
10828 * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
10829 way as LT and LTU when the second operand has 0 in low word.
10830
10831 2000-08-26 Michael Hayes <mhayes@cygnus.com>
10832
10833 * basic-block.h (struct loop): Rename `exits' field to
10834 `exit_edges'. Add `entry_edges' and `num_entries' fields.
10835
10836 * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
10837 (flow_loop_entry_edges_find): Add.
10838 (flow_edge_list_print): Rename from flow_exits_print.
10839 (flow_loops_find): Call flow_loop_entry_edges_find.
10840 (flow_loop_dump): Dump entry_edges list.
10841 (flow_loops_free): Free entry_edges.
10842
10843 2000-08-26 Michael Hayes <mhayes@cygnus.com>
10844
10845 * loop.c (loop_dump_aux, debug_loop): New functions.
10846 (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
10847
10848 * flow.c (flow_loops_dump): Add callback parameter.
10849 (flow_loop_dump): Add callback parameter and call it. Move
10850 loop note debugging code to loop_dump_aux.
10851
10852 * basic-block.h (flow_loop_dump): Add callback parameter
10853 (flow_loops_dump): Likewise.
10854
10855 * toplev.c (rest_of_compilation): Add NULL callback function pointer
10856 to call to flow_loops_dump.
10857
10858 2000-08-26 Michael Hayes <mhayes@cygnus.com>
10859
10860 * loop.c (count_loop_regs_set): Replace start and end arguments
10861 with loop argument. All callers udated.
10862
10863 2000-08-26 Michael Hayes <mhayes@cygnus.com>
10864
10865 * loop.c (constant_high_bytes): Delete.
10866
10867 2000-08-26 Michael Hayes <mhayes@cygnus.com>
10868
10869 * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
10870 and NOTE_INSN_LOOP_VTOP to...
10871 (find_and_verify_loops) ...here.
10872
10873 Fri Aug 25 04:21:13 2000 Alexandre Oliva <aoliva@redhat.com>
10874
10875 * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
10876 (fini_dummy, init_dummy): Use it.
10877
10878 Fri 25-Aug-2000 08:03:27 BST Neil Booth <NeilB@earthling.net>
10879
10880 * cpplex.c (is_macro_disabled): Caller has already checked
10881 that we're not a preprocessed file.
10882
10883 2000-08-24 Mark Mitchell <mark@codesourcery.com>
10884
10885 * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
10886 (c-iterate.o): Remove target.
10887 * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
10888 * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
10889 (finish_decl): Don't handle iterators.
10890 (grokdeclarator): Likewise.
10891 * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
10892 * gcc/c-gperf.h: Regenerated.
10893 * gcc/c-iterate.c: Removed.
10894 * gcc/c-lex.c (init_lex): Don't handle iterators.
10895 * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
10896 (compstmt_primary_start): Remove push_iterator_stack call.
10897 (stmt): Don't allow iterator statements. Replace iterator_expand
10898 with expand_expr_stmt.
10899 (all_iter_stmt): Remove.
10900 (all_iter_stmt_simple): Likewise.
10901 (all_iter_stmt_with_decl): Likewise.
10902 * gcc/c-tree.h (ITERATOR_P): Remove.
10903 (ITERATOR_BOUND_P): Likewise.
10904 (init_iterators): Remove declaration.
10905 (iterator_expand): Likewise.
10906 (iterator_for_loop_start): Likewise.
10907 (iterator_for_loop_end): Likewise.
10908 (iterator_for_loop_record): Likewise.
10909 (push_iterator_stack): Likewise.
10910 (pop_iterator_stack): Likewise.
10911 * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
10912 (readonly_warning): Likewise.
10913 * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
10914
10915 2000-08-24 Jim Wilson <wilson@cygnus.com>
10916
10917 * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
10918 Copy type in a TYPE_DECL, just like pushdecl does.
10919
10920 2000-08-24 Richard Henderson <rth@cygnus.com>
10921
10922 * toplev.c (main): Enable flag_reorder_blocks at -O2.
10923
10924 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
10925
10926 * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
10927 asked for one page, allocate GGC_QUIRE_SIZE of them and put
10928 the extras on the free list.
10929 (release_pages): Clean up.
10930 (ggc_set_mark): Don't adjust G.allocated here...
10931 (sweep_pages): ... do it here.
10932
10933 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
10934
10935 * cppfiles.c (read_include_file): Rearrange initializations.
10936
10937 2000-08-24 Richard Henderson <rth@cygnus.com>
10938
10939 * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
10940
10941 * config/ia64/ia64-protos.h: Update.
10942 * config/ia64/ia64.c (gr_register_operand): New.
10943 (fr_register_operand, grfr_register_operand): New.
10944 (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
10945 (grfr_reg_or_8bit_operand): New.
10946 (gr_reg_or_0_operand): Rename from reg_or_0_operand and
10947 use gr_register_operand.
10948 (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
10949 (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
10950 (gr_reg_or_8bit_and_adjusted_operand): Likewise.
10951 (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
10952 (fr_reg_or_fp01_operand): Likewise.
10953 (not_postinc_memory_operand): New.
10954 (ia64_split_timode): Remove unused variables.
10955 (rtx_needs_barrier): Check arguments to cmpxchg.
10956 (builtin_description): Remove.
10957 (bdesc_2argsi, bdesc_2argdi): Remove.
10958 (ia64_init_builtins): Declare all builtins directly.
10959 (ia64_expand_fetch_and_op): Rewrite to be called from
10960 ia64_expand_builtin directly. Use expand_binop and co.
10961 (ia64_expand_op_and_fetch): Likewise.
10962 (ia64_expand_compare_and_swap): Likewise.
10963 (ia64_expand_binop_builtin): Remove.
10964 (ia64_expand_lock_test_and_set): New.
10965 (ia64_expand_lock_release): New.
10966 (ia64_expand_builtin): Use them.
10967 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
10968 (EXTRA_CONSTRAINT): Use it.
10969 (PREDICATE_CODES): Update.
10970 * config/ia64/ia64.md (*): Use gr_register_operand and co.
10971 (mf): Indicate that we set memory as well as use it.
10972 (fetchadd_acq_si): Show memory being modified as well.
10973 (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
10974 (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
10975 (lock_test_and_set_si, lock_test_and_set_di): Remove.
10976 (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
10977 (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
10978 (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
10979 (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
10980 (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
10981 (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
10982 (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
10983 (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
10984 * config/ia64/ia64intrin.h (*): Cast result to the appropriate
10985 return type. Pretty print definitions.
10986
10987 2000-08-24 Jim Wilson <wilson@cygnus.com>
10988
10989 * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
10990 we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
10991
10992 2000-08-24 Jason Merrill <jason@redhat.com>
10993
10994 * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
10995 AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
10996 (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
10997 get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
10998
10999 2000-08-24 Greg McGary <greg@mcgary.org>
11000
11001 * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
11002 and extendtab within their proper array boundaries.
11003 * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
11004 for the entire array.
11005
11006 * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
11007 * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
11008 * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
11009 * config/fr30/fr30.c (fr30_print_operand): Likewise.
11010 * config/i386/dgux.c (output_options): Likewise.
11011 * config/i386/dgux.h (ASM_FILE_START): Likewise.
11012 * config/m88k/m88k.c (output_options): Likewise.
11013 * config/m88k/m88k.h (ASM_FILE_START): Likewise.
11014 * config/mcore/mcore.c (mcore_output_inline_const_forced,
11015 layout_mcore_frame, handle_structs_in_regs): Likewise.
11016 * config/mips/mips.c (output_block_move): Likewise.
11017 * config/rs6000/rs6000.c (rs6000_override_options,
11018 rs6000_file_start): Likewise.
11019 * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
11020 * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
11021 * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
11022 * builtins.c (expand_builtin_setjmp): Likewise.
11023 * expr.c (safe_from_p): Likewise.
11024 * flow.c (life_analysis): Likewise.
11025 * fold-const.c (size_int_type_wide): Likewise.
11026 * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
11027 * genattrtab.c (make_length_attrs): Likewise.
11028 * genopinit.c (gen_insn): Likewise.
11029 * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
11030 * global.c (global_alloc): Likewise.
11031 * local-alloc.c (find_free_reg): Likewise.
11032 * mips-tdump.c (print_symbol): Likewise.
11033 * mips-tfile.c (parse_def, parse_input): Likewise.
11034 * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
11035 * stmt.c (expand_nl_goto_receiver): Likewise.
11036 * stor-layout.c (set_sizetype): Likewise.
11037 * varasm.c (decode_reg_name): Likewise.
11038 * toplev.c (decode_f_option, decode_W_option,
11039 set_target_switch, print_switch_values): Likewise.
11040 (NUM_ELEM): Remove macro.
11041 (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
11042
11043 2000-08-24 Greg McGary <greg@mcgary.org>
11044
11045 * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
11046 (MAIN_NAME_P, main_identifier_node): New macros.
11047 * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
11048 * c-decl.c (start_decl, grokdeclarator, start_function,
11049 store_parm_decls, finish_function): Use MAIN_NAME_P.
11050 * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
11051 * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
11052 * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
11053 * config/pdp11/pdp11.c (output_function_prologue): Likewise.
11054
11055 2000-08-24 Greg McGary <greg@mcgary.org>
11056
11057 * cppfiles.c (actual_directory): Don't write beyond `dir'
11058 when it contains "".
11059 * real.c (asctoeg): Stay within bounds of etens[][].
11060
11061 2000-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11062
11063 * dependence.c (dependence_string, direction_string,
11064 dump_one_node, dump_node_dependence): Hide unused identifiers.
11065 (get_low_bound, normalize_coefficients): Match definition to
11066 static prototype.
11067 (get_one_coefficient): Initialize variables `value0_is_idx' and
11068 `value1_is_idx'.
11069 (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
11070 (ziv_test): Delete variable `idx', use parameter `sub' instead.
11071 (direction_merge): Avoid automatic aggregate initialization.
11072 (have_dependence_p): Use `src' not `dest' to set `src_idx'.
11073 Initialize variables `dest_idx' and `src_idx'.
11074 (end_dependence_analysis): Avoid C89 style function definition.
11075
11076 2000-08-24 Joseph S. Myers <jsm28@cam.ac.uk>
11077
11078 * c-common.c (time_char_table): Don't allow width with %F.
11079 (check_format_info): Don't allow "Z" length with scanf.
11080
11081 2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
11082
11083 * diagnostic.c (finish_diagnostic): Define.
11084 (output_do_printf): Use wrap_text instead of output_add_string.
11085 (default_print_error_function): Avoid embedded '\n'.
11086
11087 * diagnostic.h (flush_diagnostic_buffer): Declare.
11088
11089 2000-08-23 Alexandre Oliva <aoliva@redhat.com>
11090
11091 * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
11092
11093 2000-08-23 Hans-Peter Nilsson <hp@axis.com>
11094
11095 * Makefile.in (GCC_PASSES): Add specs.
11096
11097 2000-08-23 Jim Wilson <wilson@cygnus.com>
11098
11099 * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
11100 * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
11101 EHANDLER nor UHANDLER bit is set.
11102 (__get_except_table): Likewise.
11103
11104 2000-08-23 Nick Clifton <nickc@redhat.com>
11105
11106 * config/arm/lib1funcs.asm: Replace upper case condition codes
11107 with lower case versions.
11108
11109 * config/arm/arm.h (STRUCT_VALUE): Define.
11110 (STRUCT_VALUE_REGNUM): Delete.
11111
11112 2000-08-23 Zack Weinberg <zack@wolery.cumb.org>
11113
11114 * cpphash.h (IN_I): New flag for directive table.
11115 * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
11116 #pragma with IN_I.
11117 (_cpp_check_directive): If -fpreprocessed, execute directives
11118 marked with IN_I. Issue no warnings in this case.
11119 * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
11120
11121 2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk>
11122
11123 * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
11124 %u.
11125 (check_format_info): Support printf 'I' flag; warn about it with
11126 -pedantic.
11127
11128 2000-08-23 Richard Earnshaw (rearnsha@arm.com)
11129
11130 * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
11131 barrier can't be ignored by the alias analysis code.
11132
11133 2000-08-12 Eli Zaretskii <eliz@is.elta.co.il>
11134
11135 * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
11136 works inside fixincl.
11137
11138 Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com>
11139
11140 * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
11141 simplify_relational_operation() unless both operands are of
11142 VOIDmode.
11143 * cse.c (fold_rtx): Likewise.
11144
11145 Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com)
11146
11147 * rtlanal.c (rtx_unstable_p): The pic register is stable
11148 (within one function) and the actual rtx should be used
11149 when checking the registers.
11150 (rtx_addr_can_trap_p): Pic memory addresses can't trap.
11151
11152 * alias.c (true_dependence, write_dependence_p): Fix
11153 bug in previous patch.
11154
11155 * i386.c (ix86_GOT_alias_set): New.
11156 (legitimize_pic_address): Use it.
11157
11158 * rtlanal.c (rtx_unstable_p): An unchanging MEM is
11159 only stable if its address is stable.
11160 (rtx_varies_p): An unchanging MEM can't vary if
11161 its address doesn't vary.
11162
11163 2000-08-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11164
11165 * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
11166
11167 2000-08-22 J. David Anglin <dave@hiauly1.hia.nrc.ca>
11168
11169 * vax.h (ASM_SPEC): Pass `-J' to assembler.
11170 * x-vax-gcc: New file for bootstrapping with gcc.
11171 * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
11172 * configure.in: Use x-vax-gcc with gcc.
11173 * configure: Rebuilt.
11174
11175 Tue Aug 22 21:21:05 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
11176
11177 * toplev.c (rest_of_compilation): Rebuild label notes after
11178 post-reload splitting pass if new labels have been created.
11179
11180 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
11181
11182 * diagnostic.h (output_buffer_state): New macro.
11183 * diagnostic.c (diagnostic_for_decl, sorry,
11184 default_print_error_function, output_do_verbatim,
11185 report_diagnostic, report_problematic_module): Use it.
11186 (wrap_text): Tweak.
11187 (output_format): Use wrap_text instead of maybe_wrap_text.
11188
11189 2000-08-22 Nick Clifton <nickc@redhat.com>
11190
11191 * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
11192 Common code for ARM divide and modulus functions.
11193 (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
11194 ARM_DIV_MOD_BODY.
11195 (FUNC_END): New macro: Common code at the end of the division and
11196 modulo functions.
11197 (THUMB_FUNCTION_START): New macro: Common code at the start of
11198 Thumb functions.
11199 (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
11200
11201 Tue Aug 22 20:34:52 2000 Kaz Kojima <kkojima@rr.iij4u.or.jp>
11202
11203 * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
11204
11205 * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
11206 sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
11207 const0_rtx.
11208
11209 2000-08-22 Nick Clifton <nickc@redhat.com>
11210
11211 * config/arm/lib1funcs.asm (__umodsi3): Before performing any
11212 restorative additions, test for bottom bits of IP being set,
11213 rather than relying upon the RORs not matching.
11214 (__modsi3): Ditto.
11215
11216 2000-08-22 David Edelsohn <edelsohn@gnu.org>
11217
11218 * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
11219 text_section() as appropriate instead of emitting text csect
11220 pseudo-op directly.
11221 (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
11222 (UNIQUE_SECTION): Define macro.
11223 (ASM_OUTPUT_SECTION_NAME): Define macro.
11224 * rs6000.c (rs6000_override_options): Disable -ffunction-sections
11225 on AIX if debugging and -fdata-sections always.
11226
11227 2000-08-22 Steven King <sxking@uswest.net>
11228
11229 * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
11230 machinery.
11231 (LDBL_MAX): Same here.
11232
11233 2000-08-22 Richard Henderson <rth@cygnus.com>
11234
11235 * flow.c (tidy_fallthru_edge): Update b->end properly.
11236
11237 2000-08-22 Stan Cox <scox@redhat.com>
11238
11239 * Makefile.in (OBJS): Add dependence.o.
11240 * dependence.c: New file.
11241
11242 2000-08-22 Alexandre Oliva <aoliva@redhat.com>, John David Anglin <dave.anglin@nrc.ca>
11243
11244 * calls.c (check_sibcall_argument_overlap_1): Adjust for
11245 ARGS_GROW_DOWNWARD.
11246 (check_sibcall_argument_overlap): Likewise.
11247
11248 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
11249
11250 * invoke.texi (SH Options): Document -m4-nofpu,
11251 -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
11252 -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
11253
11254 2000-08-22 Joseph S. Myers <jsm28@cam.ac.uk>
11255
11256 * c-common.c (check_format_info): Give the 'some locales' warning
11257 for strftime %Ey rather than the unconditional 'only last 2 digits
11258 of year' one.
11259
11260 2000-08-22 Richard Henderson <rth@cygnus.com>
11261
11262 * alias.c (init_alias_analysis): Do not register
11263 struct_value_incoming_rtx or static_chain_rtx as pointing
11264 to stack memory.
11265
11266 Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com)
11267
11268 * protoize.c (munge_compile_params): Fix typo and formatting buglets.
11269
11270 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
11271
11272 * diagnostic.h (report_problematic_module): Declare.
11273 * diagnostic.c (report_problematic_module): New function.
11274 (report_error_function): Tweak.
11275
11276 Tue Aug 22 02:31:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11277
11278 * stmt.c (expand_goto_internal, fixup_gotos): Only check
11279 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
11280
11281 2000-08-21 Richard Henderson <rth@cygnus.com>
11282
11283 * flow.c (calculate_global_regs_live): Mark frame pointer live
11284 everywhere before reload.
11285
11286 2000-08-21 Jim Wilson <wilson@cygnus.com>
11287
11288 * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
11289 INTEL_EXTENDED_IEEE_FORMAT.
11290 (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally
11291 clear last two bytes of output FP value.
11292
11293 2000-08-21 Graham Stott <grahams@cygnus.co.uk>
11294
11295 * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
11296
11297 2000-08-21 Jakub Jelinek <jakub@redhat.com>
11298
11299 * unroll.c (loop_find_equiv_value): If ret is modified between
11300 insn and loop_start, ret might not be equivalent to reg.
11301
11302 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
11303
11304 * c-common.c (init_dollar_format_checking,
11305 maybe_read_dollar_number, finish_dollar_format_checking): New
11306 functions.
11307 (dollar_arguments_used, dollar_arguments_count,
11308 dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
11309 New variables.
11310 (check_format_info): Support $ formats for scanf and printf width
11311 and precision. Always increment format_chars to advance past the
11312 '*' of precision, not just when the format parameters are
11313 available to check.
11314
11315 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11316
11317 * mips.c (block_move_loop, expand_block_move,
11318 function_arg_partial_nregs, save_restore_insns, function_prologue,
11319 mips_expand_prologue, RA_MASK): Avoid using the `U' integer
11320 constant suffix.
11321 (function_arg_advance, function_arg): Match argument to format
11322 specifier `%p'.
11323
11324 2000-08-21 Nix <nix@esperi.demon.co.uk>
11325
11326 * gcc.c (do_spec_1): Implement %j spec flag.
11327 Remove dead comment.
11328
11329 * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
11330 * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
11331 * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
11332 * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
11333
11334 * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
11335 writable) instead of hardcoded value.
11336
11337 * toplev.c (compile_file): Output to a file even if -fsyntax-only.
11338
11339 * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
11340 MKTEMP_EACH_FILE.
11341
11342 * gcc.c (cc1_options): Do not process -o or run the assembler if
11343 -fsyntax-only.
11344 * objc/lang-spec.h: Likewise.
11345
11346 2000-08-21 Eli Zaretskii <eliz@is.elta.co.il>
11347
11348 * fixinc/fixincl.c (fix_with_system): Pipe the output of
11349 "external" fixes through `cat', to avoid truncating the input
11350 file by redirection.
11351
11352 2000-08-21 Jakub Jelinek <jakub@redhat.com>
11353
11354 * config/i386/i386.md (lea_general_1): Copy insn condition to split
11355 condition.
11356 (lea_general_2, lea_general_3): Likewise.
11357
11358 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11359
11360 * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
11361 warnings to user code.
11362
11363 * c-lex.c (readescape, yylex): Likewise.
11364
11365 * c-typeck.c (store_init_value, process_init_element): Likewise
11366 (c_expand_start_case): Format.
11367
11368 2000-08-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
11369
11370 * mips/linux.h (LINK_SPEC): Use %(endian_spec).
11371
11372 * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
11373 and linker_endian_spec to endian_spec.
11374 (ENDIAN_SPEC): Add %{EB} and %{EL}.
11375 (LINK_SPEC): Remove %{EB} and %{EL}.
11376 (ASM_SPEC): Likewise. Use %(endian_spec).
11377
11378 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
11379
11380 * c-tree.h (flag_hosted): Move declaration from here...
11381 * c-common.h (flag_hosted): ... to here.
11382 (flag_noniso_default_format_attributes): New declaration.
11383 * c-decl.c (flag_noniso_default_format_attributes): New variable.
11384 (c_decode_option): Set it appropriately for options choosing
11385 language standard variant.
11386 * c-common.c (init_function_format_info): Only provide default
11387 format attributes if flag_hosted. Only provide the gettext
11388 formats if flag_noniso_default_format_attributes. Update
11389 comments.
11390 (check_format_info): Disable treatment of %a as a scanf flag in
11391 C99 mode.
11392
11393 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
11394
11395 * c-common.c (scan_char_table): Add 'w' to flags for all formats
11396 except 'n'.
11397 (check_format_info): Set 'wide' for scanf format widths. Warn for
11398 a zero scanf width. Make the check for writing into a constant
11399 object at the first level of indirection; at later levels, warn if
11400 any type qualifiers are encountered.
11401
11402 Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com)
11403
11404 * reload.c (reload_inner_reg_of_subreg): New function broken out of
11405 push_reload.
11406 (push_reload): Use reload_inner_reg_of_subreg.
11407 (combine_reloads): Do not combine reloads if the input reload
11408 is a SUBREG in which the inner part will need reloading.
11409
11410 * global.c (global_alloc): Avoid passing dumpfile argument to
11411 reload routines.
11412 * toplev.c (rest_of_compilation): Likewise.
11413 * reload.h (reload): Remove dumpfile argument. Callers changed.
11414 (debug_reload, debug_reload_to_stream): Move prototypes here.
11415 * rtl.h (reload): Remove dumpfile argument.
11416 * reload.c (debug_reload): Remove prototype.
11417 (debug_reload_to_stream): Likewise.
11418 * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
11419 instead.
11420
11421 2000-08-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
11422
11423 * diagnostic.c (context_as_prefix): Export.
11424 (need_error_newline): Remove.
11425 (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
11426 (error_module_changed, record_last_error_module,
11427 error_function_changed, record_last_error_function): New functions.
11428 (initialize_diagnostics): Default intialize
11429 lang_diagnostic_starter, lang_diagnostic_finalizer.
11430 (init_output_buffer): Tweak.
11431 (file_name_as_prefix): New function.
11432 (announce_function, default_print_error_function,
11433 report_error_function, set_diagnostic_context): Tweak.
11434
11435 2000-08-21 Richard Earnshaw <rearnsha@arm.com>
11436
11437 * flow.c (init_propagate_block_info): Handle SUBREG in a jump
11438 condition expression.
11439
11440 2000-08-20 Richard Henderson <rth@cygnus.com>
11441
11442 * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
11443
11444 2000-08-20 Zack Weinberg <zack@wolery.cumb.org>
11445
11446 * cppinit.c (cpp_init): Set global flag when called.
11447 (cpp_reader_init): Bomb out if cpp_init hasn't been called.
11448
11449 Sun Aug 20 01:41:35 2000 Dennis Chernoivanov <cdi@sparc.spb.su>
11450
11451 * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
11452 before `process_directive' so that newlines won't be missed
11453 for directives.
11454 (cpp_printf): Increment `print->lineno' when newline is emitted.
11455
11456 * cppmain.c (cb_ident): Likewise.
11457 (cb_define): Likewise.
11458 (cb_undef): Likewise.
11459 (cb_include): Likewise.
11460 (cb_def_pragma): Likewise.
11461 (dump_macros_helper): Likewise.
11462
11463 2000-08-20 Richard Henderson <rth@cygnus.com>
11464
11465 * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
11466 assigned before a loop.
11467
11468 * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
11469 (ashrsi3, lshrsi3): Likewise.
11470
11471 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
11472
11473 * c-lang.c: #include diagnostic.h
11474 (c_tree_printer): New function.
11475 (lang_init): Initialize lang_printer.
11476
11477 * Makefile.in (c-lang.o): Depends on diagnostic.h
11478
11479 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
11480
11481 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
11482
11483 * diagnostic.c (default_diagnostic_starter,
11484 default_diagnostic_finalizer): New functions.
11485 (diagnostic_for_asm, diagnostic_for_decl): Tweak.
11486 (pedwarn, pedwarn_with_file_and_line, error,
11487 error_with_file_and_line, fatal, warning,
11488 warning_with_file_and_line): Adjust call to report_diagnostic.
11489 (report_diagnostic): Rework.
11490 (set_diagnostic_context): New function.
11491
11492 * diagnostic.h (struct diagnostic_context): New data structure.
11493 (diagnostic_message, diagnostic_argument_list,
11494 diagnostic_file_location, diagnostic_line_location,
11495 diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
11496 diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
11497 (set_diagnostic_context): Declare.
11498 (report_diagnostic): Change prototype.
11499
11500 Sun 20-Aug-2000 09:25:45 BST Neil Booth <NeilB@earthling.net>
11501
11502 * fix-header.c (main): Initialize cpplib.
11503
11504 2000-08-19 Michael Meissner <meissner@redhat.com>
11505
11506 * ifcvt.c (find_if_block): Do not assume that a THEN block has any
11507 instructions in it before checking for indirect jumps.
11508
11509 * ifcvt.c (find_if_block): Do not consider a THEN block that ends
11510 in a indirect jump as a potential for conditional execution.
11511
11512 * d30v.h (d30v_init_expanders): Don't declare here.
11513 * d30v-protos.h (d30v_init_expanders): Declare here with a valid
11514 prototype.
11515
11516 Sat 19-Aug-2000 21:11:45 BST Neil Booth <NeilB@earthling.net>
11517
11518 * cpp.texi: Add @section for assertions.
11519
11520 Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com)
11521
11522 * loop.c (scan_loop): Use CONST_CALL_P instead of
11523 checking for REG_LIBCALL / REG_RETVAL.
11524
11525 Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com)
11526
11527 * reload1.c (reload_as_needed): Accept dumpfile argument,
11528 pass it to emit_reload_insns.
11529 (emit_reload_insns): Add new dumpfile argument. If non-null
11530 then dump the reloads for each insn into the dumpfile.
11531 (reload): Pass dumpfile to reload_as_needed.
11532
11533 * invoke.texi: Clean up linux-gnu vs linux comments.
11534
11535 2000-08-19 Richard Henderson <rth@cygnus.com>
11536
11537 * config/ia64/ia64.c (reg_or_5bit_operand): New.
11538 (ia64_depz_field_mask): New.
11539 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
11540 (PREDICATE_CODES): Update.
11541 * config/ia64/ia64.md: Update commentary.
11542 (depz_internal): New.
11543 (ashlsi3): Implement directly.
11544 (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
11545 (ashldi3): Use shladd.
11546 * config/ia64/ia64-protos.h: Update.
11547
11548 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
11549
11550 * toplev.c (independent_decode_option): Always process -g.
11551 Remove third argument, now unused. Adjust caller to match.
11552
11553 2000-08-18 Richard Henderson <rth@cygnus.com>
11554
11555 * combine.c (make_compound_operation): Break after creating
11556 the extraction.
11557
11558 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
11559
11560 * cpplib.c (cpp_register_pragma_space): Just return if the
11561 namespace is already registered.
11562
11563 2000-08-18 Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton <nickc@redhat.com>
11564
11565 * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
11566 constant amount. Do not generate ROTL instruction.
11567
11568 Fri Aug 18 16:22:20 2000 Alexandre Oliva <aoliva@redhat.com>
11569
11570 * config/sh/elf.h: Do not include sh/sh.h.
11571 * config/sh/rtems.h: Likewise.
11572 * config/sh/rtemself.h: Do not include sh/elf.h.
11573 * configure.in: Get them included with `tm_file's.
11574 * configure: Rebuilt.
11575
11576 * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
11577 * config/sh/sh.c (fpscr_set_from_mem): Use them.
11578
11579 Fri Aug 18 14:23:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11580
11581 * stor-layout.c (compute_record_type): Don't use mode of single
11582 field as mode of record if not integer mode of same type.
11583
11584 * regmove.c (perhaps_ends_bb_p): New function.
11585 (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
11586 (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
11587 (fixup_match_1): Likewise.
11588 (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
11589 avoid signed/unsigned warnings.
11590
11591 * function.c (fixup_var_refs_1, case MEM): Update CODE after
11592 updating X.
11593
11594 Fri 18-Aug-2000 18:33:45 BST Neil Booth <NeilB@earthling.net>
11595
11596 * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
11597 (_cpp_trigraph_map): Declaration moved from cpplex.c
11598
11599 * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1
11600 instead of 256. Use consistent test for designated initializers.
11601 (cpp_init): Initialize trigraph_map.
11602 (initialize_standard_includes, parse_option): Use memcmp
11603 instead of strncmp.
11604
11605 * cpplex.c (init_trigraph_map): Remove.
11606 (trigraph_ok, trigraph_replace, lex_line): Refer to
11607 _cpp_trigraph_map.
11608
11609 * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
11610 (do_unassert): Remove unused "next" local.
11611
11612 * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
11613
11614 2000-08-18 Emmanuel Marty <emarty@suntech.fr>
11615
11616 * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
11617 insn.
11618
11619 2000-08-17 Richard Henderson <rth@cygnus.com>
11620
11621 * config/ia64/ia64.c (spill_restore_mem): Handle emitting
11622 the first insn in a sequence.
11623
11624 Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com)
11625
11626 * alias.c (true_dependence, write_dependence_p): A read
11627 involving a label_ref or the constant pool doesn't create
11628 a dependency.
11629
11630 * rtl.h (unchanging): Improve documentation.
11631
11632 2000-08-17 Rodney Brown <RodneyBrown@mynd.com>
11633
11634 * cse.c (insert_regs): Remove unused `regno'.
11635
11636 2000-08-17 Neil Booth <NeilB@earthling.net>
11637
11638 * (cppinit.c) merge_include_chains: Use remove_dup_dir,
11639 remove_dup_dirs. If qtail == brack, remove brack not
11640 qtail.
11641 (remove_dup_dir, remove_dup_dirs): New functions.
11642
11643 2000-08-17 Neil Booth <NeilB@earthling.net>
11644
11645 * cppinit.c (cpp_cleanup): Free include dir chains.
11646 * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
11647 (do_unassert): Free the assert with _cpp_free_definition.
11648 * cppmacro.c (_cpp_free_definition): Free memory allocated for
11649 assertions. Make the node a T_VOID node.
11650
11651 2000-08-17 Neil Booth <NeilB@earthling.net>
11652
11653 * cppinit.c (path_include, append_include_chain):
11654 Remove 2nd parameter (struct cpp_pending *).
11655 (path_include, initialize_standard_includes, cpp_handle_option):
11656 Update callers appropriately.
11657 (cpp_handle_option): Use pend.
11658
11659 2000-08-17 Neil Booth <NeilB@earthling.net>
11660
11661 * cppinit.c (sort_options): Remove, put functionality in
11662 cpp_init.
11663 (cpp_init): New.
11664 (initialize_builtins): Free memory.
11665 (cpp_start_read): Move init_IStable to cpp_init.
11666
11667 * cpplib.h (cpp_init): New prototype.
11668 * cppmain.c (main): Call cpp_init.
11669
11670 Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com)
11671
11672 * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
11673 (rtx_unstable_p, rtx_varies_p): Process vectors.
11674
11675 2000-08-16 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
11676
11677 * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all
11678 references to GLOBAL symbols. Use LOCAL where appropriate.
11679
11680 2000-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11681
11682 * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always
11683 use t-aix41 when host == target.
11684
11685 2000-08-16 Richard Henderson <rth@cygnus.com>
11686
11687 * reload.c (push_secondary_reload): Revert last change.
11688 If we use a reload_in/out pattern, make the when the same
11689 as the primary reload.
11690 (find_reloads): Likewise.
11691
11692 2000-08-16 Manfred Hollstein <manfredh@redhat.com>
11693
11694 * configure.in (libstdcxx-v3): Fix test.
11695 * configure: Regenerate.
11696
11697 Wed Aug 16 08:10:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11698
11699 * calls.c (calls_function_1, expand_call): Only test
11700 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
11701 * function.c (thread_prologue_and_epilogue_insns): Likewise.
11702
11703 2000-08-16 Richard Henderson <rth@cygnus.com>
11704
11705 * combine.c (simplify_shift_const): Revert previous two
11706 changes. If SHIFT_COUNT_TRUNCATED, crop the shift count
11707 before the main loop.
11708
11709 2000-08-15 Richard Henderson <rth@cygnus.com>
11710
11711 * combine.c (simplify_shift_const): Bound shift count when
11712 combining shifts.
11713
11714 Tue Aug 15 17:33:05 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11715
11716 * calls.c (ECF_SP_DEPRESSED): New macro.
11717 (calls_function_1): Treat calling sp-depressed function as alloca.
11718 (emit_call_1): Don't adjust SP if calling sp-depressed function.
11719 (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
11720 If sp-depressed, ensure block saves and restores SP.
11721 * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
11722 for INTEGER_TYPE.
11723 * function.c (keep_stack_depressed): New function.
11724 (thread_prologue_and_epilogue_insns): Call it.
11725 * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
11726 to print DECL_OFFSET_ALIGN.
11727 Print no-force-blk and transparent-union flags properly.
11728 * stmt.c (expand_goto_internal): Don't restore stack if last block
11729 and function returns with sp depressed.
11730 (fixup_gotos): Likewise.
11731 (save_stack_pointer): New function, from code in expand_decl.
11732 (expand_decl): Call new function.
11733 * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
11734 (TYPE_RETURNS_STACK_DEPRESSED): New macro.
11735 (save_stack_pointer): New declaration.
11736
11737 * diagnostic.c (fatal_function): New variable.
11738 (set_fatal_function): New function.
11739 (fatal): Call it.
11740 * diagnostic.h (set_fatal_function): New declaration.
11741
11742 2000-08-15 William Cohen <wcohen@redhat.com>
11743
11744 * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
11745 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
11746 (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
11747
11748 2000-08-15 Richard Henderson <rth@cygnus.com>
11749
11750 * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
11751
11752 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
11753
11754 * arm.c (arm_function_ok_for_sibcall): New function.
11755 * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
11756 * arm.md (call expanders): Don't check here for calls that can't
11757 be sibling calls.
11758
11759 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
11760
11761 * arm.md (splits generating cond_exec): Disable.
11762
11763 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
11764
11765 * arm/linux-elf.h (text_section): Delete declaration.
11766
11767 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
11768
11769 ARM support for unordered FP operations.
11770 * arm-protos.h (arm_comparison_operator): Declare.
11771 * arm.c (arm_comparison_operator): New function.
11772 (arm_select_cc_mode): Add unordered comparison codes.
11773 (get_arm_condition_code): Likewise.
11774 (arm_final_prescan_insn): Can't handle unordered jumps that can't
11775 be done in one insn.
11776 * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
11777 * arm.md (all uses of comparison_operator): Replace with
11778 arm_comparison_operator.
11779 (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
11780 expands.
11781 (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
11782 patterns.
11783
11784 Tue Aug 15 00:36:36 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
11785
11786 * gthr-posix.h: Conditionally include <sched.h>; include
11787 <config.h> from libobjc/.
11788
11789 2000-08-14 Richard Henderson <rth@cygnus.com>
11790
11791 * config/i386/i386.c (legitimize_pic_address): Use Pmode
11792 for all CONSTs.
11793
11794 2000-08-14 Richard Henderson <rth@cygnus.com>
11795
11796 * configure.in (ia64-*): Set float_format for i386 long double.
11797
11798 * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
11799 as we would for i386 XFmode.
11800 (PUT_REAL): Likewise.
11801 (endian, ereal_atof, real_value_truncate): Likewise.
11802 (ereal_isneg, toe64, etens, make_nan): Likewise.
11803 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
11804
11805 * config/ia64/ia64-protos.h: Update.
11806 * config/ia64/ia64.c (general_tfmode_operand): New.
11807 (destination_tfmode_operand): New.
11808 (tfreg_or_fp01_operand): New.
11809 (ia64_split_timode): New.
11810 (spill_tfmode_operand): New.
11811 (ia64_expand_prologue): Use TFmode not XFmode.
11812 (ia64_expand_epilogue): Likewise.
11813 (ia64_function_arg): Likewise.
11814 (ia64_function_arg_advance): Likewise.
11815 (ia64_return_in_memory): Likewise.
11816 (ia64_function_value): Likewise.
11817 (ia64_print_operand): Likewise.
11818 (ia64_register_move_cost): Set GR<->FR to 5.
11819 (ia64_secondary_reload_class): Get GR for TImode memory op.
11820 * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
11821 (ROUND_TYPE_ALIGN): Remove.
11822 (LONG_DOUBLE_TYPE_SIZE): Set to 128.
11823 (INTEL_EXTENDED_IEEE_FORMAT): Define.
11824 (HARD_REGNO_NREGS): Use TFmode, not XFmode.
11825 (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs.
11826 (MODES_TIEABLE_P): Use TFmode, not XFmode.
11827 (CLASS_MAX_NREGS): Likewise.
11828 (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
11829 (PREDICATE_CODES): Update.
11830 * config/ia64/ia64.md (movti): New.
11831 (movti_internal): Use a clobber for memory alternatives.
11832 (reload_inti, reload_outti): New.
11833 (movsfcc_astep): Predicate properly.
11834 (movdfcc_astep): Likewise.
11835 (movxf): Remove.
11836 (movtf): New.
11837 (extendsftf2, extenddftf2): New.
11838 (trunctfsf2, trunctfdf2): New.
11839 (floatditf2, fix_trunctfdi2): New.
11840 (floatunsditf2, fixuns_trunctfdi2): New.
11841 (addtf3, subtf3, multf3, abstf2): New.
11842 (negtf2, nabstf2, mintf3, maxtf3): New.
11843 (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
11844 (cmptf): New.
11845 (fr_spill): Use TFmode, not XFmode.
11846 (fr_restore): Likewise.
11847 * config/ia64/lib1funcs.asm (__divtf3): New.
11848 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
11849
11850 2000-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11851
11852 * cse.c (fold_rtx): Avoid empty body in an if-statement.
11853
11854 * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
11855 `U' integer constant suffix.
11856
11857 * dwarf2out.c (add_subscript_info): Avoid empty body in an
11858 else-statement.
11859
11860 * sparc/sol2.h (__enable_execute_stack): Prototype.
11861
11862 2000-08-14 David Edelsohn <edelsohn@gnu.org>
11863
11864 * collect2.c: Remove use of AIX import file.
11865
11866 * longlong.h: Test ARCH_PWR not ARCH_POWER.
11867
11868 * rs6000.c (print_operand, case 'E'): Add else.
11869
11870 2000-08-14 Richard Henderson <rth@cygnus.com>
11871
11872 * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
11873 (movdi_symbolic): New.
11874
11875 2000-08-14 Jim Wilson <wilson@cygnus.com>
11876
11877 * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
11878 to GNU as. For Intel as, pass -M const_gp and -M no_plabel.
11879 * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
11880 to GNU as.
11881
11882 2000-08-14 Richard Henderson <rth@cygnus.com>
11883
11884 * expr.c (emit_group_load): Don't force constants into registers.
11885 Special case source already in the correct mode.
11886
11887 2000-08-14 Zack Weinberg <zack@wolery.cumb.org>
11888
11889 * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
11890 * fixinc/inclhack.def: Likewise.
11891 * fixinc/mkfixinc.sh: Likewise.
11892 * configure: Regenerate.
11893 * fixinc/fixincl.x: Regenerate.
11894 * install.texi: Document equivalence of linux and linux-gnu.
11895
11896 Mon Aug 14 18:51:44 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
11897
11898 * cse.c (insert_regs): Also in REG case: When finding an invalid
11899 value, and we make a new quantity, make sure that it won't be
11900 mistaken by for a valid one by mention_regs.
11901
11902 2000-08-13 Ralf Gütlein <ralf.guetlein@aranea.de>
11903
11904 * h8300.md: Remove obsolete peepholes.
11905
11906 2000-08-13 Kazu Hirata <kazu@hxi.com>
11907
11908 * invoke.texi (H8/300 Options): Fix typos.
11909 * config/h8300.c: Fix formatting.
11910 * config/h8300.h: Fix comment typos.
11911 (OVERRIDE_OPTIONS): Fix formatting.
11912
11913 * function.c: Fix formatting.
11914
11915 * cse.c: Fix formatting.
11916
11917 2000-08-13 Geoff Keating <geoffk@cygnus.com>
11918
11919 * flow.c (attempt_auto_inc): Remove unused variable `bb'.
11920 (attempt_auto_inc): Suppress parentheses warning.
11921 * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
11922 * loop.c (load_mems): Remove `u' suffix in two places.
11923 * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
11924 hex constants.
11925 * config/rs6000/rs6000.h: Likewise.
11926 * config/rs6000/sol-c0.c: Prototype some functions. Remove the
11927 __eabi dummy routine.
11928 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
11929 variable `buf_ptr'.
11930
11931 * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
11932 not put stuff in .sdata unnecessarily.
11933 (rs6000_unique_section): New function.
11934 * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
11935 * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
11936
11937 * c-typeck.c (build_array_ref): Don't complain about non-lvalue
11938 arrays in C99. Don't try to look at DECL_REGISTER of a
11939 COMPONENT_REF. Don't complain twice about the same error.
11940
11941 * fixinc/inclhack.def (aix_pthread): New fix.
11942 (aix_sysmachine): New fix.
11943 * fixinc/fixincl.x: Regenerate.
11944
11945 * expr.c (expand_expr): Call convert_modes when turning a large
11946 multiply into a small one.
11947
11948 2000-08-12 Geoff Keating <geoffk@cygnus.com>
11949
11950 * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
11951 the tree structure an exponent rather than an explicit alignment
11952 so it doesn't overflow.
11953 (SET_DECL_OFFSET_ALIGN): New macro.
11954 * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
11955 rather than DECL_OFFSET_ALIGN.
11956 (place_field): Likewise.
11957 * expmed.c (store_bit_field): Abort on align==0 to avoid
11958 antisocial machine behaviour.
11959
11960 2000-08-12 Richard Henderson <rth@cygnus.com>
11961
11962 * sibcall.c (uses_addressof): Accept both addressof and
11963 current_function_internal_arg_pointer inside a mem.
11964 (optimize_sibling_and_tail_recursive_call): Fail tail recursion
11965 if current_function_uses_addressof.
11966 * stmt.c (expand_return): Kill tail recursion and HAVE_return
11967 optimizations.
11968
11969 2000-08-11 Richard Henderson <rth@cygnus.com>
11970
11971 * config/ia64/ia64.md (addsi3): Remove expander.
11972 (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
11973 (*addsi3_shladd): New.
11974
11975 2000-08-11 Richard Henderson <rth@cygnus.com>
11976
11977 * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
11978 (do_restore): Likewise.
11979 (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
11980 (ia64_expand_prologue, ia64_expand_epilogue): Use them.
11981 (rtx_needs_barrier): Track actual bit manipulation for
11982 ar.unat moves, gr_spill, and gr_restore.
11983 (emit_insn_group_barriers): Special case gr_spill/gr_restore.
11984 (process_set): Don't handle varargs spills.
11985 * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit
11986 .mem.offset here instead of in process_set.
11987 (gr_restore): Likewise.
11988
11989 2000-08-11 Richard Henderson <rth@cygnus.com>
11990
11991 * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
11992
11993 2000-08-11 Mark Elbrecht <snowball3@bigfoot.com>
11994
11995 * gcc.texi (The Configuration File): Document
11996 COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
11997 UPDATE_PATH_HOST_CANONICALIZATION.
11998
11999 2000-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12000
12001 * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
12002 unprototyped function pointer casts on integer constants.
12003
12004 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
12005
12006 * fixproto: Recognize DOS paths with drive letters as absolute paths.
12007
12008 2000-08-11 Nathan Sidwell <nathan@codesourcery.com>
12009
12010 * extend.texi (Volatiles): Fix typos.
12011
12012 2000-08-11 Kazu Hirata <kazu@hxi.com>
12013
12014 * flow.c: Fix formatting.
12015
12016 2000-08-11 Richard Henderson <rth@cygnus.com>
12017
12018 * reload.c (push_secondary_reload): When invoking a reload_{in,out}
12019 pattern, always allocate a tertiary scratch register.
12020
12021 * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
12022 (reload_inhi): Likewise.
12023
12024 2000-08-11 Richard Henderson <rth@cygnus.com>
12025
12026 * function.c (put_reg_into_stack): Allow type to be NULL.
12027 (schedule_fixup_var_refs): Likewise.
12028 (gen_mem_addressof): Allow decl to be NULL.
12029 (put_addressof_into_stack): Likewise.
12030
12031 * flow.c (merge_blocks_nomove): Be more careful about
12032 locating the beginning of block A.
12033
12034 * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
12035
12036 Thu Aug 10 22:47:09 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
12037
12038 * configure.in:
12039 * configure:
12040 * gthr-posix.h:
12041 * config.in: Reverted the check for <sched.h>.
12042
12043 2000-08-10 Chris Demetriou <cgd@sibyte.com>
12044
12045 * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
12046 macros define the name of CTOR and DTOR sections.
12047 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
12048 DTOR_LIST_END): Change to use attributes to specify
12049 sections.
12050 * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
12051 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
12052 DTOR_LIST_END): Same as in mips/elf.h.
12053
12054 2000-08-10 Drew Moseley <dmoseley@redhat.com>
12055
12056 * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
12057 disabling just crt0.o.
12058
12059 2000-08-10 Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton <nickc@cygnus.com>
12060
12061 * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
12062 (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
12063 (EXTRA_SPECS): Add them.
12064 * arm/lib1funcs.asm: Support builds for interworking.
12065 Use macros to eliminate duplicated pieces of code.
12066
12067 2000-08-10 Kazu Hirata <kazu@hxi.com>
12068
12069 * h8300.c (expand_a_rotate): New.
12070 (emit_a_rotate): Likewise.
12071 (h8300_adjust_insn_length): Add support for the rotate insns.
12072 * h8300.md (rotlqi3): New.
12073 (*rotlqi3_1): Likewise.
12074 (rotlhi3): Likewise.
12075 (*rotlhi3_1): Likewise.
12076 (rotlhi3): Likewise.
12077 (*rotlhi3_1): Likewise.
12078 * h8300-proto.h: Add prototypes for expand_a_rotate and
12079 emit_a_rotate.
12080
12081 * h8300.c: Fix comment typos.
12082 (dosize): Declare the variable amount as unsigned.
12083 (get_shift_alg): Fix a comparison between signed and unsigned.
12084 (emit_a_shift): Likewise.
12085 (h8300_adjust_insn_length): Simplify the code.
12086
12087 * c-decl.c: Fix formatting.
12088
12089 2000-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12090
12091 * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
12092 warning about non-traditional numeric constant suffixes.
12093
12094 * cppexp.c (parse_number): Likewise.
12095
12096 * invoke.texi: (-Wtraditional): Document new behavior.
12097
12098 Thu Aug 10 00:11:04 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
12099
12100 * gthr-posix.h: Include auto-host.h. Conditionally include
12101 <sched.h>.
12102 * configure.in: Check for the <sched.h> header file.
12103 * config.in: Added define for HAVE_SCHED_H.
12104
12105 2000-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12106
12107 * c-typeck.c (process_init_element): For -Wtraditional, warn about
12108 initialization of unions.
12109
12110 * invoke.texi (-Wtraditional): Document new behavior.
12111
12112 2000-08-09 Zack Weinberg <zack@wolery.cumb.org>
12113
12114 * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE
12115 instead of extra_c_flags.
12116 (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
12117 * configure: Regenerate.
12118 * config.in: Regenerate.
12119
12120 * cpperror.c (cpp_type2name): New function.
12121 * cpplex.c (lex_line): If we issued an error for an invalid
12122 preprocessing directive, discard that logical line.
12123 * cpplib.c (do_line): Call a hook function if the current file
12124 is renamed by #line.
12125 (do_ident): Pass the contents of the string, not the entire
12126 token, to the callback function.
12127 * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
12128 (cb.rename_file): New hook function.
12129 (cb.ident): Adjust prototype.
12130 (cpp_type2name): Prototype.
12131 * cppmacro.c (dump_macro_args): Correct precedence lossage.
12132
12133 * cppmain.c (cb_ident): Update for changed interface.
12134 (cb_rename_file): New function.
12135 (main): Set rename callback.
12136
12137 2000-08-09 Alexandre Oliva <aoliva@redhat.com>
12138
12139 * caller-save.c (mark_referenced_regs): Mark partially-overwritten
12140 multi-word registers.
12141
12142 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
12143
12144 * c-common.c (combine_strings, check_format_info): Refer to ISO C
12145 or ISO C89 instead of ANSI C.
12146 * c-decl.c (grokdeclarator, xref_tag, finish_struct,
12147 build_enumerator, do_case): Likewise.
12148 * c-lex.c (parse_float, yylex): Likewise.
12149 * c-parse.in: Likewise.
12150 * c-typeck.c (common_type, build_array_ref, build_binary_op,
12151 build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
12152 build_c_cast, convert_for_assignment, set_init_index,
12153 set_init_label, c_expand_start_case): Likewise.
12154 * toplev.c (documented_lang_options, display_help): Likewise.
12155
12156 2000-08-08 Kazu Hirata <kazu@hxi.com>
12157
12158 * h8300.c: Fix formatting.
12159 * h8300.h: Likewise.
12160 * h8300.md: Likewise.
12161 (movsi_h8300hs): Fix formatting of the resulting assembly code.
12162
12163 * reload1.c: Fix formatting.
12164
12165 2000-08-08 Rodney Brown <RodneyBrown@mynd.com>
12166
12167 * alpha/alpha.c (alpha_emit_xfloating_libcall):
12168 Use GEN_CALL_VALUE define.
12169 * alpha/alpha.md (untyped_call): Use GEN_CALL define.
12170 * clipper/clipper.md (untyped_call): Likewise.
12171 * dsp16xx/dsp16xx.md (untyped_call): Likewise.
12172 * fx80/fx80.md (untyped_call): Likewise.
12173 * mips/mips.md (untyped_call): Likewise.
12174 * ns32k/ns32k.md (untyped_call): Likewise.
12175 * pa/pa.md (untyped_call): Likewise.
12176 * romp/romp.md (untyped_call): Likewise.
12177 * sparc/sparc.md (untyped_call): Likewise.
12178
12179 2000-08-08 Jason Eckhardt <jle@cygnus.com>
12180
12181 * config/i860/i860.c (singlemove_string): Do not generate assembler
12182 pseudo instructions that must be expanded (that is, with signed
12183 constants larger than 16 bits).
12184
12185 2000-08-08 Richard Henderson <rth@cygnus.com>
12186
12187 * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
12188 PROP_AUTOINC at -O0. Don't collect alias info at -O0.
12189 (init_propagate_block_info): Don't kill memory stores at -O0.
12190 (mark_set_1, mark_used_regs): Likewise.
12191
12192 2000-08-08 David Edelsohn <edelsohn@gnu.org>
12193
12194 * rs6000.c (optimization_options): Decorate 'level' as
12195 ATTRIBUTE_UNUSED.
12196 (mask64_operand): Remove sign-extend thinko.
12197 (rldic_operand): New function.
12198 (load_multiple_operation): regno's are unsigned ints.
12199 (store_multiple_operation): Likewise.
12200 (lmw_operation): Likewise.
12201 (stmw_operation): Likewise.
12202 (includes_lshift_p): shift_mask is unsigned int.
12203 (includes_lshift64_p): New function.
12204 (addrs_ok_for_quad_peep): unsigned int reg1.
12205 (print_operand): Consistently add "else" after
12206 output_operand_lossage().
12207 (print_operand, case 'b'): Fold in case 'W'.
12208 (print_operand, case 'W'): Print rldic MB value.
12209 (output_epilogue): Update Objective-C language string.
12210 (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
12211 * rs6000.h (PREDICATE_CODES): Add rldic_operand.
12212 * rs6000.md (ashldi3): Add rldic instruction.
12213 (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
12214 (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
12215 modifier.
12216
12217 2000-08-08 Richard Henderson <rth@cygnus.com>
12218
12219 * config/ia64/ia64-protos.h: Remove duplicates. Update
12220 for massive code rearrangements.
12221 * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
12222 (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
12223 (ia64_local_regs, ia64_need_regstk): Remove.
12224 (ar_ccv_reg_operand): New.
12225 (ia64_gp_save_reg): New.
12226 (struct ia64_frame_info): Combine most of the size elements;
12227 add new gr save elements.
12228 (find_gr_spill): New.
12229 (next_scratch_gr_reg): New.
12230 (mark_reg_gr_used_mask): New.
12231 (ia64_compute_frame_size): Rewrite. Allocate special AR regs
12232 to GR backing store regs when possible.
12233 (ia64_initial_elimination_offset): New.
12234 (ia64_rap_fp_offset): Remove.
12235 (save_restore_insns): Remove.
12236 (setup_spill_pointers): New.
12237 (finish_spill_pointers): New.
12238 (spill_restore_mem): New.
12239 (do_spill, do_restore): New.
12240 (ia64_expand_prologue): Rewrite to use them.
12241 (ia64_expand_epilogue): Likewise.
12242 (ia64_direct_return): Update for current_frame_info changes.
12243 (ia64_function_prologue): Simplify .prologue emission. Emit
12244 .spill when needed.
12245 (ia64_setup_incoming_varargs): Don't ever emit rtl.
12246 (ia64_dbx_register_number): New.
12247 (ia64_initialize_trampoline): New.
12248 (ia64_secondary_reload_class): Request GR_REGS for integer
12249 arithmetic destined for FR_REGS.
12250 (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
12251 (ia64_mark_machine_status): Mark ia64_gp_save.
12252 (rws_access_regno): Rename from rws_access_reg; don't treat
12253 predicates specially.
12254 (rws_access_reg): New. Update all callers.
12255 (rtx_needs_barrier): Remove dead unspecs.
12256 (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
12257 (ia64_encode_section_info): Silence signed/unsigned warnings.
12258 (spill_offset, sp_offset, spill_offset_emitted): Remove.
12259 (tmp_reg, tmp_saved): Remove.
12260 (process_set): Rewrite to expect complicated bits via
12261 REG_FRAME_RELATED_EXPR.
12262 (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
12263 in the use of ar.ccv; never set RTX_UNCHANGING_P.
12264 (ia64_expand_op_and_fetch): Likewise.
12265 (ia64_expand_compare_and_swap): Likewise.
12266 (ia64_expand_builtin): Likewise.
12267 * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
12268 (FIRST_PSEUDO_REGISTER): Update.
12269 (AR_M_REGNO_P): Update.
12270 (FIXED_REGS): Don't mark three local registers as used.
12271 (EXTRA_CC_MODES): New.
12272 (SELECT_CC_MODE): New.
12273 (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
12274 (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
12275 (FRAME_GROWS_DOWNWARD): Unset.
12276 (STARTING_FRAME_OFFSET): Zero.
12277 (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
12278 (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
12279 (HARD_FRAME_POINTER_REGNUM): New.
12280 (CAN_DEBUG_WITHOUT_FP): Define.
12281 (TRAMPOLINE_TEMPLATE): Remove.
12282 (TRAMPOLINE_SIZE): Lower to 32.
12283 (TRAMPOLINE_ALIGNMENT): Lower to 64.
12284 (INITIALIZE_TRAMPOLINE): Defer to out of line function.
12285 (PREDICATE_CODES): Update.
12286 (struct machine_function): Add ia64_gp_save.
12287 * config/ia64/ia64.md: Purge unused unspecs.
12288 (movsi patterns): Allow moves to/from AR_M_REGS.
12289 (movdi patterns): Allow moves to/from p0.
12290 (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
12291 (gr_spill, gr_restore): Indicate ar.unat read/written.
12292 (nonlocal_goto): Don't pass old frame_pointer.
12293 (nonlocal_goto_receiver): Remove.
12294 (exception_receiver): New.
12295 (builtin_setjmp_setup): New.
12296 (builtin_setjmp_receiver): New.
12297 * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
12298 (__ia64_nonlocal_goto): Bundle. Don't kill r7.
12299 (__ia64_restore_stack_nonlocal): Likewise.
12300 (__ia64_trampoline): New.
12301 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
12302 function.
12303 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
12304
12305 2000-08-08 Richard Henderson <rth@cygnus.com>
12306
12307 * frame.h (ia64_frame_state): Add my_psp.
12308 * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
12309 (__throw): Pass it in. Don't clobber r7.
12310 * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
12311 (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
12312 and nothing to do with sp.
12313 (normalize_reg_loc): Use frame->my_psp.
12314 (frame_translate): Handle frame-pointer-less functions. Set
12315 spill_base correctly, in absence of being told.
12316 (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp.
12317 (__ia64_backtrace_helper): New sp argument. Use
12318 builtin_return_address instead of label addresses.
12319 (print_record) [mem_stack_v]: No size member.
12320
12321 2000-08-08 Richard Henderson <rth@cygnus.com>
12322
12323 * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
12324
12325 2000-08-08 Richard Henderson <rth@cygnus.com>
12326
12327 * tm.texi (LOCAL_REGNO): Document.
12328 * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
12329 (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
12330 * reload1.c (reload): Likewise when considering nonlocal labels.
12331
12332 * config/ia64/ia64.h (LOCAL_REGNO): New.
12333 * config/sparc/sparc.h (LOCAL_REGNO): New.
12334
12335 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
12336
12337 * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
12338
12339 2000-08-07 Nick Clifton <nickc@redhat.com>
12340
12341 * config/mips/mips.c: Fix compile time warning messages.
12342 * config/mips/mips-protos.h: Add prototype for equality_op.
12343
12344 * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
12345
12346 2000-08-07 Graham Stott <grahams@cygnus.co.uk>
12347
12348 * mn10300.md: Use nonimmediate_operand instead of general_operand
12349 on output operands.
12350
12351 * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
12352
12353 2000-08-07 Alexandre Oliva <aoliva@redhat.com>
12354
12355 * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
12356 * sh.c (expand_block_move): Break long lines.
12357 (expand_ashiftrt, fpscr_set_from_mem): Likewise.
12358 * sh.md (mulsi3): Likewise.
12359 (movdi): Adjust spacing.
12360
12361 2000-08-07 Richard Henderson <rth@cygnus.com>
12362
12363 * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
12364 * expr.c (emit_group_store): Don't set it.
12365
12366 2000-08-07 Kazu Hirata <kazu@hxi.com>
12367
12368 * invoke.texi (Options for Debugging Your Program or GCC): Remove
12369 duplicate entries for 'w' and 'z'.
12370
12371 * flow.c: Fix a comment typo.
12372
12373 Sun Aug 6 23:47:35 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
12374
12375 * c-parse.in: Changed the language string for Objective-C to "GNU
12376 Objective-C".
12377
12378 Sun Aug 6 11:54:03 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
12379
12380 * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
12381 to improve the Posix thread support for Objective-C.
12382
12383 2000-08-06 Joseph S. Myers <jsm28@cam.ac.uk>
12384
12385 * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
12386 CTI_UNSIGNED_PTRDIFF_TYPE.
12387 (signed_size_type_node): Define.
12388 (unsigned_ptrdiff_type_node): Define.
12389 * c-decl.c (init_decl_processing): Create the
12390 signed_size_type_node and unsigned_ptrdiff_type_node types.
12391 * c-common.c (T_SC): Define.
12392 (T_SST): Define.
12393 (T_UPD): Define.
12394 (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for
12395 %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for
12396 %s and %p.
12397 (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for
12398 %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the
12399 flags for %c, %s and %[.
12400 (check_format_info): Only allow leniency for signedness of targets
12401 of character pointers (when pedantic) for formats flagged with
12402 "c", so for strings but not for %hh formats. When pedantic, don't
12403 allow character pointers to substitute for void pointers if a
12404 second level of indirection is present.
12405
12406 2000-08-06 Kazu Hirata <kazu@hxi.com>
12407
12408 * invoke.texi (Options for Debugging Your Program or GCC): Update
12409 the names of dump files.
12410
12411 * h8300.c (dosize): Rearrange code for conciseness.
12412 (split_adds_subs): Likewise.
12413
12414 * loop.c: Fix formatting.
12415
12416 * dwarf2out.c: Fix formatting.
12417
12418 * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
12419
12420 * expr.c: Fix formatting.
12421
12422 2000-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12423
12424 * rs6000.c (rs6000_maybe_dead): Prototype.
12425
12426 2000-08-06 Richard Henderson <rth@cygnus.com>
12427
12428 * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
12429 HAVE_nonlocal_goto as well.
12430 * config/i960/i960.md (nonlocal_goto): Don't do it here.
12431 * config/pj/pj.md (nonlocal_goto): Likewise.
12432
12433 2000-08-07 Michael Hayes <mhayes@cygnus.com>
12434
12435 * loop.c (try_swap_copy_prop): New function.
12436 (load_mems): Rename copies to load_copies and add new regset
12437 store_copies. Check for sets of shadow registers and mark
12438 in store_copies. Call try_swap_copy_prop for registers
12439 marked in store_copies.
12440
12441 Sun Aug 6 00:54:42 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
12442
12443 * objc/objc-act.c: New command line option -fconstant-string-class
12444 to allow specifying a user defined constant string class,
12445 different from NXConstantString.
12446
12447 * toplev.c: Moved the Objective-C specific options to
12448 objc/lang-options.h.
12449
12450 * objc/lang-options.h: Moved the Objective-C specific options from
12451 toplev.c. Added -fconstant-string-class.
12452
12453 2000-08-05 Chris Demetriou <cgd@sibyte.com>
12454
12455 * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
12456 DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
12457 __CTOR_LIST__ from func_ptr array to just func_ptr, to
12458 avoid extra alignment imposed on arrays.
12459 * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
12460 DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
12461
12462 * mips.h: Clean up comments and spacing near MASKs.
12463 (TARGET_UNIX_ASM): Delete.
12464 (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
12465 MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
12466 values contiguous.
12467
12468 2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk>
12469
12470 * c-common.c (print_char_table): Add entries for the X/Open '
12471 format flag (print decimals with locale's thousands grouping
12472 character). Make %C expect wint_t.
12473 (check_format_info): If pedantic, warn when the %n$ operand
12474 number form is used. Allow for the ' flag; warn about it if
12475 pedantic.
12476
12477 2000-08-05 Zack Weinberg <zack@wolery.cumb.org>
12478
12479 * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return
12480 type is a float mode, cfun->decl's return type is not, and
12481 TARGET_FLOAT_RETURNS_IN_80387.
12482
12483 2000-08-04 Andreas Schwab <schwab@suse.de>
12484
12485 * cppmain.c (cb_def_pragma): Skip the first two tokens from the
12486 token list, which are always `#' and `pragma'.
12487
12488 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
12489
12490 * tree.c (tree_expr_nonnegative_p): Move to...
12491 * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR.
12492 (rtl_expr_nonnegative_p): New.
12493 * tree.h: Add prototype for rtl_expr_nonnegative_p.
12494
12495 * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
12496 CONST_DOUBLE_CHAIN: Move to...
12497 * rtl.h: ...here. Use XCINT/XCEXP.
12498
12499 * Makefile.in: Remove toplev.o from OBJS. Add rule to make
12500 libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND
12501 variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND
12502 to VOL_FILES.
12503
12504 * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
12505
12506 2000-08-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12507
12508 * config/c4x/c4x.md (return_indirect_internal): New.
12509 * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
12510
12511 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
12512
12513 * c-common.c (time_char_table): Mark up formats added in C99 and
12514 make other corrections. %D and %g were added in C99. %Og is an
12515 extension. %EX is permitted. %R, %T, %n, %r, %t were added in
12516 C99. %e was added in C99. %Oj is an extension. %G and %z are in
12517 C99 rather than GNU extensions, but %OG and %Oz are extensions.
12518 %h was added in C99. %C was added in C99. %OY and %OC are
12519 extensions. Add the C99 format %F.
12520 (check_format_info): If pedantic and not in C99 mode, warn for C99
12521 formats, %E and %O.
12522
12523 Fri Aug 4 23:01:58 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12524
12525 * function.c (schedule_fixup_var_refs): New function, broken out
12526 of put_reg_into_stack.
12527 (put_reg_into_stack): Use it.
12528 (put_var_into_stack): In CONCAT case, fixup up references for
12529 components only after fixing up references to the whole concat.
12530
12531 2000-08-04 Rodney Brown <RodneyBrown@pmsc.com>
12532
12533 * alias.c (mark_constant_function): Use INSN_P.
12534 (init_alias_analysis): Likewise.
12535 * combine.c (combine_instructions): Use INSN_P.
12536 (can_combine_p): Likewise.
12537 (try_combine): Likewise.
12538 (distribute_notes): Likewise.
12539 (distribute_links): Likewise.
12540 * cse.c (cse_around_loop): Use INSN_P.
12541 (invalidate_skipped_block): Likewise.
12542 (cse_set_around_loop): Likewise.
12543 (cse_end_of_basic_block): Likewise.
12544 (delete_trivially_dead_insns): Likewise.
12545 * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
12546 (unshare_all_rtl_1): Likewise.
12547 (next_cc0_user): Likewise.
12548 (try_split make_insn_raw): Likewise.
12549 (remove_unnecessary_notes): Likewise.
12550 * final.c (shorten_branches): Use INSN_P.
12551 (leaf_renumber_regs): Likewise.
12552 (leaf_renumber_regs_insn): Likewise.
12553 * flow.c (find_label_refs): Use INSN_P.
12554 (verify_wide_reg): Likewise.
12555 (notice_stack_pointer_modification): Likewise.
12556 (count_or_remove_death_notes): Likewise.
12557 (verify_flow_info): Likewise.
12558 (clear_log_links): Likewise.
12559 * function.c (fixup_var_refs_insns): Use INSN_P.
12560 (compute_insns_for_mem): Likewise.
12561 * gcse.c (alloc_gcse_mem): Use INSN_P.
12562 (compute_sets): Likewise.
12563 (compute_hash_table): Likewise.
12564 (classic_gcse): Likewise.
12565 (cprop): Likewise.
12566 (insert_insn_end_bb): Likewise.
12567 (delete_null_pointer_checks_1): Likewise.
12568 * global.c (expand_preferences): Use INSN_P.
12569 (build_insn_chain): Likewise.
12570 * graph.c (node_data): Use INSN_P.
12571 * haifa-sched.c (priority): Use INSN_P.
12572 (rm_line_notes): Likewise.
12573 (rm_other_notes): Likewise.
12574 (find_insn_reg_weight): Likewise.
12575 (init_target_units): Likewise.
12576 (schedule_block): Likewise.
12577 (compute_block_forward_dependences): Likewise.
12578 (debug_dependencies): Likewise.
12579 (set_priorities): Likewise.
12580 * integrate.c (function_cannot_inline_p): Use INSN_P.
12581 (save_parm_insns): Likewise.
12582 (copy_insn_list): Likewise.
12583 * jump.c (mark_all_labels): Use INSN_P.
12584 (never_reached_warning): Likewise.
12585 * lcm.c (optimize_mode_switching): Use INSN_P.
12586 * local-alloc.c (validate_equiv_mem): Use INSN_P.
12587 (memref_used_between_p): Likewise.
12588 (update_equiv_regs): Likewise.
12589 (block_alloc): Likewise.
12590 (no_conflict_p): Likewise.
12591 * loop.c (scan_loop): Use INSN_P.
12592 (find_and_verify_loops): Likewise.
12593 (count_loop_regs_set): Likewise.
12594 (loop_reg_used_before_p): Likewise.
12595 (strength_reduce): Likewise.
12596 (recombine_givs): Likewise.
12597 (check_dbra_loop): Likewise.
12598 (load_mems): Likewise.
12599 (try_copy_prop): Likewise.
12600 * print-rtl.c (print_rtx): Use INSN_P.
12601 * recog.c (find_single_use): Use INSN_P.
12602 * reg-stack.c (stack_regs_mentioned): Use INSN_P.
12603 (next_flags_user): Likewise.
12604 (swap_rtx_condition): Likewise.
12605 * regmove.c (mark_flags_life_zones): Use INSN_P.
12606 (optimize_reg_copy_1): Likewise.
12607 (optimize_reg_copy_2): Likewise.
12608 (optimize_reg_copy_3): Likewise.
12609 (reg_is_remote_constant_p): Likewise.
12610 (fixup_match_2): Likewise.
12611 (regmove_optimize): Likewise.
12612 (fixup_match_1): Likewise.
12613 * regrename.c (build_def_use): Use INSN_P.
12614 (replace_reg_in_block): Likewise.
12615 (consider_use): Likewise.
12616 * reload.c (find_equiv_reg): Use INSN_P.
12617 * reload1.c (reload): Use INSN_P.
12618 (maybe_fix_stack_asms): Likewise.
12619 (calculate_needs_all_insns): Likewise.
12620 (reload_as_needed): Likewise.
12621 (emit_output_reload_insns): Likewise.
12622 (delete_address_reloads_1): Likewise.
12623 (reload_cse_regs_1): Likewise.
12624 (reload_combine): Likewise.
12625 (reload_cse_move2add): Likewise.
12626 * reorg.c (redundant_insn): Use INSN_P.
12627 (dbr_schedule): Likewise.
12628 * resource.c (find_dead_or_set_registers): Use INSN_P.
12629 (mark_target_live_regs): Likewise.
12630 * rtlanal.c (reg_used_between_p): Use INSN_P.
12631 (reg_referenced_between_p): Likewise.
12632 (reg_set_between_p): Likewise.
12633 (reg_set_p): Likewise.
12634 (single_set): Likewise.
12635 (multiple_sets): Likewise.
12636 (find_last_value): Likewise.
12637 (reg_set_last): Likewise.
12638 (find_reg_note): Likewise.
12639 (find_regno_note): Likewise.
12640 * sibcall.c (sequence_uses_addressof): Use INSN_P.
12641 * simplify-rtx.c (cselib_process_insn): Use INSN_P.
12642 * ssa.c (find_evaluations): Use INSN_P.
12643 (rename_block): Likewise.
12644 (rename_equivalent_regs): Likewise.
12645 * unroll.c (loop_find_equiv_value): Use INSN_P.
12646 (set_dominates_use): Likewise.
12647 * varasm.c (mark_constant_pool): Use INSN_P.
12648 (mark_constants): Likewise.
12649 * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
12650 (alphaev4_next_group): Likewise.
12651 (alphaev5_next_group): Likewise.
12652 * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
12653 (c4x_rptb_rpts_p): Likewise.
12654 * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
12655 * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
12656 (rs6000_adjust_priority): Likewise.
12657 * config/sh/sh.c (sh_loop_align): Use INSN_P.
12658 (machine_dependent_reorg): Likewise.
12659 (split_branches): Likewise.
12660 * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
12661
12662 Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com)
12663
12664 * combine.c (recog_for_combine): Remove the old notes
12665 prior to attempting to recognize the new pattern.
12666 (distribute_notes): Ignore REG_NONNEG notes.
12667
12668 2000-08-04 Chandrakala Chavva <cchavva@redhat.com>
12669
12670 * varasm.c (output_constructor): Add .align 0 for packed vars.
12671
12672 2000-08-04 J. David Anglin <dave@hiauly1.hia.nrc.ca>
12673
12674 * configure.in: Use default thread_file even when enable_threads is
12675 yes or dce because hpux10.20 pa port uses MULTILIB implementation.
12676 * configure: Rebuilt.
12677
12678 * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
12679
12680 2000-08-04 Donn Terry (donnte@microsoft.com)
12681
12682 * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
12683
12684 2000-08-04 Mark Elbrecht <snowball3@bigfoot.com>
12685
12686 * i386/x-djgpp: Delete code that conditionally modifies target_alias.
12687 Delete code that conditionally modifies 'version'.
12688 Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
12689 * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
12690 * gcc.c (main): Use it.
12691 * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
12692 * prefix.c (update_path): Use it.
12693 * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
12694 (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
12695 (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
12696 code.
12697 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
12698 (SUBTARGET_SWITCHES): Adjust.
12699 (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
12700 defining.
12701 (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
12702
12703 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
12704
12705 * c-common.h (flag_isoc94): Declare.
12706 * c-decl.c (flag_isoc94): Define.
12707 (c_decode_option): Set flag_isoc94 as appropriate.
12708 * c-common.c (T_PD, T_IM, T_UIM): Define.
12709 (format_char_info): Add tlen and jlen.
12710 (print_char_table): Add entries for %t and %j. Allow %zn. Allow
12711 %F. Allow %lf.
12712 (scan_char_table): Add entries for %t and %j. Allow %F. Allow
12713 %l[.
12714 (time_char_table): Add NULL entries for %t and %j.
12715 (check_format_info): Allow for %t and %j. Warn for %F if pedantic
12716 and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94.
12717 Warn for printf %lf if pedantic and not C99. Don't warn for empty
12718 precision. Allow precision argument to be unsigned int. If
12719 pedantic, warn for %p passed an argument not a pointer to possibly
12720 qualified void or a possibly qualified character type, and for
12721 pointer targets of the wrong sign, except for character pointers.
12722
12723 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
12724
12725 * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
12726 * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
12727 (wint_type_node): Define.
12728 * c-decl.c (WINT_TYPE): Define.
12729 (init_decl_processing): Create the wint_type_node type.
12730 * c-common.c (T_WI): Define.
12731 (print_char_table): Use T_WI for %lc format.
12732
12733 2000-08-04 Bruce Korb <bkorb@gnu.org>
12734
12735 * fixinc/: Verified that the MSDOS patch does not break
12736 the UNIX functionality and applied the next three patches
12737 from July:
12738
12739 2000-07-28 Eli Zaretskii <eliz@is.elta.co.il>
12740
12741 * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
12742 output file with the temporary one by appending ".X" to generate
12743 the temporary fuile's name. If the output file already has an
12744 extension, replace it with ".X".
12745
12746 * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
12747 not $DESTDIR, to find applyfix. Use sprintf instead of snprintf;
12748 reallocate the command buffer while copying the command-line
12749 argument. Redirect the output directly to the temporary file,
12750 instead of going through another temporary file.
12751 (process): Close the temporary file before unlinking it.
12752 (machine_matches) [__MSDOS__]: If the machine doesn't match, set
12753 the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag.
12754 (run_compiles): Pass p_fixd argument to machine_matches, as it
12755 expects.
12756
12757 * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the
12758 environment, assume there are no symlinks in the include
12759 directory. When cleaning up the DONE files, look for them
12760 case-insensitively. Don't try to remove symlinks if they aren't
12761 there.
12762
12763 * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
12764 all callers changed. Declare pz "const char *", to avoid compiler
12765 warnings.
12766
12767 * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
12768 Change prototype of make_raw_shell_str.
12769
12770 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
12771
12772 * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
12773 (initialize) [__MSDOS__]: Use tempnam.
12774 (initialize): Don't use SIGPIPE if it is not defined.
12775
12776 * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
12777 return stdout.
12778
12779 2000-07-25 Bruce Korb <bkorb@gnu.org>
12780
12781 * fixinc/fix*.[ch]: substantially reworked to make it possible
12782 to run this program without using fork(2) or pipe(2) (i.e. in
12783 a DOS environment).
12784
12785 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
12786
12787 * cppdefault.h (WINT_TYPE): Define.
12788 * cppinit.c (builtin_array): Define __WINT_TYPE__.
12789 * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
12790 * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
12791
12792 Fri Aug 4 06:53:46 2000 Clinton Popetz <cpopetz@cygnus.com>
12793
12794 * (mips_legitimate_address_p): Don't allow register+offset
12795 if the offset is large and negative, and we are compiling
12796 for 64 bit registers.
12797
12798 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12799
12800 * gencodes.c (main): Define CODE_FOR_nothing as the last possible
12801 insn_code_number + 1.
12802
12803 2000-08-04 Kazu Hirata <kazu@hxi.com>
12804
12805 * h8300.c (function_prologue): Rearrange code for conciseness.
12806 (function_epilogue): Likewise.
12807 * h8300.h (OK_FOR_U): Fix formatting.
12808
12809 * cse.c: Fix a comment typo. Fix formatting.
12810
12811 2000-08-03 Richard Henderson <rth@cygnus.com>
12812
12813 * config/i386/i386.md (return_indirect_internal): New.
12814 * config/i386/i386.c (ix86_expand_epilogue): Use it.
12815
12816 2000-08-03 Zack Weinberg <zack@wolery.cumb.org>
12817
12818 * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
12819 before the name.
12820 (lex_line): Glue @ onto the beginning of identifiers and
12821 string constants, in Objective-C mode.
12822 (output_token, spell_token): Handle CPP_OSTRING.
12823 (can_paste, maybe_paste_with_next): Handle pasting @ onto the
12824 beginning of a NAME or a STRING, in objc mode.
12825
12826 * cpplib.c (get_define_node): Do not permit identifiers that
12827 begin with @ to be #defined.
12828 * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
12829 * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
12830
12831 * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
12832 * c-tree.h (build_objc_string): Delete prototype.
12833 * objc/objc-tree.def: Delete OBJC_STRING_CST.
12834 * c-lex.c (yylex): Use build_string for all three kinds of strings.
12835
12836 * c-parse.in, objc/objc-act.c: Update commentary.
12837
12838 2000-08-03 Mark Mitchell <mark@codesourcery.com>
12839
12840 * extend.texi: Fix typo in last change.
12841
12842 * extend.texi: Add commentary on statement-expressions and their
12843 interactions with C++.
12844
12845 2000-08-03 Nick Clifton <nickc@cygnus.com>
12846
12847 * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
12848 * dwarf.h (LANG_JAVA): Change value to 0x000b.
12849
12850 2000-08-03 Anthony Green <green@cygnus.com>
12851
12852 * dwarf2out.c (gen_compile_unit_die): Add java language support.
12853 (add_bound_info): Check for java language.
12854 (is_java): New function.
12855 * dwarfout.c (output_compile_unit_die): Ditto.
12856 * dwarf.h (dwarf_source_language): Add java source language type.
12857 * dwarf2.h (dwarf_source_language): Ditto.
12858
12859 Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
12860
12861 * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap
12862 operands.
12863
12864 * i386.c (ix86_expand_branch): Mode of comparison in
12865 IF_THEN_ELSE is VOIDmode.
12866
12867 Thu Aug 3 10:05:53 2000 Akiko Matsushita <matusita@sra.co.jp>
12868
12869 * gengenrtl.c, rtl.c: Avoid #elif.
12870
12871 2000-08-03 Michael Poole <poole@troilus.org>
12872
12873 * tm.texi (Register Classes): Clarify order of sub-initializers
12874 in REG_CLASS_CONTENTS.
12875
12876 Thu Aug 3 15:53:03 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12877
12878 From SAITOH Masanobu:
12879 * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
12880
12881 2000-08-03 David Billinghurst <David.Billinghurst@riotinto.com.au>
12882
12883 * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
12884 is not supported by tradcpp and isn't actually needed for cygwin.
12885
12886 2000-08-03 Kazu Hirata <kazu@hxi.com>
12887
12888 * h8300.c: Fix a comment typo.
12889 * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
12890
12891 * jump.c: Fix formatting.
12892
12893 * toplev.c: Fix formatting.
12894
12895 Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com)
12896
12897 * flow.c (find_auto_inc): Verify that we've got a REG before
12898 peeking at its regno. Fail, don't abort if we can't find
12899 the increment of the desired register.
12900
12901 * pa.md (shadd height reduction patterns/splitters): Remove.
12902
12903 2000-08-02 Jim Wilson <wilson@cygnus.com>
12904
12905 * config/ia64/ia64-protos.h (flag_ssa): Declare.
12906 * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
12907
12908 2000-08-02 Mark Mitchell <mark@codesourcery.com>
12909
12910 * dce.c: Remove all uses of assert.
12911 * dwarf2out.c: Likewise.
12912 * dwarfout.c: Likewise.
12913 * ssa.c: Likewise.
12914
12915 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
12916
12917 * gcc.h (lang_specific_driver): Constify second argument.
12918 * gcc.c (translate_options, process_command, main): Likewise.
12919 Constify variables to match. Cast second argument to
12920 pexecute.
12921
12922 * cppspec.c, gccspec.c: Adjust type of second argument to
12923 lang_specific_driver, and update code as necessary.
12924
12925 2000-08-02 Jakub Jelinek <jakub@redhat.com>
12926
12927 * loop.c (scan_loop): Ensure update_end label does not
12928 go away until reg_scan_update is run.
12929
12930 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
12931
12932 * c-common.h: Prototype min_precision and c_build_qualified_type here...
12933 * c-tree.h: ... not here.
12934 * errors.h: Prototype fancy_abort.
12935
12936 * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
12937 HOST_BITS_PER_WIDE_INT == 64 ifdef block.
12938 * regrename.c (regrename_optimize): Make control flow explicit.
12939 (replace_reg_in_block): Initialize reg_use to 0.
12940
12941 * i386.c (legitimate_address_p): Rename error label to
12942 report_error to avoid namespace clash.
12943
12944 2000-08-02 Kazu Hirata <kazu@hxi.com>
12945
12946 * fold-const.c: Fix formatting.
12947
12948 Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka <jh@suse.cz>
12949
12950 * i386.c (legitimate_address_p): Accept other bases than
12951 pic_offset_table_rtx for GOTOFF constructs.
12952
12953 Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
12954
12955 * i386.md (shift to lea splitter): Use const_int_operand.
12956
12957 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
12958
12959 * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
12960 cppspec.c: Do not use 'legal' or 'illegal' in error messages
12961 and comments.
12962
12963 * cppmain.c (cb_define, cb_undef): Don't generate any output
12964 if not done_initializing.
12965 * cpplex.c (maybe_paste_with_next): When the token after a ##
12966 is an omitted rest argument, only delete the token before it
12967 if that token is a comma. Do not warn about bogus token
12968 pastes for , ## rest_arg.
12969
12970 * cpp.texi: Update.
12971 * cpp.1: Regenerate.
12972
12973 2000-08-02 Fred Fish <fnf@be.com>
12974
12975 * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
12976 when user gives -p option. Add init_term_dyn.o for BeOS 5.0
12977 and later.
12978
12979 * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
12980 Be directories to search path.
12981
12982 Remove support for __declspec(dllimport) and __declspec(dllexport).
12983 This is leftover cruft from the earlier BeOS gcc port when BeOS
12984 used Microsoft's PE object file format.
12985 * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
12986 * config/i386/t-beos (winnt.o): Remove Makefile frag.
12987 * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
12988 (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
12989 (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
12990 (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
12991 (REDO_SECTION_INFO_P): Remove.
12992 (ASM_EXPORT_DECL): Remove.
12993 (ASM_DECLARE_FUNCTION_NAME): Remove.
12994 (ASM_DECLARE_OBJECT_NAME): Remove.
12995 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
12996 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
12997 (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
12998 (STRIP_NAME_ENCODING): Remove.
12999
13000 Remove support for obsolete version of BeOS that is no longer
13001 supported by Be.
13002 * configure.in (i*86-*-beospe*): Remove.
13003 * config/i386/beos-pe.h: Remove.
13004
13005 2000-08-01 Jeffrey Oldham <oldham@codesourcery.com>
13006 Mark Mitchell <mark@codesourcery.com>
13007
13008 * Makefile.in (OBJS): Added dce.o.
13009 (ssa.o): Updated target to include ssa.h.
13010 (flow.o): Likewise.
13011 (toplev.o): Likewise.
13012 (dce.o): Created target.
13013 * basic-block.h: Added comments.
13014 (INVALID_BLOCK): Added definition.
13015 (connect_infinite_loops_to_exit): Added declaration.
13016 Moved SSA declarations to ssa.h.
13017 * flow.c: Added inclusion of ssa.h.
13018 (struct depth_first_search_dsS, depth_first_search_ds):
13019 Added definitions.
13020 (compute_immediate_postdominators): Added definition.
13021 (connect_infinite_loops_to_exit): Likewise.
13022 (flow_dfs_compute_reverse_init): Likewise.
13023 (flow_dfs_compute_reverse_add_bb): Likewise.
13024 (flow_dfs_compute_reverse_execute): Likewise.
13025 (flow_dfs_compute_reverse_finish): Likewise.
13026 * rtl.h (rtx/in_struct): Added use to determine insn necessity.
13027 (LABEL_P): Added definition.
13028 (JUMP_P): Likewise.
13029 (NOTE_P): Likewise.
13030 (BARRIER_P): Likewise.
13031 (JUMP_TABLE_DATA_P): Likewise.
13032 (INSN_DEAD_CODE_P): Likewise.
13033 * ssa.c: Replaced inclusions with ssa.h inclusion.
13034 (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
13035 (rename_registers): Removed unnecessary variables.
13036 * ssa.h: Created by moving declarations from ssa.c and
13037 basic-block.h.
13038 * timevar.def: Defined TV_DEAD_CODE_ELIM.
13039 * toplev.c: Added ssa.h inclusion.
13040 (dump_file_index): Added DFI_dce.
13041 (dump_file): Added "dce" entry.
13042 Defined flag_ssa.
13043 (f_options): Added dce entry.
13044 * invoke.texi: Document -fdce. Emphasize experimental status of
13045 -fssa.
13046 * dce.c: New file.
13047
13048 2000-08-01 Zack Weinberg <zack@wolery.cumb.org>
13049
13050 * cpperror.c (v_message): Split into _cpp_begin_message and
13051 v_message macro. All callers updated.
13052 (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
13053 checks here.
13054
13055 * cppfiles.c (cpp_syshdr_flags): New function.
13056 (read_include_file): Don't call cpp_output_tokens. Call
13057 enter_file hook.
13058 * cppinit.c (dump_macros_helper): Moved to cppmain.c.
13059 (cpp_reader_init): Don't initialize token_buffer. Call
13060 _cpp_init_internal_pragmas.
13061 (cpp_cleanup): Don't clear token_buffer.
13062 (cpp_start_read): Don't worry about output from -D processing.
13063 Don't call cpp_output_tokens.
13064 (cpp_finish): Don't dump macros here. Don't call
13065 cpp_output_tokens.
13066 * cppmacro.c (_cpp_dump_definition): Rename
13067 cpp_dump_definition. Write directly to a FILE *.
13068 (dump_funlike_macro): Delete.
13069 (dump_macro_args): New.
13070
13071 * cpplex.c (TOKEN_LEN): Convert to inline function.
13072 (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
13073 cpp_scan_line, _cpp_dump_list): Delete.
13074 (cpp_printf, cpp_output_list): New.
13075 (output_line_command): Don't worry about entering or leaving files.
13076 (cpp_scan_buffer): Just output each token as we hit it.
13077 (process_directive): Don't call cpp_output_tokens.
13078 (_cpp_glue_header_name): Don't use token_buffer.
13079 (output_token, dump_param_spelling): Write directly to a FILE *.
13080
13081 * cpplib.c (pass_thru_directive, dump_macro_name,
13082 pragma_dispatch, do_pragma_gcc): Delete.
13083 (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
13084 do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
13085 functions.
13086 (do_error, do_warning, pragma_dependency): Call
13087 _cpp_begin_message, then cpp_output_list.
13088 (cpp_register_pragma, cpp_register_pragma_space,
13089 _cpp_init_internal_pragmas): New.
13090 (do_pragma): Walk the pragmas table here.
13091 (do_pragma_once, do_pragma_poison, do_pragma_system_header,
13092 do_pragma_dependency): Return void.
13093 (do_pragma_implementation): Moved to cppmain.c.
13094
13095 * cpplib.h: Update prototypes.
13096 (struct cpp_reader): Remove printer, token_buffer,
13097 token_buffer_size, and limit. Add struct cb, and pragmas.
13098 (struct cpp_printer): Remove last_id and written.
13099 (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
13100 CPP_ADJUST_WRITTEN): Delete.
13101 * cpphash.h: Update prototypes.
13102 (ufputs): New wrapper.
13103
13104 * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
13105 cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
13106 (main): Set up callbacks. Register #pragma implementation.
13107 Dump macros from here.
13108
13109 2000-08-01 Geoff Keating <geoffk@cygnus.com>
13110
13111 * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
13112 * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
13113 * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
13114 insns if they have a REG_MAYBE_DEAD note attached.
13115 * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
13116 (rs6000_emit_load_toc_table): TOC loads may go dead.
13117
13118 2000-08-01 Jim Wilson <wilson@cygnus.com>
13119
13120 * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify
13121 type exists before using it. Use number of words as alignment
13122 otherwise.
13123 (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
13124 ia64_va_arg): Propagate ia64_function_args changes here.
13125
13126 2000-08-01 Richard Henderson <rth@cygnus.com>
13127
13128 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
13129 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
13130
13131 2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk>
13132
13133 From Joern Rennecke:
13134 * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
13135 * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
13136 unless TARGET_SH3E is set.
13137 * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
13138
13139 * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
13140 (ashlsi3_std): New pattern.
13141 (ashlsi3 expander): Use it for TARGET_SH3.
13142 * sh.c (gen_ashift): Use it instead of ashlsi3_k.
13143
13144 Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
13145
13146 * loop.c (canonicalize_condition): Use destination, not source to
13147 determine SET's mode.
13148
13149 2000-07-31 Mark Mitchell <mark@codesourcery.com>
13150
13151 * flow.c (clear_log_links): Fix typo.
13152
13153 Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com)
13154
13155 * loop.c (check_dbra_loop): Make change from July 17, 2000 work
13156 on targets which need more than one insn for a compare/cbranch
13157 operation.
13158
13159 2000-07-31 Jim Wilson <wilson@cygnus.com>
13160
13161 * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
13162 when computing offset.
13163
13164 Mon Jul 31 20:35:50 2000 Denis Chertykov <denisc@overta.ru>
13165
13166 * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
13167
13168 2000-07-31 Geoff Keating <geoffk@cygnus.com>
13169
13170 * flow.c (clear_log_links): Nuke global_live_at_start and
13171 global_live_at_end data, since if the log_links stuff is invalid
13172 so is global_live_at_*.
13173
13174 2000-07-31 Richard Henderson <rth@cygnus.com>
13175
13176 * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
13177
13178 2000-07-31 Jakub Jelinek <jakub@redhat.com>
13179
13180 * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
13181 (_cpp_get_token): Don't macro expand a just pasted token if it
13182 was pasted at no_expand_level.
13183
13184 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
13185
13186 * cppmacro.c (find_param, count_params, save_expansion):
13187 Permit 'defined' as a macro parameter name.
13188
13189 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
13190
13191 * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
13192 xcpp to cpp throughout.
13193 (native): Remove unnecessary dependency on cpp.
13194
13195 * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
13196 tradcpp to tradcpp0.
13197 (.i spec): Add missing output-file spec to cc1 command line.
13198 * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
13199
13200 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
13201
13202 * c-decl.c (mesg_implicit_function_declaration): Init to -1.
13203 (implicit_decl_warning): New function.
13204 (implicitly_declare): Use it.
13205 * c-typeck.c (build_external_ref): Use implicit_decl_warning
13206 to complain about implicit decls of builtins.
13207
13208 * c-lang.c (lang_init): Set mesg_implicit_function_declaration
13209 based on pedantic && flag_isoc99, if not already set.
13210 * c-tree.h: Declare mesg_implicit_function_declaration.
13211 Prototype implicit_decl_warning.
13212
13213 2000-07-30 Jeffrey D. Oldham <oldham@codesourcery.com>
13214
13215 * Makefile.in (ssa.o): Updated header files in dependences.
13216 * basic-block.h: Added compute_immediate_postdominators declaration.
13217 * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
13218 definition.
13219 * flow.c (compute_immediate_dominators): Updated comment.
13220 (compute_immediate_postdominators): Added definition.
13221 * rtl.h (HARD_REGISTER_P): Added definition.
13222 * ssa.c: Include additional header files.
13223 (assert): Added definition.
13224 (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
13225 include select hard registers.
13226 (ssa_rename_to_insert): Likewise.
13227 (ssa_rename_from_initialize): Likewise.
13228 (ssa_rename_from_lookup): Likewise.
13229 (original_register): Likewise.
13230 (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
13231 include select hard reigsters.
13232 (ssa_rename_from_traverse): Likewise.
13233 (ssa_rename_from_free): Likewise.
13234 (ssa_rename_from_print): Likewise.
13235 (ssa_rename_from_print_1): Likewise.
13236 (ssa_rename_from_hash_function): Likewise.
13237 (ssa_rename_from_equal): Likewise.
13238 (ssa_rename_from_delete): Likewise.
13239 (simplify_to_immediate_dominators): Removed in favor of
13240 flow.c:compute_immediate_dominators.
13241 (find_evaluations_1): Modified to work with hard registers.
13242 (insert_phi_node): Likewise.
13243 (insert_phi_nodes): Likewise.
13244 (struct rename_set_data): Updated prev_reg comment.
13245 (create_delayed_rename): Modified to work with hard registers.
13246 (RENAME_NO_RTX): Updated comment.
13247 (apply_delayed_renames): Modified to work with hard registers.
13248 (rename_insn_1): Likewise and added handling of CLOBBER rtls.
13249 (rename_block): Updated to use revised ssa_rename_to interface.
13250 (rename_registers): Updated to use revised ssa_rename_to and
13251 ssa_rename_from interface.
13252 (convert_to_ssa): Revised to use compute_immediate_dominators and
13253 deal with hard registers.
13254 (make_regs_equivalent_over_bad_edges): Modified to work with hard
13255 registers. Added check for illegal unification of hard register.
13256 (make_equivalent_phi_alternatives_equivalent): Modified to work
13257 with hard registers.
13258 (compute_conservative_reg_partition): Likewise.
13259 (coalesce_if_unconflicting): Modified to work with hard registers
13260 and check for conflicting hard registers.
13261 (mark_phi_and_copy_regs): Revised loop to work only on pseudo
13262 registers.
13263 (rename_equivalent_regs_in_insn): Modified to work with hard
13264 registers.
13265 (record_canonical_element_1): Added definition.
13266 (check_hard_regs_in_partition): Added definition.
13267 (convert_from_ssa): Added data structure deallocation and check
13268 for illegal hard register unification.
13269 (conflict_hard_regs_p): Added definition.
13270 * toplev.c (rest_of_compilation): Added comment.
13271
13272 2000-07-31 Anthony Green <green@redhat.com>
13273
13274 * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
13275
13276 2000-07-31 Jason McMullan <jmcmullan@linuxcare.com>
13277
13278 * builtins.c (expand_builtin_apply): Don't defer pop during
13279 argument setup.
13280
13281 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13282
13283 * calls.c (combine_pending_stack_adjustment_and_call): Only use
13284 preferred_unit_stack_boundary when it is > 1.
13285
13286 2000-07-31 Joseph S. Myers <jsm28@cam.ac.uk>
13287
13288 * c-common.c (init_function_format_info): Add C99 format functions
13289 in C99 mode.
13290
13291 * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
13292 void' or 'register void' as being the special case of 'void' alone
13293 in a parameter list.
13294
13295 * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
13296 discarding qualifiers into a plain warning.
13297
13298 2000-07-31 Kazu Hirata <kazu@hxi.com>
13299
13300 * combine.c: Fix formatting.
13301
13302 * h8300.md: Fix formatting.
13303
13304 * local-alloc.c: Fix formatting.
13305
13306 * h8300.c (get_shift_alg): Remove the variable alg.
13307 (emit_a_shift): Rearrange code to improve readability.
13308
13309 * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
13310
13311 * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
13312 HImode on all architectures and a combination of HImode and SImode
13313 on H8/300H and H8/S.
13314
13315 * h8300.c (split_adds_subs): Rearrange code for conciseness.
13316
13317 Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
13318
13319 * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
13320 in my last checkin.
13321
13322 Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
13323
13324 * recog.c (extract_insn): Set operand_mode according to
13325 operand if match_operand is VOIDmode.
13326
13327 Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
13328
13329 * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
13330
13331 2000-07-31 Geoff Keating <geoffk@cygnus.com>
13332
13333 * c-parse.in (extdefs): Call ggc_collect between external
13334 definitions.
13335
13336 2000-07-30 Michael Hayes <mhayes@cygnus.com>
13337 Richard Henderson <rth@cygnus.com>
13338
13339 * Makefile.in (OBJS): Add doloop.o.
13340 * doloop.c: New file.
13341
13342 * final.c (insn_current_reference_address): Return 0 before final.
13343 * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
13344 * jump.c (any_uncondjump_p): Likewise.
13345 * loop.c (indirect_jump_in_function): Make static.
13346 (strength_reduce): Call doloop_optimize.
13347 (insert_bct, instrument_loop_bct): Remove.
13348 * loop.h (doloop_optimize): Prototype.
13349 * recog.c (split_all_insns): Split all INSN_P.
13350 * toplev.c (flag_branch_on_count_reg): Default on.
13351
13352 * config/c4x/c4x.c (c4x_optimization_options): Don't set
13353 flag_branch_on_count_reg.
13354 * config/i386/i386.c (override_options): Likewise.
13355 * config/rs6000/rs6000.c (optimization_options): Likewise.
13356
13357 * config/i386/i386.md (decrement_and_branch_on_count): Remove.
13358 (doloop_end): New.
13359 (dbra_ge): Remove, as well as all it's splitters.
13360
13361 * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
13362 (doloop_end): New.
13363
13364 * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
13365 (ia64_register_move_cost): Declare.
13366 * config/ia64/ia64.c (ar_lc_reg_operand): New.
13367 (struct ia64_frame_info): Add ar_size.
13368 (ia64_compute_frame_size): Set it.
13369 (save_restore_insns): Save and restore ar.lc.
13370 (ia64_register_move_cost): New, moved from header file. Handle
13371 application registers.
13372 (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers.
13373 (emit_insn_group_barriers): Special case doloop_end_internal.
13374 (ia64_epilogue_uses): Mark ar.lc live at end.
13375 * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
13376 (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
13377 (FIRST_PSEUDO_REGISTER): Make room.
13378 (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
13379 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
13380 (REG_ALLOC_ORDER): Update.
13381 (HARD_REGNO_MODE_OK): Update.
13382 (REGISTER_NAMES): Update.
13383 (enum reg_class): Add AR_M_REGS and AR_I_REGS.
13384 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
13385 (REGNO_REG_CLASS): Update.
13386 (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
13387 (REGISTER_MOVE_COST): Move out of line.
13388 (PREDICATE_CODES): Update.
13389 * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
13390 (addsi3_plus1_alt, adddi3_plus1_alt): New.
13391 (shladd_elim splitter): Allow constants in the predicate.
13392 (doloop_end, doloop_end_internal): New.
13393
13394 2000-07-30 Richard Henderson <rth@cygnus.com>
13395
13396 * genattrtab.c (struct insn_def): Add lineno member.
13397 (struct insn_ent): Likewise.
13398 (struct attr_desc): Likewise.
13399 (struct delay_desc): Likewise.
13400 (struct function_unit_op): Likewise.
13401 (struct function_unit): Likewise.
13402 (check_attr_value): Use message_with_line.
13403 (check_defs): Likewise.
13404 (expand_units): Likewise.
13405 (check_attr_test): Take a lineno argument.
13406 (gen_attr): Likewise.
13407 (gen_insn): Likewise.
13408 (gen_delay): Likewise.
13409 (gen_unit): Likewise.
13410 (main): Give it to them.
13411 (convert_set_attr_alternative): Take an insn_def argument
13412 instead of num_alt and insn_index.
13413 (convert_set_attr): Likewise.
13414 (write_test_expr): Protect INSN_ADDRESSES load
13415 with INSN_ADDRESSES_SET_P.
13416
13417 2000-07-30 Richard Henderson <rth@cygnus.com>
13418
13419 * flow.c (init_propagate_block_info): Use pc_set.
13420
13421 Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
13422
13423 * i386.md (*lea_general_[123]) New insns and splits.
13424 (addsi3 to lea splitter): Handle other modes too.
13425 (shlsi3 to lea splitter): Likewise.
13426 (addhi_1_lea, shlhi_1_lea): New patterns.
13427 (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
13428
13429 Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
13430
13431 * recog.c (general_operand, nonimmediate_operand): Accept
13432 any mode for VOIDmode CONSTANT_P operands.
13433
13434 Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
13435
13436 * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
13437 instead of replace_rtx.
13438 * recog.c (validate_replace_rtx_subexp): New function.
13439 * recog.h (validate_replace_rtx_subexp): Declare.
13440
13441 Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
13442
13443 * combine.c (simplify_set, make_extraction, make_compound_operation
13444 make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
13445 as force_to_mode argument.
13446
13447 Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
13448
13449 * combine.c (if_then_else_cond): Be sure that mode fits in
13450 HOST_WIDE_INT.
13451
13452 Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
13453
13454 * combine.c (record_promoted_value): Allow bitsize of mode
13455 to be equivalent to HOST_BITS_PER_WISE_INT.
13456
13457 Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
13458
13459 * function.c (assign_stack_local_1, assign_stack_temp_for_type):
13460 Do not call gen_mode_alignment when mode is BLKmode.
13461
13462 Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka <jh@suse.cz>
13463
13464 * loop.c (express_from_1): Fix call of simplify_gen_binary.
13465
13466 Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
13467
13468 * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
13469 VOIDmode implies both operands to be VOIDmode.
13470 (simplify_ternary_operation): Compute properly the mode of comparison.
13471 * combine.c (combine_simplify_rtx): Likewise.
13472
13473 2000-07-25 Michael Hayes <mph@paradise.net.nz>
13474
13475 * basic-block.h (struct loops): New field rc_order.
13476 * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
13477 (flow_loops_free): Free rc_order.
13478 (flow_depth_first_order_compute): New parameter rc_order.
13479 (flow_loops_find): Allocate rc_order and swap usage with
13480 dfs_order.
13481
13482 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13483 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13484
13485 * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
13486 (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
13487 (nodb_call, return_from_epilogue): Likewise.
13488 (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
13489 * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
13490 * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
13491 (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
13492 (c4x_valid_type_attribute_p): Likewise.
13493 * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
13494 (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
13495
13496 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13497
13498 * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
13499 and loadhi_big_constant if applicable.
13500 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
13501 and add new splitter.s
13502
13503 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13504
13505 * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
13506
13507 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13508
13509 * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
13510
13511 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13512
13513 * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
13514
13515 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13516
13517 * config/c4x/libgcc.S (divqf3): Improve accuracy.
13518
13519 2000-07-27 Mark Mitchell <mark@codesourcery.com>
13520
13521 Put phi nodes after NOTE_INSN_BASIC_BLOCK.
13522 * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
13523 * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
13524 (get_prev_bb_note): Likewise.
13525 (remove_scope_notes): Likewise.
13526 * flow.c (commit_one_edge_insertion): Likewise.
13527 (merge_blocks_nomove): Likewise.
13528 (verify_flow_info): Likewise.
13529 * gcse.c (insert_insn_end_bb): Likewise.
13530 * reg-stack.c (emit_swap_insn): Likewise.
13531 * ssa.c (first_insn_after_basic_block_note): New function.
13532 (insert_phi_node): Use it.
13533 (rename_block): Likewise.
13534 (eliminate_phi): Likewise.
13535 (make_regs_equivalent_over_bad_edges): Likewise.
13536 (make_equivalent_phi_alternatives_equivalent): Likewise.
13537 (for_each_successor_phi): Likewise.
13538 (convert_from_ssa): Modify phi-node deletion algorithm.
13539
13540 2000-07-29 Andreas Jaeger <aj@suse.de>
13541
13542 * configure.in (mips*-*-linux*): Use mips*el to check for little
13543 endian MIPS, add tmake_file.
13544
13545 * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
13546 (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
13547 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
13548
13549 2000-07-28 Richard Henderson <rth@cygnus.com>
13550
13551 * config/ia64/ia64.c (ia64_print_operand): Fix typos.
13552 Sign extend mode size before negating.
13553
13554 2000-07-28 Richard Henderson <rth@cygnus.com>
13555
13556 * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
13557
13558 2000-07-28 Bernd Schmidt <bernds@cygnus.co.uk>
13559
13560 * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
13561 (cse_insn): Likewise.
13562 (addr_affects_sp_p): Likewise.
13563 * expr.c (move_by_pieces): Likewise.
13564 (clear_by_pieces): Likewise.
13565 * gcse.c (oprs_unchanged_p): Likewise.
13566 * haifa-sched.c (sched_analyze_2): Likewise.
13567 * recog.c (offsettable_address_p): Likewise.
13568 * regclass.c (record_address_regs): Likewise.
13569 * reload.c (find_reusable_reload): Likewise.
13570 (push_reload): Likewise.
13571 (operands_match_p): Likewise.
13572 (decompose): Likewise.
13573 (find_reloads_address_1): Likewise.
13574 (find_inc_amount): Likewise.
13575 * reload1.c (elimination_effects): Likewise.
13576 * resource.c (mark_set_resources): Likewise.
13577 * flow.c (attempt_auto_inc): New function; mostly broken out
13578 of find_auto_inc.
13579 (find_auto_inc): Split into two functions and enhanced to
13580 generate POST_MODIFY.
13581 * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
13582 * rtl.h (count_all_occurrences): Declare.
13583 (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
13584 defined.
13585 * rtlanal.c (count_all_occurrences): New function.
13586 * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
13587 HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
13588
13589 * config/ia64/ia64-protos.h (destination_operand): Declare.
13590 * config/ia64/ia64.c (destination_operand): New function.
13591 (ia64_print_operand): Handle POST_MODIFY.
13592 (rtx_needs_barrier): Likewise.
13593 * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
13594 (HAVE_POST_MODIFY_REG): Define to 1.
13595 (MAX_REGS_PER_ADDRESS): Change to 2.
13596 (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
13597 (LEGITIMATE_ADDRESS_REG): New helper macro.
13598 (LEGITIMATE_ADDRESS_DISP): Likewise.
13599 (PREDICATE_CODES): Add entry for destination_operand.
13600 * config/ia64/ia64.md (all mov patterns): Use destination_operand
13601 predicate for operand 0.
13602
13603 2000-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13604
13605 * dwarf2out.c: Indent #error directive.
13606
13607 * gbl-ctors.h: Fix typo in comment.
13608 (__do_global_ctors): Prototype.
13609
13610 * gcse.c (record_one_set, pre_delete): Remove unused variables.
13611
13612 * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
13613 (print_operand): Initialize variable `t'.
13614
13615 2000-07-27 Aldy Hernandez <aldyh@redhat.com>
13616
13617 * config/arm/arm.md ("call_value"): removed constraints.
13618 Constraints are ignored in expanders.
13619 (*call_value_reg): split =rf into various constraints.
13620 (*call_value_mem): same
13621 (*call_value_symbol): same
13622 (*sibcall_value_insn): same
13623
13624 2000-07-28 Philipp Thomas <pthomas@suse.de>
13625
13626 * install.texi (--enable-nls): Change the description of the NLS
13627 related configure options to match the current state.
13628 (--with-included-gettext): Likewise.
13629 (--enable-maintainer-mode): New description added.
13630 * extend.texi (-fstrict-prototype): Add missing '.'.
13631
13632 2000-07-27 Jim Wilson <wilson@cygnus.com>
13633
13634 * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
13635 DECL_INITIAL (decl) == NULL_TREE.
13636
13637 2000-07-27 Alexandre Oliva <aoliva@redhat.com>
13638
13639 * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies
13640 on insn-attr.h with it.
13641 * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
13642 * insn-addr.h: New header.
13643 (insn_addresses_): Renamed from insn_addresses.
13644 (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
13645 INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
13646 INSN_ADDRESSES_NEW): New macros.
13647 * genattrtab.c (write_test_expr): Use new macros.
13648 * final.c (insn_addresses, init_insn_lengths): Likewise.
13649 (align_fuzz, shorten_branches): Likewise.
13650 (final): Likewise. Do not reject new insns if their addresses
13651 have been added to INSN_ADDRESSES.
13652 * config/arm/arm.c, config/avr/avr.c: Use new macros.
13653 * config/h8300/h8300.c, config/i370/i370.c: Likewise.
13654 * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
13655 * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
13656 * config/sh/sh.c: Likewise.
13657 (output_branchy_insn): Use INSN_ADDRESSES_NEW.
13658
13659 * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
13660
13661 2000-07-27 Andrew Cagney <cagney@b1.cygnus.com>
13662
13663 * gcc.c (struct prefix_list): Add member priority.
13664 (enum path_prefix_priority): Declare.
13665 (add_prefix): Replace ``first'' with ``priority''. Append new
13666 entry but keep list in priority order.
13667 (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or
13668 PREFIX_PRIORITY_LAST to add_prefix.
13669 (process_command): Move include kludge - foo/stageN - to before
13670 foo/include.
13671
13672 2000-07-27 Jason Merrill <jason@redhat.com>
13673
13674 * dwarf2out.c (gen_typedef_die): Abort if we get identical
13675 TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
13676
13677 2000-07-27 RodneyBrown <RodneyBrown@pmsc.com>
13678
13679 * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
13680 * tree.h (get_alias_set, lang_get_alias_set): Prototype.
13681
13682 2000-07-27 Joseph S. Myers <jsm28@cam.ac.uk>
13683
13684 * c-decl.c (finish_function): Don't treat 'main' specially unless
13685 flag_hosted. In C99 mode, return 0 from 'main' unless
13686 DEFAULT_MAIN_RETURN is otherwise defined.
13687
13688 * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
13689 parameters defaulting to int in an old-style function definition.
13690
13691 2000-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13692
13693 * c-parse.in (string): For -Wtraditional, warn about string
13694 concatenation only once per line.
13695
13696 Thu Jul 27 09:25:17 2000 Akiko Matsushita <matusita@sra.co.jp>
13697
13698 * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
13699 for HI-UX/WE2 systems.
13700
13701 2000-07-24 Bruce Korb <bkorb@gnu.org>
13702
13703 * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
13704 defining the __xxx_TYPE__ macros.
13705 * fixincl/fixincl.tpl(gnu_type_map): now obsolete
13706 * fixincl/fixlib.h: don't need to include "tm.h" anymore
13707 * fixincl/inclhack.def(type_map): now obsolete
13708
13709 Thu Jul 27 11:54:17 2000 Andrew Cagney <cagney@b1.cygnus.com>
13710
13711 * cpp.texi: Append a trailing full-stop to xrefs where needed.
13712
13713 2000-07-26 Dave Pitts <dpitts@cozx.com>
13714
13715 * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
13716 routine constants.
13717 (mvs_hash_alias): New function.
13718 (mvs_add_alias): Change argument spacing.
13719 (mvs_need_alias): Change aliasing criteria. Added documentation.
13720 (mvs_get_alias): Change to use hashed name. The hashed name prevents
13721 CSECT name collisions.
13722 (mvs_check_alias): Likewise.
13723 (handle_pragma): Change documentation.
13724 * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
13725 mode from SImode to DImode.
13726 (iorhi3): Changed LTORG size for insn.
13727
13728 Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
13729
13730 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
13731 mem if the address is a mode_dependent_address_p.
13732
13733 2000-07-26 Kazu Hirata <kazu@hxi.com>
13734
13735 * h8300.c (print_operand): Print ":8" when the 'R' operand is
13736 suitable for 8-bit absolute.
13737 * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
13738 (OK_FOR_U): Add a case for the 8-bit constant address on the
13739 H8/300H.
13740
13741 Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson <hp@axis.com>
13742
13743 * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
13744 && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
13745 ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
13746 lack of implemented alignment.
13747
13748 2000-07-26 Geoffrey Keating <geoffk@cygnus.com>
13749
13750 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
13751 cross-compiling between 64-bit and 32-bit machines.
13752
13753 2000-07-27 Richard Henderson <rth@cygnus.com>
13754
13755 * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
13756 (movhicc_astep, movhi_internal_astep): New.
13757 (movsicc_astep, movsi_internal_astep): New.
13758 (movdicc_astep, movdi_internal_astep): New.
13759 (movsfcc_astep, movsf_internal_astep): New.
13760 (movdfcc_astep, movdf_internal_astep): New.
13761 (movxfcc_astep, movxf_internal_astep): New.
13762 (cmovdi_internal_astep, cmovsi_internal_astep): New.
13763 Unify the cmov[ds]i splitters.
13764
13765 2000-07-27 Rodney Brown <RodneyBrown@pmsc.com>
13766
13767 * real.c (asctoeg): Rename `error' label to unexpected_char_error
13768
13769 2000-07-26 Nick Clifton <nickc@cygnus.com>
13770
13771 * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
13772 __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h
13773
13774 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
13775 well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
13776
13777 2000-07-26 Alexandre Oliva <aoliva@redhat.com>
13778
13779 * c-decl.c (finish_enum): Convert enumerations that fit in an
13780 `int' to `int'.
13781 (build_enumerator): In pedantic mode, cast to `int' those that
13782 don't.
13783
13784 2000-07-25 Rodney Brown <RodneyBrown@pmsc.com>
13785
13786 * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
13787
13788 Tue Jul 25 23:08:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
13789
13790 * sh.md (cmpgtdi_t): Must be split.
13791 (cmpgtdi_t+1): New splitter.
13792
13793 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
13794
13795 * cpplib.c (_cpp_check_directive): Issue -Wtraditional
13796 warnings for indented directives even if we are skipping.
13797
13798 2000-07-25 Nathan Sidwell <nathan@codesourcery.com>
13799
13800 * invoke.texi (strict-prototypes): Remove.
13801 * extend.texi (Deprecated Features): Add strict-prototypes.
13802 (Backwards Compatibility): New node.
13803
13804 2000-07-25 Jakub Jelinek <jakub@redhat.com>
13805
13806 * config/i386/i386.md (andsi_1+1): Allow HImode.
13807 (andsi_1+2): Require q_regs_operand.
13808
13809 2000-07-25 Jakub Jelinek <jakub@redhat.com>
13810
13811 * config/i386/i386.md (call_pop): Check operands[0],
13812 not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
13813 (call): Likewise.
13814 (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
13815 (call_value): Likewise.
13816
13817 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
13818
13819 * toplev.c (pipe_closed): Delete.
13820 (crash_signal): New. Generate ICE for a fatal signal.
13821 (float_signal): Call crash_signal outside a float-handler
13822 block, not abort.
13823 (main): Install crash_signal as handler for core-dumping signals.
13824
13825 2000-07-25 David Edelsohn <edelsohn@gnu.org>
13826
13827 * rs6000.c (print_operand, case 'T'): New case.
13828
13829 * rs6000.md (call_indirect_aix32): Convert to expander of
13830 scheduled instructions.
13831 (call_indirect_aix64): Likewise.
13832 (call_value_indirect_aix{32,64}): Likewise.
13833 (call, call_value): Invoke expanders for AIX. Fall through to
13834 matchers for SysV.
13835 (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
13836 (call_value_indirect_nonlocal_aix{32,64}): New patterns.
13837 (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1
13838 only "g" constraint.
13839 (call_nonlocal_aix64): Likewise.
13840 (call_value_nonlocal_aix{32,64}): Likewise.
13841 (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
13842 operands.
13843 (call_value_nonlocal_sysv): New pattern.
13844 (indirect_jump{si,di}): Use new 'T' modifier.
13845 (tablejump{si,di} matchers): Likewise.
13846 (return_internal_{si,di}): Likewise.
13847 (return_eh_{si,di}): Likewise.
13848
13849 2000-07-24 Richard Henderson <rth@cygnus.com>
13850
13851 * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
13852 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
13853 * config/ia64/ia64.md (movdi_internal): Use it.
13854
13855 2000-07-24 Zack Weinberg <zack@wolery.cumb.org>
13856
13857 * cppexp.c: Warn about unary + if -Wtraditional.
13858 * cpplex.c (lex_line): Always set BOL on the first token of a line.
13859
13860 2000-07-24 Michael Meissner <meissner@redhat.com>
13861
13862 * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
13863 unsupported macro.
13864
13865 2000-07-24 Nick Clifton <nickc@cygnus.com>
13866
13867 * config/arm/arm.c (emit_multi_reg_push): Generate a
13868 REG_FRAME_RELEATED_NOTE that is compatable with the code in
13869 dwarf2out_debug_frame_expr.
13870
13871 2000-07-24 Jason Merrill <jason@redhat.com>
13872
13873 * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
13874 UNALIGNED_INT_ASM_OP.
13875 (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
13876 a location expression.
13877 (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't
13878 assume indirect access if we're saving the CFA address exactly.
13879
13880 * Makefile.in (bootstrap): Move -BstageN/ to the end.
13881
13882 2000-07-24 Jakub Jelinek <jakub@redhat.com>
13883
13884 * tradcpp.c (main): Update max_include_len for cpp_include_defaults
13885 as well.
13886
13887 2000-07-24 Michael Meissner <meissner@redhat.com>
13888
13889 * invoke.texi (D30V Options): Add d30v options.
13890
13891 Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com)
13892
13893 * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
13894 needed by our gcse pass anymore.
13895 (free_pre_mem): Corresponding changes.
13896 (compute_pre_data): Do not call compute_transpout anymore.
13897
13898 * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
13899 (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
13900 changes.
13901
13902 * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
13903 (compute_pre_data): Do it here instead.
13904
13905 * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
13906 'temp_bitmap'.
13907 (pre_delete): Corresponding changes.
13908
13909 2000-07-23 Mark Mitchell <mark@codesourcery.com>
13910
13911 * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
13912 to figure out whether or not a variable has already been emitted.
13913
13914 Sun Jul 23 14:49:12 2000 Jason Eckhardt <jle@cygnus.com>
13915
13916 * config/i860/i860.md (untyped_call expander): Use GEN_CALL
13917 instead of gen_call.
13918
13919 Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk)
13920
13921 * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
13922
13923 2000-07-23 Kazu Hirata <kazu@hxi.com>
13924
13925 * h8300.c: Fix formatting.
13926
13927 2000-07-23 Joseph S. Myers <jsm28@cam.ac.uk>
13928
13929 * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
13930 for `long' switch expression into a plain warning.
13931
13932 * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
13933 (yylex): Don't pedwarn for "inline" in C99 mode.
13934
13935 * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
13936 with %p.
13937 * ggc-page.c (debug_print_page_list, alloc_page, free_page,
13938 ggc_alloc): Likewise.
13939 * bb-reorder.c (dump_scope_forest_1): Likewise.
13940
13941 2000-07-22 Aldy Hernandez <aldyh@redhat.com>
13942
13943 * reload.c (find_reloads_toplev): Add new parameter
13944 "address_reloaded".
13945 (find_reloads): Add new parameter to find_reloads_toplev calls.
13946
13947 2000-07-22 Jeffrey Oldham <oldham@codesourcery.com>
13948
13949 * collect2.c (main): Typo fixed.
13950 * diagnostic.c: Typo fixed.
13951 * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
13952 * eh-common.h: Typo fixed.
13953 * emit-rtl.c (start_sequence): Typo fixed.
13954 * flow.c (find_label_refs): Typo fixed.
13955 (calculate_global_regs_live): Typo fixed.
13956 (mark_regno_cond_dead): Typo fixed.
13957 (create_edge_list): Typos fixed.
13958 (verify_edge_list): Typo fixed.
13959 * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
13960 * loop.c (strength_reduce): Typo in function name fixed.
13961 * rtl.h: Added comments. Typo in function name fixed.
13962 * rtlanal.c: Typo in function name fixed.
13963 (insn_dependant_p): Rename to ...
13964 (insn_dependent_p): ... this.
13965 (computed_jumo_p): Typo fixed.
13966
13967 2000-07-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13968
13969 * system.h (__FUNCTION__): Wrap definition in #ifndef.
13970
13971 2000-07-21 David Edelsohn <edelsohn@gnu.org>
13972
13973 * rs6000.h (SIZE_TYPE): Define.
13974
13975 2000-07-21 Mark Mitchell <mark@codesourcery.com>
13976
13977 * ssa.c (rename_insn_1): Don't rename registers that are
13978 CLOBBERed.
13979
13980 2000-07-21 Zack Weinberg <zack@wolery.cumb.org>
13981
13982 * diagnostic.c (trim_filename, fancy_abort): Moved here from
13983 rtl.c.
13984 (fatal_function, set_fatal_function): Removed.
13985 (fatal): Don't prepare for or call the fatal_function.
13986 (diagnostic_lock, error_recursion): New.
13987 (diagnostic_for_decl, report_diagnostic): Guard against
13988 re-entering the error reporting routines.
13989 (fancy_abort): Assume function is not NULL.
13990
13991 * errors.c (fancy_abort): New. Assume function is not NULL.
13992 * tradcpp.c (fancy_abort): Assume function is not NULL.
13993
13994 * system.h: Provide default definition of __FUNCTION__.
13995 * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
13996 Always use __FUNCTION__ in definition of abort.
13997 * tree.h: Likewise.
13998 * varray.h: Likewise.
13999 * toplev.h: Likewise. Don't prototype set_fatal_function.
14000
14001 2000-07-20 Geoff Keating <geoffk@cygnus.com>
14002
14003 * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
14004 in 64-bit mode.
14005 * glimits.h: Don't do #if defined for ARCH_PPC.
14006
14007 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
14008 constants of size no larger than a pointer should go in the TOC.
14009 Add 'MODE' parameter.
14010 (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
14011 ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
14012 (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
14013 * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
14014 * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
14015 * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
14016 (rs6000_legitimize_address): Likewise.
14017 (rs6000_emit_move): Likewise.
14018 (rs6000_select_rtx_section): Likewise.
14019 (output_toc): Deal properly with outputting small constants like
14020 HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
14021 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
14022 MODE parameter. Put small constants in the TOC.
14023
14024 * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
14025 easy in SImode.
14026 (rs6000_emit_move): When reload calls us with an illegitimate
14027 address, exit early. Move the change_address calls to one place
14028 at the end of the routine. Merge the SImode and DImode expanders.
14029 When called by reload to put an integer into a FP register, force
14030 it to memory.
14031
14032 * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
14033 field.
14034 (rs6000_hash_constant): Hash mode too.
14035 (toc_hash_function): Allow for key_mode.
14036 (toc_hash_eq): Structures are different if key_mode differs.
14037 (output_toc): Add 'mode' parameter. Save key_mode.
14038 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
14039 Pass 'mode' parameter.
14040 * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
14041
14042 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
14043 for vtable references.
14044
14045 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
14046 choice, don't put integer values in FP regs.
14047
14048 Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com)
14049
14050 * flow.c (verify_flow_info): Revamp code to verify that the
14051 head and end of each basic block are in the insn chain.
14052
14053 Thu Jul 20 18:02:35 2000 Michael Matz <matzmich@cs.tu-berlin.de>
14054
14055 * gcse.c (record_one_set): Prepend instead of append onto
14056 reg_set_table, making it O(n) instead O(n^2).
14057 * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
14058 Use a queue instead of a stack as worklist.
14059
14060 2000-07-20 Kazu Hirata <kazu@hxi.com>
14061
14062 * h8300.c (two_insn_adds_subs_operand): Fix a typo.
14063 * h8300.h (OK_FOR_T): New.
14064 (EXTRA_CONSTRAINT): Support OK_FOR_T.
14065 * h8300.md: Use inc/dec.[wl] for increment/decrement
14066 by 1 and 2 in HI and SI modes.
14067
14068 2000-07-20 Jim Wilson <wilson@cygnus.com>
14069
14070 * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
14071 larger than 14 bits.
14072
14073 2000-07-20 Zack Weinberg <zack@wolery.cumb.org>
14074
14075 * cppmacro.c (CAN_PASTE_AFTER): New macro.
14076 (count_params): Don't set GNU_REST_ARGS on anything.
14077 (save_expansion): Set PASTE_LEFT only on tokens for which
14078 CAN_PASTE_AFTER is true, or which are named operators.
14079
14080 * cpplex.c (parse_args): Distinguish between a rest argument
14081 given one empty argument, and a rest argument given zero arguments.
14082 (maybe_paste_with_next): Look for VOID_REST tag, and trigger
14083 deletion of previous token based on that.
14084 (get_raw_token): Flatten some control structure.
14085
14086 * cpplib.h (CPP_LAST_EQ): Correct.
14087 (VOID_REST): New token flag.
14088 (GNU_REST_ARGS): Delete.
14089
14090 * tradcpp.c (main): Don't munge -D options.
14091 (make_definition): Bring -D handling in line with cpplib.
14092 (do_define): Strip all leading whitespace from macro definitions.
14093
14094 2000-07-20 David Billinghurst <David.Billinghurst@riotinto.com.au>
14095
14096 * Makefile.in (tradcpp): Depend on intl.o and version.o.
14097
14098 2000-07-20 Bruce Korb <bkorb@gnu.org>
14099
14100 * fixincl/check.tpl: strip the platform specific types before testing
14101 * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
14102 * fixincl/fixincl.tpl: use platform specific types
14103 * fixincl/fixlib.h: include the platform specific types
14104 * fixincl/inclhack.def(gnu_types): don't supply the types
14105 * fixincl/fixincl.x: regen
14106
14107 2000-07-19 Jim Wilson <wilson@cygnus.com>
14108
14109 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
14110 GR_REGS.
14111
14112 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
14113
14114 * tradcpp.c (rescan): Do not recognize directives when the #
14115 is indented.
14116
14117 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
14118
14119 Implement C++ named operators.
14120
14121 * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
14122 of operators allowed in #if and having an _EQ variant. Add
14123 CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
14124 (cpp_token flags): Add NAMED_OP.
14125 (enum node_type): Add T_OPERATOR.
14126 (struct cpp_hashnode): Add code slot to value union.
14127 * cpphash.h (spec_nodes): Remove n_defined.
14128
14129 * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
14130 (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
14131 (is_macro_disabled): Tweak error messages.
14132
14133 * cpplib.c (get_define_node): Disallow all named operators as
14134 macro names. Tweak error messages.
14135 (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
14136
14137 * cppinit.c (builtin_array): Add entries for the named operators.
14138 * cppexp.c (lex): Check for CPP_DEFINED token.
14139 (priority table): Add entries for CPP_MIN and CPP_MAX.
14140 (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
14141
14142 2000-07-19 Bernd Schmidt <bernds@cygnus.co.uk>
14143
14144 * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
14145 larger than the array of cuids.
14146 (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
14147 cuids.
14148
14149 2000-07-19 Bruce Korb <bkorb@gnu.org>
14150
14151 * fixinc/fixincl.c: Convert to using a table of environment variables
14152 and activate the auto-edit marker on the fixed output files.
14153 * fixinc/fixlib.h: Define the environment table
14154 * fixinc/fixincl.sh: export the ${INPUT} dir
14155 * fixinc/check.tpl: likewise
14156
14157 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
14158
14159 * gcc.c (.h spec): Fix typo.
14160
14161 Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
14162
14163 * Makefile.in: Fix tradcif.c path.
14164
14165 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
14166
14167 * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
14168 macros, not five.
14169
14170 * cpphash.h (TOKEN_NAME): New macro.
14171 (_cpp_spell_operator): Deleted.
14172 (token_spellings): Now _cpp_token_spellings.
14173
14174 * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
14175 * cpplex.c: Use OP and TK macros when expanding the
14176 TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens,
14177 store the stringification of the enumeration name (CPP_CHAR,
14178 etc.) in the name slot of token_spellings.
14179 Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
14180 token_spellings directly.
14181 * cpplib.c: Use TOKEN_SPELL.
14182
14183 * cpplex.c (_cpp_push_token): If the token being pushed back
14184 is the previous token in this context, just subtract one from
14185 context->posn.
14186 * cppmacro.c (save_expansion): Clear aux field when storing a
14187 placemarker.
14188
14189 2000-07-18 Jakub Jelinek <jakub@redhat.com>
14190
14191 * cpplex.c (cpp_scan_buffer): Output line command even at the stop
14192 buffer, provided it is not NULL.
14193
14194 2000-07-18 Alexandre Oliva <aoliva@redhat.com>
14195
14196 * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
14197 case of invalid volatile re-declaration.
14198
14199 2000-07-18 Jakub Jelinek <jakub@redhat.com>
14200
14201 * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
14202 (expand_call): Adjust caller.
14203
14204 2000-07-17 Gabriel Dos Reis <gdr@codesourcery.com>
14205
14206 * diagnostic.h (report_diagnostic): Change prototype.
14207
14208 * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
14209 diagnostic_for_decl): Change prototype.
14210 (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
14211 error, warning, error_with_file_and_line,
14212 warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
14213 Adjust call to report_diagnostic, diagnostic_for_decl.
14214 (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
14215 (output_verbatim, verbatim): Adjust call to output_do_verbatim.
14216
14217 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
14218 varaible argument list.
14219
14220 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
14221
14222 * cpphash.c: Don't include hashtab.h. Most macro-handling code
14223 moved to cppmacro.c.
14224 (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
14225 dump_hash_helper): Delete.
14226 (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
14227 cpp_forall_identifiers): New. Implement specialized version of
14228 Vlad's expandable hash table.
14229 (cpp_lookup): Use new functions.
14230 (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
14231 implementation.
14232 * cppmacro.c: New file.
14233 * cppinit.c (dump_macros_helper): New.
14234 (cpp_finish): Iterate over the identifier table directly.
14235 * cpplex.c (parse_name): Calculate the hash of the identifier
14236 while we scan it. Use _cpp_lookup_with_hash when we can.
14237
14238 * cpphash.h: Update prototypes.
14239 (xcnewvec, HASHSTEP): New helper macros.
14240 * cpplib.h: Update prototypes.
14241 * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
14242 (cppmacro.o): New rule.
14243 (cpphash.o): Update deps.
14244
14245 * cppmain.c: Do not set pfile->printer if no_output is on.
14246
14247 2000-07-15 Neil Booth <neilb@earthling.net>
14248
14249 * cpplib.c: Change all directive-handler functions to return
14250 void, not int.
14251 * cpphash.h: Update typedefs.
14252
14253 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
14254
14255 * configure: Regenerate.
14256
14257 * extend.texi (Extended Asm): Mention that a memory clobber
14258 does not count as a side-effect.
14259
14260 * unroll.c (copy_loop_body): Fix one instance of using host
14261 arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
14262 cross-compile.
14263
14264 * tlink.c (scan_linker_output): Tweak for output of AIX ld.
14265
14266 2000-07-17 Richard Henderson <rth@cygnus.com>
14267
14268 * config/ia64/ia64.md (movdi): Split out load address code.
14269 New post-reload splitter for symbolic operands.
14270 (movdi_internal): Abort if we didn't split symbolic operands
14271 when we should have.
14272 * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
14273 (ia64_reorg): Split insns when not optimizing.
14274 * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
14275
14276 Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
14277
14278 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
14279 instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
14280
14281 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
14282
14283 * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
14284
14285 2000-07-17 Jason Merrill <jason@redhat.com>
14286
14287 * Makefile.in (clean): Remove libgcc directory.
14288
14289 * configure.in (-Wno-long-long check): Use higher-level macros.
14290
14291 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
14292
14293 * simplify-rtx.c (simplify_binary_operation): Recognize
14294 (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
14295 (simplify_ternary_operation): Do not examine MODE_BITSIZE of
14296 a CONST_INT, it will always be zero.
14297
14298 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
14299
14300 * loop.c (check_dbra_loop) : Return if more than one condition is
14301 present to control the loop.
14302
14303 Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com>
14304
14305 * mips.c (mips_expand_prologue): Don't calculate the last argument
14306 register unless we need it. When we are calculating this, make
14307 sure FUNCTION_ARG is giving us a REG.
14308
14309 2000-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
14310
14311 * flow.c (libcall_dead_p): Use single_set to verify the insn
14312 has only one set and get for analysis.
14313 (propagate_one_insn): Don't pass the PATTERN of the insn.
14314
14315 2000-07-17 Mark Klein <mklein@dis.com>
14316
14317 * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
14318
14319 2000-07-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
14320
14321 * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
14322 * configure.in (TARGET_GETGROUPS_T): Evaluate.
14323 * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
14324 of second argument of getgroups.
14325 * configure, config.in: Rebuilt.
14326
14327 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
14328
14329 * simplify-rtx.c (simplify_relational_operation): Two signed
14330 values with equal high words are less/greater than each other if
14331 their low words are less/greater when considered as unsigned.
14332
14333 Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org>
14334
14335 * configure.in (vax-*-openbsd): Change to new style configuration,
14336 add collect2/float_format information.
14337 * configure: Rebuilt.
14338 * config/vax/openbsd1.h: New.
14339 * config/vax/openbsd.h: New.
14340 * config/vax/t-openbsd: New.
14341
14342 2000-07-17 Chip Salzenberg <chip@valinux.com>
14343
14344 * c-common.c (shorten_compare): Quiet warnings about unsigned
14345 comparisons with zero when they occur in a system header.
14346
14347 2000-07-17 Joseph S. Myers <jsm28@cam.ac.uk>
14348
14349 * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
14350 update to describe current practice.
14351
14352 * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
14353
14354 * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
14355 references to C9X. Change references to -fstd and -flang-isoc9x
14356 to refer to -std.
14357
14358 * c-common.c (scan_char_table): Allow "z" length modifiers on
14359 diouxXn formats.
14360 (check_format_info): Use TYPE_DOMAIN on the type matched against
14361 for "z" formats, to retrieve the language size_t rather than the
14362 internal one.
14363
14364 * c-common.c (check_format_info): Do not make a pedantic objection
14365 to the 'L' length modifier if used with a floating point type
14366 character.
14367
14368 * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
14369 constants in C99 mode.
14370
14371 2000-07-17 Kazu Hirata <kazu@hxi.com>
14372
14373 * h8300.md: Fix the format of mac.
14374 (movsi_h8300hs): Output a tab after stmac instead of a space.
14375
14376 * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
14377 profitable adds/subs sequences.
14378
14379 * fold-const.c: Fix comment typos.
14380
14381 2000-07-16 Laurynas Biveinis <lauras@softhome.net>
14382
14383 * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
14384
14385 2000-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14386
14387 * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
14388
14389 2000-07-16 Neil Booth <NeilB@earthling.net>
14390
14391 * cpplex.c: Update comments.
14392 * README.Portability: Small update.
14393
14394 2000-07-16 Neil Booth <NeilB@earthling.net>
14395
14396 * README.Portability: Small update.
14397
14398 2000-07-15 Richard Henderson <rth@cygnus.com>
14399
14400 * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
14401 * config/ia64/ia64.c (ia64_move_ok): New function.
14402 * config/ia64/ia64.md (movqi, movqi_internal): Use it.
14403 (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
14404
14405 2000-07-15 Zack Weinberg <zack@wolery.cumb.org>
14406
14407 * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
14408 immediately following a paste operator.
14409 * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
14410 (cpp_reader_init): Call it, if HOST_EBCDIC.
14411 (cpp_handle_options): Do not sort option list here.
14412 (handle_option): Rename to cpp_handle_option and export.
14413 * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
14414 _cpp_get_token directly.
14415 (cpp_scan_line): Return 0 at EOF, 1 otherwise.
14416 * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
14417 * cpplib.h: Prototype cpp_handle_option. Update prototype of
14418 cpp_scan_line.
14419
14420 2000-07-15 Richard Henderson <rth@cygnus.com>
14421
14422 * fold-const.c (extract_muldiv): Don't optimize past an unsigned
14423 cast around an expression. Tidy other unsigned tests.
14424
14425 2000-07-15 Gabriel Dos Reis <gdr@codesourcery.com>
14426
14427 * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
14428 v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
14429 (v_message_with_decl): Rename to ...
14430 (format_with_decl): ... this. Tweak
14431 (diagnostic_for_decl): New function.
14432 (fatal_io_error): Use verbatim in lieu of notice.
14433 (announce_function): Use verbatim.
14434 (default_print_error_function): Likewise.
14435 (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
14436 infratructure.
14437
14438 2000-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14439
14440 * mips.c (function_arg_pass_by_reference): Don't do automatic
14441 aggregate initialization.
14442 (machine_dependent_reorg): Initialize variable `mode'.
14443
14444 * mips.md (absdi2): Change variable `regno1' to unsigned int.
14445 (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
14446 conflicts with sys/param.h macro of the same name.
14447 (reload_outdi): Likewise.
14448
14449 2000-07-15 Michael Meissner <meissner@redhat.com>
14450
14451 * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
14452 == CONST + INCREMENT, don't overwrite the tree node for FOO++,
14453 create a new node instead.
14454
14455 2000-07-15 Neil Booth <NeilB@earthling.net>
14456
14457 * README.Portability: Correct example about calling a function
14458 through a pointer to function. Format wide paragraphs.
14459
14460 2000-07-15 Michael Meissner <meissner@redhat.com>
14461
14462 * README.Portability: Update integer suffixes and function
14463 prototype sections.
14464
14465 2000-07-15 Neil Booth <NeilB@earthling.net>
14466
14467 * README.Portability: Small update.
14468
14469 2000-07-15 Neil Booth <NeilB@earthling.net>
14470
14471 * README.Portability: New file.
14472
14473 Fri Jul 14 18:13:53 2000 Mark P Mitchell <mark@codesourcery.com>
14474
14475 * INSTALL: Give special instructions for building GCC on Irix 6.
14476 * config/mips/x-iris6 (CC): Don't set it.
14477 (OLDCC): Likewise.
14478
14479 2000-07-14 Jason Merrill <jason@redhat.com>
14480
14481 * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
14482 register in the stack and later in another register, use the new
14483 register.
14484
14485 Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com>
14486
14487 * config/mips/mips.md: (absdi2): Handle sign_extend for
14488 second operand.
14489
14490 2000-07-14 Nathan Sidwell <nathan@codesourcery.com>
14491
14492 * cpplib.c (do_pragma_dependency): Tidy warning messages.
14493
14494 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
14495
14496 * .cvsignore: Correct typo.
14497
14498 2000-07-13 Mark Mitchell <mark@codesourcery.com>
14499
14500 * .cvsignore: Add generated YACC files.
14501 * objc/.cvsignore: New file.
14502
14503 2000-07-14 Neil Booth <NeilB@earthling.net>
14504
14505 * cpplex.c (adjust_column): New funcion.
14506 (skip_whitespace): Use it.
14507 (skip_block_comment): Use it, and warn about /*/* with
14508 -Wcomments.
14509
14510 2000-07-14 Neil Booth <NeilB@earthling.net>
14511
14512 * cpphash.c (struct macro_info): Add new members.
14513 (_cpp_free_definition): Delete the macro directly.
14514 (count_params): Return void, with first token of
14515 expansion in struct macro_info on success.
14516 (parse_define): Return int. Hoist syntax checking from
14517 save_macro_expansion. Leave call to save_expansion to
14518 _cpp_create_definition.
14519 (alloc_macro): Needs just 2 arguments.
14520 (free_macro): Delete.
14521 (save_expansion): Don't perform syntax check.
14522 (_cpp_create_definition): Call save_expansion.
14523
14524 2000-07-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14525
14526 * genrecog.c (write_header): Split long string.
14527
14528 * cpphash.c (macro_info): Don't use the `signed' keyword.
14529
14530 * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
14531
14532 2000-07-13 Jakub Jelinek <jakub@redhat.com>
14533
14534 * calls.c (stored_args_map): New variable.
14535 (check_sibcall_argument_overlap_1): New.
14536 (check_sibcall_argument_overlap): New.
14537 (expand_call): Initialize stored_args_map.
14538 Call check_sibcall_argument_overlap.
14539
14540 2000-07-13 Bruce Korb <bkorb@gnu.org>
14541
14542 * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
14543 (emit_gnu_type): utility procedure for gnu_type_fix
14544 (gnu_type_fix): implement various pre-processor guards around
14545 standard types so these types can be defined over and over
14546 * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
14547 types alluded to above will have GNU-compliant base types
14548 * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
14549 * fixinc/inclhack.def: add test_text entries and utilize the new
14550 "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
14551 * fixinc/fixincl.x: regenerate
14552
14553 2000-07-12 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
14554
14555 * diagnostic.c (vline_wrapper_message_with_location,
14556 v_message_with_file_and_line, v_error_with_file_and_file,
14557 v_error_for_asm, v_warning_for_asm, vfatal,
14558 v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
14559 vsorry, verror, vwarning, vpedwarn): Remove.
14560 (diagnostic_for_asm): New function.
14561 (pedwarn, error, warning, pedwarn_with_file_and_line,
14562 error_with_file_and_line, warning_with_file_and_line, sorry,
14563 error_for_asm, warning_for_asm, fatal): Reimplement.
14564 (finish_diagnostic): Clear diagnostic info as well.
14565
14566 2000-07-13 Neil Booth <NeilB@earthling.net>
14567
14568 * c-common.h (flag_digraphs): New.
14569 * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
14570 * c-lex.c (yylex): Use flag_digraphs to decide whether to
14571 honour digraphs.
14572
14573 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
14574
14575 * gcc.c (do_spec_1): Add new %B operator.
14576 (set_input): Prepare for %B.
14577
14578 (link_command_spec): Move up with the other tm.h-
14579 overrideable specs. Factor out the portion conditional on
14580 LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
14581 (struct compiler): Just have a single spec string. All users
14582 updated.
14583 (default_compilers): Remove unnecessary braces.
14584 (static_specs): Update.
14585
14586 (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
14587 named specs.
14588 (C and assembly specs): Use the new named specs, as appropriate.
14589
14590 * objc/lang-specs.h: Use the new named specs.
14591 Remove unnecessary braces.
14592
14593 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
14594
14595 * gcc.c (execute): If a subprocess gets a fatal signal, report
14596 strsignal() of the signal number, and ask for a bug report.
14597 Do not do this for SIGPIPE if there's already been an error.
14598
14599 * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
14600 Delete pipe_closed.
14601
14602 * tradcif.c: Remove.
14603
14604 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
14605
14606 * final.c (profile_function): Do not emit profile counters in
14607 the data section, if NO_PROFILE_COUNTERS is defined.
14608 * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
14609 FUNCTION_PROFILER.
14610
14611 * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
14612 (FUNCTION_PROFILER): Just emit a call to mcount.
14613
14614 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
14615
14616 * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
14617
14618 * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
14619 cpplib.c, cpplib.h: Eradicate all traces of code dependent on
14620 traditional, lang_chill, or lang_fortran.
14621
14622 * cppfiles.c: #undef strcmp to suppress warning about macros
14623 used without arguments.
14624 (_cpp_execute_include): Use f, not fname, in "No include path"
14625 error.
14626 (_cpp_pop_file_buffer): New function.
14627 * cpplib.c: Don't include <sys/mman.h>.
14628 (cpp_push_buffer): Set line_base and lineno in new buffer.
14629 (cpp_pop_buffer): Use _cpp_pop_file_buffer.
14630
14631 * cpplex.c: Move all prototypes and structure declarations to the
14632 top of the file. Properly parenthesise some macro arguments.
14633 (cpp_scan_line): New function.
14634 (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
14635 don't need to walk up the stack counting.
14636
14637 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14638
14639 * c-common.c (combine_strings): Emit a pedantic warning when a
14640 string length is greater than the minimum ANSI C is required
14641 to support.
14642
14643 Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com)
14644
14645 * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
14646 * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
14647
14648 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14649
14650 * c-decl.c (define_label): Warn about identifier conflicts with
14651 labels in traditional C.
14652
14653 * c-parse.in (unop +): Warn about the unary plus operator for
14654 traditional C.
14655
14656 * c-typeck.c (store_init_value): Warn about automatic aggregate
14657 initialization for traditional C.
14658
14659 * invoke.texi (-Wtraditional): Document new warnings.
14660
14661 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
14662
14663 * Makefile.in (c-errors.o): Fix thinko in dependency.
14664
14665 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
14666
14667 * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
14668 -traditional, -ftraditional, or -traditional-cpp was given.
14669 Do not pass -traditional to the preprocessor.
14670 (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
14671 preprocessor does it automatically.
14672 * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
14673
14674 * ch/lang-specs.h: Always use tradcpp. Do not pass
14675 -traditional, -trigraphs, or -pedantic to the preprocessor.
14676 * f/lang-specs.h (.F spec): Likewise. Don't bother defining
14677 _LANGUAGE_FORTRAN.
14678
14679 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
14680
14681 * cppexp.c (LOGICAL): Delete macro.
14682 (_cpp_parse_expr): Do not use UNARY for unary +. Implement ||
14683 and && directly.
14684
14685 * cpphash.c (HASHSIZE): Increase to 4096.
14686 (struct hashdummy): Add hash field.
14687 (eq_HASHNODE): Compare unreduced hashes, then lengths, then
14688 the string values using memcmp.
14689 (cpp_lookup): Set dummy.hash.
14690
14691 Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
14692
14693 * configure.in (m88k-openbsd): Express configuration using new fragment
14694 style.
14695 * configure: Rebuilt.
14696 * m88k/aout-dbx.h: New.
14697 * m88k/openbsd.h: New.
14698 * m88k/xm-openbsd.h: New.
14699
14700 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14701
14702 * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
14703
14704 2000-07-12 Richard Henderson <rth@cygnus.com>
14705
14706 * reload.c (push_secondary_reload): Make sure to add the new
14707 reload at the end, after acquiring secondary memory.
14708
14709 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14710
14711 * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
14712
14713 * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
14714 lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
14715
14716 * c-parse.in (stmt): Delete unused variables.
14717
14718 * convert.c (convert_to_vector): Likewise.
14719
14720 * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
14721
14722 * tree.c (finish_vector_type): Prototype.
14723
14724 2000-07-12 Bruce Korb <bkorb@gnu.org>
14725
14726 * fixinc/fixfixes.c: use xmalloc
14727 * fixinc/fixincl.c(initialize): set program name for xmalloc
14728 * fixinc/fixlib.c(must_malloc): obsolete
14729 (is_cxx_header): no longer used - disabled
14730 (skip_quote): inserted and disabled for future use
14731 * fixinc/fixlib.h: reflects above
14732 * fixinc/fixtests.c: removed dinkleberries
14733
14734 2000-07-12 Neil Booth <NeilB@earthling.net>
14735
14736 * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
14737 * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
14738
14739 * cpphash.c: (struct macro_info, alloc_macro, free_macro,
14740 struct toklist_dummy): New.
14741 (cpp_free_definition): Free macros with free_macro.
14742 (count_params): Don't save paramter spellings. Save macro
14743 information in a struct macro_info.
14744 (parse_define): Don't allocate a token list.
14745 (save_expansion): Allocate the macro's token list, and
14746 save parameter spellings if necessary. Use TOKEN_SPELL.
14747 (cpp_create_definition): Make list const.
14748
14749 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
14750
14751 * c-typeck.c (pedwarn_c99): Move to
14752 * c-errors.c: ... Here.
14753 * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
14754 * diagnostic.c (verror, vwarning, vpedwarn): Make static.
14755 * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
14756 (c-errors.o): List dependency.
14757
14758 2000-07-12 Mark Mitchell <mark@codesourcery.com>
14759
14760 * c-parse.c: Remove.
14761 * c-parse.h: Likewise.
14762 * c-parse.y: Likewise.
14763 * objc/objc-parse.c: Likewise.
14764 * objc/objc-pasre.y: Likewise.
14765
14766 2000-07-11 Rodney Brown <RodneyBrown@pmsc.com>
14767
14768 * gcc.texi: Fix minor typos
14769 * extend.texi: Fix minor typos
14770
14771 2000-07-11 Marc Espie <espie@openbsd.org>
14772
14773 * collect2.c (main): Recognize .lo as object files.
14774
14775 2000-07-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
14776
14777 * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
14778 true.
14779
14780 * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
14781 with MAP_ANONYMOUS and MAP_ANON.
14782 * configure, config.in: Rebuilt.
14783
14784 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
14785
14786 * diagnostic.c (save_output_state): Remove.
14787 (restore_output_state): Likewise.
14788 (clear_text_info): New function.
14789 (clear_diagnostic_info): Likewise.
14790 (output_text_length, is_starting_newline, output_prefix,
14791 line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
14792 prefixing_policy, output_buffer_ptr_to_format_args): New macros
14793 (set_real_maximum_length, output_set_maximum_length,
14794 output_set_prefix, output_get_prefix, output_set_maximum_length,
14795 output_destroy_prefix, init_output_buffer,
14796 reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
14797 output_add_newline, output_add_character, output_add_space,
14798 output_append_r, output_append, wrap_text, output_format,
14799 output_do_printf, output_printf, output_do_verbatim,
14800 output_verbatim, verbatim): Use them.
14801 (output_clear): Split into cleat_text_info and
14802 clear_diagnostic_info.
14803 (struct output_state): Move to...
14804
14805 * diagnostic.h: ...Here
14806 (struct output_buffer): Adjust.
14807
14808 2000-07-11 Zack Weinberg <zack@wolery.cumb.org>
14809
14810 * cpplex.c (parse_name): No longer inline (premature optimization).
14811 (do_pop_context): Fold into pop_context.
14812 (pop_context): Returns int.
14813 (lex_next): Hoist test for end of directive into pop_context.
14814 (push_macro_context): Returns int; takes just reader and token.
14815 Hoist test for excessive nesting to caller.
14816 (push_arg_context): Returns void; takes just reader and token.
14817 Do not call stringify_arg or get_raw_token.
14818 (get_raw_token): Convert tail recursion through push_arg_context
14819 to a loop at this level. Call stringify_arg here if appropriate.
14820 (maybe_paste_with_next): Convert tail recursion to a while loop.
14821 Hoist test of paste_level to caller.
14822
14823 (stringify_arg): Push arg context at beginning.
14824 (cpp_get_token): Split out core into _cpp_get_token. Call
14825 process_directive here. Throw away CPP_PLACEMARKER tokens.
14826 (_cpp_get_token): Convert tail recursion through
14827 push_macro_context to a loop at this level.
14828 (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
14829 _cpp_get_raw_token): Use _cpp_get_token.
14830 (_cpp_skip_rest_of_line): Drop the context stack directly; do
14831 not call pop_context.
14832 (_cpp_run_directive): Call lex_next directly.
14833
14834 * cpphash.h: Prototype _cpp_get_token.
14835 * cppexp.c (lex): Use it.
14836 * cpphash.c (parse_define): Use it.
14837 * cpplib.c (get_define_node, do_undef, parse_include,
14838 read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
14839 do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
14840 parse_ifdef, validate_else): Use it.
14841 (cpp_push_buffer): Tweak error message; abort if anyone tries
14842 to push a buffer while macro expansions are stacked.
14843
14844 2000-07-11 Donn Terry <donnte@microsoft.com>
14845
14846 * cpplex.c (free_macro_args, save_token): Cast arg of free
14847 and/or xrealloc to PTR.
14848 (_cpp_init_input_buffer): Clear all fields of the base context.
14849
14850 Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz <cpopetz@cygnus.com>
14851
14852 * gensupport.c (process_rtx): Make rtl checking stop
14853 complaining about the define_insn while it is being
14854 converted from a define_insn_and_split.
14855
14856 Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
14857
14858 * config/mips/mips.c (simple_memory_operand): Access the
14859 INTVAL of the address, not it's containing MEM.
14860
14861 2000-07-11 Bruce Korb <bkorb@gnu.org>
14862
14863 * fixinc/fixtests.c(double_slash): obsolete
14864 (else_endif_label): likewise
14865 * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
14866 (libc1_ifdefd_memx): correct initial comment
14867 and omit the #if/#endif pair from the memxxx declarations
14868 * fixinc/fixincl.x: regen
14869
14870 2000-07-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14871
14872 * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
14873
14874 2000-07-11 Neil Booth <NeilB@earthling.net>
14875
14876 * cpp.texi: Update.
14877
14878 2000-07-11 Neil Booth <NeilB@earthling.net>
14879
14880 * cppinit.c: (cpp_reader_init): Allow digraphs by default.
14881 (handle_option): Set digraphs according to standard.
14882 Merge OPT_lang_c89 handler with OPT_std_c89.
14883
14884 * cpplex.c: (lex_line, can_paste): Honour digraphs in
14885 accordance with the digraphs flag.
14886
14887 * cpplib.h: (struct cpp_options): New option digraphs.
14888
14889 2000-07-10 Hans-Peter Nilsson <hp@axis.com>
14890 Bruce Korb <bkorb@gnu.org>
14891
14892 * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
14893 * fixinc/fixincl.x: Regenerate.
14894 * fixinc/tests/base/testing.h: Add testcase.
14895
14896 2000-07-10 Richard Henderson <rth@cygnus.com>
14897
14898 * config/ia64/ia64.c (got_symbolic_operand): New.
14899 (symbolic_operand, move_operand): Revert 0701 change.
14900 * config/ia64/ia64.h (PREDICATE_CODES): Update.
14901 * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
14902 * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
14903 split the offset into a 14-bit low part instead of a 13-bit low part.
14904 (load_fptr): Mark the mem as unchanging.
14905 (load_symptr): Use got_symbolic_operand.
14906
14907 2000-07-10 Nick Clifton <nickc@cygnus.com>
14908
14909 * libgcc2.c (next_stack_level): Cast result of computation to
14910 (void **) so that the assignment does not generate a warning.
14911
14912 2000-07-10 Chandrakala Chavva <cchavva@redhat.com>
14913
14914 * flags.h : Add new variable flag_single_precision_constant.
14915 * toplev.c (display_help) : Add -fsingle-precision-constant option.
14916 (flag_single_precision_constant): New.
14917 * c-lex.c (yylex): Convert floating point constant to single
14918 precision constant.
14919 * invoke.texi : Add documentation for this new option.
14920
14921 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
14922
14923 * diagnostic.c (output_octal): Second parameter is unsigned.
14924 (output_long_octal): Likewise.
14925 (output_hexadecimal): Likewise.
14926 (output_long_hexadecimal): Likewise.
14927 (output_format): Adjust arguments extraction. Tweak.
14928 (output_verbatim, verbatim): End variable argument list.
14929 (report_diagnostic): Improve documentation.
14930
14931 2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
14932
14933 * c-common.h (build_stmt): Declare.
14934 (build_continue_stmt): Likewise.
14935 (build_break_stmt): Likewise.
14936 (build_return_stmt): Likewise.
14937
14938 * c-decl.c (do_case): Rewrite to do what previously done in
14939 c-parse.in.
14940
14941 * c-semantics.c (build_stmt): Define.
14942 (build_return_stmt): Likewise.
14943 (build_break_stmt): Likewise.
14944 (build_continue_stmt): Likewise.
14945 (build_case_label): Likewise.
14946
14947 * c-parse.in (BREAK): Change to build tree, then generate RTL.
14948 (CONTINUE): Likewise.
14949 (RETURN): Likewise.
14950 (CASE): Likewise.
14951 (DEFAULT): Likewise.
14952
14953 * c-parse.y: Regenerate.
14954 * c-pasre.c: Likewise.
14955
14956 2000-07-09 Jason Merrill <jason@redhat.com>
14957
14958 * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
14959
14960 * tree.h (STRIP_NOPS): Check for error_mark_node.
14961 (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
14962 (dwarf2out_*): Remove duplicate declarations.
14963
14964 * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
14965 DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
14966
14967 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
14968
14969 * diagnostic.c (wrap_text): New function.
14970 (maybe_wrap_text): Likewise.
14971 (output_add_string): Use it.
14972 (output_format): Likewise.
14973 (count_error): Use verbatim instead of notice.
14974 (report_error_function): Likewise. Don't use plain fprintf.
14975 (finish_diagnostic): New function.
14976 (output_do_verbatim): Tweak. Commonalize functionalities in
14977 output_verbatim and verbatim.
14978 (output_verbatim): Adjust.
14979 (verbatim): Likewise.
14980 (report_diagnostic): Define.
14981
14982 * diagnostic.h (report_diagnostic): Prototype.
14983
14984 2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
14985
14986 * cppexp.c (_cpp_parse_expr): Don't use unary plus.
14987
14988 2000-07-09 Neil Booth <NeilB@earthling.net>
14989
14990 * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
14991 IShspace, ISspace: Update.
14992
14993 * cppinit.c: ISTABLE: Update.
14994 V: New.
14995
14996 * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
14997 (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
14998 (skip_block_comment, skip_line_comment, parse_string,
14999 lex_line): Use is_vspace rather than IS_NEWLINE.
15000 (skip_whitespace, lex_line): Clean up to use is_nvspace.
15001 (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive
15002 gets a BOL flag.
15003 (lex_next): Unconditionally stop if within a directive.
15004 Treat directives within macro invocations as directives
15005 (after parse_args emits error), not as the argument.
15006
15007 2000-07-09 Gabriel Dos Reis <gdr@codesourcery.com>
15008
15009 * diagnostic.c (diagnostic_args): New macro.
15010 (diagnostic_msg): Likewise.
15011 (output_formatted_integer): Likewise.
15012 (output_state): New data type.
15013 (digit_buffer): Make global.
15014 (output_add_integer): Rename to output_decimal. Squeeze
15015 digit_buffer.
15016 (output_long_decimal, output_unsigned_decimal,
15017 output_long_unsigned_decimal, output_octal, output_long_octal,
15018 output_hexadecimal, output_long_hexadecimal): New functions.
15019 (output_append_r): New function.
15020 (output_append): Tweak.
15021 (output_flush_on): Rename to output_to_stream.
15022 (output_format): Change prototype. Improve documentation. Handle
15023 more format specifiers.
15024 (build_location_prefix): Rename to context_as_prefix.
15025 (output_notice): Rename to output_do_printf.
15026 (output_printf): Tweak.
15027 (line_wrapper_printf): Likewise.
15028 (vline_wrapper_message_with_location): Adjust call to renamed
15029 functions.
15030 (v_message_with_decl): Likewise.
15031 (default_print_error_function): Likewise.
15032 (save_output_state): New function.
15033 (restore_output_state): Likewise.
15034 (output_do_verbatim): Likewise.
15035 (output_verbatim): Define.
15036 (verbatim): Likewise.
15037
15038 * diagnostic.h (printer_fn): Change return type from void to int.
15039 Improve documentation.
15040 (output_add_integer): Rename to output_decimal.
15041 (output_flush_on, output_format): Don't export.
15042 (output_verbatim, verbatim): Declare.
15043
15044 2000-07-08 Toon Moene <toon@moene.indiv.nluug.nl>
15045
15046 * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
15047 Check whether c divides op1 exactly if operation is not
15048 multiplication.
15049
15050 2000-07-08 Richard Henderson <rth@cygnus.com>
15051
15052 * final.c (final): Do not abort when reg-stack introduces
15053 a new insn.
15054
15055 2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
15056
15057 * cpplib.h (struct cpp_name): Now struct cpp_string.
15058 (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
15059 CPP_HEADER_NAME): Change to type S.
15060 (struct cpp_token): Rename 'name' field to 'str'. Add 'node'
15061 field, a cpp_hashnode *. All references to val.name updated
15062 to use val.str or val.node as appropriate.
15063 (struct cpp_reader): Add spec_nodes field.
15064 (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
15065
15066 * cpphash.h (struct spec_nodes): New.
15067 (enum spell_type): Reorder. Only SPELL_STRING tokens use
15068 val.str. All references to 'spelling > SPELL_NONE' updated to
15069 match.
15070
15071 (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
15072 pfile->buffer->inc are not NULL before dereferencing them.
15073
15074 * cpplex.c (parse_name): Take a pointer to the current token,
15075 plus current position and limit as args; return the new
15076 position; don't copy the text of a name into the string
15077 buffer, instead call cpp_lookup and store the node pointer.
15078 If extending a token, copy out the text of the old into a
15079 scratch buffer, append the new, look that up and store the new
15080 node pointer. Inline.
15081 (maybe_paste_with_next): If the result of paste is a NAME,
15082 then look up the pasted text and store its node pointer.
15083 (lex_line): Adjust for new parse_name interface.
15084 Check for L"str", L'str' using spec_nodes->n_L.
15085 (spell_token): SPELL_IDENT tokens have their spelling in
15086 val.node->name. Handle SPELL_STRING tokens that don't have
15087 string delimiters.
15088 (_cpp_expand_name_space,
15089 (can_paste): Check for L ## "str" using spec_nodes->n_L.
15090 (cpp_get_token, special_symbol): No need to call cpp_lookup.
15091 (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
15092 return 1=equal 0=not, not a tristate.
15093
15094 * cpphash.c (var_args_str): Delete.
15095 (find_param): Compare node fields directly.
15096 (is__va_args__): Use CPP_PEDANTIC. Just compare
15097 token->val.node with spec_nodes->n__VA_ARGS__.
15098 (dump_funlike_macro): Don't use var_args_str.
15099
15100 * cpplib.c (_cpp_check_directive): Just walk through
15101 spec_nodes->dirs comparing pointers.
15102 (get_define_node, do_pragma_poison, detect_if_not_defined,
15103 parse_ifdef): The identifier has already been looked up.
15104 (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
15105 node.
15106 (do_if): Only call detect_if_not_defined at beginning of file.
15107 (_cpp_parse_assertion): Only copy string pointers for
15108 SPELL_STRING tokens.
15109 (pragma_dispatch): Take a node pointer and examine its name
15110 field.
15111 (_cpp_init_stacks): Also initialize the spec_nodes structure.
15112
15113 * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
15114 _cpp_init_macros.
15115 (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
15116 reverse order from the corresponding _cpp_init_* routines.
15117
15118 * cppexp.c (parse_number, parse_charconst, parse_defined,
15119 lex): Check val.node->type instead of calling cpp_defined.
15120 Use spec_nodes entries where appropriate.
15121
15122 * fix-header.c, scan-decls.c: Update for interface changes.
15123
15124 2000-07-08 Geoffrey Keating <geoffk@cygnus.com>
15125
15126 * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
15127 emitting aux_truncdfsf2.
15128
15129 2000-07-03 Donn Terry (donnte@microsoft.com)
15130
15131 * cppinit.c (print_help): split overlong line into ISO C89
15132 maximum chunks.
15133
15134 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
15135
15136 * cppexp.c: Update all code for new lexer interface.
15137 (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
15138 (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
15139 * cpplex.c (token_names): Trim leading CPP_ from names; make
15140 the strings unsigned.
15141 (_cpp_spell_operator): New.
15142 (is_macro_disabled): Disable all macros if rescanning
15143 preprocessed text.
15144 (_cpp_get_directive_token): Remove.
15145
15146 * cppinit.c: Don't set no_macro_expand.
15147 * cpplib.c (read_line_number, do_line): Check only for EOF,
15148 not VSPACE.
15149 * cpphash.h: Update prototypes.
15150 * cpplib.h (CPP_VSPACE): Remove.
15151 (struct cpp_reader): Remove no_macro_expand.
15152
15153 2000-07-08 Neil Booth <NeilB@earthling.net>
15154
15155 * cpphash.c (is__va_args__): New function.
15156 (count_params): Fix line reported in error messages. Use
15157 is__va_args__. Don't return ')' on error. Flag GNU style
15158 rest args macro definitions.
15159 (parse_define): Check macro name is not __VA_ARGS__.
15160 (save_expansion): Check identifier in non-varargs-macro is
15161 not __VA_ARGS__. Don't flag GNU_VARARGS.
15162 * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
15163 (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
15164 than per-token GNU_VARARGS.
15165 * cpplib.h (GNU_VARARGS): Remove.
15166 (GNU_REST_ARGS): New.
15167
15168 Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
15169
15170 * i386.md (call_pop, call, call_value_pop): Do not set
15171 current_function_uses_pic_offset_table for calls to static
15172 functions or indirect calls.
15173
15174 2000-07-07 Jim Wilson <wilson@cygnus.com>
15175
15176 * config/ia64/ia64.c (rws_access_reg): New local write_count. If
15177 is_predicate_reg, then take max write_count of register pair.
15178
15179 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15180
15181 * tradcpp.c (main): Rename label `include' to `add_include' to
15182 avoid conflicts with variable `include' in traditional C.
15183
15184 2000-07-07 Jakub Jelinek <jakub@redhat.com>
15185
15186 * integrate.c (copy_insn_list): Remove REG_LABEL notes.
15187
15188 2000-07-07 Jakub Jelinek <jakub@redhat.com>
15189
15190 * sibcall.c (uses_addressof): Add INMEM argument, check for
15191 current_function_internal_arg_pointer outside of MEM rtxs in addition
15192 to ADDRESSOFs.
15193 (sequence_uses_addressof): Update caller.
15194
15195 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
15196
15197 * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
15198 and friends.
15199
15200 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15201
15202 * system.h (UNION_INIT_ZERO): New macro for initializing union
15203 members in structs.
15204
15205 * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
15206
15207 2000-07-07 Neil Booth <NeilB@earthling.net>
15208
15209 * cpp.texi: Update.
15210
15211 Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com)
15212
15213 * final.c (final): Detect out of bounds array access to
15214 the insn_lengths array.
15215
15216 2000-07-07 Kazu Hirata <kazu@hxi.com>
15217
15218 * fold-const.c (fold): Fix a comment typo.
15219
15220 2000-07-07 Neil Booth <NeilB@earthling.net>
15221
15222 * cpp.texi: Update to new lexer.
15223
15224 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
15225
15226 * tradcpp.c: New file.
15227 * tradcif.y: New file.
15228 * tradcif.c: New generated file.
15229
15230 * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
15231 $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and
15232 dependencies of C. Install tradcpp from install-common, in
15233 $(libsubdir).
15234
15235 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
15236
15237 * cppinit.c: Include cppdefault.h. Refer to
15238 cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
15239 to GCC_INCLUDE_DIR and its length.
15240 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
15241 USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
15242 STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to
15243 cppdefault.h.
15244 (include_defaults_array): Move to cppdefault.c.
15245
15246 * cppdefault.h: New file.
15247 * cppdefault.c: New file.
15248
15249 * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
15250 (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
15251 (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
15252 this file.
15253
15254 Thu Jul 6 18:30:36 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15255
15256 * reload.c (push_reload): When seeing if can reuse a register,
15257 check extra registers against widest of INMODE and OUTMODE.
15258
15259 2000-07-06 Neil Booth <NeilB@earthling.net>
15260
15261 * cpplib.c: (_cpp_parse_assertion): Perform hash lookups
15262 based on full length of predicate.
15263
15264 2000-07-06 Hans-Peter Nilsson <hp@axis.com>
15265
15266 * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
15267 [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
15268
15269 2000-07-05 Kazu Hirata <kazu@hxi.com>
15270
15271 * h8300-proto.h: Fix formatting.
15272 * h8300.c: Likewise.
15273 * h8300.h: Likewise.
15274
15275 2000-07-05 Jim Wilson <wilson@cygnus.com>
15276
15277 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
15278 CCmode.
15279
15280 2000-07-05 Rodney Brown <RodneyBrown@pmsc.com>
15281
15282 * invoke.texi: Fix minor typos
15283 * md.texi: Fix minor typos
15284
15285 2000-07-05 Zack Weinberg <zack@wolery.cumb.org>
15286
15287 * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
15288
15289 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
15290
15291 * cpplex.c: Don't include sys/mman.h.
15292 (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
15293
15294 * cpplib.c: Include sys/mman.h and obstack.h.
15295 (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
15296 obstack.
15297 (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
15298 (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't
15299 bother freeing if stack entries (they will be freed with their buffer).
15300 (do_endif): Free if stack entries from the buffer obstack.
15301 (push_conditional): Allocate if stack entries from the buffer obstack.
15302
15303 (find_answer): Rename to _cpp_find_answer.
15304 (do_assert, do_unassert): Update.
15305
15306 * cpphash.h: Update prototypes.
15307 (xobnew): New convenience macro.
15308 * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
15309 Update comments.
15310 (struct cpp_hashnode): Remove disabled field.
15311
15312 * cppinit.c: Don't include hashtab.h or splay-tree.h.
15313 (report_missing_guard): Moved to cppfiles.c.
15314 (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
15315 cpp_init_includes.
15316 (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
15317 cpp_cleanup_includes. Don't destroy hashtab or
15318 all_include_files here.
15319 (cpp_finish): Use _cpp_report_missing_guards.
15320
15321 * cppfiles.c (report_missing_guard): Moved from cppinit.c.
15322 (_cpp_init_include_table): Rename _cpp_init_includes.
15323 (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
15324
15325 * cppexp.c (parse_assertion): Update for new name of
15326 find_answer.
15327
15328 * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
15329
15330 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
15331
15332 * cpplib.c (do_ident): s/VSPACE/EOF/
15333
15334 2000-07-05 Neil Booth <NeilB@earthling.net>
15335
15336 * cpplex.c: Fix trigraph replacement within strings.
15337
15338 2000-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15339
15340 * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
15341
15342 * xcoffout.c (assign_type_number): Constify.
15343 (xcoffout_source_file): Add static prototype. Don't needlessly
15344 cast away const-ness.
15345
15346 2000-07-04 Jason Merrill <jason@redhat.com>
15347
15348 * frame.h (frame_state): Move base_offset to end.
15349
15350 Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
15351
15352 * calls.c (emit_library_call_value_1): Revert previous change.
15353
15354 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
15355
15356 * fix-header.c (struct partial_proto): Remove unnecessary fields.
15357 (recognized_extern, recognized_function, read_scan_file):
15358 Update for new scheme.
15359 (check_protection): It's still a multiple include guard even
15360 if it doesn't always trigger.
15361 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
15362 new scheme.
15363 * scan.h: Declare struct cpp_token. Update prototypes.
15364
15365 2000-07-03 Neil Booth <neilb@earthling.net>
15366 Zack Weinberg <zack@wolery.cumb.org>
15367
15368 Complete overhaul of the lexer and macro expander.
15369
15370 * cpphash.c (object_defn, funct_defn, push_macro_expansion,
15371 arg, arglist, argdata, reflist, collect_objlike_expansion,
15372 collect_funlike_expansion, collect_params,
15373 warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
15374 unsafe_chars, macarg, compare_defs, special_symbol,
15375 scan_arguments, stringify, funlike_macroexpand,
15376 _cpp_quote_string, monthnames): Delete.
15377 (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
15378 _cpp_create_definition, _cpp_dump_definition,
15379 dump_hash_helper): Adjust.
15380 (find_param, count_params, parse_define, var_args_str,
15381 check_macro_redefinition, save_expansion): New.
15382
15383 * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
15384 parse_string, output_line_command, trigraph_replace,
15385 lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
15386 cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
15387 cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
15388 _cpp_skip_rest_of_line): Modify.
15389
15390 (maybe_macroexpand, skip_comment, copy_comment, skip_string,
15391 find_position, null_warning, bump_column, expand_name_space,
15392 pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
15393 _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
15394 _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
15395 _cpp_prescan): Delete.
15396
15397 (dump_param_spelling, process_directive, lex_next,
15398 is_macro_disabled, stringify_arg, expand_context_stack,
15399 output_token, make_string_token, alloc_number_token,
15400 special_symbol, duplicate_token, maybe_paste_with_next,
15401 can_paste, prevent_macro_expansion, restore_macro_expansion,
15402 get_temp_token, release_temp_tokens, quote_string,
15403 token_names, token_spellings, _cpp_expand_name_space,
15404 _cpp_glue_header_name, _cpp_reserve_name_space,
15405 digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
15406 placemarker_token, eof_token, cpp_context, macro_args,
15407 get_raw_token, parse_arg, parse_args, save_token,
15408 push_arg_context, push_macro_context, pop_context,
15409 do_pop_context, free_macro_args, _cpp_get_line,
15410 _cpp_run_directive): New.
15411
15412 * cpplib.c (validate_else, parse_include, push_conditional,
15413 pass_thru_directive, read_line_number, parse_ifdef,
15414 detect_if_not_defined, _cpp_check_directive, do_define,
15415 do_undef, do_include, do_import, do_include_next, do_error,
15416 do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
15417 top_pragmas, do_pragma_gcc, do_pragma_implementation,
15418 do_pragma_poison, do_pragma_system_header,
15419 do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
15420 dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
15421 do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
15422 cpp_defined): Update for new scheme.
15423 (strtoul_for_line, get_define_node, dump_macro_name,
15424 _cpp_check_linemarker, _cpp_parse_assertion): New.
15425 (_cpp_handle_directive, do_pragma_default): Delete.
15426
15427 * cpphash.h (struct predicate): Now struct answer.
15428 (enum spell_type, struct token_spelling, struct directive,
15429 directive_handler): New.
15430 Update prototypes. Remove unused macros.
15431 * cpplib.h: Update prototypes. Remove unused macros,
15432 structure definitions, and fields.
15433
15434 * cpperror.c (print_containing_files, v_message): Adjust.
15435 * cppexp.c (parse_assertion, lex, parse_escape,
15436 _cpp_parse_expr): Adjust.
15437 * cppfiles.c (open_include_file, _cpp_execute_include,
15438 _cpp_compare_file_date, cpp_read_file, read_include_file):
15439 Adjust.
15440 * cppinit.c (dump_special_to_buffer): Delete.
15441 (append_include_chain, merge_include_chains, cpp_reader_init,
15442 cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
15443 cpp_finish, handle_option, print_help): Adjust.
15444 * cppmain.c (main): Adjust.
15445
15446 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
15447
15448 * cppspec.c (lang_specific_driver): Use double quotes in error
15449 message.
15450
15451 Mon Jul 3 16:53:43 2000 Clinton Popetz <cpopetz@cygnus.com>
15452
15453 * calls.c (emit_library_call_value_1): Use valreg instead
15454 of hard_libcall_value.
15455
15456 2000-07-03 Geoff Keating <geoffk@cygnus.com>
15457
15458 * config/rs6000/rs6000.c (rs6000_emit_move): New function.
15459 * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
15460 * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
15461 (movhi): Likewise.
15462 (movqi): Likewise.
15463 (movdf): Likewise.
15464 (movsf): Likewise.
15465 (movdi): Likewise.
15466 (movti): Likewise.
15467
15468 * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
15469 mode instead of wider_mode is being used.
15470
15471 2000-07-03 Jakub Jelinek <jakub@redhat.com>
15472
15473 * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
15474 of 'r'. Use q_regs_operand.
15475 (andsi_1+2): Use q_regs_operand.
15476
15477 2000-07-03 Jakub Jelinek <jakub@redhat.com>
15478
15479 * builtins.c (get_memory_rtx): Always put into alias set 0.
15480
15481 2000-07-03 Nick Clifton <nickc@cygnus.com>
15482
15483 * config/arm/arm.md: Fix post increment and pre increment
15484 peepholes so that they do not generate UNPREDICATBLE opcodes.
15485 (ie ones where the increment clobbers the source/destination).
15486
15487 2000-07-01 Marek Michalkiewicz <marekm@linux.org.pl>
15488
15489 * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
15490 change too big for -mtiny-stack" a warning, if larger than 63.
15491 (out_set_stack_ptr): Change the logic so -mno-interrupts is
15492 always safe to use on possible future devices.
15493 (function_prologue): Write SPH before SPL, for consistency.
15494 If interrupt_func_p true, we know we have enabled interrupts.
15495 (avr_num_arg_regs): New function. Round up to even number of
15496 bytes if no -mpack-args or if calling a libgcc function.
15497 (function_arg, function_arg_advance): Use it.
15498 (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
15499 Output "movw" if available.
15500 (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
15501 of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
15502 (asm_output_section_name): Add blanks for consistent output.
15503 (encode_section_info): Set TREE_READONLY for progmem data to
15504 avoid gas warnings about changed section attributes.
15505 (avr_hard_regno_mode_ok): Force non-QImode data to start in
15506 even numbered registers on devices with "movw".
15507 * config/avr/avr.h (MASK_*): Define bits for target_flags.
15508 (TARGET_SWITCHES): Mark help strings for translation.
15509 Add new -mpack-args and -menhanced switches.
15510 (TARGET_OPTIONS): Mark help strings for translation.
15511 (progmem_section): Add section attributes.
15512 * config/avr/avr.md (*movhi, call_insn, call_value_insn):
15513 Output "movw" if available.
15514 (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
15515 New patterns.
15516 * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
15517 call convention (arguments aligned on even registers).
15518 (_cleanup, _exit): Make weak symbols libc can override.
15519
15520 2000-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15521
15522 * fp-bit.h: New file.
15523
15524 * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
15525 Comment #endif statements.
15526 (__thenan_sf, __thenan_df): Add missing braces around initializer.
15527
15528 Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
15529
15530 * gcse.c (compute_pre_data): Compute ae_kill using other local
15531 properties instead of calling compute_ae_kill.
15532
15533 * alias.c (init_alias_analysis): Do not call
15534 prologue_epilogue_contains until after reload has completed.
15535
15536 2000-07-02 Benjamin Chelf <chelf@codesourcery.com>
15537
15538 * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
15539 (genrtl_finish_compound_stmt): Likewise.
15540 (genrtl_compound_stmt): Change to return void.
15541
15542 * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
15543 move code from here to ...
15544 (genrtl_compound_stmt): ... here.
15545 (genrtl_finish_compound_stmt): Remove.
15546 (expand_stmt): Add comment.
15547
15548 2000-07-02 Zack Weinberg <zack@wolery.cumb.org>
15549
15550 * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
15551 and VOID_TYPE_P.
15552
15553 2000-07-02 Jakub Jelinek <jakub@redhat.com>
15554
15555 * cpplib.h (struct cpp_reader): New field include_depth.
15556 (struct cpp_printer): Rename last_bsd to last_id.
15557 * cppfiles.c (read_include_file): Bump include_depth.
15558 * cpplex.c (cpp_pop_buffer): Decrement include_depth.
15559 (output_line_command): Output correct #line if a header
15560 is including itself and is not protected against multiple inclusion.
15561 Use include_depth instead of buffer_stack_depth, last_id instead of
15562 last_bsd.
15563 * cppinit.c (cpp_start_read): Initialize last_id instead of
15564 last_bsd.
15565
15566 2000-07-01 Benjamin Chelf <chelf@codesourcery.com>
15567
15568 * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
15569 (c-semantics.o): New target.
15570
15571 * c-common.h (TREE_LANG_FLAG_?): Added documentation.
15572 (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
15573 (genrtl_clear_out_block): Likewise.
15574 (genrtl_goto_stmt): Likewise.
15575 (genrtl_expr_stmt): Likewise.
15576 (genrtl_decl_stmt): Likewise.
15577 (genrtl_if_stmt): Likewise.
15578 (genrtl_while_stmt): Likewise.
15579 (genrtl_do_stmt): Likewise.
15580 (genrtl_return_stmt): Likewise.
15581 (genrtl_for_stmt): Likewise.
15582 (genrtl_break_stmt): Likewise.
15583 (genrtl_continue_stmt): Likewise.
15584 (genrtl_scope_stmt): Likewise.
15585 (genrtl_switch_stmt): Likewise.
15586 (genrtl_case_label): Likewise.
15587 (genrtl_begin_compound_stmt): Likewise.
15588 (gerntl_finish_compound_stmt): Likewise.
15589 (genrtl_compound_stmt): Likewise.
15590 (genrtl_asm_stmt): Likewise.
15591 (genrtl_decl_cleanup): Likewise.
15592 (DECL_ANON_UNION_ELEMS): Likewise.
15593 (emit_local_var): Likewise.
15594 (make_rtl_for_local_static): Likewise.
15595 (expand_cond): Likewise.
15596 (expand_stmt): Likewise.
15597 (c_expand_return): Likewise.
15598 (c_expand_start_case): Likewise.
15599 (do_case): Likewise.
15600 (COMPOUND_STMT_NO_SCOPE): Likewise.
15601 (c_expand_asm_operands): Likewise.
15602 (NEW_FOR_SCOPE_P): New macro.
15603 (expand_expr_stmt_fn): New type.
15604
15605 (set_current_function_name_declared): Likewise.
15606 (current_function_name_declared): Likewise.
15607 (lang_expand_stmt): Likewise.
15608 (stmts_are_full_exprs_p): Likewise.
15609 (anon_aggr_type_p): Likewise.
15610 (lang_expand_expr_stmt): Likewise.
15611 (build_case_label): Likewise.
15612
15613 * c-decl.c (lang_expand_expr_stmt): Initialize.
15614 (stmts_are_full_exprs_p): Define.
15615 (current_function_name_declared): Likewise.
15616 (do_case): Likewise.
15617 (lang_expand_stmt): Likewise.
15618 (set_current_function_name_declared): Likewise.
15619 (anon_aggr_type_p): Likewise.
15620
15621 * c-semantics.c: New file.
15622 (expand_cond): Moved from cp/semantics.c.
15623 (genrtl_do_pushlevel): Likewise.
15624 (genrtl_clear_out_block): Likewise.
15625 (genrtl_goto_stmt): Likewise.
15626 (genrtl_expr_stmt): Likewise.
15627 (genrtl_decl_stmt): Likewise.
15628 (genrtl_if_stmt): Likewise.
15629 (genrtl_while_stmt): Likewise.
15630 (genrtl_do_stmt): Likewise.
15631 (genrtl_return_stmt): Likewise.
15632 (genrtl_for_stmt): Likewise.
15633 (genrtl_break_stmt): Likewise.
15634 (genrtl_continue_stmt): Likewise.
15635 (genrtl_scope_stmt): Likewise.
15636 (genrtl_switch_stmt): Likewise.
15637 (genrtl_case_label): Likewise.
15638 (genrtl_begin_compound_stmt): Likewise.
15639 (genrtl_finish_compound_stmt): Likewise.
15640 (genrtl_compound_stmt): Likewise.
15641 (genrtl_asm_stmt): Likewise.
15642 (genrtl_decl_cleanup): Likewise.
15643 (make_rtl_for_local_static): Moved from cp/decl.c.
15644 (emit_local_var): Likewise.
15645 (expand_stmt): Define.
15646
15647 * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
15648 (c_expand_return): Likewise.
15649 (c_expand_start_case): Likewise.
15650
15651 2000-07-01 Richard Henderson <rth@cygnus.com>
15652
15653 * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
15654 with the low 13 bits set.
15655 (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
15656 * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one
15657 of the low 13 bits into a CONST plus an adddi3.
15658 (load_symptr): Set RTX_UNCHANGING_P.
15659
15660 See ChangeLog.3 for earlier changes.