* gengenrtl.c, rtl.c: Avoid #elif.
[gcc.git] / gcc / ChangeLog
1 Thu Aug 3 10:05:53 2000 Akiko Matsushita <matusita@sra.co.jp>
2
3 * gengenrtl.c, rtl.c: Avoid #elif.
4
5 2000-08-03 Michael Poole <poole@troilus.org>
6
7 * tm.texi (Register Classes): Clarify order of sub-initializers
8 in REG_CLASS_CONTENTS.
9
10 Thu Aug 3 15:53:03 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
11
12 From SAITOH Masanobu:
13 * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
14
15 2000-08-03 David Billinghurst <David.Billinghurst@riotinto.com.au>
16
17 * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
18 is not supported by tradcpp and isn't actually needed for cygwin.
19
20 2000-08-03 Kazu Hirata <kazu@hxi.com>
21
22 * h8300.c: Fix a comment typo.
23 * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
24
25 * jump.c: Fix formatting.
26
27 * toplev.c: Fix formatting.
28
29 Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com)
30
31 * flow.c (find_auto_inc): Verify that we've got a REG before
32 peeking at its regno. Fail, don't abort if we can't find
33 the increment of the desired register.
34
35 * pa.md (shadd height reduction patterns/splitters): Remove.
36
37 2000-08-02 Jim Wilson <wilson@cygnus.com>
38
39 * config/ia64/ia64-protos.h (flag_ssa): Declare.
40 * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
41
42 2000-08-02 Mark Mitchell <mark@codesourcery.com>
43
44 * dce.c: Remove all uses of assert.
45 * dwarf2out.c: Likewise.
46 * dwarfout.c: Likewise.
47 * ssa.c: Likewise.
48
49 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
50
51 * gcc.h (lang_specific_driver): Constify second argument.
52 * gcc.c (translate_options, process_command, main): Likewise.
53 Constify variables to match. Cast second argument to
54 pexecute.
55
56 * cppspec.c, gccspec.c: Adjust type of second argument to
57 lang_specific_driver, and update code as necessary.
58
59 2000-08-02 Jakub Jelinek <jakub@redhat.com>
60
61 * loop.c (scan_loop): Ensure update_end label does not
62 go away until reg_scan_update is run.
63
64 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
65
66 * c-common.h: Prototype min_precision and c_build_qualified_type here...
67 * c-tree.h: ... not here.
68 * errors.h: Prototype fancy_abort.
69
70 * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
71 HOST_BITS_PER_WIDE_INT == 64 ifdef block.
72 * regrename.c (regrename_optimize): Make control flow explicit.
73 (replace_reg_in_block): Initialize reg_use to 0.
74
75 * i386.c (legitimate_address_p): Rename error label to
76 report_error to avoid namespace clash.
77
78 2000-08-02 Kazu Hirata <kazu@hxi.com>
79
80 * fold-const.c: Fix formatting.
81
82 Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka <jh@suse.cz>
83
84 * i386.c (legitimate_address_p): Accept other bases than
85 pic_offset_table_rtx for GOTOFF constructs.
86
87 Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
88
89 * i386.md (shift to lea splitter): Use const_int_operand.
90
91 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
92
93 * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
94 cppspec.c: Do not use 'legal' or 'illegal' in error messages
95 and comments.
96
97 * cppmain.c (cb_define, cb_undef): Don't generate any output
98 if not done_initializing.
99 * cpplex.c (maybe_paste_with_next): When the token after a ##
100 is an omitted rest argument, only delete the token before it
101 if that token is a comma. Do not warn about bogus token
102 pastes for , ## rest_arg.
103
104 * cpp.texi: Update.
105 * cpp.1: Regenerate.
106
107 2000-08-02 Fred Fish <fnf@be.com>
108
109 * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
110 when user gives -p option. Add init_term_dyn.o for BeOS 5.0
111 and later.
112
113 * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
114 Be directories to search path.
115
116 Remove support for __declspec(dllimport) and __declspec(dllexport).
117 This is leftover cruft from the earlier BeOS gcc port when BeOS
118 used Microsoft's PE object file format.
119 * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
120 * config/i386/t-beos (winnt.o): Remove Makefile frag.
121 * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
122 (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
123 (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
124 (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
125 (REDO_SECTION_INFO_P): Remove.
126 (ASM_EXPORT_DECL): Remove.
127 (ASM_DECLARE_FUNCTION_NAME): Remove.
128 (ASM_DECLARE_OBJECT_NAME): Remove.
129 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
130 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
131 (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
132 (STRIP_NAME_ENCODING): Remove.
133
134 Remove support for obsolete version of BeOS that is no longer
135 supported by Be.
136 * configure.in (i*86-*-beospe*): Remove.
137 * config/i386/beos-pe.h: Remove.
138
139 2000-08-01 Jeffrey Oldham <oldham@codesourcery.com>
140 Mark Mitchell <mark@codesourcery.com>
141
142 * Makefile.in (OBJS): Added dce.o.
143 (ssa.o): Updated target to include ssa.h.
144 (flow.o): Likewise.
145 (toplev.o): Likewise.
146 (dce.o): Created target.
147 * basic-block.h: Added comments.
148 (INVALID_BLOCK): Added definition.
149 (connect_infinite_loops_to_exit): Added declaration.
150 Moved SSA declarations to ssa.h.
151 * flow.c: Added inclusion of ssa.h.
152 (struct depth_first_search_dsS, depth_first_search_ds):
153 Added definitions.
154 (compute_immediate_postdominators): Added definition.
155 (connect_infinite_loops_to_exit): Likewise.
156 (flow_dfs_compute_reverse_init): Likewise.
157 (flow_dfs_compute_reverse_add_bb): Likewise.
158 (flow_dfs_compute_reverse_execute): Likewise.
159 (flow_dfs_compute_reverse_finish): Likewise.
160 * rtl.h (rtx/in_struct): Added use to determine insn necessity.
161 (LABEL_P): Added definition.
162 (JUMP_P): Likewise.
163 (NOTE_P): Likewise.
164 (BARRIER_P): Likewise.
165 (JUMP_TABLE_DATA_P): Likewise.
166 (INSN_DEAD_CODE_P): Likewise.
167 * ssa.c: Replaced inclusions with ssa.h inclusion.
168 (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
169 (rename_registers): Removed unnecessary variables.
170 * ssa.h: Created by moving declarations from ssa.c and
171 basic-block.h.
172 * timevar.def: Defined TV_DEAD_CODE_ELIM.
173 * toplev.c: Added ssa.h inclusion.
174 (dump_file_index): Added DFI_dce.
175 (dump_file): Added "dce" entry.
176 Defined flag_ssa.
177 (f_options): Added dce entry.
178 * invoke.texi: Document -fdce. Emphasize experimental status of
179 -fssa.
180
181 2000-08-01 Zack Weinberg <zack@wolery.cumb.org>
182
183 * cpperror.c (v_message): Split into _cpp_begin_message and
184 v_message macro. All callers updated.
185 (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
186 checks here.
187
188 * cppfiles.c (cpp_syshdr_flags): New function.
189 (read_include_file): Don't call cpp_output_tokens. Call
190 enter_file hook.
191 * cppinit.c (dump_macros_helper): Moved to cppmain.c.
192 (cpp_reader_init): Don't initialize token_buffer. Call
193 _cpp_init_internal_pragmas.
194 (cpp_cleanup): Don't clear token_buffer.
195 (cpp_start_read): Don't worry about output from -D processing.
196 Don't call cpp_output_tokens.
197 (cpp_finish): Don't dump macros here. Don't call
198 cpp_output_tokens.
199 * cppmacro.c (_cpp_dump_definition): Rename
200 cpp_dump_definition. Write directly to a FILE *.
201 (dump_funlike_macro): Delete.
202 (dump_macro_args): New.
203
204 * cpplex.c (TOKEN_LEN): Convert to inline function.
205 (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
206 cpp_scan_line, _cpp_dump_list): Delete.
207 (cpp_printf, cpp_output_list): New.
208 (output_line_command): Don't worry about entering or leaving files.
209 (cpp_scan_buffer): Just output each token as we hit it.
210 (process_directive): Don't call cpp_output_tokens.
211 (_cpp_glue_header_name): Don't use token_buffer.
212 (output_token, dump_param_spelling): Write directly to a FILE *.
213
214 * cpplib.c (pass_thru_directive, dump_macro_name,
215 pragma_dispatch, do_pragma_gcc): Delete.
216 (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
217 do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
218 functions.
219 (do_error, do_warning, pragma_dependency): Call
220 _cpp_begin_message, then cpp_output_list.
221 (cpp_register_pragma, cpp_register_pragma_space,
222 _cpp_init_internal_pragmas): New.
223 (do_pragma): Walk the pragmas table here.
224 (do_pragma_once, do_pragma_poison, do_pragma_system_header,
225 do_pragma_dependency): Return void.
226 (do_pragma_implementation): Moved to cppmain.c.
227
228 * cpplib.h: Update prototypes.
229 (struct cpp_reader): Remove printer, token_buffer,
230 token_buffer_size, and limit. Add struct cb, and pragmas.
231 (struct cpp_printer): Remove last_id and written.
232 (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
233 CPP_ADJUST_WRITTEN): Delete.
234 * cpphash.h: Update prototypes.
235 (ufputs): New wrapper.
236
237 * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
238 cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
239 (main): Set up callbacks. Register #pragma implementation.
240 Dump macros from here.
241
242 2000-08-01 Geoff Keating <geoffk@cygnus.com>
243
244 * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
245 * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
246 * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
247 insns if they have a REG_MAYBE_DEAD note attached.
248 * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
249 (rs6000_emit_load_toc_table): TOC loads may go dead.
250
251 2000-08-01 Jim Wilson <wilson@cygnus.com>
252
253 * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify
254 type exists before using it. Use number of words as alignment
255 otherwise.
256 (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
257 ia64_va_arg): Propagate ia64_function_args changes here.
258
259 2000-08-01 Richard Henderson <rth@cygnus.com>
260
261 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
262 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
263
264 2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk>
265
266 From Joern Rennecke:
267 * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
268 * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
269 unless TARGET_SH3E is set.
270 * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
271
272 * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
273 (ashlsi3_std): New pattern.
274 (ashlsi3 expander): Use it for TARGET_SH3.
275 * sh.c (gen_ashift): Use it instead of ashlsi3_k.
276
277 Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
278
279 * loop.c (canonicalize_condition): Use destination, not source to
280 determine SET's mode.
281
282 2000-07-31 Mark Mitchell <mark@codesourcery.com>
283
284 * flow.c (clear_log_links): Fix typo.
285
286 Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com)
287
288 * loop.c (check_dbra_loop): Make change from July 17, 2000 work
289 on targets which need more than one insn for a compare/cbranch
290 operation.
291
292 2000-07-31 Jim Wilson <wilson@cygnus.com>
293
294 * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
295 when computing offset.
296
297 Mon Jul 31 20:35:50 2000 Denis Chertykov <denisc@overta.ru>
298
299 * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
300
301 2000-07-31 Geoff Keating <geoffk@cygnus.com>
302
303 * flow.c (clear_log_links): Nuke global_live_at_start and
304 global_live_at_end data, since if the log_links stuff is invalid
305 so is global_live_at_*.
306
307 2000-07-31 Richard Henderson <rth@cygnus.com>
308
309 * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
310
311 2000-07-31 Jakub Jelinek <jakub@redhat.com>
312
313 * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
314 (_cpp_get_token): Don't macro expand a just pasted token if it
315 was pasted at no_expand_level.
316
317 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
318
319 * cppmacro.c (find_param, count_params, save_expansion):
320 Permit 'defined' as a macro parameter name.
321
322 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
323
324 * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
325 xcpp to cpp throughout.
326 (native): Remove unnecessary dependency on cpp.
327
328 * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
329 tradcpp to tradcpp0.
330 (.i spec): Add missing output-file spec to cc1 command line.
331 * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
332
333 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
334
335 * c-decl.c (mesg_implicit_function_declaration): Init to -1.
336 (implicit_decl_warning): New function.
337 (implicitly_declare): Use it.
338 * c-typeck.c (build_external_ref): Use implicit_decl_warning
339 to complain about implicit decls of builtins.
340
341 * c-lang.c (lang_init): Set mesg_implicit_function_declaration
342 based on pedantic && flag_isoc99, if not already set.
343 * c-tree.h: Declare mesg_implicit_function_declaration.
344 Prototype implicit_decl_warning.
345
346 2000-07-30 Jeffrey D. Oldham <oldham@codesourcery.com>
347
348 * Makefile.in (ssa.o): Updated header files in dependences.
349 * basic-block.h: Added compute_immediate_postdominators declaration.
350 * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
351 definition.
352 * flow.c (compute_immediate_dominators): Updated comment.
353 (compute_immediate_postdominators): Added definition.
354 * rtl.h (HARD_REGISTER_P): Added definition.
355 * ssa.c: Include additional header files.
356 (assert): Added definition.
357 (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
358 include select hard registers.
359 (ssa_rename_to_insert): Likewise.
360 (ssa_rename_from_initialize): Likewise.
361 (ssa_rename_from_lookup): Likewise.
362 (original_register): Likewise.
363 (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
364 include select hard reigsters.
365 (ssa_rename_from_traverse): Likewise.
366 (ssa_rename_from_free): Likewise.
367 (ssa_rename_from_print): Likewise.
368 (ssa_rename_from_print_1): Likewise.
369 (ssa_rename_from_hash_function): Likewise.
370 (ssa_rename_from_equal): Likewise.
371 (ssa_rename_from_delete): Likewise.
372 (simplify_to_immediate_dominators): Removed in favor of
373 flow.c:compute_immediate_dominators.
374 (find_evaluations_1): Modified to work with hard registers.
375 (insert_phi_node): Likewise.
376 (insert_phi_nodes): Likewise.
377 (struct rename_set_data): Updated prev_reg comment.
378 (create_delayed_rename): Modified to work with hard registers.
379 (RENAME_NO_RTX): Updated comment.
380 (apply_delayed_renames): Modified to work with hard registers.
381 (rename_insn_1): Likewise and added handling of CLOBBER rtls.
382 (rename_block): Updated to use revised ssa_rename_to interface.
383 (rename_registers): Updated to use revised ssa_rename_to and
384 ssa_rename_from interface.
385 (convert_to_ssa): Revised to use compute_immediate_dominators and
386 deal with hard registers.
387 (make_regs_equivalent_over_bad_edges): Modified to work with hard
388 registers. Added check for illegal unification of hard register.
389 (make_equivalent_phi_alternatives_equivalent): Modified to work
390 with hard registers.
391 (compute_conservative_reg_partition): Likewise.
392 (coalesce_if_unconflicting): Modified to work with hard registers
393 and check for conflicting hard registers.
394 (mark_phi_and_copy_regs): Revised loop to work only on pseudo
395 registers.
396 (rename_equivalent_regs_in_insn): Modified to work with hard
397 registers.
398 (record_canonical_element_1): Added definition.
399 (check_hard_regs_in_partition): Added definition.
400 (convert_from_ssa): Added data structure deallocation and check
401 for illegal hard register unification.
402 (conflict_hard_regs_p): Added definition.
403 * toplev.c (rest_of_compilation): Added comment.
404
405 2000-07-31 Anthony Green <green@redhat.com>
406
407 * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
408
409 2000-07-31 Jason McMullan <jmcmullan@linuxcare.com>
410
411 * builtins.c (expand_builtin_apply): Don't defer pop during
412 argument setup.
413
414 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
415
416 * calls.c (combine_pending_stack_adjustment_and_call): Only use
417 preferred_unit_stack_boundary when it is > 1.
418
419 2000-07-31 Joseph S. Myers <jsm28@cam.ac.uk>
420
421 * c-common.c (init_function_format_info): Add C99 format functions
422 in C99 mode.
423
424 * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
425 void' or 'register void' as being the special case of 'void' alone
426 in a parameter list.
427
428 * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
429 discarding qualifiers into a plain warning.
430
431 2000-07-31 Kazu Hirata <kazu@hxi.com>
432
433 * combine.c: Fix formatting.
434
435 * h8300.md: Fix formatting.
436
437 * local-alloc.c: Fix formatting.
438
439 * h8300.c (get_shift_alg): Remove the variable alg.
440 (emit_a_shift): Rearrange code to improve readability.
441
442 * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
443
444 * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
445 HImode on all architectures and a combination of HImode and SImode
446 on H8/300H and H8/S.
447
448 * h8300.c (split_adds_subs): Rearrange code for conciseness.
449
450 Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
451
452 * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
453 in my last checkin.
454
455 Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
456
457 * recog.c (extract_insn): Set operand_mode according to
458 operand if match_operand is VOIDmode.
459
460 Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
461
462 * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
463
464 2000-07-31 Geoff Keating <geoffk@cygnus.com>
465
466 * c-parse.in (extdefs): Call ggc_collect between external
467 definitions.
468
469 2000-07-30 Michael Hayes <mhayes@cygnus.com>
470 Richard Henderson <rth@cygnus.com>
471
472 * Makefile.in (OBJS): Add doloop.o.
473 * doloop.c: New file.
474
475 * final.c (insn_current_reference_address): Return 0 before final.
476 * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
477 * jump.c (any_uncondjump_p): Likewise.
478 * loop.c (indirect_jump_in_function): Make static.
479 (strength_reduce): Call doloop_optimize.
480 (insert_bct, instrument_loop_bct): Remove.
481 * loop.h (doloop_optimize): Prototype.
482 * recog.c (split_all_insns): Split all INSN_P.
483 * toplev.c (flag_branch_on_count_reg): Default on.
484
485 * config/c4x/c4x.c (c4x_optimization_options): Don't set
486 flag_branch_on_count_reg.
487 * config/i386/i386.c (override_options): Likewise.
488 * config/rs6000/rs6000.c (optimization_options): Likewise.
489
490 * config/i386/i386.md (decrement_and_branch_on_count): Remove.
491 (doloop_end): New.
492 (dbra_ge): Remove, as well as all it's splitters.
493
494 * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
495 (doloop_end): New.
496
497 * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
498 (ia64_register_move_cost): Declare.
499 * config/ia64/ia64.c (ar_lc_reg_operand): New.
500 (struct ia64_frame_info): Add ar_size.
501 (ia64_compute_frame_size): Set it.
502 (save_restore_insns): Save and restore ar.lc.
503 (ia64_register_move_cost): New, moved from header file. Handle
504 application registers.
505 (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers.
506 (emit_insn_group_barriers): Special case doloop_end_internal.
507 (ia64_epilogue_uses): Mark ar.lc live at end.
508 * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
509 (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
510 (FIRST_PSEUDO_REGISTER): Make room.
511 (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
512 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
513 (REG_ALLOC_ORDER): Update.
514 (HARD_REGNO_MODE_OK): Update.
515 (REGISTER_NAMES): Update.
516 (enum reg_class): Add AR_M_REGS and AR_I_REGS.
517 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
518 (REGNO_REG_CLASS): Update.
519 (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
520 (REGISTER_MOVE_COST): Move out of line.
521 (PREDICATE_CODES): Update.
522 * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
523 (addsi3_plus1_alt, adddi3_plus1_alt): New.
524 (shladd_elim splitter): Allow constants in the predicate.
525 (doloop_end, doloop_end_internal): New.
526
527 2000-07-30 Richard Henderson <rth@cygnus.com>
528
529 * genattrtab.c (struct insn_def): Add lineno member.
530 (struct insn_ent): Likewise.
531 (struct attr_desc): Likewise.
532 (struct delay_desc): Likewise.
533 (struct function_unit_op): Likewise.
534 (struct function_unit): Likewise.
535 (check_attr_value): Use message_with_line.
536 (check_defs): Likewise.
537 (expand_units): Likewise.
538 (check_attr_test): Take a lineno argument.
539 (gen_attr): Likewise.
540 (gen_insn): Likewise.
541 (gen_delay): Likewise.
542 (gen_unit): Likewise.
543 (main): Give it to them.
544 (convert_set_attr_alternative): Take an insn_def argument
545 instead of num_alt and insn_index.
546 (convert_set_attr): Likewise.
547 (write_test_expr): Protect INSN_ADDRESSES load
548 with INSN_ADDRESSES_SET_P.
549
550 2000-07-30 Richard Henderson <rth@cygnus.com>
551
552 * flow.c (init_propagate_block_info): Use pc_set.
553
554 Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
555
556 * i386.md (*lea_general_[123]) New insns and splits.
557 (addsi3 to lea splitter): Handle other modes too.
558 (shlsi3 to lea splitter): Likewise.
559 (addhi_1_lea, shlhi_1_lea): New patterns.
560 (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
561
562 Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
563
564 * recog.c (general_operand, nonimmediate_operand): Accept
565 any mode for VOIDmode CONSTANT_P operands.
566
567 Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
568
569 * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
570 instead of replace_rtx.
571 * recog.c (validate_replace_rtx_subexp): New function.
572 * recog.h (validate_replace_rtx_subexp): Declare.
573
574 Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
575
576 * combine.c (simplify_set, make_extraction, make_compound_operation
577 make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
578 as force_to_mode argument.
579
580 Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
581
582 * combine.c (if_then_else_cond): Be sure that mode fits in
583 HOST_WIDE_INT.
584
585 Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
586
587 * combine.c (record_promoted_value): Allow bitsize of mode
588 to be equivalent to HOST_BITS_PER_WISE_INT.
589
590 Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
591
592 * function.c (assign_stack_local_1, assign_stack_temp_for_type):
593 Do not call gen_mode_alignment when mode is BLKmode.
594
595 Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka <jh@suse.cz>
596
597 * loop.c (express_from_1): Fix call of simplify_gen_binary.
598
599 Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
600
601 * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
602 VOIDmode implies both operands to be VOIDmode.
603 (simplify_ternary_operation): Compute properly the mode of comparison.
604 * combine.c (combine_simplify_rtx): Likewise.
605
606 2000-07-25 Michael Hayes <mph@paradise.net.nz>
607
608 * basic-block.h (struct loops): New field rc_order.
609 * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
610 (flow_loops_free): Free rc_order.
611 (flow_depth_first_order_compute): New parameter rc_order.
612 (flow_loops_find): Allocate rc_order and swap usage with
613 dfs_order.
614
615 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
616 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
617
618 * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
619 (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
620 (nodb_call, return_from_epilogue): Likewise.
621 (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
622 * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
623 * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
624 (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
625 (c4x_valid_type_attribute_p): Likewise.
626 * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
627 (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
628
629 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
630
631 * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
632 and loadhi_big_constant if applicable.
633 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
634 and add new splitter.s
635
636 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
637
638 * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
639
640 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
641
642 * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
643
644 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
645
646 * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
647
648 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
649
650 * config/c4x/libgcc.S (divqf3): Improve accuracy.
651
652 2000-07-27 Mark Mitchell <mark@codesourcery.com>
653
654 Put phi nodes after NOTE_INSN_BASIC_BLOCK.
655 * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
656 * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
657 (get_prev_bb_note): Likewise.
658 (remove_scope_notes): Likewise.
659 * flow.c (commit_one_edge_insertion): Likewise.
660 (merge_blocks_nomove): Likewise.
661 (verify_flow_info): Likewise.
662 * gcse.c (insert_insn_end_bb): Likewise.
663 * reg-stack.c (emit_swap_insn): Likewise.
664 * ssa.c (first_insn_after_basic_block_note): New function.
665 (insert_phi_node): Use it.
666 (rename_block): Likewise.
667 (eliminate_phi): Likewise.
668 (make_regs_equivalent_over_bad_edges): Likewise.
669 (make_equivalent_phi_alternatives_equivalent): Likewise.
670 (for_each_successor_phi): Likewise.
671 (convert_from_ssa): Modify phi-node deletion algorithm.
672
673 2000-07-29 Andreas Jaeger <aj@suse.de>
674
675 * configure.in (mips*-*-linux*): Use mips*el to check for little
676 endian MIPS, add tmake_file.
677
678 * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
679 (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
680 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
681
682 2000-07-28 Richard Henderson <rth@cygnus.com>
683
684 * config/ia64/ia64.c (ia64_print_operand): Fix typos.
685 Sign extend mode size before negating.
686
687 2000-07-28 Richard Henderson <rth@cygnus.com>
688
689 * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
690
691 2000-07-28 Bernd Schmidt <bernds@cygnus.co.uk>
692
693 * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
694 (cse_insn): Likewise.
695 (addr_affects_sp_p): Likewise.
696 * expr.c (move_by_pieces): Likewise.
697 (clear_by_pieces): Likewise.
698 * gcse.c (oprs_unchanged_p): Likewise.
699 * haifa-sched.c (sched_analyze_2): Likewise.
700 * recog.c (offsettable_address_p): Likewise.
701 * regclass.c (record_address_regs): Likewise.
702 * reload.c (find_reusable_reload): Likewise.
703 (push_reload): Likewise.
704 (operands_match_p): Likewise.
705 (decompose): Likewise.
706 (find_reloads_address_1): Likewise.
707 (find_inc_amount): Likewise.
708 * reload1.c (elimination_effects): Likewise.
709 * resource.c (mark_set_resources): Likewise.
710 * flow.c (attempt_auto_inc): New function; mostly broken out
711 of find_auto_inc.
712 (find_auto_inc): Split into two functions and enhanced to
713 generate POST_MODIFY.
714 * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
715 * rtl.h (count_all_occurrences): Declare.
716 (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
717 defined.
718 * rtlanal.c (count_all_occurrences): New function.
719 * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
720 HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
721
722 * config/ia64/ia64-protos.h (destination_operand): Declare.
723 * config/ia64/ia64.c (destination_operand): New function.
724 (ia64_print_operand): Handle POST_MODIFY.
725 (rtx_needs_barrier): Likewise.
726 * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
727 (HAVE_POST_MODIFY_REG): Define to 1.
728 (MAX_REGS_PER_ADDRESS): Change to 2.
729 (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
730 (LEGITIMATE_ADDRESS_REG): New helper macro.
731 (LEGITIMATE_ADDRESS_DISP): Likewise.
732 (PREDICATE_CODES): Add entry for destination_operand.
733 * config/ia64/ia64.md (all mov patterns): Use destination_operand
734 predicate for operand 0.
735
736 2000-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
737
738 * dwarf2out.c: Indent #error directive.
739
740 * gbl-ctors.h: Fix typo in comment.
741 (__do_global_ctors): Prototype.
742
743 * gcse.c (record_one_set, pre_delete): Remove unused variables.
744
745 * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
746 (print_operand): Initialize variable `t'.
747
748 2000-07-27 Aldy Hernandez <aldyh@redhat.com>
749
750 * config/arm/arm.md ("call_value"): removed constraints.
751 Constraints are ignored in expanders.
752 (*call_value_reg): split =rf into various constraints.
753 (*call_value_mem): same
754 (*call_value_symbol): same
755 (*sibcall_value_insn): same
756
757 2000-07-28 Philipp Thomas <pthomas@suse.de>
758
759 * install.texi (--enable-nls): Change the description of the NLS
760 related configure options to match the current state.
761 (--with-included-gettext): Likewise.
762 (--enable-maintainer-mode): New description added.
763 * extend.texi (-fstrict-prototype): Add missing '.'.
764
765 2000-07-27 Jim Wilson <wilson@cygnus.com>
766
767 * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
768 DECL_INITIAL (decl) == NULL_TREE.
769
770 2000-07-27 Alexandre Oliva <aoliva@redhat.com>
771
772 * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies
773 on insn-attr.h with it.
774 * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
775 * insn-addr.h: New header.
776 (insn_addresses_): Renamed from insn_addresses.
777 (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
778 INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
779 INSN_ADDRESSES_NEW): New macros.
780 * genattrtab.c (write_test_expr): Use new macros.
781 * final.c (insn_addresses, init_insn_lengths): Likewise.
782 (align_fuzz, shorten_branches): Likewise.
783 (final): Likewise. Do not reject new insns if their addresses
784 have been added to INSN_ADDRESSES.
785 * config/arm/arm.c, config/avr/avr.c: Use new macros.
786 * config/h8300/h8300.c, config/i370/i370.c: Likewise.
787 * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
788 * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
789 * config/sh/sh.c: Likewise.
790 (output_branchy_insn): Use INSN_ADDRESSES_NEW.
791
792 * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
793
794 2000-07-27 Andrew Cagney <cagney@b1.cygnus.com>
795
796 * gcc.c (struct prefix_list): Add member priority.
797 (enum path_prefix_priority): Declare.
798 (add_prefix): Replace ``first'' with ``priority''. Append new
799 entry but keep list in priority order.
800 (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or
801 PREFIX_PRIORITY_LAST to add_prefix.
802 (process_command): Move include kludge - foo/stageN - to before
803 foo/include.
804
805 2000-07-27 Jason Merrill <jason@redhat.com>
806
807 * dwarf2out.c (gen_typedef_die): Abort if we get identical
808 TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
809
810 2000-07-27 RodneyBrown <RodneyBrown@pmsc.com>
811
812 * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
813 * tree.h (get_alias_set, lang_get_alias_set): Prototype.
814
815 2000-07-27 Joseph S. Myers <jsm28@cam.ac.uk>
816
817 * c-decl.c (finish_function): Don't treat 'main' specially unless
818 flag_hosted. In C99 mode, return 0 from 'main' unless
819 DEFAULT_MAIN_RETURN is otherwise defined.
820
821 * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
822 parameters defaulting to int in an old-style function definition.
823
824 2000-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
825
826 * c-parse.in (string): For -Wtraditional, warn about string
827 concatenation only once per line.
828
829 Thu Jul 27 09:25:17 2000 Akiko Matsushita <matusita@sra.co.jp>
830
831 * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
832 for HI-UX/WE2 systems.
833
834 2000-07-24 Bruce Korb <bkorb@gnu.org>
835
836 * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
837 defining the __xxx_TYPE__ macros.
838 * fixincl/fixincl.tpl(gnu_type_map): now obsolete
839 * fixincl/fixlib.h: don't need to include "tm.h" anymore
840 * fixincl/inclhack.def(type_map): now obsolete
841
842 Thu Jul 27 11:54:17 2000 Andrew Cagney <cagney@b1.cygnus.com>
843
844 * cpp.texi: Append a trailing full-stop to xrefs where needed.
845
846 2000-07-26 Dave Pitts <dpitts@cozx.com>
847
848 * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
849 routine constants.
850 (mvs_hash_alias): New function.
851 (mvs_add_alias): Change argument spacing.
852 (mvs_need_alias): Change aliasing criteria. Added documentation.
853 (mvs_get_alias): Change to use hashed name. The hashed name prevents
854 CSECT name collisions.
855 (mvs_check_alias): Likewise.
856 (handle_pragma): Change documentation.
857 * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
858 mode from SImode to DImode.
859 (iorhi3): Changed LTORG size for insn.
860
861 Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
862
863 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
864 mem if the address is a mode_dependent_address_p.
865
866 2000-07-26 Kazu Hirata <kazu@hxi.com>
867
868 * h8300.c (print_operand): Print ":8" when the 'R' operand is
869 suitable for 8-bit absolute.
870 * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
871 (OK_FOR_U): Add a case for the 8-bit constant address on the
872 H8/300H.
873
874 Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson <hp@axis.com>
875
876 * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
877 && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
878 ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
879 lack of implemented alignment.
880
881 2000-07-26 Geoffrey Keating <geoffk@cygnus.com>
882
883 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
884 cross-compiling between 64-bit and 32-bit machines.
885
886 2000-07-27 Richard Henderson <rth@cygnus.com>
887
888 * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
889 (movhicc_astep, movhi_internal_astep): New.
890 (movsicc_astep, movsi_internal_astep): New.
891 (movdicc_astep, movdi_internal_astep): New.
892 (movsfcc_astep, movsf_internal_astep): New.
893 (movdfcc_astep, movdf_internal_astep): New.
894 (movxfcc_astep, movxf_internal_astep): New.
895 (cmovdi_internal_astep, cmovsi_internal_astep): New.
896 Unify the cmov[ds]i splitters.
897
898 2000-07-27 Rodney Brown <RodneyBrown@pmsc.com>
899
900 * real.c (asctoeg): Rename `error' label to unexpected_char_error
901
902 2000-07-26 Nick Clifton <nickc@cygnus.com>
903
904 * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
905 __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h
906
907 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
908 well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
909
910 2000-07-26 Alexandre Oliva <aoliva@redhat.com>
911
912 * c-decl.c (finish_enum): Convert enumerations that fit in an
913 `int' to `int'.
914 (build_enumerator): In pedantic mode, cast to `int' those that
915 don't.
916
917 2000-07-25 Rodney Brown <RodneyBrown@pmsc.com>
918
919 * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
920
921 Tue Jul 25 23:08:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
922
923 * sh.md (cmpgtdi_t): Must be split.
924 (cmpgtdi_t+1): New splitter.
925
926 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
927
928 * cpplib.c (_cpp_check_directive): Issue -Wtraditional
929 warnings for indented directives even if we are skipping.
930
931 2000-07-25 Nathan Sidwell <nathan@codesourcery.com>
932
933 * invoke.texi (strict-prototypes): Remove.
934 * extend.texi (Deprecated Features): Add strict-prototypes.
935 (Backwards Compatibility): New node.
936
937 2000-07-25 Jakub Jelinek <jakub@redhat.com>
938
939 * config/i386/i386.md (andsi_1+1): Allow HImode.
940 (andsi_1+2): Require q_regs_operand.
941
942 2000-07-25 Jakub Jelinek <jakub@redhat.com>
943
944 * config/i386/i386.md (call_pop): Check operands[0],
945 not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
946 (call): Likewise.
947 (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
948 (call_value): Likewise.
949
950 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
951
952 * toplev.c (pipe_closed): Delete.
953 (crash_signal): New. Generate ICE for a fatal signal.
954 (float_signal): Call crash_signal outside a float-handler
955 block, not abort.
956 (main): Install crash_signal as handler for core-dumping signals.
957
958 2000-07-25 David Edelsohn <edelsohn@gnu.org>
959
960 * rs6000.c (print_operand, case 'T'): New case.
961
962 * rs6000.md (call_indirect_aix32): Convert to expander of
963 scheduled instructions.
964 (call_indirect_aix64): Likewise.
965 (call_value_indirect_aix{32,64}): Likewise.
966 (call, call_value): Invoke expanders for AIX. Fall through to
967 matchers for SysV.
968 (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
969 (call_value_indirect_nonlocal_aix{32,64}): New patterns.
970 (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1
971 only "g" constraint.
972 (call_nonlocal_aix64): Likewise.
973 (call_value_nonlocal_aix{32,64}): Likewise.
974 (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
975 operands.
976 (call_value_nonlocal_sysv): New pattern.
977 (indirect_jump{si,di}): Use new 'T' modifier.
978 (tablejump{si,di} matchers): Likewise.
979 (return_internal_{si,di}): Likewise.
980 (return_eh_{si,di}): Likewise.
981
982 2000-07-24 Richard Henderson <rth@cygnus.com>
983
984 * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
985 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
986 * config/ia64/ia64.md (movdi_internal): Use it.
987
988 2000-07-24 Zack Weinberg <zack@wolery.cumb.org>
989
990 * cppexp.c: Warn about unary + if -Wtraditional.
991 * cpplex.c (lex_line): Always set BOL on the first token of a line.
992
993 2000-07-24 Michael Meissner <meissner@redhat.com>
994
995 * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
996 unsupported macro.
997
998 2000-07-24 Nick Clifton <nickc@cygnus.com>
999
1000 * config/arm/arm.c (emit_multi_reg_push): Generate a
1001 REG_FRAME_RELEATED_NOTE that is compatable with the code in
1002 dwarf2out_debug_frame_expr.
1003
1004 2000-07-24 Jason Merrill <jason@redhat.com>
1005
1006 * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
1007 UNALIGNED_INT_ASM_OP.
1008 (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
1009 a location expression.
1010 (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't
1011 assume indirect access if we're saving the CFA address exactly.
1012
1013 * Makefile.in (bootstrap): Move -BstageN/ to the end.
1014
1015 2000-07-24 Jakub Jelinek <jakub@redhat.com>
1016
1017 * tradcpp.c (main): Update max_include_len for cpp_include_defaults
1018 as well.
1019
1020 2000-07-24 Michael Meissner <meissner@redhat.com>
1021
1022 * invoke.texi (D30V Options): Add d30v options.
1023
1024 Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com)
1025
1026 * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
1027 needed by our gcse pass anymore.
1028 (free_pre_mem): Corresponding changes.
1029 (compute_pre_data): Do not call compute_transpout anymore.
1030
1031 * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
1032 (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
1033 changes.
1034
1035 * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
1036 (compute_pre_data): Do it here instead.
1037
1038 * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
1039 'temp_bitmap'.
1040 (pre_delete): Corresponding changes.
1041
1042 2000-07-23 Mark Mitchell <mark@codesourcery.com>
1043
1044 * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
1045 to figure out whether or not a variable has already been emitted.
1046
1047 Sun Jul 23 14:49:12 2000 Jason Eckhardt <jle@cygnus.com>
1048
1049 * config/i860/i860.md (untyped_call expander): Use GEN_CALL
1050 instead of gen_call.
1051
1052 Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk)
1053
1054 * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
1055
1056 2000-07-23 Kazu Hirata <kazu@hxi.com>
1057
1058 * h8300.c: Fix formatting.
1059
1060 2000-07-23 Joseph S. Myers <jsm28@cam.ac.uk>
1061
1062 * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
1063 for `long' switch expression into a plain warning.
1064
1065 * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
1066 (yylex): Don't pedwarn for "inline" in C99 mode.
1067
1068 * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
1069 with %p.
1070 * ggc-page.c (debug_print_page_list, alloc_page, free_page,
1071 ggc_alloc): Likewise.
1072 * bb-reorder.c (dump_scope_forest_1): Likewise.
1073
1074 2000-07-22 Aldy Hernandez <aldyh@redhat.com>
1075
1076 * reload.c (find_reloads_toplev): Add new parameter
1077 "address_reloaded".
1078 (find_reloads): Add new parameter to find_reloads_toplev calls.
1079
1080 2000-07-22 Jeffrey Oldham <oldham@codesourcery.com>
1081
1082 * collect2.c (main): Typo fixed.
1083 * diagnostic.c: Typo fixed.
1084 * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
1085 * eh-common.h: Typo fixed.
1086 * emit-rtl.c (start_sequence): Typo fixed.
1087 * flow.c (find_label_refs): Typo fixed.
1088 (calculate_global_regs_live): Typo fixed.
1089 (mark_regno_cond_dead): Typo fixed.
1090 (create_edge_list): Typos fixed.
1091 (verify_edge_list): Typo fixed.
1092 * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
1093 * loop.c (strength_reduce): Typo in function name fixed.
1094 * rtl.h: Added comments. Typo in function name fixed.
1095 * rtlanal.c: Typo in function name fixed.
1096 (insn_dependant_p): Rename to ...
1097 (insn_dependent_p): ... this.
1098 (computed_jumo_p): Typo fixed.
1099
1100 2000-07-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1101
1102 * system.h (__FUNCTION__): Wrap definition in #ifndef.
1103
1104 2000-07-21 David Edelsohn <edelsohn@gnu.org>
1105
1106 * rs6000.h (SIZE_TYPE): Define.
1107
1108 2000-07-21 Mark Mitchell <mark@codesourcery.com>
1109
1110 * ssa.c (rename_insn_1): Don't rename registers that are
1111 CLOBBERed.
1112
1113 2000-07-21 Zack Weinberg <zack@wolery.cumb.org>
1114
1115 * diagnostic.c (trim_filename, fancy_abort): Moved here from
1116 rtl.c.
1117 (fatal_function, set_fatal_function): Removed.
1118 (fatal): Don't prepare for or call the fatal_function.
1119 (diagnostic_lock, error_recursion): New.
1120 (diagnostic_for_decl, report_diagnostic): Guard against
1121 re-entering the error reporting routines.
1122 (fancy_abort): Assume function is not NULL.
1123
1124 * errors.c (fancy_abort): New. Assume function is not NULL.
1125 * tradcpp.c (fancy_abort): Assume function is not NULL.
1126
1127 * system.h: Provide default definition of __FUNCTION__.
1128 * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
1129 Always use __FUNCTION__ in definition of abort.
1130 * tree.h: Likewise.
1131 * varray.h: Likewise.
1132 * toplev.h: Likewise. Don't prototype set_fatal_function.
1133
1134 2000-07-20 Geoff Keating <geoffk@cygnus.com>
1135
1136 * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
1137 in 64-bit mode.
1138 * glimits.h: Don't do #if defined for ARCH_PPC.
1139
1140 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
1141 constants of size no larger than a pointer should go in the TOC.
1142 Add 'MODE' parameter.
1143 (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
1144 ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
1145 (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
1146 * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
1147 * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
1148 * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
1149 (rs6000_legitimize_address): Likewise.
1150 (rs6000_emit_move): Likewise.
1151 (rs6000_select_rtx_section): Likewise.
1152 (output_toc): Deal properly with outputting small constants like
1153 HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
1154 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
1155 MODE parameter. Put small constants in the TOC.
1156
1157 * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
1158 easy in SImode.
1159 (rs6000_emit_move): When reload calls us with an illegitimate
1160 address, exit early. Move the change_address calls to one place
1161 at the end of the routine. Merge the SImode and DImode expanders.
1162 When called by reload to put an integer into a FP register, force
1163 it to memory.
1164
1165 * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
1166 field.
1167 (rs6000_hash_constant): Hash mode too.
1168 (toc_hash_function): Allow for key_mode.
1169 (toc_hash_eq): Structures are different if key_mode differs.
1170 (output_toc): Add 'mode' parameter. Save key_mode.
1171 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
1172 Pass 'mode' parameter.
1173 * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
1174
1175 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
1176 for vtable references.
1177
1178 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
1179 choice, don't put integer values in FP regs.
1180
1181 Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com)
1182
1183 * flow.c (verify_flow_info): Revamp code to verify that the
1184 head and end of each basic block are in the insn chain.
1185
1186 Thu Jul 20 18:02:35 2000 Michael Matz <matzmich@cs.tu-berlin.de>
1187
1188 * gcse.c (record_one_set): Prepend instead of append onto
1189 reg_set_table, making it O(n) instead O(n^2).
1190 * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
1191 Use a queue instead of a stack as worklist.
1192
1193 2000-07-20 Kazu Hirata <kazu@hxi.com>
1194
1195 * h8300.c (two_insn_adds_subs_operand): Fix a typo.
1196 * h8300.h (OK_FOR_T): New.
1197 (EXTRA_CONSTRAINT): Support OK_FOR_T.
1198 * h8300.md: Use inc/dec.[wl] for increment/decrement
1199 by 1 and 2 in HI and SI modes.
1200
1201 2000-07-20 Jim Wilson <wilson@cygnus.com>
1202
1203 * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
1204 larger than 14 bits.
1205
1206 2000-07-20 Zack Weinberg <zack@wolery.cumb.org>
1207
1208 * cppmacro.c (CAN_PASTE_AFTER): New macro.
1209 (count_params): Don't set GNU_REST_ARGS on anything.
1210 (save_expansion): Set PASTE_LEFT only on tokens for which
1211 CAN_PASTE_AFTER is true, or which are named operators.
1212
1213 * cpplex.c (parse_args): Distinguish between a rest argument
1214 given one empty argument, and a rest argument given zero arguments.
1215 (maybe_paste_with_next): Look for VOID_REST tag, and trigger
1216 deletion of previous token based on that.
1217 (get_raw_token): Flatten some control structure.
1218
1219 * cpplib.h (CPP_LAST_EQ): Correct.
1220 (VOID_REST): New token flag.
1221 (GNU_REST_ARGS): Delete.
1222
1223 * tradcpp.c (main): Don't munge -D options.
1224 (make_definition): Bring -D handling in line with cpplib.
1225 (do_define): Strip all leading whitespace from macro definitions.
1226
1227 2000-07-20 David Billinghurst <David.Billinghurst@riotinto.com.au>
1228
1229 * Makefile.in (tradcpp): Depend on intl.o and version.o.
1230
1231 2000-07-20 Bruce Korb <bkorb@gnu.org>
1232
1233 * fixincl/check.tpl: strip the platform specific types before testing
1234 * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
1235 * fixincl/fixincl.tpl: use platform specific types
1236 * fixincl/fixlib.h: include the platform specific types
1237 * fixincl/inclhack.def(gnu_types): don't supply the types
1238 * fixincl/fixincl.x: regen
1239
1240 2000-07-19 Jim Wilson <wilson@cygnus.com>
1241
1242 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
1243 GR_REGS.
1244
1245 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
1246
1247 * tradcpp.c (rescan): Do not recognize directives when the #
1248 is indented.
1249
1250 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
1251
1252 Implement C++ named operators.
1253
1254 * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
1255 of operators allowed in #if and having an _EQ variant. Add
1256 CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
1257 (cpp_token flags): Add NAMED_OP.
1258 (enum node_type): Add T_OPERATOR.
1259 (struct cpp_hashnode): Add code slot to value union.
1260 * cpphash.h (spec_nodes): Remove n_defined.
1261
1262 * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
1263 (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
1264 (is_macro_disabled): Tweak error messages.
1265
1266 * cpplib.c (get_define_node): Disallow all named operators as
1267 macro names. Tweak error messages.
1268 (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
1269
1270 * cppinit.c (builtin_array): Add entries for the named operators.
1271 * cppexp.c (lex): Check for CPP_DEFINED token.
1272 (priority table): Add entries for CPP_MIN and CPP_MAX.
1273 (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
1274
1275 2000-07-19 Bernd Schmidt <bernds@cygnus.co.uk>
1276
1277 * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
1278 larger than the array of cuids.
1279 (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
1280 cuids.
1281
1282 2000-07-19 Bruce Korb <bkorb@gnu.org>
1283
1284 * fixinc/fixincl.c: Convert to using a table of environment variables
1285 and activate the auto-edit marker on the fixed output files.
1286 * fixinc/fixlib.h: Define the environment table
1287 * fixinc/fixincl.sh: export the ${INPUT} dir
1288 * fixinc/check.tpl: likewise
1289
1290 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
1291
1292 * gcc.c (.h spec): Fix typo.
1293
1294 Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
1295
1296 * Makefile.in: Fix tradcif.c path.
1297
1298 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
1299
1300 * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
1301 macros, not five.
1302
1303 * cpphash.h (TOKEN_NAME): New macro.
1304 (_cpp_spell_operator): Deleted.
1305 (token_spellings): Now _cpp_token_spellings.
1306
1307 * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
1308 * cpplex.c: Use OP and TK macros when expanding the
1309 TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens,
1310 store the stringification of the enumeration name (CPP_CHAR,
1311 etc.) in the name slot of token_spellings.
1312 Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
1313 token_spellings directly.
1314 * cpplib.c: Use TOKEN_SPELL.
1315
1316 * cpplex.c (_cpp_push_token): If the token being pushed back
1317 is the previous token in this context, just subtract one from
1318 context->posn.
1319 * cppmacro.c (save_expansion): Clear aux field when storing a
1320 placemarker.
1321
1322 2000-07-18 Jakub Jelinek <jakub@redhat.com>
1323
1324 * cpplex.c (cpp_scan_buffer): Output line command even at the stop
1325 buffer, provided it is not NULL.
1326
1327 2000-07-18 Alexandre Oliva <aoliva@redhat.com>
1328
1329 * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
1330 case of invalid volatile re-declaration.
1331
1332 2000-07-18 Jakub Jelinek <jakub@redhat.com>
1333
1334 * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
1335 (expand_call): Adjust caller.
1336
1337 2000-07-17 Gabriel Dos Reis <gdr@codesourcery.com>
1338
1339 * diagnostic.h (report_diagnostic): Change prototype.
1340
1341 * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
1342 diagnostic_for_decl): Change prototype.
1343 (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
1344 error, warning, error_with_file_and_line,
1345 warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
1346 Adjust call to report_diagnostic, diagnostic_for_decl.
1347 (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
1348 (output_verbatim, verbatim): Adjust call to output_do_verbatim.
1349
1350 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
1351 varaible argument list.
1352
1353 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
1354
1355 * cpphash.c: Don't include hashtab.h. Most macro-handling code
1356 moved to cppmacro.c.
1357 (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
1358 dump_hash_helper): Delete.
1359 (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
1360 cpp_forall_identifiers): New. Implement specialized version of
1361 Vlad's expandable hash table.
1362 (cpp_lookup): Use new functions.
1363 (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
1364 implementation.
1365 * cppmacro.c: New file.
1366 * cppinit.c (dump_macros_helper): New.
1367 (cpp_finish): Iterate over the identifier table directly.
1368 * cpplex.c (parse_name): Calculate the hash of the identifier
1369 while we scan it. Use _cpp_lookup_with_hash when we can.
1370
1371 * cpphash.h: Update prototypes.
1372 (xcnewvec, HASHSTEP): New helper macros.
1373 * cpplib.h: Update prototypes.
1374 * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
1375 (cppmacro.o): New rule.
1376 (cpphash.o): Update deps.
1377
1378 * cppmain.c: Do not set pfile->printer if no_output is on.
1379
1380 2000-07-15 Neil Booth <neilb@earthling.net>
1381
1382 * cpplib.c: Change all directive-handler functions to return
1383 void, not int.
1384 * cpphash.h: Update typedefs.
1385
1386 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
1387
1388 * configure: Regenerate.
1389
1390 * extend.texi (Extended Asm): Mention that a memory clobber
1391 does not count as a side-effect.
1392
1393 * unroll.c (copy_loop_body): Fix one instance of using host
1394 arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
1395 cross-compile.
1396
1397 * tlink.c (scan_linker_output): Tweak for output of AIX ld.
1398
1399 2000-07-17 Richard Henderson <rth@cygnus.com>
1400
1401 * config/ia64/ia64.md (movdi): Split out load address code.
1402 New post-reload splitter for symbolic operands.
1403 (movdi_internal): Abort if we didn't split symbolic operands
1404 when we should have.
1405 * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
1406 (ia64_reorg): Split insns when not optimizing.
1407 * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
1408
1409 Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
1410
1411 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
1412 instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
1413
1414 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
1415
1416 * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
1417
1418 2000-07-17 Jason Merrill <jason@redhat.com>
1419
1420 * Makefile.in (clean): Remove libgcc directory.
1421
1422 * configure.in (-Wno-long-long check): Use higher-level macros.
1423
1424 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
1425
1426 * simplify-rtx.c (simplify_binary_operation): Recognize
1427 (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
1428 (simplify_ternary_operation): Do not examine MODE_BITSIZE of
1429 a CONST_INT, it will always be zero.
1430
1431 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
1432
1433 * loop.c (check_dbra_loop) : Return if more than one condition is
1434 present to control the loop.
1435
1436 Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com>
1437
1438 * mips.c (mips_expand_prologue): Don't calculate the last argument
1439 register unless we need it. When we are calculating this, make
1440 sure FUNCTION_ARG is giving us a REG.
1441
1442 2000-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
1443
1444 * flow.c (libcall_dead_p): Use single_set to verify the insn
1445 has only one set and get for analysis.
1446 (propagate_one_insn): Don't pass the PATTERN of the insn.
1447
1448 2000-07-17 Mark Klein <mklein@dis.com>
1449
1450 * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
1451
1452 2000-07-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1453
1454 * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
1455 * configure.in (TARGET_GETGROUPS_T): Evaluate.
1456 * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
1457 of second argument of getgroups.
1458 * configure, config.in: Rebuilt.
1459
1460 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
1461
1462 * simplify-rtx.c (simplify_relational_operation): Two signed
1463 values with equal high words are less/greater than each other if
1464 their low words are less/greater when considered as unsigned.
1465
1466 Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org>
1467
1468 * configure.in (vax-*-openbsd): Change to new style configuration,
1469 add collect2/float_format information.
1470 * configure: Rebuilt.
1471 * config/vax/openbsd1.h: New.
1472 * config/vax/openbsd.h: New.
1473 * config/vax/t-openbsd: New.
1474
1475 2000-07-17 Chip Salzenberg <chip@valinux.com>
1476
1477 * c-common.c (shorten_compare): Quiet warnings about unsigned
1478 comparisons with zero when they occur in a system header.
1479
1480 2000-07-17 Joseph S. Myers <jsm28@cam.ac.uk>
1481
1482 * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
1483 update to describe current practice.
1484
1485 * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
1486
1487 * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
1488 references to C9X. Change references to -fstd and -flang-isoc9x
1489 to refer to -std.
1490
1491 * c-common.c (scan_char_table): Allow "z" length modifiers on
1492 diouxXn formats.
1493 (check_format_info): Use TYPE_DOMAIN on the type matched against
1494 for "z" formats, to retrieve the language size_t rather than the
1495 internal one.
1496
1497 * c-common.c (check_format_info): Do not make a pedantic objection
1498 to the 'L' length modifier if used with a floating point type
1499 character.
1500
1501 * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
1502 constants in C99 mode.
1503
1504 2000-07-17 Kazu Hirata <kazu@hxi.com>
1505
1506 * h8300.md: Fix the format of mac.
1507 (movsi_h8300hs): Output a tab after stmac instead of a space.
1508
1509 * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
1510 profitable adds/subs sequences.
1511
1512 * fold-const.c: Fix comment typos.
1513
1514 2000-07-16 Laurynas Biveinis <lauras@softhome.net>
1515
1516 * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
1517
1518 2000-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1519
1520 * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
1521
1522 2000-07-16 Neil Booth <NeilB@earthling.net>
1523
1524 * cpplex.c: Update comments.
1525 * README.Portability: Small update.
1526
1527 2000-07-16 Neil Booth <NeilB@earthling.net>
1528
1529 * README.Portability: Small update.
1530
1531 2000-07-15 Richard Henderson <rth@cygnus.com>
1532
1533 * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
1534 * config/ia64/ia64.c (ia64_move_ok): New function.
1535 * config/ia64/ia64.md (movqi, movqi_internal): Use it.
1536 (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
1537
1538 2000-07-15 Zack Weinberg <zack@wolery.cumb.org>
1539
1540 * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
1541 immediately following a paste operator.
1542 * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
1543 (cpp_reader_init): Call it, if HOST_EBCDIC.
1544 (cpp_handle_options): Do not sort option list here.
1545 (handle_option): Rename to cpp_handle_option and export.
1546 * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
1547 _cpp_get_token directly.
1548 (cpp_scan_line): Return 0 at EOF, 1 otherwise.
1549 * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
1550 * cpplib.h: Prototype cpp_handle_option. Update prototype of
1551 cpp_scan_line.
1552
1553 2000-07-15 Richard Henderson <rth@cygnus.com>
1554
1555 * fold-const.c (extract_muldiv): Don't optimize past an unsigned
1556 cast around an expression. Tidy other unsigned tests.
1557
1558 2000-07-15 Gabriel Dos Reis <gdr@codesourcery.com>
1559
1560 * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
1561 v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
1562 (v_message_with_decl): Rename to ...
1563 (format_with_decl): ... this. Tweak
1564 (diagnostic_for_decl): New function.
1565 (fatal_io_error): Use verbatim in lieu of notice.
1566 (announce_function): Use verbatim.
1567 (default_print_error_function): Likewise.
1568 (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
1569 infratructure.
1570
1571 2000-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1572
1573 * mips.c (function_arg_pass_by_reference): Don't do automatic
1574 aggregate initialization.
1575 (machine_dependent_reorg): Initialize variable `mode'.
1576
1577 * mips.md (absdi2): Change variable `regno1' to unsigned int.
1578 (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
1579 conflicts with sys/param.h macro of the same name.
1580 (reload_outdi): Likewise.
1581
1582 2000-07-15 Michael Meissner <meissner@redhat.com>
1583
1584 * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
1585 == CONST + INCREMENT, don't overwrite the tree node for FOO++,
1586 create a new node instead.
1587
1588 2000-07-15 Neil Booth <NeilB@earthling.net>
1589
1590 * README.Portability: Correct example about calling a function
1591 through a pointer to function. Format wide paragraphs.
1592
1593 2000-07-15 Michael Meissner <meissner@redhat.com>
1594
1595 * README.Portability: Update integer suffixes and function
1596 prototype sections.
1597
1598 2000-07-15 Neil Booth <NeilB@earthling.net>
1599
1600 * README.Portability: Small update.
1601
1602 2000-07-15 Neil Booth <NeilB@earthling.net>
1603
1604 * README.Portability: New file.
1605
1606 Fri Jul 14 18:13:53 2000 Mark P Mitchell <mark@codesourcery.com>
1607
1608 * INSTALL: Give special instructions for building GCC on Irix 6.
1609 * config/mips/x-iris6 (CC): Don't set it.
1610 (OLDCC): Likewise.
1611
1612 2000-07-14 Jason Merrill <jason@redhat.com>
1613
1614 * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
1615 register in the stack and later in another register, use the new
1616 register.
1617
1618 Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com>
1619
1620 * config/mips/mips.md: (absdi2): Handle sign_extend for
1621 second operand.
1622
1623 2000-07-14 Nathan Sidwell <nathan@codesourcery.com>
1624
1625 * cpplib.c (do_pragma_dependency): Tidy warning messages.
1626
1627 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
1628
1629 * .cvsignore: Correct typo.
1630
1631 2000-07-13 Mark Mitchell <mark@codesourcery.com>
1632
1633 * .cvsignore: Add generated YACC files.
1634 * objc/.cvsignore: New file.
1635
1636 2000-07-14 Neil Booth <NeilB@earthling.net>
1637
1638 * cpplex.c (adjust_column): New funcion.
1639 (skip_whitespace): Use it.
1640 (skip_block_comment): Use it, and warn about /*/* with
1641 -Wcomments.
1642
1643 2000-07-14 Neil Booth <NeilB@earthling.net>
1644
1645 * cpphash.c (struct macro_info): Add new members.
1646 (_cpp_free_definition): Delete the macro directly.
1647 (count_params): Return void, with first token of
1648 expansion in struct macro_info on success.
1649 (parse_define): Return int. Hoist syntax checking from
1650 save_macro_expansion. Leave call to save_expansion to
1651 _cpp_create_definition.
1652 (alloc_macro): Needs just 2 arguments.
1653 (free_macro): Delete.
1654 (save_expansion): Don't perform syntax check.
1655 (_cpp_create_definition): Call save_expansion.
1656
1657 2000-07-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1658
1659 * genrecog.c (write_header): Split long string.
1660
1661 * cpphash.c (macro_info): Don't use the `signed' keyword.
1662
1663 * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
1664
1665 2000-07-13 Jakub Jelinek <jakub@redhat.com>
1666
1667 * calls.c (stored_args_map): New variable.
1668 (check_sibcall_argument_overlap_1): New.
1669 (check_sibcall_argument_overlap): New.
1670 (expand_call): Initialize stored_args_map.
1671 Call check_sibcall_argument_overlap.
1672
1673 2000-07-13 Bruce Korb <bkorb@gnu.org>
1674
1675 * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
1676 (emit_gnu_type): utility procedure for gnu_type_fix
1677 (gnu_type_fix): implement various pre-processor guards around
1678 standard types so these types can be defined over and over
1679 * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
1680 types alluded to above will have GNU-compliant base types
1681 * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
1682 * fixinc/inclhack.def: add test_text entries and utilize the new
1683 "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
1684 * fixinc/fixincl.x: regenerate
1685
1686 2000-07-12 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
1687
1688 * diagnostic.c (vline_wrapper_message_with_location,
1689 v_message_with_file_and_line, v_error_with_file_and_file,
1690 v_error_for_asm, v_warning_for_asm, vfatal,
1691 v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
1692 vsorry, verror, vwarning, vpedwarn): Remove.
1693 (diagnostic_for_asm): New function.
1694 (pedwarn, error, warning, pedwarn_with_file_and_line,
1695 error_with_file_and_line, warning_with_file_and_line, sorry,
1696 error_for_asm, warning_for_asm, fatal): Reimplement.
1697 (finish_diagnostic): Clear diagnostic info as well.
1698
1699 2000-07-13 Neil Booth <NeilB@earthling.net>
1700
1701 * c-common.h (flag_digraphs): New.
1702 * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
1703 * c-lex.c (yylex): Use flag_digraphs to decide whether to
1704 honour digraphs.
1705
1706 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
1707
1708 * gcc.c (do_spec_1): Add new %B operator.
1709 (set_input): Prepare for %B.
1710
1711 (link_command_spec): Move up with the other tm.h-
1712 overrideable specs. Factor out the portion conditional on
1713 LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
1714 (struct compiler): Just have a single spec string. All users
1715 updated.
1716 (default_compilers): Remove unnecessary braces.
1717 (static_specs): Update.
1718
1719 (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
1720 named specs.
1721 (C and assembly specs): Use the new named specs, as appropriate.
1722
1723 * objc/lang-specs.h: Use the new named specs.
1724 Remove unnecessary braces.
1725
1726 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
1727
1728 * gcc.c (execute): If a subprocess gets a fatal signal, report
1729 strsignal() of the signal number, and ask for a bug report.
1730 Do not do this for SIGPIPE if there's already been an error.
1731
1732 * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
1733 Delete pipe_closed.
1734
1735 * tradcif.c: Remove.
1736
1737 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
1738
1739 * final.c (profile_function): Do not emit profile counters in
1740 the data section, if NO_PROFILE_COUNTERS is defined.
1741 * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
1742 FUNCTION_PROFILER.
1743
1744 * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
1745 (FUNCTION_PROFILER): Just emit a call to mcount.
1746
1747 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
1748
1749 * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
1750
1751 * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
1752 cpplib.c, cpplib.h: Eradicate all traces of code dependent on
1753 traditional, lang_chill, or lang_fortran.
1754
1755 * cppfiles.c: #undef strcmp to suppress warning about macros
1756 used without arguments.
1757 (_cpp_execute_include): Use f, not fname, in "No include path"
1758 error.
1759 (_cpp_pop_file_buffer): New function.
1760 * cpplib.c: Don't include <sys/mman.h>.
1761 (cpp_push_buffer): Set line_base and lineno in new buffer.
1762 (cpp_pop_buffer): Use _cpp_pop_file_buffer.
1763
1764 * cpplex.c: Move all prototypes and structure declarations to the
1765 top of the file. Properly parenthesise some macro arguments.
1766 (cpp_scan_line): New function.
1767 (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
1768 don't need to walk up the stack counting.
1769
1770 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1771
1772 * c-common.c (combine_strings): Emit a pedantic warning when a
1773 string length is greater than the minimum ANSI C is required
1774 to support.
1775
1776 Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com)
1777
1778 * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
1779 * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
1780
1781 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1782
1783 * c-decl.c (define_label): Warn about identifier conflicts with
1784 labels in traditional C.
1785
1786 * c-parse.in (unop +): Warn about the unary plus operator for
1787 traditional C.
1788
1789 * c-typeck.c (store_init_value): Warn about automatic aggregate
1790 initialization for traditional C.
1791
1792 * invoke.texi (-Wtraditional): Document new warnings.
1793
1794 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
1795
1796 * Makefile.in (c-errors.o): Fix thinko in dependency.
1797
1798 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
1799
1800 * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
1801 -traditional, -ftraditional, or -traditional-cpp was given.
1802 Do not pass -traditional to the preprocessor.
1803 (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
1804 preprocessor does it automatically.
1805 * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
1806
1807 * ch/lang-specs.h: Always use tradcpp. Do not pass
1808 -traditional, -trigraphs, or -pedantic to the preprocessor.
1809 * f/lang-specs.h (.F spec): Likewise. Don't bother defining
1810 _LANGUAGE_FORTRAN.
1811
1812 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
1813
1814 * cppexp.c (LOGICAL): Delete macro.
1815 (_cpp_parse_expr): Do not use UNARY for unary +. Implement ||
1816 and && directly.
1817
1818 * cpphash.c (HASHSIZE): Increase to 4096.
1819 (struct hashdummy): Add hash field.
1820 (eq_HASHNODE): Compare unreduced hashes, then lengths, then
1821 the string values using memcmp.
1822 (cpp_lookup): Set dummy.hash.
1823
1824 Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
1825
1826 * configure.in (m88k-openbsd): Express configuration using new fragment
1827 style.
1828 * configure: Rebuilt.
1829 * m88k/aout-dbx.h: New.
1830 * m88k/openbsd.h: New.
1831 * m88k/xm-openbsd.h: New.
1832
1833 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1834
1835 * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
1836
1837 2000-07-12 Richard Henderson <rth@cygnus.com>
1838
1839 * reload.c (push_secondary_reload): Make sure to add the new
1840 reload at the end, after acquiring secondary memory.
1841
1842 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1843
1844 * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
1845
1846 * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
1847 lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
1848
1849 * c-parse.in (stmt): Delete unused variables.
1850
1851 * convert.c (convert_to_vector): Likewise.
1852
1853 * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
1854
1855 * tree.c (finish_vector_type): Prototype.
1856
1857 2000-07-12 Bruce Korb <bkorb@gnu.org>
1858
1859 * fixinc/fixfixes.c: use xmalloc
1860 * fixinc/fixincl.c(initialize): set program name for xmalloc
1861 * fixinc/fixlib.c(must_malloc): obsolete
1862 (is_cxx_header): no longer used - disabled
1863 (skip_quote): inserted and disabled for future use
1864 * fixinc/fixlib.h: reflects above
1865 * fixinc/fixtests.c: removed dinkleberries
1866
1867 2000-07-12 Neil Booth <NeilB@earthling.net>
1868
1869 * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
1870 * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
1871
1872 * cpphash.c: (struct macro_info, alloc_macro, free_macro,
1873 struct toklist_dummy): New.
1874 (cpp_free_definition): Free macros with free_macro.
1875 (count_params): Don't save paramter spellings. Save macro
1876 information in a struct macro_info.
1877 (parse_define): Don't allocate a token list.
1878 (save_expansion): Allocate the macro's token list, and
1879 save parameter spellings if necessary. Use TOKEN_SPELL.
1880 (cpp_create_definition): Make list const.
1881
1882 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
1883
1884 * c-typeck.c (pedwarn_c99): Move to
1885 * c-errors.c: ... Here.
1886 * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
1887 * diagnostic.c (verror, vwarning, vpedwarn): Make static.
1888 * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
1889 (c-errors.o): List dependency.
1890
1891 2000-07-12 Mark Mitchell <mark@codesourcery.com>
1892
1893 * c-parse.c: Remove.
1894 * c-parse.h: Likewise.
1895 * c-parse.y: Likewise.
1896 * objc/objc-parse.c: Likewise.
1897 * objc/objc-pasre.y: Likewise.
1898
1899 2000-07-11 Rodney Brown <RodneyBrown@pmsc.com>
1900
1901 * gcc.texi: Fix minor typos
1902 * extend.texi: Fix minor typos
1903
1904 2000-07-11 Marc Espie <espie@openbsd.org>
1905
1906 * collect2.c (main): Recognize .lo as object files.
1907
1908 2000-07-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1909
1910 * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
1911 true.
1912
1913 * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
1914 with MAP_ANONYMOUS and MAP_ANON.
1915 * configure, config.in: Rebuilt.
1916
1917 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
1918
1919 * diagnostic.c (save_output_state): Remove.
1920 (restore_output_state): Likewise.
1921 (clear_text_info): New function.
1922 (clear_diagnostic_info): Likewise.
1923 (output_text_length, is_starting_newline, output_prefix,
1924 line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
1925 prefixing_policy, output_buffer_ptr_to_format_args): New macros
1926 (set_real_maximum_length, output_set_maximum_length,
1927 output_set_prefix, output_get_prefix, output_set_maximum_length,
1928 output_destroy_prefix, init_output_buffer,
1929 reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
1930 output_add_newline, output_add_character, output_add_space,
1931 output_append_r, output_append, wrap_text, output_format,
1932 output_do_printf, output_printf, output_do_verbatim,
1933 output_verbatim, verbatim): Use them.
1934 (output_clear): Split into cleat_text_info and
1935 clear_diagnostic_info.
1936 (struct output_state): Move to...
1937
1938 * diagnostic.h: ...Here
1939 (struct output_buffer): Adjust.
1940
1941 2000-07-11 Zack Weinberg <zack@wolery.cumb.org>
1942
1943 * cpplex.c (parse_name): No longer inline (premature optimization).
1944 (do_pop_context): Fold into pop_context.
1945 (pop_context): Returns int.
1946 (lex_next): Hoist test for end of directive into pop_context.
1947 (push_macro_context): Returns int; takes just reader and token.
1948 Hoist test for excessive nesting to caller.
1949 (push_arg_context): Returns void; takes just reader and token.
1950 Do not call stringify_arg or get_raw_token.
1951 (get_raw_token): Convert tail recursion through push_arg_context
1952 to a loop at this level. Call stringify_arg here if appropriate.
1953 (maybe_paste_with_next): Convert tail recursion to a while loop.
1954 Hoist test of paste_level to caller.
1955
1956 (stringify_arg): Push arg context at beginning.
1957 (cpp_get_token): Split out core into _cpp_get_token. Call
1958 process_directive here. Throw away CPP_PLACEMARKER tokens.
1959 (_cpp_get_token): Convert tail recursion through
1960 push_macro_context to a loop at this level.
1961 (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
1962 _cpp_get_raw_token): Use _cpp_get_token.
1963 (_cpp_skip_rest_of_line): Drop the context stack directly; do
1964 not call pop_context.
1965 (_cpp_run_directive): Call lex_next directly.
1966
1967 * cpphash.h: Prototype _cpp_get_token.
1968 * cppexp.c (lex): Use it.
1969 * cpphash.c (parse_define): Use it.
1970 * cpplib.c (get_define_node, do_undef, parse_include,
1971 read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
1972 do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
1973 parse_ifdef, validate_else): Use it.
1974 (cpp_push_buffer): Tweak error message; abort if anyone tries
1975 to push a buffer while macro expansions are stacked.
1976
1977 2000-07-11 Donn Terry <donnte@microsoft.com>
1978
1979 * cpplex.c (free_macro_args, save_token): Cast arg of free
1980 and/or xrealloc to PTR.
1981 (_cpp_init_input_buffer): Clear all fields of the base context.
1982
1983 Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz <cpopetz@cygnus.com>
1984
1985 * gensupport.c (process_rtx): Make rtl checking stop
1986 complaining about the define_insn while it is being
1987 converted from a define_insn_and_split.
1988
1989 Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
1990
1991 * config/mips/mips.c (simple_memory_operand): Access the
1992 INTVAL of the address, not it's containing MEM.
1993
1994 2000-07-11 Bruce Korb <bkorb@gnu.org>
1995
1996 * fixinc/fixtests.c(double_slash): obsolete
1997 (else_endif_label): likewise
1998 * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
1999 (libc1_ifdefd_memx): correct initial comment
2000 and omit the #if/#endif pair from the memxxx declarations
2001 * fixinc/fixincl.x: regen
2002
2003 2000-07-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2004
2005 * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
2006
2007 2000-07-11 Neil Booth <NeilB@earthling.net>
2008
2009 * cpp.texi: Update.
2010
2011 2000-07-11 Neil Booth <NeilB@earthling.net>
2012
2013 * cppinit.c: (cpp_reader_init): Allow digraphs by default.
2014 (handle_option): Set digraphs according to standard.
2015 Merge OPT_lang_c89 handler with OPT_std_c89.
2016
2017 * cpplex.c: (lex_line, can_paste): Honour digraphs in
2018 accordance with the digraphs flag.
2019
2020 * cpplib.h: (struct cpp_options): New option digraphs.
2021
2022 2000-07-10 Hans-Peter Nilsson <hp@axis.com>
2023 Bruce Korb <bkorb@gnu.org>
2024
2025 * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
2026 * fixinc/fixincl.x: Regenerate.
2027 * fixinc/tests/base/testing.h: Add testcase.
2028
2029 2000-07-10 Richard Henderson <rth@cygnus.com>
2030
2031 * config/ia64/ia64.c (got_symbolic_operand): New.
2032 (symbolic_operand, move_operand): Revert 0701 change.
2033 * config/ia64/ia64.h (PREDICATE_CODES): Update.
2034 * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
2035 * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
2036 split the offset into a 14-bit low part instead of a 13-bit low part.
2037 (load_fptr): Mark the mem as unchanging.
2038 (load_symptr): Use got_symbolic_operand.
2039
2040 2000-07-10 Nick Clifton <nickc@cygnus.com>
2041
2042 * libgcc2.c (next_stack_level): Cast result of computation to
2043 (void **) so that the assignment does not generate a warning.
2044
2045 2000-07-10 Chandrakala Chavva <cchavva@redhat.com>
2046
2047 * flags.h : Add new variable flag_single_precision_constant.
2048 * toplev.c (display_help) : Add -fsingle-precision-constant option.
2049 (flag_single_precision_constant): New.
2050 * c-lex.c (yylex): Convert floating point constant to single
2051 precision constant.
2052 * invoke.texi : Add documentation for this new option.
2053
2054 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
2055
2056 * diagnostic.c (output_octal): Second parameter is unsigned.
2057 (output_long_octal): Likewise.
2058 (output_hexadecimal): Likewise.
2059 (output_long_hexadecimal): Likewise.
2060 (output_format): Adjust arguments extraction. Tweak.
2061 (output_verbatim, verbatim): End variable argument list.
2062 (report_diagnostic): Improve documentation.
2063
2064 2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
2065
2066 * c-common.h (build_stmt): Declare.
2067 (build_continue_stmt): Likewise.
2068 (build_break_stmt): Likewise.
2069 (build_return_stmt): Likewise.
2070
2071 * c-decl.c (do_case): Rewrite to do what previously done in
2072 c-parse.in.
2073
2074 * c-semantics.c (build_stmt): Define.
2075 (build_return_stmt): Likewise.
2076 (build_break_stmt): Likewise.
2077 (build_continue_stmt): Likewise.
2078 (build_case_label): Likewise.
2079
2080 * c-parse.in (BREAK): Change to build tree, then generate RTL.
2081 (CONTINUE): Likewise.
2082 (RETURN): Likewise.
2083 (CASE): Likewise.
2084 (DEFAULT): Likewise.
2085
2086 * c-parse.y: Regenerate.
2087 * c-pasre.c: Likewise.
2088
2089 2000-07-09 Jason Merrill <jason@redhat.com>
2090
2091 * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
2092
2093 * tree.h (STRIP_NOPS): Check for error_mark_node.
2094 (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
2095 (dwarf2out_*): Remove duplicate declarations.
2096
2097 * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
2098 DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
2099
2100 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
2101
2102 * diagnostic.c (wrap_text): New function.
2103 (maybe_wrap_text): Likewise.
2104 (output_add_string): Use it.
2105 (output_format): Likewise.
2106 (count_error): Use verbatim instead of notice.
2107 (report_error_function): Likewise. Don't use plain fprintf.
2108 (finish_diagnostic): New function.
2109 (output_do_verbatim): Tweak. Commonalize functionalities in
2110 output_verbatim and verbatim.
2111 (output_verbatim): Adjust.
2112 (verbatim): Likewise.
2113 (report_diagnostic): Define.
2114
2115 * diagnostic.h (report_diagnostic): Prototype.
2116
2117 2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
2118
2119 * cppexp.c (_cpp_parse_expr): Don't use unary plus.
2120
2121 2000-07-09 Neil Booth <NeilB@earthling.net>
2122
2123 * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
2124 IShspace, ISspace: Update.
2125
2126 * cppinit.c: ISTABLE: Update.
2127 V: New.
2128
2129 * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
2130 (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
2131 (skip_block_comment, skip_line_comment, parse_string,
2132 lex_line): Use is_vspace rather than IS_NEWLINE.
2133 (skip_whitespace, lex_line): Clean up to use is_nvspace.
2134 (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive
2135 gets a BOL flag.
2136 (lex_next): Unconditionally stop if within a directive.
2137 Treat directives within macro invocations as directives
2138 (after parse_args emits error), not as the argument.
2139
2140 2000-07-09 Gabriel Dos Reis <gdr@codesourcery.com>
2141
2142 * diagnostic.c (diagnostic_args): New macro.
2143 (diagnostic_msg): Likewise.
2144 (output_formatted_integer): Likewise.
2145 (output_state): New data type.
2146 (digit_buffer): Make global.
2147 (output_add_integer): Rename to output_decimal. Squeeze
2148 digit_buffer.
2149 (output_long_decimal, output_unsigned_decimal,
2150 output_long_unsigned_decimal, output_octal, output_long_octal,
2151 output_hexadecimal, output_long_hexadecimal): New functions.
2152 (output_append_r): New function.
2153 (output_append): Tweak.
2154 (output_flush_on): Rename to output_to_stream.
2155 (output_format): Change prototype. Improve documentation. Handle
2156 more format specifiers.
2157 (build_location_prefix): Rename to context_as_prefix.
2158 (output_notice): Rename to output_do_printf.
2159 (output_printf): Tweak.
2160 (line_wrapper_printf): Likewise.
2161 (vline_wrapper_message_with_location): Adjust call to renamed
2162 functions.
2163 (v_message_with_decl): Likewise.
2164 (default_print_error_function): Likewise.
2165 (save_output_state): New function.
2166 (restore_output_state): Likewise.
2167 (output_do_verbatim): Likewise.
2168 (output_verbatim): Define.
2169 (verbatim): Likewise.
2170
2171 * diagnostic.h (printer_fn): Change return type from void to int.
2172 Improve documentation.
2173 (output_add_integer): Rename to output_decimal.
2174 (output_flush_on, output_format): Don't export.
2175 (output_verbatim, verbatim): Declare.
2176
2177 2000-07-08 Toon Moene <toon@moene.indiv.nluug.nl>
2178
2179 * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
2180 Check whether c divides op1 exactly if operation is not
2181 multiplication.
2182
2183 2000-07-08 Richard Henderson <rth@cygnus.com>
2184
2185 * final.c (final): Do not abort when reg-stack introduces
2186 a new insn.
2187
2188 2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
2189
2190 * cpplib.h (struct cpp_name): Now struct cpp_string.
2191 (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
2192 CPP_HEADER_NAME): Change to type S.
2193 (struct cpp_token): Rename 'name' field to 'str'. Add 'node'
2194 field, a cpp_hashnode *. All references to val.name updated
2195 to use val.str or val.node as appropriate.
2196 (struct cpp_reader): Add spec_nodes field.
2197 (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
2198
2199 * cpphash.h (struct spec_nodes): New.
2200 (enum spell_type): Reorder. Only SPELL_STRING tokens use
2201 val.str. All references to 'spelling > SPELL_NONE' updated to
2202 match.
2203
2204 (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
2205 pfile->buffer->inc are not NULL before dereferencing them.
2206
2207 * cpplex.c (parse_name): Take a pointer to the current token,
2208 plus current position and limit as args; return the new
2209 position; don't copy the text of a name into the string
2210 buffer, instead call cpp_lookup and store the node pointer.
2211 If extending a token, copy out the text of the old into a
2212 scratch buffer, append the new, look that up and store the new
2213 node pointer. Inline.
2214 (maybe_paste_with_next): If the result of paste is a NAME,
2215 then look up the pasted text and store its node pointer.
2216 (lex_line): Adjust for new parse_name interface.
2217 Check for L"str", L'str' using spec_nodes->n_L.
2218 (spell_token): SPELL_IDENT tokens have their spelling in
2219 val.node->name. Handle SPELL_STRING tokens that don't have
2220 string delimiters.
2221 (_cpp_expand_name_space,
2222 (can_paste): Check for L ## "str" using spec_nodes->n_L.
2223 (cpp_get_token, special_symbol): No need to call cpp_lookup.
2224 (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
2225 return 1=equal 0=not, not a tristate.
2226
2227 * cpphash.c (var_args_str): Delete.
2228 (find_param): Compare node fields directly.
2229 (is__va_args__): Use CPP_PEDANTIC. Just compare
2230 token->val.node with spec_nodes->n__VA_ARGS__.
2231 (dump_funlike_macro): Don't use var_args_str.
2232
2233 * cpplib.c (_cpp_check_directive): Just walk through
2234 spec_nodes->dirs comparing pointers.
2235 (get_define_node, do_pragma_poison, detect_if_not_defined,
2236 parse_ifdef): The identifier has already been looked up.
2237 (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
2238 node.
2239 (do_if): Only call detect_if_not_defined at beginning of file.
2240 (_cpp_parse_assertion): Only copy string pointers for
2241 SPELL_STRING tokens.
2242 (pragma_dispatch): Take a node pointer and examine its name
2243 field.
2244 (_cpp_init_stacks): Also initialize the spec_nodes structure.
2245
2246 * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
2247 _cpp_init_macros.
2248 (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
2249 reverse order from the corresponding _cpp_init_* routines.
2250
2251 * cppexp.c (parse_number, parse_charconst, parse_defined,
2252 lex): Check val.node->type instead of calling cpp_defined.
2253 Use spec_nodes entries where appropriate.
2254
2255 * fix-header.c, scan-decls.c: Update for interface changes.
2256
2257 2000-07-08 Geoffrey Keating <geoffk@cygnus.com>
2258
2259 * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
2260 emitting aux_truncdfsf2.
2261
2262 2000-07-03 Donn Terry (donnte@microsoft.com)
2263
2264 * cppinit.c (print_help): split overlong line into ISO C89
2265 maximum chunks.
2266
2267 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
2268
2269 * cppexp.c: Update all code for new lexer interface.
2270 (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
2271 (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
2272 * cpplex.c (token_names): Trim leading CPP_ from names; make
2273 the strings unsigned.
2274 (_cpp_spell_operator): New.
2275 (is_macro_disabled): Disable all macros if rescanning
2276 preprocessed text.
2277 (_cpp_get_directive_token): Remove.
2278
2279 * cppinit.c: Don't set no_macro_expand.
2280 * cpplib.c (read_line_number, do_line): Check only for EOF,
2281 not VSPACE.
2282 * cpphash.h: Update prototypes.
2283 * cpplib.h (CPP_VSPACE): Remove.
2284 (struct cpp_reader): Remove no_macro_expand.
2285
2286 2000-07-08 Neil Booth <NeilB@earthling.net>
2287
2288 * cpphash.c (is__va_args__): New function.
2289 (count_params): Fix line reported in error messages. Use
2290 is__va_args__. Don't return ')' on error. Flag GNU style
2291 rest args macro definitions.
2292 (parse_define): Check macro name is not __VA_ARGS__.
2293 (save_expansion): Check identifier in non-varargs-macro is
2294 not __VA_ARGS__. Don't flag GNU_VARARGS.
2295 * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
2296 (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
2297 than per-token GNU_VARARGS.
2298 * cpplib.h (GNU_VARARGS): Remove.
2299 (GNU_REST_ARGS): New.
2300
2301 Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
2302
2303 * i386.md (call_pop, call, call_value_pop): Do not set
2304 current_function_uses_pic_offset_table for calls to static
2305 functions or indirect calls.
2306
2307 2000-07-07 Jim Wilson <wilson@cygnus.com>
2308
2309 * config/ia64/ia64.c (rws_access_reg): New local write_count. If
2310 is_predicate_reg, then take max write_count of register pair.
2311
2312 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2313
2314 * tradcpp.c (main): Rename label `include' to `add_include' to
2315 avoid conflicts with variable `include' in traditional C.
2316
2317 2000-07-07 Jakub Jelinek <jakub@redhat.com>
2318
2319 * integrate.c (copy_insn_list): Remove REG_LABEL notes.
2320
2321 2000-07-07 Jakub Jelinek <jakub@redhat.com>
2322
2323 * sibcall.c (uses_addressof): Add INMEM argument, check for
2324 current_function_internal_arg_pointer outside of MEM rtxs in addition
2325 to ADDRESSOFs.
2326 (sequence_uses_addressof): Update caller.
2327
2328 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
2329
2330 * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
2331 and friends.
2332
2333 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2334
2335 * system.h (UNION_INIT_ZERO): New macro for initializing union
2336 members in structs.
2337
2338 * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
2339
2340 2000-07-07 Neil Booth <NeilB@earthling.net>
2341
2342 * cpp.texi: Update.
2343
2344 Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com)
2345
2346 * final.c (final): Detect out of bounds array access to
2347 the insn_lengths array.
2348
2349 2000-07-07 Kazu Hirata <kazu@hxi.com>
2350
2351 * fold-const.c (fold): Fix a comment typo.
2352
2353 2000-07-07 Neil Booth <NeilB@earthling.net>
2354
2355 * cpp.texi: Update to new lexer.
2356
2357 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
2358
2359 * tradcpp.c: New file.
2360 * tradcif.y: New file.
2361 * tradcif.c: New generated file.
2362
2363 * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
2364 $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and
2365 dependencies of C. Install tradcpp from install-common, in
2366 $(libsubdir).
2367
2368 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
2369
2370 * cppinit.c: Include cppdefault.h. Refer to
2371 cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
2372 to GCC_INCLUDE_DIR and its length.
2373 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
2374 USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
2375 STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to
2376 cppdefault.h.
2377 (include_defaults_array): Move to cppdefault.c.
2378
2379 * cppdefault.h: New file.
2380 * cppdefault.c: New file.
2381
2382 * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
2383 (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
2384 (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
2385 this file.
2386
2387 Thu Jul 6 18:30:36 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2388
2389 * reload.c (push_reload): When seeing if can reuse a register,
2390 check extra registers against widest of INMODE and OUTMODE.
2391
2392 2000-07-06 Neil Booth <NeilB@earthling.net>
2393
2394 * cpplib.c: (_cpp_parse_assertion): Perform hash lookups
2395 based on full length of predicate.
2396
2397 2000-07-06 Hans-Peter Nilsson <hp@axis.com>
2398
2399 * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
2400 [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
2401
2402 2000-07-05 Kazu Hirata <kazu@hxi.com>
2403
2404 * h8300-proto.h: Fix formatting.
2405 * h8300.c: Likewise.
2406 * h8300.h: Likewise.
2407
2408 2000-07-05 Jim Wilson <wilson@cygnus.com>
2409
2410 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
2411 CCmode.
2412
2413 2000-07-05 Rodney Brown <RodneyBrown@pmsc.com>
2414
2415 * invoke.texi: Fix minor typos
2416 * md.texi: Fix minor typos
2417
2418 2000-07-05 Zack Weinberg <zack@wolery.cumb.org>
2419
2420 * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
2421
2422 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
2423
2424 * cpplex.c: Don't include sys/mman.h.
2425 (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
2426
2427 * cpplib.c: Include sys/mman.h and obstack.h.
2428 (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
2429 obstack.
2430 (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
2431 (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't
2432 bother freeing if stack entries (they will be freed with their buffer).
2433 (do_endif): Free if stack entries from the buffer obstack.
2434 (push_conditional): Allocate if stack entries from the buffer obstack.
2435
2436 (find_answer): Rename to _cpp_find_answer.
2437 (do_assert, do_unassert): Update.
2438
2439 * cpphash.h: Update prototypes.
2440 (xobnew): New convenience macro.
2441 * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
2442 Update comments.
2443 (struct cpp_hashnode): Remove disabled field.
2444
2445 * cppinit.c: Don't include hashtab.h or splay-tree.h.
2446 (report_missing_guard): Moved to cppfiles.c.
2447 (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
2448 cpp_init_includes.
2449 (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
2450 cpp_cleanup_includes. Don't destroy hashtab or
2451 all_include_files here.
2452 (cpp_finish): Use _cpp_report_missing_guards.
2453
2454 * cppfiles.c (report_missing_guard): Moved from cppinit.c.
2455 (_cpp_init_include_table): Rename _cpp_init_includes.
2456 (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
2457
2458 * cppexp.c (parse_assertion): Update for new name of
2459 find_answer.
2460
2461 * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
2462
2463 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
2464
2465 * cpplib.c (do_ident): s/VSPACE/EOF/
2466
2467 2000-07-05 Neil Booth <NeilB@earthling.net>
2468
2469 * cpplex.c: Fix trigraph replacement within strings.
2470
2471 2000-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2472
2473 * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
2474
2475 * xcoffout.c (assign_type_number): Constify.
2476 (xcoffout_source_file): Add static prototype. Don't needlessly
2477 cast away const-ness.
2478
2479 2000-07-04 Jason Merrill <jason@redhat.com>
2480
2481 * frame.h (frame_state): Move base_offset to end.
2482
2483 Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
2484
2485 * calls.c (emit_library_call_value_1): Revert previous change.
2486
2487 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
2488
2489 * fix-header.c (struct partial_proto): Remove unnecessary fields.
2490 (recognized_extern, recognized_function, read_scan_file):
2491 Update for new scheme.
2492 (check_protection): It's still a multiple include guard even
2493 if it doesn't always trigger.
2494 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
2495 new scheme.
2496 * scan.h: Declare struct cpp_token. Update prototypes.
2497
2498 2000-07-03 Neil Booth <neilb@earthling.net>
2499 Zack Weinberg <zack@wolery.cumb.org>
2500
2501 Complete overhaul of the lexer and macro expander.
2502
2503 * cpphash.c (object_defn, funct_defn, push_macro_expansion,
2504 arg, arglist, argdata, reflist, collect_objlike_expansion,
2505 collect_funlike_expansion, collect_params,
2506 warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
2507 unsafe_chars, macarg, compare_defs, special_symbol,
2508 scan_arguments, stringify, funlike_macroexpand,
2509 _cpp_quote_string, monthnames): Delete.
2510 (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
2511 _cpp_create_definition, _cpp_dump_definition,
2512 dump_hash_helper): Adjust.
2513 (find_param, count_params, parse_define, var_args_str,
2514 check_macro_redefinition, save_expansion): New.
2515
2516 * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
2517 parse_string, output_line_command, trigraph_replace,
2518 lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
2519 cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
2520 cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
2521 _cpp_skip_rest_of_line): Modify.
2522
2523 (maybe_macroexpand, skip_comment, copy_comment, skip_string,
2524 find_position, null_warning, bump_column, expand_name_space,
2525 pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
2526 _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
2527 _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
2528 _cpp_prescan): Delete.
2529
2530 (dump_param_spelling, process_directive, lex_next,
2531 is_macro_disabled, stringify_arg, expand_context_stack,
2532 output_token, make_string_token, alloc_number_token,
2533 special_symbol, duplicate_token, maybe_paste_with_next,
2534 can_paste, prevent_macro_expansion, restore_macro_expansion,
2535 get_temp_token, release_temp_tokens, quote_string,
2536 token_names, token_spellings, _cpp_expand_name_space,
2537 _cpp_glue_header_name, _cpp_reserve_name_space,
2538 digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
2539 placemarker_token, eof_token, cpp_context, macro_args,
2540 get_raw_token, parse_arg, parse_args, save_token,
2541 push_arg_context, push_macro_context, pop_context,
2542 do_pop_context, free_macro_args, _cpp_get_line,
2543 _cpp_run_directive): New.
2544
2545 * cpplib.c (validate_else, parse_include, push_conditional,
2546 pass_thru_directive, read_line_number, parse_ifdef,
2547 detect_if_not_defined, _cpp_check_directive, do_define,
2548 do_undef, do_include, do_import, do_include_next, do_error,
2549 do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
2550 top_pragmas, do_pragma_gcc, do_pragma_implementation,
2551 do_pragma_poison, do_pragma_system_header,
2552 do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
2553 dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
2554 do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
2555 cpp_defined): Update for new scheme.
2556 (strtoul_for_line, get_define_node, dump_macro_name,
2557 _cpp_check_linemarker, _cpp_parse_assertion): New.
2558 (_cpp_handle_directive, do_pragma_default): Delete.
2559
2560 * cpphash.h (struct predicate): Now struct answer.
2561 (enum spell_type, struct token_spelling, struct directive,
2562 directive_handler): New.
2563 Update prototypes. Remove unused macros.
2564 * cpplib.h: Update prototypes. Remove unused macros,
2565 structure definitions, and fields.
2566
2567 * cpperror.c (print_containing_files, v_message): Adjust.
2568 * cppexp.c (parse_assertion, lex, parse_escape,
2569 _cpp_parse_expr): Adjust.
2570 * cppfiles.c (open_include_file, _cpp_execute_include,
2571 _cpp_compare_file_date, cpp_read_file, read_include_file):
2572 Adjust.
2573 * cppinit.c (dump_special_to_buffer): Delete.
2574 (append_include_chain, merge_include_chains, cpp_reader_init,
2575 cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
2576 cpp_finish, handle_option, print_help): Adjust.
2577 * cppmain.c (main): Adjust.
2578
2579 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
2580
2581 * cppspec.c (lang_specific_driver): Use double quotes in error
2582 message.
2583
2584 Mon Jul 3 16:53:43 2000 Clinton Popetz <cpopetz@cygnus.com>
2585
2586 * calls.c (emit_library_call_value_1): Use valreg instead
2587 of hard_libcall_value.
2588
2589 2000-07-03 Geoff Keating <geoffk@cygnus.com>
2590
2591 * config/rs6000/rs6000.c (rs6000_emit_move): New function.
2592 * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
2593 * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
2594 (movhi): Likewise.
2595 (movqi): Likewise.
2596 (movdf): Likewise.
2597 (movsf): Likewise.
2598 (movdi): Likewise.
2599 (movti): Likewise.
2600
2601 * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
2602 mode instead of wider_mode is being used.
2603
2604 2000-07-03 Jakub Jelinek <jakub@redhat.com>
2605
2606 * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
2607 of 'r'. Use q_regs_operand.
2608 (andsi_1+2): Use q_regs_operand.
2609
2610 2000-07-03 Jakub Jelinek <jakub@redhat.com>
2611
2612 * builtins.c (get_memory_rtx): Always put into alias set 0.
2613
2614 2000-07-03 Nick Clifton <nickc@cygnus.com>
2615
2616 * config/arm/arm.md: Fix post increment and pre increment
2617 peepholes so that they do not generate UNPREDICATBLE opcodes.
2618 (ie ones where the increment clobbers the source/destination).
2619
2620 2000-07-01 Marek Michalkiewicz <marekm@linux.org.pl>
2621
2622 * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
2623 change too big for -mtiny-stack" a warning, if larger than 63.
2624 (out_set_stack_ptr): Change the logic so -mno-interrupts is
2625 always safe to use on possible future devices.
2626 (function_prologue): Write SPH before SPL, for consistency.
2627 If interrupt_func_p true, we know we have enabled interrupts.
2628 (avr_num_arg_regs): New function. Round up to even number of
2629 bytes if no -mpack-args or if calling a libgcc function.
2630 (function_arg, function_arg_advance): Use it.
2631 (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
2632 Output "movw" if available.
2633 (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
2634 of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
2635 (asm_output_section_name): Add blanks for consistent output.
2636 (encode_section_info): Set TREE_READONLY for progmem data to
2637 avoid gas warnings about changed section attributes.
2638 (avr_hard_regno_mode_ok): Force non-QImode data to start in
2639 even numbered registers on devices with "movw".
2640 * config/avr/avr.h (MASK_*): Define bits for target_flags.
2641 (TARGET_SWITCHES): Mark help strings for translation.
2642 Add new -mpack-args and -menhanced switches.
2643 (TARGET_OPTIONS): Mark help strings for translation.
2644 (progmem_section): Add section attributes.
2645 * config/avr/avr.md (*movhi, call_insn, call_value_insn):
2646 Output "movw" if available.
2647 (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
2648 New patterns.
2649 * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
2650 call convention (arguments aligned on even registers).
2651 (_cleanup, _exit): Make weak symbols libc can override.
2652
2653 2000-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2654
2655 * fp-bit.h: New file.
2656
2657 * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
2658 Comment #endif statements.
2659 (__thenan_sf, __thenan_df): Add missing braces around initializer.
2660
2661 Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
2662
2663 * gcse.c (compute_pre_data): Compute ae_kill using other local
2664 properties instead of calling compute_ae_kill.
2665
2666 * alias.c (init_alias_analysis): Do not call
2667 prologue_epilogue_contains until after reload has completed.
2668
2669 2000-07-02 Benjamin Chelf <chelf@codesourcery.com>
2670
2671 * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
2672 (genrtl_finish_compound_stmt): Likewise.
2673 (genrtl_compound_stmt): Change to return void.
2674
2675 * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
2676 move code from here to ...
2677 (genrtl_compound_stmt): ... here.
2678 (genrtl_finish_compound_stmt): Remove.
2679 (expand_stmt): Add comment.
2680
2681 2000-07-02 Zack Weinberg <zack@wolery.cumb.org>
2682
2683 * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
2684 and VOID_TYPE_P.
2685
2686 2000-07-02 Jakub Jelinek <jakub@redhat.com>
2687
2688 * cpplib.h (struct cpp_reader): New field include_depth.
2689 (struct cpp_printer): Rename last_bsd to last_id.
2690 * cppfiles.c (read_include_file): Bump include_depth.
2691 * cpplex.c (cpp_pop_buffer): Decrement include_depth.
2692 (output_line_command): Output correct #line if a header
2693 is including itself and is not protected against multiple inclusion.
2694 Use include_depth instead of buffer_stack_depth, last_id instead of
2695 last_bsd.
2696 * cppinit.c (cpp_start_read): Initialize last_id instead of
2697 last_bsd.
2698
2699 2000-07-01 Benjamin Chelf <chelf@codesourcery.com>
2700
2701 * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
2702 (c-semantics.o): New target.
2703
2704 * c-common.h (TREE_LANG_FLAG_?): Added documentation.
2705 (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
2706 (genrtl_clear_out_block): Likewise.
2707 (genrtl_goto_stmt): Likewise.
2708 (genrtl_expr_stmt): Likewise.
2709 (genrtl_decl_stmt): Likewise.
2710 (genrtl_if_stmt): Likewise.
2711 (genrtl_while_stmt): Likewise.
2712 (genrtl_do_stmt): Likewise.
2713 (genrtl_return_stmt): Likewise.
2714 (genrtl_for_stmt): Likewise.
2715 (genrtl_break_stmt): Likewise.
2716 (genrtl_continue_stmt): Likewise.
2717 (genrtl_scope_stmt): Likewise.
2718 (genrtl_switch_stmt): Likewise.
2719 (genrtl_case_label): Likewise.
2720 (genrtl_begin_compound_stmt): Likewise.
2721 (gerntl_finish_compound_stmt): Likewise.
2722 (genrtl_compound_stmt): Likewise.
2723 (genrtl_asm_stmt): Likewise.
2724 (genrtl_decl_cleanup): Likewise.
2725 (DECL_ANON_UNION_ELEMS): Likewise.
2726 (emit_local_var): Likewise.
2727 (make_rtl_for_local_static): Likewise.
2728 (expand_cond): Likewise.
2729 (expand_stmt): Likewise.
2730 (c_expand_return): Likewise.
2731 (c_expand_start_case): Likewise.
2732 (do_case): Likewise.
2733 (COMPOUND_STMT_NO_SCOPE): Likewise.
2734 (c_expand_asm_operands): Likewise.
2735 (NEW_FOR_SCOPE_P): New macro.
2736 (expand_expr_stmt_fn): New type.
2737
2738 (set_current_function_name_declared): Likewise.
2739 (current_function_name_declared): Likewise.
2740 (lang_expand_stmt): Likewise.
2741 (stmts_are_full_exprs_p): Likewise.
2742 (anon_aggr_type_p): Likewise.
2743 (lang_expand_expr_stmt): Likewise.
2744 (build_case_label): Likewise.
2745
2746 * c-decl.c (lang_expand_expr_stmt): Initialize.
2747 (stmts_are_full_exprs_p): Define.
2748 (current_function_name_declared): Likewise.
2749 (do_case): Likewise.
2750 (lang_expand_stmt): Likewise.
2751 (set_current_function_name_declared): Likewise.
2752 (anon_aggr_type_p): Likewise.
2753
2754 * c-semantics.c: New file.
2755 (expand_cond): Moved from cp/semantics.c.
2756 (genrtl_do_pushlevel): Likewise.
2757 (genrtl_clear_out_block): Likewise.
2758 (genrtl_goto_stmt): Likewise.
2759 (genrtl_expr_stmt): Likewise.
2760 (genrtl_decl_stmt): Likewise.
2761 (genrtl_if_stmt): Likewise.
2762 (genrtl_while_stmt): Likewise.
2763 (genrtl_do_stmt): Likewise.
2764 (genrtl_return_stmt): Likewise.
2765 (genrtl_for_stmt): Likewise.
2766 (genrtl_break_stmt): Likewise.
2767 (genrtl_continue_stmt): Likewise.
2768 (genrtl_scope_stmt): Likewise.
2769 (genrtl_switch_stmt): Likewise.
2770 (genrtl_case_label): Likewise.
2771 (genrtl_begin_compound_stmt): Likewise.
2772 (genrtl_finish_compound_stmt): Likewise.
2773 (genrtl_compound_stmt): Likewise.
2774 (genrtl_asm_stmt): Likewise.
2775 (genrtl_decl_cleanup): Likewise.
2776 (make_rtl_for_local_static): Moved from cp/decl.c.
2777 (emit_local_var): Likewise.
2778 (expand_stmt): Define.
2779
2780 * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
2781 (c_expand_return): Likewise.
2782 (c_expand_start_case): Likewise.
2783
2784 2000-07-01 Richard Henderson <rth@cygnus.com>
2785
2786 * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
2787 with the low 13 bits set.
2788 (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
2789 * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one
2790 of the low 13 bits into a CONST plus an adddi3.
2791 (load_symptr): Set RTX_UNCHANGING_P.
2792
2793 See ChangeLog.3 for earlier changes.
2794