31d94b4b8f5d5951182504b03a470aeda3b5e88c
[gcc.git] / gcc / ChangeLog
1 2000-09-11 Richard Henderson <rth@cygnus.com>
2
3 * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
4 * config/ia64/ia64.c (fr_nonimmediate_operand): New.
5 (ia64_override_options): Prevent optimizing division for both
6 latency and throughput.
7 (rtx_needs_barrier): Handle frcpa.
8 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
9 (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
10 (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
11 (TARGET_SWITCHES): Add -minline-divide-min-latency and
12 -minline-divide-max-throughput.
13 (PREDICATE_CODES): Update.
14 * config/ia64/ia64.md (extendsidi2): Remove * from f case.
15 (zero_extendsidi2): Likewise. Fix typo in f case insn.
16 (extendsfdf2): Add cases for gr<->fr and fr<->mem.
17 (extendsftf2): Likewise.
18 (extenddftf2): Likewise.
19 (fix_trunctfdi2_alts): New.
20 (fixuns_trunctfdi2_alts): New.
21 (madd*4): Rename from madd*3.
22 (divsi3, modsi3, udivsi3, umodsi3): New.
23 (divsi3_internal): New.
24 (divdi3, moddi3, udivdi3, umoddi3): New.
25 (divdi3_internal_lat, divdi3_internal_thr): New.
26 (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
27 (recip_approx): New.
28
29 2000-09-11 Alexandre Oliva <aoliva@redhat.com>
30
31 * print-rtl.c (debug_call_placeholder_verbose): New variable.
32 (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
33 set.
34 * integrate.c (copy_rtx_and_substitute): Don't share
35 LEAF_REG_REMAPpable registers with the inlined function. Don't
36 share the function value with calling sequences.
37
38 2000-09-11 Jakub Jelinek <jakub@redhat.com>
39
40 * c-decl.c (do_case): Fix a typo.
41
42 * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
43 to a if the comparison is floating mode and not -ffast-math.
44 * simplify-rtx.c (simplify_ternary_operation): Likewise.
45
46 Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
47
48 * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
49 gen_ic_invalidate_line.
50
51 2000-09-11 Philip Blundell <pb@futuretv.com>
52
53 * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
54
55 Mon Sep 11 10:48:41 2000 Ulrich Drepper <drepper@redhat.com>
56
57 * install.texi (LANGUAGES): Update to include new languages.
58 * INSTALL: Rebuilt.
59
60 2000-09-11 DJ Delorie <dj@redhat.com>
61
62 * gcc.c (main): Don't warn about unused -B prefixes
63 (unused_prefix_warnings): remove
64
65 2000-09-11 Kazu Hirata <kazu@hxi.com>
66
67 * integrate.c: Fix formatting.
68
69 2000-09-11 Geoff Keating <geoffk@cygnus.com>
70
71 * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
72
73 2000-09-11 Bernd Schmidt <bernds@redhat.co.uk>
74
75 * reload.c (regno_clobbered_p): Fix thinko in previous change.
76
77 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
78
79 * gcc.1: Document 68hc11 specific options.
80
81 2000-09-10 Geoff Keating <geoffk@cygnus.com>
82
83 * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
84 (TARGET_LONG_DOUBLE_128): Define.
85 (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
86 (LONG_DOUBLE_TYPE_SIZE): Redefine.
87 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
88 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
89 of __LONG_DOUBLE_128__.
90 (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
91 passed.
92 (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
93 (CPP_SYSV_DEFAULT_SPEC): Define.
94 (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
95 (INIT_TARGET_OPTABS): Define.
96
97 * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
98 (RS6000_UITRUNC): Likewise.
99 (INIT_TARGET_OPTABS): New macro.
100 * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
101 (trunc_defined): Delete.
102 (output_prolog): Don't output .extern definitions for fp->int
103 conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
104 * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
105 (trunc_defined): Delete.
106 (RS6000_ITRUNC): Moved to aix.h.
107 (RS6000_UITRUNC): Likewise.
108 * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
109 only emit a libcall.
110 (fixuns_truncdfsi2): Delete.
111 (trunc_call): Delete.
112 (trunc_call_rtl): Delete.
113
114 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
115
116 * varasm.c (make_decl_rtl): Restore leading star on
117 DECL_ASSEMBLER_NAME set for decls with an asmspec.
118
119 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
120
121 * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
122 won't give a spurious error for '#pragma pack()'. Simplify
123 control flow for readability. 'reset' action is not necessary.
124
125 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
126
127 * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
128 SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
129 LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
130 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
131
132 * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
133 profile.c, sdbout.c, tradcif.y, tree.c:
134 Include defaults.h if not already included.
135 Don't define the above macros.
136
137 * Makefile.in: Update dependencies.
138
139 2000-09-10 Mark Mitchell <mark@codesourcery.com>
140
141 * c-common.h (add_stmt): Change prototype.
142 (RECHAIN_STMTS): New macro.
143 (CASE_LABEL_DECL): Likewise.
144 (genrtl_case_label): Change prototype.
145 (c_expand_start_case): Remove prototype.
146 (build_case_label): Change prototype.
147 (decl_constant_value): Declare.
148 * c-common.c (check_case_value): Handle C++'s extensions to C
149 semantics.
150 * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
151 field.
152 * c-parse.in (stmt): Adjust handling of return statements and case
153 laels.
154 * c-semantics.c (add_stmt): Return the new statement.
155 (genrtl_return_stmt): Take the RETURN_STMT as input, not the
156 returned expression. Directly generate RTL, rather than calling
157 c_expand_return.
158 (genrtl_switch_stmt): Don't call c_expand_start_case.
159 (build_case_label): Take the LABEL_DECL as input, too.
160 (genrtl_case_label): Just call add_case_node.
161 (expand_stmt): Adjust calls to genrtl_return_stmt and
162 genrtl_case_label.
163 * c-tree.h (c_expand_start_case): Declare.
164 * c-typeck.c (decl_constant_value): Give it external linkage.
165 (c_expand_return): Don't call expand_return or expand_null_return;
166 use genrtl_return_stmt instead.
167 * stmt.c (struct nesting): Remove num_ranges field.
168 (add_case_node): Give it external linkage.
169 (expand_start_case): Don't set num_ranges.
170 (expand_start_case_dummy): Don't clear it.
171 (pushcase): Rely on add_case_node to handle `default' labels.
172 (add_case_node): Handle `default' labels.
173 * tree.c (tree_int_cst_compare): New function.
174 * tree.h (tree_int_cst_compare): Declare.
175 (add_case_node): Likewise.
176
177 2000-09-10 Richard Henderson <rth@cygnus.com>
178
179 * c-parse.in: Revert last change.
180 (init_reswords): Do not enter disabled keywords into the ridpointers
181 table, modulo objc weirdness.
182 (_yylex): Return the canonical spelling for a keyword.
183
184 2000-09-10 Philip Blundell <philb@gnu.org>
185
186 * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
187 * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
188
189 Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
190
191 * alias.c (find_base_term): Handle ADDRESSOF.
192 (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
193
194 2000-09-10 Denis Chertykov <denisc@overta.ru>
195
196 * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
197 outputting templates with many lines.
198
199 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
200
201 * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
202 to decide whether 64-bit support must be generated.
203
204 2000-09-10 Richard Henderson <rth@cygnus.com>
205
206 * c-parse.in (asm patterns): Fix volatile check.
207
208 2000-09-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
209
210 * cppmacro.c (check_trad_stringification): New function.
211 (save_expansion): If -Wtraditional, warn about stringification of
212 macro arguments.
213
214 2000-09-11 Michael Hayes <mhayes@cygnus.com>
215
216 * loop.h (struct loop_mem_info): Move from loop.c
217 (struct loop_info): Add fields store_mems, mems, mems_idx,
218 mems_allocated, unknown_address_altered,
219 unknown_constant_address_altered, num_mem_sets, and
220 first_loop_store_insn.
221
222 * loop.c (loop_store_mems): Replace with field in loop_info struct.
223 (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
224 (unknown_address_altered, unknown_constant_address_altered): Likewise.
225 (num_mem_sets): Likewise.
226 (replace_loop_mems, replace_loop_regs): New.
227 (struct loop_replace_args): New.
228 (load_mems): Use replace_loop_mems.
229 (try_copy_prop): Use replace_loop_regs.
230 (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
231
232 2000-09-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
233
234 * configure.in: Recognize m6811-elf and m6812-elf.
235 * configure: Regenerate.
236
237 2000-09-09 Geoff Keating <geoffk@cygnus.com>
238
239 * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
240 to operand_subword.
241
242 2000-09-10 Michael Hayes <mhayes@cygnus.com>
243
244 * loop.c (struct movables): New.
245 (num_movables): Move into struct movables.
246 (the_movables): Change type to struct movables.
247 (ignore_some_movables): Change struct movable arg to struct movables.
248 (force_movables, combine_movables, regs_match_p): Likewise.
249 (rtx_equal_for_loop_p, move_movables): Likewise.
250 (scan_loop): Change movables to be of type struct movables.
251 Replace last_movable with field in movables structure.
252
253 2000-09-08 Zack Weinberg <zack@wolery.cumb.org>
254
255 * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
256 (init_pragma): Avoid warning if pfile happens to be unused.
257 * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never
258 define init_pragma to nothing. Always prototype
259 init_pragma. Prototype dispatch_pragma if !USE_CPPLIB.
260
261 * c-lex.c (process_directive): Always call dispatch_pragma.
262 Initialize entering_c_header to 0.
263
264 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
265
266 * config/m68hc11/m68hc11.md: New file, machine description for
267 68HC11 & 68HC12.
268 * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
269 * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
270 * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
271 * config/m68hc11/m68hc11-protos.h: New file.
272 * config/m68hc11/m68hc11-crt0.S: New file, startup code.
273 * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
274 * config/m68hc11/xm-m68hc11.h: New file, target defs.
275 * config/m68hc11/larith.asm: New file, libgcc routines.
276
277 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
278
279 * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
280 (FPBIT_FUNCS): Add _usi_to_sf.
281 * config/fp-bit.c (usi_to_float): New function.
282 * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
283 (usi_to_float): Add appropriate #define.
284
285 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
286
287 * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
288 new functions.
289 * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
290 * i386.md (attr "type"): Add sse and mmx types.
291 (attr "memory"): Handle them without a crash.
292 (movsi_1, movdi_2): Allow MMX regs.
293 (movdi splits): Don't split moves involving MMX regs.
294 (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
295 (movv4sf_internal, movv4si_internal, movv8qi_internal,
296 movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
297 movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
298 sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
299 sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
300 sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
301 addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
302 divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
303 sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
304 sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
305 vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
306 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
307 cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
308 addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
309 subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
310 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
311 mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
312 mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
313 eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
314 smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
315 lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
316 mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
317 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
318 mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
319 mmx_clrdi): New patterns.
320
321 2000-09-08 Richard Earnshaw <rearnsha@arm.com>
322
323 * arm.c: Don't include tm.h directly.
324
325 Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka <jh@suse.cz>
326
327 * recog.c (validate_replace_rtx_1): Fix confusion about equality
328 testing; simplify subregs of constants and nested subregs.
329
330 2000-09-08 Alexandre Oliva <aoliva@redhat.com>
331
332 * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
333
334 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
335
336 * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
337 VEC_CONCAT.
338 * rtl.texi (description of USE): Add note about possible pitfalls
339 with this rtx.
340 From Richard Henderson:
341 * reload1.c (choose_reload_regs): Compute need_mode properly.
342
343 2000-09-07 Richard Henderson <rth@cygnus.com>
344
345 * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
346 (__modsi3, __umodsi3): Likewise.
347 (__udivsi3): Likewise. Normalize the TFmode values.
348
349 2000-09-07 Geoff Keating <geoffk@cygnus.com>
350
351 * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
352 with a prototype.
353 * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
354 warning.
355
356 Fri Sep 8 03:26:38 2000 J"orn Rennecke <amylaar@redhat.co.uk>
357
358 * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
359 (cmpeqdi_t): Add output pattern.
360 (cmpeqdi_t+1): Don't split when not optimizing.
361 Restore proper splitting operation.
362
363 2000-09-07 Richard Henderson <rth@cygnus.com>
364
365 * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
366 do not call dispatch_pragma.
367
368 2000-09-07 Jim Wilson <wilson@cygnus.com>
369
370 * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
371 to CLASS_CANNOT_CHANGE_MODE.
372 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
373 mode classes are different.
374
375 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
376
377 * cpplib.h (struct cpp_options): Add user_label_prefix member,
378 left out of commit which removed cppulp.c.
379
380 2000-09-07 Richard Henderson <rth@cygnus.com>
381
382 * bb-reorder.c (fixup_reorder_chain): Add jump in new block
383 after switch for CASE_DROPS_THROUGH.
384
385 2000-09-07 Richard Henderson <rth@cygnus.com>
386
387 * loop.c (strength_reduce): Call check_ext_dependant_givs.
388 Properly extend the biv initial value for the giv.
389 (record_biv): Zero ext_dependant.
390 (record_giv): New argument ext_val. Update all callers.
391 (general_induction_var): Likewise.
392 (consec_sets_giv): Likewise.
393 (simplify_giv_expr): Likewise. Fill in ext_val if we find
394 a sign-extend, zero-extend, or truncate.
395 (combine_givs_p): Make sure modes are compatible.
396 (check_ext_dependant_givs): New.
397 (extend_value_for_giv): New.
398 * loop.h (struct induction): Add ext_dependant.
399 * unroll.c (iteration_info): Extend the biv initial value for the giv.
400 (find_splittable_givs): Likewise.
401 (final_giv_value): Likewise.
402
403 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
404
405 * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
406 REGISTER_TARGET_PRAGMAS is defined. Duplicate some
407 definitions from cpplib.h.
408 * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
409 already done it.
410 * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add
411 documentation for REGISTER_TARGET_PRAGMAS.
412
413 * c-lex.c: Include cpplib.h before c-pragma.h. Define a
414 default-pragma callback to implement -Wunknown-pragmas if
415 USE_CPPLIB.
416 * c-parse.in: Move all includes to top of file.
417 * c-pragma.c: Include cpplib.h before c-pragma.h. Include
418 tm_p.h.
419 (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
420 warning.
421 (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
422
423 * arm.h, arm-protos.h, arm.c,
424 c4x.h, c4x-protos.h, c4x.c,
425 h8300.h, h8300-protos.h, h8300.c,
426 i370.h, i370-protos.h, i370.c,
427 i960.h, i960-protos.h, i960.c,
428 sh.h, sh-protos.h, sh.c,
429 v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
430 pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
431
432 * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add
433 multiple include guard.
434 * i370.md (untyped_call): Use GEN_CALL.
435 (umodsi3): Remove unused variable.
436 * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
437 * v850.c (output_move_single, output_move_double): Constify
438 return value.
439 (print_operand): Constify a char *.
440 * v850.h (struct small_memory_info): Constify name member.
441
442 2000-09-07 Kazu Hirata <kazu@hxi.com>
443
444 * config/h8300.h: Fix comment typos.
445 * config/h8300/h8300.md: Likewise.
446 * config/h8300/lib1funcs.asm: Likewise.
447
448 Thu 07-Sep-2000 21:29:00 BST Neil Booth <NeilB@earthling.net>
449
450 * Makefile.in: Remove references to cppulp.{c,o}.
451 * cppinit.c (initialize_builtins, cpp_start_read,
452 cpp_handle_option): Update to use cpp_options structure.
453 * cppulp.c: Remove.
454
455 2000-09-07 Joseph S. Myers <jsm28@cam.ac.uk>
456
457 * c-common.c (time_char_table): Allow %#b and %#h.
458
459 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
460
461 * reorg.c (find_end_label): If the basic block reorder pass moves the
462 return insn to some other place try to locate it again and put our
463 end_of_function_label there.
464 * reorg.c (relax_delay_slots): Check if find_end_label created a
465 new label that invalidates the current optimazation.
466
467 2000-09-07 Catherine Moore <clm@redhat.com>
468
469 * unroll.c (unroll_loop): Check for unconditional jumps
470 to loop continuation. Delete if n_iterations is 1.
471 (ujump_to_loop_cont): New routine.
472
473 2000-09-07 Bernd Schmidt <bernds@redhat.co.uk>
474
475 * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
476 MODE_VECTOR_FLOAT.
477 * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
478 to handle multiword modes correctly. All callers and the declaration
479 changed.
480
481 2000-09-06 Mark Mitchell <mark@codesourcery.com>
482
483 * c-common.h (prep_stmt): Declare.
484 (lang_expand_stmt): Likewise.
485 * c-decl.c (lang_expand_stmt): Remove.
486 * c-semantics.c (lang_expand_stmt): Define.
487 (prep_stmt): New function.
488 (expand_stmt): Handle common statement types here.
489
490 2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
491
492 * configure.in (sh-*-linux*): Added.
493 * configure: Rebuilt.
494 * config/sh/t-linux: New file.
495 * config/sh/sh.h (USERMODE_BIT): Define.
496 (TARGET_USERMODE): Likewise.
497 (TARGET_SWITCHES): New switches for the bits above.
498 (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
499 * config/sh/linux.h: New file.
500 * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
501 underscore on linux.
502 (L_sdivsi3, L_udivsi3): Define for linux.
503 (L_ic_invalidate): Define.
504 * invoke.texi (SH Options): Document -musermode.
505
506 2000-09-07 Alexandre Oliva <aoliva@redhat.com>
507
508 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
509 CSE unless generating PIC.
510
511 * config/sh/sh.md (symPLT_label2reg): Force the initialization of
512 the PIC register.
513
514 2000-09-06 H.J. Lu (hjl@gnu.org)
515
516 * Makefile.in (clean_s1): Depend on stage_b.
517 (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
518 stage2. They are used for "make compare".
519
520 2000-09-06 Mark Mitchell <mark@codesourcery.com>
521
522 Move statement-tree facilities from C++ to C front-end.
523 * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
524 (void_zero_node): New macro.
525 (struct stmt_tree_s): New type.
526 (stmt_tree): New typedef.
527 (struct language_function): New type.
528 (last_tree): New macro.
529 (last_expr_type): Likewise.
530 (walk_tree_fn): New typedef.
531 (current_stmt_tree): New function.
532 (begin_stmt_tree): Likewise.
533 (add_stmt): Likewise.
534 (finish_stmt_tree): Likewise.
535 (statement_code_p): Likewise.
536 (lang_statement_code_p): New variable.
537 (walk_stmt_tree): New function.
538 (STMT_IS_FULL_EXPR_P): New macro.
539 * c-common.c (lang_statement_code_p): New variable.
540 (c_common_nodes_and_builtins): Initialize void_zero_node.
541 (statement_code_p): New function.
542 (walk_stmt_tree): Likewise.
543 * c-decl.c (language_function): Rename to ...
544 (c_language_function): ... this. Include language_function.
545 (push_c_function_context): Adjust accordingly.
546 (pop_c_function_context): Likewise.
547 (mark_c_function_context): Likewise.
548 (current_stmt_tree): Define.
549 * c-semantics.c (begin_stmt_tree): New function.
550 (add_stmt): Likewise.
551 (prune_unused_decls): Likewise.
552 (finish_stmt_tree): Likewise.
553
554 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
555
556 * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
557
558 2000-09-06 Kazu Hirata <kazu@hxi.com>
559
560 * calls.c: Fix formatting.
561
562 2000-09-06 Graham Stott <grahams@cygnus.co.uk>
563
564 * config/i386/i386.h (ADDRESS_COST): Fix typo.
565
566 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
567
568 Integrated preprocessor.
569
570 * Makefile.in: Remove all references to c-parse.gperf,
571 c-gperf.h, and c-parse.h. Remove -d from yacc command line
572 generating c-parse.c. Update dependencies.
573 * c-parse.gperf, c-gperf.h: Delete.
574
575 * c-common.c: Don't define parse_options, cpp_token, yy_cur,
576 yy_lim, or yy_get_token. Don't define get_directive_line if
577 USE_CPPLIB.
578 * c-common.h: Add multiple include guard. Define RID values
579 for every keyword in C, C++, and Objective C. Put all the
580 modifiers first.
581 (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
582 * c-decl.c (c_decode_option): Handle -lang-objc here.
583 (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
584 (grokdeclarator): Adjust for new RID scheme.
585 (extract_interface_info): New stub.
586 * c-lang.c: Don't declare yy_cur or parse_options.
587 (lang_init_options): Call cpp_init. Don't call
588 cpp_options_init.
589 (lang_init): Don't call check_newline if USE_CPPLIB.
590
591 * c-lex.c: Don't include c-parse.h. Do include timevar.h.
592 Elide lots of unnecessary code if USE_CPPLIB. Delete code
593 rendered unnecessary by new architecture. Move routines not
594 shared with C++ to c-parse.in. Maintain a local idea of the
595 line number. Handle C++ as well as C.
596 [USE_CPPLIB]: Declare and register callbacks for #ident and
597 for entering/leaving files.
598 (init_c_lex, c_lex): Are now the entry points to this file.
599 (check_newline): Break out directive handling to
600 process_directive.
601 (read_ucs, is_extended_char, utf8_extend_token): Moved here
602 from C++ front end.
603 (readescape, parse_float): Overhaul.
604 (lex_number, lex_string, lex_charconst): Break out of c_lex
605 (n'ee yylex).
606 (get_fileinfo, update_header_times, dump_one_header,
607 dump_time_statistics): New and/or moved here from C++.
608 Support per-file data needed by C++ and per-header timing
609 statistics (C++ only, at the moment).
610 * c-lex.h: Update prototypes. Add multiple include guard.
611 * c-tree.h (struct lang_identifier): Add rid_code field.
612 (C_IS_RESERVED_WORD, C_RID_CODE): New.
613
614 * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
615 reinit_parse_for_function and/or position_after_white_space.
616 (save_filename, save_lineno): Look ahead before saving.
617 (label -> identifier ':'): Save file and line before shifting ':'.
618 (reservedwords): No need to call get_identifier.
619 (init_parse, finish_parse, yyerror, yylex, yyprint,
620 make_pointer_declarator): Are now here for C/ObjC.
621 (rid_to_yy): Conversion table from RID constants to Yacc codes.
622
623 * c-pragma.c: Rewrite parsing logic to fit with cpplib's
624 #pragma registry. Provide dummy implementation of that
625 interface if !USE_CPPLIB.
626 * c-pragma.h: Update to match.
627
628 * flags.h: Add multiple include guard.
629 (flag_detailed_statistics): Moved here from C++.
630 * toplev.c: Define flag_detailed_statistics.
631
632 * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
633 #if USE_CPPLIB.
634 * timevar.def (TV_CPP, TV_LEX): New.
635 * timevar.h: Add multiple include guard.
636
637 * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
638 #if USE_CPPLIB.
639 * objc/objc-act.c: Don't mention yy_cur or parse_options.
640 Initialize cpplib properly. Force lineno to 0 after first
641 call to check_newline. Don't handle -lang-objc here.
642 Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
643
644 2000-09-06 David Edelsohn <edelsohn@gnu.org>
645
646 * rs6000.md: Correct function unit definitions for cr_logical and
647 mtjmpr.
648 (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
649 and use portable method for >=0 and floating point >=. Remove
650 associated matchers.
651
652 2000-09-06 Mark Mitchell <mark@codesourcery.com>
653
654 * extend.texi: Mark named return value extension as deprecated.
655
656 2000-09-06 Geoff Keating <geoffk@cygnus.com>
657
658 * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
659 the result.
660
661 2000-09-06 Gabriel Dos Reis <gdr@codesourcery.com>
662
663 * toplev.c (display_help): Fix thinko in documentation.
664
665 * diagnostic.h (output_buffer::indent_skip): New fields.
666 (output_indentation): New macro.
667
668 * diagnostic.c (output_indent): New function.
669 (output_set_prefix, clear_diagnostic_info): Use.
670 (output_emit_prefix): Predict future indentation.
671
672 2000-09-06 DJ Delorie <dj@redhat.com>
673
674 * Makefile.in (stage_*): add more dependencies to ensure parallel
675 builds build correctly
676
677 2000-09-06 Manfred Hollstein <manfredh@redhat.com>
678
679 * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
680 not bootstrap-lean_f.
681
682 2000-09-06 Andreas Schwab <schwab@suse.de>
683
684 * mklibgcc.in: Emit rule for libgcc-stage-start.
685 * Makefile.in (stage1-start, stage2-start, stage3-start,
686 stage4-start): Don't handle libgcc here, use libgcc.mk instead.
687
688 2000-09-06 Bernd Schmidt <bernds@redhat.co.uk>
689
690 * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
691 (update_equiv_regs): Likewise, except for the mn10200 kludge.
692 (combine_regs): Likewise.
693
694 * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
695 * cse.c: Include "basic-block.h".
696 (struct table_elt): New field REGCOST.
697 (CHEAP_REG): Delete macro.
698 (COST): Return 0 for REGs.
699 (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
700 (notreg_cost): Return 0 for appropriate SUBREGs.
701 (COSTS_N_INSNS): Return N * 2.
702 (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
703 SUBREGs.
704 (CHEAPER): Use new function preferrable.
705 (insert): Initialize REGCOST member.
706 (find_best_addr): Use approx_reg_cost for estimation of register
707 usage.
708 (cse_insn): Likewise.
709 * loop.c (iv_add_mult_cost): New function.
710 (add_cost, shift_cost, mult_cost): Delete variables.
711 (init_loop): Don't initialize add_cost; reduce copy_cost by half.
712 (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
713 Make code that detects autoinc opportunities slightly less optimistic.
714 (simplify_giv_expr): If expression contains other reg that is also a
715 giv, only increment benefit if this is the only use of that reg.
716 (consec_sets_giv): Take that change into account.
717 (combine_givs): Slightly more verbose output.
718
719 * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
720 not the cost of an equivalent shift.
721 * sh-protos.h (addsubcosts): Declare.
722 * sh.c (addsubcosts): New function.
723 * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
724 (RTX_COSTS): Tweak. Use addsubcosts.
725 (ADDRESS_COST): Return higher cost for reg+reg addressing.
726
727 2000-09-06 Geoff Keating <geoffk@cygnus.com>
728
729 * config/rs6000/rs6000.c (validate_condition_mode): New function.
730 (branch_comparison_operator): Call validate_condition_mode to
731 abort rather than returning 0.
732 (branch_positive_comparison_operator): New function.
733 (scc_comparison_operator): Call validate_condition_mode to abort
734 rather than returning 0.
735 (ccr_bit): Call validate_condition_mode. Update for
736 new branch scheme.
737 (print_operand): Delete %C modifier. Update %E case
738 to use EQ bit not SO bit.
739 (rs6000_reverse_condition): New function.
740 (rs6000_generate_compare): New function.
741 (rs6000_emit_sCOND): New function.
742 (rs6000_emit_cbranch): New function.
743 (output_cbranch): The length of a long branch insn is
744 now only 8 bytes. Add validate_condition_mode. Use
745 rs6000_reverse_condition. Remove cror generation.
746
747 * config/rs6000/rs6000.h: Update comments.
748 (PREDICATE_CODES): Add new predicate. Update codes used
749 by branch_comparison_operator and scc_comparison_operator.
750 * config/rs6000/rs6000-protos.h: Add prototypes for
751 new external functions.
752 * config/rs6000/rs6000.md: Add new scheduling parameters
753 for cr_logical instructions. Change length of branch
754 instructions.
755 (bCOND patterns): Call rs6000_emit_cbranch.
756 (sCOND patterns): Call rs6000_emit_sCOND.
757 (branch patterns): Change lengths to 4.
758 (cr logical patterns): New.
759
760 2000-09-06 Richard Henderson <rth@cygnus.com>
761
762 * config/i386/i386.md (call_pop): Fix test for setting
763 current_function_uses_pic_offset_table.
764 (call, call_value_pop, call_value): Likewise.
765
766 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
767
768 * timevar.c (timevar_add): Delete.
769 (timevar_get): Also count time since the selected timer was
770 last updated. Do not examine the timevar stack if the
771 selected timer is standalone.
772
773 2000-09-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
774
775 * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
776
777 2000-09-05 Jason Merrill <jason@redhat.com>
778
779 * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
780 for 'extern' arrays.
781
782 2000-09-05 Richard Henderson <rth@cygnus.com>
783
784 * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
785 Eliminate final copy from non-trapping case.
786 (__divdf3, __divsf3): Likewise.
787
788 2000-09-05 Richard Henderson <rth@cygnus.com>
789
790 * config/ia64/ia64.md (mulhi3): Fix typo last change.
791 * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
792
793 2000-09-03 Donn Terry <donn@interix.com>, Laurynas Biveinis <lauras@softhome.net>
794
795 * Makefile.in: Restructure bootstrap stages to allow clean
796 restart after failure.
797
798 2000-09-05 Richard Henderson <rth@cygnus.com>
799
800 * config/ia64.md (movsi and movdi patterns): Allow moves from
801 8-bit constants to AR registers.
802
803 2000-09-05 Richard Henderson <rth@cygnus.com>
804
805 * config/ia64/ia64.md (mulhi3): New.
806
807 2000-09-05 Richard Henderson <rth@cygnus.com>
808
809 * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
810 * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
811 Optimization Guide, minimum latency alternative.
812 (__moddi3, __udivdi3, __umoddi3): Likewise.
813 (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
814
815 2000-09-05 Bruce Korb <bkorb@gnu.org>
816
817 * fixinc/fixincl.c (load_file): always read header files
818 with sizes that are a multiple of the page size.
819 & use libiberty's getpagesize for determining that.
820
821 2000-09-05 Alexandre Oliva <aoliva@redhat.com>
822
823 * gcse.c (hash_string_1): Add prototype.
824 * cse.c (canon_hash_string): Likewise.
825
826 2000-09-04 Craig Newell <CraigN@ieee.org>
827
828 * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
829
830 2000-09-04 Andreas Schwab <schwab@suse.de>
831
832 * Makefile.in (STAGESTUFF): Remove libgcc.
833 (stage1-start, stage2-start, stage3-start): Copy the contents of
834 the libgcc directory explicitly.
835 (mostlyclean): Clean libgcc.
836
837 2000-09-04 Andrew Haley <aph@redhat.com>
838
839 * dwarf2out.c: (stack_adjust_offset): New prototype.
840
841 Wed Jan 1 00:23:59 MET 1997 Jan Hubicka <jh@suse.cz>
842
843 * combine.c (make_extraction): Fix rtx_cost comparison to
844 match the comment.
845
846 Wed Jan 1 00:17:32 MET 1997 Jan Hubicka <jh@suse.cz>
847
848 * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
849 umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
850 Add '*' to insn pattern name.
851
852 2000-09-04 Jakub Jelinek <jakub@redhat.com>
853
854 * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
855 use posn - 1 to index into tokens array.
856 (maybe_paste_with_next): Adjust caller.
857
858 2000-09-03 Geoff Keating <geoffk@cygnus.com>
859
860 * invoke.texi: Document the -mvxworks option for rs6000 ELF.
861
862 * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
863 (REGNO_REG_CLASS): Use symbolic register
864 names.
865
866 2000-09-03 Richard Earnshaw <rearnsha@arm.com>
867
868 * arm.c (final_prescan_insn): If the form of a jump insn isn't
869 recognized, don't try to conditionally execute it.
870
871 Sun Sep 3 13:10:56 2000 Denis Chertykov <denisc@overta.ru>
872
873 * config/avr/avr.md ("*tablejump_lib"): New pattern.
874 (call_value_insn): Right length claculation.
875 (call_insn): Likewise.
876
877 2000-09-02 Marek Michalkiewicz <marekm@linux.org.pl>
878
879 * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
880 gas_output_limited_string, gas_output_ascii, output_movqi,
881 output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
882 out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
883 out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
884 ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
885 lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
886 out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
887 Add "const" as needed to remove warnings.
888
889 * config/avr/avr.c (avr_override_options, avr_init_once,
890 function_prologue, function_epilogue, frame_pointer_required_p,
891 class_likely_spilled_p, order_regs_for_local_alloc,
892 avr_address_cost, avr_ret_register): Use K&R style arguments.
893 (initial_elimination_offset, gas_output_limited_string):
894 Remove ATTRIBUTE_UNUSED from the used arguments.
895 (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
896 Use local variables src, dest, base to access operands[].
897 Rename reg_dest to reg_src if that's what it is.
898 (output_movhi, output_movsisf): Optimize loading 8-bit immediate
899 constants to LD_REGS if reg_was_0.
900 (output_reload_insisf): Change arg 3 to insn length and set it.
901 (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
902 access to 16-bit I/O register pairs.
903 (avr_address_cost): Lower cost for the above case.
904 (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
905 may be clobbered, also for LD_REGS.
906 (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
907 with a CONST_INT.
908
909 * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
910
911 * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
912 macro to test_hard_reg_class function.
913 (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
914 for loading immediate constants to LD_REGS.
915 (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
916
917
918 Sat Sep 2 13:58:23 2000 Marek Michalkiewicz <marekm@linux.org.pl>
919
920 * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
921 * config/avr/libgcc.S: Lost part of the previous patch.
922
923 2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
924
925 * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
926 object before calling pthread_mutex_init.
927
928 2000-09-02 Alexandre Oliva <aoliva@redhat.com>
929
930 * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
931 config/sh/crtn.asm: New files.
932 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
933 (crt1.o, crti.o, crtn.o): New targets.
934 * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
935 sh/t-elf.
936 * configure: Rebuilt.
937 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
938 STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
939 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
940 Undefine for config/elfos.h to redefine.
941 (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
942
943 2000-09-02 Alexandre Oliva <aoliva@redhat.com>, Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
944
945 * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
946 legitimize_pic_address, output_pic_addr_const): Declare.
947 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
948 (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
949 (TARGET_SWITCHES): New switch -mprefergot.
950 (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
951 (PIC_OFFSET_TABLE_REGNUM): Define.
952 (GOT_SYMBOL_TABLE): Likewise.
953 (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
954 (ENCODE_SECTION_INFO): Define.
955 (FINALIZE_PIC): New macros.
956 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
957 (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
958 * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
959 (prepare_move_operands): Call emit_pic_move or
960 emit_pic_const_move if appropriate.
961 (output_far_jump): For PIC, use braf and output long offset.
962 (machine_dependent_reorg):
963 (sh_expand_prologue): Save and initialize the PIC register.
964 (sh_expand_epilogue): Restore it.
965 (initial_elimination_offset): Account for it.
966 (nonpic_symbol_mentioned_p): New function.
967 (legitimize_pic_address): Likewise.
968 (output_pic_addr_const): Likewise.
969 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
970 (call, call_value): Use them.
971 (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
972 symPLT_label2reg): New expands.
973 * invoke.texi (SH Options): Document -mprefergot.
974
975 2000-09-01 Alexandre Oliva <aoliva@redhat.com>
976
977 * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
978 * gcse.c (hash_string_1): New function.
979 (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
980 (expr_equiv_p) <ASM_OPERANDS>: Likewise.
981 * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
982 (canon_hash_string): New function.
983 (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
984 (exp_equiv_p) <ASM_OPERANDS>: Likewise.
985 (fold_rtx): Use ASM_OPERANDS accessor macros.
986 * emit-rtl.c (copy_insn_1): Likewise.
987 * integrate.c (copy_rtx_and_substitute): Likewise.
988 * stmt.c (expand_asm_operands): Likewise. Give an
989 ASM_OPERANDS rtx the mode of the output reg being set from it.
990
991 2000-09-01 Fred Fish <fnf@be.com>
992
993 * fix-header.c (write_rbrac): Add putc and getc to list of
994 functions to protect against prior definition as a macro.
995
996 2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
997
998 * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
999 (c_size_type_node): Define.
1000 * c-decl.c (init_decl_processing): Initialize c_size_type_node.
1001 * c-common.c (enum format_lengths, enum format_std_version,
1002 format_length_info, format_type_detail, BADLEN, NOLENGTHS,
1003 format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
1004 T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
1005 T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
1006 T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
1007 TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
1008 format_types): Define.
1009 (format_char_info, print_char_table, scan_char_table,
1010 time_char_table): Rearrange for new organization of information
1011 about format length modifiers and standard versions.
1012 (T_ST): Redefine to use c_size_type_node.
1013 (check_format_info): Obtain information about length modifiers and
1014 standard versions from tables. Adjust warning message wordings.
1015 Use the name from the user's program for `ll' and `hh' length
1016 modifiers in warning messages. Use more informative names for
1017 wanted types where available (for wchar_t, wint_t, size_t, signed
1018 size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
1019
1020 2000-09-01 Jim Wilson <wilson@cygnus.com>
1021
1022 * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
1023 * combine.c (distribute_notes): Handle REG_NORETURN.
1024 * rtl.c (reg_note_name): Add REG_NORETURN.
1025 * rtl.h (enum reg_note): Likewise.
1026
1027 * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
1028 ia64_file_start.
1029 * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
1030 (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
1031 (emit_predicate_relation_info): Handle conditional calls with
1032 REG_NORETURN.
1033 * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
1034 instead of ia64_file_start.
1035 * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
1036 * config/ia64/ia64.md (safe_across_calls_all,
1037 save_across_calls_normal): New patterns.
1038
1039 * loop.c (check_final_value): Check for biv use before checking for
1040 giv use. Check for both biv and giv uses. Always set last_giv_use
1041 if there is a giv use.
1042
1043 2000-09-01 Richard Henderson <rth@cygnus.com>
1044
1045 * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
1046 (madddi3): Likewise.
1047 (maddsi3): New.
1048
1049 Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1050
1051 * expr.c (clear_storage): Don't use emit_move_insn unless
1052 either BLKmode or proper size.
1053 (store_constructor): Don't call clear_storage if REG of wrong size.
1054
1055 * flow.c (init_propagate_block_info): Don't mark frame dead at end
1056 of function if returns wiht stack pointer depressed.
1057
1058 2000-09-01 Andrew Haley <aph@redhat.com>
1059
1060 * dwarf2out.c (stack_adjust_offset): New function.
1061 (dwarf2out_stack_adjust): Break out stack adjust logic into
1062 new stack_adjust_offset function. Look inside parallels and
1063 sequences for stack adjustments.
1064
1065 2000-08-31 Jeff Law <law@cygnus.com>
1066
1067 * arm.md: Use no_new_pseudos to determine when it is safe
1068 to create new pseudo registers.
1069
1070 * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
1071 when we can safely allocate new registers.
1072
1073 2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
1074
1075 * stmt.c (expand_asm_operands): Twiddle generating_concat_p
1076 so that CONCATs are not generated for ASMs.
1077 * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
1078 not generating_concat_p.
1079 * function.c (pop_function_context_from): Reset
1080 generating_concat_p.
1081 (prepare_function_start): Likewise.
1082 * rtl.c (generating_concat_p): Define.
1083 * rtl.h (generating_concat_p): Declare.
1084 * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
1085
1086 2000-08-22 Philipp Thomas <pthomas@suse.de>
1087 Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
1088
1089 * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
1090 for translation.
1091
1092 2000-08-30 Greg McGary <greg@mcgary.org>
1093
1094 * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
1095 * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
1096 * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
1097
1098 2000-08-30 Greg McGary <greg@mcgary.org>
1099
1100 * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
1101 (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
1102 (TREE_INT_CST): New macro.
1103 * varasm.c (const_hash, compare_constant_1, record_constant_1):
1104 Use new macro TREE_INT_CST.
1105
1106 Wed 30-Aug-2000 23:18:59 BST Neil Booth <NeilB@earthling.net>
1107
1108 * contrib.texi: Add self.
1109
1110 2000-08-30 Alexandre Oliva <aoliva@redhat.com>
1111
1112 * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
1113 (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
1114 and labels.
1115
1116 2000-08-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1117
1118 * fixinc/gnu-regex.c: Don't define `const'.
1119
1120 Tue Aug 29 22:09:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1121
1122 * expr.c (store_constructor): Allow variable bounds of array type.
1123 (expand_expr): Don't blow up if type is ERROR_MARK.
1124 * varasm.c (output_constructor): Don't access lower bound of array
1125 type unless need it if index is supplied (so it can be a variable
1126 if no index is supplied).
1127 Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
1128 Other minor cleanups.
1129
1130 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1131
1132 * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
1133 for compilations in stage 1 and subsequent stages, respectively.
1134 * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
1135 * configure: Rebuilt.
1136 * x-vax, x-vax-gcc: Deleted.
1137
1138 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
1139
1140 * c-common.c (declare_function_name): Use func_id_node,
1141 function_id_node, and pretty_function_id_node. Do not make
1142 __func__ visible at file scope.
1143 * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
1144 CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
1145 (function_id_node, pretty_function_id_node, func_id_node): New
1146 macros.
1147 * c-decl.c (init_decl_processing): Initialize function_id_node,
1148 pretty_function_id_node, and func_id_node.
1149 (c_make_fname_decl): Correct comment.
1150
1151 * tree.h (struct tree_identifier): Constify pointer member.
1152
1153 * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
1154 * c-pragma.h (struct weak_syms): Constify name and value members.
1155 (add_weak): Constify arguments.
1156
1157 * calls.c (special_function_p): Constify a char *.
1158 (expand_call): Remove variable which is initialized and then
1159 never used.
1160 * dependence.c (struct def_use, struct induction, struct subscript):
1161 Constify 'variable' member.
1162 (get_low_bound, have_induction_variable): Constify char * argument.
1163 (find_induction_variable): Add braces to avoid dangling else.
1164 (classify_dependence): Constify char * arrays.
1165 * profile.c (output_func_start_profiler): Constify a char *.
1166 * stor-layout.c (finalize_record_size): Constify a char *.
1167 * tree.c (is_attribute_p): Constify a char *.
1168 * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
1169
1170 * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
1171 for comprehensibility. Do not call get_identifier if we did
1172 not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to
1173 create temporary string constants, not ggc_alloc_string. No
1174 need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const
1175 char * to hold IDENTIFIER_POINTERs.
1176
1177 2000-08-29 Richard Henderson <rth@cygnus.com>
1178
1179 * config/ia64/ia64.md (muldi3): Use grfr_register_operand
1180 for the inputs.
1181
1182 2000-08-29 Richard Henderson <rth@cygnus.com>
1183
1184 * reload.c (push_secondary_reload): Allow class == reload_class
1185 if we're using a reload_in/out pattern.
1186
1187 * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use
1188 the half that does not conflict with the reload register.
1189 (reload_outti): Likewise.
1190
1191 2000-08-29 Kazu Hirata <kazu@hxi.com>
1192
1193 * reload.c: Fix formatting.
1194
1195 * stmt.c: Fix formatting.
1196
1197 * gcc.c: Fix formatting.
1198
1199 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
1200
1201 * flags.h (time_report, mem_report): New global flags.
1202 * toplev.c: Define time_report and mem_report.
1203 (f_options): Add -ftime-report and -fmem-report.
1204 (compile_file): Turn on time_report if quiet_flag is off.
1205 Call ggc_print_statistics at very end if mem_report is on.
1206 * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
1207
1208 * ggc-common.c (ggc_print_statistics): Rename to
1209 ggc_print_common_statistics; all callers changed. Scale
1210 quantities above 10K to kilobytes and above 10M to megabytes.
1211 * ggc-page.c (ggc_page_print_statistics): Rename to
1212 ggc_print_statistics. Report memory consumed by internal data
1213 structures for each allocation bucket. Scale quantities above
1214 10K to kilobytes and above 10M to megabytes.
1215 * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
1216 Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
1217 Define tally_leaves always.
1218 (ggc_print_statistics): New function.
1219 * ggc.h: Adjust for renamed functions.
1220
1221 Wed Aug 30 00:11:42 2000 Denis Chertykov <denisc@overta.ru>
1222
1223 * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
1224 output_movsisf instead of which_alternative.
1225
1226 * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
1227
1228 Tue Aug 29 22:29:58 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
1229
1230 * config/avr/avr-protos.h: (avr_output_ascii) Removed.
1231 (avr_progmem_p): New prototype.
1232 (output_movsisf): Prototype declaration changed.
1233 (output_movqi): New prototype.
1234 (output_movhi): New prototype.
1235 (call_insn_operand): Likewise.
1236 (final_prescan_insn): Likewise.
1237 (avr_simplify_comparision_p): Likewise.
1238 (avr_normalize_condition): Likewise.
1239 (compare_eq_p): Likewise.
1240 (out_shift_with_cnt): Likewise.
1241 (const_int_pow2_p): Likewise.
1242 (output_reload_inhi): Prototype declaration changed.
1243
1244 * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
1245 (ldi_reg_rtx): New. rtx for r31.
1246 (avr_init_stack): Initialize as "__stack".
1247 (function_prologue): Use it.
1248 Replace all TARGET_ENHANCED with AVR_ENHANCED.
1249 (avr_mcu_name): Initialize as "avr2".
1250 (avr_enhanced_p, avr_mega_p): New variables.
1251 (mcu_types, avr_override_options): Handle all known MCU types.
1252 Also handle avr1 (only preprocess, assemble and link).
1253 (print_operand): Using of `%K' in output template removed.
1254 (out_movqi_r_mr): Optimized.
1255 (out_movhi_r_mr): Likewise.
1256 (output_movqi): New function.
1257 (output_movhi): Likewise.
1258 (out_movsi_r_mr): Optimized.
1259 (output_movsisf): Compute insn length for `adjust_insn_length'
1260 (out_movqi_mr_r): Optimized.
1261 (out_movhi_mr_r): Optimized.
1262 (adjust_insn_length): Use output_movsisf, output_movqi,
1263 output_movhi for insn length adjusting.
1264 (reg_unused_after): Use dead_or_set_p.
1265 (preferred_reload_class): Now havn't any restriction.
1266 (reg_was_0): New function.
1267 (io_address_p): Likewise.
1268 (const_int_pow2_p): Likewise.
1269 (output_reload_inhi): Likewise.
1270 (output_reload_insisf): Likewise.
1271
1272 * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
1273 (LIB_SPEC): Use -lc for all supported devices.
1274 (LIBGCC_SPEC): Use -lgcc for all supported devices.
1275 (AVR_MEGA): Define as avr_mega_p.
1276 (AVR_ENHANCED): New, define as avr_enhanced_p.
1277 (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
1278 (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
1279 (CRT_BINUTILS_SPECS): Handle all known MCU types.
1280 Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
1281 (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
1282 (ASM_SPEC): Pass -mmcu=... to the assembler.
1283 Change all -DAVR_* to -D__AVR_*__.
1284 (INIT_TARGET_OPTABS), config/avr/libgcc.S:
1285 Rename library functions to start with two underscores.
1286 (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
1287 alignment.
1288 (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
1289 (SUPPORTS_WEAK): Likewise.
1290 (LDI_REG_REGNO): New. Register r31 will be used as temporary
1291 register for loading constants to r0-r14.
1292
1293 * config/avr/avr.md: Replace all TARGET_ENHANCED with
1294 AVR_ENHANCED.
1295 (*mov_r_sp): Removed. Handled by output_movhi.
1296 (*mov_sp_r): Likewise.
1297 (*mov_sp_r_no_interrupts): Likewise
1298 (*mov_sp_r_tiny): Likewise.
1299 (*movqi): Use output_movqi.
1300 (*reload_inqi): New.
1301 (*movhi): Use output_movhi.
1302 (*reload_inhi): New.
1303 (*negsi2): Optimized.
1304 (*negsf2): Likewise.
1305 Added peepholes (define_peephole2) for loading constants to r0-r14
1306 and for using `cpse' command.
1307
1308 * config/avr/libgcc.S: Rename library functions to start with two
1309 underscores.
1310 Add support for enhanced core.
1311 (_moqhi3): Fix typo, now _modqi3.
1312 (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
1313 (__prologue_saves__): Remove test for stack adjust by 0.
1314 (__tablejump__): New.
1315
1316 * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
1317 Add multilib support.
1318
1319 Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com)
1320
1321 * loop.c (prescan_loop): Don't check unknown_address_altered
1322 when deciding if insert_loop_mem is safe. Add BLKmode MEMs
1323 to loop_store_mems as necessary.
1324 (loop_invariant_p): Don't check unknown_address_altered
1325 or unknown_constant_address_altered.
1326
1327 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1328
1329 * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
1330
1331 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
1332
1333 * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
1334 print just the filename.
1335 * cpplex.c (_cpp_run_directive): Add additional argument, the
1336 name to give the synthetic buffer. This defaults to
1337 translated "<command line>".
1338 * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
1339 Adjust to match.
1340 (_cpp_define_builtin): New function.
1341 * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
1342 * cpphash.h: Update prototypes.
1343
1344 * tradcpp.c (main): Process -D and -U simultaneously, in the
1345 order they appeared on the command line.
1346
1347 2000-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1348
1349 * c-decl.c (define_label): Call warning_with_file_and_line and
1350 error_with_file_and_line instead of plain warning or error.
1351
1352 * c-parse.in (label): Use save_filename/save_lineno to ensure
1353 correct values for calls to define_label.
1354
1355 2000-08-29 Mark Mitchell <mark@codesourcery.com>
1356
1357 * calls.c (expand_call): Don't create a VAR_DECL just to throw it
1358 away.
1359 * expr.c (expand_expr, case TARGET_EXPR): Don't call
1360 mark_addressable.
1361 * tree.h (get_file_function_name): Remove two duplicate
1362 declarations.
1363
1364 2000-08-28 Kazu Hirata <kazu@hxi.com>
1365
1366 * tree.c: Fix formatting.
1367
1368 * xcoffout.c: Fix formatting.
1369
1370 2000-08-28 Jason Merrill <jason@redhat.com>
1371
1372 * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
1373
1374 2000-08-28 Daniel Berlin <dberlin@redhat.com>
1375
1376 * dwarf2out.c (dwarf2out_finish): Don't bother calling
1377 break_out_includes if it won't do anything.
1378
1379 2000-08-28 Richard Henderson <rth@cygnus.com>
1380
1381 * reload.c (push_secondary_reload): Revert 2000-08-16 change.
1382 (find_reloads): Likewise.
1383 * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
1384 (reload_inhi): Likewise.
1385
1386 2000-08-28 Richard Henderson <rth@cygnus.com>
1387
1388 * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
1389 (call_insn_operand): Don't expect a surrounding mem.
1390 (constant_call_address_operand): Likewise.
1391 * config/i386/i386.h (PREDICATE_CODES): Update.
1392 * config/i386/i386.md (call patterns): Move the match_operand
1393 for the call destination inside the mem.
1394
1395 2000-08-28 Richard Henderson <rth@cygnus.com>
1396
1397 * local-alloc.c (requires_inout): Don't use reserved range for
1398 EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
1399 * recog.c (asm_operand_ok): Likewise.
1400 (preprocess_constraints, constrain_operands): Likewise.
1401 * regclass.c (record_reg_classes): Likewise.
1402 * reload.c (find_reloads): Likewise.
1403 * reload1.c (maybe_fix_stack_asms): Likewise.
1404 (reload_cse_simplify_operands): Likewise.
1405 * stmt.c (expand_asm_operands): Likewise.
1406
1407 * md.texi: Update constraints documentation.
1408 * tm.texi (EXTRA_CONSTRAINT): Update.
1409
1410 2000-08-28 Daniel Berlin <dberlin@redhat.com>
1411
1412 * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
1413 (print_die): If we don't know the offset of the
1414 target die, try the symbol. Add a trailing newline.
1415 (reverse_all_dies): New fn.
1416 (dwarf2out_finish): Call it.
1417 (break_out_includes): Reorganize for clarity.
1418 (add_sibling_attributes): Don't call reverse_die_lists.
1419 (output_comp_unit): Rename from output_comdat_comp_unit. Use for
1420 primary CU, too.
1421 * flags.h: Add flag_eliminate_dwarf2_dups.
1422 * toplev.c (f_options): Support -feliminate-dwarf2-dups.
1423
1424 2000-08-28 Jason Merrill <jason@redhat.com>
1425
1426 * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
1427 * dwarf2out.c: #include "md5.h".
1428 (DIE_LABEL_PREFIX): New macro.
1429 (dw_val_struct): Add 'external' flag to val_die_ref.
1430 (add_AT_die_ref, AT_ref): Adjust.
1431 (AT_ref_external, set_AT_ref_external): New fns.
1432 (build_abbrev_table): Call set_AT_ref_external.
1433 (value_format): Call AT_ref_external.
1434 (die_struct): Add die_symbol field.
1435 (new_die): Clear it.
1436 (dwarf_tag_name): Handle BINCL/EINCL.
1437 (dwarf2out_start_source_file): Add BINCL DIE.
1438 (dwarf2out_end_source_file): Add EINCL DIE.
1439 (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
1440 (loc_checksum, attr_checksum, die_checksum): New fns.
1441 (is_type_die, is_comdat_die, is_symbol_die): New fns.
1442 (compute_section_prefix, assign_symbol_names): New fns.
1443 (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
1444 (output_die): Call output_die_symbol and AT_ref_external.
1445 (output_comdat_comp_unit): New fn, split out from...
1446 (dwarf2out_finish): ...here. Also call add_sibling_attributes for
1447 secondary CUs.
1448 (output_pubnames, output_aranges): Abort if we see entries from
1449 secondary CUs.
1450 * toplev.h: Declare file_name_nondirectory.
1451 * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
1452 (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
1453 (debug_start_source_file): Call dwarf2out_start_source_file
1454 regardless of debug verbosity.
1455 (debug_end_source_file): Similarly.
1456 * tree.h: Declare clean_symbol_name.
1457 * tree.c (clean_symbol_name): Split out from...
1458 (get_file_function_name_long): ...here.
1459
1460 * dwarf2out.c (new_loc_descr): Use calloc.
1461 (splice_child_die): Remove the die from the right parent.
1462 (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
1463
1464 Mon Aug 28 19:02:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1465
1466 * toplev.c (decode_g_option): Don't give warning for unknown -g
1467 option; return 0 instead.
1468 (main): If -g option is not recognized by front end or
1469 language-independent code, give warning.
1470
1471 2000-08-28 Greg McGary <greg@mcgary.org>
1472
1473 * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
1474 * config/i386/i386.c (ix86_expand_compare): Remove `static'.
1475 * config/i386/i386.md (trap, conditional_trap): New insn & expand.
1476
1477 2000-08-27 Greg McGary <greg@mcgary.org>
1478
1479 * cpplex.c (parse_string): Don't look for backslash
1480 before first char in `namebuf'.
1481 * loop.c (strength_reduce): Skip NOTEs.
1482
1483 2000-08-27 Jason Merrill <jason@redhat.com>
1484
1485 * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
1486 DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or
1487 TREE_ASM_WRITTEN, either.
1488 (finish_decl): Adjust.
1489
1490 2000-08-28 Philipp Thomas <pthomas@suse.de>
1491
1492 * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
1493 they have been incorporated into the gettext CVS. Change the text to
1494 reflect the current status of NLS. Add instructions for accessing
1495 the gettext CVS and add the patch from Martin v. Loewis.
1496
1497 2000-08-27 Geoff Keating <geoffk@cygnus.com>
1498
1499 * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
1500 by using gen_lowpart_common.
1501 (movdi_internal64+6): Likewise.
1502
1503 2000-08-26 Alexandre Oliva <aoliva@redhat.com>
1504
1505 * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
1506 Document.
1507
1508 * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
1509 numbers to the ranges used by GDB.
1510
1511 2000-08-25 Richard Henderson <rth@cygnus.com>
1512
1513 * config/ia64/ia64.h (struct machine_function): Add n_varargs.
1514 * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
1515 (ia64_expand_prologue): Likewise.
1516 (ia64_setup_incoming_varargs): Set it. Properly skip the current
1517 argument for stdargs.
1518
1519 2000-08-25 Jason Merrill <jason@redhat.com>
1520
1521 * integrate.c (expand_inline_function): Pull out the original decl.
1522
1523 2000-08-25 Jim Wilson <wilson@cygnus.com>
1524
1525 * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
1526
1527 * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
1528
1529 2000-08-25 Greg McGary <greg@mcgary.org>
1530
1531 * flow.c (dump_edge_info): Use ARRAY_SIZE.
1532 * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
1533
1534 2000-08-25 Richard Earnshaw <rearnsha@arm.com>
1535
1536 * arm.h (STRUCT_VALUE): Define to 0, not NULL.
1537
1538 Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com)
1539
1540 * i386.c (ix86_find_base_term): New.
1541 * i386-protos.h (ix86_find_base_term): Prototype.
1542 * i386.h (FIND_BASE_TERM): Define.
1543 * alias.c (find_base_term): Use it.
1544 * tm.texi (FIND_BASE_TERM): Document it.
1545
1546 * alias.c (true_dependence, write_dependence_p): Unchanging
1547 memory can't conflict with non-unchanging memory.
1548
1549 * alias.c (memrefs_conflict_p): A BLKmode reference
1550 to a symbol (or CONST_INT address) always conflicts
1551 with a reference to another symbol.
1552
1553 2000-08-25 Joseph S. Myers <jsm28@cam.ac.uk>
1554
1555 * c-common.c (time_char_table): Don't allow width and flags with
1556 "z" format.
1557
1558 2000-08-25 Jakub Jelinek <jakub@redhat.com>
1559
1560 * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
1561 way as LT and LTU when the second operand has 0 in low word.
1562
1563 2000-08-26 Michael Hayes <mhayes@cygnus.com>
1564
1565 * basic-block.h (struct loop): Rename `exits' field to
1566 `exit_edges'. Add `entry_edges' and `num_entries' fields.
1567
1568 * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
1569 (flow_loop_entry_edges_find): Add.
1570 (flow_edge_list_print): Rename from flow_exits_print.
1571 (flow_loops_find): Call flow_loop_entry_edges_find.
1572 (flow_loop_dump): Dump entry_edges list.
1573 (flow_loops_free): Free entry_edges.
1574
1575 2000-08-26 Michael Hayes <mhayes@cygnus.com>
1576
1577 * loop.c (loop_dump_aux, debug_loop): New functions.
1578 (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
1579
1580 * flow.c (flow_loops_dump): Add callback parameter.
1581 (flow_loop_dump): Add callback parameter and call it. Move
1582 loop note debugging code to loop_dump_aux.
1583
1584 * basic-block.h (flow_loop_dump): Add callback parameter
1585 (flow_loops_dump): Likewise.
1586
1587 * toplev.c (rest_of_compilation): Add NULL callback function pointer
1588 to call to flow_loops_dump.
1589
1590 2000-08-26 Michael Hayes <mhayes@cygnus.com>
1591
1592 * loop.c (count_loop_regs_set): Replace start and end arguments
1593 with loop argument. All callers udated.
1594
1595 2000-08-26 Michael Hayes <mhayes@cygnus.com>
1596
1597 * loop.c (constant_high_bytes): Delete.
1598
1599 2000-08-26 Michael Hayes <mhayes@cygnus.com>
1600
1601 * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
1602 and NOTE_INSN_LOOP_VTOP to...
1603 (find_and_verify_loops) ...here.
1604
1605 Fri Aug 25 04:21:13 2000 Alexandre Oliva <aoliva@redhat.com>
1606
1607 * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
1608 (fini_dummy, init_dummy): Use it.
1609
1610 Fri 25-Aug-2000 08:03:27 BST Neil Booth <NeilB@earthling.net>
1611
1612 * cpplex.c (is_macro_disabled): Caller has already checked
1613 that we're not a preprocessed file.
1614
1615 2000-08-24 Mark Mitchell <mark@codesourcery.com>
1616
1617 * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
1618 (c-iterate.o): Remove target.
1619 * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
1620 * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
1621 (finish_decl): Don't handle iterators.
1622 (grokdeclarator): Likewise.
1623 * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
1624 * gcc/c-gperf.h: Regenerated.
1625 * gcc/c-iterate.c: Removed.
1626 * gcc/c-lex.c (init_lex): Don't handle iterators.
1627 * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
1628 (compstmt_primary_start): Remove push_iterator_stack call.
1629 (stmt): Don't allow iterator statements. Replace iterator_expand
1630 with expand_expr_stmt.
1631 (all_iter_stmt): Remove.
1632 (all_iter_stmt_simple): Likewise.
1633 (all_iter_stmt_with_decl): Likewise.
1634 * gcc/c-tree.h (ITERATOR_P): Remove.
1635 (ITERATOR_BOUND_P): Likewise.
1636 (init_iterators): Remove declaration.
1637 (iterator_expand): Likewise.
1638 (iterator_for_loop_start): Likewise.
1639 (iterator_for_loop_end): Likewise.
1640 (iterator_for_loop_record): Likewise.
1641 (push_iterator_stack): Likewise.
1642 (pop_iterator_stack): Likewise.
1643 * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
1644 (readonly_warning): Likewise.
1645 * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
1646
1647 2000-08-24 Jim Wilson <wilson@cygnus.com>
1648
1649 * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
1650 Copy type in a TYPE_DECL, just like pushdecl does.
1651
1652 2000-08-24 Richard Henderson <rth@cygnus.com>
1653
1654 * toplev.c (main): Enable flag_reorder_blocks at -O2.
1655
1656 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
1657
1658 * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
1659 asked for one page, allocate GGC_QUIRE_SIZE of them and put
1660 the extras on the free list.
1661 (release_pages): Clean up.
1662 (ggc_set_mark): Don't adjust G.allocated here...
1663 (sweep_pages): ... do it here.
1664
1665 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
1666
1667 * cppfiles.c (read_include_file): Rearrange initializations.
1668
1669 2000-08-24 Richard Henderson <rth@cygnus.com>
1670
1671 * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
1672
1673 * config/ia64/ia64-protos.h: Update.
1674 * config/ia64/ia64.c (gr_register_operand): New.
1675 (fr_register_operand, grfr_register_operand): New.
1676 (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
1677 (grfr_reg_or_8bit_operand): New.
1678 (gr_reg_or_0_operand): Rename from reg_or_0_operand and
1679 use gr_register_operand.
1680 (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
1681 (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
1682 (gr_reg_or_8bit_and_adjusted_operand): Likewise.
1683 (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
1684 (fr_reg_or_fp01_operand): Likewise.
1685 (not_postinc_memory_operand): New.
1686 (ia64_split_timode): Remove unused variables.
1687 (rtx_needs_barrier): Check arguments to cmpxchg.
1688 (builtin_description): Remove.
1689 (bdesc_2argsi, bdesc_2argdi): Remove.
1690 (ia64_init_builtins): Declare all builtins directly.
1691 (ia64_expand_fetch_and_op): Rewrite to be called from
1692 ia64_expand_builtin directly. Use expand_binop and co.
1693 (ia64_expand_op_and_fetch): Likewise.
1694 (ia64_expand_compare_and_swap): Likewise.
1695 (ia64_expand_binop_builtin): Remove.
1696 (ia64_expand_lock_test_and_set): New.
1697 (ia64_expand_lock_release): New.
1698 (ia64_expand_builtin): Use them.
1699 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
1700 (EXTRA_CONSTRAINT): Use it.
1701 (PREDICATE_CODES): Update.
1702 * config/ia64/ia64.md (*): Use gr_register_operand and co.
1703 (mf): Indicate that we set memory as well as use it.
1704 (fetchadd_acq_si): Show memory being modified as well.
1705 (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
1706 (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
1707 (lock_test_and_set_si, lock_test_and_set_di): Remove.
1708 (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
1709 (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
1710 (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
1711 (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
1712 (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
1713 (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
1714 (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
1715 (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
1716 * config/ia64/ia64intrin.h (*): Cast result to the appropriate
1717 return type. Pretty print definitions.
1718
1719 2000-08-24 Jim Wilson <wilson@cygnus.com>
1720
1721 * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
1722 we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
1723
1724 2000-08-24 Jason Merrill <jason@redhat.com>
1725
1726 * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
1727 AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
1728 (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
1729 get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
1730
1731 2000-08-24 Greg McGary <greg@mcgary.org>
1732
1733 * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
1734 and extendtab within their proper array boundaries.
1735 * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
1736 for the entire array.
1737
1738 * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
1739 * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
1740 * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
1741 * config/fr30/fr30.c (fr30_print_operand): Likewise.
1742 * config/i386/dgux.c (output_options): Likewise.
1743 * config/i386/dgux.h (ASM_FILE_START): Likewise.
1744 * config/m88k/m88k.c (output_options): Likewise.
1745 * config/m88k/m88k.h (ASM_FILE_START): Likewise.
1746 * config/mcore/mcore.c (mcore_output_inline_const_forced,
1747 layout_mcore_frame, handle_structs_in_regs): Likewise.
1748 * config/mips/mips.c (output_block_move): Likewise.
1749 * config/rs6000/rs6000.c (rs6000_override_options,
1750 rs6000_file_start): Likewise.
1751 * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
1752 * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
1753 * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
1754 * builtins.c (expand_builtin_setjmp): Likewise.
1755 * expr.c (safe_from_p): Likewise.
1756 * flow.c (life_analysis): Likewise.
1757 * fold-const.c (size_int_type_wide): Likewise.
1758 * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
1759 * genattrtab.c (make_length_attrs): Likewise.
1760 * genopinit.c (gen_insn): Likewise.
1761 * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
1762 * global.c (global_alloc): Likewise.
1763 * local-alloc.c (find_free_reg): Likewise.
1764 * mips-tdump.c (print_symbol): Likewise.
1765 * mips-tfile.c (parse_def, parse_input): Likewise.
1766 * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
1767 * stmt.c (expand_nl_goto_receiver): Likewise.
1768 * stor-layout.c (set_sizetype): Likewise.
1769 * varasm.c (decode_reg_name): Likewise.
1770 * toplev.c (decode_f_option, decode_W_option,
1771 set_target_switch, print_switch_values): Likewise.
1772 (NUM_ELEM): Remove macro.
1773 (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
1774
1775 2000-08-24 Greg McGary <greg@mcgary.org>
1776
1777 * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
1778 (MAIN_NAME_P, main_identifier_node): New macros.
1779 * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
1780 * c-decl.c (start_decl, grokdeclarator, start_function,
1781 store_parm_decls, finish_function): Use MAIN_NAME_P.
1782 * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
1783 * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
1784 * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
1785 * config/pdp11/pdp11.c (output_function_prologue): Likewise.
1786
1787 2000-08-24 Greg McGary <greg@mcgary.org>
1788
1789 * cppfiles.c (actual_directory): Don't write beyond `dir'
1790 when it contains "".
1791 * real.c (asctoeg): Stay within bounds of etens[][].
1792
1793 2000-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1794
1795 * dependence.c (dependence_string, direction_string,
1796 dump_one_node, dump_node_dependence): Hide unused identifiers.
1797 (get_low_bound, normalize_coefficients): Match definition to
1798 static prototype.
1799 (get_one_coefficient): Initialize variables `value0_is_idx' and
1800 `value1_is_idx'.
1801 (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
1802 (ziv_test): Delete variable `idx', use parameter `sub' instead.
1803 (direction_merge): Avoid automatic aggregate initialization.
1804 (have_dependence_p): Use `src' not `dest' to set `src_idx'.
1805 Initialize variables `dest_idx' and `src_idx'.
1806 (end_dependence_analysis): Avoid C89 style function definition.
1807
1808 2000-08-24 Joseph S. Myers <jsm28@cam.ac.uk>
1809
1810 * c-common.c (time_char_table): Don't allow width with %F.
1811 (check_format_info): Don't allow "Z" length with scanf.
1812
1813 2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
1814
1815 * diagnostic.c (finish_diagnostic): Define.
1816 (output_do_printf): Use wrap_text instead of output_add_string.
1817 (default_print_error_function): Avoid embedded '\n'.
1818
1819 * diagnostic.h (flush_diagnostic_buffer): Declare.
1820
1821 2000-08-23 Alexandre Oliva <aoliva@redhat.com>
1822
1823 * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
1824
1825 2000-08-23 Hans-Peter Nilsson <hp@axis.com>
1826
1827 * Makefile.in (GCC_PASSES): Add specs.
1828
1829 2000-08-23 Jim Wilson <wilson@cygnus.com>
1830
1831 * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
1832 * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
1833 EHANDLER nor UHANDLER bit is set.
1834 (__get_except_table): Likewise.
1835
1836 2000-08-23 Nick Clifton <nickc@redhat.com>
1837
1838 * config/arm/lib1funcs.asm: Replace upper case condition codes
1839 with lower case versions.
1840
1841 * config/arm/arm.h (STRUCT_VALUE): Define.
1842 (STRUCT_VALUE_REGNUM): Delete.
1843
1844 2000-08-23 Zack Weinberg <zack@wolery.cumb.org>
1845
1846 * cpphash.h (IN_I): New flag for directive table.
1847 * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
1848 #pragma with IN_I.
1849 (_cpp_check_directive): If -fpreprocessed, execute directives
1850 marked with IN_I. Issue no warnings in this case.
1851 * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
1852
1853 2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk>
1854
1855 * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
1856 %u.
1857 (check_format_info): Support printf 'I' flag; warn about it with
1858 -pedantic.
1859
1860 2000-08-23 Richard Earnshaw (rearnsha@arm.com)
1861
1862 * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
1863 barrier can't be ignored by the alias analysis code.
1864
1865 2000-08-12 Eli Zaretskii <eliz@is.elta.co.il>
1866
1867 * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
1868 works inside fixincl.
1869
1870 Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com>
1871
1872 * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
1873 simplify_relational_operation() unless both operands are of
1874 VOIDmode.
1875 * cse.c (fold_rtx): Likewise.
1876
1877 Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com)
1878
1879 * rtlanal.c (rtx_unstable_p): The pic register is stable
1880 (within one function) and the actual rtx should be used
1881 when checking the registers.
1882 (rtx_addr_can_trap_p): Pic memory addresses can't trap.
1883
1884 * alias.c (true_dependence, write_dependence_p): Fix
1885 bug in previous patch.
1886
1887 * i386.c (ix86_GOT_alias_set): New.
1888 (legitimize_pic_address): Use it.
1889
1890 * rtlanal.c (rtx_unstable_p): An unchanging MEM is
1891 only stable if its address is stable.
1892 (rtx_varies_p): An unchanging MEM can't vary if
1893 its address doesn't vary.
1894
1895 2000-08-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1896
1897 * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
1898
1899 2000-08-22 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1900
1901 * vax.h (ASM_SPEC): Pass `-J' to assembler.
1902 * x-vax-gcc: New file for bootstrapping with gcc.
1903 * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
1904 * configure.in: Use x-vax-gcc with gcc.
1905 * configure: Rebuilt.
1906
1907 Tue Aug 22 21:21:05 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1908
1909 * toplev.c (rest_of_compilation): Rebuild label notes after
1910 post-reload splitting pass if new labels have been created.
1911
1912 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
1913
1914 * diagnostic.h (output_buffer_state): New macro.
1915 * diagnostic.c (diagnostic_for_decl, sorry,
1916 default_print_error_function, output_do_verbatim,
1917 report_diagnostic, report_problematic_module): Use it.
1918 (wrap_text): Tweak.
1919 (output_format): Use wrap_text instead of maybe_wrap_text.
1920
1921 2000-08-22 Nick Clifton <nickc@redhat.com>
1922
1923 * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
1924 Common code for ARM divide and modulus functions.
1925 (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
1926 ARM_DIV_MOD_BODY.
1927 (FUNC_END): New macro: Common code at the end of the division and
1928 modulo functions.
1929 (THUMB_FUNCTION_START): New macro: Common code at the start of
1930 Thumb functions.
1931 (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
1932
1933 Tue Aug 22 20:34:52 2000 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1934
1935 * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
1936
1937 * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
1938 sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
1939 const0_rtx.
1940
1941 2000-08-22 Nick Clifton <nickc@redhat.com>
1942
1943 * config/arm/lib1funcs.asm (__umodsi3): Before performing any
1944 restorative additions, test for bottom bits of IP being set,
1945 rather than relying upon the RORs not matching.
1946 (__modsi3): Ditto.
1947
1948 2000-08-22 David Edelsohn <edelsohn@gnu.org>
1949
1950 * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
1951 text_section() as appropriate instead of emitting text csect
1952 pseudo-op directly.
1953 (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
1954 (UNIQUE_SECTION): Define macro.
1955 (ASM_OUTPUT_SECTION_NAME): Define macro.
1956 * rs6000.c (rs6000_override_options): Disable -ffunction-sections
1957 on AIX if debugging and -fdata-sections always.
1958
1959 2000-08-22 Steven King <sxking@uswest.net>
1960
1961 * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
1962 machinery.
1963 (LDBL_MAX): Same here.
1964
1965 2000-08-22 Richard Henderson <rth@cygnus.com>
1966
1967 * flow.c (tidy_fallthru_edge): Update b->end properly.
1968
1969 2000-08-22 Stan Cox <scox@redhat.com>
1970
1971 * Makefile.in (OBJS): Add dependence.o.
1972 * dependence.c: New file.
1973
1974 2000-08-22 Alexandre Oliva <aoliva@redhat.com>, John David Anglin <dave.anglin@nrc.ca>
1975
1976 * calls.c (check_sibcall_argument_overlap_1): Adjust for
1977 ARGS_GROW_DOWNWARD.
1978 (check_sibcall_argument_overlap): Likewise.
1979
1980 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
1981
1982 * invoke.texi (SH Options): Document -m4-nofpu,
1983 -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
1984 -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
1985
1986 2000-08-22 Joseph S. Myers <jsm28@cam.ac.uk>
1987
1988 * c-common.c (check_format_info): Give the 'some locales' warning
1989 for strftime %Ey rather than the unconditional 'only last 2 digits
1990 of year' one.
1991
1992 2000-08-22 Richard Henderson <rth@cygnus.com>
1993
1994 * alias.c (init_alias_analysis): Do not register
1995 struct_value_incoming_rtx or static_chain_rtx as pointing
1996 to stack memory.
1997
1998 Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com)
1999
2000 * protoize.c (munge_compile_params): Fix typo and formatting buglets.
2001
2002 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
2003
2004 * diagnostic.h (report_problematic_module): Declare.
2005 * diagnostic.c (report_problematic_module): New function.
2006 (report_error_function): Tweak.
2007
2008 Tue Aug 22 02:31:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2009
2010 * stmt.c (expand_goto_internal, fixup_gotos): Only check
2011 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
2012
2013 2000-08-21 Richard Henderson <rth@cygnus.com>
2014
2015 * flow.c (calculate_global_regs_live): Mark frame pointer live
2016 everywhere before reload.
2017
2018 2000-08-21 Jim Wilson <wilson@cygnus.com>
2019
2020 * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
2021 INTEL_EXTENDED_IEEE_FORMAT.
2022 (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally
2023 clear last two bytes of output FP value.
2024
2025 2000-08-21 Graham Stott <grahams@cygnus.co.uk>
2026
2027 * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
2028
2029 2000-08-21 Jakub Jelinek <jakub@redhat.com>
2030
2031 * unroll.c (loop_find_equiv_value): If ret is modified between
2032 insn and loop_start, ret might not be equivalent to reg.
2033
2034 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
2035
2036 * c-common.c (init_dollar_format_checking,
2037 maybe_read_dollar_number, finish_dollar_format_checking): New
2038 functions.
2039 (dollar_arguments_used, dollar_arguments_count,
2040 dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
2041 New variables.
2042 (check_format_info): Support $ formats for scanf and printf width
2043 and precision. Always increment format_chars to advance past the
2044 '*' of precision, not just when the format parameters are
2045 available to check.
2046
2047 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2048
2049 * mips.c (block_move_loop, expand_block_move,
2050 function_arg_partial_nregs, save_restore_insns, function_prologue,
2051 mips_expand_prologue, RA_MASK): Avoid using the `U' integer
2052 constant suffix.
2053 (function_arg_advance, function_arg): Match argument to format
2054 specifier `%p'.
2055
2056 2000-08-21 Nix <nix@esperi.demon.co.uk>
2057
2058 * gcc.c (do_spec_1): Implement %j spec flag.
2059 Remove dead comment.
2060
2061 * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
2062 * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
2063 * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
2064 * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
2065
2066 * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
2067 writable) instead of hardcoded value.
2068
2069 * toplev.c (compile_file): Output to a file even if -fsyntax-only.
2070
2071 * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
2072 MKTEMP_EACH_FILE.
2073
2074 * gcc.c (cc1_options): Do not process -o or run the assembler if
2075 -fsyntax-only.
2076 * objc/lang-spec.h: Likewise.
2077
2078 2000-08-21 Eli Zaretskii <eliz@is.elta.co.il>
2079
2080 * fixinc/fixincl.c (fix_with_system): Pipe the output of
2081 "external" fixes through `cat', to avoid truncating the input
2082 file by redirection.
2083
2084 2000-08-21 Jakub Jelinek <jakub@redhat.com>
2085
2086 * config/i386/i386.md (lea_general_1): Copy insn condition to split
2087 condition.
2088 (lea_general_2, lea_general_3): Likewise.
2089
2090 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2091
2092 * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
2093 warnings to user code.
2094
2095 * c-lex.c (readescape, yylex): Likewise.
2096
2097 * c-typeck.c (store_init_value, process_init_element): Likewise
2098 (c_expand_start_case): Format.
2099
2100 2000-08-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
2101
2102 * mips/linux.h (LINK_SPEC): Use %(endian_spec).
2103
2104 * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
2105 and linker_endian_spec to endian_spec.
2106 (ENDIAN_SPEC): Add %{EB} and %{EL}.
2107 (LINK_SPEC): Remove %{EB} and %{EL}.
2108 (ASM_SPEC): Likewise. Use %(endian_spec).
2109
2110 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
2111
2112 * c-tree.h (flag_hosted): Move declaration from here...
2113 * c-common.h (flag_hosted): ... to here.
2114 (flag_noniso_default_format_attributes): New declaration.
2115 * c-decl.c (flag_noniso_default_format_attributes): New variable.
2116 (c_decode_option): Set it appropriately for options choosing
2117 language standard variant.
2118 * c-common.c (init_function_format_info): Only provide default
2119 format attributes if flag_hosted. Only provide the gettext
2120 formats if flag_noniso_default_format_attributes. Update
2121 comments.
2122 (check_format_info): Disable treatment of %a as a scanf flag in
2123 C99 mode.
2124
2125 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
2126
2127 * c-common.c (scan_char_table): Add 'w' to flags for all formats
2128 except 'n'.
2129 (check_format_info): Set 'wide' for scanf format widths. Warn for
2130 a zero scanf width. Make the check for writing into a constant
2131 object at the first level of indirection; at later levels, warn if
2132 any type qualifiers are encountered.
2133
2134 Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com)
2135
2136 * reload.c (reload_inner_reg_of_subreg): New function broken out of
2137 push_reload.
2138 (push_reload): Use reload_inner_reg_of_subreg.
2139 (combine_reloads): Do not combine reloads if the input reload
2140 is a SUBREG in which the inner part will need reloading.
2141
2142 * global.c (global_alloc): Avoid passing dumpfile argument to
2143 reload routines.
2144 * toplev.c (rest_of_compilation): Likewise.
2145 * reload.h (reload): Remove dumpfile argument. Callers changed.
2146 (debug_reload, debug_reload_to_stream): Move prototypes here.
2147 * rtl.h (reload): Remove dumpfile argument.
2148 * reload.c (debug_reload): Remove prototype.
2149 (debug_reload_to_stream): Likewise.
2150 * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
2151 instead.
2152
2153 2000-08-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
2154
2155 * diagnostic.c (context_as_prefix): Export.
2156 (need_error_newline): Remove.
2157 (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
2158 (error_module_changed, record_last_error_module,
2159 error_function_changed, record_last_error_function): New functions.
2160 (initialize_diagnostics): Default intialize
2161 lang_diagnostic_starter, lang_diagnostic_finalizer.
2162 (init_output_buffer): Tweak.
2163 (file_name_as_prefix): New function.
2164 (announce_function, default_print_error_function,
2165 report_error_function, set_diagnostic_context): Tweak.
2166
2167 2000-08-21 Richard Earnshaw <rearnsha@arm.com>
2168
2169 * flow.c (init_propagate_block_info): Handle SUBREG in a jump
2170 condition expression.
2171
2172 2000-08-20 Richard Henderson <rth@cygnus.com>
2173
2174 * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
2175
2176 2000-08-20 Zack Weinberg <zack@wolery.cumb.org>
2177
2178 * cppinit.c (cpp_init): Set global flag when called.
2179 (cpp_reader_init): Bomb out if cpp_init hasn't been called.
2180
2181 Sun Aug 20 01:41:35 2000 Dennis Chernoivanov <cdi@sparc.spb.su>
2182
2183 * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
2184 before `process_directive' so that newlines won't be missed
2185 for directives.
2186 (cpp_printf): Increment `print->lineno' when newline is emitted.
2187
2188 * cppmain.c (cb_ident): Likewise.
2189 (cb_define): Likewise.
2190 (cb_undef): Likewise.
2191 (cb_include): Likewise.
2192 (cb_def_pragma): Likewise.
2193 (dump_macros_helper): Likewise.
2194
2195 2000-08-20 Richard Henderson <rth@cygnus.com>
2196
2197 * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
2198 assigned before a loop.
2199
2200 * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
2201 (ashrsi3, lshrsi3): Likewise.
2202
2203 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
2204
2205 * c-lang.c: #include diagnostic.h
2206 (c_tree_printer): New function.
2207 (lang_init): Initialize lang_printer.
2208
2209 * Makefile.in (c-lang.o): Depends on diagnostic.h
2210
2211 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
2212
2213 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
2214
2215 * diagnostic.c (default_diagnostic_starter,
2216 default_diagnostic_finalizer): New functions.
2217 (diagnostic_for_asm, diagnostic_for_decl): Tweak.
2218 (pedwarn, pedwarn_with_file_and_line, error,
2219 error_with_file_and_line, fatal, warning,
2220 warning_with_file_and_line): Adjust call to report_diagnostic.
2221 (report_diagnostic): Rework.
2222 (set_diagnostic_context): New function.
2223
2224 * diagnostic.h (struct diagnostic_context): New data structure.
2225 (diagnostic_message, diagnostic_argument_list,
2226 diagnostic_file_location, diagnostic_line_location,
2227 diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
2228 diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
2229 (set_diagnostic_context): Declare.
2230 (report_diagnostic): Change prototype.
2231
2232 Sun 20-Aug-2000 09:25:45 BST Neil Booth <NeilB@earthling.net>
2233
2234 * fix-header.c (main): Initialize cpplib.
2235
2236 2000-08-19 Michael Meissner <meissner@redhat.com>
2237
2238 * ifcvt.c (find_if_block): Do not assume that a THEN block has any
2239 instructions in it before checking for indirect jumps.
2240
2241 * ifcvt.c (find_if_block): Do not consider a THEN block that ends
2242 in a indirect jump as a potential for conditional execution.
2243
2244 * d30v.h (d30v_init_expanders): Don't declare here.
2245 * d30v-protos.h (d30v_init_expanders): Declare here with a valid
2246 prototype.
2247
2248 Sat 19-Aug-2000 21:11:45 BST Neil Booth <NeilB@earthling.net>
2249
2250 * cpp.texi: Add @section for assertions.
2251
2252 Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com)
2253
2254 * loop.c (scan_loop): Use CONST_CALL_P instead of
2255 checking for REG_LIBCALL / REG_RETVAL.
2256
2257 Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com)
2258
2259 * reload1.c (reload_as_needed): Accept dumpfile argument,
2260 pass it to emit_reload_insns.
2261 (emit_reload_insns): Add new dumpfile argument. If non-null
2262 then dump the reloads for each insn into the dumpfile.
2263 (reload): Pass dumpfile to reload_as_needed.
2264
2265 * invoke.texi: Clean up linux-gnu vs linux comments.
2266
2267 2000-08-19 Richard Henderson <rth@cygnus.com>
2268
2269 * config/ia64/ia64.c (reg_or_5bit_operand): New.
2270 (ia64_depz_field_mask): New.
2271 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
2272 (PREDICATE_CODES): Update.
2273 * config/ia64/ia64.md: Update commentary.
2274 (depz_internal): New.
2275 (ashlsi3): Implement directly.
2276 (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
2277 (ashldi3): Use shladd.
2278 * config/ia64/ia64-protos.h: Update.
2279
2280 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
2281
2282 * toplev.c (independent_decode_option): Always process -g.
2283 Remove third argument, now unused. Adjust caller to match.
2284
2285 2000-08-18 Richard Henderson <rth@cygnus.com>
2286
2287 * combine.c (make_compound_operation): Break after creating
2288 the extraction.
2289
2290 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
2291
2292 * cpplib.c (cpp_register_pragma_space): Just return if the
2293 namespace is already registered.
2294
2295 2000-08-18 Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton <nickc@redhat.com>
2296
2297 * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
2298 constant amount. Do not generate ROTL instruction.
2299
2300 Fri Aug 18 16:22:20 2000 Alexandre Oliva <aoliva@redhat.com>
2301
2302 * config/sh/elf.h: Do not include sh/sh.h.
2303 * config/sh/rtems.h: Likewise.
2304 * config/sh/rtemself.h: Do not include sh/elf.h.
2305 * configure.in: Get them included with `tm_file's.
2306 * configure: Rebuilt.
2307
2308 * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
2309 * config/sh/sh.c (fpscr_set_from_mem): Use them.
2310
2311 Fri Aug 18 14:23:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2312
2313 * stor-layout.c (compute_record_type): Don't use mode of single
2314 field as mode of record if not integer mode of same type.
2315
2316 * regmove.c (perhaps_ends_bb_p): New function.
2317 (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
2318 (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
2319 (fixup_match_1): Likewise.
2320 (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
2321 avoid signed/unsigned warnings.
2322
2323 * function.c (fixup_var_refs_1, case MEM): Update CODE after
2324 updating X.
2325
2326 Fri 18-Aug-2000 18:33:45 BST Neil Booth <NeilB@earthling.net>
2327
2328 * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
2329 (_cpp_trigraph_map): Declaration moved from cpplex.c
2330
2331 * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1
2332 instead of 256. Use consistent test for designated initializers.
2333 (cpp_init): Initialize trigraph_map.
2334 (initialize_standard_includes, parse_option): Use memcmp
2335 instead of strncmp.
2336
2337 * cpplex.c (init_trigraph_map): Remove.
2338 (trigraph_ok, trigraph_replace, lex_line): Refer to
2339 _cpp_trigraph_map.
2340
2341 * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
2342 (do_unassert): Remove unused "next" local.
2343
2344 * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
2345
2346 2000-08-18 Emmanuel Marty <emarty@suntech.fr>
2347
2348 * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
2349 insn.
2350
2351 2000-08-17 Richard Henderson <rth@cygnus.com>
2352
2353 * config/ia64/ia64.c (spill_restore_mem): Handle emitting
2354 the first insn in a sequence.
2355
2356 Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com)
2357
2358 * alias.c (true_dependence, write_dependence_p): A read
2359 involving a label_ref or the constant pool doesn't create
2360 a dependency.
2361
2362 * rtl.h (unchanging): Improve documentation.
2363
2364 2000-08-17 Rodney Brown <RodneyBrown@mynd.com>
2365
2366 * cse.c (insert_regs): Remove unused `regno'.
2367
2368 2000-08-17 Neil Booth <NeilB@earthling.net>
2369
2370 * (cppinit.c) merge_include_chains: Use remove_dup_dir,
2371 remove_dup_dirs. If qtail == brack, remove brack not
2372 qtail.
2373 (remove_dup_dir, remove_dup_dirs): New functions.
2374
2375 2000-08-17 Neil Booth <NeilB@earthling.net>
2376
2377 * cppinit.c (cpp_cleanup): Free include dir chains.
2378 * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
2379 (do_unassert): Free the assert with _cpp_free_definition.
2380 * cppmacro.c (_cpp_free_definition): Free memory allocated for
2381 assertions. Make the node a T_VOID node.
2382
2383 2000-08-17 Neil Booth <NeilB@earthling.net>
2384
2385 * cppinit.c (path_include, append_include_chain):
2386 Remove 2nd parameter (struct cpp_pending *).
2387 (path_include, initialize_standard_includes, cpp_handle_option):
2388 Update callers appropriately.
2389 (cpp_handle_option): Use pend.
2390
2391 2000-08-17 Neil Booth <NeilB@earthling.net>
2392
2393 * cppinit.c (sort_options): Remove, put functionality in
2394 cpp_init.
2395 (cpp_init): New.
2396 (initialize_builtins): Free memory.
2397 (cpp_start_read): Move init_IStable to cpp_init.
2398
2399 * cpplib.h (cpp_init): New prototype.
2400 * cppmain.c (main): Call cpp_init.
2401
2402 Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com)
2403
2404 * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
2405 (rtx_unstable_p, rtx_varies_p): Process vectors.
2406
2407 2000-08-16 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
2408
2409 * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all
2410 references to GLOBAL symbols. Use LOCAL where appropriate.
2411
2412 2000-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2413
2414 * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always
2415 use t-aix41 when host == target.
2416
2417 2000-08-16 Richard Henderson <rth@cygnus.com>
2418
2419 * reload.c (push_secondary_reload): Revert last change.
2420 If we use a reload_in/out pattern, make the when the same
2421 as the primary reload.
2422 (find_reloads): Likewise.
2423
2424 2000-08-16 Manfred Hollstein <manfredh@redhat.com>
2425
2426 * configure.in (libstdcxx-v3): Fix test.
2427 * configure: Regenerate.
2428
2429 Wed Aug 16 08:10:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2430
2431 * calls.c (calls_function_1, expand_call): Only test
2432 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
2433 * function.c (thread_prologue_and_epilogue_insns): Likewise.
2434
2435 2000-08-16 Richard Henderson <rth@cygnus.com>
2436
2437 * combine.c (simplify_shift_const): Revert previous two
2438 changes. If SHIFT_COUNT_TRUNCATED, crop the shift count
2439 before the main loop.
2440
2441 2000-08-15 Richard Henderson <rth@cygnus.com>
2442
2443 * combine.c (simplify_shift_const): Bound shift count when
2444 combining shifts.
2445
2446 Tue Aug 15 17:33:05 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2447
2448 * calls.c (ECF_SP_DEPRESSED): New macro.
2449 (calls_function_1): Treat calling sp-depressed function as alloca.
2450 (emit_call_1): Don't adjust SP if calling sp-depressed function.
2451 (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
2452 If sp-depressed, ensure block saves and restores SP.
2453 * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
2454 for INTEGER_TYPE.
2455 * function.c (keep_stack_depressed): New function.
2456 (thread_prologue_and_epilogue_insns): Call it.
2457 * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
2458 to print DECL_OFFSET_ALIGN.
2459 Print no-force-blk and transparent-union flags properly.
2460 * stmt.c (expand_goto_internal): Don't restore stack if last block
2461 and function returns with sp depressed.
2462 (fixup_gotos): Likewise.
2463 (save_stack_pointer): New function, from code in expand_decl.
2464 (expand_decl): Call new function.
2465 * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
2466 (TYPE_RETURNS_STACK_DEPRESSED): New macro.
2467 (save_stack_pointer): New declaration.
2468
2469 * diagnostic.c (fatal_function): New variable.
2470 (set_fatal_function): New function.
2471 (fatal): Call it.
2472 * diagnostic.h (set_fatal_function): New declaration.
2473
2474 2000-08-15 William Cohen <wcohen@redhat.com>
2475
2476 * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
2477 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
2478 (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
2479
2480 2000-08-15 Richard Henderson <rth@cygnus.com>
2481
2482 * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
2483
2484 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
2485
2486 * arm.c (arm_function_ok_for_sibcall): New function.
2487 * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
2488 * arm.md (call expanders): Don't check here for calls that can't
2489 be sibling calls.
2490
2491 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
2492
2493 * arm.md (splits generating cond_exec): Disable.
2494
2495 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
2496
2497 * arm/linux-elf.h (text_section): Delete declaration.
2498
2499 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
2500
2501 ARM support for unordered FP operations.
2502 * arm-protos.h (arm_comparison_operator): Declare.
2503 * arm.c (arm_comparison_operator): New function.
2504 (arm_select_cc_mode): Add unordered comparison codes.
2505 (get_arm_condition_code): Likewise.
2506 (arm_final_prescan_insn): Can't handle unordered jumps that can't
2507 be done in one insn.
2508 * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
2509 * arm.md (all uses of comparison_operator): Replace with
2510 arm_comparison_operator.
2511 (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
2512 expands.
2513 (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
2514 patterns.
2515
2516 Tue Aug 15 00:36:36 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
2517
2518 * gthr-posix.h: Conditionally include <sched.h>; include
2519 <config.h> from libobjc/.
2520
2521 2000-08-14 Richard Henderson <rth@cygnus.com>
2522
2523 * config/i386/i386.c (legitimize_pic_address): Use Pmode
2524 for all CONSTs.
2525
2526 2000-08-14 Richard Henderson <rth@cygnus.com>
2527
2528 * configure.in (ia64-*): Set float_format for i386 long double.
2529
2530 * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
2531 as we would for i386 XFmode.
2532 (PUT_REAL): Likewise.
2533 (endian, ereal_atof, real_value_truncate): Likewise.
2534 (ereal_isneg, toe64, etens, make_nan): Likewise.
2535 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
2536
2537 * config/ia64/ia64-protos.h: Update.
2538 * config/ia64/ia64.c (general_tfmode_operand): New.
2539 (destination_tfmode_operand): New.
2540 (tfreg_or_fp01_operand): New.
2541 (ia64_split_timode): New.
2542 (spill_tfmode_operand): New.
2543 (ia64_expand_prologue): Use TFmode not XFmode.
2544 (ia64_expand_epilogue): Likewise.
2545 (ia64_function_arg): Likewise.
2546 (ia64_function_arg_advance): Likewise.
2547 (ia64_return_in_memory): Likewise.
2548 (ia64_function_value): Likewise.
2549 (ia64_print_operand): Likewise.
2550 (ia64_register_move_cost): Set GR<->FR to 5.
2551 (ia64_secondary_reload_class): Get GR for TImode memory op.
2552 * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
2553 (ROUND_TYPE_ALIGN): Remove.
2554 (LONG_DOUBLE_TYPE_SIZE): Set to 128.
2555 (INTEL_EXTENDED_IEEE_FORMAT): Define.
2556 (HARD_REGNO_NREGS): Use TFmode, not XFmode.
2557 (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs.
2558 (MODES_TIEABLE_P): Use TFmode, not XFmode.
2559 (CLASS_MAX_NREGS): Likewise.
2560 (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
2561 (PREDICATE_CODES): Update.
2562 * config/ia64/ia64.md (movti): New.
2563 (movti_internal): Use a clobber for memory alternatives.
2564 (reload_inti, reload_outti): New.
2565 (movsfcc_astep): Predicate properly.
2566 (movdfcc_astep): Likewise.
2567 (movxf): Remove.
2568 (movtf): New.
2569 (extendsftf2, extenddftf2): New.
2570 (trunctfsf2, trunctfdf2): New.
2571 (floatditf2, fix_trunctfdi2): New.
2572 (floatunsditf2, fixuns_trunctfdi2): New.
2573 (addtf3, subtf3, multf3, abstf2): New.
2574 (negtf2, nabstf2, mintf3, maxtf3): New.
2575 (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
2576 (cmptf): New.
2577 (fr_spill): Use TFmode, not XFmode.
2578 (fr_restore): Likewise.
2579 * config/ia64/lib1funcs.asm (__divtf3): New.
2580 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
2581
2582 2000-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2583
2584 * cse.c (fold_rtx): Avoid empty body in an if-statement.
2585
2586 * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
2587 `U' integer constant suffix.
2588
2589 * dwarf2out.c (add_subscript_info): Avoid empty body in an
2590 else-statement.
2591
2592 * sparc/sol2.h (__enable_execute_stack): Prototype.
2593
2594 2000-08-14 David Edelsohn <edelsohn@gnu.org>
2595
2596 * collect2.c: Remove use of AIX import file.
2597
2598 * longlong.h: Test ARCH_PWR not ARCH_POWER.
2599
2600 * rs6000.c (print_operand, case 'E'): Add else.
2601
2602 2000-08-14 Richard Henderson <rth@cygnus.com>
2603
2604 * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
2605 (movdi_symbolic): New.
2606
2607 2000-08-14 Jim Wilson <wilson@cygnus.com>
2608
2609 * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
2610 to GNU as. For Intel as, pass -M const_gp and -M no_plabel.
2611 * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
2612 to GNU as.
2613
2614 2000-08-14 Richard Henderson <rth@cygnus.com>
2615
2616 * expr.c (emit_group_load): Don't force constants into registers.
2617 Special case source already in the correct mode.
2618
2619 2000-08-14 Zack Weinberg <zack@wolery.cumb.org>
2620
2621 * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
2622 * fixinc/inclhack.def: Likewise.
2623 * fixinc/mkfixinc.sh: Likewise.
2624 * configure: Regenerate.
2625 * fixinc/fixincl.x: Regenerate.
2626 * install.texi: Document equivalence of linux and linux-gnu.
2627
2628 Mon Aug 14 18:51:44 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2629
2630 * cse.c (insert_regs): Also in REG case: When finding an invalid
2631 value, and we make a new quantity, make sure that it won't be
2632 mistaken by for a valid one by mention_regs.
2633
2634 2000-08-13 Ralf Gütlein <ralf.guetlein@aranea.de>
2635
2636 * h8300.md: Remove obsolete peepholes.
2637
2638 2000-08-13 Kazu Hirata <kazu@hxi.com>
2639
2640 * invoke.texi (H8/300 Options): Fix typos.
2641 * config/h8300.c: Fix formatting.
2642 * config/h8300.h: Fix comment typos.
2643 (OVERRIDE_OPTIONS): Fix formatting.
2644
2645 * function.c: Fix formatting.
2646
2647 * cse.c: Fix formatting.
2648
2649 2000-08-13 Geoff Keating <geoffk@cygnus.com>
2650
2651 * flow.c (attempt_auto_inc): Remove unused variable `bb'.
2652 (attempt_auto_inc): Suppress parentheses warning.
2653 * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
2654 * loop.c (load_mems): Remove `u' suffix in two places.
2655 * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
2656 hex constants.
2657 * config/rs6000/rs6000.h: Likewise.
2658 * config/rs6000/sol-c0.c: Prototype some functions. Remove the
2659 __eabi dummy routine.
2660 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
2661 variable `buf_ptr'.
2662
2663 * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
2664 not put stuff in .sdata unnecessarily.
2665 (rs6000_unique_section): New function.
2666 * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
2667 * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
2668
2669 * c-typeck.c (build_array_ref): Don't complain about non-lvalue
2670 arrays in C99. Don't try to look at DECL_REGISTER of a
2671 COMPONENT_REF. Don't complain twice about the same error.
2672
2673 * fixinc/inclhack.def (aix_pthread): New fix.
2674 (aix_sysmachine): New fix.
2675 * fixinc/fixincl.x: Regenerate.
2676
2677 * expr.c (expand_expr): Call convert_modes when turning a large
2678 multiply into a small one.
2679
2680 2000-08-12 Geoff Keating <geoffk@cygnus.com>
2681
2682 * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
2683 the tree structure an exponent rather than an explicit alignment
2684 so it doesn't overflow.
2685 (SET_DECL_OFFSET_ALIGN): New macro.
2686 * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
2687 rather than DECL_OFFSET_ALIGN.
2688 (place_field): Likewise.
2689 * expmed.c (store_bit_field): Abort on align==0 to avoid
2690 antisocial machine behaviour.
2691
2692 2000-08-12 Richard Henderson <rth@cygnus.com>
2693
2694 * sibcall.c (uses_addressof): Accept both addressof and
2695 current_function_internal_arg_pointer inside a mem.
2696 (optimize_sibling_and_tail_recursive_call): Fail tail recursion
2697 if current_function_uses_addressof.
2698 * stmt.c (expand_return): Kill tail recursion and HAVE_return
2699 optimizations.
2700
2701 2000-08-11 Richard Henderson <rth@cygnus.com>
2702
2703 * config/ia64/ia64.md (addsi3): Remove expander.
2704 (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
2705 (*addsi3_shladd): New.
2706
2707 2000-08-11 Richard Henderson <rth@cygnus.com>
2708
2709 * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
2710 (do_restore): Likewise.
2711 (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
2712 (ia64_expand_prologue, ia64_expand_epilogue): Use them.
2713 (rtx_needs_barrier): Track actual bit manipulation for
2714 ar.unat moves, gr_spill, and gr_restore.
2715 (emit_insn_group_barriers): Special case gr_spill/gr_restore.
2716 (process_set): Don't handle varargs spills.
2717 * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit
2718 .mem.offset here instead of in process_set.
2719 (gr_restore): Likewise.
2720
2721 2000-08-11 Richard Henderson <rth@cygnus.com>
2722
2723 * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
2724
2725 2000-08-11 Mark Elbrecht <snowball3@bigfoot.com>
2726
2727 * gcc.texi (The Configuration File): Document
2728 COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
2729 UPDATE_PATH_HOST_CANONICALIZATION.
2730
2731 2000-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2732
2733 * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
2734 unprototyped function pointer casts on integer constants.
2735
2736 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
2737
2738 * fixproto: Recognize DOS paths with drive letters as absolute paths.
2739
2740 2000-08-11 Nathan Sidwell <nathan@codesourcery.com>
2741
2742 * extend.texi (Volatiles): Fix typos.
2743
2744 2000-08-11 Kazu Hirata <kazu@hxi.com>
2745
2746 * flow.c: Fix formatting.
2747
2748 2000-08-11 Richard Henderson <rth@cygnus.com>
2749
2750 * reload.c (push_secondary_reload): When invoking a reload_{in,out}
2751 pattern, always allocate a tertiary scratch register.
2752
2753 * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
2754 (reload_inhi): Likewise.
2755
2756 2000-08-11 Richard Henderson <rth@cygnus.com>
2757
2758 * function.c (put_reg_into_stack): Allow type to be NULL.
2759 (schedule_fixup_var_refs): Likewise.
2760 (gen_mem_addressof): Allow decl to be NULL.
2761 (put_addressof_into_stack): Likewise.
2762
2763 * flow.c (merge_blocks_nomove): Be more careful about
2764 locating the beginning of block A.
2765
2766 * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
2767
2768 Thu Aug 10 22:47:09 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
2769
2770 * configure.in:
2771 * configure:
2772 * gthr-posix.h:
2773 * config.in: Reverted the check for <sched.h>.
2774
2775 2000-08-10 Chris Demetriou <cgd@sibyte.com>
2776
2777 * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
2778 macros define the name of CTOR and DTOR sections.
2779 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
2780 DTOR_LIST_END): Change to use attributes to specify
2781 sections.
2782 * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
2783 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
2784 DTOR_LIST_END): Same as in mips/elf.h.
2785
2786 2000-08-10 Drew Moseley <dmoseley@redhat.com>
2787
2788 * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
2789 disabling just crt0.o.
2790
2791 2000-08-10 Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton <nickc@cygnus.com>
2792
2793 * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
2794 (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
2795 (EXTRA_SPECS): Add them.
2796 * arm/lib1funcs.asm: Support builds for interworking.
2797 Use macros to eliminate duplicated pieces of code.
2798
2799 2000-08-10 Kazu Hirata <kazu@hxi.com>
2800
2801 * h8300.c (expand_a_rotate): New.
2802 (emit_a_rotate): Likewise.
2803 (h8300_adjust_insn_length): Add support for the rotate insns.
2804 * h8300.md (rotlqi3): New.
2805 (*rotlqi3_1): Likewise.
2806 (rotlhi3): Likewise.
2807 (*rotlhi3_1): Likewise.
2808 (rotlhi3): Likewise.
2809 (*rotlhi3_1): Likewise.
2810 * h8300-proto.h: Add prototypes for expand_a_rotate and
2811 emit_a_rotate.
2812
2813 * h8300.c: Fix comment typos.
2814 (dosize): Declare the variable amount as unsigned.
2815 (get_shift_alg): Fix a comparison between signed and unsigned.
2816 (emit_a_shift): Likewise.
2817 (h8300_adjust_insn_length): Simplify the code.
2818
2819 * c-decl.c: Fix formatting.
2820
2821 2000-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2822
2823 * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
2824 warning about non-traditional numeric constant suffixes.
2825
2826 * cppexp.c (parse_number): Likewise.
2827
2828 * invoke.texi: (-Wtraditional): Document new behavior.
2829
2830 Thu Aug 10 00:11:04 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
2831
2832 * gthr-posix.h: Include auto-host.h. Conditionally include
2833 <sched.h>.
2834 * configure.in: Check for the <sched.h> header file.
2835 * config.in: Added define for HAVE_SCHED_H.
2836
2837 2000-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2838
2839 * c-typeck.c (process_init_element): For -Wtraditional, warn about
2840 initialization of unions.
2841
2842 * invoke.texi (-Wtraditional): Document new behavior.
2843
2844 2000-08-09 Zack Weinberg <zack@wolery.cumb.org>
2845
2846 * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE
2847 instead of extra_c_flags.
2848 (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
2849 * configure: Regenerate.
2850 * config.in: Regenerate.
2851
2852 * cpperror.c (cpp_type2name): New function.
2853 * cpplex.c (lex_line): If we issued an error for an invalid
2854 preprocessing directive, discard that logical line.
2855 * cpplib.c (do_line): Call a hook function if the current file
2856 is renamed by #line.
2857 (do_ident): Pass the contents of the string, not the entire
2858 token, to the callback function.
2859 * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
2860 (cb.rename_file): New hook function.
2861 (cb.ident): Adjust prototype.
2862 (cpp_type2name): Prototype.
2863 * cppmacro.c (dump_macro_args): Correct precedence lossage.
2864
2865 * cppmain.c (cb_ident): Update for changed interface.
2866 (cb_rename_file): New function.
2867 (main): Set rename callback.
2868
2869 2000-08-09 Alexandre Oliva <aoliva@redhat.com>
2870
2871 * caller-save.c (mark_referenced_regs): Mark partially-overwritten
2872 multi-word registers.
2873
2874 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
2875
2876 * c-common.c (combine_strings, check_format_info): Refer to ISO C
2877 or ISO C89 instead of ANSI C.
2878 * c-decl.c (grokdeclarator, xref_tag, finish_struct,
2879 build_enumerator, do_case): Likewise.
2880 * c-lex.c (parse_float, yylex): Likewise.
2881 * c-parse.in: Likewise.
2882 * c-typeck.c (common_type, build_array_ref, build_binary_op,
2883 build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
2884 build_c_cast, convert_for_assignment, set_init_index,
2885 set_init_label, c_expand_start_case): Likewise.
2886 * toplev.c (documented_lang_options, display_help): Likewise.
2887
2888 2000-08-08 Kazu Hirata <kazu@hxi.com>
2889
2890 * h8300.c: Fix formatting.
2891 * h8300.h: Likewise.
2892 * h8300.md: Likewise.
2893 (movsi_h8300hs): Fix formatting of the resulting assembly code.
2894
2895 * reload1.c: Fix formatting.
2896
2897 2000-08-08 Rodney Brown <RodneyBrown@mynd.com>
2898
2899 * alpha/alpha.c (alpha_emit_xfloating_libcall):
2900 Use GEN_CALL_VALUE define.
2901 * alpha/alpha.md (untyped_call): Use GEN_CALL define.
2902 * clipper/clipper.md (untyped_call): Likewise.
2903 * dsp16xx/dsp16xx.md (untyped_call): Likewise.
2904 * fx80/fx80.md (untyped_call): Likewise.
2905 * mips/mips.md (untyped_call): Likewise.
2906 * ns32k/ns32k.md (untyped_call): Likewise.
2907 * pa/pa.md (untyped_call): Likewise.
2908 * romp/romp.md (untyped_call): Likewise.
2909 * sparc/sparc.md (untyped_call): Likewise.
2910
2911 2000-08-08 Jason Eckhardt <jle@cygnus.com>
2912
2913 * config/i860/i860.c (singlemove_string): Do not generate assembler
2914 pseudo instructions that must be expanded (that is, with signed
2915 constants larger than 16 bits).
2916
2917 2000-08-08 Richard Henderson <rth@cygnus.com>
2918
2919 * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
2920 PROP_AUTOINC at -O0. Don't collect alias info at -O0.
2921 (init_propagate_block_info): Don't kill memory stores at -O0.
2922 (mark_set_1, mark_used_regs): Likewise.
2923
2924 2000-08-08 David Edelsohn <edelsohn@gnu.org>
2925
2926 * rs6000.c (optimization_options): Decorate 'level' as
2927 ATTRIBUTE_UNUSED.
2928 (mask64_operand): Remove sign-extend thinko.
2929 (rldic_operand): New function.
2930 (load_multiple_operation): regno's are unsigned ints.
2931 (store_multiple_operation): Likewise.
2932 (lmw_operation): Likewise.
2933 (stmw_operation): Likewise.
2934 (includes_lshift_p): shift_mask is unsigned int.
2935 (includes_lshift64_p): New function.
2936 (addrs_ok_for_quad_peep): unsigned int reg1.
2937 (print_operand): Consistently add "else" after
2938 output_operand_lossage().
2939 (print_operand, case 'b'): Fold in case 'W'.
2940 (print_operand, case 'W'): Print rldic MB value.
2941 (output_epilogue): Update Objective-C language string.
2942 (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
2943 * rs6000.h (PREDICATE_CODES): Add rldic_operand.
2944 * rs6000.md (ashldi3): Add rldic instruction.
2945 (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
2946 (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
2947 modifier.
2948
2949 2000-08-08 Richard Henderson <rth@cygnus.com>
2950
2951 * config/ia64/ia64-protos.h: Remove duplicates. Update
2952 for massive code rearrangements.
2953 * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
2954 (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
2955 (ia64_local_regs, ia64_need_regstk): Remove.
2956 (ar_ccv_reg_operand): New.
2957 (ia64_gp_save_reg): New.
2958 (struct ia64_frame_info): Combine most of the size elements;
2959 add new gr save elements.
2960 (find_gr_spill): New.
2961 (next_scratch_gr_reg): New.
2962 (mark_reg_gr_used_mask): New.
2963 (ia64_compute_frame_size): Rewrite. Allocate special AR regs
2964 to GR backing store regs when possible.
2965 (ia64_initial_elimination_offset): New.
2966 (ia64_rap_fp_offset): Remove.
2967 (save_restore_insns): Remove.
2968 (setup_spill_pointers): New.
2969 (finish_spill_pointers): New.
2970 (spill_restore_mem): New.
2971 (do_spill, do_restore): New.
2972 (ia64_expand_prologue): Rewrite to use them.
2973 (ia64_expand_epilogue): Likewise.
2974 (ia64_direct_return): Update for current_frame_info changes.
2975 (ia64_function_prologue): Simplify .prologue emission. Emit
2976 .spill when needed.
2977 (ia64_setup_incoming_varargs): Don't ever emit rtl.
2978 (ia64_dbx_register_number): New.
2979 (ia64_initialize_trampoline): New.
2980 (ia64_secondary_reload_class): Request GR_REGS for integer
2981 arithmetic destined for FR_REGS.
2982 (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
2983 (ia64_mark_machine_status): Mark ia64_gp_save.
2984 (rws_access_regno): Rename from rws_access_reg; don't treat
2985 predicates specially.
2986 (rws_access_reg): New. Update all callers.
2987 (rtx_needs_barrier): Remove dead unspecs.
2988 (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
2989 (ia64_encode_section_info): Silence signed/unsigned warnings.
2990 (spill_offset, sp_offset, spill_offset_emitted): Remove.
2991 (tmp_reg, tmp_saved): Remove.
2992 (process_set): Rewrite to expect complicated bits via
2993 REG_FRAME_RELATED_EXPR.
2994 (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
2995 in the use of ar.ccv; never set RTX_UNCHANGING_P.
2996 (ia64_expand_op_and_fetch): Likewise.
2997 (ia64_expand_compare_and_swap): Likewise.
2998 (ia64_expand_builtin): Likewise.
2999 * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
3000 (FIRST_PSEUDO_REGISTER): Update.
3001 (AR_M_REGNO_P): Update.
3002 (FIXED_REGS): Don't mark three local registers as used.
3003 (EXTRA_CC_MODES): New.
3004 (SELECT_CC_MODE): New.
3005 (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
3006 (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
3007 (FRAME_GROWS_DOWNWARD): Unset.
3008 (STARTING_FRAME_OFFSET): Zero.
3009 (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
3010 (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
3011 (HARD_FRAME_POINTER_REGNUM): New.
3012 (CAN_DEBUG_WITHOUT_FP): Define.
3013 (TRAMPOLINE_TEMPLATE): Remove.
3014 (TRAMPOLINE_SIZE): Lower to 32.
3015 (TRAMPOLINE_ALIGNMENT): Lower to 64.
3016 (INITIALIZE_TRAMPOLINE): Defer to out of line function.
3017 (PREDICATE_CODES): Update.
3018 (struct machine_function): Add ia64_gp_save.
3019 * config/ia64/ia64.md: Purge unused unspecs.
3020 (movsi patterns): Allow moves to/from AR_M_REGS.
3021 (movdi patterns): Allow moves to/from p0.
3022 (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
3023 (gr_spill, gr_restore): Indicate ar.unat read/written.
3024 (nonlocal_goto): Don't pass old frame_pointer.
3025 (nonlocal_goto_receiver): Remove.
3026 (exception_receiver): New.
3027 (builtin_setjmp_setup): New.
3028 (builtin_setjmp_receiver): New.
3029 * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
3030 (__ia64_nonlocal_goto): Bundle. Don't kill r7.
3031 (__ia64_restore_stack_nonlocal): Likewise.
3032 (__ia64_trampoline): New.
3033 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
3034 function.
3035 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
3036
3037 2000-08-08 Richard Henderson <rth@cygnus.com>
3038
3039 * frame.h (ia64_frame_state): Add my_psp.
3040 * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
3041 (__throw): Pass it in. Don't clobber r7.
3042 * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
3043 (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
3044 and nothing to do with sp.
3045 (normalize_reg_loc): Use frame->my_psp.
3046 (frame_translate): Handle frame-pointer-less functions. Set
3047 spill_base correctly, in absence of being told.
3048 (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp.
3049 (__ia64_backtrace_helper): New sp argument. Use
3050 builtin_return_address instead of label addresses.
3051 (print_record) [mem_stack_v]: No size member.
3052
3053 2000-08-08 Richard Henderson <rth@cygnus.com>
3054
3055 * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
3056
3057 2000-08-08 Richard Henderson <rth@cygnus.com>
3058
3059 * tm.texi (LOCAL_REGNO): Document.
3060 * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
3061 (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
3062 * reload1.c (reload): Likewise when considering nonlocal labels.
3063
3064 * config/ia64/ia64.h (LOCAL_REGNO): New.
3065 * config/sparc/sparc.h (LOCAL_REGNO): New.
3066
3067 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
3068
3069 * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
3070
3071 2000-08-07 Nick Clifton <nickc@redhat.com>
3072
3073 * config/mips/mips.c: Fix compile time warning messages.
3074 * config/mips/mips-protos.h: Add prototype for equality_op.
3075
3076 * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
3077
3078 2000-08-07 Graham Stott <grahams@cygnus.co.uk>
3079
3080 * mn10300.md: Use nonimmediate_operand instead of general_operand
3081 on output operands.
3082
3083 * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
3084
3085 2000-08-07 Alexandre Oliva <aoliva@redhat.com>
3086
3087 * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
3088 * sh.c (expand_block_move): Break long lines.
3089 (expand_ashiftrt, fpscr_set_from_mem): Likewise.
3090 * sh.md (mulsi3): Likewise.
3091 (movdi): Adjust spacing.
3092
3093 2000-08-07 Richard Henderson <rth@cygnus.com>
3094
3095 * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
3096 * expr.c (emit_group_store): Don't set it.
3097
3098 2000-08-07 Kazu Hirata <kazu@hxi.com>
3099
3100 * invoke.texi (Options for Debugging Your Program or GCC): Remove
3101 duplicate entries for 'w' and 'z'.
3102
3103 * flow.c: Fix a comment typo.
3104
3105 Sun Aug 6 23:47:35 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
3106
3107 * c-parse.in: Changed the language string for Objective-C to "GNU
3108 Objective-C".
3109
3110 Sun Aug 6 11:54:03 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
3111
3112 * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
3113 to improve the Posix thread support for Objective-C.
3114
3115 2000-08-06 Joseph S. Myers <jsm28@cam.ac.uk>
3116
3117 * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
3118 CTI_UNSIGNED_PTRDIFF_TYPE.
3119 (signed_size_type_node): Define.
3120 (unsigned_ptrdiff_type_node): Define.
3121 * c-decl.c (init_decl_processing): Create the
3122 signed_size_type_node and unsigned_ptrdiff_type_node types.
3123 * c-common.c (T_SC): Define.
3124 (T_SST): Define.
3125 (T_UPD): Define.
3126 (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for
3127 %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for
3128 %s and %p.
3129 (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for
3130 %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the
3131 flags for %c, %s and %[.
3132 (check_format_info): Only allow leniency for signedness of targets
3133 of character pointers (when pedantic) for formats flagged with
3134 "c", so for strings but not for %hh formats. When pedantic, don't
3135 allow character pointers to substitute for void pointers if a
3136 second level of indirection is present.
3137
3138 2000-08-06 Kazu Hirata <kazu@hxi.com>
3139
3140 * invoke.texi (Options for Debugging Your Program or GCC): Update
3141 the names of dump files.
3142
3143 * h8300.c (dosize): Rearrange code for conciseness.
3144 (split_adds_subs): Likewise.
3145
3146 * loop.c: Fix formatting.
3147
3148 * dwarf2out.c: Fix formatting.
3149
3150 * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
3151
3152 * expr.c: Fix formatting.
3153
3154 2000-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3155
3156 * rs6000.c (rs6000_maybe_dead): Prototype.
3157
3158 2000-08-06 Richard Henderson <rth@cygnus.com>
3159
3160 * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
3161 HAVE_nonlocal_goto as well.
3162 * config/i960/i960.md (nonlocal_goto): Don't do it here.
3163 * config/pj/pj.md (nonlocal_goto): Likewise.
3164
3165 2000-08-07 Michael Hayes <mhayes@cygnus.com>
3166
3167 * loop.c (try_swap_copy_prop): New function.
3168 (load_mems): Rename copies to load_copies and add new regset
3169 store_copies. Check for sets of shadow registers and mark
3170 in store_copies. Call try_swap_copy_prop for registers
3171 marked in store_copies.
3172
3173 Sun Aug 6 00:54:42 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
3174
3175 * objc/objc-act.c: New command line option -fconstant-string-class
3176 to allow specifying a user defined constant string class,
3177 different from NXConstantString.
3178
3179 * toplev.c: Moved the Objective-C specific options to
3180 objc/lang-options.h.
3181
3182 * objc/lang-options.h: Moved the Objective-C specific options from
3183 toplev.c. Added -fconstant-string-class.
3184
3185 2000-08-05 Chris Demetriou <cgd@sibyte.com>
3186
3187 * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
3188 DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
3189 __CTOR_LIST__ from func_ptr array to just func_ptr, to
3190 avoid extra alignment imposed on arrays.
3191 * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
3192 DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
3193
3194 * mips.h: Clean up comments and spacing near MASKs.
3195 (TARGET_UNIX_ASM): Delete.
3196 (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
3197 MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
3198 values contiguous.
3199
3200 2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk>
3201
3202 * c-common.c (print_char_table): Add entries for the X/Open '
3203 format flag (print decimals with locale's thousands grouping
3204 character). Make %C expect wint_t.
3205 (check_format_info): If pedantic, warn when the %n$ operand
3206 number form is used. Allow for the ' flag; warn about it if
3207 pedantic.
3208
3209 2000-08-05 Zack Weinberg <zack@wolery.cumb.org>
3210
3211 * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return
3212 type is a float mode, cfun->decl's return type is not, and
3213 TARGET_FLOAT_RETURNS_IN_80387.
3214
3215 2000-08-04 Andreas Schwab <schwab@suse.de>
3216
3217 * cppmain.c (cb_def_pragma): Skip the first two tokens from the
3218 token list, which are always `#' and `pragma'.
3219
3220 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
3221
3222 * tree.c (tree_expr_nonnegative_p): Move to...
3223 * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR.
3224 (rtl_expr_nonnegative_p): New.
3225 * tree.h: Add prototype for rtl_expr_nonnegative_p.
3226
3227 * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
3228 CONST_DOUBLE_CHAIN: Move to...
3229 * rtl.h: ...here. Use XCINT/XCEXP.
3230
3231 * Makefile.in: Remove toplev.o from OBJS. Add rule to make
3232 libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND
3233 variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND
3234 to VOL_FILES.
3235
3236 * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
3237
3238 2000-08-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3239
3240 * config/c4x/c4x.md (return_indirect_internal): New.
3241 * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
3242
3243 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
3244
3245 * c-common.c (time_char_table): Mark up formats added in C99 and
3246 make other corrections. %D and %g were added in C99. %Og is an
3247 extension. %EX is permitted. %R, %T, %n, %r, %t were added in
3248 C99. %e was added in C99. %Oj is an extension. %G and %z are in
3249 C99 rather than GNU extensions, but %OG and %Oz are extensions.
3250 %h was added in C99. %C was added in C99. %OY and %OC are
3251 extensions. Add the C99 format %F.
3252 (check_format_info): If pedantic and not in C99 mode, warn for C99
3253 formats, %E and %O.
3254
3255 Fri Aug 4 23:01:58 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3256
3257 * function.c (schedule_fixup_var_refs): New function, broken out
3258 of put_reg_into_stack.
3259 (put_reg_into_stack): Use it.
3260 (put_var_into_stack): In CONCAT case, fixup up references for
3261 components only after fixing up references to the whole concat.
3262
3263 2000-08-04 Rodney Brown <RodneyBrown@pmsc.com>
3264
3265 * alias.c (mark_constant_function): Use INSN_P.
3266 (init_alias_analysis): Likewise.
3267 * combine.c (combine_instructions): Use INSN_P.
3268 (can_combine_p): Likewise.
3269 (try_combine): Likewise.
3270 (distribute_notes): Likewise.
3271 (distribute_links): Likewise.
3272 * cse.c (cse_around_loop): Use INSN_P.
3273 (invalidate_skipped_block): Likewise.
3274 (cse_set_around_loop): Likewise.
3275 (cse_end_of_basic_block): Likewise.
3276 (delete_trivially_dead_insns): Likewise.
3277 * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
3278 (unshare_all_rtl_1): Likewise.
3279 (next_cc0_user): Likewise.
3280 (try_split make_insn_raw): Likewise.
3281 (remove_unnecessary_notes): Likewise.
3282 * final.c (shorten_branches): Use INSN_P.
3283 (leaf_renumber_regs): Likewise.
3284 (leaf_renumber_regs_insn): Likewise.
3285 * flow.c (find_label_refs): Use INSN_P.
3286 (verify_wide_reg): Likewise.
3287 (notice_stack_pointer_modification): Likewise.
3288 (count_or_remove_death_notes): Likewise.
3289 (verify_flow_info): Likewise.
3290 (clear_log_links): Likewise.
3291 * function.c (fixup_var_refs_insns): Use INSN_P.
3292 (compute_insns_for_mem): Likewise.
3293 * gcse.c (alloc_gcse_mem): Use INSN_P.
3294 (compute_sets): Likewise.
3295 (compute_hash_table): Likewise.
3296 (classic_gcse): Likewise.
3297 (cprop): Likewise.
3298 (insert_insn_end_bb): Likewise.
3299 (delete_null_pointer_checks_1): Likewise.
3300 * global.c (expand_preferences): Use INSN_P.
3301 (build_insn_chain): Likewise.
3302 * graph.c (node_data): Use INSN_P.
3303 * haifa-sched.c (priority): Use INSN_P.
3304 (rm_line_notes): Likewise.
3305 (rm_other_notes): Likewise.
3306 (find_insn_reg_weight): Likewise.
3307 (init_target_units): Likewise.
3308 (schedule_block): Likewise.
3309 (compute_block_forward_dependences): Likewise.
3310 (debug_dependencies): Likewise.
3311 (set_priorities): Likewise.
3312 * integrate.c (function_cannot_inline_p): Use INSN_P.
3313 (save_parm_insns): Likewise.
3314 (copy_insn_list): Likewise.
3315 * jump.c (mark_all_labels): Use INSN_P.
3316 (never_reached_warning): Likewise.
3317 * lcm.c (optimize_mode_switching): Use INSN_P.
3318 * local-alloc.c (validate_equiv_mem): Use INSN_P.
3319 (memref_used_between_p): Likewise.
3320 (update_equiv_regs): Likewise.
3321 (block_alloc): Likewise.
3322 (no_conflict_p): Likewise.
3323 * loop.c (scan_loop): Use INSN_P.
3324 (find_and_verify_loops): Likewise.
3325 (count_loop_regs_set): Likewise.
3326 (loop_reg_used_before_p): Likewise.
3327 (strength_reduce): Likewise.
3328 (recombine_givs): Likewise.
3329 (check_dbra_loop): Likewise.
3330 (load_mems): Likewise.
3331 (try_copy_prop): Likewise.
3332 * print-rtl.c (print_rtx): Use INSN_P.
3333 * recog.c (find_single_use): Use INSN_P.
3334 * reg-stack.c (stack_regs_mentioned): Use INSN_P.
3335 (next_flags_user): Likewise.
3336 (swap_rtx_condition): Likewise.
3337 * regmove.c (mark_flags_life_zones): Use INSN_P.
3338 (optimize_reg_copy_1): Likewise.
3339 (optimize_reg_copy_2): Likewise.
3340 (optimize_reg_copy_3): Likewise.
3341 (reg_is_remote_constant_p): Likewise.
3342 (fixup_match_2): Likewise.
3343 (regmove_optimize): Likewise.
3344 (fixup_match_1): Likewise.
3345 * regrename.c (build_def_use): Use INSN_P.
3346 (replace_reg_in_block): Likewise.
3347 (consider_use): Likewise.
3348 * reload.c (find_equiv_reg): Use INSN_P.
3349 * reload1.c (reload): Use INSN_P.
3350 (maybe_fix_stack_asms): Likewise.
3351 (calculate_needs_all_insns): Likewise.
3352 (reload_as_needed): Likewise.
3353 (emit_output_reload_insns): Likewise.
3354 (delete_address_reloads_1): Likewise.
3355 (reload_cse_regs_1): Likewise.
3356 (reload_combine): Likewise.
3357 (reload_cse_move2add): Likewise.
3358 * reorg.c (redundant_insn): Use INSN_P.
3359 (dbr_schedule): Likewise.
3360 * resource.c (find_dead_or_set_registers): Use INSN_P.
3361 (mark_target_live_regs): Likewise.
3362 * rtlanal.c (reg_used_between_p): Use INSN_P.
3363 (reg_referenced_between_p): Likewise.
3364 (reg_set_between_p): Likewise.
3365 (reg_set_p): Likewise.
3366 (single_set): Likewise.
3367 (multiple_sets): Likewise.
3368 (find_last_value): Likewise.
3369 (reg_set_last): Likewise.
3370 (find_reg_note): Likewise.
3371 (find_regno_note): Likewise.
3372 * sibcall.c (sequence_uses_addressof): Use INSN_P.
3373 * simplify-rtx.c (cselib_process_insn): Use INSN_P.
3374 * ssa.c (find_evaluations): Use INSN_P.
3375 (rename_block): Likewise.
3376 (rename_equivalent_regs): Likewise.
3377 * unroll.c (loop_find_equiv_value): Use INSN_P.
3378 (set_dominates_use): Likewise.
3379 * varasm.c (mark_constant_pool): Use INSN_P.
3380 (mark_constants): Likewise.
3381 * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
3382 (alphaev4_next_group): Likewise.
3383 (alphaev5_next_group): Likewise.
3384 * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
3385 (c4x_rptb_rpts_p): Likewise.
3386 * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
3387 * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
3388 (rs6000_adjust_priority): Likewise.
3389 * config/sh/sh.c (sh_loop_align): Use INSN_P.
3390 (machine_dependent_reorg): Likewise.
3391 (split_branches): Likewise.
3392 * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
3393
3394 Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com)
3395
3396 * combine.c (recog_for_combine): Remove the old notes
3397 prior to attempting to recognize the new pattern.
3398 (distribute_notes): Ignore REG_NONNEG notes.
3399
3400 2000-08-04 Chandrakala Chavva <cchavva@redhat.com>
3401
3402 * varasm.c (output_constructor): Add .align 0 for packed vars.
3403
3404 2000-08-04 J. David Anglin <dave@hiauly1.hia.nrc.ca>
3405
3406 * configure.in: Use default thread_file even when enable_threads is
3407 yes or dce because hpux10.20 pa port uses MULTILIB implementation.
3408 * configure: Rebuilt.
3409
3410 * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
3411
3412 2000-08-04 Donn Terry (donnte@microsoft.com)
3413
3414 * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
3415
3416 2000-08-04 Mark Elbrecht <snowball3@bigfoot.com>
3417
3418 * i386/x-djgpp: Delete code that conditionally modifies target_alias.
3419 Delete code that conditionally modifies 'version'.
3420 Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
3421 * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
3422 * gcc.c (main): Use it.
3423 * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
3424 * prefix.c (update_path): Use it.
3425 * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
3426 (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
3427 (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
3428 code.
3429 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
3430 (SUBTARGET_SWITCHES): Adjust.
3431 (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
3432 defining.
3433 (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
3434
3435 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
3436
3437 * c-common.h (flag_isoc94): Declare.
3438 * c-decl.c (flag_isoc94): Define.
3439 (c_decode_option): Set flag_isoc94 as appropriate.
3440 * c-common.c (T_PD, T_IM, T_UIM): Define.
3441 (format_char_info): Add tlen and jlen.
3442 (print_char_table): Add entries for %t and %j. Allow %zn. Allow
3443 %F. Allow %lf.
3444 (scan_char_table): Add entries for %t and %j. Allow %F. Allow
3445 %l[.
3446 (time_char_table): Add NULL entries for %t and %j.
3447 (check_format_info): Allow for %t and %j. Warn for %F if pedantic
3448 and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94.
3449 Warn for printf %lf if pedantic and not C99. Don't warn for empty
3450 precision. Allow precision argument to be unsigned int. If
3451 pedantic, warn for %p passed an argument not a pointer to possibly
3452 qualified void or a possibly qualified character type, and for
3453 pointer targets of the wrong sign, except for character pointers.
3454
3455 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
3456
3457 * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
3458 * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
3459 (wint_type_node): Define.
3460 * c-decl.c (WINT_TYPE): Define.
3461 (init_decl_processing): Create the wint_type_node type.
3462 * c-common.c (T_WI): Define.
3463 (print_char_table): Use T_WI for %lc format.
3464
3465 2000-08-04 Bruce Korb <bkorb@gnu.org>
3466
3467 * fixinc/: Verified that the MSDOS patch does not break
3468 the UNIX functionality and applied the next three patches
3469 from July:
3470
3471 2000-07-28 Eli Zaretskii <eliz@is.elta.co.il>
3472
3473 * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
3474 output file with the temporary one by appending ".X" to generate
3475 the temporary fuile's name. If the output file already has an
3476 extension, replace it with ".X".
3477
3478 * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
3479 not $DESTDIR, to find applyfix. Use sprintf instead of snprintf;
3480 reallocate the command buffer while copying the command-line
3481 argument. Redirect the output directly to the temporary file,
3482 instead of going through another temporary file.
3483 (process): Close the temporary file before unlinking it.
3484 (machine_matches) [__MSDOS__]: If the machine doesn't match, set
3485 the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag.
3486 (run_compiles): Pass p_fixd argument to machine_matches, as it
3487 expects.
3488
3489 * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the
3490 environment, assume there are no symlinks in the include
3491 directory. When cleaning up the DONE files, look for them
3492 case-insensitively. Don't try to remove symlinks if they aren't
3493 there.
3494
3495 * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
3496 all callers changed. Declare pz "const char *", to avoid compiler
3497 warnings.
3498
3499 * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
3500 Change prototype of make_raw_shell_str.
3501
3502 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
3503
3504 * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
3505 (initialize) [__MSDOS__]: Use tempnam.
3506 (initialize): Don't use SIGPIPE if it is not defined.
3507
3508 * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
3509 return stdout.
3510
3511 2000-07-25 Bruce Korb <bkorb@gnu.org>
3512
3513 * fixinc/fix*.[ch]: substantially reworked to make it possible
3514 to run this program without using fork(2) or pipe(2) (i.e. in
3515 a DOS environment).
3516
3517 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
3518
3519 * cppdefault.h (WINT_TYPE): Define.
3520 * cppinit.c (builtin_array): Define __WINT_TYPE__.
3521 * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
3522 * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
3523
3524 Fri Aug 4 06:53:46 2000 Clinton Popetz <cpopetz@cygnus.com>
3525
3526 * (mips_legitimate_address_p): Don't allow register+offset
3527 if the offset is large and negative, and we are compiling
3528 for 64 bit registers.
3529
3530 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3531
3532 * gencodes.c (main): Define CODE_FOR_nothing as the last possible
3533 insn_code_number + 1.
3534
3535 2000-08-04 Kazu Hirata <kazu@hxi.com>
3536
3537 * h8300.c (function_prologue): Rearrange code for conciseness.
3538 (function_epilogue): Likewise.
3539 * h8300.h (OK_FOR_U): Fix formatting.
3540
3541 * cse.c: Fix a comment typo. Fix formatting.
3542
3543 2000-08-03 Richard Henderson <rth@cygnus.com>
3544
3545 * config/i386/i386.md (return_indirect_internal): New.
3546 * config/i386/i386.c (ix86_expand_epilogue): Use it.
3547
3548 2000-08-03 Zack Weinberg <zack@wolery.cumb.org>
3549
3550 * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
3551 before the name.
3552 (lex_line): Glue @ onto the beginning of identifiers and
3553 string constants, in Objective-C mode.
3554 (output_token, spell_token): Handle CPP_OSTRING.
3555 (can_paste, maybe_paste_with_next): Handle pasting @ onto the
3556 beginning of a NAME or a STRING, in objc mode.
3557
3558 * cpplib.c (get_define_node): Do not permit identifiers that
3559 begin with @ to be #defined.
3560 * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
3561 * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
3562
3563 * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
3564 * c-tree.h (build_objc_string): Delete prototype.
3565 * objc/objc-tree.def: Delete OBJC_STRING_CST.
3566 * c-lex.c (yylex): Use build_string for all three kinds of strings.
3567
3568 * c-parse.in, objc/objc-act.c: Update commentary.
3569
3570 2000-08-03 Mark Mitchell <mark@codesourcery.com>
3571
3572 * extend.texi: Fix typo in last change.
3573
3574 * extend.texi: Add commentary on statement-expressions and their
3575 interactions with C++.
3576
3577 2000-08-03 Nick Clifton <nickc@cygnus.com>
3578
3579 * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
3580 * dwarf.h (LANG_JAVA): Change value to 0x000b.
3581
3582 2000-08-03 Anthony Green <green@cygnus.com>
3583
3584 * dwarf2out.c (gen_compile_unit_die): Add java language support.
3585 (add_bound_info): Check for java language.
3586 (is_java): New function.
3587 * dwarfout.c (output_compile_unit_die): Ditto.
3588 * dwarf.h (dwarf_source_language): Add java source language type.
3589 * dwarf2.h (dwarf_source_language): Ditto.
3590
3591 Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
3592
3593 * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap
3594 operands.
3595
3596 * i386.c (ix86_expand_branch): Mode of comparison in
3597 IF_THEN_ELSE is VOIDmode.
3598
3599 Thu Aug 3 10:05:53 2000 Akiko Matsushita <matusita@sra.co.jp>
3600
3601 * gengenrtl.c, rtl.c: Avoid #elif.
3602
3603 2000-08-03 Michael Poole <poole@troilus.org>
3604
3605 * tm.texi (Register Classes): Clarify order of sub-initializers
3606 in REG_CLASS_CONTENTS.
3607
3608 Thu Aug 3 15:53:03 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3609
3610 From SAITOH Masanobu:
3611 * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
3612
3613 2000-08-03 David Billinghurst <David.Billinghurst@riotinto.com.au>
3614
3615 * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
3616 is not supported by tradcpp and isn't actually needed for cygwin.
3617
3618 2000-08-03 Kazu Hirata <kazu@hxi.com>
3619
3620 * h8300.c: Fix a comment typo.
3621 * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
3622
3623 * jump.c: Fix formatting.
3624
3625 * toplev.c: Fix formatting.
3626
3627 Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com)
3628
3629 * flow.c (find_auto_inc): Verify that we've got a REG before
3630 peeking at its regno. Fail, don't abort if we can't find
3631 the increment of the desired register.
3632
3633 * pa.md (shadd height reduction patterns/splitters): Remove.
3634
3635 2000-08-02 Jim Wilson <wilson@cygnus.com>
3636
3637 * config/ia64/ia64-protos.h (flag_ssa): Declare.
3638 * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
3639
3640 2000-08-02 Mark Mitchell <mark@codesourcery.com>
3641
3642 * dce.c: Remove all uses of assert.
3643 * dwarf2out.c: Likewise.
3644 * dwarfout.c: Likewise.
3645 * ssa.c: Likewise.
3646
3647 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
3648
3649 * gcc.h (lang_specific_driver): Constify second argument.
3650 * gcc.c (translate_options, process_command, main): Likewise.
3651 Constify variables to match. Cast second argument to
3652 pexecute.
3653
3654 * cppspec.c, gccspec.c: Adjust type of second argument to
3655 lang_specific_driver, and update code as necessary.
3656
3657 2000-08-02 Jakub Jelinek <jakub@redhat.com>
3658
3659 * loop.c (scan_loop): Ensure update_end label does not
3660 go away until reg_scan_update is run.
3661
3662 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
3663
3664 * c-common.h: Prototype min_precision and c_build_qualified_type here...
3665 * c-tree.h: ... not here.
3666 * errors.h: Prototype fancy_abort.
3667
3668 * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
3669 HOST_BITS_PER_WIDE_INT == 64 ifdef block.
3670 * regrename.c (regrename_optimize): Make control flow explicit.
3671 (replace_reg_in_block): Initialize reg_use to 0.
3672
3673 * i386.c (legitimate_address_p): Rename error label to
3674 report_error to avoid namespace clash.
3675
3676 2000-08-02 Kazu Hirata <kazu@hxi.com>
3677
3678 * fold-const.c: Fix formatting.
3679
3680 Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka <jh@suse.cz>
3681
3682 * i386.c (legitimate_address_p): Accept other bases than
3683 pic_offset_table_rtx for GOTOFF constructs.
3684
3685 Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
3686
3687 * i386.md (shift to lea splitter): Use const_int_operand.
3688
3689 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
3690
3691 * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
3692 cppspec.c: Do not use 'legal' or 'illegal' in error messages
3693 and comments.
3694
3695 * cppmain.c (cb_define, cb_undef): Don't generate any output
3696 if not done_initializing.
3697 * cpplex.c (maybe_paste_with_next): When the token after a ##
3698 is an omitted rest argument, only delete the token before it
3699 if that token is a comma. Do not warn about bogus token
3700 pastes for , ## rest_arg.
3701
3702 * cpp.texi: Update.
3703 * cpp.1: Regenerate.
3704
3705 2000-08-02 Fred Fish <fnf@be.com>
3706
3707 * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
3708 when user gives -p option. Add init_term_dyn.o for BeOS 5.0
3709 and later.
3710
3711 * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
3712 Be directories to search path.
3713
3714 Remove support for __declspec(dllimport) and __declspec(dllexport).
3715 This is leftover cruft from the earlier BeOS gcc port when BeOS
3716 used Microsoft's PE object file format.
3717 * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
3718 * config/i386/t-beos (winnt.o): Remove Makefile frag.
3719 * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
3720 (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
3721 (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
3722 (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
3723 (REDO_SECTION_INFO_P): Remove.
3724 (ASM_EXPORT_DECL): Remove.
3725 (ASM_DECLARE_FUNCTION_NAME): Remove.
3726 (ASM_DECLARE_OBJECT_NAME): Remove.
3727 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
3728 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
3729 (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
3730 (STRIP_NAME_ENCODING): Remove.
3731
3732 Remove support for obsolete version of BeOS that is no longer
3733 supported by Be.
3734 * configure.in (i*86-*-beospe*): Remove.
3735 * config/i386/beos-pe.h: Remove.
3736
3737 2000-08-01 Jeffrey Oldham <oldham@codesourcery.com>
3738 Mark Mitchell <mark@codesourcery.com>
3739
3740 * Makefile.in (OBJS): Added dce.o.
3741 (ssa.o): Updated target to include ssa.h.
3742 (flow.o): Likewise.
3743 (toplev.o): Likewise.
3744 (dce.o): Created target.
3745 * basic-block.h: Added comments.
3746 (INVALID_BLOCK): Added definition.
3747 (connect_infinite_loops_to_exit): Added declaration.
3748 Moved SSA declarations to ssa.h.
3749 * flow.c: Added inclusion of ssa.h.
3750 (struct depth_first_search_dsS, depth_first_search_ds):
3751 Added definitions.
3752 (compute_immediate_postdominators): Added definition.
3753 (connect_infinite_loops_to_exit): Likewise.
3754 (flow_dfs_compute_reverse_init): Likewise.
3755 (flow_dfs_compute_reverse_add_bb): Likewise.
3756 (flow_dfs_compute_reverse_execute): Likewise.
3757 (flow_dfs_compute_reverse_finish): Likewise.
3758 * rtl.h (rtx/in_struct): Added use to determine insn necessity.
3759 (LABEL_P): Added definition.
3760 (JUMP_P): Likewise.
3761 (NOTE_P): Likewise.
3762 (BARRIER_P): Likewise.
3763 (JUMP_TABLE_DATA_P): Likewise.
3764 (INSN_DEAD_CODE_P): Likewise.
3765 * ssa.c: Replaced inclusions with ssa.h inclusion.
3766 (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
3767 (rename_registers): Removed unnecessary variables.
3768 * ssa.h: Created by moving declarations from ssa.c and
3769 basic-block.h.
3770 * timevar.def: Defined TV_DEAD_CODE_ELIM.
3771 * toplev.c: Added ssa.h inclusion.
3772 (dump_file_index): Added DFI_dce.
3773 (dump_file): Added "dce" entry.
3774 Defined flag_ssa.
3775 (f_options): Added dce entry.
3776 * invoke.texi: Document -fdce. Emphasize experimental status of
3777 -fssa.
3778 * dce.c: New file.
3779
3780 2000-08-01 Zack Weinberg <zack@wolery.cumb.org>
3781
3782 * cpperror.c (v_message): Split into _cpp_begin_message and
3783 v_message macro. All callers updated.
3784 (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
3785 checks here.
3786
3787 * cppfiles.c (cpp_syshdr_flags): New function.
3788 (read_include_file): Don't call cpp_output_tokens. Call
3789 enter_file hook.
3790 * cppinit.c (dump_macros_helper): Moved to cppmain.c.
3791 (cpp_reader_init): Don't initialize token_buffer. Call
3792 _cpp_init_internal_pragmas.
3793 (cpp_cleanup): Don't clear token_buffer.
3794 (cpp_start_read): Don't worry about output from -D processing.
3795 Don't call cpp_output_tokens.
3796 (cpp_finish): Don't dump macros here. Don't call
3797 cpp_output_tokens.
3798 * cppmacro.c (_cpp_dump_definition): Rename
3799 cpp_dump_definition. Write directly to a FILE *.
3800 (dump_funlike_macro): Delete.
3801 (dump_macro_args): New.
3802
3803 * cpplex.c (TOKEN_LEN): Convert to inline function.
3804 (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
3805 cpp_scan_line, _cpp_dump_list): Delete.
3806 (cpp_printf, cpp_output_list): New.
3807 (output_line_command): Don't worry about entering or leaving files.
3808 (cpp_scan_buffer): Just output each token as we hit it.
3809 (process_directive): Don't call cpp_output_tokens.
3810 (_cpp_glue_header_name): Don't use token_buffer.
3811 (output_token, dump_param_spelling): Write directly to a FILE *.
3812
3813 * cpplib.c (pass_thru_directive, dump_macro_name,
3814 pragma_dispatch, do_pragma_gcc): Delete.
3815 (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
3816 do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
3817 functions.
3818 (do_error, do_warning, pragma_dependency): Call
3819 _cpp_begin_message, then cpp_output_list.
3820 (cpp_register_pragma, cpp_register_pragma_space,
3821 _cpp_init_internal_pragmas): New.
3822 (do_pragma): Walk the pragmas table here.
3823 (do_pragma_once, do_pragma_poison, do_pragma_system_header,
3824 do_pragma_dependency): Return void.
3825 (do_pragma_implementation): Moved to cppmain.c.
3826
3827 * cpplib.h: Update prototypes.
3828 (struct cpp_reader): Remove printer, token_buffer,
3829 token_buffer_size, and limit. Add struct cb, and pragmas.
3830 (struct cpp_printer): Remove last_id and written.
3831 (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
3832 CPP_ADJUST_WRITTEN): Delete.
3833 * cpphash.h: Update prototypes.
3834 (ufputs): New wrapper.
3835
3836 * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
3837 cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
3838 (main): Set up callbacks. Register #pragma implementation.
3839 Dump macros from here.
3840
3841 2000-08-01 Geoff Keating <geoffk@cygnus.com>
3842
3843 * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
3844 * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
3845 * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
3846 insns if they have a REG_MAYBE_DEAD note attached.
3847 * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
3848 (rs6000_emit_load_toc_table): TOC loads may go dead.
3849
3850 2000-08-01 Jim Wilson <wilson@cygnus.com>
3851
3852 * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify
3853 type exists before using it. Use number of words as alignment
3854 otherwise.
3855 (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
3856 ia64_va_arg): Propagate ia64_function_args changes here.
3857
3858 2000-08-01 Richard Henderson <rth@cygnus.com>
3859
3860 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
3861 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3862
3863 2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk>
3864
3865 From Joern Rennecke:
3866 * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
3867 * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
3868 unless TARGET_SH3E is set.
3869 * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
3870
3871 * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
3872 (ashlsi3_std): New pattern.
3873 (ashlsi3 expander): Use it for TARGET_SH3.
3874 * sh.c (gen_ashift): Use it instead of ashlsi3_k.
3875
3876 Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
3877
3878 * loop.c (canonicalize_condition): Use destination, not source to
3879 determine SET's mode.
3880
3881 2000-07-31 Mark Mitchell <mark@codesourcery.com>
3882
3883 * flow.c (clear_log_links): Fix typo.
3884
3885 Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com)
3886
3887 * loop.c (check_dbra_loop): Make change from July 17, 2000 work
3888 on targets which need more than one insn for a compare/cbranch
3889 operation.
3890
3891 2000-07-31 Jim Wilson <wilson@cygnus.com>
3892
3893 * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
3894 when computing offset.
3895
3896 Mon Jul 31 20:35:50 2000 Denis Chertykov <denisc@overta.ru>
3897
3898 * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
3899
3900 2000-07-31 Geoff Keating <geoffk@cygnus.com>
3901
3902 * flow.c (clear_log_links): Nuke global_live_at_start and
3903 global_live_at_end data, since if the log_links stuff is invalid
3904 so is global_live_at_*.
3905
3906 2000-07-31 Richard Henderson <rth@cygnus.com>
3907
3908 * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
3909
3910 2000-07-31 Jakub Jelinek <jakub@redhat.com>
3911
3912 * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
3913 (_cpp_get_token): Don't macro expand a just pasted token if it
3914 was pasted at no_expand_level.
3915
3916 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
3917
3918 * cppmacro.c (find_param, count_params, save_expansion):
3919 Permit 'defined' as a macro parameter name.
3920
3921 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
3922
3923 * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
3924 xcpp to cpp throughout.
3925 (native): Remove unnecessary dependency on cpp.
3926
3927 * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
3928 tradcpp to tradcpp0.
3929 (.i spec): Add missing output-file spec to cc1 command line.
3930 * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
3931
3932 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
3933
3934 * c-decl.c (mesg_implicit_function_declaration): Init to -1.
3935 (implicit_decl_warning): New function.
3936 (implicitly_declare): Use it.
3937 * c-typeck.c (build_external_ref): Use implicit_decl_warning
3938 to complain about implicit decls of builtins.
3939
3940 * c-lang.c (lang_init): Set mesg_implicit_function_declaration
3941 based on pedantic && flag_isoc99, if not already set.
3942 * c-tree.h: Declare mesg_implicit_function_declaration.
3943 Prototype implicit_decl_warning.
3944
3945 2000-07-30 Jeffrey D. Oldham <oldham@codesourcery.com>
3946
3947 * Makefile.in (ssa.o): Updated header files in dependences.
3948 * basic-block.h: Added compute_immediate_postdominators declaration.
3949 * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
3950 definition.
3951 * flow.c (compute_immediate_dominators): Updated comment.
3952 (compute_immediate_postdominators): Added definition.
3953 * rtl.h (HARD_REGISTER_P): Added definition.
3954 * ssa.c: Include additional header files.
3955 (assert): Added definition.
3956 (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
3957 include select hard registers.
3958 (ssa_rename_to_insert): Likewise.
3959 (ssa_rename_from_initialize): Likewise.
3960 (ssa_rename_from_lookup): Likewise.
3961 (original_register): Likewise.
3962 (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
3963 include select hard reigsters.
3964 (ssa_rename_from_traverse): Likewise.
3965 (ssa_rename_from_free): Likewise.
3966 (ssa_rename_from_print): Likewise.
3967 (ssa_rename_from_print_1): Likewise.
3968 (ssa_rename_from_hash_function): Likewise.
3969 (ssa_rename_from_equal): Likewise.
3970 (ssa_rename_from_delete): Likewise.
3971 (simplify_to_immediate_dominators): Removed in favor of
3972 flow.c:compute_immediate_dominators.
3973 (find_evaluations_1): Modified to work with hard registers.
3974 (insert_phi_node): Likewise.
3975 (insert_phi_nodes): Likewise.
3976 (struct rename_set_data): Updated prev_reg comment.
3977 (create_delayed_rename): Modified to work with hard registers.
3978 (RENAME_NO_RTX): Updated comment.
3979 (apply_delayed_renames): Modified to work with hard registers.
3980 (rename_insn_1): Likewise and added handling of CLOBBER rtls.
3981 (rename_block): Updated to use revised ssa_rename_to interface.
3982 (rename_registers): Updated to use revised ssa_rename_to and
3983 ssa_rename_from interface.
3984 (convert_to_ssa): Revised to use compute_immediate_dominators and
3985 deal with hard registers.
3986 (make_regs_equivalent_over_bad_edges): Modified to work with hard
3987 registers. Added check for illegal unification of hard register.
3988 (make_equivalent_phi_alternatives_equivalent): Modified to work
3989 with hard registers.
3990 (compute_conservative_reg_partition): Likewise.
3991 (coalesce_if_unconflicting): Modified to work with hard registers
3992 and check for conflicting hard registers.
3993 (mark_phi_and_copy_regs): Revised loop to work only on pseudo
3994 registers.
3995 (rename_equivalent_regs_in_insn): Modified to work with hard
3996 registers.
3997 (record_canonical_element_1): Added definition.
3998 (check_hard_regs_in_partition): Added definition.
3999 (convert_from_ssa): Added data structure deallocation and check
4000 for illegal hard register unification.
4001 (conflict_hard_regs_p): Added definition.
4002 * toplev.c (rest_of_compilation): Added comment.
4003
4004 2000-07-31 Anthony Green <green@redhat.com>
4005
4006 * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
4007
4008 2000-07-31 Jason McMullan <jmcmullan@linuxcare.com>
4009
4010 * builtins.c (expand_builtin_apply): Don't defer pop during
4011 argument setup.
4012
4013 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4014
4015 * calls.c (combine_pending_stack_adjustment_and_call): Only use
4016 preferred_unit_stack_boundary when it is > 1.
4017
4018 2000-07-31 Joseph S. Myers <jsm28@cam.ac.uk>
4019
4020 * c-common.c (init_function_format_info): Add C99 format functions
4021 in C99 mode.
4022
4023 * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
4024 void' or 'register void' as being the special case of 'void' alone
4025 in a parameter list.
4026
4027 * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
4028 discarding qualifiers into a plain warning.
4029
4030 2000-07-31 Kazu Hirata <kazu@hxi.com>
4031
4032 * combine.c: Fix formatting.
4033
4034 * h8300.md: Fix formatting.
4035
4036 * local-alloc.c: Fix formatting.
4037
4038 * h8300.c (get_shift_alg): Remove the variable alg.
4039 (emit_a_shift): Rearrange code to improve readability.
4040
4041 * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
4042
4043 * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
4044 HImode on all architectures and a combination of HImode and SImode
4045 on H8/300H and H8/S.
4046
4047 * h8300.c (split_adds_subs): Rearrange code for conciseness.
4048
4049 Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
4050
4051 * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
4052 in my last checkin.
4053
4054 Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
4055
4056 * recog.c (extract_insn): Set operand_mode according to
4057 operand if match_operand is VOIDmode.
4058
4059 Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
4060
4061 * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
4062
4063 2000-07-31 Geoff Keating <geoffk@cygnus.com>
4064
4065 * c-parse.in (extdefs): Call ggc_collect between external
4066 definitions.
4067
4068 2000-07-30 Michael Hayes <mhayes@cygnus.com>
4069 Richard Henderson <rth@cygnus.com>
4070
4071 * Makefile.in (OBJS): Add doloop.o.
4072 * doloop.c: New file.
4073
4074 * final.c (insn_current_reference_address): Return 0 before final.
4075 * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
4076 * jump.c (any_uncondjump_p): Likewise.
4077 * loop.c (indirect_jump_in_function): Make static.
4078 (strength_reduce): Call doloop_optimize.
4079 (insert_bct, instrument_loop_bct): Remove.
4080 * loop.h (doloop_optimize): Prototype.
4081 * recog.c (split_all_insns): Split all INSN_P.
4082 * toplev.c (flag_branch_on_count_reg): Default on.
4083
4084 * config/c4x/c4x.c (c4x_optimization_options): Don't set
4085 flag_branch_on_count_reg.
4086 * config/i386/i386.c (override_options): Likewise.
4087 * config/rs6000/rs6000.c (optimization_options): Likewise.
4088
4089 * config/i386/i386.md (decrement_and_branch_on_count): Remove.
4090 (doloop_end): New.
4091 (dbra_ge): Remove, as well as all it's splitters.
4092
4093 * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
4094 (doloop_end): New.
4095
4096 * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
4097 (ia64_register_move_cost): Declare.
4098 * config/ia64/ia64.c (ar_lc_reg_operand): New.
4099 (struct ia64_frame_info): Add ar_size.
4100 (ia64_compute_frame_size): Set it.
4101 (save_restore_insns): Save and restore ar.lc.
4102 (ia64_register_move_cost): New, moved from header file. Handle
4103 application registers.
4104 (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers.
4105 (emit_insn_group_barriers): Special case doloop_end_internal.
4106 (ia64_epilogue_uses): Mark ar.lc live at end.
4107 * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
4108 (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
4109 (FIRST_PSEUDO_REGISTER): Make room.
4110 (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
4111 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
4112 (REG_ALLOC_ORDER): Update.
4113 (HARD_REGNO_MODE_OK): Update.
4114 (REGISTER_NAMES): Update.
4115 (enum reg_class): Add AR_M_REGS and AR_I_REGS.
4116 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
4117 (REGNO_REG_CLASS): Update.
4118 (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
4119 (REGISTER_MOVE_COST): Move out of line.
4120 (PREDICATE_CODES): Update.
4121 * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
4122 (addsi3_plus1_alt, adddi3_plus1_alt): New.
4123 (shladd_elim splitter): Allow constants in the predicate.
4124 (doloop_end, doloop_end_internal): New.
4125
4126 2000-07-30 Richard Henderson <rth@cygnus.com>
4127
4128 * genattrtab.c (struct insn_def): Add lineno member.
4129 (struct insn_ent): Likewise.
4130 (struct attr_desc): Likewise.
4131 (struct delay_desc): Likewise.
4132 (struct function_unit_op): Likewise.
4133 (struct function_unit): Likewise.
4134 (check_attr_value): Use message_with_line.
4135 (check_defs): Likewise.
4136 (expand_units): Likewise.
4137 (check_attr_test): Take a lineno argument.
4138 (gen_attr): Likewise.
4139 (gen_insn): Likewise.
4140 (gen_delay): Likewise.
4141 (gen_unit): Likewise.
4142 (main): Give it to them.
4143 (convert_set_attr_alternative): Take an insn_def argument
4144 instead of num_alt and insn_index.
4145 (convert_set_attr): Likewise.
4146 (write_test_expr): Protect INSN_ADDRESSES load
4147 with INSN_ADDRESSES_SET_P.
4148
4149 2000-07-30 Richard Henderson <rth@cygnus.com>
4150
4151 * flow.c (init_propagate_block_info): Use pc_set.
4152
4153 Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
4154
4155 * i386.md (*lea_general_[123]) New insns and splits.
4156 (addsi3 to lea splitter): Handle other modes too.
4157 (shlsi3 to lea splitter): Likewise.
4158 (addhi_1_lea, shlhi_1_lea): New patterns.
4159 (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
4160
4161 Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
4162
4163 * recog.c (general_operand, nonimmediate_operand): Accept
4164 any mode for VOIDmode CONSTANT_P operands.
4165
4166 Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
4167
4168 * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
4169 instead of replace_rtx.
4170 * recog.c (validate_replace_rtx_subexp): New function.
4171 * recog.h (validate_replace_rtx_subexp): Declare.
4172
4173 Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
4174
4175 * combine.c (simplify_set, make_extraction, make_compound_operation
4176 make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
4177 as force_to_mode argument.
4178
4179 Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
4180
4181 * combine.c (if_then_else_cond): Be sure that mode fits in
4182 HOST_WIDE_INT.
4183
4184 Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
4185
4186 * combine.c (record_promoted_value): Allow bitsize of mode
4187 to be equivalent to HOST_BITS_PER_WISE_INT.
4188
4189 Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
4190
4191 * function.c (assign_stack_local_1, assign_stack_temp_for_type):
4192 Do not call gen_mode_alignment when mode is BLKmode.
4193
4194 Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka <jh@suse.cz>
4195
4196 * loop.c (express_from_1): Fix call of simplify_gen_binary.
4197
4198 Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
4199
4200 * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
4201 VOIDmode implies both operands to be VOIDmode.
4202 (simplify_ternary_operation): Compute properly the mode of comparison.
4203 * combine.c (combine_simplify_rtx): Likewise.
4204
4205 2000-07-25 Michael Hayes <mph@paradise.net.nz>
4206
4207 * basic-block.h (struct loops): New field rc_order.
4208 * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
4209 (flow_loops_free): Free rc_order.
4210 (flow_depth_first_order_compute): New parameter rc_order.
4211 (flow_loops_find): Allocate rc_order and swap usage with
4212 dfs_order.
4213
4214 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4215 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4216
4217 * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
4218 (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
4219 (nodb_call, return_from_epilogue): Likewise.
4220 (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
4221 * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
4222 * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
4223 (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
4224 (c4x_valid_type_attribute_p): Likewise.
4225 * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
4226 (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
4227
4228 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4229
4230 * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
4231 and loadhi_big_constant if applicable.
4232 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
4233 and add new splitter.s
4234
4235 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4236
4237 * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
4238
4239 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4240
4241 * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
4242
4243 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4244
4245 * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
4246
4247 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4248
4249 * config/c4x/libgcc.S (divqf3): Improve accuracy.
4250
4251 2000-07-27 Mark Mitchell <mark@codesourcery.com>
4252
4253 Put phi nodes after NOTE_INSN_BASIC_BLOCK.
4254 * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
4255 * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
4256 (get_prev_bb_note): Likewise.
4257 (remove_scope_notes): Likewise.
4258 * flow.c (commit_one_edge_insertion): Likewise.
4259 (merge_blocks_nomove): Likewise.
4260 (verify_flow_info): Likewise.
4261 * gcse.c (insert_insn_end_bb): Likewise.
4262 * reg-stack.c (emit_swap_insn): Likewise.
4263 * ssa.c (first_insn_after_basic_block_note): New function.
4264 (insert_phi_node): Use it.
4265 (rename_block): Likewise.
4266 (eliminate_phi): Likewise.
4267 (make_regs_equivalent_over_bad_edges): Likewise.
4268 (make_equivalent_phi_alternatives_equivalent): Likewise.
4269 (for_each_successor_phi): Likewise.
4270 (convert_from_ssa): Modify phi-node deletion algorithm.
4271
4272 2000-07-29 Andreas Jaeger <aj@suse.de>
4273
4274 * configure.in (mips*-*-linux*): Use mips*el to check for little
4275 endian MIPS, add tmake_file.
4276
4277 * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
4278 (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
4279 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
4280
4281 2000-07-28 Richard Henderson <rth@cygnus.com>
4282
4283 * config/ia64/ia64.c (ia64_print_operand): Fix typos.
4284 Sign extend mode size before negating.
4285
4286 2000-07-28 Richard Henderson <rth@cygnus.com>
4287
4288 * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
4289
4290 2000-07-28 Bernd Schmidt <bernds@cygnus.co.uk>
4291
4292 * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
4293 (cse_insn): Likewise.
4294 (addr_affects_sp_p): Likewise.
4295 * expr.c (move_by_pieces): Likewise.
4296 (clear_by_pieces): Likewise.
4297 * gcse.c (oprs_unchanged_p): Likewise.
4298 * haifa-sched.c (sched_analyze_2): Likewise.
4299 * recog.c (offsettable_address_p): Likewise.
4300 * regclass.c (record_address_regs): Likewise.
4301 * reload.c (find_reusable_reload): Likewise.
4302 (push_reload): Likewise.
4303 (operands_match_p): Likewise.
4304 (decompose): Likewise.
4305 (find_reloads_address_1): Likewise.
4306 (find_inc_amount): Likewise.
4307 * reload1.c (elimination_effects): Likewise.
4308 * resource.c (mark_set_resources): Likewise.
4309 * flow.c (attempt_auto_inc): New function; mostly broken out
4310 of find_auto_inc.
4311 (find_auto_inc): Split into two functions and enhanced to
4312 generate POST_MODIFY.
4313 * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
4314 * rtl.h (count_all_occurrences): Declare.
4315 (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
4316 defined.
4317 * rtlanal.c (count_all_occurrences): New function.
4318 * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
4319 HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
4320
4321 * config/ia64/ia64-protos.h (destination_operand): Declare.
4322 * config/ia64/ia64.c (destination_operand): New function.
4323 (ia64_print_operand): Handle POST_MODIFY.
4324 (rtx_needs_barrier): Likewise.
4325 * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
4326 (HAVE_POST_MODIFY_REG): Define to 1.
4327 (MAX_REGS_PER_ADDRESS): Change to 2.
4328 (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
4329 (LEGITIMATE_ADDRESS_REG): New helper macro.
4330 (LEGITIMATE_ADDRESS_DISP): Likewise.
4331 (PREDICATE_CODES): Add entry for destination_operand.
4332 * config/ia64/ia64.md (all mov patterns): Use destination_operand
4333 predicate for operand 0.
4334
4335 2000-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4336
4337 * dwarf2out.c: Indent #error directive.
4338
4339 * gbl-ctors.h: Fix typo in comment.
4340 (__do_global_ctors): Prototype.
4341
4342 * gcse.c (record_one_set, pre_delete): Remove unused variables.
4343
4344 * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
4345 (print_operand): Initialize variable `t'.
4346
4347 2000-07-27 Aldy Hernandez <aldyh@redhat.com>
4348
4349 * config/arm/arm.md ("call_value"): removed constraints.
4350 Constraints are ignored in expanders.
4351 (*call_value_reg): split =rf into various constraints.
4352 (*call_value_mem): same
4353 (*call_value_symbol): same
4354 (*sibcall_value_insn): same
4355
4356 2000-07-28 Philipp Thomas <pthomas@suse.de>
4357
4358 * install.texi (--enable-nls): Change the description of the NLS
4359 related configure options to match the current state.
4360 (--with-included-gettext): Likewise.
4361 (--enable-maintainer-mode): New description added.
4362 * extend.texi (-fstrict-prototype): Add missing '.'.
4363
4364 2000-07-27 Jim Wilson <wilson@cygnus.com>
4365
4366 * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
4367 DECL_INITIAL (decl) == NULL_TREE.
4368
4369 2000-07-27 Alexandre Oliva <aoliva@redhat.com>
4370
4371 * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies
4372 on insn-attr.h with it.
4373 * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
4374 * insn-addr.h: New header.
4375 (insn_addresses_): Renamed from insn_addresses.
4376 (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
4377 INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
4378 INSN_ADDRESSES_NEW): New macros.
4379 * genattrtab.c (write_test_expr): Use new macros.
4380 * final.c (insn_addresses, init_insn_lengths): Likewise.
4381 (align_fuzz, shorten_branches): Likewise.
4382 (final): Likewise. Do not reject new insns if their addresses
4383 have been added to INSN_ADDRESSES.
4384 * config/arm/arm.c, config/avr/avr.c: Use new macros.
4385 * config/h8300/h8300.c, config/i370/i370.c: Likewise.
4386 * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
4387 * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
4388 * config/sh/sh.c: Likewise.
4389 (output_branchy_insn): Use INSN_ADDRESSES_NEW.
4390
4391 * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
4392
4393 2000-07-27 Andrew Cagney <cagney@b1.cygnus.com>
4394
4395 * gcc.c (struct prefix_list): Add member priority.
4396 (enum path_prefix_priority): Declare.
4397 (add_prefix): Replace ``first'' with ``priority''. Append new
4398 entry but keep list in priority order.
4399 (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or
4400 PREFIX_PRIORITY_LAST to add_prefix.
4401 (process_command): Move include kludge - foo/stageN - to before
4402 foo/include.
4403
4404 2000-07-27 Jason Merrill <jason@redhat.com>
4405
4406 * dwarf2out.c (gen_typedef_die): Abort if we get identical
4407 TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
4408
4409 2000-07-27 RodneyBrown <RodneyBrown@pmsc.com>
4410
4411 * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
4412 * tree.h (get_alias_set, lang_get_alias_set): Prototype.
4413
4414 2000-07-27 Joseph S. Myers <jsm28@cam.ac.uk>
4415
4416 * c-decl.c (finish_function): Don't treat 'main' specially unless
4417 flag_hosted. In C99 mode, return 0 from 'main' unless
4418 DEFAULT_MAIN_RETURN is otherwise defined.
4419
4420 * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
4421 parameters defaulting to int in an old-style function definition.
4422
4423 2000-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4424
4425 * c-parse.in (string): For -Wtraditional, warn about string
4426 concatenation only once per line.
4427
4428 Thu Jul 27 09:25:17 2000 Akiko Matsushita <matusita@sra.co.jp>
4429
4430 * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
4431 for HI-UX/WE2 systems.
4432
4433 2000-07-24 Bruce Korb <bkorb@gnu.org>
4434
4435 * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
4436 defining the __xxx_TYPE__ macros.
4437 * fixincl/fixincl.tpl(gnu_type_map): now obsolete
4438 * fixincl/fixlib.h: don't need to include "tm.h" anymore
4439 * fixincl/inclhack.def(type_map): now obsolete
4440
4441 Thu Jul 27 11:54:17 2000 Andrew Cagney <cagney@b1.cygnus.com>
4442
4443 * cpp.texi: Append a trailing full-stop to xrefs where needed.
4444
4445 2000-07-26 Dave Pitts <dpitts@cozx.com>
4446
4447 * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
4448 routine constants.
4449 (mvs_hash_alias): New function.
4450 (mvs_add_alias): Change argument spacing.
4451 (mvs_need_alias): Change aliasing criteria. Added documentation.
4452 (mvs_get_alias): Change to use hashed name. The hashed name prevents
4453 CSECT name collisions.
4454 (mvs_check_alias): Likewise.
4455 (handle_pragma): Change documentation.
4456 * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
4457 mode from SImode to DImode.
4458 (iorhi3): Changed LTORG size for insn.
4459
4460 Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
4461
4462 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
4463 mem if the address is a mode_dependent_address_p.
4464
4465 2000-07-26 Kazu Hirata <kazu@hxi.com>
4466
4467 * h8300.c (print_operand): Print ":8" when the 'R' operand is
4468 suitable for 8-bit absolute.
4469 * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
4470 (OK_FOR_U): Add a case for the 8-bit constant address on the
4471 H8/300H.
4472
4473 Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson <hp@axis.com>
4474
4475 * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
4476 && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
4477 ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
4478 lack of implemented alignment.
4479
4480 2000-07-26 Geoffrey Keating <geoffk@cygnus.com>
4481
4482 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
4483 cross-compiling between 64-bit and 32-bit machines.
4484
4485 2000-07-27 Richard Henderson <rth@cygnus.com>
4486
4487 * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
4488 (movhicc_astep, movhi_internal_astep): New.
4489 (movsicc_astep, movsi_internal_astep): New.
4490 (movdicc_astep, movdi_internal_astep): New.
4491 (movsfcc_astep, movsf_internal_astep): New.
4492 (movdfcc_astep, movdf_internal_astep): New.
4493 (movxfcc_astep, movxf_internal_astep): New.
4494 (cmovdi_internal_astep, cmovsi_internal_astep): New.
4495 Unify the cmov[ds]i splitters.
4496
4497 2000-07-27 Rodney Brown <RodneyBrown@pmsc.com>
4498
4499 * real.c (asctoeg): Rename `error' label to unexpected_char_error
4500
4501 2000-07-26 Nick Clifton <nickc@cygnus.com>
4502
4503 * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
4504 __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h
4505
4506 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
4507 well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
4508
4509 2000-07-26 Alexandre Oliva <aoliva@redhat.com>
4510
4511 * c-decl.c (finish_enum): Convert enumerations that fit in an
4512 `int' to `int'.
4513 (build_enumerator): In pedantic mode, cast to `int' those that
4514 don't.
4515
4516 2000-07-25 Rodney Brown <RodneyBrown@pmsc.com>
4517
4518 * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
4519
4520 Tue Jul 25 23:08:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4521
4522 * sh.md (cmpgtdi_t): Must be split.
4523 (cmpgtdi_t+1): New splitter.
4524
4525 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
4526
4527 * cpplib.c (_cpp_check_directive): Issue -Wtraditional
4528 warnings for indented directives even if we are skipping.
4529
4530 2000-07-25 Nathan Sidwell <nathan@codesourcery.com>
4531
4532 * invoke.texi (strict-prototypes): Remove.
4533 * extend.texi (Deprecated Features): Add strict-prototypes.
4534 (Backwards Compatibility): New node.
4535
4536 2000-07-25 Jakub Jelinek <jakub@redhat.com>
4537
4538 * config/i386/i386.md (andsi_1+1): Allow HImode.
4539 (andsi_1+2): Require q_regs_operand.
4540
4541 2000-07-25 Jakub Jelinek <jakub@redhat.com>
4542
4543 * config/i386/i386.md (call_pop): Check operands[0],
4544 not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
4545 (call): Likewise.
4546 (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
4547 (call_value): Likewise.
4548
4549 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
4550
4551 * toplev.c (pipe_closed): Delete.
4552 (crash_signal): New. Generate ICE for a fatal signal.
4553 (float_signal): Call crash_signal outside a float-handler
4554 block, not abort.
4555 (main): Install crash_signal as handler for core-dumping signals.
4556
4557 2000-07-25 David Edelsohn <edelsohn@gnu.org>
4558
4559 * rs6000.c (print_operand, case 'T'): New case.
4560
4561 * rs6000.md (call_indirect_aix32): Convert to expander of
4562 scheduled instructions.
4563 (call_indirect_aix64): Likewise.
4564 (call_value_indirect_aix{32,64}): Likewise.
4565 (call, call_value): Invoke expanders for AIX. Fall through to
4566 matchers for SysV.
4567 (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
4568 (call_value_indirect_nonlocal_aix{32,64}): New patterns.
4569 (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1
4570 only "g" constraint.
4571 (call_nonlocal_aix64): Likewise.
4572 (call_value_nonlocal_aix{32,64}): Likewise.
4573 (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
4574 operands.
4575 (call_value_nonlocal_sysv): New pattern.
4576 (indirect_jump{si,di}): Use new 'T' modifier.
4577 (tablejump{si,di} matchers): Likewise.
4578 (return_internal_{si,di}): Likewise.
4579 (return_eh_{si,di}): Likewise.
4580
4581 2000-07-24 Richard Henderson <rth@cygnus.com>
4582
4583 * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
4584 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
4585 * config/ia64/ia64.md (movdi_internal): Use it.
4586
4587 2000-07-24 Zack Weinberg <zack@wolery.cumb.org>
4588
4589 * cppexp.c: Warn about unary + if -Wtraditional.
4590 * cpplex.c (lex_line): Always set BOL on the first token of a line.
4591
4592 2000-07-24 Michael Meissner <meissner@redhat.com>
4593
4594 * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
4595 unsupported macro.
4596
4597 2000-07-24 Nick Clifton <nickc@cygnus.com>
4598
4599 * config/arm/arm.c (emit_multi_reg_push): Generate a
4600 REG_FRAME_RELEATED_NOTE that is compatable with the code in
4601 dwarf2out_debug_frame_expr.
4602
4603 2000-07-24 Jason Merrill <jason@redhat.com>
4604
4605 * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
4606 UNALIGNED_INT_ASM_OP.
4607 (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
4608 a location expression.
4609 (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't
4610 assume indirect access if we're saving the CFA address exactly.
4611
4612 * Makefile.in (bootstrap): Move -BstageN/ to the end.
4613
4614 2000-07-24 Jakub Jelinek <jakub@redhat.com>
4615
4616 * tradcpp.c (main): Update max_include_len for cpp_include_defaults
4617 as well.
4618
4619 2000-07-24 Michael Meissner <meissner@redhat.com>
4620
4621 * invoke.texi (D30V Options): Add d30v options.
4622
4623 Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com)
4624
4625 * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
4626 needed by our gcse pass anymore.
4627 (free_pre_mem): Corresponding changes.
4628 (compute_pre_data): Do not call compute_transpout anymore.
4629
4630 * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
4631 (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
4632 changes.
4633
4634 * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
4635 (compute_pre_data): Do it here instead.
4636
4637 * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
4638 'temp_bitmap'.
4639 (pre_delete): Corresponding changes.
4640
4641 2000-07-23 Mark Mitchell <mark@codesourcery.com>
4642
4643 * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
4644 to figure out whether or not a variable has already been emitted.
4645
4646 Sun Jul 23 14:49:12 2000 Jason Eckhardt <jle@cygnus.com>
4647
4648 * config/i860/i860.md (untyped_call expander): Use GEN_CALL
4649 instead of gen_call.
4650
4651 Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk)
4652
4653 * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
4654
4655 2000-07-23 Kazu Hirata <kazu@hxi.com>
4656
4657 * h8300.c: Fix formatting.
4658
4659 2000-07-23 Joseph S. Myers <jsm28@cam.ac.uk>
4660
4661 * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
4662 for `long' switch expression into a plain warning.
4663
4664 * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
4665 (yylex): Don't pedwarn for "inline" in C99 mode.
4666
4667 * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
4668 with %p.
4669 * ggc-page.c (debug_print_page_list, alloc_page, free_page,
4670 ggc_alloc): Likewise.
4671 * bb-reorder.c (dump_scope_forest_1): Likewise.
4672
4673 2000-07-22 Aldy Hernandez <aldyh@redhat.com>
4674
4675 * reload.c (find_reloads_toplev): Add new parameter
4676 "address_reloaded".
4677 (find_reloads): Add new parameter to find_reloads_toplev calls.
4678
4679 2000-07-22 Jeffrey Oldham <oldham@codesourcery.com>
4680
4681 * collect2.c (main): Typo fixed.
4682 * diagnostic.c: Typo fixed.
4683 * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
4684 * eh-common.h: Typo fixed.
4685 * emit-rtl.c (start_sequence): Typo fixed.
4686 * flow.c (find_label_refs): Typo fixed.
4687 (calculate_global_regs_live): Typo fixed.
4688 (mark_regno_cond_dead): Typo fixed.
4689 (create_edge_list): Typos fixed.
4690 (verify_edge_list): Typo fixed.
4691 * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
4692 * loop.c (strength_reduce): Typo in function name fixed.
4693 * rtl.h: Added comments. Typo in function name fixed.
4694 * rtlanal.c: Typo in function name fixed.
4695 (insn_dependant_p): Rename to ...
4696 (insn_dependent_p): ... this.
4697 (computed_jumo_p): Typo fixed.
4698
4699 2000-07-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4700
4701 * system.h (__FUNCTION__): Wrap definition in #ifndef.
4702
4703 2000-07-21 David Edelsohn <edelsohn@gnu.org>
4704
4705 * rs6000.h (SIZE_TYPE): Define.
4706
4707 2000-07-21 Mark Mitchell <mark@codesourcery.com>
4708
4709 * ssa.c (rename_insn_1): Don't rename registers that are
4710 CLOBBERed.
4711
4712 2000-07-21 Zack Weinberg <zack@wolery.cumb.org>
4713
4714 * diagnostic.c (trim_filename, fancy_abort): Moved here from
4715 rtl.c.
4716 (fatal_function, set_fatal_function): Removed.
4717 (fatal): Don't prepare for or call the fatal_function.
4718 (diagnostic_lock, error_recursion): New.
4719 (diagnostic_for_decl, report_diagnostic): Guard against
4720 re-entering the error reporting routines.
4721 (fancy_abort): Assume function is not NULL.
4722
4723 * errors.c (fancy_abort): New. Assume function is not NULL.
4724 * tradcpp.c (fancy_abort): Assume function is not NULL.
4725
4726 * system.h: Provide default definition of __FUNCTION__.
4727 * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
4728 Always use __FUNCTION__ in definition of abort.
4729 * tree.h: Likewise.
4730 * varray.h: Likewise.
4731 * toplev.h: Likewise. Don't prototype set_fatal_function.
4732
4733 2000-07-20 Geoff Keating <geoffk@cygnus.com>
4734
4735 * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
4736 in 64-bit mode.
4737 * glimits.h: Don't do #if defined for ARCH_PPC.
4738
4739 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
4740 constants of size no larger than a pointer should go in the TOC.
4741 Add 'MODE' parameter.
4742 (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
4743 ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
4744 (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
4745 * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
4746 * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
4747 * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
4748 (rs6000_legitimize_address): Likewise.
4749 (rs6000_emit_move): Likewise.
4750 (rs6000_select_rtx_section): Likewise.
4751 (output_toc): Deal properly with outputting small constants like
4752 HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
4753 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
4754 MODE parameter. Put small constants in the TOC.
4755
4756 * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
4757 easy in SImode.
4758 (rs6000_emit_move): When reload calls us with an illegitimate
4759 address, exit early. Move the change_address calls to one place
4760 at the end of the routine. Merge the SImode and DImode expanders.
4761 When called by reload to put an integer into a FP register, force
4762 it to memory.
4763
4764 * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
4765 field.
4766 (rs6000_hash_constant): Hash mode too.
4767 (toc_hash_function): Allow for key_mode.
4768 (toc_hash_eq): Structures are different if key_mode differs.
4769 (output_toc): Add 'mode' parameter. Save key_mode.
4770 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
4771 Pass 'mode' parameter.
4772 * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
4773
4774 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
4775 for vtable references.
4776
4777 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
4778 choice, don't put integer values in FP regs.
4779
4780 Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com)
4781
4782 * flow.c (verify_flow_info): Revamp code to verify that the
4783 head and end of each basic block are in the insn chain.
4784
4785 Thu Jul 20 18:02:35 2000 Michael Matz <matzmich@cs.tu-berlin.de>
4786
4787 * gcse.c (record_one_set): Prepend instead of append onto
4788 reg_set_table, making it O(n) instead O(n^2).
4789 * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
4790 Use a queue instead of a stack as worklist.
4791
4792 2000-07-20 Kazu Hirata <kazu@hxi.com>
4793
4794 * h8300.c (two_insn_adds_subs_operand): Fix a typo.
4795 * h8300.h (OK_FOR_T): New.
4796 (EXTRA_CONSTRAINT): Support OK_FOR_T.
4797 * h8300.md: Use inc/dec.[wl] for increment/decrement
4798 by 1 and 2 in HI and SI modes.
4799
4800 2000-07-20 Jim Wilson <wilson@cygnus.com>
4801
4802 * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
4803 larger than 14 bits.
4804
4805 2000-07-20 Zack Weinberg <zack@wolery.cumb.org>
4806
4807 * cppmacro.c (CAN_PASTE_AFTER): New macro.
4808 (count_params): Don't set GNU_REST_ARGS on anything.
4809 (save_expansion): Set PASTE_LEFT only on tokens for which
4810 CAN_PASTE_AFTER is true, or which are named operators.
4811
4812 * cpplex.c (parse_args): Distinguish between a rest argument
4813 given one empty argument, and a rest argument given zero arguments.
4814 (maybe_paste_with_next): Look for VOID_REST tag, and trigger
4815 deletion of previous token based on that.
4816 (get_raw_token): Flatten some control structure.
4817
4818 * cpplib.h (CPP_LAST_EQ): Correct.
4819 (VOID_REST): New token flag.
4820 (GNU_REST_ARGS): Delete.
4821
4822 * tradcpp.c (main): Don't munge -D options.
4823 (make_definition): Bring -D handling in line with cpplib.
4824 (do_define): Strip all leading whitespace from macro definitions.
4825
4826 2000-07-20 David Billinghurst <David.Billinghurst@riotinto.com.au>
4827
4828 * Makefile.in (tradcpp): Depend on intl.o and version.o.
4829
4830 2000-07-20 Bruce Korb <bkorb@gnu.org>
4831
4832 * fixincl/check.tpl: strip the platform specific types before testing
4833 * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
4834 * fixincl/fixincl.tpl: use platform specific types
4835 * fixincl/fixlib.h: include the platform specific types
4836 * fixincl/inclhack.def(gnu_types): don't supply the types
4837 * fixincl/fixincl.x: regen
4838
4839 2000-07-19 Jim Wilson <wilson@cygnus.com>
4840
4841 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
4842 GR_REGS.
4843
4844 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
4845
4846 * tradcpp.c (rescan): Do not recognize directives when the #
4847 is indented.
4848
4849 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
4850
4851 Implement C++ named operators.
4852
4853 * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
4854 of operators allowed in #if and having an _EQ variant. Add
4855 CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
4856 (cpp_token flags): Add NAMED_OP.
4857 (enum node_type): Add T_OPERATOR.
4858 (struct cpp_hashnode): Add code slot to value union.
4859 * cpphash.h (spec_nodes): Remove n_defined.
4860
4861 * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
4862 (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
4863 (is_macro_disabled): Tweak error messages.
4864
4865 * cpplib.c (get_define_node): Disallow all named operators as
4866 macro names. Tweak error messages.
4867 (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
4868
4869 * cppinit.c (builtin_array): Add entries for the named operators.
4870 * cppexp.c (lex): Check for CPP_DEFINED token.
4871 (priority table): Add entries for CPP_MIN and CPP_MAX.
4872 (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
4873
4874 2000-07-19 Bernd Schmidt <bernds@cygnus.co.uk>
4875
4876 * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
4877 larger than the array of cuids.
4878 (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
4879 cuids.
4880
4881 2000-07-19 Bruce Korb <bkorb@gnu.org>
4882
4883 * fixinc/fixincl.c: Convert to using a table of environment variables
4884 and activate the auto-edit marker on the fixed output files.
4885 * fixinc/fixlib.h: Define the environment table
4886 * fixinc/fixincl.sh: export the ${INPUT} dir
4887 * fixinc/check.tpl: likewise
4888
4889 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
4890
4891 * gcc.c (.h spec): Fix typo.
4892
4893 Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
4894
4895 * Makefile.in: Fix tradcif.c path.
4896
4897 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
4898
4899 * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
4900 macros, not five.
4901
4902 * cpphash.h (TOKEN_NAME): New macro.
4903 (_cpp_spell_operator): Deleted.
4904 (token_spellings): Now _cpp_token_spellings.
4905
4906 * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
4907 * cpplex.c: Use OP and TK macros when expanding the
4908 TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens,
4909 store the stringification of the enumeration name (CPP_CHAR,
4910 etc.) in the name slot of token_spellings.
4911 Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
4912 token_spellings directly.
4913 * cpplib.c: Use TOKEN_SPELL.
4914
4915 * cpplex.c (_cpp_push_token): If the token being pushed back
4916 is the previous token in this context, just subtract one from
4917 context->posn.
4918 * cppmacro.c (save_expansion): Clear aux field when storing a
4919 placemarker.
4920
4921 2000-07-18 Jakub Jelinek <jakub@redhat.com>
4922
4923 * cpplex.c (cpp_scan_buffer): Output line command even at the stop
4924 buffer, provided it is not NULL.
4925
4926 2000-07-18 Alexandre Oliva <aoliva@redhat.com>
4927
4928 * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
4929 case of invalid volatile re-declaration.
4930
4931 2000-07-18 Jakub Jelinek <jakub@redhat.com>
4932
4933 * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
4934 (expand_call): Adjust caller.
4935
4936 2000-07-17 Gabriel Dos Reis <gdr@codesourcery.com>
4937
4938 * diagnostic.h (report_diagnostic): Change prototype.
4939
4940 * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
4941 diagnostic_for_decl): Change prototype.
4942 (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
4943 error, warning, error_with_file_and_line,
4944 warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
4945 Adjust call to report_diagnostic, diagnostic_for_decl.
4946 (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
4947 (output_verbatim, verbatim): Adjust call to output_do_verbatim.
4948
4949 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
4950 varaible argument list.
4951
4952 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
4953
4954 * cpphash.c: Don't include hashtab.h. Most macro-handling code
4955 moved to cppmacro.c.
4956 (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
4957 dump_hash_helper): Delete.
4958 (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
4959 cpp_forall_identifiers): New. Implement specialized version of
4960 Vlad's expandable hash table.
4961 (cpp_lookup): Use new functions.
4962 (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
4963 implementation.
4964 * cppmacro.c: New file.
4965 * cppinit.c (dump_macros_helper): New.
4966 (cpp_finish): Iterate over the identifier table directly.
4967 * cpplex.c (parse_name): Calculate the hash of the identifier
4968 while we scan it. Use _cpp_lookup_with_hash when we can.
4969
4970 * cpphash.h: Update prototypes.
4971 (xcnewvec, HASHSTEP): New helper macros.
4972 * cpplib.h: Update prototypes.
4973 * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
4974 (cppmacro.o): New rule.
4975 (cpphash.o): Update deps.
4976
4977 * cppmain.c: Do not set pfile->printer if no_output is on.
4978
4979 2000-07-15 Neil Booth <neilb@earthling.net>
4980
4981 * cpplib.c: Change all directive-handler functions to return
4982 void, not int.
4983 * cpphash.h: Update typedefs.
4984
4985 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
4986
4987 * configure: Regenerate.
4988
4989 * extend.texi (Extended Asm): Mention that a memory clobber
4990 does not count as a side-effect.
4991
4992 * unroll.c (copy_loop_body): Fix one instance of using host
4993 arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
4994 cross-compile.
4995
4996 * tlink.c (scan_linker_output): Tweak for output of AIX ld.
4997
4998 2000-07-17 Richard Henderson <rth@cygnus.com>
4999
5000 * config/ia64/ia64.md (movdi): Split out load address code.
5001 New post-reload splitter for symbolic operands.
5002 (movdi_internal): Abort if we didn't split symbolic operands
5003 when we should have.
5004 * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
5005 (ia64_reorg): Split insns when not optimizing.
5006 * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
5007
5008 Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
5009
5010 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
5011 instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
5012
5013 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
5014
5015 * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
5016
5017 2000-07-17 Jason Merrill <jason@redhat.com>
5018
5019 * Makefile.in (clean): Remove libgcc directory.
5020
5021 * configure.in (-Wno-long-long check): Use higher-level macros.
5022
5023 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
5024
5025 * simplify-rtx.c (simplify_binary_operation): Recognize
5026 (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
5027 (simplify_ternary_operation): Do not examine MODE_BITSIZE of
5028 a CONST_INT, it will always be zero.
5029
5030 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
5031
5032 * loop.c (check_dbra_loop) : Return if more than one condition is
5033 present to control the loop.
5034
5035 Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com>
5036
5037 * mips.c (mips_expand_prologue): Don't calculate the last argument
5038 register unless we need it. When we are calculating this, make
5039 sure FUNCTION_ARG is giving us a REG.
5040
5041 2000-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
5042
5043 * flow.c (libcall_dead_p): Use single_set to verify the insn
5044 has only one set and get for analysis.
5045 (propagate_one_insn): Don't pass the PATTERN of the insn.
5046
5047 2000-07-17 Mark Klein <mklein@dis.com>
5048
5049 * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
5050
5051 2000-07-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
5052
5053 * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
5054 * configure.in (TARGET_GETGROUPS_T): Evaluate.
5055 * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
5056 of second argument of getgroups.
5057 * configure, config.in: Rebuilt.
5058
5059 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
5060
5061 * simplify-rtx.c (simplify_relational_operation): Two signed
5062 values with equal high words are less/greater than each other if
5063 their low words are less/greater when considered as unsigned.
5064
5065 Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org>
5066
5067 * configure.in (vax-*-openbsd): Change to new style configuration,
5068 add collect2/float_format information.
5069 * configure: Rebuilt.
5070 * config/vax/openbsd1.h: New.
5071 * config/vax/openbsd.h: New.
5072 * config/vax/t-openbsd: New.
5073
5074 2000-07-17 Chip Salzenberg <chip@valinux.com>
5075
5076 * c-common.c (shorten_compare): Quiet warnings about unsigned
5077 comparisons with zero when they occur in a system header.
5078
5079 2000-07-17 Joseph S. Myers <jsm28@cam.ac.uk>
5080
5081 * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
5082 update to describe current practice.
5083
5084 * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
5085
5086 * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
5087 references to C9X. Change references to -fstd and -flang-isoc9x
5088 to refer to -std.
5089
5090 * c-common.c (scan_char_table): Allow "z" length modifiers on
5091 diouxXn formats.
5092 (check_format_info): Use TYPE_DOMAIN on the type matched against
5093 for "z" formats, to retrieve the language size_t rather than the
5094 internal one.
5095
5096 * c-common.c (check_format_info): Do not make a pedantic objection
5097 to the 'L' length modifier if used with a floating point type
5098 character.
5099
5100 * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
5101 constants in C99 mode.
5102
5103 2000-07-17 Kazu Hirata <kazu@hxi.com>
5104
5105 * h8300.md: Fix the format of mac.
5106 (movsi_h8300hs): Output a tab after stmac instead of a space.
5107
5108 * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
5109 profitable adds/subs sequences.
5110
5111 * fold-const.c: Fix comment typos.
5112
5113 2000-07-16 Laurynas Biveinis <lauras@softhome.net>
5114
5115 * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
5116
5117 2000-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5118
5119 * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
5120
5121 2000-07-16 Neil Booth <NeilB@earthling.net>
5122
5123 * cpplex.c: Update comments.
5124 * README.Portability: Small update.
5125
5126 2000-07-16 Neil Booth <NeilB@earthling.net>
5127
5128 * README.Portability: Small update.
5129
5130 2000-07-15 Richard Henderson <rth@cygnus.com>
5131
5132 * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
5133 * config/ia64/ia64.c (ia64_move_ok): New function.
5134 * config/ia64/ia64.md (movqi, movqi_internal): Use it.
5135 (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
5136
5137 2000-07-15 Zack Weinberg <zack@wolery.cumb.org>
5138
5139 * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
5140 immediately following a paste operator.
5141 * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
5142 (cpp_reader_init): Call it, if HOST_EBCDIC.
5143 (cpp_handle_options): Do not sort option list here.
5144 (handle_option): Rename to cpp_handle_option and export.
5145 * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
5146 _cpp_get_token directly.
5147 (cpp_scan_line): Return 0 at EOF, 1 otherwise.
5148 * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
5149 * cpplib.h: Prototype cpp_handle_option. Update prototype of
5150 cpp_scan_line.
5151
5152 2000-07-15 Richard Henderson <rth@cygnus.com>
5153
5154 * fold-const.c (extract_muldiv): Don't optimize past an unsigned
5155 cast around an expression. Tidy other unsigned tests.
5156
5157 2000-07-15 Gabriel Dos Reis <gdr@codesourcery.com>
5158
5159 * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
5160 v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
5161 (v_message_with_decl): Rename to ...
5162 (format_with_decl): ... this. Tweak
5163 (diagnostic_for_decl): New function.
5164 (fatal_io_error): Use verbatim in lieu of notice.
5165 (announce_function): Use verbatim.
5166 (default_print_error_function): Likewise.
5167 (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
5168 infratructure.
5169
5170 2000-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5171
5172 * mips.c (function_arg_pass_by_reference): Don't do automatic
5173 aggregate initialization.
5174 (machine_dependent_reorg): Initialize variable `mode'.
5175
5176 * mips.md (absdi2): Change variable `regno1' to unsigned int.
5177 (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
5178 conflicts with sys/param.h macro of the same name.
5179 (reload_outdi): Likewise.
5180
5181 2000-07-15 Michael Meissner <meissner@redhat.com>
5182
5183 * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
5184 == CONST + INCREMENT, don't overwrite the tree node for FOO++,
5185 create a new node instead.
5186
5187 2000-07-15 Neil Booth <NeilB@earthling.net>
5188
5189 * README.Portability: Correct example about calling a function
5190 through a pointer to function. Format wide paragraphs.
5191
5192 2000-07-15 Michael Meissner <meissner@redhat.com>
5193
5194 * README.Portability: Update integer suffixes and function
5195 prototype sections.
5196
5197 2000-07-15 Neil Booth <NeilB@earthling.net>
5198
5199 * README.Portability: Small update.
5200
5201 2000-07-15 Neil Booth <NeilB@earthling.net>
5202
5203 * README.Portability: New file.
5204
5205 Fri Jul 14 18:13:53 2000 Mark P Mitchell <mark@codesourcery.com>
5206
5207 * INSTALL: Give special instructions for building GCC on Irix 6.
5208 * config/mips/x-iris6 (CC): Don't set it.
5209 (OLDCC): Likewise.
5210
5211 2000-07-14 Jason Merrill <jason@redhat.com>
5212
5213 * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
5214 register in the stack and later in another register, use the new
5215 register.
5216
5217 Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com>
5218
5219 * config/mips/mips.md: (absdi2): Handle sign_extend for
5220 second operand.
5221
5222 2000-07-14 Nathan Sidwell <nathan@codesourcery.com>
5223
5224 * cpplib.c (do_pragma_dependency): Tidy warning messages.
5225
5226 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
5227
5228 * .cvsignore: Correct typo.
5229
5230 2000-07-13 Mark Mitchell <mark@codesourcery.com>
5231
5232 * .cvsignore: Add generated YACC files.
5233 * objc/.cvsignore: New file.
5234
5235 2000-07-14 Neil Booth <NeilB@earthling.net>
5236
5237 * cpplex.c (adjust_column): New funcion.
5238 (skip_whitespace): Use it.
5239 (skip_block_comment): Use it, and warn about /*/* with
5240 -Wcomments.
5241
5242 2000-07-14 Neil Booth <NeilB@earthling.net>
5243
5244 * cpphash.c (struct macro_info): Add new members.
5245 (_cpp_free_definition): Delete the macro directly.
5246 (count_params): Return void, with first token of
5247 expansion in struct macro_info on success.
5248 (parse_define): Return int. Hoist syntax checking from
5249 save_macro_expansion. Leave call to save_expansion to
5250 _cpp_create_definition.
5251 (alloc_macro): Needs just 2 arguments.
5252 (free_macro): Delete.
5253 (save_expansion): Don't perform syntax check.
5254 (_cpp_create_definition): Call save_expansion.
5255
5256 2000-07-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5257
5258 * genrecog.c (write_header): Split long string.
5259
5260 * cpphash.c (macro_info): Don't use the `signed' keyword.
5261
5262 * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
5263
5264 2000-07-13 Jakub Jelinek <jakub@redhat.com>
5265
5266 * calls.c (stored_args_map): New variable.
5267 (check_sibcall_argument_overlap_1): New.
5268 (check_sibcall_argument_overlap): New.
5269 (expand_call): Initialize stored_args_map.
5270 Call check_sibcall_argument_overlap.
5271
5272 2000-07-13 Bruce Korb <bkorb@gnu.org>
5273
5274 * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
5275 (emit_gnu_type): utility procedure for gnu_type_fix
5276 (gnu_type_fix): implement various pre-processor guards around
5277 standard types so these types can be defined over and over
5278 * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
5279 types alluded to above will have GNU-compliant base types
5280 * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
5281 * fixinc/inclhack.def: add test_text entries and utilize the new
5282 "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
5283 * fixinc/fixincl.x: regenerate
5284
5285 2000-07-12 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5286
5287 * diagnostic.c (vline_wrapper_message_with_location,
5288 v_message_with_file_and_line, v_error_with_file_and_file,
5289 v_error_for_asm, v_warning_for_asm, vfatal,
5290 v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
5291 vsorry, verror, vwarning, vpedwarn): Remove.
5292 (diagnostic_for_asm): New function.
5293 (pedwarn, error, warning, pedwarn_with_file_and_line,
5294 error_with_file_and_line, warning_with_file_and_line, sorry,
5295 error_for_asm, warning_for_asm, fatal): Reimplement.
5296 (finish_diagnostic): Clear diagnostic info as well.
5297
5298 2000-07-13 Neil Booth <NeilB@earthling.net>
5299
5300 * c-common.h (flag_digraphs): New.
5301 * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
5302 * c-lex.c (yylex): Use flag_digraphs to decide whether to
5303 honour digraphs.
5304
5305 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
5306
5307 * gcc.c (do_spec_1): Add new %B operator.
5308 (set_input): Prepare for %B.
5309
5310 (link_command_spec): Move up with the other tm.h-
5311 overrideable specs. Factor out the portion conditional on
5312 LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
5313 (struct compiler): Just have a single spec string. All users
5314 updated.
5315 (default_compilers): Remove unnecessary braces.
5316 (static_specs): Update.
5317
5318 (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
5319 named specs.
5320 (C and assembly specs): Use the new named specs, as appropriate.
5321
5322 * objc/lang-specs.h: Use the new named specs.
5323 Remove unnecessary braces.
5324
5325 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
5326
5327 * gcc.c (execute): If a subprocess gets a fatal signal, report
5328 strsignal() of the signal number, and ask for a bug report.
5329 Do not do this for SIGPIPE if there's already been an error.
5330
5331 * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
5332 Delete pipe_closed.
5333
5334 * tradcif.c: Remove.
5335
5336 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
5337
5338 * final.c (profile_function): Do not emit profile counters in
5339 the data section, if NO_PROFILE_COUNTERS is defined.
5340 * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
5341 FUNCTION_PROFILER.
5342
5343 * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
5344 (FUNCTION_PROFILER): Just emit a call to mcount.
5345
5346 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
5347
5348 * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
5349
5350 * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
5351 cpplib.c, cpplib.h: Eradicate all traces of code dependent on
5352 traditional, lang_chill, or lang_fortran.
5353
5354 * cppfiles.c: #undef strcmp to suppress warning about macros
5355 used without arguments.
5356 (_cpp_execute_include): Use f, not fname, in "No include path"
5357 error.
5358 (_cpp_pop_file_buffer): New function.
5359 * cpplib.c: Don't include <sys/mman.h>.
5360 (cpp_push_buffer): Set line_base and lineno in new buffer.
5361 (cpp_pop_buffer): Use _cpp_pop_file_buffer.
5362
5363 * cpplex.c: Move all prototypes and structure declarations to the
5364 top of the file. Properly parenthesise some macro arguments.
5365 (cpp_scan_line): New function.
5366 (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
5367 don't need to walk up the stack counting.
5368
5369 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5370
5371 * c-common.c (combine_strings): Emit a pedantic warning when a
5372 string length is greater than the minimum ANSI C is required
5373 to support.
5374
5375 Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com)
5376
5377 * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
5378 * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
5379
5380 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5381
5382 * c-decl.c (define_label): Warn about identifier conflicts with
5383 labels in traditional C.
5384
5385 * c-parse.in (unop +): Warn about the unary plus operator for
5386 traditional C.
5387
5388 * c-typeck.c (store_init_value): Warn about automatic aggregate
5389 initialization for traditional C.
5390
5391 * invoke.texi (-Wtraditional): Document new warnings.
5392
5393 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
5394
5395 * Makefile.in (c-errors.o): Fix thinko in dependency.
5396
5397 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
5398
5399 * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
5400 -traditional, -ftraditional, or -traditional-cpp was given.
5401 Do not pass -traditional to the preprocessor.
5402 (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
5403 preprocessor does it automatically.
5404 * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
5405
5406 * ch/lang-specs.h: Always use tradcpp. Do not pass
5407 -traditional, -trigraphs, or -pedantic to the preprocessor.
5408 * f/lang-specs.h (.F spec): Likewise. Don't bother defining
5409 _LANGUAGE_FORTRAN.
5410
5411 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
5412
5413 * cppexp.c (LOGICAL): Delete macro.
5414 (_cpp_parse_expr): Do not use UNARY for unary +. Implement ||
5415 and && directly.
5416
5417 * cpphash.c (HASHSIZE): Increase to 4096.
5418 (struct hashdummy): Add hash field.
5419 (eq_HASHNODE): Compare unreduced hashes, then lengths, then
5420 the string values using memcmp.
5421 (cpp_lookup): Set dummy.hash.
5422
5423 Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
5424
5425 * configure.in (m88k-openbsd): Express configuration using new fragment
5426 style.
5427 * configure: Rebuilt.
5428 * m88k/aout-dbx.h: New.
5429 * m88k/openbsd.h: New.
5430 * m88k/xm-openbsd.h: New.
5431
5432 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5433
5434 * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
5435
5436 2000-07-12 Richard Henderson <rth@cygnus.com>
5437
5438 * reload.c (push_secondary_reload): Make sure to add the new
5439 reload at the end, after acquiring secondary memory.
5440
5441 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5442
5443 * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
5444
5445 * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
5446 lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
5447
5448 * c-parse.in (stmt): Delete unused variables.
5449
5450 * convert.c (convert_to_vector): Likewise.
5451
5452 * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
5453
5454 * tree.c (finish_vector_type): Prototype.
5455
5456 2000-07-12 Bruce Korb <bkorb@gnu.org>
5457
5458 * fixinc/fixfixes.c: use xmalloc
5459 * fixinc/fixincl.c(initialize): set program name for xmalloc
5460 * fixinc/fixlib.c(must_malloc): obsolete
5461 (is_cxx_header): no longer used - disabled
5462 (skip_quote): inserted and disabled for future use
5463 * fixinc/fixlib.h: reflects above
5464 * fixinc/fixtests.c: removed dinkleberries
5465
5466 2000-07-12 Neil Booth <NeilB@earthling.net>
5467
5468 * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
5469 * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
5470
5471 * cpphash.c: (struct macro_info, alloc_macro, free_macro,
5472 struct toklist_dummy): New.
5473 (cpp_free_definition): Free macros with free_macro.
5474 (count_params): Don't save paramter spellings. Save macro
5475 information in a struct macro_info.
5476 (parse_define): Don't allocate a token list.
5477 (save_expansion): Allocate the macro's token list, and
5478 save parameter spellings if necessary. Use TOKEN_SPELL.
5479 (cpp_create_definition): Make list const.
5480
5481 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
5482
5483 * c-typeck.c (pedwarn_c99): Move to
5484 * c-errors.c: ... Here.
5485 * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
5486 * diagnostic.c (verror, vwarning, vpedwarn): Make static.
5487 * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
5488 (c-errors.o): List dependency.
5489
5490 2000-07-12 Mark Mitchell <mark@codesourcery.com>
5491
5492 * c-parse.c: Remove.
5493 * c-parse.h: Likewise.
5494 * c-parse.y: Likewise.
5495 * objc/objc-parse.c: Likewise.
5496 * objc/objc-pasre.y: Likewise.
5497
5498 2000-07-11 Rodney Brown <RodneyBrown@pmsc.com>
5499
5500 * gcc.texi: Fix minor typos
5501 * extend.texi: Fix minor typos
5502
5503 2000-07-11 Marc Espie <espie@openbsd.org>
5504
5505 * collect2.c (main): Recognize .lo as object files.
5506
5507 2000-07-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
5508
5509 * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
5510 true.
5511
5512 * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
5513 with MAP_ANONYMOUS and MAP_ANON.
5514 * configure, config.in: Rebuilt.
5515
5516 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
5517
5518 * diagnostic.c (save_output_state): Remove.
5519 (restore_output_state): Likewise.
5520 (clear_text_info): New function.
5521 (clear_diagnostic_info): Likewise.
5522 (output_text_length, is_starting_newline, output_prefix,
5523 line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
5524 prefixing_policy, output_buffer_ptr_to_format_args): New macros
5525 (set_real_maximum_length, output_set_maximum_length,
5526 output_set_prefix, output_get_prefix, output_set_maximum_length,
5527 output_destroy_prefix, init_output_buffer,
5528 reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
5529 output_add_newline, output_add_character, output_add_space,
5530 output_append_r, output_append, wrap_text, output_format,
5531 output_do_printf, output_printf, output_do_verbatim,
5532 output_verbatim, verbatim): Use them.
5533 (output_clear): Split into cleat_text_info and
5534 clear_diagnostic_info.
5535 (struct output_state): Move to...
5536
5537 * diagnostic.h: ...Here
5538 (struct output_buffer): Adjust.
5539
5540 2000-07-11 Zack Weinberg <zack@wolery.cumb.org>
5541
5542 * cpplex.c (parse_name): No longer inline (premature optimization).
5543 (do_pop_context): Fold into pop_context.
5544 (pop_context): Returns int.
5545 (lex_next): Hoist test for end of directive into pop_context.
5546 (push_macro_context): Returns int; takes just reader and token.
5547 Hoist test for excessive nesting to caller.
5548 (push_arg_context): Returns void; takes just reader and token.
5549 Do not call stringify_arg or get_raw_token.
5550 (get_raw_token): Convert tail recursion through push_arg_context
5551 to a loop at this level. Call stringify_arg here if appropriate.
5552 (maybe_paste_with_next): Convert tail recursion to a while loop.
5553 Hoist test of paste_level to caller.
5554
5555 (stringify_arg): Push arg context at beginning.
5556 (cpp_get_token): Split out core into _cpp_get_token. Call
5557 process_directive here. Throw away CPP_PLACEMARKER tokens.
5558 (_cpp_get_token): Convert tail recursion through
5559 push_macro_context to a loop at this level.
5560 (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
5561 _cpp_get_raw_token): Use _cpp_get_token.
5562 (_cpp_skip_rest_of_line): Drop the context stack directly; do
5563 not call pop_context.
5564 (_cpp_run_directive): Call lex_next directly.
5565
5566 * cpphash.h: Prototype _cpp_get_token.
5567 * cppexp.c (lex): Use it.
5568 * cpphash.c (parse_define): Use it.
5569 * cpplib.c (get_define_node, do_undef, parse_include,
5570 read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
5571 do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
5572 parse_ifdef, validate_else): Use it.
5573 (cpp_push_buffer): Tweak error message; abort if anyone tries
5574 to push a buffer while macro expansions are stacked.
5575
5576 2000-07-11 Donn Terry <donnte@microsoft.com>
5577
5578 * cpplex.c (free_macro_args, save_token): Cast arg of free
5579 and/or xrealloc to PTR.
5580 (_cpp_init_input_buffer): Clear all fields of the base context.
5581
5582 Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz <cpopetz@cygnus.com>
5583
5584 * gensupport.c (process_rtx): Make rtl checking stop
5585 complaining about the define_insn while it is being
5586 converted from a define_insn_and_split.
5587
5588 Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
5589
5590 * config/mips/mips.c (simple_memory_operand): Access the
5591 INTVAL of the address, not it's containing MEM.
5592
5593 2000-07-11 Bruce Korb <bkorb@gnu.org>
5594
5595 * fixinc/fixtests.c(double_slash): obsolete
5596 (else_endif_label): likewise
5597 * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
5598 (libc1_ifdefd_memx): correct initial comment
5599 and omit the #if/#endif pair from the memxxx declarations
5600 * fixinc/fixincl.x: regen
5601
5602 2000-07-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5603
5604 * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
5605
5606 2000-07-11 Neil Booth <NeilB@earthling.net>
5607
5608 * cpp.texi: Update.
5609
5610 2000-07-11 Neil Booth <NeilB@earthling.net>
5611
5612 * cppinit.c: (cpp_reader_init): Allow digraphs by default.
5613 (handle_option): Set digraphs according to standard.
5614 Merge OPT_lang_c89 handler with OPT_std_c89.
5615
5616 * cpplex.c: (lex_line, can_paste): Honour digraphs in
5617 accordance with the digraphs flag.
5618
5619 * cpplib.h: (struct cpp_options): New option digraphs.
5620
5621 2000-07-10 Hans-Peter Nilsson <hp@axis.com>
5622 Bruce Korb <bkorb@gnu.org>
5623
5624 * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
5625 * fixinc/fixincl.x: Regenerate.
5626 * fixinc/tests/base/testing.h: Add testcase.
5627
5628 2000-07-10 Richard Henderson <rth@cygnus.com>
5629
5630 * config/ia64/ia64.c (got_symbolic_operand): New.
5631 (symbolic_operand, move_operand): Revert 0701 change.
5632 * config/ia64/ia64.h (PREDICATE_CODES): Update.
5633 * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
5634 * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
5635 split the offset into a 14-bit low part instead of a 13-bit low part.
5636 (load_fptr): Mark the mem as unchanging.
5637 (load_symptr): Use got_symbolic_operand.
5638
5639 2000-07-10 Nick Clifton <nickc@cygnus.com>
5640
5641 * libgcc2.c (next_stack_level): Cast result of computation to
5642 (void **) so that the assignment does not generate a warning.
5643
5644 2000-07-10 Chandrakala Chavva <cchavva@redhat.com>
5645
5646 * flags.h : Add new variable flag_single_precision_constant.
5647 * toplev.c (display_help) : Add -fsingle-precision-constant option.
5648 (flag_single_precision_constant): New.
5649 * c-lex.c (yylex): Convert floating point constant to single
5650 precision constant.
5651 * invoke.texi : Add documentation for this new option.
5652
5653 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
5654
5655 * diagnostic.c (output_octal): Second parameter is unsigned.
5656 (output_long_octal): Likewise.
5657 (output_hexadecimal): Likewise.
5658 (output_long_hexadecimal): Likewise.
5659 (output_format): Adjust arguments extraction. Tweak.
5660 (output_verbatim, verbatim): End variable argument list.
5661 (report_diagnostic): Improve documentation.
5662
5663 2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
5664
5665 * c-common.h (build_stmt): Declare.
5666 (build_continue_stmt): Likewise.
5667 (build_break_stmt): Likewise.
5668 (build_return_stmt): Likewise.
5669
5670 * c-decl.c (do_case): Rewrite to do what previously done in
5671 c-parse.in.
5672
5673 * c-semantics.c (build_stmt): Define.
5674 (build_return_stmt): Likewise.
5675 (build_break_stmt): Likewise.
5676 (build_continue_stmt): Likewise.
5677 (build_case_label): Likewise.
5678
5679 * c-parse.in (BREAK): Change to build tree, then generate RTL.
5680 (CONTINUE): Likewise.
5681 (RETURN): Likewise.
5682 (CASE): Likewise.
5683 (DEFAULT): Likewise.
5684
5685 * c-parse.y: Regenerate.
5686 * c-pasre.c: Likewise.
5687
5688 2000-07-09 Jason Merrill <jason@redhat.com>
5689
5690 * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
5691
5692 * tree.h (STRIP_NOPS): Check for error_mark_node.
5693 (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
5694 (dwarf2out_*): Remove duplicate declarations.
5695
5696 * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
5697 DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
5698
5699 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
5700
5701 * diagnostic.c (wrap_text): New function.
5702 (maybe_wrap_text): Likewise.
5703 (output_add_string): Use it.
5704 (output_format): Likewise.
5705 (count_error): Use verbatim instead of notice.
5706 (report_error_function): Likewise. Don't use plain fprintf.
5707 (finish_diagnostic): New function.
5708 (output_do_verbatim): Tweak. Commonalize functionalities in
5709 output_verbatim and verbatim.
5710 (output_verbatim): Adjust.
5711 (verbatim): Likewise.
5712 (report_diagnostic): Define.
5713
5714 * diagnostic.h (report_diagnostic): Prototype.
5715
5716 2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
5717
5718 * cppexp.c (_cpp_parse_expr): Don't use unary plus.
5719
5720 2000-07-09 Neil Booth <NeilB@earthling.net>
5721
5722 * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
5723 IShspace, ISspace: Update.
5724
5725 * cppinit.c: ISTABLE: Update.
5726 V: New.
5727
5728 * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
5729 (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
5730 (skip_block_comment, skip_line_comment, parse_string,
5731 lex_line): Use is_vspace rather than IS_NEWLINE.
5732 (skip_whitespace, lex_line): Clean up to use is_nvspace.
5733 (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive
5734 gets a BOL flag.
5735 (lex_next): Unconditionally stop if within a directive.
5736 Treat directives within macro invocations as directives
5737 (after parse_args emits error), not as the argument.
5738
5739 2000-07-09 Gabriel Dos Reis <gdr@codesourcery.com>
5740
5741 * diagnostic.c (diagnostic_args): New macro.
5742 (diagnostic_msg): Likewise.
5743 (output_formatted_integer): Likewise.
5744 (output_state): New data type.
5745 (digit_buffer): Make global.
5746 (output_add_integer): Rename to output_decimal. Squeeze
5747 digit_buffer.
5748 (output_long_decimal, output_unsigned_decimal,
5749 output_long_unsigned_decimal, output_octal, output_long_octal,
5750 output_hexadecimal, output_long_hexadecimal): New functions.
5751 (output_append_r): New function.
5752 (output_append): Tweak.
5753 (output_flush_on): Rename to output_to_stream.
5754 (output_format): Change prototype. Improve documentation. Handle
5755 more format specifiers.
5756 (build_location_prefix): Rename to context_as_prefix.
5757 (output_notice): Rename to output_do_printf.
5758 (output_printf): Tweak.
5759 (line_wrapper_printf): Likewise.
5760 (vline_wrapper_message_with_location): Adjust call to renamed
5761 functions.
5762 (v_message_with_decl): Likewise.
5763 (default_print_error_function): Likewise.
5764 (save_output_state): New function.
5765 (restore_output_state): Likewise.
5766 (output_do_verbatim): Likewise.
5767 (output_verbatim): Define.
5768 (verbatim): Likewise.
5769
5770 * diagnostic.h (printer_fn): Change return type from void to int.
5771 Improve documentation.
5772 (output_add_integer): Rename to output_decimal.
5773 (output_flush_on, output_format): Don't export.
5774 (output_verbatim, verbatim): Declare.
5775
5776 2000-07-08 Toon Moene <toon@moene.indiv.nluug.nl>
5777
5778 * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
5779 Check whether c divides op1 exactly if operation is not
5780 multiplication.
5781
5782 2000-07-08 Richard Henderson <rth@cygnus.com>
5783
5784 * final.c (final): Do not abort when reg-stack introduces
5785 a new insn.
5786
5787 2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
5788
5789 * cpplib.h (struct cpp_name): Now struct cpp_string.
5790 (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
5791 CPP_HEADER_NAME): Change to type S.
5792 (struct cpp_token): Rename 'name' field to 'str'. Add 'node'
5793 field, a cpp_hashnode *. All references to val.name updated
5794 to use val.str or val.node as appropriate.
5795 (struct cpp_reader): Add spec_nodes field.
5796 (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
5797
5798 * cpphash.h (struct spec_nodes): New.
5799 (enum spell_type): Reorder. Only SPELL_STRING tokens use
5800 val.str. All references to 'spelling > SPELL_NONE' updated to
5801 match.
5802
5803 (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
5804 pfile->buffer->inc are not NULL before dereferencing them.
5805
5806 * cpplex.c (parse_name): Take a pointer to the current token,
5807 plus current position and limit as args; return the new
5808 position; don't copy the text of a name into the string
5809 buffer, instead call cpp_lookup and store the node pointer.
5810 If extending a token, copy out the text of the old into a
5811 scratch buffer, append the new, look that up and store the new
5812 node pointer. Inline.
5813 (maybe_paste_with_next): If the result of paste is a NAME,
5814 then look up the pasted text and store its node pointer.
5815 (lex_line): Adjust for new parse_name interface.
5816 Check for L"str", L'str' using spec_nodes->n_L.
5817 (spell_token): SPELL_IDENT tokens have their spelling in
5818 val.node->name. Handle SPELL_STRING tokens that don't have
5819 string delimiters.
5820 (_cpp_expand_name_space,
5821 (can_paste): Check for L ## "str" using spec_nodes->n_L.
5822 (cpp_get_token, special_symbol): No need to call cpp_lookup.
5823 (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
5824 return 1=equal 0=not, not a tristate.
5825
5826 * cpphash.c (var_args_str): Delete.
5827 (find_param): Compare node fields directly.
5828 (is__va_args__): Use CPP_PEDANTIC. Just compare
5829 token->val.node with spec_nodes->n__VA_ARGS__.
5830 (dump_funlike_macro): Don't use var_args_str.
5831
5832 * cpplib.c (_cpp_check_directive): Just walk through
5833 spec_nodes->dirs comparing pointers.
5834 (get_define_node, do_pragma_poison, detect_if_not_defined,
5835 parse_ifdef): The identifier has already been looked up.
5836 (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
5837 node.
5838 (do_if): Only call detect_if_not_defined at beginning of file.
5839 (_cpp_parse_assertion): Only copy string pointers for
5840 SPELL_STRING tokens.
5841 (pragma_dispatch): Take a node pointer and examine its name
5842 field.
5843 (_cpp_init_stacks): Also initialize the spec_nodes structure.
5844
5845 * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
5846 _cpp_init_macros.
5847 (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
5848 reverse order from the corresponding _cpp_init_* routines.
5849
5850 * cppexp.c (parse_number, parse_charconst, parse_defined,
5851 lex): Check val.node->type instead of calling cpp_defined.
5852 Use spec_nodes entries where appropriate.
5853
5854 * fix-header.c, scan-decls.c: Update for interface changes.
5855
5856 2000-07-08 Geoffrey Keating <geoffk@cygnus.com>
5857
5858 * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
5859 emitting aux_truncdfsf2.
5860
5861 2000-07-03 Donn Terry (donnte@microsoft.com)
5862
5863 * cppinit.c (print_help): split overlong line into ISO C89
5864 maximum chunks.
5865
5866 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
5867
5868 * cppexp.c: Update all code for new lexer interface.
5869 (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
5870 (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
5871 * cpplex.c (token_names): Trim leading CPP_ from names; make
5872 the strings unsigned.
5873 (_cpp_spell_operator): New.
5874 (is_macro_disabled): Disable all macros if rescanning
5875 preprocessed text.
5876 (_cpp_get_directive_token): Remove.
5877
5878 * cppinit.c: Don't set no_macro_expand.
5879 * cpplib.c (read_line_number, do_line): Check only for EOF,
5880 not VSPACE.
5881 * cpphash.h: Update prototypes.
5882 * cpplib.h (CPP_VSPACE): Remove.
5883 (struct cpp_reader): Remove no_macro_expand.
5884
5885 2000-07-08 Neil Booth <NeilB@earthling.net>
5886
5887 * cpphash.c (is__va_args__): New function.
5888 (count_params): Fix line reported in error messages. Use
5889 is__va_args__. Don't return ')' on error. Flag GNU style
5890 rest args macro definitions.
5891 (parse_define): Check macro name is not __VA_ARGS__.
5892 (save_expansion): Check identifier in non-varargs-macro is
5893 not __VA_ARGS__. Don't flag GNU_VARARGS.
5894 * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
5895 (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
5896 than per-token GNU_VARARGS.
5897 * cpplib.h (GNU_VARARGS): Remove.
5898 (GNU_REST_ARGS): New.
5899
5900 Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
5901
5902 * i386.md (call_pop, call, call_value_pop): Do not set
5903 current_function_uses_pic_offset_table for calls to static
5904 functions or indirect calls.
5905
5906 2000-07-07 Jim Wilson <wilson@cygnus.com>
5907
5908 * config/ia64/ia64.c (rws_access_reg): New local write_count. If
5909 is_predicate_reg, then take max write_count of register pair.
5910
5911 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5912
5913 * tradcpp.c (main): Rename label `include' to `add_include' to
5914 avoid conflicts with variable `include' in traditional C.
5915
5916 2000-07-07 Jakub Jelinek <jakub@redhat.com>
5917
5918 * integrate.c (copy_insn_list): Remove REG_LABEL notes.
5919
5920 2000-07-07 Jakub Jelinek <jakub@redhat.com>
5921
5922 * sibcall.c (uses_addressof): Add INMEM argument, check for
5923 current_function_internal_arg_pointer outside of MEM rtxs in addition
5924 to ADDRESSOFs.
5925 (sequence_uses_addressof): Update caller.
5926
5927 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
5928
5929 * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
5930 and friends.
5931
5932 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5933
5934 * system.h (UNION_INIT_ZERO): New macro for initializing union
5935 members in structs.
5936
5937 * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
5938
5939 2000-07-07 Neil Booth <NeilB@earthling.net>
5940
5941 * cpp.texi: Update.
5942
5943 Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com)
5944
5945 * final.c (final): Detect out of bounds array access to
5946 the insn_lengths array.
5947
5948 2000-07-07 Kazu Hirata <kazu@hxi.com>
5949
5950 * fold-const.c (fold): Fix a comment typo.
5951
5952 2000-07-07 Neil Booth <NeilB@earthling.net>
5953
5954 * cpp.texi: Update to new lexer.
5955
5956 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
5957
5958 * tradcpp.c: New file.
5959 * tradcif.y: New file.
5960 * tradcif.c: New generated file.
5961
5962 * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
5963 $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and
5964 dependencies of C. Install tradcpp from install-common, in
5965 $(libsubdir).
5966
5967 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
5968
5969 * cppinit.c: Include cppdefault.h. Refer to
5970 cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
5971 to GCC_INCLUDE_DIR and its length.
5972 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
5973 USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
5974 STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to
5975 cppdefault.h.
5976 (include_defaults_array): Move to cppdefault.c.
5977
5978 * cppdefault.h: New file.
5979 * cppdefault.c: New file.
5980
5981 * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
5982 (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
5983 (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
5984 this file.
5985
5986 Thu Jul 6 18:30:36 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5987
5988 * reload.c (push_reload): When seeing if can reuse a register,
5989 check extra registers against widest of INMODE and OUTMODE.
5990
5991 2000-07-06 Neil Booth <NeilB@earthling.net>
5992
5993 * cpplib.c: (_cpp_parse_assertion): Perform hash lookups
5994 based on full length of predicate.
5995
5996 2000-07-06 Hans-Peter Nilsson <hp@axis.com>
5997
5998 * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
5999 [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
6000
6001 2000-07-05 Kazu Hirata <kazu@hxi.com>
6002
6003 * h8300-proto.h: Fix formatting.
6004 * h8300.c: Likewise.
6005 * h8300.h: Likewise.
6006
6007 2000-07-05 Jim Wilson <wilson@cygnus.com>
6008
6009 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
6010 CCmode.
6011
6012 2000-07-05 Rodney Brown <RodneyBrown@pmsc.com>
6013
6014 * invoke.texi: Fix minor typos
6015 * md.texi: Fix minor typos
6016
6017 2000-07-05 Zack Weinberg <zack@wolery.cumb.org>
6018
6019 * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
6020
6021 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
6022
6023 * cpplex.c: Don't include sys/mman.h.
6024 (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
6025
6026 * cpplib.c: Include sys/mman.h and obstack.h.
6027 (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
6028 obstack.
6029 (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
6030 (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't
6031 bother freeing if stack entries (they will be freed with their buffer).
6032 (do_endif): Free if stack entries from the buffer obstack.
6033 (push_conditional): Allocate if stack entries from the buffer obstack.
6034
6035 (find_answer): Rename to _cpp_find_answer.
6036 (do_assert, do_unassert): Update.
6037
6038 * cpphash.h: Update prototypes.
6039 (xobnew): New convenience macro.
6040 * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
6041 Update comments.
6042 (struct cpp_hashnode): Remove disabled field.
6043
6044 * cppinit.c: Don't include hashtab.h or splay-tree.h.
6045 (report_missing_guard): Moved to cppfiles.c.
6046 (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
6047 cpp_init_includes.
6048 (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
6049 cpp_cleanup_includes. Don't destroy hashtab or
6050 all_include_files here.
6051 (cpp_finish): Use _cpp_report_missing_guards.
6052
6053 * cppfiles.c (report_missing_guard): Moved from cppinit.c.
6054 (_cpp_init_include_table): Rename _cpp_init_includes.
6055 (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
6056
6057 * cppexp.c (parse_assertion): Update for new name of
6058 find_answer.
6059
6060 * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
6061
6062 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
6063
6064 * cpplib.c (do_ident): s/VSPACE/EOF/
6065
6066 2000-07-05 Neil Booth <NeilB@earthling.net>
6067
6068 * cpplex.c: Fix trigraph replacement within strings.
6069
6070 2000-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6071
6072 * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
6073
6074 * xcoffout.c (assign_type_number): Constify.
6075 (xcoffout_source_file): Add static prototype. Don't needlessly
6076 cast away const-ness.
6077
6078 2000-07-04 Jason Merrill <jason@redhat.com>
6079
6080 * frame.h (frame_state): Move base_offset to end.
6081
6082 Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
6083
6084 * calls.c (emit_library_call_value_1): Revert previous change.
6085
6086 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
6087
6088 * fix-header.c (struct partial_proto): Remove unnecessary fields.
6089 (recognized_extern, recognized_function, read_scan_file):
6090 Update for new scheme.
6091 (check_protection): It's still a multiple include guard even
6092 if it doesn't always trigger.
6093 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
6094 new scheme.
6095 * scan.h: Declare struct cpp_token. Update prototypes.
6096
6097 2000-07-03 Neil Booth <neilb@earthling.net>
6098 Zack Weinberg <zack@wolery.cumb.org>
6099
6100 Complete overhaul of the lexer and macro expander.
6101
6102 * cpphash.c (object_defn, funct_defn, push_macro_expansion,
6103 arg, arglist, argdata, reflist, collect_objlike_expansion,
6104 collect_funlike_expansion, collect_params,
6105 warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
6106 unsafe_chars, macarg, compare_defs, special_symbol,
6107 scan_arguments, stringify, funlike_macroexpand,
6108 _cpp_quote_string, monthnames): Delete.
6109 (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
6110 _cpp_create_definition, _cpp_dump_definition,
6111 dump_hash_helper): Adjust.
6112 (find_param, count_params, parse_define, var_args_str,
6113 check_macro_redefinition, save_expansion): New.
6114
6115 * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
6116 parse_string, output_line_command, trigraph_replace,
6117 lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
6118 cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
6119 cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
6120 _cpp_skip_rest_of_line): Modify.
6121
6122 (maybe_macroexpand, skip_comment, copy_comment, skip_string,
6123 find_position, null_warning, bump_column, expand_name_space,
6124 pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
6125 _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
6126 _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
6127 _cpp_prescan): Delete.
6128
6129 (dump_param_spelling, process_directive, lex_next,
6130 is_macro_disabled, stringify_arg, expand_context_stack,
6131 output_token, make_string_token, alloc_number_token,
6132 special_symbol, duplicate_token, maybe_paste_with_next,
6133 can_paste, prevent_macro_expansion, restore_macro_expansion,
6134 get_temp_token, release_temp_tokens, quote_string,
6135 token_names, token_spellings, _cpp_expand_name_space,
6136 _cpp_glue_header_name, _cpp_reserve_name_space,
6137 digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
6138 placemarker_token, eof_token, cpp_context, macro_args,
6139 get_raw_token, parse_arg, parse_args, save_token,
6140 push_arg_context, push_macro_context, pop_context,
6141 do_pop_context, free_macro_args, _cpp_get_line,
6142 _cpp_run_directive): New.
6143
6144 * cpplib.c (validate_else, parse_include, push_conditional,
6145 pass_thru_directive, read_line_number, parse_ifdef,
6146 detect_if_not_defined, _cpp_check_directive, do_define,
6147 do_undef, do_include, do_import, do_include_next, do_error,
6148 do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
6149 top_pragmas, do_pragma_gcc, do_pragma_implementation,
6150 do_pragma_poison, do_pragma_system_header,
6151 do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
6152 dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
6153 do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
6154 cpp_defined): Update for new scheme.
6155 (strtoul_for_line, get_define_node, dump_macro_name,
6156 _cpp_check_linemarker, _cpp_parse_assertion): New.
6157 (_cpp_handle_directive, do_pragma_default): Delete.
6158
6159 * cpphash.h (struct predicate): Now struct answer.
6160 (enum spell_type, struct token_spelling, struct directive,
6161 directive_handler): New.
6162 Update prototypes. Remove unused macros.
6163 * cpplib.h: Update prototypes. Remove unused macros,
6164 structure definitions, and fields.
6165
6166 * cpperror.c (print_containing_files, v_message): Adjust.
6167 * cppexp.c (parse_assertion, lex, parse_escape,
6168 _cpp_parse_expr): Adjust.
6169 * cppfiles.c (open_include_file, _cpp_execute_include,
6170 _cpp_compare_file_date, cpp_read_file, read_include_file):
6171 Adjust.
6172 * cppinit.c (dump_special_to_buffer): Delete.
6173 (append_include_chain, merge_include_chains, cpp_reader_init,
6174 cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
6175 cpp_finish, handle_option, print_help): Adjust.
6176 * cppmain.c (main): Adjust.
6177
6178 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
6179
6180 * cppspec.c (lang_specific_driver): Use double quotes in error
6181 message.
6182
6183 Mon Jul 3 16:53:43 2000 Clinton Popetz <cpopetz@cygnus.com>
6184
6185 * calls.c (emit_library_call_value_1): Use valreg instead
6186 of hard_libcall_value.
6187
6188 2000-07-03 Geoff Keating <geoffk@cygnus.com>
6189
6190 * config/rs6000/rs6000.c (rs6000_emit_move): New function.
6191 * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
6192 * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
6193 (movhi): Likewise.
6194 (movqi): Likewise.
6195 (movdf): Likewise.
6196 (movsf): Likewise.
6197 (movdi): Likewise.
6198 (movti): Likewise.
6199
6200 * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
6201 mode instead of wider_mode is being used.
6202
6203 2000-07-03 Jakub Jelinek <jakub@redhat.com>
6204
6205 * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
6206 of 'r'. Use q_regs_operand.
6207 (andsi_1+2): Use q_regs_operand.
6208
6209 2000-07-03 Jakub Jelinek <jakub@redhat.com>
6210
6211 * builtins.c (get_memory_rtx): Always put into alias set 0.
6212
6213 2000-07-03 Nick Clifton <nickc@cygnus.com>
6214
6215 * config/arm/arm.md: Fix post increment and pre increment
6216 peepholes so that they do not generate UNPREDICATBLE opcodes.
6217 (ie ones where the increment clobbers the source/destination).
6218
6219 2000-07-01 Marek Michalkiewicz <marekm@linux.org.pl>
6220
6221 * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
6222 change too big for -mtiny-stack" a warning, if larger than 63.
6223 (out_set_stack_ptr): Change the logic so -mno-interrupts is
6224 always safe to use on possible future devices.
6225 (function_prologue): Write SPH before SPL, for consistency.
6226 If interrupt_func_p true, we know we have enabled interrupts.
6227 (avr_num_arg_regs): New function. Round up to even number of
6228 bytes if no -mpack-args or if calling a libgcc function.
6229 (function_arg, function_arg_advance): Use it.
6230 (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
6231 Output "movw" if available.
6232 (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
6233 of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
6234 (asm_output_section_name): Add blanks for consistent output.
6235 (encode_section_info): Set TREE_READONLY for progmem data to
6236 avoid gas warnings about changed section attributes.
6237 (avr_hard_regno_mode_ok): Force non-QImode data to start in
6238 even numbered registers on devices with "movw".
6239 * config/avr/avr.h (MASK_*): Define bits for target_flags.
6240 (TARGET_SWITCHES): Mark help strings for translation.
6241 Add new -mpack-args and -menhanced switches.
6242 (TARGET_OPTIONS): Mark help strings for translation.
6243 (progmem_section): Add section attributes.
6244 * config/avr/avr.md (*movhi, call_insn, call_value_insn):
6245 Output "movw" if available.
6246 (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
6247 New patterns.
6248 * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
6249 call convention (arguments aligned on even registers).
6250 (_cleanup, _exit): Make weak symbols libc can override.
6251
6252 2000-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6253
6254 * fp-bit.h: New file.
6255
6256 * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
6257 Comment #endif statements.
6258 (__thenan_sf, __thenan_df): Add missing braces around initializer.
6259
6260 Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
6261
6262 * gcse.c (compute_pre_data): Compute ae_kill using other local
6263 properties instead of calling compute_ae_kill.
6264
6265 * alias.c (init_alias_analysis): Do not call
6266 prologue_epilogue_contains until after reload has completed.
6267
6268 2000-07-02 Benjamin Chelf <chelf@codesourcery.com>
6269
6270 * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
6271 (genrtl_finish_compound_stmt): Likewise.
6272 (genrtl_compound_stmt): Change to return void.
6273
6274 * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
6275 move code from here to ...
6276 (genrtl_compound_stmt): ... here.
6277 (genrtl_finish_compound_stmt): Remove.
6278 (expand_stmt): Add comment.
6279
6280 2000-07-02 Zack Weinberg <zack@wolery.cumb.org>
6281
6282 * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
6283 and VOID_TYPE_P.
6284
6285 2000-07-02 Jakub Jelinek <jakub@redhat.com>
6286
6287 * cpplib.h (struct cpp_reader): New field include_depth.
6288 (struct cpp_printer): Rename last_bsd to last_id.
6289 * cppfiles.c (read_include_file): Bump include_depth.
6290 * cpplex.c (cpp_pop_buffer): Decrement include_depth.
6291 (output_line_command): Output correct #line if a header
6292 is including itself and is not protected against multiple inclusion.
6293 Use include_depth instead of buffer_stack_depth, last_id instead of
6294 last_bsd.
6295 * cppinit.c (cpp_start_read): Initialize last_id instead of
6296 last_bsd.
6297
6298 2000-07-01 Benjamin Chelf <chelf@codesourcery.com>
6299
6300 * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
6301 (c-semantics.o): New target.
6302
6303 * c-common.h (TREE_LANG_FLAG_?): Added documentation.
6304 (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
6305 (genrtl_clear_out_block): Likewise.
6306 (genrtl_goto_stmt): Likewise.
6307 (genrtl_expr_stmt): Likewise.
6308 (genrtl_decl_stmt): Likewise.
6309 (genrtl_if_stmt): Likewise.
6310 (genrtl_while_stmt): Likewise.
6311 (genrtl_do_stmt): Likewise.
6312 (genrtl_return_stmt): Likewise.
6313 (genrtl_for_stmt): Likewise.
6314 (genrtl_break_stmt): Likewise.
6315 (genrtl_continue_stmt): Likewise.
6316 (genrtl_scope_stmt): Likewise.
6317 (genrtl_switch_stmt): Likewise.
6318 (genrtl_case_label): Likewise.
6319 (genrtl_begin_compound_stmt): Likewise.
6320 (gerntl_finish_compound_stmt): Likewise.
6321 (genrtl_compound_stmt): Likewise.
6322 (genrtl_asm_stmt): Likewise.
6323 (genrtl_decl_cleanup): Likewise.
6324 (DECL_ANON_UNION_ELEMS): Likewise.
6325 (emit_local_var): Likewise.
6326 (make_rtl_for_local_static): Likewise.
6327 (expand_cond): Likewise.
6328 (expand_stmt): Likewise.
6329 (c_expand_return): Likewise.
6330 (c_expand_start_case): Likewise.
6331 (do_case): Likewise.
6332 (COMPOUND_STMT_NO_SCOPE): Likewise.
6333 (c_expand_asm_operands): Likewise.
6334 (NEW_FOR_SCOPE_P): New macro.
6335 (expand_expr_stmt_fn): New type.
6336
6337 (set_current_function_name_declared): Likewise.
6338 (current_function_name_declared): Likewise.
6339 (lang_expand_stmt): Likewise.
6340 (stmts_are_full_exprs_p): Likewise.
6341 (anon_aggr_type_p): Likewise.
6342 (lang_expand_expr_stmt): Likewise.
6343 (build_case_label): Likewise.
6344
6345 * c-decl.c (lang_expand_expr_stmt): Initialize.
6346 (stmts_are_full_exprs_p): Define.
6347 (current_function_name_declared): Likewise.
6348 (do_case): Likewise.
6349 (lang_expand_stmt): Likewise.
6350 (set_current_function_name_declared): Likewise.
6351 (anon_aggr_type_p): Likewise.
6352
6353 * c-semantics.c: New file.
6354 (expand_cond): Moved from cp/semantics.c.
6355 (genrtl_do_pushlevel): Likewise.
6356 (genrtl_clear_out_block): Likewise.
6357 (genrtl_goto_stmt): Likewise.
6358 (genrtl_expr_stmt): Likewise.
6359 (genrtl_decl_stmt): Likewise.
6360 (genrtl_if_stmt): Likewise.
6361 (genrtl_while_stmt): Likewise.
6362 (genrtl_do_stmt): Likewise.
6363 (genrtl_return_stmt): Likewise.
6364 (genrtl_for_stmt): Likewise.
6365 (genrtl_break_stmt): Likewise.
6366 (genrtl_continue_stmt): Likewise.
6367 (genrtl_scope_stmt): Likewise.
6368 (genrtl_switch_stmt): Likewise.
6369 (genrtl_case_label): Likewise.
6370 (genrtl_begin_compound_stmt): Likewise.
6371 (genrtl_finish_compound_stmt): Likewise.
6372 (genrtl_compound_stmt): Likewise.
6373 (genrtl_asm_stmt): Likewise.
6374 (genrtl_decl_cleanup): Likewise.
6375 (make_rtl_for_local_static): Moved from cp/decl.c.
6376 (emit_local_var): Likewise.
6377 (expand_stmt): Define.
6378
6379 * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
6380 (c_expand_return): Likewise.
6381 (c_expand_start_case): Likewise.
6382
6383 2000-07-01 Richard Henderson <rth@cygnus.com>
6384
6385 * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
6386 with the low 13 bits set.
6387 (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
6388 * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one
6389 of the low 13 bits into a CONST plus an adddi3.
6390 (load_symptr): Set RTX_UNCHANGING_P.
6391
6392 See ChangeLog.3 for earlier changes.
6393