mkdeps.c, mkdeps.h: New files.
[gcc.git] / gcc / ChangeLog
1 2000-03-04 Zack Weinberg <zack@wolery.cumb.org>
2
3 * mkdeps.c, mkdeps.h: New files.
4 * po/POTFILES.in: Add them.
5 * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
6 (cpplib.o, cppinit.o): Depend on mkdeps.h.
7 (mkdeps.o): New target.
8
9 * cppfiles.c: Delete deps_output.
10 * cppinit.c: Include mkdeps.h. Delete known_suffixes,
11 OBJECT_SUFFIX, and base_name.
12 (cpp_cleanup): Use deps_free. Free ihash->name when clearing
13 the include hash.
14 (initialize_dependency_output): Use deps_init,
15 deps_add_target, deps_calc_target, and deps_add_dep. Remove
16 all the unnecessary string bashing.
17 (cpp_finish): Use deps_write. Remove an unnecessary nesting
18 level.
19 * cpplib.c (do_include): Use deps_add_dep.
20 * cpplib.h (struct cpp_reader): Replace deps_buffer,
21 deps_allocated_size, deps_size, deps_column members with
22 single pointer to a struct deps. Delete prototype of
23 deps_output.
24
25 * cppinit.c: Fix thinko in previous patch.
26
27 Sat Mar 4 11:32:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28
29 * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
30 * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
31 (mode_for_size_tree): New function.
32 (layout_decl, layout_type): Call it and clean up BLKmode checks.
33 * tree.h (mode_for_size_tree): New declaration.
34
35 * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
36
37 2000-03-04 Jason Merrill <jason@casey.cygnus.com>
38
39 * stmt.c (is_body_block): Move...
40 * dwarfout.c, dwarf2out.c: ...from here.
41 * tree.h: Declare it.
42 * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
43 * final.c (final_start_function): Do call remove_unnecessary_notes
44 when scheduling.
45
46 2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
47
48 * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
49
50 * cpplib.h (_dollar_ok): New macro.
51 (is_idchar, is_idstart): Use it.
52 (IStable): Rename to _cpp_IStable. Declare it const if
53 gcc >=2.7 or C99. Delete all references to FAKE_CONST.
54 (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
55 is_space): Update for renamed IStable.
56
57 * cppinit.c: Delete all references to FAKE_CONST and CAT
58 macros. Define init_IStable as empty macro if gcc >=2.7 or
59 C99. Change TABLE() to ISTABLE and hardcode name of table.
60 (cpp_start_read): Don't change the IStable based on
61 dollars_in_ident.
62
63 * cpphash.c (unsafe_chars): Add pfile argument. All callers
64 changed. Handle '$' for char1 correctly.
65 * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
66
67 * cppexp.c (tokentab2): Make const.
68 (cpp_lex): Make toktab const.
69 * cppinit.c (include_defaults_array): Make const.
70 (initialize_standard_includes): Make default_include const.
71
72 2000-03-03 Jason Merrill <jason@casey.cygnus.com>
73
74 * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
75 (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
76 (gen_decl_die): Likewise.
77 * dwarfout.c (dwarfout_file_scope_decl): Likewise.
78 (output_decl): Likewise.
79
80 * varasm.c (make_function_rtl): If we change the name used in the
81 rtl, update DECL_ASSEMBLER_NAME accordingly.
82 (make_decl_rtl): Likewise.
83
84 * toplev.c (rest_of_compilation): Tweak formatting.
85
86 * toplev.c (rest_of_compilation): find_loop_tree_blocks before
87 remove_unnecessary_notes.
88 (debug_ignore_block): New fn.
89 * toplev.h: Declare it.
90 * emit-rtl.c (remove_unncessary_notes): Call it.
91 * dwarf2out.c (dwarf2out_ignore_block): New fn.
92 * dwarf2out.h: Declare it.
93 * final.c (final_start_function): Don't call remove_unnecessary_notes
94 if we did insn scheduling.
95
96 2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
97
98 * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
99 * cpplib.h: Delete SET_CPP_PEDANTIC.
100
101 Fri Mar 3 14:56:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
102
103 * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
104 result is a RECORD_TYPE.
105
106 2000-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
107
108 * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
109
110 2000-03-03 Richard Henderson <rth@cygnus.com>
111
112 * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
113 addition over compliments over shifts.
114
115 Fri Mar 3 12:49:28 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
116
117 * reload1.c (reload_combine_note_use): Handle return register USEs.
118 REG case: Handle multi-hard-register hard regs.
119
120 Fri Mar 3 07:38:34 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
121
122 * md.texi: Document use of '*' in insn pattern name.
123
124 2000-03-03 Jason Merrill <jason@casey.cygnus.com>
125
126 * calls.c (special_function_p): operator new may not be malloc-like.
127
128 * gcse.c (dump_hash_table): Really fix error in last change.
129
130 2000-03-02 Denis Chertykov <denisc@overta.ru>
131
132 * avr.c (print_operand): Use print_operand_address instead of
133 output_addr_const.
134 * avr/libgcc.S: Cleanup code.
135
136 2000-03-02 Richard Henderson <rth@cygnus.com>
137
138 * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
139
140 2000-03-02 Mark Mitchell <mark@codesourcery.com>
141
142 * tree.h (TYPE_ALIGN_UNIT): New macro.
143
144 2000-03-02 Clinton Popetz <cpopetz@cygnus.com>
145
146 * i386.c: (constant_call_address_operand): Reject CONST_INT.
147
148 2000-03-02 Jason Merrill <jason@casey.cygnus.com>
149
150 * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
151 for the buffer.
152 (SET_CPP_PEDANTIC): New macro.
153 * cpplib.c (do_include): Don't bother checking system_header_p.
154 (do_warning, do_ident, do_assert, do_unassert): Likewise.
155 * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
156
157 * function.h (struct expr_status): Add x_arg_space_so_far.
158 (arg_space_so_far): New macro.
159 * expr.c (init_expr): Initialize it.
160 * calls.c (emit_call_1): Reset it.
161 (compute_argument_block_size, expand_call): Use it.
162 (expand_call, store_one_arg): Increment it.
163
164 Thu Mar 2 17:27:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
165
166 * varasm.c (output_constant): Strip off a CONVERT_EXPR to
167 a UNION_TYPE.
168
169 2000-03-02 Zack Weinberg <zack@wolery.cumb.org>
170
171 * cppfiles.c (cpp_read_file): New function.
172
173 * cpphash.c (collect_expansion): Make sure to reset last_token
174 to NORM when we hit a string. Handle trailing whitespace
175 properly when the expansion is empty.
176 (create_definition): Disable line commands while parsing the
177 directive line.
178 (dump_definition): If pfile->lineno == 0, output a line
179 command ahead of the dump, and add a trailing newline.
180
181 * cppinit.c (append_include_chain): Add fifth argument, which
182 indicates whether or not system headers are C++ aware.
183 (initialize_standard_includes): New function,
184 broken out of read_and_prescan. Pass 'cxx_aware' value from
185 the include_defaults_array on to append_include_chain.
186 (dump_special_to_buffer): Const-ify char array.
187 (builtin_array): Don't dump __BASE_FILE__.
188 (cpp_start_read): Use cpp_read_file. Reorder code for
189 clarity. Don't output line commands here for -D/-A/-U
190 switches. Don't call deps_output for files included with
191 -include or -imacros.
192
193 * cpplib.c (do_define): Don't pay any attention to the second
194 argument.
195 (cpp_expand_to_buffer): Disable line commands while scanning.
196 (output_line_command): Work in the file buffer.
197 * cpplib.h: Remove no_record_file flag from struct cpp_reader.
198 Fix formatting of comments. Prototype cpp_read_file.
199
200 Thu Mar 2 13:29:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
201
202 * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
203 reference the language-equivalent of sizetype.
204 * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
205 * fold-const.c (size_binop, size_diffop): Put back checks.
206 * gcse.c (dump_hash_table): Fix minor error in last change.
207 * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
208 Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
209 all sizetypes.
210
211 Thu Mar 2 12:48:45 MET 2000 Jan Hubicka <jh@suse.cz>
212
213 * calls.c (expand_call) Do not attempt to combine stack adjustments
214 with inhibit_defer_pop set.
215
216 2000-03-01 Mark Mitchell <mark@codesourcery.com>
217
218 * stor-layout.c (layout_decl): Allow front-ends to explicitly set
219 the DECL_SIZE for a FIELD_DECL.
220
221 2000-03-01 Bruce Korb <bkorb@gnu.org>
222
223 * fixinc/inclhack.tpl: remove unused symlinks
224 * fixinc/README: GCC Maintainer info
225 * fixinc/inclhack.sh: regen
226 * fixinc/fixincl.sh: regen
227
228 2000-03-01 Zack Weinberg <zack@wolery.cumb.org>
229
230 * cpphash.c (collect_expansion): Trim trailing white space
231 from macro definitions, but don't go past the last insertion
232 point.
233
234 Wed Mar 1 12:14:31 MET 2000 Jan Hubicka <jh@suse.cz>
235
236 * i386.md (mulqi3): New pattern.
237
238 2000-02-29 Zack Weinberg <zack@wolery.cumb.org>
239
240 * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
241 token types.
242 (struct cpp_reader): Add parsing_if_directive and
243 parsing_define_directive flags.
244 (struct cpp_options): Remove output_conditionals flag.
245 (check_macro_name): Delete prototype.
246
247 * cpphash.h (struct macrodef): Delete.
248 (struct reflist): Separate from struct definition.
249 (struct definition): Remove unused fields. Add column number.
250 (create_definition): Returns a DEFINITION *. Takes a
251 cpp_reader * and an int.
252
253 * cpphash.c (SKIP_WHITE_SPACE): Delete.
254 (PEEKC): Copy defn from cpplib.c.
255 (rest_extension, REST_EXTENSION_LENGTH): Delete.
256 (struct arg): New.
257 (struct arglist): Simplify.
258 (collect_expansion): Rewrite. Get tokens by calling
259 cpp_get_token. Add more error checking.
260 (collect_formal_parameters): New function, broken out of
261 create_definition and reworked to use get_directive_token.
262 (create_definition): All real work is now in collect_expansion
263 and collect_formal_parameters. do_define handles finding the
264 macro name. Return a DEFINITION, not a MACRODEF.
265 (macroexpand): Replace bcopy with memcpy throughout. Replace
266 character-at-a-time copy loop with memcpy and pointer increments.
267 (compare-defs): d1->argnames / d2->argnames might be null.
268
269 * cpplib.c (copy_rest_of_line): Delete function.
270 (skip_rest_of_line): Do all the work ourselves.
271 (skip_string): New function.
272 (parse_string): Use skip_string.
273 (get_macro_name): New function.
274 (check_macro_name): Delete.
275 (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
276 (cpp_skip_hspace): Use CPP_BUMP_LINE.
277 (handle_directive): ICE if we're called on a macro buffer.
278 (do_define): Determine macro name and type (funlike/objlike)
279 here. Expunge all uses of MACRODEF.
280 (cpp_push_buffer): Set line_base to NULL.
281 (do_undef, read_line_number): Don't worry about getting a POP token.
282 (eval_if_expression): Set/reset parsing_if_directive around
283 cpp_parse_expr. Don't clear only_seen_white.
284 (skip_if_group): Remove output_conditionals logic. Use
285 skip_rest_of_line.
286 (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
287 tokens under appropriate conditions.
288 (cpp_unassert): Call do_unassert not do_assert. Oops.
289
290 * cppexp.c (parse_defined): New function, break out of
291 cpp_lex.
292 (cpp_lex): We now get CPP_ASSERTION tokens and can check them
293 ourselves, with cpp_defined.
294 * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
295
296 * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
297 * gcc.dg/strpaste-2.c: New.
298
299 2000-02-29 Mark Mitchell <mark@codesourcery.com>
300
301 * fold-const.c (size_binop): Don't asert inputs are the same and
302 have TYPE_IS_SIZETYPE set.
303 (size_diffop): Likewise.
304
305 2000-02-29 Jason Merrill <jason@casey.cygnus.com>
306
307 * dwarfout.c (output_block): Output abstract blocks even if they
308 don't have TREE_ASM_WRITTEN set.
309
310 * calls.c (emit_library_call): Check for null REG.
311
312 2000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de>
313
314 * c-decl.c (current_function_decl): Move to toplev.c.
315 (init_decl_processing): Don't add current_function_decl as a ggc
316 root here.
317 * dbxout.c (dbxout_symbol): Change return type to int.
318 (dbxout_symbol_location, dbxout_syms): Likewise.
319 (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
320 any locals. Use current_function_func_begin_label if set.
321 * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
322 * dwarf2out.c (dwarf2out_begin_prologue): Set
323 current_function_func_begin_label.
324 * final.c (final_start_function): Reset it.
325 * toplev.c (current_function_decl): Define it here.
326 (current_function_func_begin_label): New variable.
327 (main): Add both as ggc roots.
328 * tree.h (current_function_func_begin_label): Declare.
329
330 Tue Feb 29 14:07:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
331
332 * gcse.c: Cleanups throughout: mostly white-space, but also
333 some minor rearrangement of code.
334
335 Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com)
336
337 * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
338 returns a PARALLEL. Use emit_group_load and use_group_regs
339 as needed.
340 (emit_library_call_value): Similarly.
341
342 * pa/t-pa: Use quadlib.c instead of quadlib.asm.
343 * pa/quadlib.asm: Remove.
344 * pa/quadlib.c: New file.
345
346 * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
347 * configure: Rebuilt.
348
349 2000-02-29 Philip Blundell <pb@futuretv.com>
350
351 * config/arm/conix-elf.h: New file.
352 * configure.in (arm*-*-conix*): New configuration.
353 * configure: Regenerate.
354
355 2000-02-28 Jason Merrill <jason@casey.cygnus.com>
356
357 * dwarf2out.c (gen_block_die): Output abstract blocks even if they
358 don't have TREE_ASM_WRITTEN set.
359
360 Mon Feb 28 21:07:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
361
362 * Eliminate DECL_FIELD_SIZE.
363 * builtins.c (built_in_class_names, built_in_names): New variables.
364 * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
365 * expr.c (expand_expr, case COMPONENT_REF): Get field size from
366 DECL_SIZE, not DECL_FIELD_SIZE.
367 * print-tree.c (print_node): Remove code that prints extra blank
368 lines in some cases.
369 Properly handle inline and builtin function cases.
370 * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
371 * tree.h (built_in_class_named, built_in_names): New declarations.
372 (union tree_decl): Rename internal unions to u1 and u2 and change
373 some of their components.
374 Add new field built_in_class.
375 (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
376 Reflect above changes.
377 (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
378 (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
379 * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
380 (encode_field_decl): Likewise; also remove obsolete test for bitfield.
381
382 2000-02-28 Dmitri Makarov <dim@windriver.com>
383
384 * extend.texi: Document ARM's support for long/short calls.
385
386 * invoke.texi: Document ARM's -mlong-calls command line switch.
387
388 * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
389 (arm_encode_call_attribute): Add prototype.
390 (arm_set_default_type_attribute): Add prototype.
391 (arm_strip_name_encoding): Add prototype.
392
393 * config/arm/arm.c (arm_init_cumulative_args): replace
394 initialisation og 'long_calls' field with initialisation of
395 'call_cookie' field.
396 (enum arm_pragma_enum): New enum.
397 (arm_pragma_long_calls): New static variable.
398 (arm_process_pragma): Also process "#pragma long_calls_off".
399 (arm_valid_type_attribute_p): Accept short_call attribute.
400 (arm_comp_type_attributes): Check long/short call attributes.
401 (arm_encode_call_attribute): New function: Encode long_call
402 or short_call attribute in function name.
403 (arm_set_default_type_attributes): New function: Assign
404 default attributes to newly defined type.
405 (current_file_function_operand): New function: Return true if
406 the symbol is a function which has already been compiled.
407 (arm_is_longcall_p): New function: Return true if the
408 indicated function should be called via a long call.
409 (arm_get_strip_length): New function. Returns number of
410 prefix characters to be stripped from a function's name.
411 (arm_strip_name_encoding): New function. Strip prefix characters
412 from a function's name.
413
414 * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
415 with 'call_cookie'.
416 (SHORT_CALL_FAG_CHAR): Define.
417 (LONG_CALL_FAG_CHAR): Define.
418 (ENCODED_SHORT_CALL_ATTR_P): Define.
419 (ENCODED_LONG_CALL_ATTR_P): Define.
420 (ARM_NAME_ENCODING_LENGTHS): Define.
421 (STRIP_NAME_ENCODING): Define.
422 (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
423 (ARM_ENCODE_CALL_TYPE): Define.
424 (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
425 (ARM_DECLARE_FUNCTION_SIZE): Define.
426 (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
427
428 * config/arm/arm.md (call): Call arm_is_longcall_p to decide
429 if a long call is needed.
430 (call_value): Ditto.
431 (call_symbol): Ditto.
432
433 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
434 ARM_DECLARE_FUNCTION_SIZE.
435
436 * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
437 (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
438 (ARM_STRIP_NAME_ENCODING): Undefine.
439 (STRIP_NAME_ENCODING): Undefine.
440 (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
441 (ASM_DECLARE_FUNCTION_NAME): Ditto.
442 (ASM_OUTPUT_COMMON): Ditto.
443 (ASM_DECLARE_OBJECT_NAME): Ditto.
444
445 * config/arm/pe.c (arm_dllexport_name_p): Check for
446 ARM_PE_FLAG_CHAR.
447 (arm_dllimport_name_p): Ditto.
448 (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
449 (arm_mark_dllimport): Ditto.
450
451 Mon Feb 28 22:11:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
452
453 * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
454
455 2000-02-28 Mark Mitchell <mark@codesourcery.com>
456
457 * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
458
459 2000-02-28 Zack Weinberg <zack@wolery.cumb.org>
460
461 * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
462 * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
463 NO_BUILTIN_WCHAR_TYPE is not defined.
464 (CPP_WCHAR_TYPE): Delete.
465 * cccp.c (main): Don't change wchar_type if cplusplus.
466 (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
467
468 2000-02-28 Nick Clifton <nickc@cygnus.com>
469
470 * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
471
472 Mon Feb 28 14:21:15 2000 Catherine Moore <clm@cygnus.com>
473
474 * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
475 (ASM_WEAKEN_LABEL): Define.
476
477 Mon Feb 28 13:07:19 MET 2000 Jan Hubicka <jh@suse.cz>
478
479 * expr.c (store_constructor): Do not emit USE.
480 * rtl.h (stupid_life_analysis): Remove.
481
482 Mon Feb 28 07:03:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
483
484 * function.c (number_blocks): Reset next_block_index based on
485 what debugging format is used, not what is defined.
486
487 * lcm.c: Minor reformatting throughout.
488 (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
489
490 * toplev.c (rest_of_compilation): Account for time in
491 optimize_mode_switching.
492
493 * jump.c (jump_optimize_1): Don't call delete_barrier_successors
494 if only marking labels.
495
496 Mon Feb 28 12:53:57 MET 2000 Jan Hubicka <jh@suse.cz>
497
498 * calls.c (expand_call): Attempt to combine stack adjustments with
499 pending stack adjustments.
500
501 Mon Feb 28 11:34:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
502
503 * loop.c (reg_in_basic_block_p): Don't abort when falling through
504 to the end of the function.
505
506 2000-02-27 Mark Mitchell <mark@codesourcery.com>
507
508 * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
509 blocks.
510 * final.c (next_block_index): Remove.
511 (max_block_depth): Likewise.
512 (pending_blocks): Likewise.
513 (init_final): Don't initialize them.
514 (final_start_function): Don't set next_block_index. Set up
515 BLOCK_NUMBER.
516 (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
517 * function.h (number_blocks): New function.
518 * function.c (get_block_vector): New function.
519 (identify_blocks): Use it.
520 (reorder_blocks): Set NOTE_BLOCK.
521 (number_blocks): New function.
522 * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
523 * tree.h (BLOCK_NUMBER): New macro.
524 (tree_block): Add block_num field.
525 * dbxout.c (next_block_number): Remove.
526 (dbxout_init): Don't set it.
527 (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
528 set. Use BLOCK_NUMBER, rather than next_block_num, to determine
529 block numbers.
530 * toplev.c (rest_of_compilation): Always call
531 find_loop_tree_blocks. Fix indentation.
532 * dwarf2out.c (next_block_number): Remove.
533 (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
534 to determine block numbers.
535 (gen_inlined_subroutine_die): Likewise.
536 (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
537 (decls_for_scope): Don't increment next_block_number.
538 * dwarfout.c (next_block_number): Remove.
539 (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
540 to determine block numbers.
541 (output_inlined_subroutine_die): Likewise.
542 (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
543 (output_decls_for_scope): Don't increment next_block_number.
544 * sdbout.c (next_block_number): Remove.
545 (sdbout_block): Use BLOCK_NUMBER.
546 (sdbout_begin_block): Simplify.
547 * xcoffout.c (next_block_number): Remove.
548 (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
549 (xcoffout_begin_block): Don't set next_block_number.
550 (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
551 next_block_number.
552
553 Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
554
555 * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
556 (expand_builtin_strcpy): Pass correct type to size_binop.
557 (expand_builtin_strcmp): Likewise.
558 Clean up conditional structure.
559 * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
560 (complete_array_type): Don't use size_binop for MAXINDEX.
561 * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
562 (c_sizeof_nowarn, c_size_in_bytes): Likewise.
563 (c_alignof): Use size_one_node.
564 (build_unary_op): Pass arg of proper type to size_binop.
565 (really_start_incremental_init, push_init_level): Use sizetype for
566 constructor{,_bit,_unfilled}_index.
567 (pop_init_label, output_init_element): Likewise.
568 (output_pending_init_elements, process_init_element): Likewise.
569 * calls.c (compute_argument_block_size): Field VAR is ssizetype.
570 * expr.c (store_expr): Use size_int.
571 (store_constructor): Use proper types for size_binop args.
572 (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
573 (expand_expr_unaligned): Likewise.
574 (string_contant): Return object of sizetype.
575 * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
576 (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
577 (ARGS_SIZE_TREE): Pass proper types to size_binop.
578 * fold-const.c (int_const_binop): Refine when size_int is called.
579 (fold_convert): Likewise.
580 (size_int_wide): Rework to take KIND as arg, only take low order
581 bits, handle new sizetype_tab datatype, and chain entries in
582 size_table.
583 (size_int_type_wide): New function.
584 (size_binop): Validate types of arguments.
585 (ssize_binop): Deleted.
586 (size_diffop): New function.
587 (extract_muldiv): Only fold division into multiplication for sizetypes.
588 * function.c (assign_parms): Use size_diffop and make sure
589 VAR field is of ssizetype; also pass proper type to size_binop.
590 (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
591 (round_down): Deleted from here.
592 * store-layout.c (sizetype_tab): Now an array.
593 (sizetype_set, early_root_list): New variables.
594 (variable_size): Use size_one_node.
595 (round_up): Pass proper type to size_binop.
596 (round_down): Moved to here and corrected as above.
597 (layout_record): Pass proper arg types to size_binop.
598 (layout_type): Likewise.
599 If sizetype_set is zero, record the type just laid out.
600 (make_unsigned_type): Don't call set_sizetype;
601 (make_signed_type): Likewise; also, call fixup_signed_type.
602 (initialize_sizetypes): New function.
603 (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
604 set name of bitsizetype to "bit_size_type".
605 Fix up type of sizes of all types made before call.
606 * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
607 * tree.c (fix_sizetype): Deleted.
608 (build_common_tree_nodes): Call initialize_sizetypes.
609 (build_common_tree_nodes_2): Don't call fix_sizetype.
610 * tree.h (TYPE_IS_SIZETYPE): New macro.
611 (initialize_sizetype): New declaration.
612 (enum size_type_kind): New type.
613 (struct sizetype_tab): Deleted.
614 (sizetype_tab): Now array; adjust sizetype macros.
615 (size_diffop, size_int_type_wide): New functions.
616 (size_int_wide): Change number of args and type; access macros changed.
617 (ssize_int, sbitsize_int): New macros.
618 * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
619 (ROUND_TYPE_SIZE_UNIT): New macro.
620
621 2000-02-27 Zack Weinberg <zack@wolery.cumb.org>
622
623 * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
624
625 Sun Feb 27 07:44:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
626
627 * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
628 Mark as possibly unused.
629
630 * cse.c (cse_insn): Delete dead code involving tablejump.
631 Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
632
633 * Makefile.in (libcpp.a): Start by deleting it.
634
635 2000-02-27 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
636
637 * cpplib.h (enum file_change_code): Added rename_file.
638 * cpplib.c (do_line): If a filename is given, set file_change to
639 rename_file.
640 (output_line_command): If file_change is rename_file, always
641 output a # directive with the file name.
642
643 * cpplib.c (do_pragma): Accept #pragma without consecutive token.
644
645 2000-02-26 Mark Mitchell <mark@codesourcery.com>
646
647 * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
648 when copying a PARM_DECL or RESULT_DECL.
649
650 2000-02-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
651
652 * fix-header.c (recognized_function): Also fix prototypes for
653 functions taking "void".
654
655 2000-02-26 Geoff Keating <geoffk@cygnus.com>
656
657 * reload1.c (do_output_reload): Check reg_reloaded_valid before
658 looking at reg_reloaded_contents.
659
660 2000-02-26 Zack Weinberg <zack@wolery.cumb.org>
661
662 * Makefile.in (STMP_FIXINC): New toggle.
663 (LIBGCC2_DEPS): Delete all references.
664 (stmp-headers): Delete target. All references either deleted
665 or changed to stmp-int-headers.
666 (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
667 (LIBCPP_OBJS): Take out cppalloc.o.
668 (cppalloc.o): Delete target.
669 (stmp-int-hdrs): Depend on $(STMP_FIXINC).
670 (gen-protos, fix-header): Link with libiberty.a.
671 * build-make: Don't change FIXINCLUDES. Override STMP_FIXINC
672 to empty.
673
674 * configure.in: Remove refs to strerror.
675 * acconfig.h: Take out NEED_DECLARATION_STRERROR.
676 * system.h: Take out strerror stanza.
677
678 * cpperror.c (my_strerror): Delete function.
679 (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
680 * cppmain.c (main): Call xmalloc_set_program_name first thing.
681 * cppalloc.c: Delete file.
682 * gen-protos.c: Don't provide xrealloc.
683
684 * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
685 xstrerror throughout.
686
687 2000-02-26 Bruce Korb <bkorb@gnu.org>
688
689 * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
690 match for DOS headers, too.
691 * fixinc/inclhack.sh,fixincl.x: Regenerate.
692
693 2000-02-26 Geoff Keating <geoffk@cygnus.com>
694
695 * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default
696 is right for most ELF targets.
697 * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
698 Let the default file use %U properly.
699 * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the
700 default.
701
702 * config/fp-bit.c (pack_d): Properly handle rounding of denormal
703 numbers.
704
705 Sat Feb 26 09:39:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
706
707 * toplev.c (documented_lang_options): Correct spelling error.
708 (decode_d_option, decode_f_option, main): Likewise.
709
710 * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
711
712 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
713 to tell assembler it is permitted to expand large constants.
714
715 2000-02-25 Mumit Khan <khan@xraylith.wisc.edu>
716
717 * protoize.c: (AUX_INFO_SUFFIX): New macro.
718 (aux_info_suffix): Use.
719 (SAVE_SUFFIX): New macro.
720 (save_suffix): Use.
721 (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
722 (gen_aux_info_file): Use aux_info_suffix instead of ".X".
723 (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
724
725 * invoke.texi (Running Protoize): Update documentation.
726
727 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
728
729 * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
730
731 2000-02-25 John Wehle (john@feith.com)
732
733 * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
734
735 2000-02-25 Anthony Green <green@cygnus.com>
736
737 * toplev.c (rest_of_compilation): Rebuild jump labels if
738 combine_instructions has created a new direct jump.
739 * combine.c (try_combine): Add new_direct_jump_p argument. Set it
740 when appropriate.
741 (combine_instructions): Call try_combine with new argument.
742 Return non-null value when new direct jump instruction is created.
743 * rtl.h: combine_instructions returns an int.
744
745 Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com)
746
747 * cse.c (cse_insn): Replace the PATTERN of the insn with an new
748 jump when changing a computed jump into a jump to a known
749 target.
750
751 Fri Feb 25 19:22:44 2000 Graham Stott <grahams@rcp.co.uk>
752
753 * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
754 to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
755
756 * i386.md (define_expand "clrstrsi"): Fix typo.
757
758 Fri Feb 25 18:49:39 2000 "K. Richard Pixley" <rich@microunity.com>
759
760 * rtl.texi: Fix typo.
761
762 Fri Feb 25 20:02:35 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
763
764 * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
765 UNITS_PER_WORD. Change caller initial_elimination_offset.
766 (rounded_frame_size): Take into account that argument pushed has
767 changed. Fix TARGET_ALIGN_DOUBLE problem.
768
769 2000-02-25 Geoff Keating <geoffk@cygnus.com>
770
771 * haifa-sched.c (schedule_block): Explain the real reason
772 we delete REG_SAVE_NOTEs on the first insn of a block.
773 Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
774
775 2000-02-24 Mark Mitchell <mark@codesourcery.com>
776
777 * input.h (push_srcloc): New function.
778 (pop_srcloc): Likewise.
779 * toplev.c (push_srcloc): Define it.
780 (pop_srcloc): Likewise.
781
782 2000-02-24 Richard Henderson <rth@cygnus.com>
783
784 * flow.c (life_analysis): When collecting reg info, clear
785 regs_ever_live.
786
787 Thu Feb 24 22:06:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
788
789 Fix bug exposed by reload.c no longer rounding the frame
790 size to BIGGEST_ALIGNMENT:
791 * sh.c (rounded_frame_size): New function.
792 (sh_expand_prologue, sh_expand_epilogue): Use it.
793 (initial_elimination_offset): Likewise.
794
795 Thu Feb 24 20:04:11 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
796
797 Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
798 * sh-protos.h (sh_need_epilogue): Declare.
799 * sh.c (sh_need_epilogue_known): New static variable.
800 (sh_need_epilogue): New function.
801 (function_epilogue): Clear need_epilogue_known.
802 * sh.md (return): Split into expander / insn pattern.
803 Make the expander conditional on ! sh_need_epilogue ().
804
805 2000-02-24 Nathan Sidwell <nathan@codesourcery.com>
806
807 * machmode.h (get_mode_alignment): Declare.
808 (GET_MODE_ALIGNMENT): Call it.
809 * stor-layout.c (get_mode_alignment): New function. Make
810 sure alignment is always power of 2.
811
812 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
813
814 * i386.h: Remove useless definition of "I386" and misleading
815 comment above it.
816
817 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
818
819 * tree.h (TREE_SET_PERMANENT): New macro. Document conditions
820 under which TREE_PERMANENT will be set.
821 * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
822 build1): Use TREE_SET_PERMANENT.
823 * print-tree.c (print_node): Don't report value of
824 TREE_PERMANENT if ggc_p is true.
825
826 * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
827 decide whether to give a type a new alias set.
828 * objc/objc-act.c (build_objc_string_object): Never copy the string.
829 * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
830 of value of 'obstack'.
831
832
833 2000-02-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
834
835 * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
836
837 2000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
838
839 * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
840 * cpplib.c (cpp_get_token): Produce them.
841 * cppexp.c (cpp_lex): Handle them.
842
843 2000-02-23 Nick Clifton <nickc@cygnus.com>
844
845 * config/arm/arm.c (arm_comp_type_attributes): Simply and
846 comment tests on type attributes.
847
848 Wed Feb 23 16:42:21 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
849
850 * final.c (shorten_branches): Make value passed to LOOP_ALIGN
851 conform to documentation.
852 * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
853 to check for special cases.
854 * sh-protos.h (sh_loop_align): Declare.
855 * sh.c (sh_loop_align): Define.
856
857 2000-02-22 Andrew Haley <aph@cygnus.com>
858
859 * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
860 (SIZE_TYPE): Is 32 bits when using -mgp32.
861 (PTRDIFF_TYPE): Ditto.
862
863 Wed Feb 23 07:26:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
864
865 * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
866
867 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
868
869 * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
870 BIGGEST_FIELD_ALIGNMENT a constant.
871
872 2000-02-21 Jason Merrill <jason@casey.cygnus.com>
873
874 * dwarf2out.c (output_line_info): Put the marker for the end of
875 the line number info at the actual end.
876 (gen_struct_or_union_type_die): Use decl_function_context
877 to check for local classes.
878 * dwarfout.c (output_type): Likewise.
879
880 Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com)
881
882 * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
883 for arguments with a mode, but no type.
884 (FUNCTION_ARG_CALLEE_COPIES): Similarly.
885 * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
886 * pa/long_double.h: New file.
887 * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
888 both have 128bit wide long doubles.
889 * configure: Rebuilt.
890
891 2000-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
892
893 * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
894
895 * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
896 fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
897 (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
898
899 * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
900
901 * integrate.c (compare_blocks, find_block): Likewise.
902
903 * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
904
905 * rtl.h (set_file_and_line_for_stmt): Constify a char*.
906
907 * stmt.c (stmt_status, set_file_and_line_for_stmt,
908 expand_asm_operands): Likewise.
909
910 Mon Feb 21 17:06:27 2000 Jason Eckhardt <jle@cygnus.com>
911
912 * predict.c (estimate_probability): Added the pointer heuristic to
913 the collection of static branch predictors.
914
915 2000-02-21 Catherine Moore <clm@cygnus.com>
916
917 * config/mips/mips.h (ASM_SPEC): Add -mfix700.
918 * invoke.texi (-mfix7000): Document.
919
920 2000-02-21 Gabriel Dos Reis <gdr@codesourcery.com>
921
922 * diagnostic.c (init_output_buffer): Make it possible to output at
923 least 32 characters if we're given a too long prefix.
924
925 2000-02-20 Mark Mitchell <mark@codesourcery.com>
926
927 * varasm.c (initializer_constant_valid_p): Call
928 lang_expand_constant to simplify the constant.
929
930 2000-02-20 Bruce Korb <bkorb@gnu.org>
931
932 * fixinc/inclhack.def(stdio_va_list):
933 typedef needs to be disabled.
934 * fixinc/inclhack.sh: regen
935 * fixinc/fixincl.x: regen
936
937 2000-02-20 Geoff Keating <geoffk@cygnus.com>
938
939 * print-rtl.c (print_rtx): Don't print addresses when
940 flag_dump_unnumbered.
941
942 2000-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
943
944 * sparc.c (sparc_output_scratch_registers): Mark parameter with
945 ATTRIBUTE_UNUSED.
946 (sparc_va_arg, sparc_flat_output_function_prologue,
947 sparc_flat_output_function_epilogue): Cast value to unsigned in
948 comparison.
949 (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
950
951 * sparc.md: Add default case in switch.
952
953 2000-02-19 Richard Henderson <rth@cygnus.com>
954
955 * c-typeck.c (add_pending_init): Don't abort for multiple
956 fields at the same offset.
957 (pending_init_member): Test the correct member.
958
959 2000-02-19 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
960
961 * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
962 instead of SImode.
963 (start_catch_handler) : Same.
964
965 2000-02-19 Brad Lucier (lucier@math.purdue.edu)
966
967 * Makefile.in: Have flow.o depend on $(EXPR_H)
968
969 Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
970
971 * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
972 * c-decl.c (duplicate_decls, finish_enum): Likewise.
973 (finish_decl): Remove -Wlarger-than code from here.
974 * flags.h (id_clash_len): Now int.
975 (larger_than_size): Now HOST_WIDE_INT.
976 * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
977 Clean up checking to see if in table.
978 (make_bit_field_ref): Remove extra parm to bitsize_int.
979 * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
980 * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
981 * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
982 and for computing size of decl.
983 * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
984 Move -Wlarger-than code to here.
985 (layout_record): Remove extra arg to bitsize_int.
986 Set TYPE_BINFO_SIZE_UNIT.
987 (layout_union): Remove extra arg to bitsize_int.
988 Use proper type for size of QUAL_UNION.
989 (layout_type): Remove extra arg to bitsize_int.
990 * toplev.c (id_clash_len): Now int.
991 (larger_than_size): Now HOST_WIDE_INT.
992 (decode_W_option): Clean up id-clash and larger-than- cases.
993 * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
994 (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
995 * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
996 (struct tree_decl): New field size_unit.
997 (size_int_wide): No HIGH operand; NUMBER is now signed.
998 (size_int_2): Deleted.
999 (size_int, bitsize_int): Don't use it and rework args.
1000 * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
1001
1002 Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com)
1003
1004 * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
1005
1006 2000-02-18 Geoff Keating <geoffk@cygnus.com>
1007
1008 * invoke.texi (Warning Options): Add an explanation of why
1009 you might want the -Wfloat-equal flag.
1010
1011 Fri Feb 18 20:08:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1012
1013 * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
1014 * cppinit.c (new_pending_define): Add cast to avoid warning.
1015 * expmed.c (extract_bit_field): Likewise.
1016 * flow.c (enum reorder_skip_type): New type.
1017 (skip_insns_between_blcok): New it.
1018 Rework to avoid warning about possibly undefined variable.
1019 * function.c (assign_parms): Make thisparm_boundary unsigned.
1020 * genrecog.c (write_switch): Cast XWINT result to int.
1021 * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
1022 * mips-tfile.c (init_file): Make two versions of FDR intializer:
1023 one for MIPS and one for Alpha.
1024 (get_tag, copy_object): Add casts to avoid warnings.
1025 * optabs.c (init_one_libfunc): Cast NAME to (char *).
1026 * reload.c (find_reloads): Make TYPE enum reload_type.
1027 * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
1028 * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
1029 * varasm.c (compare_constant_1): Add cast to avoid warning.
1030 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
1031 to (char *).
1032 (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
1033 Cast switch operand of size to int.
1034 (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
1035 * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
1036 in unhandled case.
1037
1038 2000-02-18 Nick Clifton <nickc@cygnus.com>
1039
1040 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
1041 anything for an alignment of zero.
1042
1043 * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
1044 anything for an alignment of zero.
1045
1046 2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de>
1047
1048 * gcc.texi (Bug Reporting): Refer to bugs.html.
1049 (Bug Lists): Likewise.
1050 * system.h (GCCBUGURL): New preprocessor define.
1051 * rtl.c (fancy_abort): Use it.
1052 * gcc.c (main): Likewise.
1053
1054 2000-02-18 Richard Henderson <rth@cygnus.com>
1055
1056 * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
1057 (life_analysis_1): Subsume into ...
1058 (life_analysis): ... here. Force PROP_REG_INFO off after reload.
1059 Use update_life_info for the relaxation.
1060 (update_life_info): Update REG_BASIC_BLOCK for registers live on
1061 entry and regs_live_at_setjmp.
1062 (set_noop_p): Simplify.
1063 (notice_stack_pointer_modification_1): Renamed from s/_1//.
1064 (record_volatile_insns): Split into ...
1065 (delete_noop_moves): ... here,
1066 (notice_stack_pointer_modification): ... here,
1067 (insn_dead_p): ... and here.
1068 (propagate_block): Don't query INSN_VOLATILE.
1069 (mark_used_regs): Mind !PROP_REG_INFO.
1070 * toplev.c (rest_of_compilation): Call mark_constant_function here,
1071 not in life_analysis.
1072
1073 Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com)
1074
1075 * loop.c (canonicalize_condition): New function,
1076 broken out of get_condition.
1077 (get_condition): Use it.
1078 * expr.h (canonicalize_condition): Prototype it.
1079
1080 * tree.h (tree_int_cst_msb): Declare.
1081 * tree.c (tree_int_cst_msb): New function.
1082
1083 2000-02-17 Mark Mitchell <mark@codesourcery.com>
1084
1085 * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
1086 isn't set.
1087
1088 * invoke.texi (-fmessage-length=n): Document.
1089
1090 2000-02-17 Jason Merrill <jason@casey.cygnus.com>
1091
1092 * bitmap.c (bitmap_operation): Don't leak bitmap elements.
1093
1094 2000-02-17 Mark Mitchell <mark@codesourcery.com>
1095
1096 * function.c (thread_prologue_and_epilogue_insns): Put a line note
1097 after the prologue.
1098
1099 2000-02-17 Nick Clifton <nickc@cygnus.com>
1100
1101 * config/arm/thumb.c: Replace includes of system headers with
1102 #include "system.h".
1103
1104 2000-02-16 Richard Henderson <rth@cygnus.com>
1105
1106 * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
1107 Add crtbeginS.o and crtendS.o.
1108 * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
1109 (ENDFILE_SPEC): Use crtendS.o.
1110 * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
1111
1112 * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
1113 (__do_global_dtors_aux): ... here. Call __cxa_finalize if
1114 shared and present.
1115 (__dso_handle): New variable.
1116 * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
1117 bias to __CTOR_END__.
1118
1119 2000-02-16 Richard Henderson <rth@cygnus.com>
1120
1121 * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
1122
1123 Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson <hp@bitrange.com>
1124
1125 * longlong.h (__clz_tab): Declare as static to match definition.
1126
1127 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
1128 * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
1129 (XREF_FILE_NAME): Define.
1130
1131 * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
1132 (EH_FRAME_SECTION_ASM_OP): Define.
1133 (IDENT_ASM_OP): Define.
1134 (TEXT_SECTION_ASM_OP): Define.
1135 (CPP_SPEC): Define.
1136 (CTORS_SECTION_ASM_OP): Define.
1137 (CTOR_SECTION_FUNCTION): Use it.
1138 (DTORS_SECTION_ASM_OP): Define.
1139 (DTOR_SECTION_FUNCTION): Use it.
1140
1141 2000-02-16 Zack Weinberg <zack@wolery.cumb.org>
1142
1143 * reg-stack.c (emit_swap_insn): Do not put a new insn before a
1144 NOTE_BASIC_BLOCK.
1145
1146 * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
1147 debug_bb_n): New functions.
1148 (dump_flow_info, print_rtl_with_bb): Use dump_regset.
1149 * basic-block.h: Prototype new functions.
1150
1151 Wed Feb 16 21:07:53 2000 Denis Chertykov <denisc@overta.ru>
1152
1153 * configure.in: Add support for avr target.
1154 * configure: Rebuilt.
1155
1156 * invoke.texi: Add AVR invocation docs.
1157 * install.texi: Add information about AVR.
1158 * md.texi: Add AVR constraint letters description.
1159 * extend.texi: Add description for AVR specific attributes.
1160
1161 2000-02-16 Jason Merrill <jason@casey.cygnus.com>
1162
1163 * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
1164
1165 2000-02-16 Nick Clifton <nickc@cygnus.com>
1166
1167 * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
1168 (make_insn_raw): Move RTL check here.
1169
1170 2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1171
1172 * version.c: Include gansidecl.h and version.h.
1173
1174 * version.h: Wrap entire file in macro __GCC_VERSION_H__.
1175
1176 * configure.in (gcc_version): When setting, narrow search to
1177 lines containing `version_string'.
1178
1179 * Makefile.in (mainversion): Likewise.
1180 (GCC_H): New variable.
1181 (gcc.h): Delete target.
1182 (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
1183 (version.o): Depend on version.h.
1184 (dbxout.o): Don't depend on gcc.h.
1185
1186 Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson <hp@bitrange.com>
1187 Michael Meissner <meissner@cygnus.com>
1188
1189 * md.texi (Simple Constraints): Add item about whitespace.
1190 * genoutput.c (strip_whitespace): New.
1191 (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
1192 strip_whitespace for constraints.
1193 Test pointer using NULL, not 0.
1194
1195 2000-02-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
1196
1197 * cpplib.c (do_line): Pedwarn for #line > 32767.
1198
1199 * c-lex.c (readescape): Warn about '\x', but do not reject it.
1200
1201 2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk>
1202
1203 * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
1204 to default cpp spec.
1205 (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
1206 * cpp.texi: Document __GNUC_PATCHLEVEL__.
1207 * cpp.1: Likewise.
1208
1209 * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
1210 default spec.
1211
1212 2000-02-15 Denis Chertykov <denisc@overta.ru>
1213
1214 * configure.in: Add support for avr target.
1215
1216 Wed Feb 16 03:21:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1217
1218 * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
1219 (sh_addr_diff_vec_mode): Don't declare.
1220 * sh.c (sh_addr_diff_vec_mode): Delete.
1221
1222 Wed Feb 16 01:27:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1223
1224 * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
1225
1226 Wed Feb 16 00:58:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1227
1228 * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
1229 (smulsi3_highpart_i): Name.
1230 (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
1231 (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
1232 (smulsi3_highpart, umulsi3_highpart): Likewise.
1233
1234 (mulsidi3_i, umulsidi3_i): Make rtl describe operation
1235 correctly independent of endianness.
1236 (mulsidi3, umulsidi3): Now define_insn. Hide details that
1237 confuse the optimizers.
1238 (mulsidi3+1, umulsidi3+1): New define_split.
1239
1240 Tue Feb 15 23:22:26 2000 Andrew Haley <aph@cygnus.com>
1241
1242 * config/sh/sh.md: Guard insn splits against illegal registers.
1243 * config/sh/sh.h: Correct comment about macros.
1244
1245 Tue Feb 15 22:30:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1246 Andrew MacLeod <amacleod@cygnus.com>
1247
1248 * Makefile.in (lcm.o): Depend on insn-attr.h.
1249 * basic-block.h (optimize_mode_switching): Declare.
1250 * lcm.c (tm_p.h, insn-attr.h): #include.
1251 (seginfo, bb_info): New structs.
1252 (antic, transp, comp, delete, insert) : New file-scope static variables.
1253 (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
1254 (reg_becomes_live, optimize_mode_switching): Likewise.
1255 * tm.texi: Add description of mode switching macros.
1256 * toplev.c (rest_of_compilation): Call optimize_mode_switching.
1257
1258 * sh-protos.h (remove_dead_before_cse): Remove prototype.
1259 (fldi_ok, fpscr_set_from_mem): New prototypes.
1260 * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
1261 (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
1262 Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
1263 (sh_flag_remove_dead_before_cse): Remove declaration.
1264 (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
1265 (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
1266 (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
1267 * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
1268 (barrier_align): Allow for JUMP_INSNS containing a parallel.
1269 (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
1270 (fldi_ok): New function.
1271 (get_fpscr_rtx): Add fpscr_rtx as GC root.
1272 (emit_sf_insn): Only generate fpu switches when optimize < 1.
1273 (emit_df_insn): Likewise.
1274 (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
1275 (sh_flag_remove_dead_before_cse): Delete.
1276 (get_free_reg, fpscr_set_from_mem): New functions.
1277 * sh.md (movdf, movsf): Remove no_new_pseudos code.
1278 (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
1279
1280 2000-02-15 Loren Rittle <ljrittle@acm.org>
1281
1282 * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
1283
1284 2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1285
1286 * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
1287 cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
1288
1289 * cccp.c: Include version.h and/or don't declare `version_string'.
1290 * collect2.c: Likewise.
1291 * alpha.c: Likewise.
1292 * arm/aof.h: Likewise.
1293 * arm/coff.h: Likewise.
1294 * arm/elf.h: Likewise.
1295 * arm/pe.h: Likewise.
1296 * arm/tcoff.h: Likewise.
1297 * arm/telf.h: Likewise.
1298 * arm/tpe.h: Likewise.
1299 * arm/vxarm.h: Likewise.
1300 * convex/convex.c: Likewise.
1301 * i386/dgux.c: Likewise.
1302 * i386/sun386.h: Likewise.
1303 * m88k/m88k.c: Likewise.
1304 * mcore/mcore-pe.h: Likewise.
1305 * mips/mips.h: Likewise.
1306 * romp/romp.h: Likewise.
1307 * sh/sh.c: Likewise.
1308 * cpphash.c: Likewise.
1309 * cppinit.c: Likewise.
1310 * dwarf2out.c: Likewise.
1311 * dwarfout.c: Likewise.
1312 * gcc.c: Likewise.
1313 * gcc.h: Likewise.
1314 * mips-tfile.c: Likewise.
1315 * protoize.c: Likewise.
1316 * toplev.c: Likewise.
1317 * tree.h: Likewise.
1318
1319 * version.c (version_string): Constify a char*.
1320
1321 * version.h: New file.
1322
1323 2000-02-14 Nick Clifton <nickc@cygnus.com>
1324
1325 * configure.in: Add mcore-elf and mcore-pe targets.
1326 * configure: Regenerate.
1327
1328 * NEWS: Add note that MCore port has been contributed.
1329
1330 * invoke.texi: Document command line switches for MCore port.
1331 * install.texi: Add MCore to list of supported targets.
1332
1333 2000-02-14 Geoff Keating <geoffk@cygnus.com>
1334
1335 * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
1336 then we will need to import the frame handling functions.
1337 (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
1338 to import the frames themselves.
1339
1340 Mon Feb 14 13:31:01 2000 Stan Cox <scox@cygnus.com>
1341 Jason Eckhardt <jle@cygnus.com>
1342
1343 * basic_block.h: Added prototype for reorder_basic_blocks.
1344 * toplev.c: Changes to add -freorder-blocks and graph dump after
1345 block reordering is done.
1346 * flow.c (reorder_block_def): New structure for use during block
1347 reordering.
1348 (REORDER_BLOCK_*): New macros to access members of above structure.
1349 (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
1350 make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
1351 functions for block reordering.
1352
1353 Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson <hp@bitrange.com>
1354
1355 * gcc.texi (Passes): Fix typo.
1356 * md.texi (Standard Names): Ditto.
1357 * tm.texi (Storage Layout): Ditto.
1358
1359 2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
1360
1361 * cpplib.c (do_define): Only free the old definition if it
1362 actually had one.
1363
1364 2000-02-13 Neil Booth <NeilB@earthling.net>
1365
1366 * cppfiles.c (read_and_prescan): When emitting deferred
1367 newlines, test speccase[] again instead of checking each
1368 possible whitespace character in turn. When we encounter \r,
1369 look behind for \n first, then ahead.
1370
1371 2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
1372
1373 * cse.c (cse_altered): New internal flag.
1374 (cse_insn): Set it if we changed an insn.
1375 (cse_main): Clear cse_altered before each basic block.
1376 Only garbage collect if cse_altered is true afterward.
1377
1378 Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1379
1380 * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
1381
1382 Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com)
1383
1384 * combine.c (simplify_comparison): Fix typo.
1385
1386 Sun Feb 13 12:57:52 2000 Neil Booth <NeilB@earthling.net>
1387
1388 * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
1389 consistently.
1390
1391 2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1392
1393 * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
1394 previously inserted node instead of root node. Caller changed.
1395
1396 2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1397
1398 * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
1399
1400 2000-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1401
1402 * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
1403 __dereg_frame_dtor): Add prototype argument.
1404
1405 * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
1406
1407 * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
1408
1409 * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
1410
1411 * gthr-vxworks.h (__gthread_once): Likewise.
1412
1413 * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
1414
1415 Sat Feb 12 01:44:26 MET 2000 Jan Hubicka <jh@suse.cz>
1416
1417 * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
1418 (ix86_expand_epilogue): ... here. Use mov instead of add to restore
1419 stack pointer in functions w/o saved registers, output LEAVE more often
1420 on TARGET_USE_LEAVE machines.
1421
1422 2000-02-07 Dmitri Makarov <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
1423
1424 * config/arm/arm.c (arm_init_cumulative_args); New function:
1425 Initlaise the CUMULATIE_ARGS strcuture for a function
1426 defintion.
1427 (arm_function_arg): New function: Determine where to place a
1428 function's argument. Also handles deciding the function's
1429 call cookie.
1430 (current_file_function_operand): New function: Return true if
1431 the symbol is a function which has already been compiled.
1432 (arm_is_long_call_p): New function: Return true if the
1433 indicated function should be called via a long call.
1434 (arm_valid_type_attribute_p): New function: Return true if the
1435 attribute is a valid, arm specific, attribute.
1436 (arm_comp_type_attribute): New function: Return true if the
1437 two types have compatable, arm specific, attributes.
1438
1439 * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
1440 structure.
1441 (FUNCTION_ARG): Redefine to call arm_function_arg.
1442 (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
1443 structure field.
1444 (INIT_CUMULATIVE_ARGS): Redefine to call
1445 arm_init_cumulative_args.
1446 (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
1447 field.
1448 (SETUP_INCOMING_VARARGS): Redefine to use correct structure
1449 field.
1450 (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
1451 functions.
1452 (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
1453 (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
1454 (COMP_TYPE_ATTRIBUTES): Define.
1455
1456 * config/arm/arm.md (call): Call arm_is_long_call_p to decide
1457 if a long call is needed.
1458 (call_value): Call arm_is_long_call_p to decide if a long call
1459 is needed.
1460 (call_symbol): Call arm_is_long_call_p to decide if a long call
1461 is needed.
1462
1463 * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
1464
1465 2000-02-11 Denis Chertykov <denisc@overta.ru>
1466
1467 * README.AVR: New file with information about the avr ports.
1468 * config/avr: New directory with avr port files.
1469
1470 2000-02-11 Andreas Jaeger <aj@suse.de>
1471
1472 * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
1473
1474 2000-02-11 Zack Weinberg <zack@wolery.cumb.org>
1475
1476 * cpphash.c: Fix formatting, update commentary.
1477 (dump_definition): Take three separate arguments instead of a
1478 MACRODEF structure argument.
1479 * cpphash.h: Update prototype of dump_definition.
1480 * cppinit.c (cpp_finish): Update call of dump_definition.
1481
1482 * cpplib.c (do_define): Always create new hash entry with
1483 T_MACRO type. Remove redundant check for redefinition of
1484 poisoned identifier. Update call of dump_definition.
1485 (do_undef): Don't call check_macro_name. Rename sym_length to
1486 len.
1487 (do_error, do_warning): Don't use copy_rest_of_line or
1488 SKIP_WHITE_SPACE.
1489 (do_warning): Don't use pedwarn for the actual warning,
1490 only the notice about its not being in the standard. (Fixes
1491 bug with #warning in system headers.)
1492 (do_ident): Stricter argument checking - accept only a single
1493 string after #ident. Also, macro-expand the line.
1494 (do_xifdef): Use cpp_defined. De-obfuscate.
1495
1496 (do_pragma): Split out specific pragma handling to separate
1497 functions. Use get_directive_token. Update commentary. Do
1498 not pass on #pragma once or #pragma poison to the front end.
1499 (do_pragma_once, do_pragma_implementation, do_pragma_poison,
1500 do_pragma_default): New.
1501
1502 Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com)
1503
1504 * jump.c (jump_optimize_1): The first operand in a relational
1505 can be a CONST_INT.
1506 * optabs.c (emit_conditional_move): Handle relationals which
1507 have a known true/false result.
1508
1509 2000-02-11 Geoff Keating <geoffk@cygnus.com>
1510
1511 * function.c (thread_prologue_and_epilogue_insns): Don't insert
1512 a RETURN insn into a block which already ends with a jump.
1513
1514 2000-02-11 Geoff Keating <geoffk@cygnus.com>
1515
1516 * haifa-sched.c (BUF_LEN): Increase a lot.
1517
1518 2000-02-11 Nick Clifton <nickc@cygnus.com>
1519
1520 * configure.in: Add tm_p_file specification for thumb targets.
1521 * configure: Regenerate.
1522
1523 * config/arm/thumb-protos.h: New file: Prototypes for exported
1524 functions defined in thumb.c.
1525
1526 2000-02-11 Robert Lipe <robertl@sco.com>
1527
1528 * Makefile.in (bootstrap-lean): Remove additional files.
1529 (bootstrap2-lean): Likewise.
1530 (VOL_FILES): List of files for above.
1531
1532 2000-02-11 Nathan Sidwell <nathan@acm.org>
1533
1534 * cpphash.c (special_symbol): Remove spurious argument to
1535 cpp_lookup.
1536
1537 2000-02-11 Joel Sherrill (joel@OARcorp.com>
1538
1539 * configure.in: (i*86-*-rtems*): Swapped elf and coff
1540 stanzas.
1541 * configure: Rebuilt.
1542
1543 2000-02-11 Rodney Brown <RodneyBrown@pmsc.com>
1544
1545 * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
1546
1547 Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com)
1548
1549 * pa.c, pa.h: Remove trigraph sequences within comments.
1550
1551 Fri Feb 11 02:51:56 2000 Pavel Roskin <pavel_roskin@geocities.com>
1552
1553 * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
1554
1555 Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu)
1556
1557 * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
1558
1559 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1560
1561 * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
1562
1563 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1564
1565 * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
1566 (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
1567 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
1568 (ASM_FILE_END): Use c4x_file_end.
1569 * config/c4x/c4x.c (c4x_global_label): New function.
1570 (c4x_external_ref, c4x_file_end): Likewise.
1571
1572 * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
1573 (c4x_external_ref, c4x_end_file): Likewise.
1574
1575 2000-02-10 Zack Weinberg <zack@wolery.cumb.org>
1576
1577 * cppexp.c: Don't include cpphash.h.
1578 (parse_charconst, cpp_lex): Use cpp_defined.
1579 (cpp_lex): Use get_directive_token throughout. Remove
1580 unnecessary cases from switch. Move assertion-handling code
1581 down to OTHER case.
1582 (cpp_parse_expr): If we see '+' or '-', check the context to
1583 determine if they are unary or binary operators. Streamline
1584 the jumps a bit. Do not call skip_rest_of_line.
1585
1586 * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
1587 static. Export get_directive_token. Update commentary.
1588 (cpp_defined): New function.
1589 (do_define): Remove reference to T_PCSTRING. Call
1590 free_definition to release memory for old definition, when
1591 redefining a macro.
1592 (eval_if_expression): Set only_seen_white to 0 before calling
1593 cpp_parse_expr. Call skip_rest_of_line after it returns.
1594 (cpp_read_check_assertion): Don't preserve a pointer into the
1595 token buffer across a call to cpp_get_token.
1596
1597 * Makefile.in (cppexp.o): Don't depend on cpphash.h.
1598 * cppfiles.c (redundant_include_p): Use cpp_defined.
1599 * cpphash.c (free_definition): New function.
1600 (delete_macro): Use it. Update commentary.
1601 * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and
1602 free_definition.
1603 * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
1604 from enum node_type. Prototype cpp_defined and get_directive_token.
1605 Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
1606
1607 * fix-header.c (check_macro_names): Use cpp_defined.
1608 (read_scan_file): Set inhibit_warnings and inhibit_errors in
1609 the options structure.
1610
1611 2000-02-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1612
1613 * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
1614
1615 2000-02-10 Jason Merrill <jason@casey.cygnus.com>
1616
1617 * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
1618 rather than die->die_tag.
1619
1620 Thu Feb 10 16:26:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1621
1622 * combine.c (make_extraction, force_to_mode): Avoid warning on
1623 mixed-signedness conditionals.
1624 (make_field_assignment, nonzero_bits): Likewise.
1625 * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
1626 (store_split_bit_field, extract_split_bit_field): Likewise.
1627 (extract_fixed_bit_field, store_bit_field,
1628 * expr.c: Change alignment to be unsigned everywhere.
1629 (move_by_pieces, store_constructor_field, store_constructor):
1630 Alignment parm is unsigned.
1631 (emit_block_move, emit_group_load, emit_group_store): Likewise.
1632 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
1633 (do_compare_rtx_and_jump): Likewise.
1634 (move_by_pieces_ninsns, clear_by_pieces): Likewise.
1635 Compare align with GET_MODE_ALIGNMENT.
1636 (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
1637 (get_inner_reference): Likewise.
1638 (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
1639 (expand_assignment): Local vars for alignment now unsigned.
1640 (store_constructor, store_field, expand_expr, do_jump): Likewise.
1641 (do_compare_and_jump): Likewise.
1642 (store_field): Call new function expr_align.
1643 * expr.h (emit_block_move, emit_group_load, emit_group_store):
1644 Alignment arg now unsigned.
1645 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
1646 (do_compare_rtx_and_jump, store_bit_field): Likewise.
1647 (extract_bit_field): Likewise.
1648 * fold-const.c (add_double): Add cast to eliminate signedness warning.
1649 * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
1650 (get_best_mode): Alignment arg is unsigned.
1651 * rtl.h (move_by_pieces): Likewise.
1652 * store-layout.c (maximum_field_alignment, set_alignment):
1653 Now unsigned.
1654 (layout_decl): Alignment arg is now unsigned.
1655 Remove unneeded casts.
1656 (layout_record, layout_union, layout_type): Remove unneeded casts.
1657 Local alignment variables now unsigned.
1658 (get_best_mode): Alignment arg now unsigned.
1659 * tree.c (expr_align): New function.
1660 * tree.h (expr_align): Likewise.
1661 (maximum_field_alignment, set_alignment): Now unsigned.
1662 (get_inner_reference): Alignment argument is now pointer to unsigned.
1663 * varasm.c (assemble_variable): Add cast to eliminate warning.
1664
1665 Thu Feb 10 12:56:47 2000 Jim Wilson <wilson@cygnus.com>
1666
1667 * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
1668 then store directly into op0.
1669
1670 * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
1671 the CALL_INSN, and emit the note immediately after it.
1672
1673 2000-02-10 Nick Clifton <nickc@cygnus.com>
1674
1675 * config/arm/thumb.md (epilogue): Include a (return) in the
1676 generated insn, and emit it using emit_jump_insn not
1677 emit_insn.
1678
1679 Thu Feb 10 18:28:59 MET 2000 Jan Hubicka <jh@suse.cz>
1680
1681 * function.c (assign_temp): Change zero-sized arrays to size 1.
1682 * integrate.c (expand_inline_function): Do not update
1683 stack_alignment_needed
1684 * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
1685 add some sanity checking, remove optimization for function with
1686 zero frame size.
1687
1688 2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1689
1690 * flow.c (mark_regs_live_at_end): Delete unused variables.
1691
1692 * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
1693
1694 * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
1695 in macro FRAME_GROWS_DOWNWARD.
1696
1697 * stmt.c (expand_end_bindings): Delete unused variable.
1698
1699 * unroll.c (iteration_info): Mark parameter `loop' with
1700 ATTRIBUTE_UNUSED.
1701
1702 2000-02-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
1703
1704 * fixinc/server.c (load_data): Return NULL if the marker line is
1705 not found.
1706 (run_shell): If load_data returns NULL, retry the command once, in
1707 a new shell.
1708
1709 * configure: Rebuilt.
1710
1711 2000-02-09 Bruce Korb <bkorb@gnu.org>
1712
1713 * gcc/fixincludes: ** DELETED **
1714 * gcc/fixcpp: ** DELETED **
1715 * gcc/fixinc-nt.sed: ** DELETED **
1716 * gcc/just-fixinc: ** DELETED **
1717 * gcc/Makefile.in: Removed out-dated commentary
1718 * gcc/configure.in: Removed fast-fixincludes disablement.
1719 * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
1720
1721 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
1722 * function.c (thread_prologue_and_epilogue_insns): Uncomment
1723 last change.
1724
1725 2000-02-09 Richard Henderson <rth@cygnus.com>
1726
1727 * jump.c (delete_insn): Don't delete user labels at -O0.
1728
1729 2000-02-09 Robert Lipe <robertl@sco.com>
1730
1731 * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
1732 Don't link with HOST_LIBS.
1733
1734 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
1735
1736 * configure.in: Correct --help text for --with-dwarf2.
1737 Put tm-dwarf2.h after other tm files, if it's requested.
1738 * configure: Regenerate.
1739 * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
1740 defining it.
1741
1742 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
1743
1744 * cpplib.h: Provide HASHNODE typedef and forward decl of
1745 struct hashnode only. Kill cpp_hashnode typedef. MACRODEF,
1746 DEFINITION, struct hashnode, struct macrodef, struct
1747 definition, scan_decls prototype, default defn of
1748 INCLUDE_LEN_FUDGE moved elsewhere.
1749
1750 * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
1751 definition, and struct hashnode moved here. Remove the unused
1752 'predefined' field from struct definition. Replace the 'args'
1753 union with its sole member. All users updated (cpphash.c).
1754 Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add
1755 multiple include guard.
1756
1757 * cpphash.c (hashf): Make static; use better algorithm; drop
1758 HASHSIZE parameter; return an unsigned int.
1759 (cpp_lookup): Drop HASH parameter. PFILE parameter is
1760 used. Calculate HASHSIZE modulus here.
1761 (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
1762 here.
1763 (create_definition): Drop PREDEFINITION parameter.
1764 * cpplib.c (do_define): Don't calculate a hash value here.
1765 Don't pass (keyword == NULL) to create_definition.
1766
1767 * scan.h: Prototype scan_decls here.
1768 * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
1769 * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
1770 callers of cpp_lookup and cpp_install updated.
1771
1772 * cpphash.c (macarg): Hoist all the flag diddling out of the
1773 function...
1774 (macroexpand): ... and out of the loop that calls macarg.
1775 Skip over the initial paren before macro arguments with
1776 cpp_get_non_space_token; point may be some distance before
1777 that paren. Abort if it's not there.
1778
1779 * cpplib.c (parse_clear_mark): Delete function.
1780 (parse_set_mark, parse_goto_mark): Make static.
1781 (ACTIVE_MARK_P): New macro.
1782 (skip_block_comment, skip_line_comment): Do not bump the line
1783 if ACTIVE_MARK_P is true.
1784 (cpp_pop_buffer): The buffer to be popped may not have an
1785 active mark.
1786 (cpp_get_token): When looking for the initial paren before
1787 macro arguments, only set a mark in a file buffer, Always
1788 return to that mark before proceeding to call macroexpand or
1789 return a NAME token.
1790
1791 * cpplib.h: Remove prototypes of parse_set_mark,
1792 parse_clear_mark, parse_goto_mark.
1793 (struct cpp_options): Rename 'put_out_comments' to
1794 'discard_comments' and invert its sense.
1795 * cppinit.c, cpphash.c, cpplib.c: All users of
1796 put_out_comments changed to use discard_comments, with
1797 opposite sense.
1798
1799 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
1800
1801 * function.c (thread_prologue_and_epilogue_insns): Don't delete
1802 the edge from a block that both jumps and falls through to the
1803 fallthru block.
1804
1805 2000-02-09 Scott Bambrough <scottb@netwinder.org>
1806
1807 * config/arm/arm.md (movsi): In PIC mode, make sure that a
1808 constant source address is legitimate.
1809
1810 2000-02-09 Philip Blundell <pb@futuretv.com>
1811
1812 * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
1813 correctly.
1814
1815 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
1816 generating PIC.
1817 (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
1818
1819 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
1820
1821 * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
1822 ends with a newline and a NUL. Don't be so clever manipulating
1823 strings.
1824
1825 Wed Feb 9 14:18:08 MET 2000 Jan Hubicka <jh@suse.cz>
1826
1827 * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
1828 not to BIGGEST_ALIGNMENT.
1829
1830 2000-02-08 Geoff Keating <geoffk@cygnus.com>
1831
1832 * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
1833 * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
1834 (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
1835 (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
1836 * frame.c (execute_cfa_insn): Handle
1837 DW_CFA_GNU_negative_offset_extended.
1838
1839 2000-02-08 Richard Henderson <rth@cygnus.com>
1840
1841 * flow.c (tidy_fallthru_edges): Split out from ...
1842 (delete_unreachable_blocks): ... here.
1843 (find_basic_blocks): Use it.
1844
1845 Tue Feb 8 15:51:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1846
1847 * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
1848
1849 2000-02-08 Zack Weinberg <zack@wolery.cumb.org>
1850
1851 * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
1852 (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
1853 (fix-header.o): Don't depend on cpphash.h.
1854
1855 * scan.c (hashstr): New function.
1856 * scan.h: Prototype it.
1857 * fix-header.c: Don't include cpphash.h. Use hashstr.
1858 * gen-protos.c: Don't include cpphash.h or cpplib.h. Use
1859 hashstr. Report hash table statistics. Add private
1860 definition of xrealloc.
1861
1862 2000-02-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1863
1864 * i386.h (TARGET_SWITCHES): Fix typo in option name.
1865
1866 2000-02-08 Clinton Popetz <cpopetz@cygnus.com>
1867
1868 * function.c (thread_prologue_and_epilogue_insns): Don't replace
1869 jumps with returns unless they are jumps to the fallthru block.
1870
1871 Tue Feb 8 07:53:55 2000 Jan Hubicka <jh@suse.cz>
1872
1873 * i386.md (addqi3_cc): Fix contraints.
1874
1875 Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
1876
1877 * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
1878
1879 2000-02-07 Mark Mitchell <mark@codesourcery.com>
1880
1881 * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
1882 carriage return after a macro name.
1883
1884 2000-02-07 Fred Fish <fnf@be.com>
1885
1886 * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
1887 so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
1888
1889 2000-02-07 Zack Weinberg <zack@wolery.cumb.org>
1890
1891 * cppfiles.c (deps_output): Count spacers in deps_column.
1892
1893 2000-02-07 Neil Booth <NeilB@earthling.net>
1894
1895 * cppinit.c (initialize_dependency_output): If there is no
1896 suffix, don't try to look for known suffixes. Use strrchr.
1897 (cpp_start_read): Remove duplicate initialization.
1898
1899 Mon Feb 7 18:36:41 MET 2000 Jan Hubicka <jh@suse.cz>
1900
1901 * calls.c (compute_argument_block_size): New argument
1902 preferred_stack_boundary.
1903 (expand_call): update cfun->preferred_stack_boundary, update call of
1904 compute_argument_block_size
1905 (emit_library_call): Increate cfun->preferred_stack_boundary
1906 to PREFERRED_STACK_BOUNDARY
1907 (emit_library_call_value): Likewise.
1908 * explow.c (allocate_dynamic_stack_spave): Likewise.
1909 * function.c (prepare_function_start): Set
1910 cfun->preferred_stack_boundary
1911 * function.h (struct function): Add preferred_stack_boundary field.
1912 * integrate.c (expand_inline_function): Update
1913 cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
1914 (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
1915 * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
1916
1917 2000-02-06 Zack Weinberg <zack@wolery.cumb.org>
1918
1919 * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
1920 cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
1921 cpp_pedwarn, cpp_pedwarn_with_line,
1922 cpp_pedwarn_with_file_and_line): Move to cpperror.c.
1923 (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
1924 v_cpp_error_with_line, v_cpp_warning_with_line,
1925 cpp_message_from_errno, cpp_perror_with_name): Delete.
1926
1927 * cpperror.c (cpp_print_containing_files): Take starting
1928 buffer as argument.
1929 (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
1930 (v_cpp_message): Now called directly by all entry points.
1931 Remove -1 case.
1932 (cpp_pfatal_with_name, cpp_message): Delete.
1933 (cpp_notice_from_errno, cpp_ice): New functions.
1934 (cpp_notice): Is now for reporting error conditions, just
1935 without an associated file.
1936 (cpp_error, cpp_error_with_line): Don't do anything if
1937 opts->inhibit_errors is on.
1938 (cpp_pedwarn_with_file_and_line): Take column argument also.
1939
1940 * cpplib.h: Update prototypes of exported functions.
1941 (struct cpp_options): Add inhibit_errors.
1942
1943 * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
1944 non-error messages. Include intl.h.
1945
1946 * cppinit.c, cppmain.c: Likewise. Also, use
1947 cpp_notice_from_errno instead of cpp_perror_with_name or
1948 cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
1949
1950 * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
1951 report internal errors.
1952
1953 * cpplib.c (do_define): Switch bcopy to memcpy.
1954 Give cpp_pedwarn_with_file_and_line a dummy column argument.
1955
1956 * cpplib.c (copy_rest_of_line): Revert previous change: don't
1957 bail out early if we hit a line comment.
1958
1959 2000-02-06 Richard Henderson <rth@cygnus.com>
1960
1961 * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
1962 * basic-block.h: Declare them.
1963 * emit-rtl.h (active_insn_p): New.
1964 (next_active_insn, prev_active_insn): Use it.
1965 * rtl.h: Declare it.
1966 * function.c (emit_return_into_block): New.
1967 (thread_prologue_and_epilogue_insns): Insert return insns instead
1968 of epilogues when possible.
1969 * jump.c (jump_optimize_1): Remove code to insert a return insn
1970 on the fallthru to the exit block.
1971
1972 * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
1973 and for non-empty stack frames.
1974 * i386.md (return): Expand to return-pop as needed.
1975
1976 2000-02-06 Richard Henderson <rth@cygnus.com>
1977
1978 * simplify-rtx.c (simplify_relational_operation): Canonicalize
1979 constant to op1 for testing.
1980
1981 2000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1982
1983 * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
1984 (fixuns_truncqfqi2): Use it.
1985
1986 2000-02-06 Richard Henderson <rth@cygnus.com>
1987
1988 * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
1989 as a TYPE_LEA insn.
1990
1991 * i386.md (widening and peepholes): Mask the constant instead of
1992 using gen_lowpart.
1993
1994 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
1995
1996 * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
1997 input pointer before possibly branching off to the backslash
1998 code.
1999 * cpphash.c (macroexpand): Correctly delete \r escapes when
2000 stringifying parameters.
2001 * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
2002 if we can; bail out early if we hit a line comment.
2003 (handle_directive): Treat '# 123' in an .S file just like
2004 '# <punctuation>'. Discard the shifted '#' if we hit '#\n'.
2005 Return 1 for '# not_a_directive'.
2006 (get_directive_token): Pop macro buffers here, so that
2007 cpp_get_token can't sneakily move past a newline.
2008 Add sanity checks.
2009 (cpp_get_token): goto randomchar if handle_directive returns 0.
2010
2011 * cppalloc.c: Update copyright.
2012 * cpplib.c: Merge all the static function prototypes into one
2013 block.
2014 * cpplib.h: Remove #if 0 block.
2015
2016 * cpperror.c: Remove #ifdef EMACS block.
2017 * cppmain.c: Likewise.
2018 * cpphash.c: Remove #if 0 blocks.
2019 * cppinit.c: Remove #if 0 blocks, and the -lint option.
2020 * cpplib.c: Remove #if 0 blocks and code referencing
2021 pcp_inside_if or for_lint. Remove duplicate error message.
2022 Fix error messages for #else after #else or #elif. Reformat.
2023 Remove archaic TODO list.
2024 * cpplib.h: Remove pcp_inside_if and for_lint flags.
2025
2026 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
2027
2028 * i386/osf1elf.h: Add missing backslash to multiline string.
2029
2030 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2031
2032 * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
2033
2034 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2035
2036 * Makefile.in (c-common.o): Depend on $(EXPR_H).
2037
2038 * c-common.c: Include expr.h.
2039
2040 * c-pragma.c (mark_align_stack): Add prototype.
2041
2042 * caller-save.c (add_stored_regs): Likewise.
2043
2044 * combine.c (record_promoted_value): Likewise.
2045
2046 * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
2047 Likewise.
2048
2049 * cppinit.c (new_pending_define): Likewise.
2050
2051 * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
2052
2053 * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
2054 AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
2055 AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
2056 class_scope_p): Likewise.
2057
2058 * dwarf2out.h (dwarf2out_set_demangle_name_func,
2059 dwarf2out_add_library_unit_info): Likewise.
2060
2061 * ggc.h (ggc_page_print_statistics): Likewise.
2062
2063 * haifa-sched.c (propagate_deps): Likewise.
2064
2065 * reg-stack.c (next_flags_user, record_label_references): Likewise.
2066
2067 * rtl.h (set_stack_check_libfunc): Likewise.
2068
2069 * toplev.h (set_fatal_function): Likewise.
2070
2071 * toplev.c (set_fatal_function): Delete prototype.
2072
2073 * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
2074
2075 2000-02-05 Geoff Keating <geoffk@cygnus.com>
2076
2077 * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
2078 (FUNC_END): Likewise.
2079
2080 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2081
2082 * caller-save.c: Include tm_p.h.
2083
2084 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2085
2086 * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
2087
2088 2000-02-04 Neil Booth <NeilB@earthling.net>
2089
2090 * cccp.c (main): Check 'dir' for a NULL pointer before passing
2091 it to strcmp.
2092
2093 2000-02-04 Zack Weinberg <zack@wolery.cumb.org>
2094
2095 * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
2096 * genflags.c: Use the max_operand_1 logic from genemit.c to
2097 calculate how many arguments gen_insn prototypes have. Remove
2098 NO_MD_PROTOTYPES ifdefs from the generated file.
2099 * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
2100 file. Cast gen_insn initializers to insn_gen_fn.
2101 * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
2102 * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
2103
2104 2000-02-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2105
2106 * fixinc/Makefile.in (HDR): Add machname.h.
2107 (clean): Likewise.
2108
2109 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2110
2111 * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
2112 (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
2113 (c4x_cpu_version): Ditto.
2114 * config/c4x/c4x-protos.h: ... here.
2115
2116 2000-02-04 Jason Merrill <jason@casey.cygnus.com>
2117
2118 * dwarf2out.c (add_abstract_origin_attribute): Don't call
2119 gen_abstract_function on our context if we're a nested function.
2120
2121 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2122
2123 * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
2124 * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
2125
2126 2000-02-04 Bruce Korb <bkorb@gnu.org>
2127
2128 * fixinc/genfixes(machname.h):
2129 Move the functionality from gen-machine.h into this file.
2130 UNdef MN_NAME_PAT if there are no names to change.
2131 Also, be a little kinder when AutoGen is not present.
2132
2133 * fixinc/Makefile.in(machname.h):
2134 Change the generation rule to use genfixes.
2135
2136 * fixinc/fixfixes.c(machine_name):
2137 machine_name_fix's functionality now dependent upon whether
2138 MN_NAME_PAT is defined.
2139
2140 * fixinc/fixtests.c(machine_name):
2141 ditto.
2142
2143 * fixinc/fixlib.c(mn_get_regexps): conditional on definition
2144 of MN_NAME_PAT.
2145
2146 * fixinc/fixlib.h(mn_get_regexps):
2147 ditto
2148
2149 * fixinc/gen-machine.h: DELETED
2150
2151 2000-02-04 Jan Hubicka <jh@suse.cz>
2152 Richard Henderson <rth@cygnus.com>
2153
2154 * i386.c (SAVE_REGS_FIRST): Remove.
2155 (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
2156 (ix86_compute_frame_size): Likewise.
2157 (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack.
2158 (ix86_emit_restore_regs): Remove.
2159 (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
2160 when a frame pointer is in use.
2161 (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov
2162 instead of pop to restore a register when profitable; emit leave
2163 when profitable.
2164 (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
2165 as a TYPE_LEA insn.
2166 (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
2167 * i386.md (prologue_allocate_stack): Remove.
2168 (epilogue_deallocate_stack): Remove.
2169 (pro_epilogue_adjust_stack): New.
2170
2171 2000-02-04 Richard Henderson <rth@cygnus.com>
2172
2173 * function.c (diddle_return_value): Rework to use a callback function.
2174 Use current_function_return_rtx if it's been set up.
2175 (do_clobber_return_reg, clobber_return_register): New.
2176 (do_use_return_reg, use_return_register): New.
2177 (expand_function_end): Use them.
2178 * stmt.c (expand_null_return): Likewise.
2179 * function.h: Declare them.
2180 * flow.c (mark_regs_live_at_end): Use diddle_return_value.
2181 (mark_reg): Change arguments as appropriate for callback.
2182 * integrate.c (expand_inline_function): Revert 19 Jan change.
2183
2184 Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson <hp@bitrange.com>
2185
2186 * tm.texi (Values in Registers): Fix typo: "fo" "for".
2187 (Misc): Say the scheduler, not the Haifa scheduler.
2188
2189 2000-02-04 Clinton Popetz <cpopetz@cygnus.com>
2190
2191 * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
2192 when in_mem is set. Update all callers.
2193
2194 2000-02-04 Richard Henderson <rth@cygnus.com>
2195
2196 * i386/openbsd.h (INT_ASM_OP): Define.
2197
2198 Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson <hp@bitrange.com>
2199
2200 * tm.texi: Fix various typos.
2201
2202 Thu Feb 3 17:17:32 2000 Steve Ellcey <sje@cup.hp.com>
2203
2204 * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
2205 (MD_STARTFILE_PREFIX_1): New macro.
2206
2207 Thu Feb 3 15:08:13 MET 2000 Jan Hubicka <jh@suse.cz>
2208
2209 * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
2210 destination when needed.
2211 (strmovsi, strsetsi): New expander.
2212 (strmovsi_1, strsetsi_1): New pattern.
2213 * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
2214 TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
2215 (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
2216 * invoke.texi (align-stringops, inline-all-stringops): Document.
2217
2218 Wed Feb 2 23:04:47 2000 Krister Walfridsson <cato@df.lth.se>
2219
2220 * i386/netbsd.h (INT_ASM_OP): Define.
2221
2222 2000-02-02 Zack Weinberg <zack@wolery.cumb.org>
2223
2224 * cpplib.h (cpp_reader): Add new flag, no_directives.
2225 * cpphash.c (macarg): Set it.
2226 * cpplib.c (handle_directive): If no_directives is on and we
2227 find a directive, issue an error and discard the line.
2228
2229 Wed Feb 2 13:07:10 2000 Jim Wilson <wilson@cygnus.com>
2230
2231 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
2232 FP constants. Add ! TARGET_FPU check for FP constants.
2233
2234 2000-02-02 Clinton Popetz <cpopetz@cygnus.com>
2235
2236 * flow.c (find_basic_blocks): Don't kill label_value_list
2237 here.
2238 (cleanup_cfg): Kill it here.
2239
2240 Wed Feb 2 08:12:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2241
2242 * expr.c (store_field): Ensure ALIGN is no stricter than the
2243 alignment of EXP.
2244
2245 2000-02-02 Richard Henderson <rth@cygnus.com>
2246
2247 * jump.c (delete_insn): Partially revert 19 Jan change;
2248 don't convert unused code labels to notes at -O0.
2249
2250 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2251
2252 * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
2253 split_all_insns to recreate REG_LABEL notes for flow2 pass.
2254
2255 2000-02-01 Richard Henderson <rth@cygnus.com>
2256
2257 * i386.c (general_no_elim_operand): New.
2258 (nonmemory_no_elim_operand): New.
2259 (ix86_expand_move): Copy eliminable operands before a push.
2260 * i386-protos.h: Declare new functions.
2261 * i386.h (CAN_ELIMINATE): Simplify.
2262 (PREDICATE_CODES): Update.
2263 * i386.md (push insns): Don't allow eliminable register operands.
2264
2265 2000-02-01 Richard Henderson <rth@cygnus.com>
2266
2267 * flow.c (mark_regs_live_at_end): Follow expand_function_end and
2268 replace BLKmode with DECL_RTL's mode.
2269
2270 2000-02-01 Zack Weinberg <zack@wolery.cumb.org>
2271
2272 * frame.c (find_fde): Convert for loop to do-while so compiler
2273 sees it's always executed at least once.
2274 * libgcc2.c (BBINBUFSIZE): Kill.
2275 (__bb_init_prg): Use fgets.
2276 (__bb_exit_trace_func): Don't paste strings.
2277 * unroll.c (unroll_loop): Initialize unroll_type, not
2278 unroll_number, and tweak logic to match.
2279
2280 * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
2281 all failure paths.
2282 (ix86_flags_dependant): Likewise. Disentangle control flow.
2283 (ix86_sched_reorder): Break guts out to
2284 ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
2285 (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
2286 any possible use.
2287
2288 * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
2289 use string concatenation. Don't save and restore esi.
2290
2291 * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
2292 (machname.h): Remove script to separate file. Use two-step
2293 sequence so target is not created if script fails.
2294 * fixinc/gen-machname.h: New file. Handle case where no non-reserved
2295 identifiers are defined.
2296 * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
2297 an empty string, machine_name doesn't need to do anything at
2298 all.
2299 (is_cxx_header): Add more cases to regexp.
2300 * fixinc/fixlib.h: Update prototype.
2301 * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
2302 mn_get_regexps.
2303 * fixinc/fixincl.c: Define NO_BOGOSITY.
2304
2305 * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
2306 (hp_sysfile): Add missing comma.
2307 (math_exception): Put the wrapper ifdefs at the beginning and
2308 the end of the file.
2309 * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
2310
2311 2000-02-01 Richard Henderson <rth@cygnus.com>
2312
2313 * sparc.c (fp_zero_operand): Turn into a normal predicate.
2314 Use CONST0_RTX. Update all callers.
2315 * sparc.h, sparc-protos.h: Update accordingly.
2316 * sparc.md (fp mov insns): Use fp_zero_operand directly
2317 where applicable.
2318
2319 Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
2320
2321 * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
2322 example.
2323
2324 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2325
2326 * Makefile.in (specs.ready): New target.
2327 (fixinc.sh): Depend on `specs.ready' instead of `specs'.
2328
2329 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2330
2331 * fixinc.irix: Use unique filenames for writing into /tmp,
2332 * fixinc.ptx: Likewise.
2333 * fixinc.sco: Likewise.
2334 * fixinc.svr4: Likewise.
2335 * fixinc.winnt: Likewise.
2336
2337 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2338
2339 * tsystem.h: New file.
2340
2341 * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
2342 s-crtS): Depend on tsystem.h.
2343
2344 * crtstuff.c: Include tsystem.h.
2345 * frame.c: Likewise.
2346 * libgcc2.c: Likewise.
2347
2348 Tue Feb 1 19:53:27 CET 2000 Jan Hubicka <jh@suse.cz>
2349
2350 * builtins.c (expand_builtin_memset): Expand for variable sized
2351 lengths too.
2352
2353 2000-02-01 David Billinghurst <David.Billinghurst@riotinto.com.au>
2354
2355 * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
2356 on ABI.
2357
2358 Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
2359
2360 * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
2361
2362 * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
2363
2364 2000-01-31 Chandra Chavva <cchavva@cygnus.com>
2365
2366 * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
2367 case 3->2 combining (combining with splitting) in which 2 is CC0
2368 setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
2369 checked at the begining of the function with the aid of calling
2370 function 'can_combine_p'.
2371
2372 2000-01-31 Dave Brolley <brolley@redhat.com>
2373
2374 * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
2375
2376 2000-01-31 Jason Merrill <jason@casey.cygnus.com>
2377
2378 * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
2379 new label.
2380
2381 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2382
2383 * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
2384
2385 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
2386 PROTO -> PARAMS.
2387
2388 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
2389
2390 * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
2391 i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
2392 i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
2393 i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
2394 i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
2395 i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
2396 i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
2397 i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
2398 i386/vxi386.h, i386/win-nt.h, i386/win32.h:
2399 Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
2400
2401 * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
2402 Add %(cpp_cpu) to CPP_SPEC.
2403
2404 * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
2405 Add %(cc1_cpu) to CC1_SPEC.
2406
2407 2000-01-28 Ulrich Drepper <drepper@redhat.com>
2408
2409 * c-decl.c (c_decode_option): Accept optional numeric argument to
2410 -Wformat and set warn_format.
2411 * c-common.c: Don't emit warning about non-constant printf format
2412 string unless warn_format > 1.
2413
2414 2000-01-30 Richard Henderson <rth@cygnus.com>
2415
2416 * alpha.md (return_internal): Allow after reload only.
2417
2418 2000-01-30 Richard Henderson <rth@cygnus.com>
2419
2420 * i386.c (ix86_compute_frame_size): Omit padding1 if the
2421 local frame size is zero.
2422
2423 2000-01-30 Richard Henderson <rth@cygnus.com>
2424
2425 * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
2426 * alpha.h (EPILOGUE_USES): New. Mark $26 live.
2427 * alpha.md (return): Turn into an expander.
2428 (return_internal): Don't use $26.
2429 (epilogue): Emit the return insn.
2430
2431 2000-01-30 Richard Henderson <rth@cygnus.com>
2432
2433 * alpha.md (negtf2, abstf2): Fix word order thinko.
2434 (extendsftf2): New.
2435 (trunctfsf2): Avoid intermediate rounding errors.
2436
2437 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
2438
2439 * cppfiles.c (find_position): Drop 'colp' argument, return the
2440 new line base.
2441 (read_and_prescan): Adjust to match. Don't ever manipulate
2442 line or line_base except via find_position.
2443
2444 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
2445
2446 * c-parse.in: Apply Ulrich's changes from c-parse.y.
2447 * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
2448 Regenerate.
2449
2450 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
2451
2452 * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
2453 just print "<command line>". If 'filename' is null or an
2454 empty string, print "<stdin>" for the filename.
2455 * cpplib.c (do_define): Don't print the 'location of the
2456 previous definition' message if we're still parsing the
2457 command line.
2458 (cpp_pedwarn_with_file_and_line): Always call
2459 cpp_file_line_for_message.
2460
2461 2000-01-29 Mark Mitchell <mark@codesourcery.com>
2462
2463 * flow.c (mark_regs_live_at_end): Fix typo.
2464
2465 2000-01-28 Ulrich Drepper <drepper@redhat.com>
2466
2467 * c-common.c: Adjust variable names, comments, help strings to c99.
2468 * c-lex.c: Likewise.
2469 * c-parse.y: Likewise.
2470 * c-tree.h: Likewise.
2471 * cccp.c: Likewise.
2472 * cpplib.h: Likewise.
2473 * c-decl.c: Likewise. Recognize options with names "*99" as well.
2474 * cppinit.c: Likewise.
2475
2476 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2477
2478 * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
2479 * c4x.c: Define the optab rtx values.
2480 (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
2481 (c4x_emit_libcall): Use new optab rtx values.
2482 (c4x_emit_libcall3): Likewise.
2483 (c4x_emit_libcall_mulhi): Likewise.
2484 * c4x-protos.h: Add prototypes for optab rtx values and change
2485 prototypes for above c4x_emit_libcall functions.
2486
2487 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2488
2489 * c4x.c (c4x_output_ascii): Restrict line length of output when TI
2490 syntax is used.
2491 (c4x_function_prologue): Use regnames intead of float_reg_names when
2492 TI syntax is used.
2493 (c4x_function_epilogue): Likewise.
2494 (c4x_print_operand): Likewise.
2495 * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
2496 * c4x.md (set_high): Disable for TARGET_TI.
2497
2498 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2499
2500 * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
2501 of framepointer + constant to ADDR_REGS class.
2502 * c4x.md (addqi3, addqi3_noclobber_reload): Update.
2503 * c4x.c (std_or_reg_operand): New function.
2504 * c4x-protos.h (std_or_reg_operand): Prototype it.
2505
2506 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2507
2508 * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
2509 object names as libgcc2.c.
2510 * libgcc.S: Use newly defined names.
2511
2512 Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz>
2513 * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
2514 function.
2515 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
2516 * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
2517 (FLOW_LOOP_LAST_BLOCK): Likewise.
2518
2519 2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2520
2521 * basic-block.h (struct loop): New fields 'first' and 'last'.
2522 * flow.c (flow_loops_find): Compute loop->first and loop->last.
2523 (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
2524 and loop->last to check for NOTE_INSN_LOOP_END.
2525
2526 Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com>
2527
2528 * predict.c (estimate_probability): Use the new FIRST and LAST fields
2529 of the loop descriptor rather than HEADER and LATCH. Also added
2530 missing break statements as well making some coding style modifications
2531 as suggested by Michael Hayes.
2532
2533 2000-01-28 Richard Henderson <rth@cygnus.com>
2534
2535 * flow.c (find_basic_blocks): Remove do_cleanup argument.
2536 Break out that code ...
2537 (cleanup_cfg): ... here.
2538 (commit_one_edge_insertion): Detect a return instruction being
2539 emitted to an edge. Emit a barrier following; clear fallthru.
2540 (commit_edge_insertions): Verify CFG consistency.
2541 * function.c (expand_function_start): Kill unused variable.
2542 (expand_function_end): Likewise.
2543 (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
2544 to insert the epilogue.
2545
2546 * gcse.c (gcse_main): Adjust for find_basic_blocks change.
2547 (delete_null_pointer_checks): Likewise.
2548 * output.h: Likewise.
2549 * reg-stack.c (reg_to_stack): Likewise.
2550 * toplev.c (rest_of_compilation): Likewise. Run
2551 thread_prologue_and_epilogue_insns after rebuilding the CFG.
2552
2553 2000-01-28 Richard Henderson <rth@cygnus.com>
2554
2555 * Makefile.in (flow.o): Revert 24 Jan change.
2556 * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode
2557 FUNCTION_VALUE result to DECL_RESULT's mode.
2558
2559 * haifa-sched.c (schedule_insns): Don't recompute reg info
2560 after reload.
2561
2562 2000-01-28 Zack Weinberg <zack@wolery.cumb.org>
2563
2564 * configure.in: Make --enable-cpplib the default.
2565 * configure: Regenerate.
2566 * gcc.dg/990119-1.c: No longer expected to fail.
2567
2568 2000-01-28 Bernd Schmidt <bernds@cygnus.co.uk>
2569
2570 * jump.c (jump_optimize_1): Delete an optimization that is also done
2571 by merge_blocks in flow.
2572
2573 2000-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2574
2575 * diagnostic.c (build_message_string, output_printf,
2576 line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
2577 (build_location_prefix): Fix non-literal format string.
2578
2579 2000-01-27 Richard Henderson <rth@cygnus.com>
2580
2581 * alpha.md (trunctfsf2): New.
2582
2583 2000-01-27 Andrew Hobson <ahobson@eng.mindspring.net>
2584
2585 * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
2586
2587 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
2588
2589 * cppinit.c (cpp_handle_option): Recognize C++ comments under
2590 -std=gnu89.
2591 * cpplib.c (skip_block_comment, skip_line_comment): Split code
2592 out of...
2593 (skip_comment) ... here. Permit C++ comments in system
2594 headers always. Warn about C++ comments in user code under
2595 -std=gnu89 -pedantic.
2596 (copy_comment): Use skip_comment.
2597 (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
2598 return EOF.
2599 (consider_directive_while_skipping, do_else, do_endif): Call
2600 validate_else unconditionally.
2601 (validate_else): Check CPP_PEDANTIC here. Accept non-comment
2602 text after the conditional in a system header.
2603 * cpplib.h (struct cpp_buffer): Add flag
2604 warned_cplusplus_comments.
2605
2606 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
2607
2608 * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
2609 Use unshare_all_rtl_1.
2610 (unshare_all_rtl_again): New function.
2611 (unshare_all_rtl_1): New function split out of unshare_all_rtl.
2612
2613 * function.c (purge_addressof_1): Use unshare_all_rtl_again
2614 rather than resetting the 'used' flags ourself.
2615
2616 * toplev.c (rest_of_compilation): Add current_function_decl
2617 to the unshare_all_rtl call.
2618 * tree.h: Prototype unshare_all_rtl.
2619 * rtl.h: Prototype unshare_all_rtl_again here.
2620
2621 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
2622
2623 * genoutput.c (output_prologue): Include ggc.h in generated
2624 files.
2625 * Makefile.in (insn-output.o): Depends on ggc.h.
2626
2627 2000-01-27 Ian Dall <ian@sibyl.beware.dropbear.id.au>
2628 Hans-Peter Nilsson <hp@bitrange.com>
2629
2630 * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
2631 Remove redundant include of xm-ns32k.h.
2632 * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
2633 Remove redundant include of xm-ns32k.h.
2634 * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
2635 Remove redundant include of xm-ns32k.h.
2636 * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
2637
2638 * ns32k/ns32k.h: Update comment on multiply-add instructions.
2639 (TARGET_SWITCHES): Add documentation strings.
2640 (DWARF_FRAME_REGNUM): Override default definition.
2641 (REG_CLASS_CONTENTS): Add comments.
2642 (SUBSET_P): Format to reduce line length.
2643 (SMALL_REGISTER_CLASSES): Make a run time option.
2644 (GO_IF_NONINDEXED_ADDRESS): Reformat.
2645 (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
2646 dereferencing it. Braces to avoid "ambiguous else" were misplaced.
2647 (regclass_map): fix typo in comment.
2648 * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
2649 Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
2650 (trace, reg_or_mem_operand): Delete, unused function.
2651 (calc_address_cost): Small offsets are cheaper than large ones.
2652 (expand_block_move): Generate more efficient code when bytes is a
2653 known at compile time.
2654 * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
2655 (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
2656 instead of reg_or_mem_operand.
2657
2658 * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
2659 not general_operand. Similarly use "=rm" or stricter, not "=g".
2660 For input operands, use stricter constraints than "g" if not
2661 general_operand. Similarly use stricter predicate than
2662 "general_operand" when stricter constraints than "g" are present,
2663 except for matching constraints.
2664 (movstrsi): Use "memory_operand" for operands 0 and 1.
2665 (truncsiqi2, truncsihi2, trunchiqi2): Remove.
2666 (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
2667 not reg_or_mem_operand.
2668 (udivmoddisi4): Ditto.
2669 Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
2670 Use nonimmediate_operand for operand 3, not register_operand.
2671 (udivmoddiqi4_internal): Use register_operand for operand 1, not
2672 reg_or_mem_operand.
2673
2674 2000-01-27 Fred Fish <fnf@be.com>
2675
2676 * gthr-posix.h: Fix typo; compatibily -> compatibility.
2677 * gthr-single.h: Likewise.
2678 * gthr-solaris.h: Likewise.
2679 * gthr-vxworks.h: Likewise.
2680 * gthr-win32.h: Likewise.
2681 * gthr.h: Likewise.
2682
2683 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
2684
2685 * cppinit.c: Add " (cpplib)" to end of string printed by
2686 -v / --version.
2687
2688 2000-01-27 Richard Henderson <rth@cygnus.com>
2689
2690 * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
2691 testing for a signed comparison.
2692 (alpha_emit_floatuns): New.
2693 * alpha-protos.h: Declare it.
2694 * alpha.md (floatunsdisf2, floatunsdidf2): New.
2695 (extendsfdf2): Tidy.
2696
2697 2000-01-27 Jakub Jelinek <jakub@redhat.com>
2698
2699 * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
2700 no -g option specifying debugging format, default to -gstabs+.
2701
2702 Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
2703
2704 * calls.c (special_function_p): New argument fork_or_exec.
2705 (expand_call): When profile_arc_flag is set and the function
2706 is in the fork_or_exec group, call __bb_fork_func first.
2707 * libgcc2.c, _bb module (__bb_fork_func): New function.
2708 (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
2709 output file.
2710 * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
2711 * tree.h (special_function_p): Update prototype.
2712
2713 2000-01-26 Richard Henderson <rth@cygnus.com>
2714
2715 * alpha.c (alpha_split_tfmode_pair): New.
2716 * alpha-protos.h: Declare it.
2717 * alpha.md (abstf2, negtf2): New.
2718 (movtf insn): Add input G constraint.
2719 (movtf splitter): Use alpha_split_tfmode_pair.
2720
2721 2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2722
2723 * i386/cygwin.h: PROTO -> PARAMS.
2724
2725 2000-01-26 Jakub Jelinek <jakub@redhat.com>
2726
2727 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
2728 TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
2729 using _Qp_cmp/_Q_cmp and testing the return value.
2730 (print_operand): Call reverse_condition_maybe_unordered if
2731 we are handling CCFPmode or CCFPEmode.
2732 Handle ORDERED, UN* and LTGT comparisons.
2733 * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
2734 if not TARGET_HARD_QUAD.
2735 (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
2736 bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
2737 Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
2738 Adjust gen_b* calls so that they reflect return comparison of
2739 sparc_emit_float_lib_cmp.
2740
2741 2000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2742
2743 * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
2744 incoming operands array is large enough for one more operand.
2745 (alpha_emit_xfloating_arith): Likewise.
2746
2747 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
2748
2749 * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
2750 file with one line and no trailing newline.
2751 Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
2752 * fixinc/fixtests.c (machine_name_test): Fix fencepost error
2753 checking if the match is on the line.
2754 * fixinc/gnu-regex.c: Provide regerror not __regerror.
2755
2756 2000-01-25 Richard Henderson <rth@cygnus.com>
2757
2758 * sparc.c (output_cbranch): Fix accidental squashing of the
2759 fp branch pre-delay nop.
2760
2761 2000-01-25 Richard Henderson <rth@cygnus.com>
2762
2763 * tree.def (UNNE_EXPR): Remove.
2764 * c-typeck.c (build_binary_op): Don't handle it.
2765 * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
2766
2767 * rtl.def (UNNE): Remove.
2768 (LTGT): Add.
2769 * jump.c (reverse_condition): Update accordingly.
2770 (swap_condition): Likewise.
2771 (comparison_dominates_p): Handle unordered comparisons.
2772 (reverse_condition_maybe_unordered): New.
2773 * rtl.h (reverse_condition_maybe_unordered): Declare.
2774
2775 * sparc.c (select_cc_mode): Update for UNNE/LTGT.
2776 (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
2777 * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs.
2778 * sparc.md (bltgt): New.
2779
2780 2000-01-25 Nick Clifton <nickc@redhat.com>
2781
2782 * emit-rtl.c (emit_insn): Only check machine class insns for
2783 improper emission of a RETURN.
2784
2785 2000-01-25 Richard Henderson <rth@cygnus.com>
2786
2787 * Makefile.in (flow.o): Depend on $(EXPR_H).
2788 * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
2789 duplicate the structure of diddle_return_value for keeping regs live.
2790
2791 2000-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2792
2793 * loop.c (current_loop_info): Delete.
2794 (consec_sets_invariant_p): Add loop argument, update callers.
2795 (get_condition_for_loop): Likewise.
2796 (count_nonfixed_reads, update_giv_derive): Likewise.
2797 (simplify_giv_expr, general_induction_var): Likewise.
2798 (consec_sets_giv, recombine_givs): Likewise.
2799 (move_movables): Delete loop_start and loop_end arguments,
2800 add loop argument, and update callers.
2801 (find_mem_givs, check_final_value): Likewise.
2802 (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
2803 (loop_invariant_p): Rename from invariant_p, add loop argument, and
2804 update callers.
2805 (basic_induction_var): Add loop argument, delete loop_level argument,
2806 and update callers.
2807 * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
2808 add loop argument, and update callers.
2809 (find_splittable_regs, find_splittable_givs): Likewise.
2810 (reg_dead_after_loop, loop_find_equiv_value): Likewise.
2811 (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
2812 (biv_total_increment): Delete loop_start and loop_end arguments;
2813 update callers.
2814 (precondition_loop_p): Delete loop_start and loop_info arguments;
2815 update callers.
2816 * loop.h (get_condition_for_loop): Add loop argument.
2817 (biv_total_increment): Delete loop_start and loop_end arguments.
2818 (precondition_loop_p): Delete loop_start and loop_info arguments;
2819 add loop argument.
2820 (final_biv_value): Delete loop_start and loop_end arguments;
2821 add loop argument.
2822 (final_giv_value, back_branch_in_range_p): Likewise.
2823
2824 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
2825
2826 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
2827
2828 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
2829
2830 * Makefile.in (c-gperf.h) : Change the "See" pointer to
2831 point to the new "generated_files" doc.
2832
2833 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
2834
2835 * config/fp-bit.c (_unord_f2): Fix typo.
2836
2837 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
2838
2839 * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
2840 c-typeck.c, objc/objc-act.c: Remove all references to obstack
2841 functions obsoleted by GC, such as push_obstacks_nochange,
2842 end_temporary_allocation, savealloc, saveable_tree_cons, etc.
2843 and code which existed only to decide whether or not to call
2844 them. Remove now-unused NESTED argument from start_function;
2845 all callers changed. Do not change behavior based on ggc_p.
2846 The use of the ixp_obstack in c-iterate.c and the util_obstack
2847 in objc/objc-act.c remain; these are not obsoleted by garbage
2848 collection.
2849 * c-tree.h: Update prototype for start_function.
2850
2851 * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
2852
2853 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
2854
2855 * config/mips/mips.md (zero_extendsidi2_internal): Disable for
2856 mips16.
2857
2858 2000-01-25 Richard Henderson <rth@cygnus.com>
2859
2860 * sparc-protos.h (select_cc_mode): Declare.
2861 * sparc.c (select_cc_mode): New. Handle unordered compares.
2862 (output_cbranch): Always reverse via code change. Handle
2863 unordered compares. Factor tests and string updates.
2864 * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
2865 (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
2866 * sparc.md (bunordered, bordered): New.
2867 (bungt, bunlt, buneq, bunge, bunle): New.
2868
2869 2000-01-25 Richard Henderson <rth@cygnus.com>
2870
2871 * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
2872 * ggc-common.c (ggc_add_rtx_varray_root): New.
2873 (ggc_mark_rtx_varray): New.
2874 (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr
2875 functions down below ggc_mark_foo.
2876 * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
2877
2878 2000-01-25 Richard Henderson <rth@cygnus.com>
2879
2880 * alpha.c (secondary_reload_class): Don't allocate a secondary
2881 for integral mode memories into FLOAT_REGS. Rearrange the more
2882 complicated memory expression inward.
2883
2884 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
2885
2886 * inclhack.def: Fixes to play nicer with FreeBSD, and
2887 corrections to comments.
2888 (cxx_unready): Add select expression.
2889 (irix_sockaddr): Add bypass expression.
2890 (machine_ansi_h_va_list): New fix.
2891 (stdio_va_list): No need to edit _BSD_VA_LIST_.
2892 Split out addition of "#include <stdarg.h>" to...
2893 (stdio_stdarg_h): ... here.
2894 (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply
2895 to stdlib.h also. Do not munge _BSD_SIZE_T_.
2896 (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
2897 size_t.
2898 (ultrix_ifdef): Tighten up select expression.
2899
2900 * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of
2901 re_ct and max_mach to avoid use of shell. Make printed names
2902 match names in inclhack.def. Use static copyright date.
2903 Don't count c_test and test expressions as requiring regex_t
2904 slots. Add some commentary.
2905 * inclhack.tpl: Do not include the 'This script contains N
2906 fixup scripts' line if PROGRAM is defined. Use static
2907 copyright date.
2908
2909 2000-01-24 Jason Merrill <jason@casey.cygnus.com>
2910
2911 * dwarf2out.c: include "varray.h", not dyn-string.h.
2912 (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
2913 (addr_const_to_string, addr_to_string): Lose.
2914 (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
2915 (struct dw_val_struct): val_addr is now an rtx.
2916 (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
2917 (used_rtx_varray): New varray.
2918 (dwarf2out_init): Initialize it.
2919 (save_rtx): New fn.
2920 (mem_loc_descriptor, add_const_value_attribute): Call it instead of
2921 addr_to_string.
2922 * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
2923 sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
2924 * Makefile.in (dwarf2out.o): Update dependencies.
2925
2926 2000-01-24 Richard Henderson <rth@cygnus.com>
2927
2928 * i386.c (i386_dwarf_output_addr_const): New.
2929 * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
2930
2931 * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
2932 if defined.
2933 * dwarfout.c (output_mem_loc_descriptor): Likewise.
2934 * i386.c (i386_simplify_dwarf_addr): New.
2935 * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
2936
2937 Mon Jan 24 16:56:10 2000 Jim Wilson <wilson@cygnus.com>
2938
2939 * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
2940 TYPE_STUB_DECL is NULL.
2941
2942 2000-01-24 Richard Henderson <rth@cygnus.com>
2943
2944 * builtins.c (expand_tree_builtin): Move ...
2945 * c-common.c (expand_tree_builtin): ... here.
2946
2947 2000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2948
2949 * loop.h (LOOP_INFO): New accessor macro.
2950 * basic-block.h (struct loop): Rename field `info' to `aux'.
2951 * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
2952 (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
2953 * unroll.c (loop_iterations, unroll_loop): Likewise.
2954
2955 2000-01-24 Christopher Faylor <cgf@cygnus.com>
2956
2957 * config/i386/t-cygwin: Accomodate new winsup directory layout
2958 when searching for include files.
2959
2960 2000-01-24 Richard Henderson <rth@cygnus.com>
2961
2962 * rtl.def: Add unordered fp comparisions.
2963 * tree.def: Likewise.
2964 * tree.h: Add ISO C 9x unordered fp comparision builtins.
2965
2966 * builtins.c (expand_tree_builtin): New function.
2967 * c-typeck.c (build_function_call): Use it.
2968 (build_binary_op): Support unordered compares.
2969 * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
2970
2971 * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
2972 (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
2973 * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
2974 (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
2975 * jump.c (reverse_condition): Don't abort for UNLE etc, but
2976 return UNKNOWN.
2977 (swap_condition): Handle unordered compares.
2978 (thread_jumps): Check can_reverse before reversing.
2979 * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be
2980 reversed for FP.
2981
2982 * optabs.c (can_compare_p): New argument CODE. Verify branch or
2983 setcc is present before acking for cmp_optab. Update all callers.
2984 (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
2985 * expmed.c (do_cmp_and_jump): Update for can_compare_p.
2986 * expr.c (expand_expr): Likewise. Support unordered compares.
2987 (do_jump, do_store_flag): Likewise.
2988 * expr.h (enum libfunc_index): Add unordered compares.
2989
2990 * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
2991 (DPBIT_FUNCS): Add _unord_df.
2992 * config/fp-bit.c (_unord_f2): New.
2993 * fp-test.c (main): Try unordered compare builtins.
2994
2995 * alpha-protos.h (alpha_fp_comparison_operator): Declare.
2996 * alpha.c (alpha_comparison_operator): Check mode properly.
2997 (alpha_swapped_comparison_operator): Likewise.
2998 (signed_comparison_operator): Likewise.
2999 (alpha_fp_comparison_operator): New.
3000 (alpha_emit_conditional_branch): Handle unordered compares.
3001 * alpha.h (PREDICATE_CODES): Update.
3002 * alpha.md (fp compares): Use alpha_fp_comparison_operator.
3003 (bunordered, bordered): New.
3004
3005 2000-01-24 Richard Henderson <rth@cygnus.com>
3006
3007 * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
3008 * alpha.md (movtf): New expander, insn, and splitter.
3009
3010 Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz>
3011
3012 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
3013 dead registers.
3014
3015 Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz>
3016
3017 * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
3018 (FIXED_REGISTERS, CALL_USED_REGISTERS,
3019 REG_ALLOC_ORDER): Add frame pointer
3020 (FRAME_POINTER_REGNUM): Set to 20
3021 (HARD_FRAME_POINTER_REGNUM): New macro.
3022 (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
3023 to HARD_FRAME_POINTER.
3024 (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
3025 (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
3026 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
3027 (HI_REGISTER_NAMES): Add "frame".
3028 (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
3029 (debug_reg): Handle FRAME_POINTER_REGNUM.
3030 (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
3031 GENERAL_REGS and INDEX_REGS.
3032 * i386.c (SAVED_REGS_FIRST): new macro.
3033 (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
3034 (ix86_decompose_address, memory_address_length): Likewise.
3035 (regclass_map): Add frame pointer.
3036 (call_insn_operand): Handle frame_pointer_rtx.
3037 (reg_no_sp_operand): Likewise.
3038 (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
3039 (print_operand, legitimize_pic_address): Fix formating.
3040 (ix86_compute_frame_size): Make static, update prototype, new
3041 parameters padding1, padding2, use ix86_nsaved_regs, use
3042 stack_alignment_needed.
3043 (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
3044 to HARD_FRAME_POINTER_REGNUM conversions.
3045 (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
3046 (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
3047 (print_reg): Abort on FRAME_POINTER_REGNUM
3048
3049 Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz>
3050
3051 * i386.h (PREDICATE_CODES): Add aligned_operand.
3052 * i386.c (aligned_operand): New function.
3053 (ix86_aligned_p): Kill.
3054 * i386.md (movhi_1): Emit mov for aligned operands.
3055 (promoting peep2s): Use aligned_operand.
3056
3057 2000-01-23 Zack Weinberg <zack@wolery.cumb.org>
3058
3059 * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
3060 expression to allow underscores in macro names.
3061 (fix_char_macro_defines): Increment scanning pointer.
3062
3063 2000-01-23 Richard Henderson <rth@cygnus.com>
3064
3065 * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
3066 * alpha/osf5.h: New file.
3067 * configure.in (alpha-*-osf5): Add it to tm_file.
3068
3069 * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
3070
3071 * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
3072 (alpha_emit_xfloating_cvt, function_arg): Declare.
3073 * alpha.c (alpha_emit_conditional_branch): Call
3074 alpha_emit_xfloating_compare for TFmode compares.
3075 (alpha_lookup_xfloating_lib_func): New.
3076 (alpha_compute_xfloating_mode_arg): New.
3077 (alpha_emit_xfloating_libcall): New.
3078 (alpha_emit_xfloating_arith): New.
3079 (alpha_emit_xfloating_compare): New.
3080 (alpha_emit_xfloating_cvt): New.
3081 (print_operand): Add default abort case.
3082 (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
3083 * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
3084 (BIGGEST_ALIGNMENT): Increase to 128 bits.
3085 (RETURN_IN_MEMORY): True for TF/TCmode.
3086 (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
3087 (FUNCTION_ARG): Move to function_arg.
3088 (FUNCTION_ARG_PASS_BY_REFERENCE): New.
3089 (ASM_OUTPUT_LONG_DOUBLE): New.
3090 (ASM_OUTPUT_DOUBLE): Always output bits.
3091 * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
3092 (fix_trunctfdi2, floatditf2, floatunsditf2): New.
3093 (extenddftf2, trunctfdf2): New.
3094
3095 2000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
3096
3097 * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
3098 * config/sparc/sol2.h: ... here.
3099
3100 2000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3101
3102 * basic-block.h (struct loops): New field `levels'.
3103 * flow.c (flow_loops_level_compute): Traverse all outer loops.
3104 (flow_loop_level_compute): Initialise level to 1.
3105 (flow_loops_find): Set loops->levels.
3106 (flow_loops_dump): Print loops->levels.
3107
3108 2000-01-23 Richard Henderson <rth@cygnus.com>
3109
3110 * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
3111 (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
3112
3113 2000-01-23 Richard Henderson <rth@cygnus.com>
3114
3115 * i386.c (dbx_register_map, svr4_dbx_register_map): New.
3116 * i386.h (DBX_REGISTER_NUMBER): Use them.
3117 * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
3118 * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
3119 * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
3120 * i386/sequent.h: Kill incorrect comment.
3121
3122 2000-01-23 Mark Mitchell <mark@codesourcery.com>
3123
3124 * ggc-page.c (struct page_entry): Make `context_depth' an
3125 `unsigned short'.
3126 (struct globals): Likewise.
3127
3128 2000-01-23 Clinton Popetz <cpopetz@cygnus.com>
3129
3130 * loop.c (check_dbra_loop): When checking a loop for
3131 reversability, check the source of any stores to ensure
3132 they don't depend on an initial value.
3133
3134 2000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3135
3136 * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
3137
3138 2000-01-22 Zack Weinberg <zack@wolery.cumb.org>
3139
3140 * fixinc/fixincl.c: Move declarations of 'pz_fname' and
3141 'pz_scan' into scope of entire function. Only affects
3142 compiles with -DDEBUG.
3143
3144 2000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
3145
3146 * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
3147 section naming to that prior to 2000-01-07 patch.
3148 * config/mips/elf.h (UNIQUE_SECTION): Ditto.
3149 * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
3150 * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
3151 * config/i386/interix.c (UNIQUE_SECTION): Ditto.
3152 * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
3153
3154 2000-01-22 Bernd Schmidt <bernds@cygnus.co.uk>
3155
3156 * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
3157 constant.
3158
3159 2000-01-21 Jim Wilson <wilson@cygnus.com>
3160
3161 * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
3162 * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
3163
3164 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
3165
3166 * cpphash.c (change_newlines): Delete function.
3167 (struct argdata): Delete 'newlines' and 'use_count' fields.
3168 (macroexpand): Remove code referencing those fields.
3169
3170 2000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3171
3172 * loop.c (loops_info): New variable.
3173 (loop_optimize): Allocate loops->array and free it on exit.
3174 Allocate memory for loops_info and assign to each loop,
3175 replacing alloca.
3176 (find_and_verify_loops): Do not allocate loops->array.
3177
3178 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
3179
3180 * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
3181
3182 2000-01-21 Jakub Jelinek <jakub@redhat.com>
3183
3184 * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
3185 pseudos if expanded after first flow.
3186 (movdi_pic_label_ref): Likewise.
3187
3188 2000-01-20 Richard Henderson <rth@cygnus.com>
3189
3190 * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
3191
3192 2000-01-20 Zack Weinberg <zack@wolery.cumb.org>
3193
3194 * Makefile.in (fixinc.sh): Depend on specs.
3195 * fixinc/Makefile.in: Add rule to create machname.h.
3196 (fixlib.o): Depend on machname.h.
3197 * fixinc/fixtests.c (machine_name): New test.
3198 * fixinc/fixfixes.c (machine_name): New fix.
3199 * fixinc/fixlib.c (mn_get_regexps): New helper function for
3200 the machine_name test and fix.
3201 * fixinc/fixlib.h: Prototype it.
3202 * fixinc/inclhack.def (machine_name): Use the C test and fix.
3203 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
3204
3205 * gcc.c (do_spec_1) [case P]: Take care not to create
3206 identifiers with three leading or trailing underscores.
3207
3208 * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
3209 (fixincl): Don't specify libraries twice on link line.
3210 (gnu-regex.o): Remove special rule.
3211 * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
3212 defined by config.h. Do not define _REGEX_RE_COMP.
3213 (regcomp): Allocate and initialize a fastmap.
3214 * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
3215
3216 2000-01-20 Brad Lucier <lucier@math.purdue.edu>
3217
3218 * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
3219
3220 2000-01-19 Richard Henderson <rth@cygnus.com>
3221
3222 * flow.c (propagate_block): Replace FIRST, LAST and BNUM
3223 arguments with BB. Update all callers. Tidy line wrapping.
3224
3225 2000-01-19 Clinton Popetz <cpopetz@cygnus.com>
3226
3227 * emit-rtl.c (try_split): Return last_insn if we split the
3228 last_insn.
3229
3230 Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz>
3231
3232 * i386-protos.h (ix86_compute_frame_size): Remove prototype.
3233 (ix86_initial_elimination_offset): Declare.
3234 * i386.c (ix86_nsaved_regs): Break out from ...
3235 (ix86_can_use_return_insn_p): ... here.
3236 (ix86_emit_save_regs): Break out from ...
3237 (ix86_expand_prologue): ... here.
3238 (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
3239 out from ...
3240 (ix86_expand_epilogue): ... here.
3241 (ix86_compute_frame_size): Make static, add prototype.
3242 (ix86_initial_elimination_offset): Break out from ...
3243 * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
3244
3245 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3246
3247 * recog.h (OUT_FCN): Delete.
3248
3249 * vax.md: Call `get_insn_template' instead of OUT_FCN.
3250
3251 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3252
3253 * cppalloc.c: PROTO -> PARAMS.
3254 * cpperror.c: Likewise.
3255 * cppfiles.c: Likewise.
3256 * cpplib.c: Likewise.
3257 * cpplib.h: Likewise.
3258
3259 * config/arm/arm-protos.h: PROTO -> PARAMS.
3260 * config/arm/arm.c: Likewise.
3261 * config/c4x/c4x.c: Likewise.
3262 * config/fr30/fr30-protos.h: Likewise.
3263 * config/nextstep.c: Likewise.
3264 * config/pa/pa.c: Likewise.
3265 * config/pj/pj.c: Likewise.
3266 * config/rs6000/rs6000.c: Likewise.
3267 * config/v850/v850-protos.h: Likewise.
3268 * config/v850/v850.c: Likewise.
3269
3270 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3271
3272 * i370-protos.h: New file.
3273
3274 * i370.c: Include tm_p.h. Fix compile time warnings.
3275
3276 * i370.h: Move prototypes to i370-protos.h. Fix compile time
3277 warnings.
3278
3279 * i370.md: Likewise.
3280
3281 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3282
3283 * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
3284 (target_isinf, target_isnan, eisnan): Mark parameter with
3285 ATTRIBUTE_UNUSED.
3286 (eiisinf): Wrap in INFINITY.
3287 (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
3288 (ibmtoe): Remove unused variable `rndsav'.
3289
3290 Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3291
3292 * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
3293 (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
3294
3295 2000-01-19 Zack Weinberg <zack@wolery.cumb.org>
3296
3297 * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
3298 * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
3299 (fix_char_macro_defines, fix_char_macro_uses): New functions.
3300
3301 * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
3302 Recognize Emacs mode markers also.
3303 * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
3304 C++ comments in C++ headers. Call is_cxx_header only if
3305 necessary.
3306
3307 * fixinc/inclhack.def (avoid_bool): Add select for the problem and
3308 bypass for ncurses.
3309 (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
3310 (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
3311 ... these, which use the new C fixes.
3312 (math_exception): Escape literal '+' in bypass expression.
3313
3314 * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
3315 Regenerate.
3316
3317 2000-01-19 Geoff Keating <geoffk@cygnus.com>
3318
3319 * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
3320 inside the MEM.
3321
3322 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3323
3324 * loop.c (loop_optimize): Allocate loop_info structure for each loop
3325 prior to calling scan_loop.
3326
3327 Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3328
3329 * sh.c (find_barrier, gen_block_redirect): Fix indentation.
3330 (split_branches, calc_live_regs): Likewise.
3331
3332 Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3333
3334 * sh.md (fpu_single, fp_mode): New attributes.
3335
3336 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3337
3338 * loop.c (current_loop_info): Renamed from loop_info_data
3339 and changed to a pointer.
3340 (loop_optimize): Allocate loop_info structure for each loop
3341 and initialise to zero.
3342 (scan_loop): Set current_loop_info.
3343
3344 * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
3345 on iteration_var.
3346
3347 2000-01-19 Richard Henderson <rth@cygnus.com>
3348
3349 * stupid.c: Die die die.
3350 * Makefile.in (OBJS): Remove stupid.o.
3351 (stupid.o): Likewise.
3352
3353 * except.c (emit_eh_context): Don't emit USEs for stupid.
3354 * explow.c (probe_stack_range): Likewise.
3355 * flags.h (obey_regdecls): Remove.
3356 * flow.c (find_basic_blocks): Don't run try_merge_blocks
3357 when not optimizing.
3358 (life_analysis): Limit data collection when not optimizing.
3359 (mark_regs_live_at_end): Always mark the return value registers.
3360 (mark_used_regs): Remove dummy RETURN case.
3361 (print_rtl_with_bb): Don't consult obey_regdecls.
3362 * function.c (use_variable, use_variable_after): Remove.
3363 (assign_parms): Consult optimize not obey_regdecls.
3364 (expand_function_start): Don't emit USEs for stupid.
3365 (expand_function_end): Likewise.
3366 * global.c (build_insn_chain): Export.
3367 * integrate.c (expand_inline_function): Kill return-value USE
3368 handling code.
3369 * jump.c (jump_optimize_1): Do simple jump optimizations and
3370 dead code elimination.
3371 (calculate_can_reach_end): Remove check_deleted argument.
3372 (delete_insn): Patch out insns even when not optimizing.
3373 * local-alloc.c (block_alloc): Don't do tying when not optimizing.
3374 * rtl.h (use_variable, use_variable_after): Remove declarations.
3375 (build_insn_chain): Declare.
3376 * stmt.c (expand_value_return): Don't emit USEs for stupid.
3377 (expand_end_bindings): Likewise.
3378 (expand_decl): Likewise. Consult optimize not obey_regdecls.
3379 * toplev.c (obey_regdecls): Remove.
3380 (rest_of_compilation): Don't set it. Kill stupid in favour of
3381 flow1, local-alloc, and reload.
3382 (main): Don't set obey_regdecls.
3383
3384 * config/nextstep.c (handle_pragma): Likewise.
3385
3386 * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
3387
3388 * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
3389
3390 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3391
3392 * alpha-protos.h: PROTO -> PARAMS.
3393 * alpha.c: Likewise.
3394 * elf.h: Likewise.
3395 * h8300.c: Likewise.
3396 * i386-protos.h: Likewise.
3397 * i386.c: Likewise.
3398 * m32r-protos.h: Likewise.
3399 * m32r.c: Likewise.
3400 * mips.c: Likewise.
3401 * mips.md: Likewise.
3402 * gmon-sol2.c: Likewise.
3403 * sparc.c: Likewise.
3404
3405 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3406
3407 * ns32k-protos.h: New file.
3408
3409 * ns32k.c: Fix compile time warnings.
3410
3411 * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time
3412 warnings.
3413
3414 * ns32k.md: Likewise.
3415
3416 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3417
3418 * vax-protos.h: New file.
3419
3420 * vax.c: Fix compile time warnings.
3421
3422 * vax.h: Move prototypes to vax-protos.h. Fix compile time
3423 warnings.
3424
3425 * vax.md: Likewise.
3426
3427 * vaxv.md: Likewise.
3428
3429 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3430
3431 * romp-protos.h: New file.
3432
3433 * romp.c: Fix compile time warnings.
3434
3435 * romp.h: Move prototypes to romp-protos.h. Fix compile time
3436 warnings.
3437
3438 * romp.md: Likewise.
3439
3440 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3441
3442 * we32k-protos.h: New file.
3443
3444 * we32k.c: Fix compile time warnings.
3445
3446 * we32k.h: Move prototypes to we32k-protos.h. Fix compile time
3447 warnings.
3448
3449 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3450
3451 * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
3452
3453 * except.c (eh_regs): Likewise.
3454
3455 * final.c (output_operand): Likewise.
3456
3457 * fold-const.c (target_isinf, target_isnan): Likewise.
3458
3459 Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
3460
3461 * i386.h (BIGGEST_ALIGNMENT): Set to 128.
3462 (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
3463
3464 * i386.md (memstr): Do not use rep stosb for counts divisible by 4
3465 when optimize_size.
3466 (clrstrsi): Rewrite.
3467 (strsethi, strsetqi): New expanders.
3468 (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
3469 (cmpstrsi): Emit compare insn before cmpstrsi_1
3470 (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
3471 (strlensi_1): Likewise.
3472 (cmpstrsi_1): Likewise; do not output compare.
3473 (strlen expander): Do not unroll when optimizing for size.
3474 (*subsi3_carry): Rename to subsi3_carry
3475 (addqi3_cc): New pattern.
3476 * i386.h (processor_costs): Add move_ratio field.
3477 (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
3478 * i386.c (*_cost): Set move_ratio.
3479 (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
3480 (x86_expand_strlensi_1): Rewrite the main loop.
3481
3482 2000-01-17 Richard Henderson <rth@cygnus.com>
3483
3484 * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
3485 * cse.c (find_comparison_args, fold_rtx): Likewise.
3486 * integrate.c (subst_constants): Likewise.
3487 * loop.c (get_condition): Likewise.
3488
3489 * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
3490
3491 * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
3492
3493 2000-01-18 Martin v. Löwis <loewis@informatik.hu-berlin.de>
3494
3495 * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
3496 (RESTORE_WARN_FLAGS): Unpack it.
3497 Change semantic type of extension to ttype.
3498 * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
3499 * c-parse.y, c-parse.c, objc/objc-parse.y,
3500 objc/objc-parse.c: Regenerate.
3501
3502 2000-01-17 Zack Weinberg <zack@wolery.cumb.org>
3503
3504 * fixinc/fixlib.c: Add copyright notice.
3505 (compile_re): New function.
3506 * fixinc/fixlib.h: Prototype compile_re.
3507
3508 * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
3509 Use compile_re to compile regular expressions.
3510
3511 * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
3512 where the pattern matched.
3513
3514 * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
3515 use 'replace'.
3516 (ultrix_ansi_compat): Likewise.
3517 (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
3518 add egrep test.
3519 (interactv_add2, interactv_add3): Delete.
3520 (x11_sprintf): Don't use filename glob.
3521 * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
3522 Regenerate.
3523
3524 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3525
3526 * print-rtl.c: PROTO -> PARAMS.
3527 * real.c: Likewise.
3528 * reg-stack.c: Likewise.
3529 * resource.c: Likewise.
3530 * sdbout.h: Likewise.
3531 * simplify-rtx.c: Likewise.
3532 * stor-layout.c: Likewise.
3533 * stupid.c: Likewise.
3534 * xcoffout.c: Likewise.
3535 * xcoffout.h: Likewise.
3536
3537 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3538
3539 * toplev.c: PROTO -> PARAMS.
3540 * toplev.h: Likewise.
3541 * tree.c: Likewise.
3542 * tree.h: Likewise.
3543 * unroll.c: Likewise.
3544 * varasm.c: Likewise.
3545 * varray.c: Likewise.
3546 * varray.h: Likewise.
3547
3548 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3549
3550 * reload.c: PROTO -> PARAMS.
3551 * reload.h: Likewise.
3552 * reload1.c: Likewise.
3553 * reorg.c: Likewise.
3554 * resource.h: Likewise.
3555 * rtl.c: Likewise.
3556 * rtl.h: Likewise.
3557 * rtlanal.c: Likewise.
3558 * sbitmap.h: Likewise.
3559 * sdbout.c: Likewise.
3560 * stack.h: Likewise.
3561 * stmt.c: Likewise.
3562 * system.h: Likewise.
3563
3564 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3565
3566 * machmode.h: PROTO -> PARAMS.
3567 * mbchar.h: Likewise.
3568 * mips-tdump.c: Likewise.
3569 * mips-tfile.c: Likewise.
3570 * optabs.c: Likewise.
3571 * output.h: Likewise.
3572 * prefix.c: Likewise.
3573 * profile.c: Likewise.
3574 * protoize.c: Likewise.
3575 * real.h: Likewise.
3576 * recog.c: Likewise.
3577 * recog.h: Likewise.
3578 * regclass.c: Likewise.
3579 * regmove.c: Likewise.
3580 * regs.h: Likewise.
3581
3582 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3583
3584 * ggc-common.c: PROTO -> PARAMS.
3585 * ggc-page.c: Likewise.
3586 * ggc-simple.c: Likewise.
3587 * ggc.h: Likewise.
3588 * global.c: Likewise.
3589 * graph.c: Likewise.
3590 * gthr-win32.h: Likewise.
3591 * haifa-sched.c: Likewise.
3592 * halfpic.h: Likewise.
3593 * integrate.c: Likewise.
3594 * integrate.h: Likewise.
3595 * jump.c: Likewise.
3596 * lcm.c: Likewise.
3597 * local-alloc.c: Likewise.
3598 * loop.c: Likewise.
3599 * loop.h: Likewise.
3600
3601 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3602
3603 * genattr.c: PROTO -> PARAMS.
3604 * genattrtab.c: Likewise.
3605 * gencheck.c: Likewise.
3606 * gencodes.c: Likewise.
3607 * genconfig.c: Likewise.
3608 * genemit.c: Likewise.
3609 * genextract.c: Likewise.
3610 * genflags.c: Likewise.
3611 * gengenrtl.c: Likewise.
3612 * genopinit.c: Likewise.
3613 * genoutput.c: Likewise.
3614 * genpeep.c: Likewise.
3615 * genrecog.c: Likewise.
3616
3617 2000-01-16 Mark Mitchell <mark@codesourcery.com>
3618
3619 * tree.h (BINFO_VPTR_FIELD): Augment documentation.
3620
3621 2000-01-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
3622
3623 * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
3624 * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
3625 * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
3626 * configure, config.in: Rebuilt.
3627
3628 2000-01-16 Zack Weinberg <zack@wolery.cumb.org>
3629
3630 * config/i386/i386.md: Add peephole to merge successive stack
3631 adjusts.
3632
3633 Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com)
3634
3635 * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
3636 instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK
3637 when walking backwards to find all the parameter loads when
3638 the basic block ends in a call.
3639
3640 2000-01-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3641
3642 * loop.c (this_loop_info): Delete.
3643 (uid_loop): Add in place of uid_loop_num. All uses updated.
3644 (loop_number_exit_count): Delete and replace with entry in loop
3645 structure. All uses updated.
3646 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
3647 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
3648 (loop_outer_loop): Likewise.
3649 (loop_invalid, loop_number_exit_labels): Likewise.
3650 (loop_used_count_register): Delete and replace with entry in
3651 loop_info structure.
3652 (find_and_verify_loops): Add loops argument.
3653 (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
3654 loop_end, etc. arguments with loop structure pointer. All callers
3655 changed.
3656 (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
3657 (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
3658 (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
3659 (insert_bct): Likewise.
3660 (basic_induction_var): New argument level.
3661 * loop.h (struct loop_info): Delete fields num, loops_enclosed,
3662 vtop, and cont. Add used_count_register.
3663 (uid_loop): Delete declaration.
3664 (loop_number_exit_count): Likewise.
3665 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
3666 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
3667 (loop_outer_loop, loop_used_count_register): Likewise.
3668 (loop_invalid, loop_number_exit_labels): Likewise.
3669 (unroll_loop): Replace loop_start and loop_end arguments
3670 with loop structure pointer.
3671 (loop_precondition_p, loop_iterations): Likewise.
3672 Include basic-block.h.
3673 * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
3674 with loop structure pointer.
3675 (loop_precondition_p, loop_iterations): Likewise.
3676 * basic-block.h (struct loop): New entries vtop, cont,
3677 cont_dominator, start, end, top, scan_start, exit_labels,
3678 exit_count.
3679 * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
3680
3681 2000-01-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3682
3683 * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
3684
3685 2000-01-14 Nathan Sidwell <sidwell@codesourcery.com>
3686
3687 * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
3688
3689 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3690
3691 * pdp11-protos.h: New file.
3692
3693 * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile
3694 time warnings.
3695
3696 * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time
3697 warnings.
3698
3699 * pdp11.md: Likewise.
3700
3701 * 2bsd.h: Likewise.
3702
3703 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3704
3705 * mn10300-protos.h: New file.
3706
3707 * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile
3708 time warnings.
3709
3710 * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time
3711 warnings.
3712
3713 * mn10300.md: Likewise.
3714
3715 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3716
3717 * mn10200-protos.h: New file.
3718
3719 * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile
3720 time warnings.
3721
3722 * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time
3723 warnings.
3724
3725 * mn10200.md: Likewise.
3726
3727 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3728
3729 * h8300-protos.h: New file.
3730
3731 * h8300.c: Include tm_p.h. Add static prototypes. Fix compile
3732 time warnings.
3733
3734 * h8300.h: Move prototypes to h8300-protos.h. Fix compile time
3735 warnings.
3736
3737 * h8300.md: Likewise.
3738
3739 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3740
3741 * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
3742 (asm_emit_uninitialised): Likewise.
3743
3744 2000-01-13 Gavin Romig-Koch <gavin@cygnus.com>
3745
3746 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
3747 * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
3748
3749 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
3750
3751 * config/mips/mips.c (override_options): Don't turn on extra
3752 alignment for mips16.
3753
3754 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
3755
3756 * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
3757 eabi, and make sure queued POSTINCREMENT rtl is emitted at
3758 the right point.
3759
3760 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
3761
3762 * builtins.c (PAD_VARARGS_DOWN): Define.
3763 (std_expand_builtin_va_arg): Use the above macro.
3764 * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
3765 * tm.texi (Register Arguments): Document the above macro.
3766
3767 2000-01-14 Nick Clifton <nickc@cygnus.com>
3768
3769 * emit-rtl.c (emit_insn): If checking is enabled, make sure
3770 that this function has not been used to emit a jump
3771 instruction.
3772
3773 * jump.c (return_jump_1): Cope with being passed a null rtx.
3774
3775 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3776
3777 * eh-common.h: PROTO -> PARAMS.
3778 * emit-rtl.c: Likewise.
3779 * errors.c: Likewise.
3780 * errors.h: Likewise.
3781 * except.c: Likewise.
3782 * except.h: Likewise.
3783 * explow.c: Likewise.
3784 * expmed.c: Likewise.
3785 * expr.c: Likewise.
3786 * expr.h: Likewise.
3787 * final.c: Likewise.
3788 * fix-header.c: Likewise.
3789 * flow.c: Likewise.
3790 * fold-const.c: Likewise.
3791 * function.c: Likewise.
3792 * function.h: Likewise.
3793 * gcc.c: Likewise.
3794 * gcov-io.h: Likewise.
3795 * gcov.c: Likewise.
3796 * gcse.c: Likewise.
3797
3798 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3799
3800 * sh-protos.h: New file.
3801
3802 * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
3803 Add static prototypes. Fix compile time warnings.
3804
3805 * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings.
3806 * sh.md: Likewise.
3807 * elf.h: Likewise.
3808
3809 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3810
3811 * arc-protos.h: New file.
3812
3813 * arc.c: Include tm_p.h. Add static prototypes. Fix compile
3814 time warnings.
3815
3816 * arc.h: Move prototypes to arc-protos.h. Fix compile time
3817 warnings.
3818
3819 * arc.md: Likewise.
3820
3821 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3822
3823 * dsp16xx-protos.h: New file.
3824
3825 * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile
3826 time warnings.
3827
3828 * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time
3829 warnings.
3830
3831 * dsp16xx.md: Likewise.
3832
3833 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3834
3835 * convex-protos.h: New file.
3836
3837 * convex.c: Include tm_p.h. Add static prototypes. Fix compile
3838 time warnings.
3839
3840 * convex.h: Move prototypes to convex-protos.h. Fix compile time
3841 warnings.
3842
3843 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3844
3845 * elxsi-protos.h: New file.
3846
3847 * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile
3848 time warnings.
3849
3850 * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time
3851 warnings.
3852
3853 * elxsi.md: Likewise.
3854
3855 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
3856
3857 * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
3858 case for moving from HI/LO/HI_LO_REG. This makes the behavior
3859 match the comment for MIPS16.
3860
3861 Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com)
3862
3863 * flow.c (split_edge): Do not call set_block_for_insn if we
3864 do not have a basic_block_for_insn structure.
3865
3866 * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
3867 and destination functions are 32bit aligned within the trampoline.
3868 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
3869 (TRAMPOLINE_ALIGNMENT): Define.
3870
3871 * cse.c (cse_insn): When changing (set (pc) (reg)) to
3872 (set (pc) (label_ref)), verify the change creates a valid insn.
3873
3874 * fr30.c (call_operand): Tighten and rework to match rules for
3875 call RTL expressions.
3876 * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
3877 * fr30.md (call patterns): Improve constraints.
3878
3879 Thu Jan 13 23:44:03 2000 Richard Henderson <rth@cygnus.com>
3880
3881 * fr30.c (fr30_expand_epilogue): Revert last change.
3882 Use emit_jump_insn for the return insn.
3883
3884 Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com>
3885 Stan Cox <scox@cygnus.com>
3886
3887 * predict.c: New file. Preliminary infrastructure work for static
3888 branch prediction and basic block reordering.
3889 * basic-block.h: Add prototype for estimate_probability.
3890 * Makefile.in: Add rules for predict.o.
3891
3892 2000-01-13 Jason Merrill <jason@yorick.cygnus.com>
3893
3894 * fixincludes (va_list): Use __not_va_list__ for the dummy.
3895 * fixinc/*: Likewise.
3896
3897 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3898
3899 * cccp.c: PROTO -> PARAMS.
3900 * cexp.y: Likewise.
3901 * collect2.c: Likewise.
3902 * combine.c: Likewise.
3903 * convert.h: Likewise.
3904 * cse.c: Likewise.
3905 * dbxout.c: Likewise.
3906 * dbxout.h: Likewise.
3907 * diagnostic.c: Likewise.
3908 * doprint.c: Likewise.
3909 * dwarf2out.c: Likewise.
3910 * dwarf2out.h: Likewise.
3911 * dwarfout.c: Likewise.
3912 * dwarfout.h: Likewise.
3913 * dyn-string.h: Likewise.
3914
3915 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3916
3917 * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
3918 macro conditionals guarding use.
3919
3920 * dwarf2out.c: Include "tm_p.h".
3921
3922 * function.c (locate_and_pad_parm): Mark parameter with
3923 ATTRIBUTE_UNUSED.
3924 (expand_function_end): Likewise for variable `context'.
3925
3926 * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
3927
3928 2000-01-13 Nick Clifton <nickc@cygnus.com>
3929
3930 * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
3931 register to prevent compile time warnings.
3932
3933 2000-01-13 Zack Weinberg <zack@wolery.cumb.org>
3934
3935 * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
3936 to avoid -Wtraditional warning.
3937
3938 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3939
3940 * 1750a-protos.h: New file.
3941
3942 * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile
3943 time warnings.
3944
3945 * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time
3946 warnings.
3947
3948 * 1750a.md: Likewise.
3949
3950 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3951
3952 * a29k-protos.h: New file.
3953
3954 * a29k.c: Include tm_p.h. Add static prototypes. Fix compile
3955 time warnings.
3956
3957 * a29k.h: Move prototypes to a29k-protos.h. Fix compile time
3958 warnings.
3959
3960 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3961
3962 * clipper-protos.h: New file.
3963
3964 * clipper.c: Include tm_p.h. Add static prototypes. Fix compile
3965 time warnings.
3966
3967 * clipper.h: Move prototypes to clipper-protos.h. Fix compile time
3968 warnings.
3969
3970 Thu Jan 13 16:03:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3971
3972 * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
3973
3974 2000-01-13 Nathan Sidwell <sidwell@codesourcery.com>
3975
3976 * configure.in (--enable-new-gxx-abi): New option.
3977 * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
3978 * Makefile.in (GXX_ABI_FLAG): New variable.
3979 * configure: Regenerate.
3980
3981 2000-01-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3982
3983 * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
3984 * tm.texi (FORCE_STRUCT_BLK): Document.
3985 * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
3986
3987 Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson <hp@axis.com>
3988
3989 * config/ns32k/ns32k.md: Revert Jan 9 change.
3990
3991 * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
3992 to a mode-test, if the predicate is address_operand.
3993
3994 Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com)
3995
3996 * combine.c (if_then_else_cond): Be careful about what kinds
3997 of RTL expressions are passed to operand_subword.
3998
3999 * flow.c (split_edge): If we have to insert a new jump, make
4000 sure to associate it with a basic block.
4001
4002 * flow.c (commit_one_edge_insertion): A block with one successor
4003 can end in a JUMP_INSN that is not a simplejump.
4004
4005 2000-01-12 Robert Lipe <robertl@sco.com>
4006
4007 * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
4008 (BUILD_VA_LIST_TYPE): Define.
4009 (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
4010 with crtstuff.c.
4011
4012 2000-01-12 Jason Merrill <jason@casey.cygnus.com>
4013
4014 * cccp.c (do_pragma): Add cast to (char *).
4015
4016 2000-01-12 Richard Henderson <rth@cygnus.com>
4017 Fred Fish <fnf@be.com>
4018 Jason Merrill <jason@cygnus.com>
4019
4020 * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
4021 * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
4022 * i386/beos-elf.h, i386/beos-pe.h: New files.
4023
4024 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
4025 * cross-make (SYSTEM_HEADER_DIR): Define using
4026 CROSS_SYSTEM_HEADER_DIR.
4027
4028 * gcc.c (LIBRARY_PATH_ENV): Provide default.
4029 (process_command): Use it.
4030 (main): Likewise. Kill trailing = from env vars.
4031 (build_search_list): Put it back.
4032 * collect2.c (main): Use LIBRARY_PATH_ENV.
4033
4034 * configure.in (GCC_NEED_DECLARATIONS): Add environ.
4035 * toplev.c: Use NEED_DECLARATION_ENVIRON.
4036
4037 * tm.texi (Frame Layout): Document SMALL_STACK.
4038 * c-common.c (c_common_nodes_and_builtins): Check it.
4039
4040 * system.h: Undef alloca after including glibc's <stdlib.h>,
4041 if USE_C_ALLOCA is defined.
4042
4043 * gcc.c (set_input): New fn.
4044 (main): After all input files are compiled, reset the input file
4045 info to the first.
4046
4047 * aclocal.m4 (rindex, index): If already defined, don't attempt
4048 to redefine.
4049
4050 * ginclude/varargs.h: (__va_list__): Define ifndef.
4051 * ginclude/stdarg.h: Likewise.
4052
4053 * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
4054 instead of unsigned char.
4055
4056 * hash.h (true, false, boolean): Undef before enum.
4057
4058 * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
4059 proper type of "HOST_WIDE_INT *", rather than their natural type of
4060 "unsigned HOST_WIDE_INT *".
4061
4062 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4063
4064 * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
4065
4066 * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
4067
4068 * regclass.c (choose_hard_reg_mode): Likewise.
4069
4070 * reload.c (find_valid_class, strict_memory_address_p): Likewise.
4071
4072 * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
4073
4074 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4075
4076 * c-common.c: PROTO -> PARAMS.
4077 * c-common.h: Likewise.
4078 * c-decl.c: Likewise.
4079 * c-iterate.c: Likewise.
4080 * c-lang.c: Likewise.
4081 * c-lex.c: Likewise.
4082 * c-lex.h: Likewise.
4083 * c-parse.in: Likewise.
4084 * c-pragma.c: Likewise.
4085 * c-pragma.h: Likewise.
4086 * c-tree.h: Likewise.
4087 * c-typeck.c: Likewise.
4088 * objc/objc-act.c: Likewise.
4089 * objc/objc-act.h: Likewise.
4090
4091 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4092
4093 * m88k-protos.h: New file.
4094
4095 * m88k.c: Include tm_p.h. Add static prototypes. Fix compile
4096 time warnings.
4097
4098 * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings.
4099
4100 * m88k.md: Likewise.
4101
4102 * tekXD88.h: Likewise.
4103
4104 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4105
4106 * m68k-protos.h: New file.
4107
4108 * m68k.c: Include tm_p.h. Add static prototypes. Fix compile
4109 time warnings.
4110
4111 * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings.
4112
4113 * mot3300.h: Likewise.
4114
4115 2000-01-12 Richard Earnshaw <rearnsha@arm.com>
4116
4117 * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
4118 extract_bitlst.
4119 (extract_bitlist): Declare bitlen.
4120
4121 2000-01-12 Zack Weinberg <zack@wolery.cumb.org
4122
4123 * cccp.c: Accept and ignore -lang-fortran.
4124
4125 * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
4126 qualifiers don't match at any level of pointerness.
4127
4128 2000-01-12 Robert Lipe <robertl@sco.com>
4129
4130 * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
4131
4132 2000-01-12 Bernd Schmidt <bernds@cygnus.co.uk>
4133
4134 * reload1.c (reload_reg_unavailable): New static variable.
4135 (reload_reg_free_p): Test it.
4136 (reload_reg_free_for_value_p): Test it instead of
4137 reload_reg_used.
4138 (choose_reload_regs_init): Compute it.
4139
4140 Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com)
4141
4142 * reorg.c (fill_slots_from_thread): Check modified_in_p
4143 before replacing.
4144
4145 Wed Jan 12 03:20:31 2000 John Marshall <john_w_marshall@palm.com>
4146
4147 * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
4148 these nodes even if INTERNALS is not set.
4149
4150 Wed Jan 12 09:39:22 2000 Nick Burrett <nick.burrett@btinternet.com>
4151
4152 * gcse.c (delete_null_pointer_checks_1): Cope when
4153 get_condition cannot determine the condition.
4154
4155 2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com>
4156
4157 * toplev.h (set_message_length): Declare.
4158
4159 * diagnostic.c (obstack_chunk_alloc): Define macro.
4160 (obstack_chunk_free): Likewise.
4161 (struct output_buffer): New data structure.
4162 (vmessage): Remove.
4163 (output_maximum_width): New variable.
4164 (doing_line_wrapping, set_message_length, init_output_buffer,
4165 get_output_prefix, output_space_left, emit_output_prefix,
4166 output_newline, output_append, output_puts, dump_output,
4167 vbuild_message_string, build_message_string, build_location_prefix,
4168 voutput_notice, output_printf, line_wrapper_printf,
4169 vline_wrapper_message_with_location): New functions. Implement
4170 automatic line wrapping.
4171 (v_message_with_decl): Make it handle automatic line wrapping.
4172 (v_error_with_file_and_line): Likewise.
4173 (v_warning_with_file_and_line): Likewise.
4174 (announce_function): Likewise.
4175 (default_print_error_function): Likewise.
4176
4177 2000-01-11 16:24 -0800 Zack Weinberg <zack@wolery.cumb.org>
4178
4179 * cpplib.h (struct cpp_options): Change lang_asm to char.
4180 Add lang_fortran.
4181 * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
4182 done in cpp_handle_option now.
4183 (initialize_builtins): Take out special case code used only by
4184 __STDC_VERSION__.
4185 (cpp_handle_option): Turn off trigraphs and trigraph warnings
4186 if -traditional. Recognize -lang-fortran and set
4187 lang_fortran, also turn off cplusplus_comments.
4188 (print_help): Document -lang-fortran.
4189 * cpplib.c (handle_directive): Ignore `# 123 "file"' if
4190 lang_asm. Ignore all directives other than `# 123 "file"' if
4191 CPP_PREPROCESSED.
4192 (cpp_get_token): If -traditional, don't recognize directives
4193 unless the # is in column 1.
4194 (parse_string): If lang_fortran or lang_asm, silently
4195 terminate strings ('' or "") at end of line.
4196 Remove unnecessary braces.
4197
4198 2000-01-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
4199 Richard Henderson <rth@cygnus.com>
4200
4201 * resource.c (mark_referenced_resources): Mark a set strict_low_part
4202 as used.
4203 * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
4204 strict_low_part when possible.
4205
4206 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4207
4208 * alias.c: PROTO -> PARAMS.
4209 * basic-block.h: Likewise.
4210 * bitmap.c: Likewise.
4211 * bitmap.h: Likewise.
4212 * builtins.c: Likewise.
4213 * c-aux-info.c: Likewise.
4214 * caller-save.c: Likewise.
4215 * calls.c: Likewise.
4216
4217 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4218
4219 * Makefile.in (toplev.o): Depend on regs.h.
4220
4221 * output.h (tdesc_section): Prototype.
4222
4223 * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
4224
4225 * sdbout.c: Include "tm_p.h".
4226
4227 * toplev.c: Include "regs.h".
4228
4229 Tue Jan 11 11:37:58 2000 Mike Stump <mrs@wrs.com>
4230
4231 * unroll.c (unroll_loop): Add EH support.
4232
4233 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4234
4235 * pa-protos.h: New file.
4236
4237 * pa.c: Include recog.h and tm_p.h.
4238 (compute_zdepwi_operands, compute_movstrsi_length,
4239 remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
4240 find_addr_reg, import_milli): Add static prototypes.
4241 (pa_cpu_string, pa_arch_string): Constify a char*.
4242 (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
4243 (read_only_operand): Add argument `mode'.
4244 (singlemove_string, output_move_double, output_fp_move_double,
4245 output_block_move, output_and, output_ior, output_ascii,
4246 remove_useless_addtr_insns, milli_names, output_mul_insn,
4247 output_div_insn, output_mod_insn, output_arg_descriptor,
4248 output_cbranch, output_bb, output_bvb, output_dbra, ,
4249 output_millicode_call, output_call, hppa_encode_label,
4250 output_parallel_movb, output_parallel_addb): Constify a char*.
4251 (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
4252 (output_parallel_addb): Remove extra arg to `constrain_operands'
4253
4254 * pa.h: Move all prototypes to pa-protos.h.
4255 (pa_cpu_string, pa_arch_string): Constify a char*.
4256 (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
4257
4258 * pa.md: Call `function_label_operand' with mode argument.
4259 Likewise for `read_only_operand'.
4260 Fix nesting of parens in call to `symbolic_operand'.
4261
4262 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4263
4264 * i860-protos.h: New file.
4265
4266 * i860.c: Include tm_p.h. Add static prototypes. Fix compile
4267 time warnings.
4268
4269 * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings.
4270
4271 * i860.md: Likewise.
4272
4273 Tue Jan 11 18:59:35 MET 2000 Jan Hubicka <jh@suse.cz>
4274
4275 * i386.md (movstrsi expander): Rewrite.
4276 (movstrsi_1 insn): Deleted.
4277 (strmovhi, strmovqi expander): New expanders.
4278 (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
4279 * i386.c (x86_single_stringop): New global variable.
4280 * i386.h (x86_single_stringop): Declare.
4281 (TARGET_SINGLE_STRINGOP): New macro.
4282
4283 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
4284
4285 * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
4286 integer vararg POSTINCREMENT before the destination of the jump
4287 for the hard fp case.
4288 (function_arg_pass_by_reference): Pass a copy of CUM to
4289 FUNCTION_ARG.
4290
4291 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
4292 for CONSTANT_ADDRESS_P above while loop for subreg.
4293
4294 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
4295
4296 * flow.c (propagate_block): When a prologue/epilogue insn
4297 is marked dead, unconditionally clear libcall_is_dead and
4298 insn_is_dead, and only dump rtl if warnings aren't being
4299 suppressed.
4300
4301 Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz>
4302
4303 * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
4304 * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
4305 (FIXED_REGISTERS): Set dirflag as fixed.
4306 (CALL_USED_REGISTERS): Set dirflag as used.
4307 (REG_ALLOC_ORDER): Set dirflag as last one.
4308 (DIRFLAG_REG): New macro.
4309 (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
4310 (HI_REGISTER_NAMES): Add dirflag.
4311 (DEBUF_PRINT_REG): Handle dirflag.
4312 * i386.md (type attribute): New cld and str types.
4313 (length_opcode attribute): Set cld and str to 1.
4314 (memory attribute): Set str to unknown - it is not clear from the
4315 patterns.
4316 (pent_np function unit): Prefixed string operations takes 12 cycles
4317 minimally; cld takes 2 cycles.
4318 (ppro_uops attribute): Str is "many" and cld is "few".
4319 (ppro_p0 unit): Handle cld here.
4320 (k6_alux unit): Handle cld and str types.
4321 (k6_load unit): It is ocupied by str opcodes.
4322 (k6_store unit): It is ocupied by str opcodes.
4323 (athlon_decode): Str is vector decoded.
4324 (athlon_ieu): Handle str and cld.
4325 (cld pattern): New.
4326 (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
4327 (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
4328 cmpstrsi_nz_1 insn): Do not output cld instruction
4329
4330 Tue Jan 11 06:14:39 2000 David Starner <dstarner98@aasaa.ofe.org>
4331
4332 * gcc.texi (G++ and GCC): Add Java and Chill.
4333 (Bug Critera): Don't list languages.
4334
4335 * gcc.texi (Incompatibilities): No longer claim most C compilers
4336 are K&R.
4337
4338 * gcc.texi (G++ and GCC): Update other front-ends list.
4339
4340 Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com)
4341
4342 * i386.c (ix86_expand_setcc): Fix typo.
4343 (ix86_expand_movcc): Similarly.
4344
4345 * Band-aid until haifa's bitset implementation is nuked.
4346 * haifa-sched.c (extract_bitlst): New parameter for size of the
4347 bitset in bits. All callers changed. Avoid looking at undefined
4348 bits in the bitset.
4349 (edgeset_bitsize): New variable.
4350 (schedule_region): Initialize edgeset_bitsize.
4351
4352 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4353
4354 * Makefile.in (optabs.o): Depend on real.h
4355 (resource.o): Depend on insn-attr.h
4356
4357 * builtins.c (result_vector): Wrap prototype in macro conditions
4358 governing definition and use.
4359
4360 * c-common.c: Include tm_p.h.
4361
4362 * c-lex.c: Likewise.
4363
4364 * elfos.h: Constify a char*.
4365
4366 * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
4367 (get_attr_length, shorten_branches, profile_after_prologue): Mark
4368 parameter with ATTRIBUTE_UNUSED.
4369
4370 * fold-const.c (exact_real_inverse): Wrap variable `i' in
4371 CHECK_FLOAT_VALUE.
4372
4373 * haifa-sched.c (schedule_insns): Mark parameter with
4374 ATTRIBUTE_UNUSED.
4375
4376 * optabs.c: Include real.h.
4377
4378 * real.h (ereal_atof): Add prototype arguments.
4379
4380 * resource.c: Include insn-attr.h.
4381
4382 * sdbout.c (sdbout_queue_anonymous_type,
4383 sdbout_dequeue_anonymous_types): Wrap in macro
4384 SDB_ALLOW_FORWARD_REFERENCES.
4385 (sdbout_init, sdbout_start_new_source_file): Mark parameter with
4386 ATTRIBUTE_UNUSED.
4387
4388 * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
4389
4390 * stupid.c: Include tm_p.h.
4391
4392 * tree.c (real_value_from_int_cst): Mark parameter with
4393 ATTRIBUTE_UNUSED.
4394
4395 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4396
4397 * i960-protos.h: New file.
4398
4399 * i960.c: Include tm_p.h. Add static prototypes. Fix compile
4400 time warnings.
4401
4402 * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings.
4403
4404 2000-01-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
4405
4406 * combine.c (expand_field_assignment): Do not discard SUBREGs
4407 while computing nonzero_bits.
4408
4409 2000-01-09 Nick Clifton <nickc@cygnus.com>
4410
4411 * config/arm/arm.c: Fix compile time warnings about signed vs
4412 unsigned constants.
4413 * config/arm/arm.h: Fix compile time warnings about signed vs
4414 unsigned constants.
4415
4416 2000-01-09 Philip Blundell <philb@gnu.org>
4417
4418 * config/arm/arm.c (output_return_instruction): Use `ldr' rather
4419 than `ldm' with only one register.
4420 * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
4421 only one register.
4422
4423 * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
4424 clobbered.
4425
4426 Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson <hp@axis.com>
4427
4428 * config/ns32k/ns32k.md (load or push effective address): Operand 1
4429 must have SImode.
4430
4431 2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4432
4433 * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
4434 assignment used as truth value.
4435
4436 * function.c (assign_temp): Mark parameter `dont_promote' with
4437 ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro
4438 PROMOTE_FOR_CALL_ONLY.
4439
4440 * genrecog.c (write_subroutine): Mark variable `operands' with
4441 ATTRIBUTE_UNUSED.
4442
4443 * optabs.c (prepare_cmp_insn): Mark parameter `align' with
4444 ATTRIBUTE_UNUSED.
4445
4446 * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
4447 (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
4448
4449 * toplev.c (note_deferral_of_defined_inline_function): Likewise
4450 for `decl'.
4451
4452 2000-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4453
4454 * config/c4x.h: Tidy up comments.
4455 * config/c4x.c: Likewise.
4456
4457 Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com)
4458
4459 * fold-const.c (lshift_double, rshift_double): Handle
4460 shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
4461
4462 2000-01-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
4463
4464 * toplev.c (rest_of_compilation): Initialize cse_not_expected as
4465 in prepare_function_start().
4466
4467 Sat Jan 8 12:12:46 2000 Nick Clifton <nickc@cygnus.com>
4468
4469 * config/v850/v850.c (expand_epilogue): Interrupt functions no
4470 longer allocate extra stack for function calls.
4471
4472 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4473
4474 * config/c4x/c4x.md (*subqf3_set): Fix typo.
4475
4476 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4477
4478 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
4479
4480 2000-01-07 David Edelsohn <edelsohn@gnu.org>
4481
4482 * rs6000.c (processor_target_table): Add power3 as alias for 630.
4483 * aix43.h: Revert Aug 2 change.
4484 (HAS_INIT_SECTION): Define, not visible yet.
4485 (LD_INIT_SWITCH): Define, not visible yet.
4486 * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
4487
4488 * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
4489
4490 * collect2.c (main): Expand ld2 size further.
4491 (export_object_lst): Cast assignment to avoid warning.
4492 (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
4493 (scan_prog_file, COFF): Do not collect initialization or
4494 finalization functions generated for entire shared object if
4495 init/fini support present.
4496
4497 2000-01-07 Nick Clifton <nickc@cygnus.com>
4498
4499 * config/elfos.h: Tidy up formatting of marcos. Make sure
4500 that .section directives are always prefixed by a tab.
4501
4502 * config/svr4.h: Add #include "elfos.h" and remove duplicate
4503 definitions.
4504
4505 2000-01-07 Matt Austern <austern@sgi.com>
4506
4507 * fold-const.c (real_hex_to_f): Remove duplicate declaration of
4508 expon.
4509
4510 Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com)
4511
4512 * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
4513 crtstuff.c.
4514 (crtbegin.o, s-crtS): Likewise.
4515
4516 2000-01-06 Richard Henderson <rth@cygnus.com>
4517
4518 * alpha.md (adddi_2+1): Limit offset such that it will be
4519 loadable with a single ldah+lda pair.
4520 (adddi_2+2): Explicitly fail split if we can't make it work.
4521
4522 2000-01-06 Mumit Khan <khan@xraylith.wisc.edu>
4523
4524 * protoize.c: Conditionally include unistd.h.
4525 (IS_SAME_PATH_CHAR): New macro.
4526 (IS_SAME_PATH): New macro.
4527 (CPLUS_FILE_SUFFIX): New macro.
4528 (cplus_suffix): New static variable.
4529 (is_abspath): New static function.
4530 (in_system_include_dir): Handle DOS style pathnames.
4531 (file_could_be_converted): Likewise.
4532 (file_normally_convertible): Likewise.
4533 (directory_specified_p): Likewise.
4534 (file_excluded_p): Likewise.
4535 (abspath): Likewise.
4536 (shortpath): Likewise.
4537 (referenced_file_is_newer): Likewise.
4538 (save_def_or_dec): Likewise.
4539 (do_processing): Likewise.
4540 (main): Likewise.
4541 (edit_file): Likewise. Use rename instead of link.
4542 (rename_c_file): Likewise. Don't rename syscalls file.
4543 (munge_compile_params): Define null device for DOS based systems.
4544 (process_aux_info_file): Use binary mode if appliable.
4545 (edit_file): Likewise.
4546 * invoke.texi (Running Protoize): Document C++ suffixes used.
4547
4548 * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
4549 IS_DIR_SEPARATOR macros.
4550 * collect2.c: Likewise.
4551 * cppinit.c: Likewise.
4552 * dwarf2out.c: Likewise.
4553 * gcc.c: Likewise.
4554 * gcov.c: Likewise.
4555 * prefix.c: Likewise.
4556 * rtl.c: Likewise.
4557 * toplev.c: Likewise.
4558 * system.h: And move to here.
4559
4560 * prefix.c (update_path): Fix typo in variable name.
4561
4562 2000-01-06 Richard Henderson <rth@cygnus.com>
4563
4564 * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
4565 (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
4566 (count_reg_sets_1, count_reg_references): Likewise.
4567 (flow_loops_level_compute): Start counting actual loop depth at 1.
4568 (flow_loops_find): Likewise.
4569 * local-alloc.c (update_equiv_regs): Likewise.
4570 * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
4571
4572 2000-01-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
4573
4574 * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
4575 FIRST_PSEUDO_REGISTER
4576 * dwarf2out.c: Don't include frame.h
4577 * dwarfout.c: Likewise
4578 * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
4579 frame.h
4580
4581 Thu Jan 6 13:44:59 CET 2000 Jan Hubicka <jh@suse.cz>
4582
4583 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
4584 dead registers.
4585
4586 * i386.c (movsf splitter): Fix typo in my last checkin.
4587
4588 2000-01-05 Nick Clifton <nickc@cygnus.com>
4589
4590 * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
4591 own definition of this macro.
4592 (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
4593 flag_data_sections or UNIQUE_SECTION_P are true.
4594
4595 * tm.texi (UNIQUE_SECTION): Document that it can be called for
4596 unitialised data decls.
4597
4598 * config/i386/winnt.c (i386_pe_unique_section): Cope with
4599 being called for uninitialised data.
4600
4601 * config/i386/interix.c (i386_pe_unique_section): Cope with
4602 being called for uninitialised data.
4603
4604 * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
4605 for uninitialised data.
4606
4607 * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
4608 for uninitialised data.
4609
4610 * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
4611 for uninitialised data.
4612
4613 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
4614 (UNIQUE_SECTION_P): Always generate a unique section if
4615 flag_data_sections is true.
4616 (UNIQUE_SECTION): Also generate unique sections for
4617 uninitialised data.
4618 (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
4619 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
4620 named_section().
4621
4622 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4623
4624 * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
4625 SI, or DI.
4626
4627 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4628
4629 * config/c4x/c4x.md (udivqi3, divqi3): Delete.
4630 (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
4631 (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
4632 (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
4633 (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
4634
4635 * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
4636
4637 2000-01-05 11:25 -0800 Zack Weinberg <zack@rabi.columbia.edu>
4638
4639 * c-decl.c (finish_enum): Simplify code to determine minimum and
4640 maximum values of the enum, and calculate the type. Remove check
4641 for FUNCTION_DECLs in the values list, which cannot happen. Replace
4642 the DECL_INITIAL of each enumeration constant with a copy converted
4643 to the enumeration type. When updating variant types, don't bother
4644 updating the type itself.
4645
4646 * c-typeck.c (build_binary_op): Simplify conditional expressions
4647 when weeding out spurious signed-unsigned warnings. Add new
4648 spurious warning category: if the unsigned quantity is an enum
4649 and its maximum value fits in signed_type(result_type). Update
4650 commentary.
4651 (build_conditional_expr): Warn here if one alternative is signed
4652 and the other is unsigned.
4653
4654 2000-01-05 Nick Clifton <nickc@cygnus.com>
4655
4656 * config/fr30/fr30.h: Remove extraneous comments.
4657
4658 2000-01-05 Bernd Schmidt <bernds@cygnus.co.uk>
4659
4660 * reload1.c (choose_reload_regs): When disabling a reload, also
4661 set reload_spill_index to -1.
4662
4663 2000-01-04 Joel Sherrill (joel@OARcorp.com>
4664
4665 * configure.in (m68*-*-rtemscoff*): New target, formal name for
4666 old m68*-*-rtems*.
4667 (m68*-*-rtemself*): New target.
4668 (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
4669 (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
4670 (sparc*-*-rtemself*): New target.
4671 (sparc*-*-rtems*): Now elf not a.out.
4672 * config/i386/rtems.h: Include config/rtems.h.
4673 * config/i386/rtemself.h: Include config/rtems.h.
4674 * config/i960/rtems.h: Include config/rtems.h.
4675 * config/m68k/rtems.h: Include config/rtems.h.
4676 * config/m68k/rtemself.h: Include config/rtems.h.
4677 * config/mips/rtems64.h: Include config/rtems.h.
4678 * config/pa/rtems.h: Include config/rtems.h.
4679 * config/rs6000/rtems.h: Include config/rtems.h.
4680 * config/sh/rtems.h: Include config/rtems.h.
4681 * config/sh/rtemself.h: Include config/rtems.h.
4682 * config/sparc/rtems.h: Include config/rtems.h.
4683 * config/sparc/rtemself.h: Include config/rtems.h
4684
4685 Tue Jan 4 23:59:26 2000 Denis Chertykov <denisc@overta.ru>
4686
4687 * final.c (shorten_branches): Correctly compute length of
4688 asms without operands.
4689
4690 Tue Jan 4 22:55:41 2000 Steve Chamberlain <sac@pobox.com>
4691
4692 * configure.in: Add pj target.
4693 * configure: Regenerate.
4694 * config/pj: New directory.
4695 * config/pj/lib1funcs.S: New file.
4696 * config/pj/linux.h: New file.
4697 * config/pj/pj.c: New file.
4698 * config/pj/pj.md: New file.
4699 * config/pj/pjl.h: New file.
4700 * config/pj/t-pj: New file.
4701 * config/pj/xm-pj.h: New file
4702
4703 Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com)
4704
4705 * toplev.c (rest_of_compilation): Run shorten-branches before
4706 reg-stack for now.
4707
4708 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4709
4710 * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
4711 macros so that they're consistent with their names.
4712 * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
4713 * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
4714
4715 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4716
4717 * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
4718 modified inadvertently.
4719
4720 2000-01-04 Joel Sherrill <joel@OARcorp.com>
4721
4722 * configure.in (v850*-*-rtems*): New target.
4723 * configure: Regenerate.
4724 * config/v850/rtems.h: New file.
4725
4726 2000-01-04 Mumit Khan <khan@xraylith.wisc.edu>
4727
4728 * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
4729 (__gthread_key_create): Likewise.
4730 (__gthread_key_dtor): Likewise.
4731 (__gthread_once): Fix logic.
4732 (__gthread_key_delete): Cast away constness.
4733
4734 * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
4735 * invoke.texi: Document.
4736 * i386/mingw32.h (CPP_SPEC): Use.
4737 (LIBGCC_SPEC): Likewise.
4738 * i386/crtdll.h (LIBGCC_SPEC): Likewise.
4739
4740 2000-01-04 David Edelsohn <edelsohn@gnu.org>
4741
4742 * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
4743 (HANDLE_PRAGMA_PACK): Undefine.
4744 (SLOW_UNALIGNED_ACCESS): Define.
4745
4746 2000-01-04 David Edelsohn <edelsohn@gnu.org>
4747
4748 * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
4749 to default definition.
4750 (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
4751 (store_fixed_bit_field): Call macro with word_mode and alignment.
4752 (extract_bit_field): Call macro with relevant mode and alignment.
4753 * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
4754 to default definition.
4755 (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
4756 and alignment.
4757 (move_by_pieces_ninsns): Likewise.
4758 (clear_by_pieces): Likewise.
4759 (emit_push_insn): Likewise.
4760 (store_field): Call macro with relevant mode and alignment.
4761 (expand_expr): Likewise.
4762 (expand_expr_unaligned): Likewise.
4763
4764 * rs6000.h (HANDLE_PRAGMA_PACK): Define.
4765 (SLOW_UNALIGNED_ACCESS): Define.
4766 (CASE_VECTOR_MODE): Always use 32-bit offsets.
4767 (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
4768 (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
4769 (toc_section): Likewise and .toc pseudo-op.
4770 (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
4771 64-bit mode.
4772 (TEXT_SECTION_ASM_OP): Likewise.
4773 (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
4774 32-bit offsets.
4775
4776 * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
4777 * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
4778 * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
4779 * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
4780 * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
4781
4782 Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com)
4783
4784 * regclass.c: Revert my Jan 4 change to loop cost computation.
4785
4786 Tue Jan 4 19:22:39 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
4787
4788 * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
4789 compilation.
4790
4791 2000-01-04 Stan Cox <scox@cygnus.com>
4792
4793 * haifa-sched.c (build_control_flow): Change unreachable simple
4794 loop test to check if current block has only one predecessor.
4795 (find_rgns): Initialize degree. Use dest as degree index, not src.
4796
4797 2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4798
4799 * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
4800
4801 * calls.c (expand_call): Likewise for
4802 `old_stack_arg_under_construction'.
4803
4804 * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
4805
4806 * function.c (pad_to_arg_alignment): Likewise for `save_var' and
4807 `save_constant'.
4808
4809 * gcc.c (execute): Likewise for `ut' and `st'.
4810
4811 * genattrtab.c (attr_rtx): Likewise for `rt_val'.
4812
4813 * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
4814
4815 * jump.c (jump_optimize_1): Likewise for `temp2'.
4816
4817 * local-alloc.c (block_alloc): Likewise for `r1'.
4818
4819 * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
4820
4821 * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
4822 (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
4823
4824 * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
4825 and `set2'.
4826
4827 * reload.c (find_reloads): Likewise for `goal_alternative_number'
4828 and `goal_earlyclobber'.
4829
4830 * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
4831
4832 * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
4833
4834 * stupid.c (stupid_life_analysis): Likewise for `chain'.
4835
4836 * unroll.c (copy_loop_body): Likewise for `copy'.
4837
4838 * varasm.c (output_constructor): Likewise for `byte'.
4839
4840 Tue Jan 4 15:34:34 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
4841
4842 * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
4843 all FP constants for constant->reg moves.
4844 (ix86_split_to_parts): Try to convert memory address into immediate
4845 when available in the constant pool.
4846 * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
4847 moves.
4848 (LEGITIMATE_CONSTANT_P): Return 1.
4849 * i386.md (pushsf): New splitter to convert constant pool memory
4850 reference to immediate.
4851 (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
4852 reload.
4853
4854 2000-01-04 Bernd Schmidt <bernds@cygnus.co.uk>
4855
4856 * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
4857 (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
4858 ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
4859 (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
4860 rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
4861
4862 2000-01-04 Martin von Löwis <loewis@informatik.hu-berlin.de>
4863
4864 * ginclude/stdbool.h: Support compilation as C++.
4865
4866 Tue Jan 4 01:35:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4867
4868 * fold-const.c (make_range): Don't try to reverse an unbounded range.
4869
4870 Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com)
4871
4872 * regclass.c (regclass): Properly compute loop_cost. Adjust
4873 comments.
4874
4875 * regclass.c: Fix minor whitespace problems.
4876
4877 2000-01-03 Anthony Green <green@cygnus.com>
4878
4879 * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
4880 Restore the pic register if required.
4881
4882 2000-01-03 Ulrich Drepper <drepper@cygnus.com>
4883
4884 * c-common.c (format_char_info): Update comment.
4885 (check_format_info): Recognize 'z' modifier in the same way 'Z'
4886 was recognized. Emit warning for formats new in ISO C99 only
4887 if flag_isoc9x is not set.
4888
4889 Mon Jan 3 12:59:54 2000 Mark P. Mitchell <mark@codesourcery.com>
4890
4891 * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
4892
4893 Mon Jan 3 15:33:37 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
4894
4895 * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
4896 SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
4897 (make_compound_operation): Choose cheaper alternative between
4898 ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
4899
4900 * regclass.c (op_costs): Remove global variable.
4901 (record_reg_classes): New parameter "op_costs" and "reg_pref".
4902 (record_operand_costs): Break out from ...
4903 (scan_one_insn): ... here.
4904 (dump_regclass): Make dumps nicer.
4905 (regclass): Dump preferrences choosed and changes done during passes.
4906
4907 2000-01-03 Jakub Jelinek <jakub@redhat.com>
4908
4909 * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
4910
4911 2000-01-03 Jakub Jelinek <jakub@redhat.com>
4912
4913 * config/sparc/sparc.c (gen_df_reg): New function.
4914 * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
4915 * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
4916 movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
4917 movtf_cc_reg_sp64+1): Use it.
4918
4919 2000-01-02 Mark Mitchell <mark@codesourcery.com>
4920
4921 * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
4922 copied LABEL_DECLs.
4923
4924 Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
4925
4926 * config/i386/i386.c (ix86_expand_unary_operator): Function
4927 definition made void.
4928 (ix86_expand_binary_operator): Update outdated preceding comment.
4929 * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
4930 prototype.
4931
4932 * config/i386/i386.c (override_options): Fix option-name typo.
4933
4934 2000-01-02 Mark Mitchell <mark@codesourcery.com>
4935
4936 * system.h (CEIL): Define.
4937 * builtins.c (CEIL): Remove.
4938 * expmed.c (CEIL): Likewise.
4939 * expr.c (CEIL): Likewise.
4940 * stor-layout.c (CEIL): Likewise.
4941
4942 2000-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4943
4944 * expr.c (store_constructor_field): Fix typo introduced with last
4945 gcc2 merge.
4946
4947 2000-01-01 Mark Mitchell <mark@codesourcery.com>
4948
4949 * tree.h (BINFO_N_BASETYPES): New macro.
4950
4951 2000-01-01 Bernd Schmidt <bernds@cygnus.co.uk>
4952
4953 * expmed.c (emit_store_flag): Prevent losing a pending stack
4954 adjust the same way we prevent losing queued increments.
4955
4956 Fri Dec 31 19:10:31 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4957
4958 * function.c (update_temp_slot_address): Handle case where sum of
4959 temporary address plus offset in register is a valid address.
4960
4961 1999-12-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4962
4963 * genrecog.c (change_state) Corrected typo.
4964
4965 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4966
4967 * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
4968 getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
4969 strerror, getrlimit, setrlimit, abort): Add prototype arguments.
4970
4971 1999-12-30 Bernd Schmidt <bernds@cygnus.co.uk>
4972
4973 * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
4974 case, expand GT comparisons correctly. Fix a comment before this
4975 part of the code.
4976
4977 1999-12-30 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
4978
4979 * dwarfout.c: Include "frame.h"
4980 * dwarf2out.c: Likewise.
4981 * Makefile.in (dwarfout.o): Depend on frame.h
4982 (dwarf2out.o): Likewise.
4983
4984 1999-12-29 "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
4985
4986 Restore i386 binary compatibility in Dwarf EH info.
4987 * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
4988 value of FIRST_PSEUDO_REGISTER.
4989 * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
4990 (struct frame_state): Use DWARF_FRAME_REGISTERS.
4991 * dwarfout.c (output_reg_number): Ditto.
4992 * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
4993 (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
4994
4995 1999-12-29 Bruce Korb <autogen@linuxbox.com>
4996
4997 * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
4998 * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
4999 (<hack>_RE_CT): not needed
5000 * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
5001 rewritten to scan the file text once only
5002 "template<..." test added
5003 * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
5004 (is_cxx_header): declaration added
5005 * fixinc/fixtests.c(is_cxx_header): removed
5006 (apply_fix_p_t): removed
5007 (double_slash_test): is_cxx_header is only called once now
5008 * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
5009 * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
5010 within the templates.
5011 The borken spelling of "broken" was fixed.
5012 * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
5013 The default level depends on FIXINC_DEBUG.
5014
5015 1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5016
5017 * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
5018 Otherwise provide a declaration for atexit.
5019 (init_dummy): Make sure dummy call to atexit is nevertheless
5020 called with correct number of args.
5021
5022 * frame.c: Update comments referring to other files.
5023
5024 * libgcc2.c: Likewise.
5025
5026 1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5027
5028 * cse.c (free_element, get_element): Remove unused prototypes.
5029
5030 * fold-const.c (extract_muldiv): Initialize variables `op0' and
5031 `op1'.
5032
5033 * jump.c (invert_exp): Add explicit braces to avoid ambiguous
5034 `else' clauses.
5035
5036 Wed Dec 29 12:44:54 1999 Donald Lindsay <dlindsay@cygnus.com>
5037
5038 * configure.in,configure: case arm for mn10200-*-* now sets
5039 float_format=i32 so that float.h will correctly claim "double"
5040 to be 32 bits. Ran autoconf to generate configure from .in file.
5041
5042 Wed Dec 29 10:53:21 1999 Jeffrey A Law (law@cygnus.com)
5043
5044 * pa.md (conditional zero): If op1 is a register, force it into
5045 the same register as op0.
5046
5047 1999-12-28 Mark Mitchell <mark@codesourcery.com>
5048
5049 * tree.h (BINFO_BASETYPES): Improve documentation.
5050
5051 1999-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5052
5053 * configure.in (--enable-checking): Use a more portable `for'
5054 loop syntax.
5055
5056 1999-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5057
5058 * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
5059 arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
5060
5061 * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
5062 Delete files.
5063
5064 * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
5065 Delete descriptions.
5066
5067 * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
5068 m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
5069 m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
5070 pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
5071 xm-svr4.h: Remove all instances of sys_siglist handling.
5072
5073 1999-12-27 Jakub Jelinek <jakub@redhat.com>
5074
5075 * config/sparc/sparc.md (cmp_zero_qi,
5076 cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
5077 cmp_zero_extendqidi2_andcc_set): New patterns.
5078
5079 1999-12-28 Manfred Hollstein <mhollstein@cygnus.com>
5080
5081 * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
5082 (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
5083 (fpgnulib.c, xfgnulib.c): Add rules.
5084 * m68k/t-mot3300-gas: Likewise.
5085
5086 1999-12-27 Ian Lance Taylor <ian@zembu.com>
5087
5088 * configure.in: Avoid [[ by using test and changequote. Add
5089 changequote required by 1999-12-14 change.
5090 * configure: Rebuild.
5091
5092 1999-12-27 Clinton Popetz <cpopetz@cygnus.com>
5093
5094 * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
5095
5096 1999-12-27 Christophe Jaillet <jaillet.christophe@caramail.com>
5097
5098 * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
5099 * flow.c (find_use_as_address): Likewise.
5100 * function.c (fixup_var_refs_1): Likewise.
5101 (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
5102 * jump.c (invert_exp, redirect_exp): Likewise.
5103 * loop.c (replace_call_address): Likewise.
5104 (count_nonfixed_reads): Likewise.
5105 * rtlanal.c (modified_between_p): Likewise.
5106 (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
5107 (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
5108 * unroll.c (remap_split_bivs): Likewise.
5109
5110 1999-12-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5111
5112 * diagnostic.c (v_message_with_decl): Use .* format specifier
5113 instead of building the format specifier width manually.
5114
5115 * system.h (strsignal): Don't check HAVE_STRSIGNAL when
5116 determining whether to provide a prototype. Remove the
5117 sys_siglist clause in the conditional.
5118
5119 1999-12-23 Martin v. Löwis <loewis@informatik.hu-berlin.de>
5120
5121 * fold-const.c (operand_equal_p): Use memcmp to compare string
5122 constants.
5123 Suggested by D. J. Bernstein
5124
5125 1999-12-17 Jakub Jelinek <jakub@redhat.com>
5126
5127 * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
5128 UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
5129 compiling libgcc2.
5130 * config/mips/mips.h (TARGET_64BIT): Likewise.
5131 * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
5132 * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
5133 of {SI,DI}type and DIunion. Define these types to QI/HI modes on
5134 dsps. Give routines proper names if SI/DI modes are not used.
5135 * longlong.h: Use DWunion instead of DIunion.
5136
5137 1999-12-26 Zack Weinberg <zack@wolery.cumb.org>
5138
5139 * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
5140 GC_CHECKING, GC_ALWAYS_COLLECT.
5141 * configure.in: Allow --enable-checking with an argument
5142 listing check modes to enable.
5143 * config.in, configure: Rebuilt.
5144 * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
5145 GGC_ALWAYS_VERIFY for ggc-simple.c) only if
5146 ENABLE_GC_CHECKING. Define GGC_ALWAYS_COLLECT only if
5147 ENABLE_GC_ALWAYS_COLLECT.
5148 * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
5149 throughout.
5150 * tree.h, tree.c: Change ENABLE_CHECKING to
5151 ENABLE_TREE_CHECKING throughout.
5152
5153 Sun Dec 26 07:48:20 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5154
5155 * fold-const.c (fold_truthop): Properly check for FP RHS.
5156
5157 1999-12-24 Mark Mitchell <mark@codesourcery.com>
5158
5159 * toplev.h (note_deferall_of_defined_inline_function): Declare.
5160 * toplev.c (note_deferral_of_defined_inline_function): New
5161 function, split out from ...
5162 (rest_of_compilation): ... here. Use it.
5163
5164 Fri Dec 24 12:34:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5165
5166 * expr.c (store_constructor): Don't call clear_storage if size is
5167 variable.
5168
5169 1999-12-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5170
5171 * Makefile.in (toplev.o): Depend on loop.h.
5172
5173 * dwarfout.c: Include tm_p.h.
5174
5175 * emit-rtl.c (restore_emit_status): Mark parameter with
5176 ATTRIBUTE_UNUSED.
5177
5178 * final.c (final_scan_insn): Likewise.
5179
5180 * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
5181 flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
5182 flow_depth_first_order_compute, flow_loop_pre_header_find,
5183 flow_loop_tree_node_add, flow_loops_tree_build,
5184 flow_loop_level_compute, flow_loops_level_compute,
5185 flow_loop_outside_edge_p): Add prototypes.
5186 (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
5187
5188 * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
5189 Mark with ATTRIBUTE_NORETURN.
5190
5191 * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
5192
5193 * local-alloc.c (no_conflict_p): Likewise.
5194
5195 * loop.c (insert_bct): Hide definitions of variables with hidden
5196 usage.
5197 (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
5198
5199 * regclass.c (memory_move_secondary_cost): Mark variable `mem'
5200 with ATTRIBUTE_UNUSED.
5201 (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
5202 (reg_scan): Likewise.
5203
5204 * reload.c (find_reloads): Remove unused variables `changed'.
5205
5206 * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
5207 away const-ness.
5208 (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
5209 Remove unused variable `insn'.
5210
5211 * toplev.c: Include loop.h.
5212 (report_file_and_line): Remove unnecessary prototype.
5213
5214 * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
5215
5216 * unroll.c (biv_total_increment): Likewise.
5217
5218 Thu Dec 23 23:15:22 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5219
5220 * reload1.c (emit_input_reload_insns): Restore old behaviour
5221 wrt. 'special' reloads.
5222
5223 1999-12-23 Zack Weinberg <zack@wolery.cumb.org>
5224
5225 * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
5226 hash.h. (cse.c): Don't depend on hashtab.h.
5227
5228 * cse.c: Don't include hashtab.h.
5229 (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
5230 of dead functions.
5231 * ggc-simple.c: Don't include hash.h.
5232
5233 1999-12-22 Jason Merrill <jason@casey.cygnus.com>
5234
5235 * dwarf2out.c (add_abstract_origin_attribute): Call
5236 gen_abstract_function on our function context.
5237
5238 Thu Dec 23 03:57:10 1999 Hans-Peter Nilsson <hp@bitrange.com>
5239
5240 * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
5241
5242 1999-12-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5243
5244 * config/c4x/c4x.c (c4x_address_cost): Add statement to default
5245 case in switch.
5246
5247 1999-12-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5248
5249 * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
5250 constraints to "a!r".
5251
5252 1999-12-21 Mark Mitchell <mark@codesourcery.com>
5253
5254 * Makefile.in (calls.o): Depend on function.h.
5255 (alias.o): Likewise.
5256
5257 1999-12-21 Bernd Schmidt <bernds@cygnus.co.uk>
5258
5259 * reload1.c (emit_reload_insns): Break out code and variables into...
5260 (input_reload_insns, other_input_address_reload_insns,
5261 other_input_reload_insns, input_address_reload_insns,
5262 inpaddr_address_reload_insns, output_reload_insns,
5263 output_address_reload_insns, outaddr_address_reload_insns,
5264 operand_reload_insns, other_operand_reload_insns,
5265 other_output_reload_insns): ... new static variables, and...
5266 (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
5267 do_output_reload): ... new functions.
5268
5269 Tue Dec 21 07:06:36 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5270
5271 * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
5272
5273 1999-12-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5274
5275 * md.texi: Add c4x constraints documentation.
5276
5277 1999-12-21 Martin v. Löwis <loewis@informatik.hu-berlin.de>
5278
5279 * config/i386/dgux.c (struct option): Rename to
5280 lang_independent_option.
5281 (struct m_options): Add description field.
5282 (output_options): Rename option type, add sep declaration, output
5283 ix86_cpu_string and ix86_arch_string only if set.
5284 (output_file_start): Rename option type.
5285
5286 Mon Dec 20 23:15:36 1999 Mike Stump <mrs@wrs.com>
5287
5288 * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
5289 stmp-int-hdrs.
5290 (libgcc2.a): Similarly.
5291
5292 Mon Dec 20 23:06:47 1999 David Edelsohn <edelsohn@gnu.org>
5293
5294 * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
5295 with W_TYPE_SIZE == 32. Do not fall through to POWER architecture
5296 for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
5297
5298 Mon Dec 20 23:02:03 1999 Jeffrey A Law (law@cygnus.com)
5299
5300 * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
5301 Remove redundant initialization of "frexpon" and "expon".
5302
5303 Mon Dec 20 15:00:04 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5304
5305 * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
5306
5307 * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
5308 (store_constructor_field, expand_expr): Pass new arg.
5309
5310 1999-12-20 Mark Mitchell <mark@codesourcery.com>
5311
5312 * Makefile.in (explow.o): Depend on function.h.
5313
5314 * stor-layout.c (set_sizetype): Fix typo.
5315
5316 1999-12-20 Bernd Schmidt <bernds@cygnus.co.uk>
5317
5318 * function.c (cfun): Renamed from current_function. All users
5319 changed.
5320 * function.h (cfun): Rename declaration as well.
5321
5322 * reload.h (struct insn_chain): Change live_throughout and dead_or_set
5323 to be of type regset_head, not regset. All users changed by adding
5324 address operator.
5325 * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
5326
5327 1999-12-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5328
5329 * config/c4x/rtems.h: New file.
5330
5331 1999-12-19 Bernd Schmidt <bernds@cygnus.co.uk>
5332
5333 * reload1.c (spill_failure): Take class of failed reload as argument
5334 and print it. Caller changed.
5335
5336 Sun Dec 19 07:50:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5337
5338 * rs6000.h (SUBTARGET_DEFAULT): New macro.
5339 (TARGET_SWITCHES): Allow subtargets to default switches.
5340 * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
5341
5342 1999-12-18 Mark Mitchell <mark@codesourcery.com>
5343
5344 * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
5345 in a main program.
5346
5347 Sat Dec 18 20:42:43 1999 Richard Henderson <rth@cygnus.com>
5348
5349 * cccp.c (main): Define __STDC_VERSION__ as necessary.
5350 * cppinit.c (cpp_handle_option): Likewise.
5351
5352 * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
5353 determine when to define.
5354
5355 Sat Dec 18 20:34:00 1999 Richard Henderson <rth@cygnus.com>
5356
5357 * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
5358 cmove with mismatched test and data modes.
5359
5360 Sat Dec 18 20:30:15 1999 Richard Henderson <rth@cygnus.com>
5361
5362 * c-typeck.c (c_expand_start_case): Don't warn for long switch
5363 in system headers.
5364
5365 Sat Dec 18 16:28:43 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5366
5367 * alias.c: Minor reformatting.
5368 * flow.c: Likewise.
5369 * regs.h: Likewise.
5370 * stor-layout.c: Likewise.
5371 * fold-const.c: Likewise.
5372 (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
5373 (struct cb_args, const_binop_1, const_binop): Pass type of arg,
5374 not arg itself.
5375 (size_int_wide): Cache nodes even if garbage collecting.
5376 (twoval_comparison_p): Reenable SAVE_EXPR case if operand
5377 of SAVE_EXPR has no side effects.
5378 * cse.c: Move a comment.
5379 * tree.c: Minor reformatting.
5380 (int_size_in_bytes): Return -1 if constant overflows.
5381
5382 Sat Dec 18 18:30:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5383
5384 * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
5385
5386 1999-12-18 10:42 -0800 Zack Weinberg <zack@wolery.cumb.org>
5387
5388 * objc/objc-parse.c: Regenerate. This file must be rebuilt
5389 after any change to c-parse.in, even if objc-parse.y didn't
5390 change. Oops.
5391
5392 1999-12-18 David S. Miller <davem@redhat.com>
5393
5394 * toplev.c (rest_of_compilation): Restore BLOCK tree
5395 reconstruction and branch shortening changes lost in
5396 December 18th change.
5397
5398 Sat Dec 18 05:29:29 1999 Scott Bambrough <scottb@netwinder.org>
5399
5400 * config/arm/linux-elf.h: Change all instances of
5401 ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
5402 * config/arm/uclinux-elf.h: Likewise.
5403
5404 1999-12-18 Gabriel Dos Reis <gdr@codesourcery.com>
5405
5406 * toplev.c (notice, vmessage, v_message_with_file_and_line,
5407 v_message_with_decl, file_and_line_for_asm,
5408 v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
5409 verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
5410 v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
5411 v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
5412 pfatal_with_name, fatal_io_error, need_error_newline,
5413 last_error_function, last_error_tick, announce_function,
5414 default_print_error_function, print_error_function,
5415 report_error_function, fnotice, error_with_file_and_line,
5416 error_with_decl, error_for_asm, error, set_fatal_function, fatal,
5417 _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
5418 warning_with_decl, warning_for_asm, warning, pedwarn,
5419 pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
5420 diagnostic.c
5421 (compile_file): Use fnotice instead of notice. Adjust call.
5422
5423 * diagnostic.c: New file.
5424
5425 * Makefile.in (OBJS): Include diagnostic.o
5426 (diagnostic.o): Define dependence.
5427
5428 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5429
5430 * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
5431 Tweak formatting.
5432
5433 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5434
5435 * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
5436
5437 1999-12-17 13:21 -0800 Zack Weinberg <zack@rabi.columbia.edu>
5438
5439 * fixtests.c (is_cxx_header): New fn, split out of
5440 double_slash_test.
5441 (else_endif_label): Allow "#endif // comment" in C++ headers,
5442 as determined by is_cxx_header.
5443 * fixfixes.c (else_endif_label_fix): Update comment.
5444 * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
5445 a tty.
5446 * genfixes: Correct double thinko in commandline parsing.
5447 * hackshell.tpl: Generate correct sh syntax for bypass
5448 entries.
5449
5450 * inclhack.def (all): Whenever an inserted preprocessor
5451 conditional is split over multiple lines, use double
5452 backslashes in this file so the fixed header will be readable.
5453
5454 (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
5455 and add bypass entry for correct version of this header.
5456 (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
5457 (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
5458
5459 (hpux8_bogus_inlines): New fix, split from...
5460 (ultrix_atof_param) ... here.
5461 (math_expression): Add bypass entry keyed to glibc comment
5462 indicating the problem has been dealt with; disable
5463 unnecessary sed operations; update commentary.
5464 (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
5465 add select and bypass entries, simplify shell operation.
5466 (math_huge_val_ifndef): Split from math_gcc_ifndefs.
5467
5468 (ip_missing_semi, rs6000_param, tinfo_cplusplus,
5469 ultrix_atof_param): Add select entry.
5470 (stdio_va_list, sunos_mather_decl): Add bypass entry.
5471 (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
5472 comments with the fixes they describe.
5473
5474 * c-parse.in (string action): Do not warn about ANSI string
5475 concatenation in system headers. Affects C parser only.
5476 * c-parse.y, c-parse.c, c-parse.h: Rebuild.
5477
5478 1999-12-16 Jakub Jelinek <jakub@redhat.com>
5479
5480 * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
5481 compiling libgcc2 the macro depends always on arch cpp defines.
5482
5483 Fri Dec 17 10:34:16 1999 Richard Earnshaw <rearnsha@arm.com>
5484
5485 * loop.c (insert_loop_mem): Don't record MEMs from inside
5486 EXPR_LISTs.
5487
5488 Fri Dec 17 12:08:11 MET 1999 Jan Hubicka <hubicka@freesoftr.cz>
5489
5490 * regclass.c (regclass): Do not use flowgraph when not optimizing.
5491
5492 * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
5493 notes too, create one when replacement failed, attempt to simplify
5494 resulting notes.
5495 (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
5496 or REG_EQUIV notes.
5497
5498 1999-12-16 Mark Mitchell <mark@codesourcery.com>
5499
5500 * crtstuff.c (__dso_handle): Declare.
5501 (__cxa_finalize): Likewise.
5502 (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
5503 non-NULL.
5504
5505 * invoke.texi: Document -fuse-cxa-atexit.
5506
5507 * tree.h (ptr_type_node): Document.
5508 (const_ptr_type_node): Likewise.
5509
5510 Fri Dec 17 01:32:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5511
5512 * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
5513 (optimize_reg_copy_2): Likewise.
5514 (optimize_reg_copy_3): Likewise.
5515 (fixup_match_2): Likewise.
5516 (regmove_optimize): Likewise.
5517 (fixup_match_1): Liekwise.
5518
5519 * i386.md (HI to SImode promoting splitters): Rewrite.
5520 (pushsf mem peep2): New.
5521 (testhi to andhi peep2): Remove.
5522 * i386.h (x86_promote_QImode): New.
5523 (TARGET_PROMOTE_QImode): New.
5524 (PREDICATE_CODES): Add promotable_binary_operator.
5525 * i386.c (x86_promote_QImode0: New.
5526 (promotable_binary_operator): New.
5527 * i386-protos.h (promotable_binary_operator): New.
5528
5529 * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
5530 condition.
5531 (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
5532
5533 1999-12-16 Mark Mitchell <mark@codesourcery.com>
5534
5535 * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
5536 * function.c (insert_block_after_note): Remove.
5537 (retrofit_block): Likewise.
5538 (identify_blocks): Fix indentation.
5539 (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
5540 NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
5541 * function.h (insert_block_after_note): Remove prototype.
5542 (retrofit_block): Likewise.
5543 * integrate.c (expand_inline_function): Don't call
5544 find_loop_tree_blocks. Use expand_start_bindings_and_block, not
5545 just expand_start_bindings. Use the block_map to remap old
5546 NOTE_BLOCKs to new ones.
5547 (integrate_decl_tree): Keep track of remapped blocks.
5548 * integrate.h (struct inline_remap): Add block_map.
5549 * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set
5550 NOTE_BLOCK on the notes.
5551 (expand_start_bindings): Rename to ...
5552 (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK.
5553 (expand_end_bindings): Set NOTE_BLOCK.
5554 * toplev.c (rest_of_compilation): In function-at-a-time-mode,
5555 reconstruct the BLOCK tree.
5556 * tree.h (expand_start_bindings): Macroize. Call ...
5557 (expand_start_bindings_and_block): New function.
5558
5559 1999-12-16 Jakub Jelinek <jakub@redhat.com>
5560
5561 * config/sparc/sparc.c (print_operand): Cast fprintf arguments
5562 to match the format.
5563
5564 1999-12-16 David S. Miller <davem@redhat.com>
5565
5566 * expr.c (emit_move_insn_1): Only emit clobbers if one of
5567 the outputs is a SUBREG.
5568 * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
5569 change.
5570
5571 * config/sparc/sparc.c (epilogue_renumber): Add default case
5572 to switch stmt.
5573
5574 Thu Dec 16 11:33:57 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5575
5576 * toplev.c (rest_of_compilation): Run branch shortening after
5577 reg-stack.
5578
5579 * regclass.c (loop_depth): Remove
5580 (scan_one_insn): Do not handle LOOP_NOTE insns.
5581 (regclass): Go through basic blocks and set loop_cost
5582
5583 Thu Dec 16 02:56:25 1999 Zack Weinberg <zack@bitmover.com>
5584
5585 * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
5586
5587 Thu Dec 16 10:43:35 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5588
5589 * i386.md (movqi): Use "nonimmediate_operand" for output operand.
5590 (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
5591 (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
5592
5593 Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com)
5594
5595 * loop.c (insert_loop_mem): Ignore memory clobbers.
5596
5597 * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
5598 to (OP A B).
5599
5600 Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com)
5601
5602 * profile.c: Remove redundant #include "output.h".
5603
5604 * h8300.md (HImode preinc peephole): Fix typo.
5605
5606 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
5607
5608 * function.c (retrofit_block): Abort if we don't find a suitable insn.
5609 (insert_block_after_note): Abort if we don't have a previous block.
5610 Remove FN parameter.
5611 * function.h: Adjust.
5612
5613 1999-12-15 Mark Mitchell <mark@codesourcery.com>
5614
5615 * builtins.c (expand_builtin_mathfn): Make sure not to expand the
5616 argument more than once.
5617
5618 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
5619
5620 * stmt.c (expand_decl): Expand upper bound of a dynamic array.
5621
5622 1999-12-15 Jakub Jelinek <jakub@redhat.com>
5623
5624 * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
5625
5626 Wed Dec 15 16:11:55 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5627
5628 * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
5629 (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
5630 update stack_alignment_needed.
5631 (prepare_function_start): Initialize stack_alignment_needed
5632 * function.h (struct function): Add field stack_alignment_needed.
5633
5634 Wed Dec 15 14:55:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5635
5636 * caller-save.c (insert_one_insn): Returns struct insn_chain *.
5637 Handle live_throughout / dead_or_set instead of live_before /
5638 live_after.
5639 (save_call_clobbered_regs): Get register livenessinformation from
5640 chain->live_throughout.
5641 (add_stored_regs): New function.
5642 (insert_restore, insert_save): Add restored / saved registers to
5643 dead_or_set.
5644 * global.c (reg_dies): New parameter chain.
5645 (reg_becomes_live): Third parameter is regs_set now.
5646 Changed all callers.
5647 (reg_dies): New parameter chain. Changed all callers.
5648 (build_insn_chain): Set live_throughout instead of
5649 live_before / live_after.
5650 * reload.h (struct insn_chain): Replace members live_before /
5651 live_after with live_throughout / dead_or_set.
5652 * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
5653 instead of live_before / live_after.
5654 (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
5655 (order_regs_for_reload, find_reg, finish_spills): Likewise.
5656 (choose_reload_regs_init): Likewise.
5657 * stupid.c (current_chain, find_clobbered_regs): Delete.
5658 (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
5659 instead of chain->live_before / chain->live_after.
5660 (mark_hard_ref): New function.
5661 (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
5662
5663 1999-12-15 David S. Miller <davem@redhat.com>
5664
5665 * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
5666
5667 Wed Dec 15 15:05:30 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5668
5669 * flow.c (calculate_loop_depth): Make global, remove prototype,
5670 rewrite to use new loop infrastructure.
5671 (find_basic_block): Remove calculate_loop_depth call.
5672 * toplev.c (rest_of_compilation): Call find_basic_block.
5673 * output.h (calculate_loop_depth): Declare.
5674
5675 * flow.c (dump_flow_info): Dump loop_depth.
5676 (flow_loops_nodes_find): Increase loop_depth for basic block in the
5677 body.
5678 (flow_loops_find): Initialize the loop_depth for each basic block.
5679
5680 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
5681
5682 * tree.c (decl_function_context): Handle virtual functions.
5683
5684 * tlink.c (scan_linker_output): Don't look in demangled name when
5685 looking for linker output keywords.
5686
5687 * dwarfout.c (output_type): We can defer namespace-scope classes.
5688
5689 Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com)
5690
5691 * regclass.c (record_reg_classes): Update comment for merging
5692 register class preferences in reg->reg copies. Tighten conditions
5693 for merging register class preferences in reg->reg copies.
5694
5695 Wed Dec 15 02:19:32 1999 David Edelsohn <edelsohn@gnu.org>
5696
5697 * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
5698
5699 1999-12-14 Geoff Keating <geoffk@cygnus.com>
5700
5701 * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
5702 (INIT_SECTION_ASM_OP): Delete.
5703 (FINI_SECTION_ASM_OP): Delete.
5704 (STARTFILE_SPEC): Define to hold just crtbegin.o.
5705
5706 1999-12-14 Jason Merrill <jason@casey.cygnus.com>
5707
5708 * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
5709 the abstract origin wasn't emitted.
5710
5711 * dwarf2out.c (class_scope_p): New fn.
5712 (gen_subprogram_die): Use it.
5713 (gen_variable_die): Use it. Tweak logic.
5714 (gen_struct_or_union_type_die): Check context_die to determine
5715 if we're function-local.
5716 (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
5717
5718 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
5719
5720 * loop.c (check_dbra_loop): Can't reverse a biv that has
5721 maybe_multiple set.
5722
5723 1999-12-14 Nick Clifton <nickc@cygnus.com>
5724
5725 * config/arm/arm.c: Add support for -mcpu=arm720 command line
5726 switch.
5727
5728 Tue Dec 14 18:13:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5729
5730 * loop.c (strength_reduce): Fix sign of giv lifetime calculation
5731 for givs made from biv increments.
5732
5733 Tue Dec 14 08:11:27 1999 Richard Henderson <rth@cygnus.com>
5734
5735 * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
5736 * alpha.c (override_options): Recognize -mcpu=ev67.
5737 * alpha.h (CPP_CPU_EV67_SPEC): New.
5738 (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
5739 (EXTRA_SPECS): Update.
5740
5741 Tue Dec 14 08:04:28 1999 Richard Henderson <rth@cygnus.com>
5742
5743 * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
5744 appropriate for -lang-c89 and -std=*.
5745 * cppinit.c (cpp_handle_option): Likewise.
5746 (new_pending_define): New, split out from cpp_handle_option.
5747 * gcc.c (default_compilers): Don't define __STRICT_ANSI__
5748 or enable trigraphs for -ansi/-std=*.
5749
5750 * ginclude/stdarg.h (__va_copy): New.
5751 (va_copy): Don't define for C89.
5752
5753 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz <cpopetz@cygnus.com>
5754
5755 * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
5756 for long long multiply-accumulate.
5757
5758 Tue Dec 14 13:51:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5759
5760 * regclass.c (scan_one_insn): Set loop_cost to 1 when
5761 optimizing for size.
5762
5763 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
5764
5765 * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
5766 if something changed. Back out that part of yesterday's changes.
5767
5768 * loop.c (loop_max_reg): New static variable.
5769 (loop_optimize): Initialize it. Eliminate one unnecessary call to
5770 max_reg_num.
5771 (scan_loop): Call reg_scan_update whenever we may have added new
5772 registers, and update loop_max_reg.
5773
5774 Tue Dec 14 12:07:29 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5775
5776 * regclass.c (record_reg_classes): Do not do the copying preferrencing
5777 when source does not die.
5778
5779 * regclass.c (record_reg_classes): Handle INOUT operands propertly.
5780
5781 1999-12-14 Jakub Jelinek <jakub@redhat.com>
5782
5783 * config/sparc/linux64.h (TARGET_LIVE_G0,
5784 TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
5785 variants on Linux.
5786 * config/sparc/linux.h (TARGET_LIVE_G0,
5787 TARGET_BROKEN_SAVERESTORE): Likewise.
5788 * config/sparc/linux-aout.h (TARGET_LIVE_G0,
5789 TARGET_BROKEN_SAVERESTORE): Likewise.
5790
5791 * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
5792 (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
5793 not %g2.
5794 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
5795 as sparc64 block profiling register.
5796 * config/sparc/sparc.c (sparc_override_options): Allow block
5797 profiling with -m32.
5798 (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
5799 profiling register.
5800 * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
5801 macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
5802 * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
5803
5804 * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
5805 for sparc64.
5806 * config/sparc/sparc.h: Likewise.
5807 * config/sparc/xm-sysv4-64.h: Likewise.
5808 * config/float-sparc.h: Likewise.
5809 * glimits.h: Likewise.
5810 * longlong.h: Likewise.
5811
5812 * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
5813 (ASM_IDENTIFY_GCC): Remove.
5814
5815 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
5816
5817 * combine.c (combine_simplify_rtx): Don't make shared rtl.
5818 (simplify_logical): Likewise.
5819
5820 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
5821
5822 * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
5823 * cppfiles.c (INO_T_EQ): Likewise.
5824
5825 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
5826
5827 * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
5828 * i386/mingw32.h (LIB_SPEC): Likewise.
5829 (STARTFILE_SPEC): Likewise.
5830 * i386/uwin.h (LIB_SPEC): Likewise.
5831 (STARTFILE_SPEC): Likewise.
5832
5833 * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
5834 * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
5835
5836 Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com)
5837
5838 * combine.c (combine_simplify_rtx): Fix order of checks for
5839 (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
5840
5841 1999-12-13 Clinton Popetz <cpopetz@cygnus.com>
5842
5843 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out
5844 12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
5845
5846 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
5847
5848 * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
5849 defined.
5850 * regclass.c (inv_reg_alloc_order): New array.
5851 (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
5852
5853 * reload.h (struct insn_chain): Delete fields group_size, group_mode,
5854 counted_for_groups, counted_for_nongroups. Add fields rld and
5855 n_reloads.
5856 * reload.c (push_secondary_reload): Don't set nongroup field of
5857 new reloads.
5858 (push_reload): Likewise.
5859 (find_reloads): Delete code to compute nongroup fields.
5860 * reload1.c (reload_insn_firstobj): New static variable.
5861 (pseudos_counted, spilled_pseudos): Now of type regset_head. All
5862 users changed.
5863 (calculate_needs, find_tworeg_group, find_group, possible_group_p,
5864 count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
5865 dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
5866 functions.
5867 (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
5868 functions.
5869 (struct hard_reg_n_uses): Deleted.
5870 (potential_reload_regs): Deleted.
5871 (init_reload): Initialize spilled_pseudos and pseudos_counted.
5872 (reload): Don't try to allocate reload registers if we already know
5873 we have to make another pass. Call select_reload_regs. Free memory
5874 starting with reload_firstobj when starting another pass.
5875 Don't allocate spilled_pseudos.
5876 (calculate_needs_all_insns): Call copy_reloads for an insn that
5877 needs reloads; don't call calculate_needs.
5878 (spill_cost): New static array.
5879 (used_spill_regs_local): New static variable.
5880 (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
5881 to compute potential_reload_regs.
5882 (find_reload_regs): Completely rewritten to use find_reg.
5883 (allocate_reload_reg): Don't test counted_for_groups or
5884 counted_for_nongroups. Lose NOERROR arg and code to give an error;
5885 all cllers changed.
5886 (choose_reload_regs): Add fallback code that uses the existing
5887 register allocation from find_reload_regs.
5888
5889 Mon Dec 13 00:54:14 1999 Philippe De Muyter <phdm@macqel.be>
5890
5891 * flow.c (create_edge_list): Cast xmalloc return value.
5892
5893 Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com)
5894
5895 * doprnt.c: Remove incorrect comment closure.
5896
5897 * cse.c: Fix a few minor whitespace goofs.
5898
5899 1999-12-13 Don Bowman <don@pixstream.com>
5900
5901 * mips/vxworks.h: Fix problem with comment termination.
5902 (EXTRA_SECTIONS): Add in_sbss.
5903 (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
5904
5905 1999-12-12 David S. Miller <davem@redhat.com>
5906
5907 * cse.c (struct cse_reg_info): Add hash_next member,
5908 reorder rest of struct for better packing on 64-bit
5909 hosts.
5910 (cse_reg_info_tree): Kill.
5911 (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
5912 REGHASH_FN): New custom pow2 hash mechanism.
5913 (NBUCKETS): Kill.
5914 (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
5915 use a pow2 hash table.
5916 (get_cse_reg_info): Rework to use new REGHASH.
5917 (new_basic_block): Likewise, use HASH_SIZE, and inline
5918 free_element call.
5919 (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
5920 and inline free_element call.
5921 (lookup_as_function, insert, flush_hash_table, invalidate,
5922 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
5923 invalidate_for_call, use_related_value, find_comparison_args,
5924 fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
5925 (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
5926 get_element): Kill.
5927
5928 Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com)
5929
5930 * cse.c (cse_basic_block): Free qty_table consistently.
5931
5932 1999-12-12 David S. Miller <davem@redhat.com>
5933 Jakub Jelinek <jakub@redhat.com>
5934
5935 * config/sparc/sparc.md (movtf reg/reg split): Don't generate
5936 SUBREGs by hand, gen the appropriate hard reg directly.
5937 (movtf reg/mem split): Likewise and alter_subreg on destination
5938 if necessary.
5939 (movtf mem/reg split): Similarly.
5940 (movdf_cc_sp64): Rename from hidden pattern.
5941 (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
5942 (movtf_cc_sp64, following split): New pattern and splitter.
5943 (movdf_cc_reg_sp64): Rename from hidden pattern.
5944 (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
5945 TARGET_HARD_QUAD.
5946 (movtf_cc_reg_sp64, following split): New pattern and splitter.
5947
5948 1999-12-12 Stephen L Moshier <moshier@mediaone.net>
5949
5950 * loop.c (load_mems): Don't hoist written floating point mem
5951 if -ffloat-store.
5952
5953 1999-12-12 Mark Mitchell <mark@codesourcery.com>
5954
5955 * except.h (struct eh_queue): Add `next' pointer.
5956 (struct eh_status): Make x_ehqueue a pointer.
5957 (push_ehqueue): Declare.
5958 (pop_ehqueue): Likewise.
5959 * except.c (expand_eh_region_end): Adjust now that ehqueue is a
5960 pointer.
5961 (expand_fixup_region_end): Likewise.
5962 (expand_leftover_cleanups): Likewise.
5963 (push_ehqueue): Define.
5964 (pop_ehqueue): Likewise.
5965 (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
5966 than doing it inline.
5967 (expand_start_all_catch): Adjust now that ehqueue is a
5968 pointer.
5969 (mark_eh_queue): Mark all level of the queue.
5970 (mark_eh_status): Adjust now that ehqueue is a
5971 pointer.
5972 (init_eh_for_function): Allocate ehqueue.
5973 (free_eh_status): Free it.
5974 * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
5975 expansion for a fixup.
5976
5977 1999-12-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5978
5979 * gthr-single.h (__gthread_active_p): Add prototype arguments.
5980
5981 * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
5982 (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
5983 __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
5984 function_ptr, getpagesize, __enable_execute_stack,
5985 __enable_execute_stack, __clear_insn_cache,
5986 __enable_execute_stack, __do_global_dtors, __do_global_ctors,
5987 _cleanup, _exit, __default_terminate, __terminate_func,
5988 __terminate, __empty, __throw, new_eh_context,
5989 eh_context_initialize, eh_context_static, eh_context_specific,
5990 get_eh_context, __get_eh_context, __get_eh_info,
5991 init_reg_size_table, eh_threads_initialize,
5992 __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
5993 __unwinding_cleanup, throw_helper, __throw, __rethrow,
5994 __pure_virtual): Add prototype arguments.
5995 (__bb_exit_func): Cast a sizeof to long when comparing against one.
5996 Cast a signed value to unsigned long when comparing against one.
5997 (new_eh_context): Wrap in _GTHREADS macro.
5998 (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
5999 declaration.
6000 (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
6001 (throw_helper): Initialize variables `handler_p' and `pc_p'.
6002
6003 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6004
6005 * combine.c (record_promoted_value): Remove unused variable
6006 `links2'.
6007
6008 * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
6009
6010 * global.c (record_conflicts): Likewise for `j'.
6011
6012 * genoutput.c (output_insn_data): Don't unnecessarily cast away
6013 const-ness.
6014
6015 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6016
6017 * i386-protos.h (output_387_binary_op, output_fix_trunc,
6018 output_fp_compare): Constify a char*.
6019
6020 * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
6021 static prototypes.
6022 (override_options, ix86_comp_type_attributes, print_operand,
6023 output_387_binary_op, output_fix_trunc, output_fp_compare):
6024 Constify a char*.
6025 (ix86_sched_reorder): Mark parameter `clock_var' with
6026 ATTRIBUTE_UNUSED.
6027
6028 * i386.h (DEBUG_PRINT_REG): Constify a char*.
6029
6030 Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
6031
6032 * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
6033 operand, for use in the Java front-end.
6034
6035 1999-12-10 Ben Collins <bcollins@debian.org>
6036
6037 * configure.in: Fix typo for "-64" in 64bit as check.
6038 * configure: Rebuilt.
6039
6040 1999-12-10 Jakub Jelinek <jakub@redhat.com>
6041
6042 * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
6043 appropriate.
6044
6045 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6046
6047 * c-parse.in (string): With -Wtraditional, warn if ANSI string
6048 concatenation is utilized.
6049
6050 * invoke.texi (-Wtraditional): Document it.
6051
6052 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6053
6054 * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
6055 Cast a ptrdiff_t to long and pass it to printf with %ld.
6056
6057 1999-12-10 Geoff Keating <geoffk@cygnus.com>
6058
6059 * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
6060 68881, we have no 68881 registers at all.
6061 (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
6062 value in a 68881 register if it is available.
6063
6064 1999-12-10 Clinton Popetz <cpopetz@cygnus.com>
6065
6066 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
6067 for long long multiply-accumulate.
6068
6069 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
6070
6071 * loop.c (insert_loop_mem): Undo last change.
6072
6073 1999-12-10 David S. Miller <davem@redhat.com>
6074
6075 * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
6076 New functions.
6077 * config/sparc/sparc-protos.h: Add them.
6078 * config/sparc/sparc.h: Add them to PREDICATE_CODES.
6079 (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
6080 constraints which use those helpers.
6081 (EXTRA_CONSTRAINT): Use this new macro.
6082 * md.texi: Update sparc target constraints documentation.
6083 * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
6084 movsf_const_high, movsf_const_lo, movsf_insn): Delete.
6085 (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
6086 movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
6087 (movsf high/lo_sum split): Rework for new patterns.
6088 (movsf expander): Allow storing fp_zero to memory if ! live_g0.
6089
6090 1999-12-09 Gavin Romig-Koch <gavin@cetus.cygnus.com>
6091
6092 * c-common.c (c_common_nodes_and_builtins):
6093 Create __builtin_ptrdiff_t and __builtin_size_t.
6094
6095 Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com)
6096
6097 * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
6098
6099 Fri Dec 10 00:53:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6100
6101 * regclass.c (globalize_reg): Re-instate test that allows
6102 fixed registers to be declared as a variable even after functions
6103 are defined.
6104
6105 Fri Dec 10 00:52:13 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6106
6107 * i386.md (cpu attribute): Add "athlon".
6108 (athlon_decode): New attribute.
6109 (Athlon scheduling units definitions): New.
6110 (fcmp and shld patterns): Set athlon_decode to "vector".
6111 * i386.c (athlon_cost): New.
6112 (m_ATHLON): New.
6113 (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6114 x86_use_sahf): Set for Athlon.
6115 (x86_use_fiop): Unset for Athlon.
6116 (override_options): Define Athlon alignments and "athlon" name.
6117 (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
6118 * i386.h (TARGET_ATHLON): New.
6119 (enum processor_type): Add PROCESSOR_ATHLON.
6120 (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
6121 for CPU_DEFAULT==5
6122 (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
6123
6124 1999-12-09 Andreas Jaeger <aj@suse.de>
6125
6126 * loop.c (record_biv): Declare parameter as int.
6127
6128 * config/i386/i386-protos.h: Declare long_memory_operand.
6129
6130 1999-12-09 Mark Mitchell <mark@codesourcery.com>
6131
6132 * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
6133 EXPR_WITH_FILE_LOCATION.
6134
6135 Thu Dec 9 11:36:24 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6136
6137 * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
6138 in expander.
6139
6140 * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
6141
6142 * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
6143 updating code.
6144
6145 1999-12-09 Jakub Jelinek <jakub@redhat.com>
6146
6147 * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
6148 default on linux64 again.
6149 * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
6150 models for multilibing.
6151 * genmultilib: Accept | as alternative separator within a set in
6152 MULTILIB_OPTIONS.
6153
6154 * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
6155
6156 * calls.c (precompute_arguments): Make sure initial_value contains
6157 value pseudo which CSE expects.
6158 * cse.c (struct set): New entry orig_src.
6159 (cse_insn): Set it early on entry, use it for libcall EQUIV note
6160 replacement.
6161
6162 Wed Dec 8 22:24:15 1999 Richard Henderson <rth@cygnus.com>
6163
6164 * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
6165
6166 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
6167
6168 * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
6169
6170 1999-12-08 Jakub Jelinek <jakub@redhat.com>
6171
6172 * config/sparc/sparc.c (ultra_cmove_results_ready_p,
6173 ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
6174
6175 * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
6176 if TARGET_ARCH32.
6177
6178 * longlong.h: Merge in changes from glibc.
6179 Also don't clobber %g2 register in 32bit SPARC assembly, so that
6180 -mno-app-regs libgcc can be compiled.
6181 * libgcc2.c: Add defines so that the updated longlong.h
6182 can be used in libgcc2.a. Also, make sure on most architectures
6183 (at least on all which have optimized code in longlong.h defined
6184 for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
6185
6186 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6187
6188 * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
6189 `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
6190 * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
6191 is GNU ld.
6192 * configure: Rebuilt.
6193
6194 Wed Dec 8 03:45:40 1999 Richard Henderson <rth@cygnus.com>
6195
6196 * alpha.c (secondary_reload_class): For !BWX, sub-simode
6197 outputs require a register.
6198
6199 1999-12-08 Brendan Kehoe <brendan@cygnus.com>
6200
6201 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
6202 _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to
6203 functions like dptoul will be resolved.
6204 (libgcc2.a): Make sure that the object files from DPBIT are named
6205 differently (prefix `_dp') from those that would be coming from
6206 FPBIT.
6207
6208 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>, Jakub Jelinek <jakub@redhat.com>
6209
6210 * configure.in: When target is sparc* and tm_file contains 64,
6211 test for 64bit support in assembler. If not supported, remove
6212 sparc/t-sol2-64 from target-dependent Makefile fragments.
6213 (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
6214 (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
6215 (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
6216 * acconfig.h (AS_SPARC64_FLAG): Added.
6217 * configure, config.in: Rebuilt.
6218 * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
6219 support. Use AS_SPARC64_FLAG.
6220
6221 1999-12-07 Jakub Jelinek <jakub@redhat.com>
6222
6223 * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
6224 suitable for holding OFmode values so that gcc works with complex
6225 quad long doubles.
6226 (hard_64bit_mode_classes): Likewise.
6227
6228 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
6229 so that it is actually matched.
6230 (sethi_di_medlow): Likewise.
6231
6232 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
6233 as legitimate constant if -mvis.
6234 * config/sparc/sparc.md (movtf): Likewise.
6235 (clear_sf): Use const_double_operand.
6236 (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
6237
6238 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
6239 * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
6240 * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
6241 routines, _Qp_* cannot be handled like that now.
6242 (INIT_TARGET_OPTABS): Likewise.
6243 * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
6244 (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
6245 sparc_emit_float_lib_cmp if ARCH64 and soft float.
6246 (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
6247 floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
6248 divtf3, sqrttf3): New expanders.
6249 (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
6250 floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
6251 addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
6252 non-_hq patterns.
6253
6254 * configure.in (sparc64-*-linux*): Use posix threads if enabled.
6255 * configure: Rebuilt.
6256 * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
6257 -mcpu is given and we're doing 64bit compiles.
6258
6259 Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
6260
6261 * loop.h (struct induction): Add multi_insn_incr.
6262 * loop.c (basic_induction_var): New multi_insn_incr argument.
6263 Set it if we search back through previous insns for the biv.
6264 (record_biv): New multi_insn_incr argument; fill in struct induction.
6265 (strength_reduce): Discard an iv with multiple bivs, any of
6266 which require multiple insns to increment.
6267
6268 1999-12-07 Martin v. Löwis <loewis@informatik.hu-berlin.de>
6269
6270 * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
6271 documentation.
6272
6273 1999-12-06 David S. Miller <davem@redhat.com>
6274
6275 * combine.c (check_promoted_subreg): Do not conditionalize this upon
6276 PROMOTE_FUNCTION_RETURN.
6277
6278 Mon Dec 6 15:12:14 1999 Jim Wilson <wilson@cygnus.com>
6279
6280 * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
6281 and handle REG_UNUSED note on insn.
6282
6283 * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask. Set
6284 inner_mask instead of mask.
6285
6286 1999-12-06 Brendan Kehoe <brendan@cygnus.com>
6287
6288 * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
6289 zero if there was an error.
6290
6291 1999-12-06 Jakub Jelinek <jakub@redhat.com>
6292
6293 * config/sparc/sparc.md (return_losum_di): Fix typo in asm
6294 output string.
6295
6296 * longlong.h: Fix clobbers in SPARC asm statements.
6297
6298 * config/sparc/sparc.c (input_operand): Allow HImode and QImode
6299 valid sethi operations when TARGET_ARCH64.
6300
6301 * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
6302 always use move_by_pieces to avoid infinite recursion.
6303 (restore_fixed_argument_area): Likewise.
6304
6305 * combine.c (check_promoted_subreg, record_promoted_value): New
6306 functions.
6307 (combine_instructions): Use them to retain nonzero and sign bit
6308 information after SUBREGs are eliminated by optimizations in
6309 this pass if PROMOTE_FUNCTION_RETURN.
6310
6311 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
6312 .register declaration. Don't use variables with __ prefixes.
6313
6314 Mon Dec 6 12:24:52 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6315
6316 * fold-const.c (optimize_bit_field_compare): Only use one mode
6317 for both RHS and LHS in non-constant case.
6318
6319 1999-12-06 Nathan Sidwell <nathan@acm.org>
6320
6321 * frame.c (start_fde_sort): Only allocate erratic array, if
6322 linear one was allocated. Return allocated flag.
6323 (fde_insert): Only insert, if there's a valid array.
6324 (fde_end_sort): Split, sort and merge if linear and erratic
6325 arrays exist, else just sort linear one.
6326 (search_fdes): New function. Linear search through original fde
6327 structure.
6328 (frame_init): Permit multiple initializations. Cope with
6329 memory shortages.
6330 (find_fde): Fallback on linear search, if failed to sort array.
6331 (__deregister_frame_info): Only free sorted array, if we
6332 allocated it.
6333
6334 1999-12-06 Jakub Jelinek <jakub@redhat.com>
6335
6336 * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
6337
6338 1999-12-05 Jakub Jelinek <jakub@redhat.com>
6339
6340 * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
6341
6342 1999-12-05 Mark Mitchell <mark@codesourcery.com>
6343
6344 * tree.h (special_function_p): Declare.
6345 * calls.c (special_function_p): Make it global. Don't take `name'
6346 as a parameter. Fix typo in 1999-11-28 change.
6347 (expand_cal): Adjust.
6348
6349 1999-12-04 Mark Mitchell <mark@codesourcery.com>
6350
6351 * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
6352 * tree.h (EXPR_WFL_FILENAME): Define in terms of
6353 EXPR_WFL_FILENAME_NODE.
6354 (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
6355 the TREE_CHAIN.
6356 * print-tree.c (print_note): Print TREE_PRIVATE and
6357 TREE_PROTECTED.
6358
6359 * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
6360 the original die cannot be found.
6361
6362 * varray.h (varray_head_tag): Add elements_used.
6363 (VARRAY_PUSH): New macro.
6364 (VARRAY_POP): Likewise.
6365 (VARRAY_TOP): Likewise.
6366 Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
6367 types.
6368 * varray.c (varray_init): Initialize elements_used.
6369 * Makefile.in (BASIC_BLOCK_H): Add varray.h.
6370 (INTEGRATE_H): New variable.
6371 (integrate.o): Depend on INTEGRATE_H.
6372 (unroll.o): Likewise.
6373
6374 * function.h (insert_block_after_note): Declare.
6375 * function.c (insert_block_after_note): Split out from ...
6376 (retrofit_block): ... here.
6377
6378 * stmt.c (expand_fixup): Fix typo in comment.
6379
6380 Sat Dec 4 14:13:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6381
6382 * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
6383 (optimize_reg_copy_1): Remove REG_N_REFS updating code.
6384 (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
6385 (regmove_optimize, fixup_match_1): Likewise.
6386
6387 1999-12-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6388
6389 * flow.c (flow_loops_dump): Add missing argument when calling
6390 flow_loop_nested_p.
6391
6392 1999-12-04 Geoffrey Keating <geoffk@cygnus.com>
6393 Greg McGary <gkm@gnu.org>
6394
6395 * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
6396 (init_attributes): Add A_NO_LIMIT_STACK.
6397 (decl_attributes): Handle A_NO_LIMIT_STACK.
6398 * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
6399 * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
6400 Handle stack bounds checking.
6401 * flags.h (flag_stack_check): Use the word 'probe' rather than
6402 'check', because the flag doesn't actually cause any checking to
6403 be done.
6404 * function.c (expand_function_start): Set
6405 current_function_limit_stack.
6406 * function.h (struct function): Add limit_stack.
6407 (current_function_limit_stack): Define.
6408 * invoke.texi (Code Gen Options): Document new options.
6409 * rtl.h: Declare stack_limit_rtx.
6410 * toplev.c (stack_limit_rtx): New variable.
6411 (decode_f_option): Handle new options -fstack-limit-register=REG,
6412 -fstack-limit-symbol=IDENT, -fno-stack-limit.
6413 (main): Add stack_limit_rtx as GC root.
6414 * tree.h (DECL_NO_LIMIT_STACK): New macro.
6415 (struct tree_decl): New member no_limit_stack.
6416
6417 * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
6418 stack_limit_rtx.
6419 * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
6420 (conditional_trap+1): Get new mnemonic correct.
6421 (conditional_trap+2): New pattern for DImode traps.
6422
6423 * config/m68k/m68k.c (output_function_prologue): Handle
6424 stack_limit_rtx.
6425 * config/m68k/m68k.md (trap): New insn.
6426 (conditional_trap): New insn.
6427 * md.texi (Standard Names): Document `trap' and
6428 `conditional_trap'.
6429 * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
6430 so a cc0 setter doesn't get emitted at some random place in the
6431 function.
6432
6433 * config/i960/i960.md (trap): New insn.
6434 (conditional_trap): New expander.
6435 (conditional_trap+1, conditional_trap+2): New insns for signed
6436 and unsigned cases.
6437 * config/i960/i960.c (i960_function_prologue): Use
6438 STARTING_FRAME_OFFSET. Handle stack_limit_rtx.
6439
6440 Thu Dec 2 21:22:45 1999 Greg McGary <gkm@gnu.org>
6441 Geoffrey Keating <geoffk@cygnus.com>
6442
6443 * flags.h (warn_padded, warn_packed): Add global var decls.
6444 * toplev.c (warn_padded, warn_packed): Add global var defns.
6445 (W_options): Add warnings `-Wpacked' and `-Wpadded'.
6446 * stor-layout.c (layout_record): Add local variable `type'
6447 to hold often-used TREE_TYPE (field). Add local variable
6448 `unpacked_align' to hold alignment that would be in force
6449 if no `packed' attribute were present. Warn if `packed' attribute
6450 is unnecessary, or even harmful. Warn when gcc inserts padding
6451 to satisfy alignment requirements of members. Use NULL_TREE
6452 when checking whether var_size is set.
6453 * invoke.texi: Document new flags.
6454
6455 1999-12-03 Nathan Sidwell <nathan@acm.org>
6456
6457 * frame.c (fde_split): Reimplement to avoid variable sized array.
6458
6459 Thu Dec 2 18:59:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6460
6461 * combine.c (try_combine): Before fixing up LOG_LINKS for the
6462 i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
6463
6464 1999-12-02 Gavin Romig-Koch <gavin@cygnus.com>
6465
6466 * invoke.texi: Document the mips option -mno-crt0
6467
6468 1999-12-02 Mike Karr <mkarr@mathworks.com>
6469
6470 * cccp.c (argdata): Added free_ptr member.
6471 (macroexpand): Initialize free_ptr of each argument. When an
6472 argument's buffers are freed, if the argument's free_ptr corresponds
6473 to a buffer on the input stack, then return the free_ptr to that stack
6474 frame, otherwise, free it.
6475 (macarg): If an argument begins and ends on the same input stack level,
6476 then transfer the free_ptr of that buffer to the argument in case
6477 the stack is popped during the processing of a subsequent argument.
6478
6479 1999-12-02 Bernd Schmidt <bernds@cygnus.co.uk>
6480
6481 * loop.c (note_reg_stored): New function.
6482 (struct note_reg_stored_arg): New structure.
6483 (try_copy_prop): Change to be more conservative; only replace within
6484 one extended basic block and stop replacing if a store to the
6485 replacement reg is seen.
6486
6487 1999-12-02 Nick Clifton <nickc@cygnus.com>
6488
6489 * config/fp-bit.c: Initialise all fields of the NAN
6490 constants.
6491
6492 * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
6493 to HANDLE_PRAGMA.
6494
6495 Wed Dec 1 18:16:38 1999 Jan Hubicka <hubicka@freesoft.cz>
6496
6497 * i386.md (extend?f?f2): Force the input into a register, not
6498 the output.
6499
6500 1999-12-01 Jakub Jelinek <jakub@redhat.com>
6501
6502 * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
6503 regclass' sake.
6504 (movdf_const_intreg_sp32): Likewise. Prefer the memory load
6505 alternative because setting up 64bit constant is usually costly,
6506 especially when reload is in progress or completed.
6507 (movdf_const_intreg_sp64): Likewise.
6508 (movdf_const_intreg split): Fix building up constants when
6509 HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
6510
6511 Wed Dec 1 16:51:22 1999 Jeffrey A Law (law@cygnus.com)
6512
6513 * combine.c (if_then_else_cond): Use const_true_rtx instead of
6514 const1_rtx for return values in EQ/NE comparison against (const_int 0)
6515 case.
6516
6517 * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
6518 (asm_file_start): Emit .am33 into assembly file when compiling for
6519 the AM33.
6520 (print_operand_address): Handle POST_INC addresses.
6521 (can_use_return_insn, initial_offset): Check AM33 registers too.
6522 (expand_prologue): Check & save AM33 registers too.
6523 (expand_epilogue): Similarly.
6524 (secondary_reload_class): Handle AM33 specific secondary reloads.
6525 (output_tst): Emit efficient code for the AM33 too.
6526 * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
6527 (TARGET_SWITCHES): Add -mam33 switch.
6528 (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
6529 (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
6530 (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
6531 (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
6532 (enum reg_class, REG_CLASS_NAMES): Likewise.
6533 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
6534 (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
6535 (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
6536 (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
6537 (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
6538 (HAVE_POST_INCREMENT): Define.
6539 (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
6540 (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
6541 * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
6542 (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
6543 (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
6544 (zero_extend to SI from QI/HI): Likewise.
6545 (sign_extend to SI from QI/HI): Likewise.
6546 (mulsidi3, umulsidi3): New patterns for the AM33.
6547 (tstsi with zero extension from QI/HI): Add AM33 variants.
6548 (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
6549 (return_internal_regs, store_movm): Handle new AM33 registers.
6550 * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
6551 (LIBGCC, INSTALL_LIBGCC): Likewise.
6552 * invoke.texi: Document new flags.
6553
6554 Fri Nov 26 10:59:12 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
6555
6556 * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
6557 (addsi3_carry): Likewise.
6558 (sbbsi3_cc): Add "binary_operator_ok" to the condition.
6559 (sbbsi3_carry): Likewise.
6560 (mulsi3): Rewrite to expander, ensure that only one operand is memory.
6561 (mulhi3): Likewise.
6562 (test?i_1): Ensure that only one operand is memory.
6563 (conditional move patterns): likewise.
6564 (shift and rotate patterns): Rewrite to expander, add
6565 "binary_operator_ok" to the condition.
6566
6567 * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
6568 * i386.h (procesor_costs): Add movzbl_load field.
6569 (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
6570 non-Q registers, accept DImode registers anywhere.
6571 (Q_CLASS_P): New.
6572 (MEMORY_MOVE_COST): Calculate QImode moves correctly.
6573 * i386.c (*_cost): Set value for movxbl_load field.
6574
6575 * (addsi): New add to lea splitter.
6576 (ashlsi): Likewise.
6577 (lea to add/shift peep2): New.
6578
6579 1999-12-01 Mark Salter <msalter@cygnus.com>
6580
6581 * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
6582 * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
6583 * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
6584
6585 Tue Nov 30 15:20:52 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6586
6587 * i386.c (ix86_expand_move): Never add clobbers to move patterns.
6588 * i386.md (movsi_xor): New.
6589 (movsi_or): New.
6590 (movsi_1, movhi_1, movqi_1): Remove.
6591 (movsi_2): Rename to movsi_1.
6592 (movhi_2): Rename to movhi_1.
6593 (movqi_2): Rename to movqi_1.
6594 (movdi_1): Remove; remove splitter.
6595 (movdi_2): Rename to movdi_1.
6596 (divmodsi4 splitter): Do not emit clobbers for move patterns.
6597 (long move peep2): Do not create QI or HI mode mov0s
6598 (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
6599
6600 * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
6601 rewrite splitters.
6602
6603 * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
6604 (abs?f2_if): Likewise.
6605
6606 1999-11-30 Alex Samuel <samuel@codesourcery.com>
6607
6608 * ggc.h (ggc_test_and_set_mark): New macro.
6609 (ggc_mark_rtx): Use ggc_test_and_set_mark.
6610 (ggc_mark_tree): Likewise.
6611 (ggc_mark_rtvec): Likewise.
6612 * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
6613
6614 1999-11-30 Jason Merrill <jason@casey.cygnus.com>
6615
6616 * dwarf2out.c (scope_die_for): Only handle types. Only search for
6617 containing types.
6618 (decl_scope_table): Just an array of trees now.
6619 (push_decl_scope): Simplify.
6620 (dwarf2out_init): Adjust.
6621 (local_scope_p): New fn.
6622 (gen_inlined_enumeration_type_die): Don't call scope_die_for.
6623 (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
6624 (gen_typedef_die): Likewise.
6625 (gen_lexical_block_die): Don't call push/pop_decl_scope.
6626 (gen_inlined_subroutine_die): Likewise.
6627 (gen_abstract_function): Set current_function_decl temporarily.
6628 (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
6629 Handle block extern declarations. Don't call push/pop_decl_scope.
6630 (gen_decl_die): Fix logic for block externs.
6631
6632 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6633
6634 * calls.c (special_function_p): Remove `realloc' and add `strdup'
6635 to the list of functions which have attribute malloc by default.
6636
6637 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6638
6639 * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
6640 integer constant does not match the traditional type, limit the
6641 warnings to cases where the base of the type is ten.
6642
6643 * invoke.texi (-Wtraditional): Document it.
6644
6645 Tue Nov 30 15:18:35 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6646
6647 * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
6648 * rs6000.md: Only access a CONST_INT with INTVAL
6649
6650 Tue Nov 30 14:21:00 1999 Richard Henderson <rth@cygnus.com>
6651
6652 * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
6653 (compute_nearerout): Likewise.
6654 * ggc-page.c (ggc_page_print_statistics): Explicitly cast
6655 size_t to unsigned long for formatting.
6656
6657 1999-11-30 Jakub Jelinek <jakub@redhat.com>
6658
6659 * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
6660 Allow the user to override call-used/fixed state of %g2-5
6661 registers from the command line (with the exception of %g4 for
6662 embedded model).
6663 (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
6664 there is a higher chance of having a leaf function.
6665 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
6666 for ARCH64 which has %ccr register.
6667 * config/sparc/sparc.md (return_losum_si, return_losum_di): New
6668 patterns.
6669 * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
6670 insn accept into delay slot any insn which does not use %[ol]
6671 registers. Accept some LO_SUM and shift left by 1 for the normal
6672 restore case.
6673 (output_function_epilogue): Likewise.
6674 (epilogue_renumber): Added argument which inhibits any renumbering
6675 and just tests if the rtx does not use any %[ol] registers.
6676 (output_return): Reflect above change.
6677
6678 1999-11-30 Jakub Jelinek <jakub@redhat.com>
6679
6680 * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
6681 aggregate passing for sizes <= 16 bytes.
6682
6683 1999-11-30 Bernd Schmidt <bernds@cygnus.co.uk>
6684
6685 * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
6686 * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
6687 * reload.c (find_dummy_reload): Likewise.
6688 (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
6689 * reload1.c (reload_as_needed): Likewise.
6690 * stupid.c (stupid_find_reg): Likewise.
6691 * tm.texi (Obsolete Register Macros): Delete section.
6692 * gmicro.h: Remove all traces of the two macros.
6693 * i386.h: Likewise.
6694 * m88k.h: Likewise.
6695 * mips.h: Likewise.
6696
6697 1999-11-30 Brendan Kehoe <brendan@cygnus.com>
6698
6699 * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
6700 (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
6701 (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
6702 * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
6703 units for the sparclite86x chip.
6704 (flush): Revert October 14th change; add SImode specifically.
6705 (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
6706 * invoke.texi: Document it.
6707
6708 Tue Nov 30 14:58:14 1999 Nick Clifton <nickc@cygnus.com>
6709
6710 * config/mn10200/mn10200.h (PREDICATE_CODES): Add
6711 psimode_truncation_operand.
6712
6713 * config/mn10200/mn10200.c (psimode_truncation_operand): New
6714 function. Return true if the operand is either a MEM valid
6715 for a PSImode address or not a MEM at all.
6716
6717 * config/mn10200/mn10200.md (truncsipsi2): Use
6718 psimode_truncation_operand.
6719
6720 1999-11-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6721
6722 * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
6723 (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
6724 (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
6725 (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
6726 (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
6727 (flow_loop_level_compute, low_loops_level_compute): Likewise.
6728 (flow_loops_find, flow_loop_outside_edge_p): Likewise.
6729 * basic-block.h: Protect from multiple inclusion.
6730 (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
6731 (struct loops, struct loop): Define structures.
6732 * sbitmap.c (sbitmap_a_subset_b_p): New function.
6733 * sbitmap.h: Protect from multiple inclusion.
6734 (sbitmap_a_subset_b_p): Add prototype.
6735 * Makefile.in (LOOP_H): New macro.
6736 (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
6737
6738 Tue Nov 30 01:34:47 1999 Philippe De Muyter <phdm@macqel.be>
6739
6740 * cppinit.c (CAT): The argument list of this macro may not contain
6741 spaces !
6742
6743 1999-11-29 David S. Miller <davem@redhat.com>
6744
6745 Move quantity tables and register equivalence chains into
6746 per-qty and per-register structure arrays respectively.
6747 * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
6748 qty_const_insn, qty_comparison_code, qty_comparison_const,
6749 qty_comparison_qty): Delete, replace with...
6750 (qty_table): this structure table.
6751 (reg_next_eqv, reg_prev_eqv): Delete, replace with...
6752 (reg_eqv_table): this structure table.
6753 (make_new_qty): Add argument MODE. Caller updated.
6754 Update to use qty_table and reg_eqv_table.
6755 (make_regs_eqv, delete_reg_equiv, insert_regs,
6756 insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
6757 fold_rtx, equiv_constant, record_jump_cond, cse_insn,
6758 cse_process_notes, cse_main, cse_basic_block): Likewise.
6759
6760 Mon Nov 29 16:56:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6761
6762 * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
6763 operation if C is negative.
6764 (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
6765 (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
6766 law for some divisions if constant is negative and change other
6767 divisions to the opposite rounding.
6768
6769 * expr.c (store_constructor_field): If bit position is not multiple
6770 of alignment of TARGET's mode, use BLKmode.
6771
6772 * expr.c (expand_expr_unaligned): Add more code from full case
6773 that is needed when OP0 is in a register.
6774
6775 Mon Nov 29 18:09:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6776
6777 * dwarfout.c (field_byte_offset): Size can be zero if there was
6778 an error.
6779
6780 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
6781
6782 * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
6783 (associate_trees): Delete unused var TEM.
6784 (extract_muldiv): Delete unused var CANCEL_P.
6785
6786 * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
6787 (target_isinf, target_isnan, target_negative): Add return types to
6788 function definitions.
6789
6790 1999-11-29 Bruce Korb <autogen@linuxbox.com>
6791
6792 * fixinc/fixincl.c(process): don't skip GLIBC files any more.
6793 * fixinc/hackshell.tpl: ditto
6794 * fixinc/fixtests.c(double_slash_test): more C++ header testing
6795 * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
6796
6797 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
6798
6799 * reload.c (push_reload): When looking for a register to put into
6800 reg_rtx, make sure all hard regs in a multi-reg register are in the
6801 right class and nonfixed.
6802
6803 * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
6804 pending_read_insns, pending_write_insns, pending_read_mems,
6805 pending_write_mems, pending_list_length, last_pending_memory_flush,
6806 last_function_call, sched_before_next_call): Move static variables
6807 into a structure.
6808 (bb_ prefixed versions): Replace with single array bb_deps.
6809 (struct deps): New structure.
6810 (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
6811 sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
6812 argument of type "struct deps *"; use that instead of global
6813 variables. All callers changed.
6814 (init_rgn_data_dependencies): Delete function.
6815 (init_rtx_vector): Delete function.
6816 (init_deps): New function.
6817
6818 (free_pending_lists): Simplify, we always use the bb_deps array even
6819 if only one basic block.
6820 (compute_block_backward_dependences): Likewise.
6821 (schedule_region): Likewise.
6822
6823 (propagate_deps): New function, broken out of
6824 compute_block_backward_dependences.
6825 (compute_block_backward_dependences): Use it.
6826
6827 * alpha.md: Delete useless patterns that tried to work around
6828 register elimination problems.
6829
6830 * unroll.c (loop_iterations): Don't abort if iteration variable
6831 was made by loop.
6832
6833 From Joern Rennecke:
6834 * reload1.c (reloads_conflict): Reverse test comparing operand
6835 numbers when testing for conflict between output/outaddr reloads.
6836
6837 1999-11-29 David S. Miller <davem@redhat.com>
6838
6839 * config/sparc/sparc.c (init_cumulative_args): Fix type of third
6840 arg.
6841 * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
6842
6843 1999-11-28 Robert Lipe <robertl@cygnus.com>
6844
6845 * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
6846 table from .fini into .dtor.
6847
6848 1999-11-28 Anthony Green <green@cygnus.com>
6849
6850 * tree.h (struct tree_decl): Add malloc_flag.
6851 (DECL_IS_MALLOC): Define.
6852 * c-common.c (attrs): Add A_MALLOC attribute.
6853 (init_attributes): Add this attribute to the table.
6854 (decl_attributes): Handle malloc attribute.
6855 * calls.c (special_function_p): Check for the malloc attribute.
6856 * extend.texi (Function Attributes): Document malloc attribute.
6857
6858 Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com)
6859
6860 * pa.md (reload shift-add patterns): Remove.
6861
6862 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6863
6864 * reorg.c (dbr_schedule) Print more statistics. Corrected
6865 problem when printing info when 3 delay slots are filled.
6866
6867 1999-11-28 Jakub Jelinek <jakub@redhat.com>
6868
6869 * combine.c (setup_incoming_promotions): Pass an outgoing
6870 regno to FUNCTION_ARG_REGNO_P which it expects.
6871
6872 1999-11-28 Andreas Jaeger <aj@suse.de>
6873
6874 * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
6875
6876 Sun Nov 28 00:48:15 1999 Philippe De Muyter <phdm@macqel.be>
6877
6878 * cccp.c (do_include): Avoid initialization of automatic variable.
6879
6880 * integrate.c (mark_stores): Function definition made void, to match
6881 previous declaration.
6882 * regclass.c (dump_regclass): Ditto.
6883 * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
6884
6885 Sat Nov 27 08:38:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6886
6887 * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
6888 known to be multiple of divisor.
6889
6890 * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
6891
6892 * combine.c (try_combine): Add code to try to merge a set of a
6893 two-word pseudo to a constant with a setting of one of those words
6894 to a constant.
6895
6896 * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
6897 (split_tree): Completely rework to make more general.
6898 (make_range, fold): Call negate_expr.
6899 (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
6900 (fold, associate): Call new split_tree and associate_trees.
6901 (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
6902
6903 1999-11-26 Bernd Schmidt <bernds@cygnus.co.uk>
6904
6905 * loop.c (try_copy_prop): Avoid GNU C extension.
6906
6907 1999-11-25 Mark Mitchell <mark@codesourcery.com>
6908
6909 * except.c (init_eh_for_function): Still zero eh_return_context,
6910 eh_return_stack_adjust, and eh_return_handler.
6911
6912 * except.h (eh_status): Adjust documentation for x_protect_list.
6913 (begin_protect_partials): New function.
6914 * except.c (enqueue_eh_entry): Fix formatting.
6915 (get_first_handler): Add consistency check.
6916 (add_partial_entry): Adjust usage of protect_list.
6917 (emit_cleanup_handler): Save and restore ehqueue.
6918 (expand_start_all_catch): Add comment.
6919 (begin_protect_partials): New function.
6920 (end_protect_partials): Adjust usage of protect_list.
6921 (init_eh_for_function): Use xcalloc.
6922
6923 1999-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6924
6925 * c-common.c (check_format_info): Don't call a variadic function
6926 with a non-literal format string.
6927
6928 * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
6929
6930 * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
6931 pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
6932 Likewise.
6933
6934 * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
6935 Likewise.
6936
6937 * collect2.c (collect_wait): Likewise.
6938
6939 * dbxout.c (dbxout_type): Likewise.
6940
6941 * gcc.c (do_spec_1): Likewise.
6942
6943 * genemit.c (gen_insn, gen_expand): Likewise.
6944
6945 * genrecog.c (write_switch, write_subroutine): Likewise.
6946
6947 * mips-tfile.c (catch_signal, botch): Likewise.
6948
6949 * print-rtl.c (print_rtx): Likewise.
6950
6951 * toplev.c (default_print_error_function, report_error_function,
6952 _fatal_insn): Likewise.
6953
6954 1999-11-25 Mark Mitchell <mark@codesourcery.com>
6955
6956 * tree.c (unsave_expr_now): Handle NULL_TREE as input.
6957
6958 Wed Nov 24 17:08:09 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6959
6960 * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
6961 operations when needed.
6962 * i386.md (fop_?f_comm): New.
6963 (fop_?f_1): Do not accept commutative operands.
6964
6965 1999-11-25 Andreas Jaeger <aj@suse.de>
6966
6967 * config/mips/mips.md (casesi_internal): Add missing brace.
6968
6969 1999-11-25 Jason Merrill <jason@casey.cygnus.com>
6970
6971 * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
6972 (splice_child_die): Handle moving a child DIE from the declaration
6973 DIE of a class to its specification.
6974 (gen_struct_or_union_type_die): Use 'complete' consistently.
6975 (gen_decl_die): Generate the virtual context DIE first.
6976 Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
6977
6978 1999-11-24 Gavin Romig-Koch <gavin@cygnus.com>
6979
6980 * config/mips/mips.md (call_value_multiple_interanal1): New.
6981
6982 1999-11-24 Jason Merrill <jason@casey.cygnus.com>
6983
6984 * dwarf2out.c (free_AT, free_die): New fns.
6985 (remove_children): Call them.
6986 (output_line_info): Disable removal of duplicate notes.
6987
6988 Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
6989 * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
6990 means pretend the type isn't defined.
6991 Don't defer emitting types.
6992 (gen_type_die_for_member): New fn.
6993 (gen_decl_die): Call it.
6994 (splice_child_die): New fn.
6995 (gen_member_die): Call it rather than generate duplicate dies.
6996
6997 Defer emitting information for the abstract instance of an inline
6998 until we either inline it or emit an out-of-line copy.
6999 * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
7000 from output_inline_function if DECL_ABSTRACT is also set.
7001 (block_ultimate_origin): Likewise.
7002 (gen_abstract_function): New fn.
7003 (gen_decl_die, gen_inlined_subroutine_die): Call it.
7004 (gen_subprogram_die): An abstract instance is not a declaration
7005 just because it doesn't match current_function_decl. Don't abort
7006 because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration
7007 has an abstract origin.
7008 * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
7009 abstract instance here.
7010
7011 Wed Nov 24 18:39:18 1999 Andrew Haley <aph@cygnus.com>
7012
7013 * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
7014 where we need to reload fpul from a system register.
7015
7016 1999-11-24 Andreas Jaeger <aj@suse.de>
7017
7018 * config/mips/linux.h (CPP_PREDEFINES): Added.
7019 (LINK_SPEC): Remove -Y since this is only needed on sparc.
7020
7021 1999-11-24 Andreas Jaeger <aj@suse.de>
7022
7023 * config/mips/linux.h (TARGET_VERSION): Added.
7024 (HANDLE_SYSV_PRAGMA): Added.
7025 (DEFAULT_VTABLE_THUNKS): Added.
7026
7027 Wed Nov 24 14:12:15 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
7028
7029 * local-alloc.c (qty): New structure and static variable.
7030 (qty_phys_reg): Remove, all references changed to qty.
7031 (qty_n_refs): Likewise.
7032 (qty_min_class): Likewise.
7033 (qty_birth): Likewise.
7034 (qty_death): Likewise.
7035 (qty_size): Likewise.
7036 (qty_mode): Likewise.
7037 (qty_n_calls_crossed): Likewise.
7038 (qty_alternate_class): Likewise.
7039 (qty_changes_size): Likewise.
7040 (qty_first_reg): Likewise.
7041 (alloc_qty): Rename variable QTY to QTYNO.
7042 (finf_free_reg): Likewise.
7043 (local_alloc): Allocate qty, do not allocate the removed variables.
7044
7045 Wed Nov 24 17:26:05 1999 Geoffrey Keating <geoffk@cygnus.com>
7046
7047 * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
7048 when -membedded-pic is passed.
7049
7050 * config/mips/mips.md (casesi): Handle 64-bit case too.
7051 (casesi_internal_di): New insn.
7052
7053 * config/mips/mips.c (embedded_pic_offset): Always make the
7054 embedded-pic subtractions relative to the name of the current
7055 function by use of the magic string "..CURRENT_FUNCTION".
7056 * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
7057
7058 1999-11-24 Geoffrey Keating <geoffk@cygnus.com>
7059
7060 * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
7061 of (const_int 0), when what we really care about is
7062 whether it's a zero constant anyway.
7063 (div_trap_mips16): Likewise.
7064
7065 1999-11-23 Mark Mitchell <mark@codesourcery.com>
7066
7067 * loop.c (loop_optimize): Always find_loop_tree_blocks and
7068 unroll_block_trees when generating debuggable code.
7069
7070 * tree.h (unsave_expr_1): New function.
7071 (lang_unsave): New variable.
7072 (get_callee_fndecl): New function.
7073 * tree.c (unsave_expr_now_r): New function.
7074 (lang_unsave): Define.
7075 (unsave_expr_1): Likewise.
7076 (unsave_expr_now_r): Split out from unsave_expr_now.
7077 (unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise,
7078 call unsave_expr_now_r.
7079 (get_callee_fndecl): Define.
7080
7081 * Makefile.in (gencheck): Don't depend on lang_tree_files.
7082 (gencheck.o): Do depend on lang_tree_files.
7083
7084 * integrate.h (copy_decl_for_inlining): New declaration.
7085 * integrate.c (copy_and_set_decl_abstract_origin): Remove.
7086 (copy_decl_for_inlining): New function.
7087 (integrate_parm_decls): Use it.
7088 (integrate_decl_tree): Likewise.
7089
7090 1999-11-23 Gavin Romig-Koch <gavin@cygnus.com>
7091
7092 * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
7093 the second two from the first.
7094 (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
7095 * config/mips/mips.md (movcc,reload_incc,reload_outcc,
7096 conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
7097 ISA_HAS_FP4.
7098 * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
7099 override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
7100 ISA_HAS_FP4.
7101
7102 Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com)
7103
7104 * pa.md (call_internal_symref, call_value_internal_symref): No mode
7105 needed on the address operand.
7106 * pa.c (call_operand_address): Check for the correct mode.
7107
7108 1999-11-23 Bernd Schmidt <bernds@cygnus.co.uk>
7109
7110 * loop.c: Include "basic-block.h".
7111 (try_copy_prop, replace_loop_reg): New functions.
7112 (load_mems): Detect registers that just hold copies of the hoisted
7113 mem, and call try_copy_prop to eliminate them.
7114 * Makefile.in (loop.o): Update dependencies.
7115
7116 Tue Nov 23 01:03:29 1999 Hans-Peter Nilsson <hp@axis.com>
7117
7118 * Makefile.in (gencheck.o): Depend on gencheck.h.
7119 (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
7120 (insn-peep.o): Depend on except.h and function.h.
7121 (insn-attrtab.o): Depend on RECOG_H.
7122 (insn-output.o): Depend on toplev.h and flags.h.
7123 (gengenrtl.o): Depend on real.h.
7124 (gen-protos.o): Depend on cpplib.h and cpphash.h.
7125 Unify all dependencies to be on RECOG_H rather than recog.h.
7126
7127 Tue Nov 23 00:57:10 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7128
7129 From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
7130 * configure.in: Try building a bi-arch 32/64-bit compiler on
7131 sparc-*-solaris2.7 and higher.
7132 * configure: Rebuild.
7133
7134 Mon Nov 22 23:09:44 1999 David O'Brien <obrien@FreeBSD.org>
7135
7136 * config/freebsd.h: New, FreeBSD architecture independent file.
7137 * config/i386/freebsd-elf.h: removed FreeBSD architecturally
7138 independent pieces.
7139 * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
7140 directly by i386/freebsd.h.
7141 * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
7142 independent configuration file.
7143 (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
7144 directly by i386/freebsd.h.
7145 * configure: Rebuilt.
7146
7147 * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
7148 which is in the user's namespace.
7149 * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
7150 `i386' which is not in our namespace.
7151
7152 Mon Nov 22 22:58:01 1999 "R. Kelley Cook" <KelleyCook@attglobal.net>
7153
7154 * invoke.texi (ARM Options): Add in -mno-alignment-traps
7155
7156 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
7157
7158 * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
7159 (add_dwarf_attr, add_child_die): Just push onto the front.
7160 (reverse_die_lists): New fn.
7161 (add_sibling_attributes): Use it.
7162 (push_decl_scope): Reorganize.
7163 (add_name_and_src_coords_attributes): Don't set file and line for
7164 an artificial decl.
7165 (gen_subprogram_die): An artificial function doesn't need to match
7166 file and line.
7167 (gen_compile_unit_die): Return the generated die. Only add
7168 AT_comp_dir if the filename is relative.
7169 (remove_AT): Simplify loop. Also free string values.
7170 (output_die): A DIE ref can't be null.
7171 (output_value_format, value_format): Take a dw_attr_ref.
7172 (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
7173 (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
7174 AT_addr, AT_lbl): New fns.
7175 (various): Use them.
7176 (various): Constify.
7177
7178 Mon Nov 22 23:53:50 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
7179
7180 * combine.c (combine_simplify_rtx): When handling a SUBREG,
7181 take SUBREG_WORD into account.
7182 (if_then_else_cond): Likewise.
7183
7184 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
7185
7186 * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
7187 clause from BSD license, pursuant with
7188
7189 ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
7190
7191 1999-11-22 Bernd Schmidt <bernds@cygnus.co.uk>
7192
7193 * loop.c (load_mems): Reformat slightly.
7194 * basic-block.h (regset_head): New typedef.
7195 (INIT_REG_SET): New macro.
7196
7197 1999-11-22 Bruce Korb <autogen@linuxbox.com
7198
7199 * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
7200 (mips-dec-bsd*): non-functional code
7201 (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
7202
7203 * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
7204 added three replacement fixes
7205 (no_double_slash): removed comments that are not (any longer) pertinent
7206 (bad_lval): this fix currently runs against many files.
7207 The comment seems to indicate that we should select for files
7208 containing 'pragma extern_prefix'.
7209
7210 * fixinc/fixinc.x86-linux-gnu: deleted
7211 * fixinc/inclhack.sh: regen
7212 * fixinc/fixincl.x: regen
7213 * fixinc/fixincl.sh: regen
7214
7215 Fri Nov 12 14:08:40 1999 Andrew Haley <aph@cygnus.com>
7216
7217 * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
7218 its code is INSN and it has no notes.
7219
7220 1999-11-22 Andrew Haley <aph@cygnus.com>
7221
7222 * varasm.c (function_defined): Remove.
7223 (make_function_rtl): Don't set function_defined.
7224 (make_decl_rtl): Remove global register warning.
7225 * regclass.c (no_global_reg_vars): New variable.
7226 (globalize_reg): Warn if function has already been defined.
7227 (regclass_init): Set no_global_reg_vars.
7228
7229 Mon Nov 22 14:42:22 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
7230
7231 * regclass.c (reg_pref): New structure and static variable
7232 (prefclass): Delete.
7233 (altclass): Delete.
7234 (all uses of prefclass and altclass): Use reg_pref instead.
7235
7236 1999-11-21 Nick Clifton <nickc@cygnus.com>
7237
7238 * invoke.texi (ARM Options): Replace -mshort-load-bytes with
7239 -malignment-traps.
7240 (arm.h): Replace -mshort-load-bytes with -malignment-traps.
7241 (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
7242 (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
7243
7244 Sun Nov 21 17:11:13 1999 Geoffrey Keating <geoffk@cygnus.com>
7245
7246 * varasm.c (output_constructor): Solve problem with long long
7247 bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
7248
7249 Fri Nov 19 05:48:45 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
7250
7251 * global.c (allocno): New structure and static variable.
7252 (allocno_reg): Remove, all references replaced by allocno.
7253 (allocno_size): Likewise.
7254 (hard_reg_conflicts): Likewise.
7255 (hard_reg_preferences): Likewise.
7256 (hard_reg_copy_preferences): Likewise.
7257 (hard_reg_full_preferences): Likewise.
7258 (regs_someone_prefers): Likewise.
7259 (allocno_calls_crossed): Likewise.
7260 (allocno_n_refs): Likewise.
7261 (allocno_live_length): Likewise.
7262 (find_reg): Rename ALLOCNO to NUM.
7263
7264 * regclass.c (may_move_in_cost): Rename from may_move_cost, all
7265 references updated.
7266 (may_move_out_cost): New variable.
7267 (init_reg_sets_1): Initialize may_move_out_cost.
7268 (record_reg_classes): Use may_move_out_cost.
7269
7270 * regclass.c (dump_regclass): New function.
7271 (regclass): New parameter DUMP, call DUMP_REGCLASS.
7272 * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
7273 pass rtl_dump_file to regclass.
7274 * rtl.h (regclass): Update prototype.
7275
7276 Fri Nov 19 06:32:19 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
7277
7278 * i386.md (neg, not and abs patterns): Revmap to use
7279 ix86_expand_unary_operator and ix86_unary_operator_ok.
7280 (add?f and sub?f expanders): Force operand 1 to register.
7281 * i386.c (ix86_expand_unary_operator): Rewrite.
7282 (ix86_unary_operator_ok): Ensure that memory operands
7283 match real opcode.
7284 (ix86_binary_operator_ok): Do not allow operand 1 to
7285 come into memory and operand 0 not.
7286 (ix86_expand_binary_operator): Ensure that
7287 src1 is not non-matching memory.
7288
7289 * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
7290 to support integer registers and memory.
7291 (abss?2_integer): Likewise.
7292
7293 * i386.h (enum reg_class): Add FLOAT_INT_REGS.
7294 (REG_CLASS_NAMES): Likewise.
7295 (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
7296 and GENERAL_REGS.
7297 * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
7298 (movsf): Likewise; unify 4th and 5th alternative.
7299 (pushdf): Likewise.
7300 (movdf_1): Likewise; rename to movdf_integer.
7301 (pushxf): Likewise; rename to pushxf_integer; fix output template;
7302 remove redundant splitter.
7303 (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
7304 (movdf_nointeger): New.
7305 (movxf_nointeger): New.
7306 (pushxf_nointeger): New.
7307
7308 * i386.md (extend?f?f): Split to expander and pattern, refuse two
7309 memory operands in patterns.
7310 (fop*): Refuse two memory operands.
7311
7312 * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
7313 on !TARGET_USE_CLTD CPUs.
7314
7315 Fri Nov 19 10:41:15 GMT 1999 Nathan Sidwell <nathan@acm.org>
7316
7317 * extend.texi: Document C++ restricted pointers and references.
7318
7319 1999-11-19 Bernd Schmidt <bernds@cygnus.co.uk>
7320
7321 * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
7322 (invalidate_skipped_set): Call it unconditionally.
7323 (cse_set_around_loop): Likewise.
7324
7325 Thu Nov 18 17:29:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
7326
7327 * rtl.texi (mem): Add documentation for alias-set argument
7328 to RTX `mem'.
7329
7330 Fri Nov 18 13:39:22 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
7331
7332 * i386.h (struct_processor_costs): New fields int_load, int_store,
7333 fp_move, fp_load and fp_store
7334 (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
7335 fp->int moves
7336 (MEMORY_MOVE_COST): New macro.
7337 * i386.c (386_cost): Define new fields.
7338 (i486_cost): Likewise.
7339 (pentium_cost): Likewise.
7340 (pentiumpro_cost): Likewise.
7341 (k6_cost): Likewise.
7342
7343 Fri Nov 19 11:11:55 1999 Greg McGary <gkm@gnu.org>
7344 Geoffrey Keating <geoffk@cygnus.com>
7345
7346 * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
7347
7348 * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
7349 MASK_ALIGN_INT.
7350
7351 * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
7352 (TARGET_STRICT_ALIGNMENT): New macro.
7353 (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
7354 (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
7355 * invoke.texi (M680x0 Options): Document -mstrict-align.
7356
7357 Thu Nov 18 11:10:03 1999 Jan Hubicka <hubicka@freesoft.cz>
7358 Richard Henderson <rth@cygnus.com>
7359
7360 * i386-protos.h (split_xf, ix86_split_movdi): Remove.
7361 (ix86_split_long_move): Declare.
7362 * i386.c (split_xf, ix86_split_movdi): Remove.
7363 (ix86_split_to_parts, ix86_split_long_move): New.
7364 * i386.md (dimode move splitters): Use ix86_split_long_move.
7365 (dfmode move splitters): Likewise.
7366 (xfmode move splitters): Likewise.
7367 (movsf_1): Allow F->r.
7368 (movdf_1, movxf_1): Allow F->ro.
7369
7370 1999-11-17 Mark Mitchell <mark@codesourcery.com>
7371
7372 * except.h (struct eh_entry): Add goto_entry_p.
7373 (eh_region_from_symbol): Remove prototype.
7374 * except.c (find_func_region_from_symbol): New function.
7375 (emit_cleanup_handler): Likewise.
7376 (eh_region_from_symbol): Make it static.
7377 (add_new_handler): Verify the argument.
7378 (find_func_region): Update comment.
7379 (expand_eh_region_end): Expand handlers here, rater than waiting
7380 until expand_leftover_cleanups or start_all_catch.
7381 (expand_leftover_cleanups): Don't expand here.
7382 (expand_start_all_catch): Or here.
7383 (expand_rethrow): Check the return value from find_func_region.
7384 * function.c (expand_function_end): Emit the catch_clauses.
7385
7386 1999-11-18 Gavin Romig-Koch <gavin@cygnus.com>
7387
7388 * integrate.c (expand_inline_function): Add necessary check for NULL.
7389
7390 1999-11-18 Nick Clifton <nickc@cygnus.com>
7391
7392 * toplev.c (main): Correctly detect an unrecognised option.
7393
7394 * cppinit.c (cpp_handle_option): Do not claim to have consumed
7395 a -f option if it has not been recognised.
7396
7397 Thu Nov 18 00:59:11 1999 Michael Gschwind <mikeg@alagoas.watson.ibm.com>
7398
7399 * basic-block.h (update_life_extent): Remove trailing comma on
7400 enumeration type list.
7401
7402 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7403
7404 * varasm.c (output_constructor) Solved problem with long long
7405 bitfields. Corrected calculating this_time and shift. Also
7406 corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
7407
7408 Wed Nov 17 23:46:14 1999 Jeffrey A Law (law@cygnus.com)
7409
7410 * flow.c (split_edge): Take looping structure into account when
7411 determining where to put the new block note.
7412
7413 Wed Nov 17 20:42:43 1999 Jeff Holcomb <jeffh@cygnus.com>
7414
7415 * Makefile.in (ggc-none.o): Provide host specific version if
7416 needed.
7417
7418 Wed Nov 17 16:51:23 1999 Richard Henderson <rth@cygnus.com>
7419
7420 * cse.c (delete_trivially_dead_insns): Identify no-op insns
7421 containing subregs too.
7422
7423 Wed Nov 17 17:39:48 MST 1999 Diego Novillo <dnovillo@cygnus.com>
7424
7425 * invoke.texi: Add documentation for -muninit-const-in-rodata.
7426 * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
7427 (TARGET_UNINIT_CONST_IN_RODATA): Define.
7428 (text_section): Add switches -munint-const-in-rodata and
7429 -mno-uninit-const-in-rodata.
7430 (ASM_OUTPUT_COMMON): Remove.
7431 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
7432 const objects should be placed in read-only data. Otherwise declare
7433 them in common.
7434
7435 Wed Nov 17 16:38:32 1999 Richard Henderson <rth@cygnus.com>
7436
7437 * jump.c (jump_optimize_1): Revert last change.
7438
7439 Wed Nov 17 15:18:30 1999 Richard Henderson <rth@cygnus.com>
7440
7441 * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
7442 test if optimizing for size.
7443
7444 1999-11-17 Mark Mitchell <mark@codesourcery.com>
7445
7446 * Makefile.in (toplev.o): Depend on except.h.
7447 (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
7448
7449 Mon Nov 15 22:45:39 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
7450
7451 * i386.md (divmodsi4): Rewrite to expander.
7452 (*divmodsi4_nocltd): New.
7453 (*divmodsi4_cltd): New.
7454 (divmodsi4 splitter): Handle the case when input comes in edx.
7455 (udivmodhi4): Do not use constraints in exander.
7456 (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
7457
7458 1999-11-17 Jason Merrill <jason@yorick.cygnus.com>
7459
7460 * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
7461 for the common case.
7462
7463 1999-11-16 Jakub Jelinek <jakub@redhat.com>
7464
7465 * explow.c (hard_function_value): Add outgoing argument.
7466 * expr.h (hard_function_value): Declare it.
7467 * calls.c (expand_call, emit_library_call_value): Update callers.
7468 * function.c (aggregate_value_p): Ditto.
7469 (diddle_return_value): Must look at the outgoing registers
7470 on archs with register windows.
7471
7472 Mon Nov 15 20:46:45 1999 Richard Henderson <rth@cygnus.com>
7473
7474 * alpha.c (alpha_build_va_list): Use make_lang_type and
7475 initialize TYPE_NAME for the va_list record.
7476
7477 * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
7478
7479 * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
7480 for printing.
7481 * ggc.h (struct ggc_statistics): Rearrange elements for better
7482 packing on 64-bit hosts.
7483 * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
7484 (compute_nearerout): Likewise.
7485
7486 Tue Nov 16 14:37:52 1999 Geoffrey Keating <geoffk@cygnus.com>
7487
7488 * config/rs6000/rs6000.c (first_reg_to_save): Save
7489 PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
7490
7491 1999-11-15 Jason Merrill <jason@casey.cygnus.com>
7492
7493 * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
7494 notion of nesting to find the DIE for a type or function.
7495 DIEs can go in limbo even if we got a context_die.
7496 (push_decl_scope): Our context doesn't need to be in decl_scope_table.
7497 (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
7498 for local type.
7499 (gen_decl_die): Ignore NAMESPACE_DECLs for now.
7500 (gen_type_die): Writing out the context doesn't cause member class
7501 template instantiations to be written out as well.
7502
7503 Mon Nov 15 15:33:18 1999 Richard Henderson <rth@cygnus.com>
7504
7505 * rs6000.h (ASM_OUTPUT_DEF): New.
7506 Based on proposed addition from David Edelsohn.
7507
7508 1999-11-15 Robert Lipe <RobertLipe@usa.net>
7509 Bruce Korb <autogen@linuxbox.com>
7510
7511 * fixinc/inclhack.def
7512 (AAB_svr4_replace_byteorder): added. Takes advantage of GCC features
7513 (unixware7_byteorder_fix): added. Removes conflicts for new defs
7514 in net/inet.h.
7515 (svr5_mach_defines): added. Like svr4_mach_defines, with new syntax
7516 (svr4_endian): enabled with SVR5
7517 (svr4_mkdev): simplified syntax and enabled with SVR5
7518
7519 Sun Nov 14 18:49:37 1999 David O'Brien <obrien@FreeBSD.org>
7520
7521 * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
7522 * configure: Rebuilt.
7523 * config/t-freebsd-thread: New file.
7524
7525 Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com)
7526
7527 * i386.c (ix86_decompose_address): Verify the base is a REG
7528 before trying to examine its register number.
7529
7530 * basic-block.h: Remove all #defines and prototypes related to
7531 integer lists.
7532 (free_bb_mem, compute_preds_succs): Remove prototype.
7533 * rtl.h (free_bb_mem): Remove prototype.
7534 * flow.c (alloc_int_list_node); Remove function.
7535 (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
7536 (compute_preds_succs, free_bb_mem): Likewise.
7537 * gcse.c (gcse_main): Do not call free_bb_mem anymore.
7538 * toplev.c (rest_of_compilation): Likewise.
7539 * haifa-sched.c (build_control_flow): Use flow generated edge
7540 list to build the haifa specific edge list.
7541 (find_rgns): Use new CFG data structures instead of pred/succ lists.
7542 (schedule_insns): Do not build pred/succ lists anymore. Instead
7543 build the edge table.
7544
7545 * basic-block.h (dump_bb_data): Remove declaration.
7546 * flow.c (dump_bb_data): Remove function.
7547 * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
7548 (sbitmap_union_of_predsucc): Likewise.
7549
7550 * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
7551 argument. All callers changed.
7552 (delete_null_pointer_checks_1): No longer need to compute the
7553 pred/succ lists.
7554
7555 * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
7556 All callers changed.
7557 (pre_expr_reaches_here_p_work): Likewise.
7558 (pre_edge_insert): No longer call pre_expr_reaches_here_p.
7559 * lcm.c (compute_laterin): Fix initialization of LATER.
7560 (compute_nearerout): Similarly for NEARER.
7561
7562 Sun Nov 14 12:41:57 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7563
7564 * cse.c (set_nonvarying_address_components): Delete unused function.
7565 (refers_to_p): Likewise.
7566
7567 Fri Nov 12 20:53:22 1999 Jeffrey A Law (law@cygnus.com)
7568
7569 * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
7570 needed.
7571
7572 Sat Nov 13 16:20:09 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7573
7574 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
7575 definition in do while (0).
7576
7577 Fri Nov 12 16:26:25 1999 Jim Wilson <wilson@cygnus.com>
7578
7579 * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
7580
7581 Fri Nov 12 12:43:49 1999 Richard Henderson <rth@cygnus.com>
7582
7583 * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
7584
7585 Fri Nov 12 15:14:19 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
7586
7587 * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
7588 (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
7589 (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
7590 (INITIAL_FRAME_POINTER_OFFSET): Remove it.
7591
7592 * i960.c (i960_function_prologue): Don't allocate space for g8-g11
7593 saved on the stack. Output more accurate stack frame statistics
7594 into assembler file.
7595
7596 1999-11-12 11:47 -0800 Zack Weinberg <zack@bitmover.com>
7597
7598 * genextract.c (record_insn_name): New function.
7599 (get_insn_name): No longer a stub.
7600 (main): Call record_insn_name for each insn. After each label
7601 written, print the insn name in a comment.
7602
7603 Fri Nov 12 13:45:02 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7604
7605 * output.h (const_section, init_section, fini_section): Add
7606 prototypes.
7607
7608 * alpha/elf.h (const_section): Delete declaration.
7609
7610 * svr4.h (const_section): Likewise.
7611
7612 Fri Nov 12 08:54:22 1999 Mark Mitchell <mark@codesourcery.com>
7613
7614 * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
7615 * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
7616 (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
7617 expressions.
7618 * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
7619 variable-sized array bounds.
7620
7621 Fri Nov 12 08:04:45 1999 Catherine Moore <clm@cygnus.com>
7622
7623 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Use
7624 ASM_OUTPUT_LABEL.
7625
7626 Fri Nov 12 13:31:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7627
7628 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
7629 addresses the same way GO_IF_LEGITIMATE_INDEX does.
7630
7631 Fri Nov 12 12:36:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7632
7633 * cse.c (hash_arg_in_struct): Delete.
7634 (struct table_elt): Delete elt in_struct.
7635 (struct set): Delete elt src_in_struct.
7636 (merge_equiv_classes): Don't set either hash_arg_in_struct or
7637 the corresponding in_struct elts.
7638 (canon_hash): Likewise.
7639 (safe_hash): Likewise.
7640 (find_best_addr): Likewise.
7641 (record_jump_cond): Likewise.
7642 (cse_insn): Likewise.
7643
7644 Thu Nov 11 19:45:24 1999 Jim Wilson <wilson@cygnus.com>
7645
7646 * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
7647
7648 * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
7649 unsigned types.
7650
7651 Thu Nov 11 18:54:24 1999 Jeffrey A Law (law@cygnus.com)
7652
7653 * function.c (diddle_return_value): Put back check that the DECL_RTL
7654 for the function is a register.
7655
7656 * function.c (diddle_return_value): Use hard_function_value to
7657 get an rtx suitable for use in the USE/CLOBBER insn.
7658
7659 * global.c (global_conflicts): Update comments.
7660 (record_conflicts): No need to record conflicts between pseudos here.
7661
7662 1999-11-11 Bruce Korb <autogen@linuxbox.com>
7663
7664 * fixinc/fixincl.c: Added verbose levels for status messages
7665
7666 Thu Nov 11 13:23:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7667
7668 * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
7669 operand as argument to expand_and or expand_binop.
7670
7671 Thu Nov 11 02:21:16 1999 Rodney Brown <RodneyBrown@pmsc.com>
7672
7673 * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
7674 gcc_add_string_root.
7675
7676 Wed Nov 10 21:24:19 1999 Jason Eckhardt <jle@cygnus.com>
7677
7678 * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
7679
7680 Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com)
7681
7682 * flow.c (compute_flow_dominators): Initially put all blocks on
7683 the worklist.
7684 * lcm.c (compute_antinout_edge, compute_available): Similarly.
7685 * gcse.c (compute_cprop_avinout): Remove.
7686 (compute_cprop_data): Use compute_available.
7687 (delete_null_pointer_checks_1): Use compute_available.
7688
7689 * basic-block.h (compute_available): Returns a void now.
7690 * gcse.c (one_classic_gcse_pass): Do not expect compute_available
7691 to return a value anymore.
7692 * lcm.c (compute_available, compute_antinout_edge): Revamp to use
7693 worklists. Fix boundary cases. Compute maximal solutions.
7694 (compute_laterin, compute_nearerout): Similarly.
7695
7696 * dwarf2out.c (add_AT_location_description): Allow
7697 (mem (plus (pseudo) (...)) too.
7698
7699 Wed Nov 10 10:52:42 1999 Tom Tromey <tromey@cygnus.com>
7700
7701 * gcc.c (do_spec_1): Support text between `%u' and `%O'.
7702
7703 Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
7704 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7705
7706 * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
7707
7708 * gansidecl.h: Likewise.
7709
7710 * rtl.c: Likewise.
7711
7712 * rtl.h: Likewise.
7713
7714 * toplev.h: Likewise.
7715
7716 * tree.c: Likewise.
7717
7718 * tree.h: Likewise.
7719
7720 * varray.c: Likewise.
7721
7722 * varray.h: Likewise.
7723
7724 Wed Nov 10 10:57:22 1999 Clinton Popetz <cpopetz@cygnus.com>
7725
7726 * gcov.c (struct arcdata): Add hits and total, remove prob.
7727 (output_branch_counts): New.
7728 (process_args): Set output_branch_counts if -c.
7729 (calculate_branch_probs): Store hits and total instead of
7730 percentage.
7731 (output_data): Emit counts if output_branch_counts is true.
7732 * gcov.texi (Invoking Gcov): Document -c switch..
7733
7734 Wed Nov 10 01:10:41 1999 Philippe De Muyter <phdm@macqel.be>
7735
7736 * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
7737 `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
7738
7739 Wed Nov 10 00:51:41 1999 Hans-Peter Nilsson <hp@axis.se>
7740
7741 * invoke.texi (C Dialect Options): Add missing builtins from
7742 c-common.c to list.
7743 * extend.texi (Other Builtins): Copy to this list.
7744
7745 Wed Nov 10 04:58:09 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
7746
7747 * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
7748 (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise. Remove
7749 redundant bitmap.h.
7750
7751 Wed Nov 10 00:02:53 1999 Jeffrey A Law (law@cygnus.com)
7752
7753 * flow.c (compute_flow_dominators): No longer treat basic block 0
7754 or (n_basic_blocks - 1) specially. Clear the AUX field before
7755 starting computation of doms/pdoms. Fix initial state for pdoms.
7756
7757 Wed Nov 10 03:58:08 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
7758
7759 * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
7760 match rtl.o's: added ggc.h and toplev.h
7761 ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
7762 ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
7763 ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
7764
7765 Tue Nov 9 10:30:08 1999 Tom Tromey <tromey@cygnus.com>
7766
7767 * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
7768 from HAVE_DOS_BASED_FILESYSTEM.
7769 * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
7770 HAVE_DOS_BASED_FILESYSTEM.
7771 (main): Likewise.
7772 (split_directories): Only special-case DOS file names if
7773 HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR
7774 instead of explicit tests. Conditionalize on !VMS.
7775 (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
7776 tests. Conditionalize on !VMS.
7777 (process_command): Only use make_relative_prefix if !VMS.
7778 (free_split_directories): Conditionalize on !VMS.
7779 (DIR_UP): Conditionalize on !VMS.
7780
7781 Wed Jun 9 16:57:11 1999 Mumit Khan <khan@xraylith.wisc.edu>
7782
7783 * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
7784
7785 Fri Feb 5 14:22:01 1999 Mumit Khan <khan@xraylith.wisc.edu>
7786
7787 * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
7788 case.
7789
7790 Mon Nov 8 14:16:57 1999 Michael Meissner <meissner@cygnus.com>
7791
7792 * invoke.texi (Environment Variables): Document relative path
7793 lookup.
7794 * gcc.c (DIR_UP): If not defined, define as "..".
7795 (standard_bindir_prefix): New static, holds target location to
7796 install binaries.
7797 (split_directories): New function to split a filename into
7798 component directories.
7799 (free_split_directories): New function, release memory allocated
7800 by split_directories.
7801 (make_relative_prefix): New function, make a relative pathname if
7802 the compiler is not in the expected location.
7803 (process_command): If GCC_EXEC_PREFIX was not specified, see if we
7804 can figure out an appropriate prefix from argv[0].
7805 * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
7806 STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define
7807 STANDARD_BINDIR_PREFIX.
7808
7809 Wed Nov 10 11:47:54 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7810
7811 * config/c4x/c4x-protos.h: New file. Prototypes for functions defined
7812 in c4x.c.
7813 * config/c4x/c4x.h: Moved prototypes to c4x.h.
7814 * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
7815 c4x_secondary_memory_needed) Delete.
7816 (fp_zero_operand): Add mode argument.
7817
7818 Thu Nov 4 15:52:35 1999 Andrew Haley <aph@cygnus.com>
7819
7820 * reload1.c (reload_reg_free_for_value_p): Don't use a register
7821 that is in reload_reg_used.
7822
7823 Tue Nov 9 16:43:00 1999 Nick Clifton <nickc@cygnus.com>
7824
7825 * config/arm/arm-protos.h: New file: Prototypes for functions
7826 defined in arm.c and pe.c.
7827 * config/arm/arm.h: Fix compile time warnings.
7828 * config/arm/arm.c: Fix compile time warnings.
7829 * config/arm/pe.h: Fix compile time warnings.
7830 * config/arm/aout.h: Fix compile time warnings.
7831
7832 Tue Nov 9 14:55:44 1999 Nick Clifton <nickc@cygnus.com>
7833
7834 * config/m32r/m32r-protos.h: New file: Prototypes for functions
7835 defined in m32r.c
7836
7837 * config/m32r/m32r.h: Move prototypes to m32r-protos.h
7838 Add support for subtargets.
7839 Add prototypes for new predicates.
7840 Add scheduling macros.
7841
7842 * config/m32r/m32r.c: Fix compile time warnings.
7843 (int8_operand): New predicate function.
7844 (reg_or_cmp_int16_operand): New predicate function.
7845 (extend_operand): New predicate function.
7846 (m32r_adjust_code): New scheduling function.
7847 (m32r_adjust_priorty): New scheduling function.
7848 (m32r_sched_init): New scheduling function.
7849 (m32r_sched_reorder): New scheduling function.
7850 (m32r_sched_variable_issue): New scheduling function.
7851 (direct_return): New codegen function.
7852 (m32r_not_same_reg): New rtl testsing function.
7853
7854 * config/m32r/m32r.md: Fix compile time warnings.
7855 Add support for pre decrement and post increment memory
7856 references.
7857 Add S<cc> patterns.
7858 Add fabs patterns.
7859
7860 Mon Nov 8 22:20:13 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
7861
7862 * global.c (EXECUTE_IF_CONFLICT): Don't define.
7863 (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
7864 (find_reg): Likewise.
7865
7866 Mon Nov 8 13:16:46 1999 Jason Eckhardt <jle@cygnus.com>
7867
7868 * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
7869 to avoid assembler errors.
7870
7871 Mon Nov 8 15:38:41 1999 Nick Clifton <nickc@cygnus.com>
7872
7873 * config/v850/v850-protos.h: New file: Prototypes for functions
7874 defined in v850.c
7875 * config/v850/v850.h: Move prototypes to v850-protos.h
7876 * config/v850/v850.c: Move prototypes to v850-protos.h
7877 * config/v850/v850.md: Fix compile time warnings.
7878
7879 * config/fr30/fr30-protos.h: New file: Prototypes for functions
7880 defined in fr30.c
7881 * config/fr30/fr30.h: Move prototypes to fr30-protos.h
7882 * config/fr30/fr30.c: Fix compile time warnings.
7883 * config/fr30/fr30.md: Fix compile time warnings.
7884
7885 Mon Nov 8 07:25:37 1999 Mark Mitchell <mark@codesourcery.com>
7886
7887 * tree.h (get_containing_scope): Declare it.
7888 * tree.c (get_containing_scope): New fucntion.
7889 (decl_function_context): Use it.
7890 * toplev.c (rest_of_compilation): Use get_containing_scope.
7891
7892 aMon Nov 8 03:03:07 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
7893
7894 * Makefile.in (rtl.o): Depend on toplev.h.
7895
7896 Sun Nov 7 20:55:14 1999 Mark Mitchell <mark@codesourcery.com>
7897
7898 * cse.c (delete_trivially_dead_insns): Replace alloca with
7899 xmalloc/xcalloc.
7900 * except.c (update_rethrow_references): Likewise.
7901 (init_eh_nesting_info): Likewise.
7902 * function.c (identify_blocks): Likewise.
7903 * gcse.c (dump_hash_table): Likewise.
7904 * graph.c (print_rtl_graph_with_bb): Likewise.
7905 * loop.c (combine_movables): Likewise.
7906 (move_movables): Likewise.
7907 (count_loop_regs_set): Likewise.
7908 (strength_reduce): Likewise.
7909 * profile.c (compute_branch_probabilities): New function, split
7910 out from ...
7911 (branch_prob): Here. Replace alloca with xmalloc/xcalloc.
7912 * regclass.c (regclass): Likewise.
7913 * regmove.c (regmove_optimize): Likewise.
7914 * toplev.c (compile_file): Likewise.
7915 (main): Don't mess with the stack rlimit.
7916
7917 Sun Nov 7 19:41:17 1999 Catherine Moore <clm@cygnus.com>
7918
7919 * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
7920 (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
7921
7922 Sun Nov 7 10:23:28 1999 Mark P. Mitchell <mark@codesourcery.com>
7923
7924 * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
7925
7926 Sun Nov 7 02:58:48 1999 Jeffrey A Law (law@cygnus.com)
7927
7928 * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
7929 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
7930 macro expansion.
7931
7932 Sat Nov 6 23:48:30 1999 Robert Lipe (robertlipe@usa.net)
7933
7934 * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
7935
7936 Sat Nov 6 17:34:39 1999 Jeffrey A Law (law@cygnus.com)
7937
7938 * gcse.c (post_dominators): Kill.
7939 (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
7940 (compute_code_hoist_data): Use compute_flow_dominators. Do not
7941 pass in a pdom array since we do not need pdoms.
7942 * haifa-sched.c (schedule_insns): Similarly.
7943 * flow.c (compute_dominators): Remove dead function.
7944 (compute_flow_dominators): Do not compute doms or pdoms if the
7945 caller does not request them. Split up loop to build doms and
7946 pdoms. Use a worklist to compute doms and pdoms.
7947 * basic-block.h (compute_dominators): Remove prototype.
7948
7949 Sat Nov 6 11:38:39 1999 Richard Henderson <rth@cygnus.com>
7950
7951 * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
7952 (insn_luid, insn_priority, insn_costs, insn_units): Remove.
7953 (insn_reg_weight, insn_depend, insn_dep_count): Remove.
7954 (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
7955 (cant_move, fed_by_spec_load, is_load_insn): Remove.
7956 (schedule_region): Remove unused variable.
7957 (schedule_insns): Allocate h_i_d, and not all the separate arrays.
7958
7959 Sat Nov 6 10:00:34 1999 Mark Mitchell <mark@codesourcery.com>
7960
7961 * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
7962 (update_equiv_regs): Likewise.
7963 (block_alloc): Likewise.
7964 * reg-stack.c (reg_to_stack): Likewise.
7965 (convert_regs_2): Likewise.
7966 * reload1.c (reload_as_needed): Likewise.
7967
7968 Sat Nov 6 09:57:59 1999 Mark Mitchell <mark@codesourcery.com>
7969
7970 * Makefile.in (dbxout.o): Depend on ggc.h.
7971 (dwarf2out.o): Likewise.
7972 (xcoffout.o): Likewise.
7973 * dbxout.c: Include ggc.h.
7974 (dbxout_init): Register lastfile as a root.
7975 * dwarf2out.c: Include ggc.h.
7976 (dwarf2out_line): Register lastfile as a root.
7977 * xcoffout.c: Include ggc.h.
7978 (xcoffout_source_line): Register xcoff_lastfile as a root.
7979
7980 Sat Nov 6 09:52:09 1999 Richard Henderson <rth@cygnus.com>
7981
7982 * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
7983
7984 Sat Nov 6 07:48:59 1999 Catherine Moore <clm@cygnus.com>
7985
7986 * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
7987 defined.
7988 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
7989
7990 Fri Nov 5 18:33:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
7991
7992 * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
7993 (EXECUTE_IF_CONFLICT): Likewise.
7994 (ALLOCNO_LIVE_P): Avoid signed division.
7995 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
7996 (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
7997 (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
7998
7999 Fri Nov 5 12:04:02 1999 Richard Henderson <rth@cygnus.com>
8000
8001 * haifa-sched.c (schedule_block): Don't crash if there's no
8002 next insn for an interblock movement.
8003 (add_branch_dependences): Don't allow clobber insns to move either.
8004
8005 Fri Nov 5 10:18:11 1999 Richard Henderson <rth@cygnus.com>
8006
8007 * i386.c (split_xf): New.
8008 * i386-protos.h: Declare it.
8009 * i386.md (movxf_1): Add general regs alternatives.
8010 (movxf_1+1): New splitter for same.
8011
8012 Fri Nov 5 12:05:52 1999 Nick Clifton <nickc@cygnus.com>
8013
8014 * function.c (purge_addressof_1): Add missing return values.
8015
8016 Fri Nov 5 10:07:25 1999 Nick Clifton <nickc@cygnus.com>
8017
8018 * function.c (is_addressof): New function. Returns true if
8019 the given piece of RTL is an ADDRESSOF.
8020 (purge_addressof_1): Make boolean. Return false if the
8021 ADDRESSOFs could not be purged.
8022 (purge_addressof): If ADDRESSOFs could not be purged from the
8023 notes attached to an insn, remove the offending note(s),
8024 unless they are attached to a libcall.
8025
8026 1999-11-05 Andreas Jaeger <aj@suse.de>
8027
8028 * genoutput.c (null_operand =): Initialize all fields.
8029
8030 * errors.h: Add extern to prototypes.
8031
8032 Fri Nov 5 01:44:09 1999 Jeffrey A Law (law@cygnus.com)
8033
8034 * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
8035 * configure: Rebuilt.
8036
8037 Fri Nov 5 01:24:37 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
8038
8039 * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
8040 (mirror_conflicts): New function.
8041 (global_alloc): Call it.
8042 (expand_preferences): Remove redundant CONFLICTP test.
8043 (find_reg, dump_conflicts): Likewise.
8044 (prune_preferences): Process conflicts one word at a time.
8045
8046 Fri Nov 5 01:05:21 1999 Richard Henderson <rth@cygnus.com>
8047
8048 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
8049 instead of an explicit loop.
8050
8051 Thu Nov 4 23:07:14 1999 Jim Wilson <wilson@cygnus.com>
8052
8053 * cse.c (cse_insn): Revert Oct 31 change. When computing src_elt,
8054 if REG_RETVAL check succeeds, then put classp in src_elt.
8055
8056 Thu Nov 4 23:48:14 1999 Jeffrey A Law (law@cygnus.com)
8057
8058 * function.c (pad_to_arg_alignment): Only update argument_pad
8059 if the argument's alignment is greater than STACK_BOUNDARY.
8060
8061 Thu Nov 4 16:44:53 1999 Richard Henderson <rth@cygnus.com>
8062
8063 * bitmap.h (BITMAP_XFREE): New.
8064 * flow.c (life_analysis): Use it.
8065 (life_analysis_1): Free blocks.
8066
8067 * combine.c (undo_commit): New.
8068 (try_combine): Use it. Don't zap undobuf.undos.
8069 (combine_instructions): Don't zap undobuf.undos; free the
8070 undobuf.frees list.
8071
8072 * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
8073
8074 * stmt.c (cost_table_): New.
8075 (estimate_case_costs): Use it instead of xmalloc.
8076
8077 * toplev.c (compile_file): Reuse dumpname memory instead
8078 of strdup'ing it.
8079
8080 Thu Nov 4 16:36:44 1999 Richard Henderson <rth@cygnus.com>
8081
8082 * reg-stack.c (convert_regs_1): Initialize target_stack->top
8083 after verifying an EH edge.
8084
8085 * haifa-sched.c (init_rgn_data_dependences): Correctly
8086 size bb_pending_lists_length when zeroing.
8087
8088 Thu Nov 4 16:36:36 1999 Richard Henderson <rth@cygnus.com>
8089
8090 * function.c (diddle_return_value): New.
8091 (expand_function_end): Use it.
8092 * stmt.c (expand_null_return): Likewise.
8093 (expand_value_return): Likewise.
8094
8095 * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
8096
8097 * reload1.c (reload): Don't remove return value clobbers.
8098
8099 Thu Nov 4 13:33:46 1999 Richard Henderson <rth@cygnus.com>
8100
8101 * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
8102
8103 Thu Nov 4 12:49:52 1999 Richard Henderson <rth@cygnus.com>
8104
8105 * cse.c (cse_main): Use xmalloc, not alloca.
8106 (cse_basic_block): Likewise.
8107 * local-alloc.c (local_alloc): Likewise.
8108
8109 Thu Nov 4 14:22:12 1999 David Billinghurst <David.Billinghurst@riotinto.com.au>
8110 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
8111
8112 * rtl.c: Include toplev.h.
8113 (fatal): Remove declaration.
8114
8115 Thu Nov 4 06:39:47 1999 Jeffrey A Law (law@cygnus.com)
8116
8117 * haifa-sched.c (schedule_block): Fix thinko.
8118
8119 1999-11-03 James McKelvey <mckelvey@fafnir.com>
8120
8121 * fixinc/fixincl.c(create_file): Allow for systems that do not have
8122 S_IR* defined values
8123
8124 1999-11-03 Philippe De Muyter <phdm@macqel.be>
8125
8126 * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
8127 call `malloc' instead.
8128
8129 Wed Nov 3 23:05:14 1999 Mark Mitchell <mark@codesourcery.com>
8130
8131 * flags.h (flag_renumber_insns): Declare.
8132 * emit-rtl.c (renumber_insns): Check flag_renumber_insns. Print
8133 renumbering table.
8134 * rtl.h (renumber_insns): Change prototype.
8135 * toplev.c (flag_renumber_insns): Define.
8136 (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
8137
8138 Wed Nov 3 15:11:27 1999 David S. Miller <davem@redhat.com>
8139
8140 * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
8141 and fpsqrtd. Use them and create fdiv function unit to more
8142 accurately represent fpu sqrt pipeline semantics on UltraSparc.
8143 * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
8144
8145 Wed Nov 3 15:11:27 1999 Matteo Frigo <athena@fftw.org>
8146
8147 * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
8148 3 on UltraSparc.
8149 * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
8150 insn into ready list, do not use just a raw swap.
8151
8152 Wed Nov 3 14:51:59 1999 Mark P. Mitchell <mark@codesourcery.com>
8153
8154 * rtl.h (renumber_insns): New function.
8155 (remove_unnecessary_notes): Likewise.
8156 * emit-rtl.c (renumber_insns): Define.
8157 (remove_unncessary_notes): Likewise.
8158 * toplev.c (rest_of_compilation): Remove dead code.
8159 Use renumber_insns and remove_unncessary_notes.
8160
8161 * gcse.c (struct null_pointer_info): New type.
8162 (get_bitmap_width): New function.
8163 (current_block): Remove.
8164 (nonnull_local): Likewise.
8165 (nonnull_killed): Likewise.
8166 (invalidate_nonnull_info): Take a null_pointer_info as input.
8167 (delete_null_pointer_checks_1): New function.
8168 (delete_null_pointer_checks): Use it.
8169
8170 * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
8171 (split_edges): Likewise.
8172 (schedule_block): Likewise.
8173 (compute_block_backward_dependencies): Likewise.
8174 (schedule_region): Likewise.
8175 (schedule_insns): Likewise.
8176
8177 Wed Nov 3 15:40:23 1999 Catherine Moore <clm@cygnus.com>
8178
8179 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
8180 * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
8181 * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
8182 * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
8183 * jump.c (delete_unreferenced_labels): Don't delete if
8184 LABEL_ALTERNATE_NAME is set.
8185 * print-rtl.c (print_rtx): Dump alternate name.
8186 * rtl.def (CODE_LABEL): Change format to "iuuis00s".
8187 * rtl.h (LABEL_ALTERNATE_NAME): Define.
8188 * rtl.texi (LABEL_ALTERNATE_NAME): Document.
8189 * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
8190
8191 Wed Nov 3 15:39:19 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8192
8193 * fix-header.c (recognized_extern, recognized_function): Constify
8194 a char*.
8195
8196 * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
8197 (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
8198 (compute_available): Remove unused variable `last'.
8199 (compute_nearerout): Remove unused variable `temp_bitmap'.
8200 (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
8201 Remove unused variable `x'.
8202
8203 * scan.h (recognized_function, recognized_extern): Constify a
8204 char*.
8205
8206 * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
8207
8208 Wed Nov 3 10:40:53 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8209
8210 * varasm.c (decode_rtx_const): Use XSTR to access the string
8211 of a SYMBOL_REF.
8212
8213 Wed Nov 3 10:10:58 1999 Richard Henderson <rth@cygnus.com>
8214
8215 * c-decl.c (duplicate_decls): Copy DECL_MODE too.
8216
8217 Wed Nov 3 12:12:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8218
8219 * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
8220
8221 Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com)
8222
8223 * pa.c (ireg_operand): New function.
8224 * pa.h (PREDICATE_CODES): Handle ireg_operand.
8225 * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
8226 Fix out of date comment.
8227
8228 * pa.md (negdi2): Turn into expander + anonymous pattern.
8229
8230 * reload.c (find_reloads): Fix typos in recent change.
8231
8232 * dwarf2out.c: Do not include ctype.h.
8233
8234 Tue Nov 2 21:53:44 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8235
8236 * regclass.c (record_reg_classes): Always use may_move_cost when
8237 seeing how operand fits with various register classes.
8238
8239 Tue Nov 2 15:38:17 1999 Richard Henderson <rth@cygnus.com>
8240
8241 * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
8242 * toplev.c: Revert Nov 1 13:22 change.
8243
8244 Tue Nov 2 14:21:37 1999 Jason Eckhardt <jle@cygnus.com>
8245
8246 * config/pa/pa.md (height reduction patterns): Add checks for
8247 overlapping operands to avoid semantic-destroying splits for
8248 height reduction patterns.
8249
8250 Tue Nov 2 15:27:31 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
8251
8252 * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
8253 have been an hyphen, fixed.
8254 * configure: Rebuilt.
8255
8256 Tue Nov 2 17:04:36 1999 Nick Clifton <nickc@cygnus.com>
8257
8258 * config/arm/tpe.h: Add prototypes for exported functions.
8259 * config/arm/pe.c: Fix compile time warnings.
8260 * config/arm/semi.h: Fix compile time warnings.
8261 * config/arm/arm.c: Fix compile time warnings.
8262 * config/arm/arm.h: Fix compile time warnings.
8263 * config/arm/arm.md: Fix compile time warnings.
8264 * config/arm/thumb.c: Fix compile time warnings.
8265 * config/arm/thumb.h: Fix compile time warnings.
8266 * config/arm/thumb.md: Fix compile time warnings.
8267
8268 Tue Nov 2 04:10:24 1999 Jan Hubicka <hubicka@freesoft.cz>
8269
8270 * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
8271 detection code
8272
8273 * unroll.c (unroll_loop): Remove LOOP notes when loop is
8274 completely unrolled.
8275
8276 Tue Nov 2 16:57:22 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8277
8278 * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
8279
8280 Tue Nov 2 09:43:00 1999 Catherine Moore <clm@cygnus.com>
8281
8282 * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
8283 * rtl.h (rtx_equal_p): Move prototype.
8284 * rtl.c (rtx_equal_function_value_matters): Move from
8285 rtlanal.c
8286 (rtx_equal_p): Likewise.
8287 * rtlanal.c (rtx_equal_function_value_matters): Delete.
8288 (rtx_equal_p): Likewise.
8289
8290 Mon Nov 1 23:21:17 1999 Jason Merrill <jason@yorick.cygnus.com>
8291
8292 * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
8293 ! HAS_INIT_SECTION.
8294
8295 Mon Nov 1 23:37:38 1999 Jeffrey A Law (law@cygnus.com)
8296
8297 * gcc.1 (PA options): Remove obsolete -mshared-libs options.
8298
8299 * pa.h (ADDR_VEC_ALIGN): Define.
8300
8301 * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
8302 notes when presented with "if (foo) break; end_of_loop" and
8303 the break sequence gets moved out of the loop.
8304
8305 * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
8306 Remove explicit zero initializations of entries within MAP.
8307
8308 Mon Nov 1 18:09:14 1999 Richard Henderson <rth@cygnus.com>
8309
8310 * reg-stack.c (convert_regs_1): Handle EH edges specially.
8311
8312 Mon Nov 1 15:41:01 1999 Mark P. Mitchell <mark@codesourcery.com>
8313
8314 * bitmap.h (BITMAP_XMALLOC): New macro.
8315 * flow.c (CLEAN_ALLOCA): Remove.
8316 (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
8317 (life_analysis): Likewise.
8318 (update_life_info): Don't use CLEAN_ALLOCA.
8319 (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
8320 (calculate_global_regs_live): Likewise.
8321 (print_rtl_with_bb): Likewise.
8322 (verify_flow_info): Likewise.
8323 * global.c (global_alloc): Likewise.
8324 (global_conflicts): Likewise.
8325 * integrate.c (save_for_inline_nocopy): Likewise.
8326 (expand_inline_function): Likewise.
8327 * jump.c (jump_optimize_1): Likewise.
8328 (duplicate_loop_exit_test): Likewise.
8329 (thread_jumps): Likewise.
8330 * loop.c (loop_optimize): Likewise.
8331 (combine_givs): Likewise.
8332 (recombine_givs): Likewise.
8333 * reorg.c (dbr_schedule): Likewise.
8334 * unroll.c (unroll_loop): Likewise.
8335
8336 * combine.c (combine_instructions): Use xmalloc instead of alloca.
8337
8338 Mon Nov 1 13:22:30 1999 Richard Henderson <rth@cygnus.com>
8339
8340 * toplev.c (rest_of_compilation): Don't optimize the CFG
8341 when rebuilding, just before dbr.
8342
8343 Mon Nov 1 14:35:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8344
8345 * output.h (assemble_end_function, assemble_destructor,
8346 assemble_constructor, assemble_gc_entry, assemble_global,
8347 assemble_label, output_constant_pool) Constify a char*.
8348
8349 * varasm.c (assemble_destructor, assemble_constructor,
8350 assemble_gc_entry, assemble_end_function, assemble_global,
8351 assemble_label, output_constant_pool): Likewise.
8352
8353 Mon Nov 1 14:22:51 1999 Nick Clifton <nickc@cygnus.com>
8354
8355 * config/arm/thumb.c (thumb_expand_prologue): Add comments
8356 explaining what is goin on in this function.
8357
8358 Mon Nov 1 08:03:15 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8359
8360 * regclass.c (record_reg_classes): In matching case, recompute
8361 costs since the direction of movement is different.
8362
8363 Sun Oct 31 21:59:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
8364
8365 * resource.c (mark_target_live_regs): For unconditional branches,
8366 the resources found at the branch target should be added to the
8367 resources found so far, not intersected.
8368
8369 Sun Oct 31 15:48:49 1999 Philippe De Muyter <phdm@macqel.be>
8370
8371 * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
8372 old cpp's.
8373 * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
8374 (sys/mman.h): Include this file only if #HAVE_MMAP.
8375 (run_compiles): Initialize `esac_fmt' with one old KR string, not
8376 with automatically concatenated ANSI strings.
8377
8378 Sun Oct 31 23:57:07 1999 Mark Mitchell <mark@codesourcery.com>
8379
8380 * ggc-page.c (struct page_entry): Remove save_num_free_objects.
8381 (DIV_ROUND_UP): Robustify.
8382 (ggc_recalculate_in_use_p): New function.
8383 (release_pages): Don't inline it.
8384 (ggc_alloc_obj): Don't refuse to allocate objects on pages for
8385 outer contexts.
8386 (ggc_pop_context): Use ggc_recalculate_in_use_p.
8387 (clear_marks): Always save in_use_p.
8388 (sweep_pages): Use ggc_recalculate_in_use_p.
8389 (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
8390 Release pages before counting statistics.
8391
8392 Sun Oct 31 23:42:37 1999 Mark Mitchell <mark@codesourcery.com>
8393
8394 * toplev.c (rest_of_compilation): Fix thinko in this change:
8395
8396 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
8397
8398 (rest_of_compilation): If inside an inlined external function,
8399 pretend we are just being declared.
8400
8401 Sun Oct 31 23:03:25 1999 Jeffrey A Law (law@cygnus.com)
8402
8403 * flow.c (calculate_global_regs_live): Fix thinko.
8404
8405 * integrate.c (expand_inline_function): Fix bugs in previous
8406 change from Oct 28, 1999.
8407
8408 Sun Oct 31 20:27:45 1999 Mark Mitchell <mark@codesourcery.com>
8409
8410 * stmt.c (expand_value_return): Fix typo in this change:
8411
8412 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8413 (expand_value_return): Correctly convert VAL when promoting function
8414 return; support RETURN_REG being a PARALLEL.
8415
8416 Sun Oct 31 20:25:42 1999 Mark P. Mitchell <mark@codesourcery.com>
8417
8418 * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
8419
8420 Sun Oct 31 20:42:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8421
8422 * hard-reg-set.h (reg_names): Constify a char*.
8423
8424 * regclass.c (reg_names): Likewise.
8425
8426 * regs.h (reg_names): Likewise
8427
8428 * a29k/a29k.c (reg_names): Delete declaration.
8429
8430 * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
8431
8432 * arc/arc.c (arc_save_restore, arc_output_function_prologue,
8433 arc_output_function_epilogue): Likewise.
8434
8435 * elxsi/elxsi.c (reg_names): Likewise.
8436
8437 * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
8438
8439 * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
8440 Likewise.
8441
8442 * m88k/m88k.c (output_function_profiler): Likewise.
8443
8444 * sparc/sparc.c (sparc_flat_output_function_prologue,
8445 sparc_flat_output_function_epilogue): Likewise.
8446
8447 Sun Oct 31 13:32:15 CET 1999 Marc Lehmann <pcg@goof.com>
8448
8449 * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
8450 warning from -Wuninitialized and put it under -W.
8451 * function.c (uninitialized_vars_warning): Warn only when the
8452 corresponding flag is set.
8453
8454 Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com)
8455
8456 * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
8457 is nonzero and the single set does not have an elt, then assign
8458 it an elt.
8459
8460 * simplify-rtx.c: New file.
8461 * Makefile.in (OBJS): Add simplify-rtx.o
8462 (simplify-rtx.o): Add dependencies.
8463 * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
8464 * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
8465 (cse_gen_binary, simplify_unary_operation): Delete.
8466 (simplify_binary_operation, simplify_plus_minus): Likewise.
8467 (check_fold_consts, simplify_relation_operation): Likewise.
8468 (simplify_ternary_operation): Likewise.
8469 (delete_trivially_dead_insns): Simplify the contents of the
8470 REG_EQUAL note before trying to substitute it into the source
8471 of the reg-reg copy at the end of a libcall sequence.
8472
8473 * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All
8474 references/callers changed.
8475
8476 * mn10200.c (mn10200_va_arg): Force the return value into a
8477 register.
8478
8479 * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
8480
8481 * cccp.c (macroexpand): Avoid out of range accesses for omitted
8482 arguments.
8483
8484 Sat Oct 30 22:42:50 1999 Stephen L Moshier <moshier@mediaone.net>
8485
8486 * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
8487
8488 Sat Oct 30 22:19:26 1999 Jeffrey A Law (law@cygnus.com)
8489
8490 * fold-const.c (fold): Fix thinko when optimizing comparisons
8491 against -0.0.
8492
8493 Sat Oct 30 21:32:17 1999 David Starner <dstarner98@aasaa.ofe.org>
8494
8495 * gcc.texi (Passes): Update front-end files to their current
8496 location.
8497
8498 Sat Oct 30 14:41:40 1999 Richard Henderson <rth@cygnus.com>
8499
8500 * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
8501 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
8502 (PREDICATE_CODES): Add addition_operation.
8503 * alpha-protos.h (addition_operation): Declare.
8504 (secondary_reload_class): Likewise.
8505 * alpha.c (addition_operation): New.
8506 (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
8507 * alpha.md (adddi3): Turn into expander.
8508 (*lda, *adddi_2): New.
8509 (movsf, movdf patterns): Don't preference integer regs.
8510 (movsi, movdi patterns): Don't preference fp regs.
8511
8512 Sat Oct 30 14:38:22 1999 Richard Henderson <rth@cygnus.com>
8513
8514 * genrecog.c (write_switch): Check for duplicate CODE cases.
8515
8516 Sat Oct 30 14:31:48 1999 Richard Henderson <rth@cygnus.com>
8517
8518 * ggc-common.c: Update pre-function commentary.
8519 * ggc-page.c: Likewise.
8520 (poison): Remove.
8521 (poison_pages): Use memset directly.
8522 (ggc_alloc_obj): Likewise. Use a different pattern than poison_pages.
8523 (ggc_collect): Poison before sweeping.
8524 * ggc-simple.c: Update pre-function commentary.
8525 (ggc_alloc_obj): Poison non-zeroed memory.
8526
8527 Sat Oct 30 14:28:52 1999 Mark Mitchell <mark@codesourcery.com>
8528
8529 * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
8530 match format string, even on 64-bit hosts.
8531 * gcc-page.c (ggc_page_print_statistics): Likewise.
8532
8533 Sat Oct 30 14:38:04 1999 Catherine Moore <clm@cygnus.com>
8534
8535 * config/i386/i386.c (ix86_cpu): Revert last patch.
8536 * config/i386/i386.h (ix86_cpu): Ditto.
8537
8538 Fri Oct 29 17:00:42 1999 Jim Wilson <wilson@cygnus.com>
8539
8540 * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
8541 TYPE_SIZE, convert type of result to sizetype.
8542
8543 Fri Oct 29 14:34:17 1999 Richard Henderson <rth@cygnus.com>
8544
8545 * flow.c (count_or_remove_death_notes): Equate NULL with the
8546 universal set.
8547
8548 * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
8549 * toplev.c (rest_of_compilation): Rebuild CFG immediately before
8550 dbr_schedule.
8551
8552 * i386.c (pic_label_no): Delete.
8553 (ix86_attr_length_default): Don't use single_set to peek
8554 inside a parallel.
8555
8556 * recog.c (peephole2_optimize): Allow recog_next_insn to index
8557 the first insn after bb->end.
8558 * i386.md (push mem peeps): Scratch is live after evaluation
8559 of the memory.
8560 (cmp mem peep): Similarly.
8561
8562 Fri Oct 29 11:50:11 1999 Catherine Moore <clm@cygnus.com>
8563
8564 * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
8565 * function.c (pad_to_arg_alignment): Add missing braces.
8566
8567 Fri Oct 29 13:53:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8568
8569 * alpha/alpha-protos.h (literal_section): Add prototype.
8570 (alpha_need_linkage, alpha_start_function,alpha_end_function):
8571 Constify a char*.
8572
8573 * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
8574 prototype.
8575 (alpha_start_function, alpha_end_function, float_strings,
8576 alpha_need_linkage): Constify a char*
8577
8578 * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
8579
8580 * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
8581
8582 * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8583
8584 * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
8585
8586 Fri Oct 29 13:49:39 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8587
8588 * flow.c (debug_flow_info): Add prototype.
8589
8590 * gcc.c (main): Likewise.
8591
8592 * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
8593 Likewise.
8594
8595 * reload1.c (failed_reload, set_reload_reg): Likewise.
8596
8597 * mips-tfile.c (main): Likewise.
8598 (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
8599 with ATTRIBUTE_NORETURN.
8600
8601 Fri Oct 29 18:16:03 1999 Andrew Haley <aph@cygnus.com>
8602
8603 * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
8604 DECL is not a memory ref.
8605
8606 Fri Oct 29 09:05:34 1999 Catherine Moore <clm@cygnus.com>
8607
8608 * config/i386/i386.h (ix86_cpu): Remove extern attribute.
8609 * config/i386/i386.c (ix86_cpu): Add extern attribute.
8610
8611 Fri Oct 29 16:30:04 1999 Andrew Haley <aph@cygnus.com>
8612
8613 * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
8614 * config/mips/elf64.h: ditto.
8615
8616 Fri Oct 29 08:03:57 1999 Catherine Moore <clm@cygnus.com>
8617
8618 * expr.c (emit_push_insn): New argument alignment_pad.
8619 Update all callers. Adjust stack pointer based on alignment pad.
8620 * function.c (pad_to_arg_alignment): New argument alignment_pad.
8621 Update all callers. Track alignment_pad if boundary > PARM_BOUNDARY.
8622 (locate_and_pad_parm): New argument alignment_pad. Update all
8623 callers.
8624 * expr.h (emit_push_insn): Update prototype.
8625 (locate_and_pad_parm): Update prototype.
8626 * calls.c (arg_data): Add new field alignment_pad.
8627 (initialize_argument_information): Initialize alignment_pad.
8628
8629 Fri Oct 29 02:51:35 1999 Mark Mitchell <mark@codesourcery.com>
8630
8631 * except.c (free_eh_nesting_info): Free the info itself.
8632 * function.c (free_after_compilation): Don't free NULL.
8633 * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
8634 (pre_edge_insert): Free inserted.
8635 * stmt.c (free_stmt_status): Don't free NULL.
8636
8637 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
8638
8639 * gcov.c (DIR_SEPARATOR): Provide default.
8640 (output_data): Add test for MS-DOS format absolute filename.
8641 (fancy_abort): Correct program name.
8642 (open_files): Open all files in binary mode.
8643 * libgcc2.c (__bb_exit_func): Likewise.
8644
8645 * profile.c (init_branch_prob): Specify binary when opening files.
8646
8647 * flags.h (flag_unwind_tables): New decl.
8648 * toplev.c (flag_unwind_table): New definition.
8649 (f_options): Add -funwind-tables.
8650 (decode_g_option): Clarify warning when unknown -g option is given.
8651 (rest_of_compilation): If inside an inlined external function,
8652 pretend we are just being declared.
8653
8654 * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
8655 (dwarf2out_frame_finish): Likewise.
8656
8657 Fri Oct 29 07:44:26 1999 Vasco Pedro <vp@di.fct.unl.pt>
8658
8659 * fold-const.c (merge_ranges): If not in0, but in1, handle
8660 upper bounds equal like subset case.
8661
8662 Thu Oct 28 19:22:24 1999 Douglas Rupp <rupp@gnat.com>
8663
8664 * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
8665 passed in a register but moved to the stack.
8666
8667 Thu Oct 28 19:12:57 1999 Sam Tardieu <tardieu@act-europe.fr>
8668
8669 * gcc.c (pass_exit_codes, greatest_status): New variables.
8670 (struct option_map): Add entry for "--pass-exit-codes".
8671 (execute): Update greatest_status if error.
8672 (display_help): Add documentation for -pass-exit-codes.
8673 (process_command): Handle -pass-exit-codes.
8674 (main): Look at pass_exit_codes and greatest_status on call to exit.
8675
8676 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8677
8678 * reload.c (find_reloads): Refine test for no input reload
8679 case to not includes reloads emitted after insn.
8680
8681 * function.c (find_temp_slots_from_address): Handle sum involving
8682 a register that points to a temp slot.
8683 (update_temp_slot_address): Make recursive call if both old and
8684 new are PLUS with a common operand.
8685 * calls.c (expand_call): Mark temp slot for result as having
8686 address taken.
8687
8688 * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
8689
8690 * gcc.c (process_command): Add standard_exec_prefix with "GCC"
8691 component as well as "BINUTILS".
8692
8693 * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
8694 * integrate.c (copy_rtx_and_substitute): Likewise.
8695 (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
8696 All callers changed.
8697 * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
8698
8699 * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
8700 gdb extensions, write size of type; also be more consistent
8701 in using references when this is a subtype.
8702
8703 * pa.md (extv, extzv, insv): Use define_expand to reject constant
8704 that is out of range.
8705
8706 * loop.c (unknown_constant_address_altered): New variable.
8707 (prescan_loop): Initialize it.
8708 (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
8709 (invariant_p, case MEM): Remove handling for volatile and readonly;
8710 check new variable if readonly.
8711 (check_dbra_loop): Chdeck unknown_constant_address_altered.
8712
8713 * cse.c (canon_hash, case MEM): Do not record if BLKmode.
8714 (addr_affects_sp_p): Removed from note_mem_written and only
8715 define #ifdef AUTO_INC_DEC.
8716
8717 * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
8718
8719 * regclass.c (record_reg_classes): Properly handle register move
8720 directions.
8721
8722 * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
8723 Don't think valid if both operands are invalid.
8724 (struct constant_descriptor): New field RTL.
8725 (mark_const_hash_entry): Mark it.
8726 (record_constant{,_rtx}): Initialize it.
8727 (output_constant_def): Allocate RTL in permanent obstack and
8728 save in table.
8729 ({record,compare}_constant_1): Modes must match for
8730 CONSTRUCTOR of ARRAY_TYPE.
8731
8732 * c-common.h (initializer_constant_valid_p): Delete decl from here.
8733 * output.h (initializer_constant_valid_p): Move decl to here.
8734 * c-common.c (initializer_constant_valid_p): Delete function from here.
8735 * varasm.c (initializer_constant_valid_p): Move function to here.
8736
8737 * tree.h (STRIP_SIGN_NOPS): New macro.
8738 * fold-const.c (optimize_minmax_comparison): New function.
8739 (invert_truthvalue, case WITH_RECORD_EXPR): New case.
8740 (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
8741 (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
8742 cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
8743 widening conversions.
8744 (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
8745 to look at size of mode, not precision of type; also add missing cases.
8746 (optimize_bit_field_compare, decode_field_reference): Don't try to
8747 optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
8748
8749 * dwarf2out.c (ctype.h): Include.
8750 (dwarf2out_set_demangle_name_func): New function.
8751 (size_of_line_info): Deleted.
8752 (output_line_info): Compute size of line info table from difference
8753 of labels.
8754 (base_type_die, add_name_attribute): Call demangle function, if any.
8755 (field_byte_offset): Use bits per word for variable length fields.
8756 (gen_array_type_die): Add array name.
8757 (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
8758 (dwarf2out_add_library_unit_info): New function.
8759
8760 * explow.c (set_stack_check_libfunc): New function.
8761 (stack_check_libfunc): New static variable.
8762 (probe_stack_range): Allow front-end to set up a libfunc to call.
8763
8764 * combine.c (simplify_comparison): When making comparison in wider
8765 mode, check for having commuted an AND and a SUBREG.
8766 (contains_muldiv): New function.
8767 (try_combine): Call it when dividing a PARALLEL.
8768 (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
8769 (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
8770 a PLUS.
8771 (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
8772 use one of the CLOBBERs instead.
8773 (if_then_else_cond): If comparing against zero, just return thing
8774 being compared.
8775
8776 * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
8777 Don't generate shifts and subtract if have conditional arithmetic.
8778
8779 * rtl.h (delete_barrier): New declaration.
8780 * jump.c (jump_optimize): Set up to handle conditional call.
8781 In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
8782 (delete_barrier): New function.
8783
8784 * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
8785
8786 * recog.c (nonmemory_operand): Accept ADDRESSOF.
8787
8788 * tree.c (build_type_attribute_variant): Push to obstack of
8789 ttype around type_hash_canon call.
8790
8791 * expr.c (placeholder_list): Move decl to file scope.
8792 (expand_expr): Don't force access to volatile just because its
8793 address is taken.
8794 If ignoring reference operations, just expand the operands.
8795 (expand_expr, case COMPONENT_REF): Propagate
8796 EXPAND_CONST_ADDRESS to recursive call when expanding inner.
8797 Refine test for using bitfield operations vs pointer punning.
8798 (expand_expr, case CONVERT_EXPR): If converting to
8799 BLKmode UNION_TYPE from BLKmode, just return inner object.
8800 Use proper mode in store_field call.
8801 Properly set sizes of object to store and total size in store_field
8802 call for convert to union.
8803 (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
8804 memory (like for ADDR_EXPR). Also, don't put constant in register if
8805 we'll want it in memory.
8806 (readonly_fields_p): New function.
8807 (expand_expr, case INDIRECT_REF): Call it if LHS.
8808 (expand_assignment): Handle a RESULT_DECL where
8809 DECL_RTL is a PARALLEL.
8810 (do_jump, case WITH_RECORD_EXPR): New case.
8811 (get_inner_reference): Always go inside a CONVERT_EXPR
8812 and NOP_EXPR if both modes are the same.
8813 (store_field): Use bitfield operations if size of bitsize is not same
8814 as size of RHS's type.
8815 Check for bitpos not a multiple of alignment in BLKmode case.
8816 Do block move in largest possible alignment.
8817 (store_constructor): Set BITSIZE to -1 for variable size and properly
8818 in case of array of BLKmode.
8819 (expand_expr_unaligned): New function.
8820 (do_compare_and_jump): Call it.
8821
8822 * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
8823 * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
8824 does not include 'o'.
8825
8826 * function.c (instantiate_virtual_regs_1, case SET): Handle case where
8827 both SET_DEST and SET_SRC reference a virtual register.
8828 (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
8829
8830 * integrate.c (expand_inline_function): Handle case of setting
8831 virtual stack vars register (from built in setjmp); when parameter
8832 lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
8833 (subst_constant): Add new parm, MEMONLY.
8834 (expand_inline_function, integrate_parm_decls): Pass new parm.
8835 (integrate_decl_tree): Likewise.
8836 (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
8837 (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
8838 (copy_rtx_and_substitute, case SET): Add explicit calls to
8839 copy_rtx_and_substitute for both sides.
8840
8841 * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
8842 constraints.
8843 (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
8844 within INDEX_TYPE, instead of before.
8845 (fixup_gotos): Use f->target_rtl, not the next insn,
8846 since latter may be from a later fixup.
8847 (expand_value_return): Correctly convert VAL when promoting function
8848 return; support RETURN_REG being a PARALLEL.
8849 (expand_return): When checking for result in regs and having
8850 cleanup, consider PARALLEL in DECL_RTL as being in regs.
8851
8852 1999-10-28 21:27 -0700 Zack Weinberg <zack@bitmover.com>
8853
8854 * cpplib.h (struct cpp_buffer: fname, nominal_fname,
8855 last_nominal_fname): Mark const.
8856 (struct include_hash: name, nshort, control_macro): Mark
8857 const.
8858 (struct macrodef: symnam): Mark const.
8859 (struct if_stack: fname): Mark const.
8860 (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
8861 (IStable): New character-syntax array which encompasses all
8862 the old is_foo arrays.
8863 (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
8864 is_space): New macros for interrogating IStable.
8865 (check_macro_name): Kill last argument. All callers changed.
8866
8867 * cppinit.c (initialize_char_syntax): Delete.
8868 (is_idchar, is_idstart, is_hor_space, is_space,
8869 trigraph_table): Delete.
8870 (IStable): New. Initialize with clever macros to avoid
8871 information duplication.
8872 (builtin_array): Table of builtins to get rid of explicit list
8873 in initialize_builtins.
8874 (initialize_builtins): Use builtins_array.
8875 (cpp_start_read): Call init_IStable, and set IStable['$'] if
8876 opts->dollars_in_ident.
8877
8878 * cppexp.c: Change all refs to is_xyz[] arrays to use new
8879 is_xyz() macros.
8880 (cpp_parse_expr): Avoid 'format string is not constant'
8881 warning. Use ISGRAPH to identify printable chars.
8882 * cppfiles.c: Change all refs to is_xyz[] arrays to use new
8883 is_xyz() macros.
8884 (read_and_prescan): Map trigraphs to chars with open-coded
8885 if-else-if-... sequence, not a lookup table.
8886 * cpphash.c: Change all refs to is_xyz[] arrays to use new
8887 is_xyz() macros.
8888 * cpplib.c: Change all refs to is_xyz[] arrays to use new
8889 is_xyz() macros. Kill SKIP_ALL_WHITE_SPACE (unused).
8890 (check_macro_name): Remove ability to report an invalid
8891 assertion name, which is never used.
8892 (do_line): Constify a couple of char *'s.
8893 * cppmain.c (main): Call cpp_cleanup before returning.
8894
8895 Thu Oct 28 21:16:35 1999 Mark Mitchell <mark@codesourcery.com>
8896
8897 * ggc.h (struct ggc_statistics): New type.
8898 (ggc_get_size): New function.
8899 (ggc_print_statistics): Likewise.
8900 * ggc-common.c (ggc_stats): New variable.
8901 (ggc_mark_rtx_children): Keep statistics.
8902 (ggc_mark_tree_children): Likewise.
8903 (ggc_print_statistics): New function.
8904 * ggc-page.c (struct globals): Add bytes_mapped field.
8905 (alloc_anon): Update it.
8906 (release_pages): Likewise.
8907 (ggc_get_size): New function.
8908 (ggc_page_print_statistics): New function.
8909 * ggc-simple.c (ggc_get_size): New function.
8910
8911 Fri Oct 29 06:32:44 1999 Geoffrey Keating <geoffk@cygnus.com>
8912
8913 * flow.c (propagate_block): When the last reference to a label
8914 before an ADDR_VEC is deleted because the reference is a dead
8915 store, delete the ADDR_VEC.
8916
8917 Thu Oct 28 12:28:50 1999 Richard Henderson <rth@cygnus.com>
8918
8919 * resource.c (find_free_register): Don't use the frame pointer
8920 if frame_pointer_needed.
8921
8922 Thu Oct 28 10:02:00 1999 Jim Wilson <wilson@cygnus.com>
8923
8924 * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
8925 (function_arg_pass_by_reference): Check for a NULL pointer in cum.
8926
8927 * config/i960/i960.c (i960_va_start): New locals base, num.
8928 Use INDIRECT_REF instead of ARRAY_REF on valist.
8929 (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
8930
8931 Thu Oct 28 09:45:48 1999 Mark Mitchell <mark@codesourcery.com>
8932
8933 * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
8934
8935 Thu Oct 28 03:37:50 1999 Peter Gerwinski <peter@gerwinski.de>
8936
8937 * tree.def (PLACEHOLDER_EXPR): Update comments.
8938
8939 Thu Oct 28 06:47:32 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8940
8941 * c-common.c (check_format_info): Avoid non-literal format string
8942 warnings when `first_arg_num' is zero.
8943
8944 Thu Oct 28 12:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8945
8946 * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
8947
8948 Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com>
8949
8950 * arm.md (casesi_insn): Add a clobber of the condition code
8951 register.
8952
8953 Mon Oct 18 21:16:06 1999 Fred Fish <fnf@be.com>
8954
8955 * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
8956 used by both cc1 and cc1plus.
8957
8958 Thu Oct 28 10:00:48 1999 Nick Clifton <nickc@cygnus.com>
8959
8960 * config/arm/arm.c: Initialise arm_structure_size_boundary to
8961 DEFAULT_STRUCTURE_SIZE_BOUNDARY.
8962 * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
8963 to the value 32 if it has not already been defined.
8964 * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
8965 Override definition in arm.h with a value of 8.
8966
8967 Thu Oct 28 03:12:02 1999 David Starner <dstarner98@aasaa.ofe.org>
8968
8969 * c-pragma.c (push_alignment): Don't check the return value
8970 of xmalloc.
8971
8972 Thu Oct 28 03:08:38 1999 Matteo Frigo <athena@fftw.org>
8973
8974 * sparc.h (ADJUST_COST): Fix thinko.
8975
8976 Thu Oct 28 02:44:03 1999 Glen Nakamura <glen.nakamura@usa.net>
8977
8978 * cccp.c (rescan): Fixed obp pointer handling around call to
8979 check_expand subroutine.
8980
8981 Thu Oct 28 02:15:22 1999 Jeffrey A Law (law@cygnus.com)
8982
8983 * gcse.c (delete_null_pointer_checks): Only record non-null info
8984 for pseudos when examining stores.
8985
8986 * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
8987 splitters for these patterns. Use "#" for output templates.
8988 (addsi3_carryin_shift): New pattern.
8989
8990 Thu Oct 28 10:20:02 1999 Geoffrey Keating <geoffk@cygnus.com>
8991
8992 * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
8993 of the function return register into a plain REG until
8994 after function inlining is done.
8995
8996 Wed Oct 27 15:21:46 1999 Richard Henderson <rth@cygnus.com>
8997
8998 * jump.c (jump_optimize_1): If we did cross-jumping, and
8999 the data will matter, rebuild the CFG.
9000 * reg-stack.c (reg_to_stack): Only (re)build the CFG if
9001 not optimizing. Don't run shorten_branches.
9002 * toplev.c (rest_of_compilation): Run shorten_branches after
9003 reg_to_stack.
9004
9005 Wed Oct 27 12:33:40 1999 Mark Mitchell <mark@codesourcery.com>
9006
9007 * rtl.h (note_stores): Add additional paramter.
9008 * rtlanal.c (reg_set_p_1): Take additional paramter.
9009 (reg_set_last_1): Likewise.
9010 (reg_set_p): Adjust call to note_stores.
9011 (reg_set_last): Likewise.
9012 (note_stores): Pass data parameter to worker function.
9013 * alias.c (record_set): Take additional parameter.
9014 (init_alias_analysis): Pass it.
9015 * caller-save.c (mark_set_regs): Take additional parameter.
9016 (save_call_clobbered_regs): Pass NULL to note_stores.
9017 * combine.c (set_nonzero_bits_and_sign_copies): Take additional
9018 parameter.
9019 (record_dead_and_set_regs_1): Likewise.
9020 (reg_dead_at_p_1): Likewise.
9021 (combine_instructions): Adjust calls to note_stores.
9022 (try_combine): Likewise.
9023 (record_dead_insn): Remove.
9024 (record_dead_and_set_regs): Adjust calls to note_stores.
9025 (reg_dead_at_p): Likewise.
9026 * cse.c (invalidate_skipped_set): Take additional parameter.
9027 (cse_check_loop_start): Likewise.
9028 (cse_check_loop_start_value): Remove.
9029 (cse_set_around_loop): Adjust calls to note_stores.
9030 * flow.c (notice_stack_pointer_modification): Take additional
9031 parameter. Remove duplicate declaration.
9032 (record_volatile_insns): Adjust calls to note_stores.
9033 * gcse.c (record_set_info): Take additional parameter.
9034 (record_last_set_info): Likewise.
9035 (invalidate_nonnull_info): Likewise.
9036 (record_set_insn): Remove.
9037 (compute_sets): Adjust calls to note_stores.
9038 (last_set_insn): Remove.
9039 (compute_hash_table): Adjust calls to note_stores.
9040 (insert_insn_end_bb): Likewise.
9041 (delete_null_pointer_checks): Likewise.
9042 * global.c (mark_reg_store): Take additional parameter.
9043 (mark_reg_clobber): Likewise.
9044 (reg_becomes_live): Likewise.
9045 (global_conflicts): Adjust calls to note_stores.
9046 (build_insn_chain): Likewise.
9047 * integrate.c (note_modified_parmregs): Take additional parameter.
9048 (mark_stores): Likewise. Make it static.
9049 (save_for_inline_nocopy): Adjust calls to note_stores.
9050 (try_constants): Likewise.
9051 * integrate.h (mark_stores): Remove declaration.
9052 * jump.c (mark_modified_reg): Take additional parameter.
9053 (thread_jumps): Adjust calls to note_stores.
9054 * local-alloc.c (validate_equiv_mem_from_store): Take additional
9055 parameter.
9056 (no_equiv): Likewise.
9057 (reg_is_set): Likewise.
9058 (validate_equiv_mem): Adjust calls to note_stores.
9059 (update_equiv_regs): Likewise.
9060 (block_alloc): Likewise.
9061 * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
9062 (note_addr_stored): Take additional parameter.
9063 (note_set_pseudo_multiple_uses): Likewise.
9064 (record_initial): Likewise.
9065 (prescan_loop): Adjust calls to note_stores.
9066 (strength_reduce): Likewise.
9067 (check_dbra_loop): Likewise.
9068 * regmove.c (flags_set_1): Take additional paramter.
9069 (mark_flags_life_zones): Adjust calls to note_stores.
9070 * reload1.c (mark_not_eliminable): Take additional parameter.
9071 (forget_old_reloads_1): Likewise.
9072 (reload_cse_invalidate_rtx): Likewise.
9073 (reload_cse_check_clobber): Likewise.
9074 (reload_combine_note_store): Likewise.
9075 (move2add_note_store): Likewise.
9076 (reload): Adjust calls to note_stores.
9077 (reload_as_needed): Likewise.
9078 (emit_reload_insns): Likewise.
9079 (reload_cse_regs_1): Likewise.
9080 (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
9081 (reload_combine): Adjust calls to note_stores.
9082 * resource.c (update_live_status): Take additional paramter.
9083 (mark_target_live_regs): Adjust calls to note_stores.
9084 * stupid.c (find_clobbered_regs): Take additional parameter.
9085 (stupid_life_analysis): Adjust calls to note_stores.
9086
9087 Wed Oct 27 19:26:12 1999 Nick Clifton <nickc@cygnus.com>
9088
9089 * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
9090 definition.
9091
9092 * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
9093 definition.
9094
9095 * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
9096 of the variable arm_structure_size_boundary.
9097
9098 Wed Oct 27 02:05:58 1999 Mark P. Mitchell <mark@codesourcery.com>
9099
9100 * alias.c (init_alias_analysis): Allocate reg_known_value and
9101 reg_known_equiv_p on the heap. Likewise for new_reg_base_value
9102 and reg_seen.
9103 (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
9104 * cse.c (cse_main): Call end_alias_analysis.
9105 * haifa-sched.c (schedule_insns): Likewise.
9106 * local-alloc. (update_equiv_regs): Likewise.
9107 * reload1.c (reload_cse_regs): Likewise.
9108
9109 Wed Oct 27 01:49:17 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9110
9111 * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
9112 * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
9113 mapping from MASK_FPU.
9114
9115 Wed Oct 27 01:42:26 1999 Scott Christley <scottc@net-community.com>
9116
9117 * sparc.md (call): Don't bound structure return size to 0xfff.
9118
9119 Wed Oct 27 00:56:59 1999 Richard Henderson <rth@cygnus.com>
9120
9121 * resource.c (mark_target_live_regs): Check that the target
9122 insn wasn't created after compute_bb_for_insn.
9123
9124 Tue Oct 26 23:15:03 1999 Mark Mitchell <mark@codesourcery.com>
9125
9126 * ggc-page.c (poison_pages): Don't be overzealous.
9127
9128 Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com)
9129
9130 * alias.c: Update comments for ADDRESS.
9131 (nonlocal_reference_p): Look inside the ADDRESS to determine if
9132 it is a local memory reference.
9133
9134 * c-typeck.c (build_function_call): Check that the built-in
9135 function is of class BUILT_IN_NORMAL before trying to recongize
9136 it as BUILT_IN_ABS.
9137 * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
9138 * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
9139
9140 Wed Oct 27 00:14:13 1999 Robert Lipe <robertlipe@usa.net>
9141
9142 * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
9143 of alloca.
9144 (pre_gcse): Likewise.
9145 (hoist_expr_reaches_here_p): Likewise.
9146 (hoist_code): Likewise.
9147 (pre_expr_reaches_here_p): Replace alloca with xcalloc. Move core
9148 code to ...
9149 (pre_expr_reaches_here_p_work): ... here.
9150 (expr_reaches_here_p): Replace alloca with xcalloc. Move core
9151 code to ...
9152 (expr_reaches_here_p_work): ... here.
9153
9154 Tue Oct 26 20:42:45 1999 Richard Henderson <rth@cygnus.com>
9155
9156 * resource.c (find_basic_block): Delete.
9157 (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
9158 (init_resource_info): Call compute_bb_for_insn.
9159
9160 Tue Oct 26 20:21:02 1999 Richard Henderson <rth@cygnus.com>
9161
9162 * flow.c (merge_blocks_move_predecessor_nojumps): Cope
9163 with already adjacent blocks, but no fallthru.
9164 (merge_blocks_move_successor_nojumps): Simplify.
9165 (debug_flow_info): New.
9166
9167 * toplev.c (rest_of_compilation): Open jump1 dump file before
9168 jump and close after, as opposed to just using dump_rtl.
9169
9170 Wed Oct 27 03:09:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
9171
9172 * reload.h (earlyclobber_operand_p): Declare.
9173 * reload.c (earlyclobber_operand_p): Don't declare. No longer static.
9174 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
9175 an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
9176 case where the RELOAD_OTHER reload is new. Use earlyclobber_operand_p.
9177
9178 Tue Oct 26 18:23:38 1999 Jan Hubicka <hubicka@freesoft.cz>
9179 Richard Henderson <rth@cygnus.com>
9180
9181 * emit-rtl.c (emit_block_insn_before): New.
9182 (emit_block_insn_after): New.
9183 * basic-block.h: Declare them.
9184
9185 * bitmap.h: Protect from multiple inclusion.
9186
9187 * recog.c (scratch_operand): Handle VOIDmode correctly.
9188
9189 * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
9190
9191 * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
9192 * function.c (assign_parms): Likewise.
9193 * global.c (global_conflicts): Clarify STACK_REGS commentary.
9194
9195 * reg-stack.c (max_uid): Remove.
9196 (blocks, block_begin, block_end, block_drops_in): Remove.
9197 (block_stack_in, block_out_reg_set, block_number): Remove.
9198 (struct block_info_def, BLOCK_INFO): New.
9199 (enum emit_where): New.
9200 (current_block): New.
9201 (BLOCK_NUM): Remove.
9202 (mark_regs_pat, record_label_references): Remove.
9203 (record_reg_life_pat, record_reg_life, find_blocks): Remove.
9204 (nan): New.
9205 (goto_block_pat, print_blocks, dump_stack_info): Remove.
9206 (reg_to_stack): Simplified test for existance of fp code. Use
9207 flow.c code. Call shorten_branches after cross-jump opt.
9208 (check_asm_stack_operands): Renamed from record_asm_reg_life.
9209 Return false if the asm doesn't use stack regs. Don't do life
9210 analysis on the asm.
9211 (emit_pop_insn): Replace function pointer arg `when' with
9212 enum `where'. Update all callers.
9213 (change_stack): Likewise. Update basic block end.
9214 (emit_swap_insn): Use current_block->head to limit reverse search
9215 for start of block. Use emit_block_insn_after.
9216 (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
9217 (subst_asm_stack_regs): Use check_asm_stack_operands. Use direct
9218 structure assignment instead of bcopy.
9219 (print_stack): New.
9220 (convert_regs_entry, convert_regs_exit): New.
9221 (convert_regs_1, convert_regs_2): Split out from convert_regs.
9222 Work on basic blocks and the CFG.
9223 (convert_regs): Use them.
9224
9225 * i386.c (output_fix_trunc): Remove code for DImode input operand
9226 not at top-of-stack.
9227 * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
9228 appropriate mode.
9229 (fix_truncdi_1): Allow any mode scratch.
9230
9231 Tue Oct 26 13:30:35 1999 Richard Henderson <rth@cygnus.com>
9232
9233 * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
9234 * linux.h, netbsd.h, vms.h: Not here.
9235
9236 1999-10-26 Gavin Romig-Koch <gavin@cygnus.com>
9237
9238 * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
9239 ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
9240 (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
9241 CONDITIONAL_REGISTER_USEAGE): Use them.
9242 * config/mips/mips.c (mips_move_1word,mips_move_2words,
9243 gen_conditional_branch,override_options) : Use them.
9244 * config/mips/mips.md : Use them.
9245
9246 Tue Oct 26 13:09:23 1999 Richard Henderson <rth@cygnus.com>
9247
9248 * i386.md (zero_extendqihi2): Use SImode register name with andl.
9249
9250 Tue Oct 26 12:35:38 1999 Richard Henderson <rth@cygnus.com>
9251
9252 * integrate.c (function_cannot_inline_p): Don't allow inlining
9253 if setjmp is used.
9254
9255 Tue Oct 26 14:10:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9256
9257 * c-parse.in (cast_expr): Constify.
9258
9259 * cccp.c (special_symbol): Likewise.
9260
9261 * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
9262
9263 * dwarf2out.c (base_type_die): Likewise.
9264
9265 * global.c (allocno_compare): Likewise.
9266
9267 * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
9268
9269 * regclass.c (fix_register): Likewise.
9270
9271 * rtl.h (fix_register): Likewise.
9272
9273 * stupid.c (stupid_reg_compare): Likewise.
9274
9275 * toplev.c (decode_f_option): Likewise.
9276
9277 * tree.c (build_complex_type): Likewise.
9278
9279 Tue Oct 26 18:35:25 1999 Richard Earnshaw <rearnsha@arm.com>
9280
9281 * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
9282
9283 Tue Oct 26 15:42:56 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9284
9285 * reload.c (find_reloads): Compute mode and nregs fields of all
9286 reloads.
9287 * reload1.c (calculate_needs_all_insns): Simplify a bit.
9288 (calculate_needs): Use precomputed mode/nregs values.
9289 (allocate_reload_reg): Likewise.
9290 Break out two...
9291 (failed_reload, set_reload_reg): ... new functions.
9292 (choose_reload_regs_init): New function, mostly broken out from...
9293 (choose_reload_regs): ... here. Lose all the save_xxx nonsense.
9294 Also lose one #if 0 block.
9295
9296 Tue Oct 26 02:48:32 1999 Marc Espie <espie@cvs.openbsd.org>
9297
9298 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET): Fix target name
9299 substitution.
9300
9301 Tue Oct 26 01:27:32 1999 Mark Mitchell <mark@codesourcery.com>
9302
9303 * tree.h (BLOCK_TYPE_TAGS): Remove.
9304 (BLOCK_END_NOTE): Likewise.
9305 (BLOCK_LIVE_RANGE_FLAG): Likewise.
9306 (BLOCK_LIVE_RANGE_START): Likewise.
9307 (BLOCK_LIVE_RANGE_END): Likewise.
9308 (tree_block): Remove live_range_flag, live_range_var_flag, and
9309 type_tags. Remove end_note, live_range_start, and live_range_end.
9310 (remember_end_note): Remove prototype.
9311 * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
9312 * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
9313 remember_end_note.
9314 * ggc-common.c (ggc_mark_tree_children): Don't mark
9315 BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
9316 * integrate.c (adjust_copied_decl_tree): Remove.
9317 * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
9318 * stmt.c (last_block_end_note): Remove.
9319 (init_stmt): Don't add a GC root for it.
9320 (expand_fixup): Don't set it.
9321 (remember_end_note): Remove.
9322 (expand_end_bindings): Don't set last_block_end_note.
9323
9324 Tue Oct 26 00:41:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9325
9326 * reload1.c (reload_reg_free_for_value_p): Show
9327 RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
9328 reloads.
9329
9330 Mon Oct 25 23:54:45 1999 Geoff Keating <geoffk@cygnus.com>
9331
9332 * expmed.c (extract_bit_field): Allow for the case of non-integer
9333 objects that are smaller than a word (like SFmode on a 64-bit
9334 machine).
9335
9336 * loop.c (basic_induction_var): A non-integer variable which is
9337 being set by a paradoxical subreg is probably not a biv.
9338
9339 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9340
9341 * prefix.c (translate_name) Check for empty prefix string.
9342
9343 Mon Oct 25 23:10:45 1999 Andreas Schwab <schwab@suse.de>
9344
9345 * Makefile.in (CPP_CROSS_NAME): New variable.
9346 (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
9347 xcpp.
9348 (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
9349 names of the files to be uninstalled.
9350
9351 Mon Oct 25 23:03:09 1999 Jeffrey A Law (law@cygnus.com)
9352
9353 * collect2.c (IS_DIR_SEPARATOR): Define.
9354 (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
9355
9356 * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
9357 functions too.
9358
9359 * haifa-sched.c (add_dependence): Update the true dependency
9360 cache the first time we add a true dependence to the LOG_LINKS chain.
9361
9362 Mon Oct 25 22:27:40 1999 Jim Kingdon <http://developer.redhat.com/>
9363
9364 * fold-const.c (fold): Fix comment.
9365
9366 Mon Oct 25 22:49:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9367
9368 * dbxout.c (lastfile, cwd, dbxout_type_method_1,
9369 dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
9370 dbxout_start_new_source_file, dbxout_source_file,
9371 dbxout_source_line, dbxout_finish, dbxout_type_fields,
9372 dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
9373 Constify a char*.
9374 (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
9375 (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
9376 (dbxout_block): Initialize variable `blocknum'.
9377
9378 * dbxout.h (dbxout_init, dbxout_finish,
9379 dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
9380 dbxout_args, dbxout_source_line): Constify a char*.
9381
9382 * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
9383 dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
9384 dwarf_fund_type_name, name_attribute, stmt_list_attribute,
9385 low_pc_attribute, high_pc_attribute, body_begin_attribute,
9386 body_end_attribute, comp_dir_attribute, sf_names_attribute,
9387 src_info_attribute, mac_info_attribute, producer_attribute,
9388 lookup_filename, generate_macinfo_entry, fundamental_type_code,
9389 dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
9390 dwarfout_undef): Constify a char*.
9391 (add_incomplete_type, retry_incomplete_types): Add prototypes.
9392
9393 * dwarfout.h (dwarfout_define, dwarfout_undef,
9394 dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
9395
9396 1999-10-25 Gavin Romig-Koch <gavin@cygnus.com>
9397
9398 * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
9399 (MULTILIB_ISA_DEFAULT): New.
9400 (MULTILIB_DEFAULTS): Use it.
9401 * config/mips/mips.c (): Remove the now unnecessary definition
9402 of MIPS_ISA_DEFAULT.
9403 * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
9404 unnecessary definition.
9405
9406 Mon Oct 25 22:08:35 1999 Richard Earnshaw (rearnsha@arm.com)
9407
9408 * arm.md (pic_load_addr): Add constraints to operand 1.
9409
9410 1999-10-25 Bruce Korb <autogen@linuxbox.com>
9411
9412 * fixinc/genfixes: Provide a means for specifying -D options to
9413 AutoGen
9414
9415 Mon Oct 25 00:42:35 1999 Jeffrey A Law (law@cygnus.com)
9416
9417 * arm.c (arm_override_options): Correct initialization of
9418 arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
9419 arm_is_strong, and arm_is_6_or_7.
9420
9421 * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
9422 (note_set_pseudo_multiple_uses): New function.
9423 (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
9424 if a pseudo set in the loop exit is used elsewhere.
9425
9426 Sun Oct 24 20:52:40 1999 Mark Mitchell <mark@codesourcery.com>
9427
9428 * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
9429
9430 Sun Oct 24 21:02:46 1999 Richard Henderson <rth@cygnus.com>
9431
9432 * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
9433 a single load-address pattern.
9434
9435 Sun Oct 24 19:33:24 1999 Mark P. Mitchell <mark@codesourcery.com>
9436
9437 * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
9438 depending on whether or not line-number notes are present.
9439
9440 Sun Oct 24 20:29:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9441
9442 * cccp.c (progname, file_buf, default_include, include_file,
9443 macrodef, definition, hashval, wchar_type, user_label_prefix,
9444 directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
9445 expand_to_temp_buffer, is_system_include, base_name,
9446 absolute_filename, read_name_map, open_include_file,
9447 record_control_macro, check_precompiled, check_preconditions,
9448 pcfinclude, pass_thru_directive, create_definition,
9449 check_macro_name, comp_def_part, collect_expansion,
9450 check_assertion, read_token_list, assertion_install,
9451 assertion_lookup, eval_if_expression, conditional_skip,
9452 validate_else, skip_quoted_string, quote_string, macarg1,
9453 error_from_errno, install, lookup, hashf, dump_defn_1,
9454 perror_with_name, pfatal_with_name, main, trigraph_pcp,
9455 check_white_space, rescan, handle_directive, monthnames,
9456 special_symbol, do_include, remap_include_file, write_output,
9457 arglist, do_assert, do_unassert, do_line, do_error, do_once,
9458 do_ident, do_sccs, do_xifdef, skip_if_group,
9459 output_line_directive, macroexpand, macarg, change_newlines,
9460 initialize_builtins, make_definition): Constify a char*.
9461
9462 * pcp.h (stringdef): Likewise.
9463
9464 Sun Oct 24 13:29:28 1999 Richard Henderson <rth@cygnus.com>
9465
9466 * unroll.c (copy_loop_body): Examine SET_DEST of single_set
9467 not of pattern.
9468
9469 Sun Oct 24 13:14:20 1999 Graham <grahams@rcp.co.uk>
9470 Richard Henderson <rth@cygnus.com>
9471
9472 * alias.c: Include ggc.h.
9473 (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
9474 (record_set): Verify enough room in reg_base_value.
9475 (init_alias_analysis): Allocate reg_base_value with xcalloc.
9476 Register it as a GC root.
9477 (end_alias_analysis): Free reg_base_value. Remove it as a GC root.
9478 * Makefile.in (alias.o): Depend on ggc.h.
9479
9480 * unroll.c (unroll_loop): Verify the insn before a barrier
9481 is a JUMP_INSN before checking JUMP_LABEL.
9482
9483 Sun Oct 24 15:46:44 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9484
9485 * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
9486 * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
9487 * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
9488 * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
9489 * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
9490 * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
9491
9492 Sun Oct 24 15:35:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9493
9494 * output.h (ctors_section, dtors_section, bss_section): Prototype.
9495
9496 * alpha/alpha-interix.h (text_section): Delete prototype.
9497 * alpha/elf.h (text_section): Likewise.
9498 * arm/linux-elf.h (text_section): Likewise.
9499 * arm/linux-telf.h (text_section): Likewise.
9500 * c4x/c4x.h (text_section): Likewise.
9501 * dsp16xx/dsp16xx.h (bss_section): Likewise.
9502 * elfos.h (text_section): Likewise.
9503 * i386/aix386ng.h (text_section): Likewise.
9504 * i386/i386-interix.h (text_section): Likewise.
9505 * i386/sco5.h (text_section): Likewise.
9506 * i386/svr3gas.h (text_section): Likewise.
9507 * nextstep.h (text_section): Likewise.
9508 * psos.h (text_section): Likewise.
9509 * ptx4.h (text_section): Likewise.
9510 * svr3.h (text_section): Likewise.
9511 * svr4.h (text_section, ctors_section, dtors_section): Likewise.
9512
9513 Sun Oct 24 15:20:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9514
9515 * final.c (peephole): Delete prototype.
9516
9517 * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
9518 (pre_insert_copies): Remove unused variable `bb'.
9519
9520 * genrecog.c (debug_decision_0, debug_decision_list, main): Add
9521 prototypes.
9522
9523 * output.h (peephole): Add prototype.
9524
9525 Sun Oct 24 11:35:30 1999 Mark P. Mitchell <mark@codesourcery.com>
9526
9527 * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
9528 -O0.
9529
9530 Sat Oct 23 21:13:00 1999 Mark Mitchell <mark@codesourcery.com>
9531
9532 * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
9533 for inlined declarations.
9534
9535 Fri Oct 22 18:05:43 1999 Jeffrey A Law (law@cygnus.com)
9536
9537 * arm.c (logical_binary_operator): New fucntion.
9538 * arm.h (logical_binary_operator): Declare it.
9539 (PREDICATE_CODES): Handle logical_binary_operator.
9540 * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
9541 output constraints. Add appropriate splitters.
9542 (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
9543 (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
9544 (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
9545
9546 Fri Oct 22 23:46:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9547
9548 * genoutput.c (struct operand_data): New elt eliminable.
9549 (output_operand_data): Write it.
9550 (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
9551 (compare_operands): Take it into account.
9552 * recog.h (struct insn_operand_data): New elt eliminable.
9553 * reload1.c (check_eliminable_occurrences, elimination_effects): New
9554 functions.
9555 (old_asm_operands_vec, new_asm_operands_vec): Delete.
9556 (eliminate_regs): Move code that detects changes to elimination
9557 target regs into new function elimination_effects.
9558 Delete one #if 0 block.
9559 Abort for USE, CLOBBER, ASM_OPERANDS and SET.
9560 (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
9561 ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
9562 Only call eliminate_regs for real operands of the insn, not for parts
9563 of its structure or parts matched by things like match_operator.
9564 Use elimination_effects and check_eliminable_occurrences. Use
9565 copy_insn to duplicate the pattern when not in the final pass.
9566
9567 Fri Oct 22 09:03:44 1999 Mark Mitchell <mark@codesourcery.com>
9568
9569 * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
9570 and fld.
9571
9572 1999-10-22 Bruce Korb <autogen@linuxbox.com>
9573
9574 * fixinc/README: document the "mach" machine matching test
9575 * fixinc/fixfixes.c: Implement the #else/#endif label fix
9576 * fixinc/fixtests.c: Implement the #else/#endif label test
9577 * fixinc/inclhack.def: utilize these tests and fixes
9578 * fixinc/inclhack.sh: regen
9579 * fixinc/fixincl.x: regen
9580 * fixinc/fixincl.sh: regen
9581
9582 Thu Oct 21 20:37:19 1999 Jeffrey A Law (law@cygnus.com)
9583
9584 * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h. Also
9585 depend on ggc.h.
9586
9587 Thu Oct 21 20:30:19 1999 Matthias Klose <doko@debian.org>
9588
9589 * gcc.1: Document exit codes.
9590
9591 Thu Oct 21 12:49:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9592
9593 * calls.c: Include tm_p.h later, so everything we need is defined.
9594 * expr.c: Likewise.
9595 * function.c: Likewise.
9596
9597 * except.c: Include tm_p.h.
9598
9599 * sparc.c: Likewise.
9600 (dwarf2out_cfi_label): Don't prototype.
9601 (check_return_regs, epilogue_renumber,
9602 ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
9603 ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
9604 ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
9605 ultra_schedule_insn): Add static prototype.
9606 (data_segment_operand, text_segment_operand): Call itself with the
9607 proper number of arguments.
9608 (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
9609
9610 * sparc.h: Move all declarations to sparc-protos.h.
9611 (SELECT_RTX_SECTION): Pass a missing MODE argument to
9612 symbolic_operand.
9613
9614 * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
9615
9616 * config/svr4.h (text_section, ctors_section, dtors_section): Add
9617 Prototypes.
9618 (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
9619 ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
9620 ASM_OUTPUT_ASCII): Constify a char*.
9621
9622 * sparc-protos.h: New file for sparc prototypes.
9623
9624 Thu Oct 21 12:23:40 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9625
9626 * function.c (record_insns, contains): Always declare and define.
9627 (record_insns): Mark with ATTRIBUTE_UNUSED.
9628
9629 Thu Oct 21 13:03:49 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
9630
9631 * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
9632 to .section when outputting a .bss section to deal with multiple
9633 .bss input sections (as happens with -fdata-sections)
9634 Also output %progbits, not @progbits so the assembler doesn't treat as
9635 a comment.
9636 * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
9637
9638 * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
9639 thumb parts even when building with non-thumb CPUs, by forcing
9640 thumb mode.
9641
9642 Wed Oct 20 22:57:58 1999 Jeffrey A Law (law@cygnus.com)
9643
9644 * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
9645 (movdf_const_intreg_sp64): Similarly.
9646
9647 * local-alloc.c (update_equiv_regs): Check the correct insn
9648 for pre-existing REG_EQUIV notes.
9649
9650 Wed Oct 20 20:41:46 1999 Mark Mitchell <mark@codesourcery.com>
9651
9652 * cse.c (cse_end_of_basic_block): Don't return the end of a basic
9653 block reached by a branch if we're not going to actually process
9654 this block.
9655
9656 Wed Oct 20 15:18:42 1999 Jim Wilson <wilson@cygnus.com>
9657
9658 * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
9659 a local extern function declaration.
9660
9661 Wed Oct 20 13:56:01 1999 Richard Henderson <rth@cygnus.com>
9662
9663 * i386.c (ix86_expand_prologue): Properly wrap USE around
9664 reg for CALL_INSN_FUNCTION_USAGE.
9665
9666 Thu Oct 14 18:51:37 1999 Andrew Haley <aph@cygnus.com>
9667
9668 * config/mips/mips.md (movdf_internal1a): Allow floating-point
9669 move between GP_REGs.
9670
9671 Wed Oct 20 15:36:11 1999 Andrew Haley <aph@cygnus.com>
9672
9673 * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
9674 the mode size when finding out if an offset is legal.
9675
9676 Wed Oct 20 06:26:58 1999 Richard Henderson <rth@cygnus.com>
9677
9678 * basic-block.h (PROP_*): Move constants from ...
9679 * flow.c: ... here.
9680 (compute_bb_for_insn): Free the array before reallocating.
9681 (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
9682 (allocate_reg_life_data): Reset all reg variables collected by
9683 propagate_block.
9684 (get_block_head_tail): Don't convert from bb to block.
9685 (get_bb_head_tail): New. Update all callers of get_block_head_tail.
9686 (find_insn_reg_weight): Take block not bb.
9687 (schedule_block): Don't set block num for moved insns.
9688 (schedule_region): Don't update_life_info or find_insn_reg_weight.
9689 (schedule_insns): Do it here instead.
9690 * combine.c (combine_instructions): Invoke compute_bb_for_insn
9691 before update_life_info.
9692 * recog.c (split_all_insns, peephole2_optimize): Update for
9693 new arg to update_life_info.
9694 * rtlanal.c (remove_note): Cope with NULL note.
9695 * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
9696 if we did sched1.
9697
9698 Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com)
9699
9700 * jump.c (jump_optimize_1): More accurately detect casesi insns.
9701
9702 * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
9703 block records so that merge_blocks_nomove will clean up correctly.
9704 (split_edge): Handle casesi insns.
9705
9706 * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
9707
9708 Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com)
9709
9710 * pa.md (call, call_value): Do not emit a blockage after restoring
9711 the PIC register.
9712
9713 Tue Oct 19 17:22:39 1999 Mark Mitchell <mark@codesourcery.com>
9714
9715 * c-typeck.c (c_expand_asm_operands): Fix typo.
9716
9717 Tue Oct 19 18:42:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9718
9719 * arm.c (fpu_rhs_operand): Verify modes.
9720 (fpu_add_operand): Likewise.
9721 (di_operand): Likewise.
9722 (soft_df_operand): Likewise.
9723
9724 Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com)
9725
9726 * arm.c (arm_return_in_memory): APCS rules state that the elements
9727 of a structure returned in a register must be 'integer-like'.
9728
9729 1999-10-19 Bruce Korb <autogen@linuxbox.com>
9730
9731 * fixinc/Makefile.in: Change the generation rules to run `genfixes'
9732 in the source tree when the generated targets are out of date
9733 * fixinc/genfixes: Alter it to run individual fixes for make.
9734 * fixinc/README: rewrite
9735 * fixinc/inclhack.def: moved initial comments to README
9736
9737 Tue Oct 19 14:01:34 1999 Nick Clifton <nickc@cygnus.com>
9738
9739 * toplev.c (main): Do not generate an error message if an
9740 unrecognised command line switch is recognisable by another
9741 language. If extra_warnings are enabled, then generate a
9742 warning message instead.
9743
9744 Tue Oct 19 11:41:12 1999 Mumit Khan <khan@xraylith.wisc.edu>
9745
9746 * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
9747 (insert_pack_attributes): Delete prototype.
9748
9749 * c-pragma.c (default_alignment): New static variable.
9750 (push_alignment): Initialize to current effective alignment.
9751 (pop_alignment): Use to set new alignment.
9752 (insert_pack_attributes): Delete function.
9753 (handle_pragma_token): Set default_alignment as well each time
9754 a #pragma pack(<n>) is encountered.
9755
9756 Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com)
9757
9758 * reg-stack.c (stack_result): Aggregates are not returned in
9759 stack registers.
9760
9761 Tue Oct 19 01:26:48 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
9762
9763 * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
9764
9765 Mon Oct 18 15:19:41 1999 Richard Henderson <rth@cygnus.com>
9766
9767 * basic-block.h (set_block_num): Declare.
9768 * flow.c (update_life_info): Don't call compute_bb_for_insn
9769 or free_basic_block_vars.
9770 * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
9771 (insn_orig_block): Remove.
9772 (INSN_BLOCK): Remove. Update all callers to use BLOCK_NUM.
9773 (schedule_block): Keep BLOCK_NUM up-to-date.
9774 (schedule_insns): Use compute_bb_for_insn.
9775 * recog.c (split_all_insns): Likewise.
9776 (peephole2_optimize): Likewise.
9777
9778 Mon Oct 18 18:50:51 1999 Andreas Schwab <schwab@suse.de>
9779
9780 * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
9781 if the pic register is used.
9782
9783 Mon Oct 18 02:38:46 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9784
9785 * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
9786 (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
9787 if that tests TREE_PERMANENT.
9788
9789 Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com)
9790
9791 * cse.c (invalidate_for_call): Do not remove memory references from
9792 the table here. It's handled elsewhere.
9793
9794 * haifa-sched.c (add_dependence): Protect references to the
9795 true dependency cache with #ifdef INSN_SCHEDULING.
9796 (remove_dependence): Similarly.
9797
9798 * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
9799 to the cfg code that this is a return instruction.
9800 * mn10300.md (return_internal): Similarly.
9801
9802 * combine.c (get_last_value): If the last set of a register
9803 is after subst_low_cuid, then we can not use it to determine
9804 the register's last value.
9805
9806 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
9807
9808 * Makefile.in: Back out previous change.
9809
9810 Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com)
9811
9812 * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
9813
9814 * haifa-sched.c (add_dependence): Only check/update the cache
9815 if it exists.
9816 (remove_dependence): Likewise.
9817 (schedule_insns): Only create the true_dependency_cache if the
9818 average number of instructions in a basic block is very large.
9819
9820 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
9821
9822 * Makefile.in (ggc-common.o): Depend on genrtl.h.
9823 (ggc-simple.o): Likewise.
9824 (ggc-page.o): Likewise.
9825
9826 Sun Oct 17 02:09:50 1999 Andrew MacLeod <amacleod@cygnus.com>
9827
9828 * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
9829 Prototype for exported functions.
9830 (pre_lcm, pre_rev_lcm): Remove prototypes.
9831 * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
9832 (compute_available): Move to lcm.c, and change parameter order.
9833 (one_classic_gcse_pass): Call compute_ae_kill with parameters.
9834 (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
9835 (gcse_main): No longer call compute_preds_succs. Rebuild the
9836 set table after reach pre pass.
9837 (pre_insert_map, pre_delete_map, edge_list): New.
9838 (alloc_pre_mem): Allocate edge vectors.
9839 (free_pre_mem): Delete edge vectors.
9840 (compute_pre_data): Call new edge based lcm routines.
9841 (process_insert_insn): New function.
9842 (insert_insn_end_bb): Use it.
9843 (pre_edge_insert): New function.
9844 (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as
9845 needed.
9846 (pre_insert_copies): Revamp using new edge based lcm outputs.
9847 (pre_delete): Likewise.
9848 (one_pre_gcse_pass): Insert & remove fake edges to the exit
9849 block.
9850 (compute_code_hoist_vbeinout): New new edge based routines.
9851 * lcm.c: Remove all the old LCM functions. Replace with new ones
9852 that work with the new cfg datastructures and work with edges
9853 instead of blocks.
9854
9855 Sun Oct 17 00:44:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9856
9857 * reload.h (struct reload): Add new fields "mode" and "nregs".
9858 * reload1.c: Change all occurrences of reload_mode and reload_nregs
9859 to reference the "mode" and "nregs" field within struct reload.
9860
9861 Sat Oct 16 21:50:28 1999 Jeffrey A Law (law@cygnus.com)
9862
9863 * haifa-sched.c (true_dependency_cache): New.
9864 (add_dependence): Use the true dependency cache to avoid expensive
9865 walks down the LOG_LINKS dependency list. Add entries to the
9866 cache as necessary.
9867 (remove_dependence): Remove entries from the true dependency cache
9868 as needed.
9869 (schedule_insns): Allocate and initialize and free the true
9870 dependency cache.
9871
9872 * haifa-sched.c (schedule_insns): Do not remove inter-block
9873 dependencies anymore.
9874
9875 Sat Oct 16 11:19:52 1999 Richard Henderson <rth@cygnus.com>
9876
9877 * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
9878 * i386/t-winnt: Likewise.
9879
9880 Sat Oct 16 11:11:54 1999 Richard Henderson <rth@cygnus.com>
9881
9882 * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
9883
9884 1999-10-16 Manfred Hollstein <mhollstein@cygnus.com>
9885
9886 * Makefile.in (LANGUAGES): Omit "proto".
9887 (clean): Remove stale comment about removing unprotoize.c.
9888
9889 Sat Oct 16 11:29:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9890
9891 * protoize.c (safe_read, safe_write): Avoid the gcc extension of
9892 using arithmetic on void pointers.
9893
9894 Sat Oct 16 02:48:22 1999 Jeffrey A Law (law@cygnus.com)
9895
9896 * haifa-sched.c (compute_block_forward_dependencies): Only check
9897 for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
9898
9899 Sat Oct 16 00:07:01 1999 Richard Henderson <rth@cygnus.com>
9900
9901 * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
9902 (expr_equiv_p): Reject memories with different alias sets.
9903
9904 Fri Oct 15 15:17:29 1999 Greg McGary <gkm@gnu.org>
9905
9906 * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
9907 * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
9908 (f_options): Add "bounded-pointers" and "bounds-check" entries.
9909 * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
9910 (lang_init): Set default for flag_bounds_check if still "unspecified".
9911
9912 Sat Oct 16 13:42:29 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9913
9914 * config/c4x/c4x.md (HF mode patterns): Add missing modes.
9915
9916 Sat Oct 16 13:37:46 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9917
9918 * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
9919 instructions.
9920
9921 Sat Oct 16 13:26:47 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9922
9923 * config/c4x/c4x.md (*db_noclobber,
9924 *decrement_and_branch_until_zero_noclobber): New patterns and
9925 associated splitters.
9926
9927 Sat Oct 16 13:13:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9928
9929 * config/c4x/c4x.md (parallel instruction patterns): Rework
9930 constraints to keep reload happy.
9931
9932 Sat Oct 16 13:03:16 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9933
9934 * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
9935 *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
9936 *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
9937 Add new patterns and associated post-reload splitters.
9938
9939 Sat Oct 16 12:42:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9940
9941 * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
9942
9943 Sat Oct 16 12:34:44 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9944
9945 * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
9946 if appropriate.
9947 * config/c4x/c4x.md (rpts_top): New pattern and splitter.
9948
9949 Sat Oct 16 12:26:30 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9950
9951 * config/c4x/c4x.c (src_operand): Check SYMBOL_REF and LABEL_REF
9952 memory mode.
9953
9954 Fri Oct 15 17:02:09 1999 Jeffrey A Law (law@cygnus.com)
9955
9956 * pa.c (move_operand): Rely on memory_address_p to determine the
9957 validity of non-indexed memory addresses.
9958 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
9959 operand in DFmode and SFmode when generating PA2.0 code.
9960
9961 Fri Oct 15 14:25:19 1999 Richard Henderson <rth@cygnus.com>
9962
9963 * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
9964
9965 Fri Oct 15 13:48:45 1999 Richard Henderson <rth@cygnus.com>
9966
9967 * mips.c (function_prologue): Fix argument types.
9968 * mips.md (casesi): Use emit_jump_insn for casesi_internal.
9969 (casesi_internal): Write to the scratch register.
9970
9971 1999-10-15 11:16 -0700 Zack Weinberg <zack@bitmover.com>
9972
9973 * cppexp.c (cpp_parse_escape): Make static. Change second arg
9974 to U_CHAR **.
9975 (parse_charconst): Delete unnecessary cast when calling
9976 cpp_parse_escape.
9977 (cpplib.h): Kill prototype of cpp_parse_escape.
9978
9979 Fri Oct 15 11:02:46 1999 Richard Henderson <rth@cygnus.com>
9980
9981 Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
9982 * unroll.c (unroll_loop): Cast return value of alloca.
9983 * i370/i370.c: Include function.h and toplev.h.
9984 (i370_label_scan): Remove c++ commented abort.
9985 * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
9986 (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
9987 * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
9988 * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
9989
9990 Fri Oct 15 03:01:01 1999 Loren Rittle <ljrittle@acm.org>
9991
9992 * config/t-freebsd: Do not override USER_H.
9993 * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
9994
9995 Fri Oct 15 02:37:28 1999 Alastair J. Houghton <ajh8@doc.ic.ac.uk>
9996 Mumit Khan <khan@xraylith.wisc.edu>
9997
9998 * c-parse.in (component_decl): Support anonymous struct/union.
9999 (%expect): Update.
10000 * c-parse.y: Regenerate.
10001 * c-parse.c: Likewise.
10002 * objc/objc-parse.y: Likewise.
10003 * objc/objc-parse.c: Likewise.
10004 * c-decl.c (finish_struct): Don't sort the fields.
10005 (field_decl_cmp): Delete unused function.
10006
10007 Fri Oct 15 01:20:52 1999 Richard Henderson <rth@cygnus.com>
10008
10009 * sparc.md (movsf_const_intreg): Revert last constraint change.
10010 (movdf_const_intreg_sp32): Likewise.
10011
10012 Fri Oct 15 01:47:51 1999 Vladimir Makarov <vmakarov@loony.cygnus.com>
10013
10014 * cse.c: Include hashtab.h instead of splay-tree.h
10015 (struct cse_reg_info): No longer use variant union. Add new
10016 field "regno". All references changed to avoid union.
10017 (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
10018 (free_cse_reg_info): Remove.
10019 (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
10020 (get_cse_reg_info): Revamp to use expandable hash tables instead
10021 of splay trees. Initialize new fields in cse_reg_info structure.
10022 (new_basic_block): Similarly.
10023
10024 Thu Oct 14 23:51:56 1999 Richard Henderson <rth@cygnus.com>
10025
10026 * genrecog.c (message_with_line): Prototype.
10027 (validate_pattern): Pass along the set for the dest, not a flag.
10028 Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL.
10029 Check for PC/CC0 as sources.
10030 (nodes_identical): Check for children position match before
10031 allowing the combination.
10032
10033 * rtl.c (read_rtx): Track line number across \\\n.
10034
10035 Thu Oct 14 23:50:25 1999 Richard Henderson <rth@cygnus.com>
10036
10037 * mips.h (SPECIAL_MODE_PREDICATES): New.
10038 * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
10039 (movdi+1, movsi+1): Add output reload constraint.
10040 (casesi_internal): Likewise. Fix commentary.
10041 (return_internal): Use pmode_register_operand.
10042
10043 Thu Oct 14 23:19:34 1999 Richard Henderson <rth@cygnus.com>
10044
10045 * 1750a.md (movstrqi): Add missing output reload constraint.
10046 (call_value): Likewise.
10047 * a29k.md (cpxxx patterns): Add missing match_operator mode.
10048 (jmpfdec): Add missing inout reload constraint.
10049 * elxsi.md (addsi patterns): Add missing output reload constraint.
10050 (move from sp): Use @ alternates.
10051 (call_value): No constraint on output.
10052 * fr30.md (movsi_pop): Add missing output reload constraint.
10053 (movsf_constant_store): Likewise.
10054 (splits): Remove constraints.
10055 (subsi3): Add missing mode.
10056 * i370.md (cmpstrsi+1): Add missing output reload constraint.
10057 (call_value): Likewise.
10058 * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
10059 * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
10060 * m32r.md (movsicc_internal): Add output reload constraint.
10061 (movstrsi_internal): Add inout reload constraints.
10062 * m88k.h (reg_names): Don't declare.
10063 (SPECIAL_MODE_PREDICATES): New.
10064 * m88k.md (*): Use register_operand not reg_or_0_operand
10065 on destinations.
10066 * mn10200.h (PREDICATE_CODES): New.
10067 * ns32k.md (ffs pattern): Add output reload constraint.
10068 * pdp11.md (sob pattern): Add inout reload constraint.
10069 * sh.md (splits): Remove constraints.
10070 (indirect_jump_scratch, fpu_switch): Add output reload constraint.
10071 * v850.md (pattern_is_ok_for_epilogue): Likewise.
10072 * vax.md (jgequ pattern): Add inout reload constraint.
10073
10074 Fri Oct 15 00:05:00 1999 Jeffrey A Law (law@cygnus.com)
10075
10076 * configure.in (djgpp): Revert previous patch.
10077 * configure: Rebuit.
10078 * config/i386/djgpp.h: Revert previous patch.
10079
10080 Fri Oct 15 00:00:24 1999 Loren J. Rittle <ljrittle@acm.org>
10081
10082 * fixinc/inclhack.def: Restore patch lost during last merge of
10083 "no_bogosity" branch.
10084 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
10085
10086 Thu Oct 14 23:57:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
10087
10088 * fixincludes: Add a HPUX 11 fix for inttypes.h.
10089 * fixinc/inclhack.def: Same.
10090 * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
10091
10092 Thu Oct 14 22:51:55 1999 Richard Henderson <rth@cygnus.com>
10093
10094 * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
10095 as the base of a PLUS.
10096
10097 Fri Oct 15 18:36:07 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10098
10099 * config/c4x/c4x.md: Define mode for remaining unspec operators.
10100 * config/c4x/c4x.c (dst_operand): Use nonimmediate_operand.
10101
10102 Thu Oct 14 22:14:23 1999 Richard Henderson <rth@cygnus.com>
10103
10104 * pa.md (post_stw+1): Use pmode_register_operand.
10105 (dcacheflush, icacheflush): Likewise.
10106
10107 * i386.md (movstricthi_1): Allow r/r.
10108
10109 Thu Oct 14 19:44:08 1999 Jan Hubicka <hubicka@freesoft.cz>
10110
10111 * fold-const.c (fold): Convert (or (not arg0) (not arg1))
10112 to (not (and (arg0) (arg1))). Similary for and.
10113
10114 * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
10115 fallthrough to associate code.
10116 Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
10117 bits in common.
10118
10119 * combine.c (simplify_logical): Convert XOR to IOR if operands have
10120 no bits in common; remove XOR to ROTATE conversion.
10121
10122 Fri Oct 15 17:40:11 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10123
10124 * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
10125
10126 Fri Oct 15 17:27:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10127
10128 * config/c4x/c4x.c (dst_operand): New.
10129 (PREDICATE_CODES): Update.
10130 * config/c4x/c4x.h (dst_operand): Declare it.
10131 * config/c4x/c4x.md: Define mode for each unspec usage.
10132 (move patterns): Use dst_operand predicate instead of src_operand.
10133 (movqi_update, movqf_update): Delete.
10134
10135 Thu Oct 14 18:48:54 1999 Richard Henderson <rth@cygnus.com>
10136
10137 * recog.c (pmode_register_operand): New.
10138 * recog.h: Declare it.
10139 * genrecog.c (pred_codes): Likewise.
10140 (special_mode_pred_table): Likewise.
10141 (validate_pattern): Don't warn no mode for address_operand.
10142
10143 * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
10144 if the operand is not insn-like.
10145
10146 Thu Oct 14 19:38:42 1999 Jeffrey A Law (law@cygnus.com)
10147 Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
10148
10149 * fold-const.c (fold): Handle more simplifications allowed by IEEE.
10150
10151 Thu Oct 14 17:30:14 1999 Richard Henderson <rth@cygnus.com>
10152
10153 * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
10154 instead of general_operand in a SET_DEST. Use const_double_operand
10155 instead of an explicit test against CONST_DOUBLE.
10156 (movsf_const_lo): Add missing register mode.
10157 (goto_handler_and_restore): Add auxiliary test for Pmode.
10158 (flush): Adjust to use address_operand.
10159 (return_sf_no_fpu): Add missing output constraint.
10160
10161 Thu Oct 14 17:21:26 1999 Richard Henderson <rth@cygnus.com>
10162
10163 * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
10164 for call return value.
10165 (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
10166
10167 Thu Oct 14 13:54:25 1999 Jason Merrill <jason@yorick.cygnus.com>
10168
10169 * toplev.c (main): Only warn about options for other languages.
10170 * collect2.c (main): Pass -w to sub-gcc.
10171
10172 Thu Oct 14 16:27:50 1999 Richard Henderson <rth@cygnus.com>
10173
10174 * flow.c (propagate_block): Add call-clobbered registers to
10175 significant too.
10176
10177 * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
10178 zapping mem_set_list.
10179 (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
10180 (mark_set_1, mark_used_regs): Likewise.
10181
10182 Thu Oct 14 10:51:49 1999 Richard Henderson <rth@cygnus.com>
10183
10184 * m68k.md (zero_extendsidi2): Add missing output reload constraint.
10185
10186 Wed Oct 13 00:09:18 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
10187
10188 * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
10189 -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
10190 options. Also add a new item "C-only Warning Options" to the
10191 option summary.
10192
10193 1999-10-14 Gavin Romig-Koch <gavin@cygnus.com>
10194
10195 * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
10196 from multiple calls.
10197
10198 Thu Oct 14 04:54:54 1999 Richard Henderson <rth@cygnus.com>
10199
10200 * i386.md (call value patterns): Move to the end of the file.
10201 (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
10202
10203 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
10204
10205 * configure.in (djgpp configuration): Define extra_objects..
10206 * configure: Rebuilt.
10207 * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
10208 (DTORS_SECTION_ASM_OP): Define.
10209 (INIT_SECTION_ASM_OP): Define.
10210 (FINI_SECTION_ASM_OP): Define.
10211 (DATA_SECTION_ASM_OP): Define.
10212 (TEXT_SECTION_ASM_OP): Define.
10213 (EH_FRAME_SECTION_ASM_OP): Define.
10214 (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
10215 (STARTFILE_SPEC): Add crtbegin.o.
10216 (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
10217 to here from LINK_COMMAND_SPEC.
10218 (DO_GLOBAL_CTORS_BODY): Define.
10219 (CRTSTUFF_USE_FINI_SECTION): Define
10220 (HAS_INIT_SECTION): Delete.
10221
10222 Thu Oct 14 05:08:14 1999 Andreas Schwab <schwab@suse.de>
10223
10224 * Makefile.in (all.cross): Depend on xcpp$(exeext).
10225
10226 Thu Oct 14 04:00:40 1999 Richard Henderson <rth@cygnus.com>
10227
10228 * pa.h (PREDICATE_CODES): New.
10229
10230 * genrecog.c (validate_pattern): Condense the destination
10231 non-lvalue message.
10232
10233 Thu Oct 14 03:23:08 1999 Richard Henderson <rth@cygnus.com>
10234
10235 * alpha.md (call-1): Supply missing mode for operator.
10236 (*): Add missing output reload constraints. Remove constraints
10237 from define_splits.
10238
10239 * i386.h (SPECIAL_MODE_PREDICATES): New.
10240 * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
10241 (movqi_1, movdi_1, movdi_2, some splits): Likewise.
10242 (addsi_lea_3): Add missing mode for op 3.
10243 (prologue_set_got, prologue_get_pc): Add missing modes.
10244 (*) Add missing output reload constraints.
10245
10246 Thu Oct 14 03:59:57 1999 Stephane Carrez <stcarrez@worldnet.fr>
10247
10248 * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
10249 check for member bit-size overflow and use var_size if it occurs.
10250 (layout_record): Use bitsize_int() to define the type size in bits.
10251 Likewise for computation and assignment to DECL_FIELD_BITPOS.
10252 (layout_decl): Likewise when assigning to DECL_SIZE.
10253
10254 Thu Oct 14 02:57:05 1999 Richard Henderson <rth@cygnus.com>
10255
10256 * genrecog.c (validate_pattern): Typo last change. Verify
10257 that output operands have output reloads.
10258
10259 Thu Oct 14 01:49:54 1999 Richard Henderson <rth@cygnus.com>
10260
10261 * genrecog.c (special_mode_pred_table): New.
10262 (NUM_SPECIAL_MODE_PREDS): New.
10263 (find_operand): New.
10264 (validate_pattern): New argument `insn'. Warn for assignment to
10265 any predicate accepting non-lvalues. Conditionaly warn for
10266 match_operand without a mode. Try much harder to match source
10267 and destination modes on a set.
10268 * tm.texi (SPECIAL_MODE_PREDICATES): Document.
10269
10270 Thu Oct 14 02:54:13 1999 Jeffrey A Law (law@cygnus.com)
10271
10272 * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
10273
10274 Thu Oct 14 02:18:19 1999 Marc Espie <espie@cvs.openbsd.org>
10275
10276 * combine.c (simplify_logical): Recognize xor pattern that encodes
10277 rotation.
10278
10279 Wed Oct 13 23:23:45 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
10280
10281 * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
10282 alignment.
10283
10284 Wed Oct 13 21:47:18 1999 Richard Henderson <rth@cygnus.com>
10285
10286 * ggc-page.c (MAP_FAILED): Provide default.
10287
10288 Wed Oct 13 21:41:59 1999 Richard Henderson <rth@cygnus.com>
10289
10290 * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
10291 * sparc.h (PREDICATE_CODES): Update.
10292
10293 Wed Oct 13 21:18:17 1999 Richard Henderson <rth@cygnus.com>
10294
10295 * alpha.c (some_ni_operand): New.
10296 * alpha-protos.h: Declare it.
10297 * alpha.h (PREDICATE_CODES): Update.
10298 * alpha.md (sXaddq reload insns): Use some_ni_operand
10299 for SET_DEST instead of some_operand.
10300
10301 Wed Oct 13 21:04:45 1999 Richard Henderson <rth@cygnus.com>
10302 Jim Wilson <wilson@cygnus.com>
10303
10304 * genrecog.c (maybe_both_true_2): Don't compare modes of
10305 two DT_pred tests.
10306 (process_tree): Elide peephole2_insns. Invoke simplify_tests
10307 after find_afterward.
10308 (debug_decision_1): Dump next and afterward codes.
10309
10310 Wed Oct 13 20:35:16 1999 Richard Henderson <rth@cygnus.com>
10311
10312 * rtl.c (dump_and_abort): Remove.
10313 (fatal_with_file_and_line): New.
10314 (fatal_expected_char): New.
10315 (read_rtx_lineno, read_rtx_filename): New.
10316 (read_skip_spaces): Track line number.
10317 (read_name): Use fatal_with_file_and_line.
10318 (read_rtx): Use fatal_expected_char. Track line number.
10319 * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
10320
10321 * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
10322 if it isn't a CODE_LABEL.
10323
10324 * genattr.c (main): Set read_rtx_filename.
10325 * genattrtab.c (main): Likewise.
10326 * gencodes.c (main): Likewise.
10327 * genconfig.c (main): Likewise.
10328 * genemit.c (main): Likewise.
10329 * genextract.c (main): Likewise.
10330 * genflags.c (main): Likewise.
10331 * genopinit.c (main): Likewise.
10332 * genoutput.c (main): Likewise.
10333 * genpeep.c (main): Likewise.
10334
10335 * genrecog.c (decision_test.u.insn): Add `lineno'.
10336 (pattern_lineno, error_count): New variables.
10337 (message_with_line): New.
10338 (add_to_sequence): Break out checking code to ...
10339 (validate_pattern): ... here. Detect SET_DEST matching CONST_INT.
10340 (merge_insn): Use message_with_line.
10341 (make_insn_sequence): Use validate_pattern. Record insn lineno.
10342 (main): Set read_rtx_filename, pattern_lineno. Exit early on error.
10343
10344 Wed Oct 13 22:01:35 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
10345
10346 * expr.c (store_constructor): Clear union if constructor is empty.
10347
10348 Wed Oct 13 15:19:04 1999 Jim Wilson <wilson@cygnus.com>
10349
10350 * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
10351 Add !endian checks. Change %{...} to %(...).
10352
10353 Wed Oct 13 13:30:34 1999 Richard Henderson <rth@cygnus.com>
10354
10355 * i386.md (*addsi3_cc): Renamed from addcsi3.
10356 (*addsi3_carry): Renamed from addxsi3.
10357 (*subsi3_cc): Renamed from subcsi3.
10358 (*subsi3_carry): Renamed from subxsi3.
10359 (*xorqi_cc_1): Renamed from xorcqi_1.
10360 (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
10361 * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
10362
10363 Wed Oct 13 13:10:46 1999 Richard Henderson <rth@cygnus.com>
10364
10365 * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
10366 (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
10367
10368 1999-10-13 Brendan Kehoe <brendan@cygnus.com>
10369
10370 * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
10371 climb up the chain of insns.
10372
10373 Wed Oct 13 10:20:58 1999 Richard Henderson <rth@cygnus.com>
10374
10375 * genrecog.c (write_subroutine): Careful for null trees.
10376 (process_tree): Don't elide empty functions.
10377
10378 Wed Oct 13 10:07:54 1999 Richard Henderson <rth@cygnus.com>
10379
10380 * Makefile.in (genrtl.o): Depend on ggc.h.
10381 * configure.in (valloc): Probe for it.
10382 (with-gc): Use ggc-page if valloc present.
10383 * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
10384 (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
10385 (ggc_alloc_string): Moved from ggc-page.c.
10386 * ggc-none.c (ggc_alloc_obj): New.
10387 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
10388 * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
10389 (struct globals): Likewise for dev_zero_fd.
10390 (init_ggc): Likewise for it's initialization.
10391 (ggc_allocated_p): Move careful dereference from ...
10392 (ggc_lookup_page_table): ... here. Delete.
10393 (lookup_page_table_entry): Don't use ggc_lookup_page_table.
10394 (alloc_anon): Use valloc if no mmap.
10395 (release_pages): Use free if using valloc.
10396 (ggc_alloc_obj): Renamed from alloc_obj.
10397 (ggc_set_mark): Renamed from mark_obj.
10398 (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
10399 (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
10400 (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
10401 (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
10402 (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
10403 (ggc_collect): Use fp printing instead of our own rounding.
10404 * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
10405 (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
10406 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
10407 (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
10408 (struct ggc_string, struct ggc_any): Delete.
10409 (offsetof): Provide default definition.
10410 (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
10411 (PTR_KEY): New.
10412 (struct ggc_mem): New, from corpse of ggc_any.
10413 (struct ggc_status): Delete.
10414 (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
10415 (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
10416 (n_strings_collected, n_anys_collected): Delete.
10417 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
10418 (ggc_alloc_string, ggc_alloc): Delete.
10419 (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
10420 (ggc_free_string, ggc_free_any): Delete.
10421 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
10422 (ggc_compare_addresses, ggc_mark_string): Delete.
10423 (ggc_mark_string_if_gcable, ggc_mark): Delete.
10424 (search_data): Delete.
10425 (struct globals): New.
10426 (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
10427 (tree_insert, tree_lookup): New.
10428 (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
10429 (clear_marks, sweep_objs): New.
10430 (ggc_collect): Gut. Use clear_marks, sweep_objs.
10431 (init_ggc): Set allocated_last_gc.
10432 (ggc_push_context): Gut. Use G.context.
10433 (ggc_pop_context): Likewise.
10434 (ggc_pop_context_1): New.
10435 (debug_ggc_tree): New.
10436 (debug_ggc_balance, tally_leaves): New.
10437 * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
10438 (ggc_mark_string_if_gcable): Remove decl.
10439 (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
10440 (ggc_mark_rtvec_children): New.
10441 (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
10442 (ggc_mark_if_gcable): New decl.
10443 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
10444 (ggc_alloc_tree, ggc_alloc): Likewise.
10445 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
10446 (ggc_alloc_obj): New decl.
10447 (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
10448 (ggc_alloc_tree, ggc_alloc): Likewise.
10449 (ggc_set_mark): New decl.
10450 * rtl.h (struct rtx_def): Remove gc_mark.
10451 (struct rtvec_def): Likewise.
10452 * tree.h (struct tree_common): Likewise.
10453
10454 Wed Oct 13 01:44:29 1999 Carol LePage <carolo@hal.com>
10455
10456 * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
10457 float_format and thread_file definitions.
10458 * configure: Rebuilt.
10459
10460 Wed Oct 13 09:25:03 1999 Niels Möller <nisse@lysator.liu.se>
10461
10462 * extend.texi (Function Names): Document types of function names.
10463
10464 Wed Oct 13 00:45:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10465
10466 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
10467 an earlyclobbered output conflict with RELOAD_INPUT reloads.
10468
10469 Tue Oct 12 23:28:28 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
10470
10471 * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
10472
10473 Tue Oct 12 23:19:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
10474
10475 * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
10476
10477 Tue Oct 12 17:09:38 1999 David Edelsohn <edelsohn@gnu.org>
10478
10479 * collect2.c (main): Do prelimnary link on AIX if rflag.
10480
10481 Tue Oct 12 09:45:19 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
10482
10483 * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
10484 __CTOR_LIST__ in opposite order, which is the correct order for sorted
10485 constructors.
10486 (__do_global_dtors): similarly for __DTOR_LIST__.
10487
10488 Fri Oct 8 19:46:03 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
10489 Diego Novillo <dnovillo@cygnus.com>
10490
10491 * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
10492 FPUL_REGS.
10493
10494 Tue Oct 12 07:38:41 1999 Bruce Korb <autogen@linuxbox.com>
10495
10496 * fixincl/*: Merged "no_bogosity" branch
10497 * fixincl/fixlib.h: protect against doubly defining t_bool
10498 * fixincl/server.h: protect against doubly defining t_bool
10499
10500 Mon Oct 11 20:18:41 1999 Jim Wilson <wilson@cygnus.com>
10501
10502 * genoutput.c: Include toplev.h.
10503
10504 Mon Oct 11 18:56:14 1999 Jim Wilson <wilson@cygnus.com>
10505
10506 * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
10507 Undef.
10508 * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
10509 * configure: Regenerate.
10510
10511 Mon Oct 11 16:07:49 1999 Richard Henderson <rth@cygnus.com>
10512
10513 * gcse.c (delete_null_pointer_checks): Returns void.
10514
10515 Mon Oct 11 20:31:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10516
10517 * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
10518 * emit-rtl.c (copy_insn_1): Likewise.
10519
10520 Mon Oct 11 13:29:06 1999 Geoffrey Keating <geoffk@cygnus.com>
10521
10522 * config/mips/mips.c (mips_build_va_list): Correct
10523 TREE_CHAIN setting when hard-float.
10524 (mips_va_start): Use corrected setting.
10525 (mips_va_arg): Likewise. Also pass a tree to build of
10526 POSTINCREMENT_EXPR rather than a naked 'int'.
10527
10528 Sun Oct 10 18:27:27 1999 Mark Mitchell <mark@codesourcery.com>
10529
10530 * ggc.h (ggc_push_context): Fix comment.
10531 (ggc_pop_context): Likewise.
10532 (mark_string_if_gcable): Likewise.
10533 * ggc-common.c (ggc_mark_rtx_children): Use
10534 ggc_mark_string_if_gcable.
10535 * ggc-page.c (ggc_lookup_page_table): New function.
10536 (ggc_allocated_p): Likewise.
10537 (mark_obj): Fix formatting.
10538 (ggc_mark_string_if_gcable): New function.
10539 * ggc-simple.c (ggc_allocated_strings): New variable.
10540 (ggc_strings_used): Likewise.
10541 (ggc_compare_addresses): New function.
10542 (ggc_pop_context): Pop the `any' memory too.
10543 (ggc_mark_string_if_gcable): New function.
10544 (ggc_collect): Initialize and tear down ggc_allocated_strings.
10545
10546 Sun Oct 10 20:05:21 1999 David Edelsohn <edelsohn@gnu.org>
10547
10548 * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
10549 (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
10550 * rs6000.c (expand_block_move): Match movstrsi_?reg register
10551 changes.
10552
10553 Sun Oct 10 16:37:01 1999 Richard Henderson <rth@cygnus.com>
10554
10555 * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
10556 (sched_reg_live_length, sched_reg_basic_block): Delete.
10557 (current_block_num, bb_live_regs, old_live_regs): Delete.
10558 (dead_notes, struct sometimes): Delete.
10559 (sched_note_set, birthing_insn_p): Delete.
10560 (adjust_priority): Gut useless reg lifetime code.
10561 (create_reg_dead_note, attach_deaths): Delete.
10562 (attach_deaths_insn, new_sometimes_live): Delete.
10563 (finish_sometimes_live): Delete.
10564 (find_pre_sched_live, find_post_sched_live): Delete.
10565 (update_reg_usage): Delete.
10566 (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
10567 (schedule_insns): Delete reg lifetime code.
10568 (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
10569 (unlink_other_notes): Adjust REG_NOTE commentary.
10570 (reemit_notes): Use REG_SAVE_NOTE.
10571 (schedule_block): Likewise.
10572 (schedule_region): Allocate bitmap of blocks in region. Use
10573 count_or_remove_death_notes. Use update_life_info.
10574
10575 * rtl.h (REG_SAVE_NOTE): New.
10576 * rtl.c (reg_note_name): Update.
10577
10578 Sun Oct 10 16:14:16 1999 Richard Henderson <rth@cygnus.com>
10579
10580 * combine.c (refresh_blocks, need_refresh): New.
10581 (combine_instructions): Allocate refresh_blocks. Invoke
10582 update_life_info if needed.
10583 (distribute_notes): Mark refresh_blocks instead of installing
10584 USE insns.
10585 * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
10586 * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
10587
10588 * Makefile.in (recog.o): Depend on basic-block.h.
10589
10590 Sun Oct 10 12:03:21 1999 Richard Henderson <rth@cygnus.com>
10591
10592 * genrecog.c (add_to_sequence): Thinko last change: delete
10593 shadowing allow_const_int variable.
10594
10595 Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10596
10597 * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
10598 __GNUC__ and __GNUC_MINOR__.
10599
10600 * gansidecl.h: Likewise.
10601
10602 * rtl.c: Likewise.
10603
10604 * rtl.h: Likewise.
10605
10606 * toplev.h: Likewise.
10607
10608 * tree.c: Likewise.
10609
10610 * tree.h: Likewise.
10611
10612 * varray.c: Likewise.
10613
10614 * varray.h: Likewise.
10615
10616 Sun Oct 10 13:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10617
10618 * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
10619 use one before a jump table.
10620
10621 * rtl.def (ADDRESS): Change documentation to match reality.
10622 * md.texi: Don't document it.
10623 * gmicro.md (load address pattern): Use 'p' constraint, delete use
10624 of ADDRESS rtx.
10625
10626 * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
10627
10628 Sun Oct 10 02:41:41 1999 Richard Henderson <rth@cygnus.com>
10629
10630 * genrecog.c (add_to_sequence): Move allow_const_int test outside
10631 known predicate block; default allow_const_int true.
10632 (debug_decision_list): New.
10633
10634 Sun Oct 10 00:43:08 1999 Richard Henderson <rth@cygnus.com>
10635
10636 * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
10637
10638 Sat Oct 9 23:26:55 1999 Jeffrey A Law (law@cygnus.com)
10639
10640 * gcse.c (gcse_main): Avoid global optimizations if we have a
10641 large number of basic blocks and the ratio of edges to blocks
10642 is high.
10643 (delete_null_pointer_checks): Likewise.
10644
10645 Sat Oct 9 23:16:01 1999 Ken Raeburn <raeburn@mit.edu>
10646
10647 * c-common.c (check_format_info): Warn if format string isn't a
10648 string literal.
10649
10650 Sat Oct 9 23:04:02 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
10651
10652 * configure.in (arm*-*-*): Don't let autoconf remove brackets
10653 * configure: regenerate
10654
10655 Sat Oct 9 13:15:53 1999 Richard Henderson <rth@cygnus.com>
10656
10657 * alpha.md (extendsidi2): Turn into a splitter. Allow f/f.
10658 If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern.
10659 (peepholes): Re-enable.
10660
10661 Sat Oct 9 12:18:16 1999 Richard Henderson <rth@cygnus.com>
10662
10663 * Makefile.in (flow.o): Depend on TREE_H.
10664 * basic-block.h (REG_SET_EQUAL_P): New.
10665 (XOR_REG_SET): New.
10666 (n_edges): Declare.
10667 (free_regset_vector): Remove declaration.
10668 (flow_delete_insn_chain): Declare.
10669 (enum update_life_extent): New.
10670 (update_life_info, count_or_remove_death_notes): Declare.
10671 * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
10672 Verify register live at bb->global_live_at_start before adding USE.
10673 * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
10674 (CLEAN_ALLOCA): New.
10675 (n_edges): New.
10676 (PROP_*): New flags.
10677 (find_basic_blocks_1): Use alloc_EXPR_LIST.
10678 (clear_edges): Zero n_edges.
10679 (make_edge): Increment n_edges.
10680 (split_edge): Don't allocate bb->local_set. Increment n_edges.
10681 (flow_delete_insn_chain): Export.
10682 (delete_block): Decrement n_edges.
10683 (merge_blocks_nomove): Likewise.
10684 (life_analysis): Give life_analysis_1 PROP flags.
10685 (verify_wide_reg_1, verify_wide_reg): New.
10686 (verify_local_live_at_start): New.
10687 (update_life_info): Rewrite to call into propogate_block.
10688 (mark_reg): New.
10689 (mark_regs_live_at_end): After reload, if epilogue as rtl,
10690 always mark stack pointer. Conditionally mark PIC register.
10691 After reload, mark call-saved registers, return regsiters.
10692 (life_analysis_1): Accept PROP flags not remove_dead_code.
10693 Call mark_regs_live_at_end before zeroing regs_ever_live.
10694 Use calculate_global_regs_live. Copy global_live_at_end before
10695 calling final propagate_block. Zero reg_next_use on exit.
10696 (calculate_global_regs_live): New.
10697 (allocate_bb_life_data): Don't allocate bb->local_set.
10698 (init_regset_vector, free_regset_vector): Remove.
10699 (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
10700 Test flags before every operation. Warn if prologue/epilogue insn
10701 would have been deleted.
10702 (mark_set_regs, mark_set_1): Accept and use FLAGS.
10703 Use alloc_EXPR_LIST.
10704 (mark_used_regs): Accept and use FLAGS, not FINAL.
10705 Remove special handling for RETURN.
10706 (try_pre_increment): Use alloc_EXPR_LIST.
10707 (dump_flow_info): Dump n_edges.
10708 (unlink_insn_chain, split_hard_reg_notes): Remove.
10709 (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
10710 (find_insn_with_note, new_insn_dead_notes): Remove.
10711 (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
10712 (maybe_remove_dead_notes, prepend_reg_notes): Remove.
10713 (replace_insns): Remove.
10714 (count_or_remove_death_notes): New.
10715 (verify_flow_info): Abort on error after all checks.
10716 (remove_edge): Decrement n_edges.
10717 (remove_fake_edges): Tweek format.
10718 * haifa-sched.c (schedule_insns): Use split_all_insns.
10719 * output.h (update_life_info): Remove declaration.
10720 * recog.c (split_all_insns): From the corpse of split_block_insns,
10721 do the whole function block by block. Use update_life_info.
10722 (recog_last_allowed_insn): New.
10723 (recog_next_insn): Mind it.
10724 (peephole2_optimize): Set it. Walk backwards through blocks.
10725 Use update_life_info.
10726 * rtl.h (update_flow_info, replace_insns): Remove declarations.
10727 (split_all_insns): Declare.
10728 * toplev.c (rest_of_compilation): Thread prologue before flow2.
10729 Use split_all_insns.
10730
10731 * i386.md (or -1 peep2s): Disable.
10732
10733 Fri Oct 8 17:49:08 1999 Richard Henderson <rth@cygnus.com>
10734
10735 * config/mips/mips.md (movstrsi+[123]) : Combine these into
10736 a single pattern. Scrap the 'd' versions as unnecessary.
10737
10738 * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
10739 tablejump_mips162,tablejump_internal4): The operands to a
10740 label_ref must be VOIDmode.
10741
10742 Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10743
10744 * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
10745
10746 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
10747
10748 * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
10749
10750 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
10751
10752 * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
10753 cache every function if ggc_p.
10754
10755 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10756
10757 * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
10758 instead of copy_rtx. Accept sequences that contain asm statements.
10759 * emit-rtl.c (copy_insn_1, copy_insn): New functions.
10760 (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
10761 orig_asm_operands_vector, copy_asm_operands_vector,
10762 orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
10763 variables.
10764 * rtl.h (copy_insn, copy_insn_1): Declare.
10765
10766 Fri Oct 8 13:08:12 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10767
10768 * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
10769
10770 * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
10771 arguments to `current_file_function_operand'.
10772
10773 * genrecog.c: Include hard-reg-set.h and resource.h in the
10774 generated output file.
10775
10776 * real.c: Include tm_p.h.
10777
10778 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10779
10780 * i386.md (prologue_allocate_stack): Add '=' constraint letter on
10781 output operand.
10782
10783 Thu Oct 7 23:06:50 1999 Richard Henderson <rth@cygnus.com>
10784
10785 * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
10786 before the fctiwz insn.
10787
10788 Thu Oct 7 22:53:00 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
10789 Mark Mitchell <mark@codesourcery.com>
10790
10791 * tree.c (make_lang_type_fn): New funtion pointer.
10792 (make_lang_type): Call it.
10793 * tree.h (make_lang_type): Declare.
10794 (make_lang_type_fn): Likewise.
10795 * rs6000.c (rs6000_build_va_list): Use make_lang_type.
10796
10797 Thu Oct 7 00:36:17 1999 Diego Novillo <dnovillo@cygnus.com>
10798
10799 * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
10800 make sure that HIGH instructions are copied into BASE_REGS.
10801
10802 Thu Oct 7 17:02:34 1999 Jason Merrill <jason@yorick.cygnus.com>
10803
10804 * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
10805
10806 Thu Oct 7 17:01:58 1999 Greg McGary <gkm@gnu.org>
10807
10808 * c-decl.c (finish_struct): Use simpler method of
10809 removing elements of a singly-linked list.
10810
10811 Thu Oct 7 15:23:28 1999 Michael Meissner <meissner@cygnus.com>
10812
10813 * alpha.md (peephole2's): Comment out peephole2's that generate
10814 buggy code.
10815
10816 Thu Oct 7 12:00:53 1999 Richard Henderson <rth@cygnus.com>
10817
10818 * genrecog.c (add_to_sequence): Disable mode check for
10819 wildcard matches.
10820
10821 Thu Oct 7 20:14:16 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10822
10823 * ggc-simple.c (init_ggc): Set empty_string.
10824
10825 Thu Oct 7 01:13:15 1999 Richard Henderson <rth@cygnus.com>
10826
10827 * configure.in: Detect mmap. Add --with-gc=foo to select
10828 garbage collector; default to page if mmap available.
10829 * Makefile.in (GGC): Substitute.
10830
10831 Wed Oct 6 23:56:30 1999 Richard Henderson <rth@cygnus.com>
10832
10833 * c-decl.c (ggc_p): Enable.
10834
10835 Wed Oct 6 17:17:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10836
10837 * flow.c (verify_flow_info): Make it extern & unconditionally define.
10838
10839 1999-10-06 Brendan Kehoe <brendan@cygnus.com>
10840
10841 * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
10842 string for little-endian-data.
10843
10844 Wed Oct 6 16:10:35 1999 Michael Meissner <meissner@cygnus.com>
10845
10846 * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
10847 case somebody tries to compile --enable-checking code with gcc
10848 1.34 or such.
10849
10850 Wed Oct 6 12:22:50 1999 Richard Henderson <rth@cygnus.com>
10851
10852 * genrecog.c (add_to_sequence): Verify operand to label_ref is
10853 VOIDmode.
10854
10855 Wed Oct 6 10:21:15 1999 Richard Henderson <rth@cygnus.com>
10856
10857 * genconfig.c (main): Disable HAVE_conditional_arithmetic.
10858 * jump.c (jump_optimize_1): Document why.
10859
10860 Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10861
10862 * collect2.c (scan_prog_file, scan_libraries): Prototype function
10863 pointers and casts for `int_handler' and `quit_handler'.
10864
10865 * flow.c (verify_flow_info, split_hard_reg_notes,
10866 find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
10867 remove_edge, remove_fake_successors): Add static prototypes.
10868 (verify_flow_info): Wrap with macro ENABLE_CHECKING.
10869 (mark_set_1): Initialize variable `regno'.
10870 (unlink_insn_chain): Likewise for variable `curr'.
10871 (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
10872
10873 * loop.c (strength_reduce): Initialize variable
10874 `unrolled_insn_copies'.
10875 (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
10876 prototypes. Change these functions to take const PTR parameters
10877 to avoid prototype conflict when used as the comparson argument
10878 for qsort.
10879 (check_dbra_loop): Initialize variable `comparison_val'.
10880
10881 * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
10882 (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
10883 (find_valid_class): Initialize variable `best_class'.
10884 (find_reloads): Call memcpy, not bcopy.
10885
10886 * reload1.c (gen_mode_int, dump_needs): Add prototypes.
10887 (hard_reg_use_compare): Don't needlessly cast away const.
10888 (reload_reg_class_lower): Likewise.
10889 (choose_reload_regs): Initialize variable `regno'.
10890
10891 Tue Oct 5 16:34:12 1999 Paul Burchard <burchard@pobox.com>
10892
10893 * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
10894
10895 Tue Oct 5 16:14:40 1999 Michael Meissner <meissner@cygnus.com>
10896
10897 * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
10898 ({,d}discard): Add forward declarations. Declare parameter as
10899 unused.
10900 (main_without_main): Explicitly declare return type to be int.
10901 (memcpy): Properly declare.
10902
10903 * libgcc2.c (toplevel): If inhibit_libc is defined and not
10904 building the trampoline support, declare malloc, free, and
10905 atexit.
10906 (__clear_cache): Mark arguments as potentially unused.
10907
10908 * frame.c (toplevel): If inhibit_libc is defined, declare
10909 malloc and free.
10910
10911 Tue Oct 5 12:00:32 1999 Richard Henderson <rth@cygnus.com>
10912
10913 * flow.c (make_edge): Accept an optional 2D bitmap in which
10914 to cache edge existence. Update all callers.
10915 (make_label_edge, make_eh_edge): Pass through the edge cache.
10916 (make_edges): Provide the cache.
10917
10918 Tue Oct 5 12:16:49 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10919
10920 * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
10921 a char*.
10922 (local_mbtowc): Change the type of variable `i' from int to size_t.
10923
10924 * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
10925 (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
10926
10927 Tue Oct 5 11:34:52 1999 Michael Meissner <meissner@cygnus.com>
10928
10929 * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
10930 after other includes that define the appropriate types. Include
10931 tm_p.h for getting user prototypes.
10932 * ggc-callbacks.c (toplevel): Ditto.
10933 * ggc-none.c (toplevel): Ditto.
10934 * gcc-page.c (toplevel): Ditto.
10935 * ggc-simple.c (toplevel): Ditto.
10936
10937 Mon Oct 4 16:48:16 1999 Diego Novillo <dnovillo@cygnus.com>
10938 Jonathan Larmour <jlarmour@cygnus.co.uk>
10939
10940 * config/mips/mips.c (mips_move_2words): Split doubles if
10941 ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
10942
10943 Mon Oct 4 21:47:31 1999 Richard Henderson <rth@cygnus.com>
10944
10945 * genrecog.c (struct decision_test): New.
10946 (struct decision): Remove test-related members, sort the rest by size.
10947 (IS_SPLIT): Simplify.
10948 (new_decision, new_decision_test): New.
10949 (add_to_sequence): Use them. No special handling for args of
10950 non-MATCH codes.
10951 (maybe_both_true): Renamed from not_both_true; return sense changed.
10952 (maybe_both_true_1, maybe_both_true_2): New. Broken out
10953 of maybe_both_true and adjusted for decision_test.
10954 (position_merit): Remove.
10955 (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
10956 (merge_accept_insn): New, broken out of merge_trees.
10957 (merge_trees): Use them. No special case for c_test; no node
10958 splitting; use test type instead of position_merit.
10959 (factor_tests): New.
10960 (simplify_tests): New.
10961 (break_out_subroutines): Don't write code now.
10962 (find_afterward): New.
10963 (write_afterward, write_switch, write_cond): New.
10964 (write_action, is_unconditional): New.
10965 (write_node): New. Use them.
10966 (write_tree_1): Rewrite. Use the new functions above.
10967 (write_tree): Remove afterward processing.
10968 (write_subroutine): Simplify function variant emission.
10969 (write_subroutines): New.
10970 (same_codes, clear_codes): Remove.
10971 (same_modes, clear_modes): Remove.
10972 (write_header): New, broken out of main.
10973 (make_insn_sequence): Use new_decision and new_decision_test.
10974 (process_tree): New, broken out of main.
10975 (main): Adjust for merge_trees interface change.
10976 Don't #define operands in the output file.
10977 (record_insn_name): New, broken out of make_insn_sequence.
10978 (debug_decision_2, debug_decision_1, debug_decision_0): New.
10979 (debug_decision): New.
10980
10981 1999-10-04 21:58 -0700 Zack Weinberg <zack@bitmover.com>
10982
10983 * resource.c (find_free_register): Mark class_str argument const.
10984 * resource.h: Update prototype to match.
10985
10986 * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
10987 * i386.md: Give all anonymous insns names.
10988
10989 Mon Oct 4 21:12:02 1999 Jeffrey A Law (law@cygnus.com)
10990
10991 * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
10992 blocks.
10993
10994 Mon Oct 4 21:01:39 1999 Richard Henderson <rth@cygnus.com>
10995
10996 * toplev.c (dbr_sched_time): Unconditional.
10997 (peephole2_time): New.
10998 (compile_file): Add pass numbers to all of the dump file suffixes.
10999 Dump peephole2_time. Don't dump times for non-applicable passes.
11000 (rest_of_compilation): Add pass numbers to dump file suffixes.
11001 Conditionalize calls to the scheduler.
11002 * invoke.texi: Update.
11003
11004 Mon Oct 4 20:25:13 1999 Anthony Green <green@cygnus.com>
11005
11006 * flow.c (make_edges): Fix insn iteration.
11007 (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
11008 (find_basic_blocks_1): Fix spelling mistake.
11009
11010 Mon Oct 4 16:56:11 1999 Richard Henderson <rth@cygnus.com>
11011
11012 * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
11013 always have side-effects. Use memset not bzero.
11014 (make_node): Likewise.
11015
11016 Mon Oct 4 16:22:20 1999 Mark Mitchell <mark@codesourcery.com>
11017
11018 * stmt.c (expand_anon_union_decl): When any of the elements of the
11019 union is addressable, so is the entire union.
11020
11021 Mon Oct 4 11:38:33 1999 Richard Henderson <rth@cygnus.com>
11022
11023 * sbitmap.c (sbitmap_ones): Don't set too many bits.
11024
11025 * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
11026 * bitmap.c (bitmap_operation): Return true iff TO changed.
11027 (bitmap_equal_p): New.
11028 (bitmap_bit_p): Tidy arithmetic.
11029 (debug_bitmap_file): Likewise.
11030
11031 Mon Oct 4 11:28:37 1999 Richard Henderson <rth@cygnus.com>
11032
11033 * toplev.c (rest_of_compilation): Turn on cse_not_expected
11034 before cse2 instead of after.
11035
11036 Mon Oct 4 09:55:17 1999 Stan Cox <scox@cygnus.com>
11037
11038 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
11039 register offsets.
11040
11041 Mon Oct 4 08:54:12 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
11042
11043 * cppinit.c (is_idchar initializer): Loosen tests to accept
11044 gcc 2.>6 and >2.
11045
11046 Mon Oct 4 02:31:20 1999 Mark Mitchell <mark@codesourcery.com>
11047
11048 * mips.md: Define conditional move patterns for floating point
11049 operands and DI mode conditions.
11050
11051 Mon Oct 4 02:12:41 1999 Mark Mitchell <mark@codesourcery.com>
11052
11053 * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
11054 always have side-effects.
11055
11056 Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com)
11057
11058 * mn10200.c (asm_file_start): Fix typo.
11059
11060 * cppinit.c (is_idchar initializer): Tighten tests for when
11061 to put the table into initialized memory.
11062
11063 * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
11064 not an array of rtunion.
11065 * gcc-page.c (ggc_alloc_rtvec): Similarly.
11066 * gcc-simple (ggc_free_rtvec): Similarly.
11067
11068 * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
11069 of rtunions.
11070
11071 * mbchar.h: Add missing #endif.
11072
11073 * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
11074 (FPBIT, DPBIT): Define.
11075
11076 Sun Oct 3 12:44:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11077
11078 * print-tree.c (print_node, indent_to): Remove redundant prototypes.
11079
11080 * profile.c (instrument_arcs, output_gcov_string,
11081 tablejump_entry_p): Add static prototypes.
11082 (output_gcov_string): Constify a char*.
11083
11084 * regmove.c (replacement_quality, fixup_match_2): Add static
11085 prototypes.
11086
11087 * resource.h (reg_dead_p): Add extern prototype.
11088
11089 * rtl.c (trim_filename): Add static prototype.
11090
11091 * scan-decls.c (skip_to_closing_brace): Likewise.
11092
11093 * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
11094 (expand_end_case): Initialize variable `range'.
11095 (emit_case_nodes): Remove unused prototype `rtx_fn'.
11096
11097 * varasm.c (asm_emit_uninitialised): Add static prototype.
11098 (asm_emit_uninitialised, assemble_variable): Mark parameter with
11099 ATTRIBUTE_UNUSED.
11100
11101 Sun Oct 3 12:24:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11102
11103 * cpplib.c (if_directive_nameo): Add static prototype.
11104
11105 * cse.c (cse_insn): Remove unused variable `p'.
11106
11107 * except.c (create_rethrow_ref, push_entry,
11108 receive_exception_label, new_eh_region_entry, find_func_region,
11109 clear_function_eh_region, process_nestinfo): Add static prototypes.
11110 (get_reg_for_handler): Hide definition.
11111 (process_nestinfo): Initialize variable `extra_handlers'.
11112
11113 * expr.h (expand_builtin_longjmp): Add extern prototype.
11114
11115 * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
11116
11117 * function.c (prepare_function_start): Likewise.
11118 (pop_function_context_from): Mark parameter `context' with
11119 ATTRIBUTE_UNUSED.
11120 (push_temp_slots_for_block, flush_addressof): Hide definition.
11121
11122 * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
11123 solve_program_flow_graph, calculate_branch_probs,
11124 function_summary, main, fancy_abort): Add prototypes.
11125
11126 * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
11127 (add_hash): Constify a char*.
11128
11129 * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
11130 ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
11131 ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
11132
11133 * integrate.c (expand_inline_function_eh_labelmap): Likewise.
11134
11135 * lists.c (free_list, zap_lists): Likewise.
11136
11137 Sun Oct 3 12:05:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11138
11139 * alias.c (nonlocal_reference_p): Add static prototype.
11140
11141 * bitmap.c (bitmap_element_allocate): Prototype args in function
11142 pointer cast.
11143
11144 * builtins.c (stabilize_va_list): Add static prototype.
11145 (expand_builtin_va_arg): Constify a char*.
11146
11147 * c-lex.c (getch, put_back, extend_token_buffer_to,
11148 read_line_number, token_getch, token_put_back): Add static
11149 prototypes.
11150
11151 * c-parse.gperf (hash, is_reserved_word): Likewise.
11152
11153 * cccp.c (is_dir_separator): Likewise.
11154
11155 Sat Oct 2 16:07:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11156
11157 * graph.h: New file to prototype functions exported by graph.c.
11158
11159 * Makefile.in (graph.o, toplev.o): Depend on graph.h.
11160
11161 * graph.c: Include graph.h.
11162
11163 * toplev.c: Likewise. Remove redundant prototypes.
11164
11165 Sat Oct 2 11:28:33 1999 Krister Walfridsson <cato@df.lth.se>
11166
11167 * invoke.texi: Removed duplicated description for -Q.
11168
11169 Sat Oct 2 11:16:00 1999 Jim Kingdon <http://developer.redhat.com>
11170
11171 * extend.texi: Grammar fix in __extension__ text.
11172
11173 Sat Oct 2 11:06:31 1999 Richard Henderson <rth@cygnus.com>
11174
11175 * md.texi (define_peephole2): New section.
11176
11177 Sat Oct 2 10:57:56 1999 Jan Hubicka <hubicka@freesoft.cz>
11178
11179 * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
11180 (mov $-1 to or peepholer): Enable for pentium when optimizing for
11181 speed.
11182
11183 Sat Oct 2 10:55:25 1999 Jan Hubicka <hubicka@freesoft.cz>
11184
11185 * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
11186
11187 Sat Oct 2 10:53:22 1999 Jan Hubicka <hubicka@freesoft.cz>
11188
11189 * i386.md (ffs expander): Emit Pentium friendly code for
11190 TARGET_PENTIUM.
11191
11192 Sat Oct 2 02:48:21 1999 Mark P. Mitchell <mark@codesourcery.com>
11193
11194 * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
11195 for non-trees.
11196 (build1): Likewise.
11197
11198 Fri Oct 1 18:01:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11199
11200 * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
11201
11202 Fri Oct 1 12:42:53 1999 Andreas Schwab <schwab@suse.de>
11203
11204 * config/m68k/m68k.c (use_return_insn): Return false if the pic
11205 register is in use.
11206
11207 Fri Oct 1 10:56:06 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11208
11209 * md.texi (No Constraints): Delete section.
11210 * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
11211 * final.c (final_scan_insn): We always have register constraints.
11212 * genattrtab.c: Don't include "insn-config.h".
11213 (write_attr_case): We always have register constraints.
11214 * genconfig.c (register_constraint_flag): Delete.
11215 (walk_insn_part): Don't check whether we have register constraints.
11216 (main): Don't write out "#define REGISTER_CONSTRAINTS".
11217 * genoutput.c (have_constraints): Delete.
11218 (main): Don't set it.
11219 (output_operand_data): We always have constraints.
11220 (scan_operands): Likewise.
11221 (compare_operands): Likewise.
11222 * local-alloc.c (block_alloc): We always have constraints.
11223 (requires_inout): Always compile this function.
11224 * recog.c (extract_insn): We always have constraints.
11225 (constrain_operands, reg_fits_class_p): Always compile these
11226 functions.
11227 * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
11228 fields.
11229 (struct insn_operand_data): Likewise.
11230 * regclass.c (regclass): We always have constraints.
11231 (record_reg_classes, copy_cost, record_address_regs,
11232 auto_inc_dec_reg_p): Always compile these functions.
11233 * regmove.c (regmove_optimize): We always have constraints.
11234 * reload.c (find_reloads): Likewise.
11235 * reload1.c (reload): Likewise.
11236 (reload_cse_simplify_operands): Likewise.
11237 * i860.c (output_delay_insn): Likewise.
11238
11239 Thu Sep 30 23:04:41 1999 Mark P. Mitchell <mark@codesourcery.com>
11240
11241 * iris6.h (BUILD_VA_LIST_TYPE): Define.
11242
11243 Thu Sep 30 18:44:50 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11244
11245 * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
11246 for the va_list record.
11247
11248 Thu Sep 30 18:34:54 1999 Jan Hubicka <hubicka@freesoft.cz>
11249
11250 * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
11251 prologues.
11252
11253 Thu Sep 30 18:31:36 1999 Jan Hubicka <hubicka@freesoft.cz>
11254
11255 * alias.c: Include insn-flags.h.
11256 * Makefile.in (alias.o): Update.
11257
11258 Thu Sep 30 18:21:30 1999 Jan Hubicka <hubicka@freesoft.cz>
11259
11260 * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
11261 to LTU and GEU. Handle more cases using sbb.
11262
11263 Thu Sep 30 18:18:39 1999 Jan Hubicka <hubicka@freesoft.cz>
11264
11265 * i386.md (truncatexfdf splitters): Do not use subreg.
11266 (fop XFmode patterns): Fix mode in operand testing.
11267
11268 Thu Sep 30 18:04:13 1999 Richard Henderson <rth@cygnus.com>
11269
11270 * jump.c (jump_optimize_1): Amend last change to test only the
11271 form of the operand, not the insn.
11272
11273 * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
11274 not register_operand to determine when B may need preloading.
11275
11276 Thu Sep 30 17:39:16 1999 Richard Henderson <rth@cygnus.com>
11277
11278 * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
11279 (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
11280 (call-value patterns): Move to end of file.
11281 (*): Remove mode from label_ref in (pc) context.
11282 (movstrqi): Use memory not general_operand for BLKmode operands.
11283 (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
11284 to register_operand operands.
11285 (peep2 patterns): Convert from commented-out peephole patterns.
11286
11287 Thu Sep 30 14:39:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11288
11289 * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
11290 to BUILT_IN_INIT_DWARF_REG_SIZES.
11291 * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
11292 Renamed from BUILT_IN_DWARF_REG_SIZE; call
11293 expand_builtin_init_dwarf_reg_sizes.
11294 * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
11295 with __builtin_init_dwarf_reg_size_table.
11296 * dwarf2out.c (struct reg_size_range): Delete.
11297 (expand_builtin_init_dwarf_reg_sizes): New function.
11298 (expand_builtin_dwarf_reg_size): Delete.
11299 * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
11300 (expand_builtin_dwarf_reg_size): Don't declare.
11301 * libgcc2.c (dwarf_reg_size_table_initialized): New.
11302 (dwarf_reg_size_table): New.
11303 (init_reg_size_table): New function.
11304 (copy_reg): Use dwarf_reg_size_table.
11305 (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
11306 before use.
11307
11308 Thu Sep 30 05:40:34 1999 Richard Earnshaw <rearnsha@arm.com>
11309
11310 * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
11311 Correctly build argument list to constructor and destructor functions.
11312
11313 Thu Sep 30 00:13:27 1999 Dirk Zoller <duz@rtsffm.com>
11314
11315 * c-tree.h (warn_float_equal): Declare.
11316 * c-decl.c (warn_float_equal): Define.
11317 (c_decode_option): Recognize -W[no-]float-equal.
11318 * c-typeck.c (build_binary_op): Conditionally warn
11319 about equality tests of floating point types.
11320 * toplev.c (documented_lan_options): Add -W[no-]float-equal.
11321 * invoke.texi: Add docs for -Wfloat-equal warning.
11322
11323 Wed Sep 29 23:43:39 1999 Jeffrey A Law (law@cygnus.com)
11324
11325 * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
11326 generating RTL directly.
11327 * mips.h (INIT_TARGET_OPTABS): Likewise.
11328 * mn10200.h (INIT_TARGET_OPTABS): Likewise.
11329
11330 * expr.h (init_mov_optab): Delete declaration
11331
11332 * h8300.c (WORD_REG_USED): Update to avoid useless register
11333 saves in interrupt functions and functions which never return.
11334
11335 * cse.c (struct set): Delete inner_dest_loc field.
11336 (cse_insn): Remove assignments to inner_dest_loc field.
11337
11338 Wed Sep 29 16:06:20 1999 Richard Henderson <rth@cygnus.com>
11339
11340 * ggc-page.c: Don't include <unistd.h> etc taken care of
11341 by "system.h". Include <sys/mman.h> afterward.
11342
11343 Wed Sep 29 16:05:18 1999 Richard Henderson <rth@cygnus.com>
11344
11345 * rs6000.c (rs6000_encode_section_info): If ggc_p, use
11346 ggc_alloc_string.
11347
11348 Tue Sep 28 16:45:40 1999 David Edelsohn <edelsohn@gnu.org>
11349
11350 * xcoffout.c (xcoffout_declare_function): Add documentation.
11351 * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
11352 TARGET_64BIT. Compare constant to -1, not bit pattern.
11353 (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
11354 (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix
11355 gen_movsi typos.
11356
11357 Tue Sep 28 16:43:14 1999 Nick Clifton <nickc@cygnus.com>
11358
11359 * dwarf2out.c (add_abstract_origin_attribute): Abort if
11360 origin_die is NULL.
11361 (gen_inlined_enumeration_type_die): Do not abort if the type has
11362 not been writeen out.
11363 (gen_inlined_structure_type_die): Do not abort if the type has
11364 not been writeen out.
11365 (gen_inlined_union_type_die): Do not abort if the type has
11366 not been writeen out.
11367 (gen_tagged_type_instantiation_die): Do not abort if the type
11368 has not been written out.
11369
11370 Tue Sep 28 14:33:47 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11371
11372 * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
11373 call it.
11374 * reg-stack.c (straighten_stack): Copy hard reg set with
11375 COPY_HARD_REG_SET.
11376
11377 Tue Sep 28 01:11:05 1999 Richard Henderson <rth@cygnus.com>
11378
11379 * builtins.c (stabilize_va_list): Stabilize array type va_list
11380 to a pointer type, not the base record type.
11381 (expand_builtin_va_copy): Dereference the pointers explicitly;
11382 use the correct size for the copy.
11383
11384 * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
11385 (rs6000_va_arg): Likewise.
11386
11387 Mon Sep 27 23:27:21 1999 Richard Henderson <rth@cygnus.com>
11388
11389 * rtl.h (struct rtx_def): Move gc_mark to align mode field.
11390
11391 Mon Sep 27 23:20:29 1999 Mark Mitchell <mark@codesourcery.com>
11392
11393 * tree.h (struct tree_decl): Use `bclass', not `class', in name of
11394 field.
11395 (DECL_BUILT_IN_CLASS): Adjust accordingly.
11396
11397 Mon Sep 27 23:03:16 1999 Richard Henderson <rth@cygnus.com>
11398
11399 * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
11400 (init_ggc): Use it instead of a constant.
11401 (ggc_collect): Bound allocated_last_gc by it.
11402
11403 Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com)
11404
11405 * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
11406 with va_list.
11407
11408 Mon Sep 27 19:40:17 CEST 1999 Marc Espie <espie@cvs.openbsd.org>
11409
11410 * configure.in (mips*el-*-openbsd*): Don't duplicate default settings.
11411 (mips*-*-openbsd*): Let big endian configuration be a fragment.
11412 * configure: Regen.
11413 * config/mips/openbsd.h: New, OpenBSD little endian target.
11414 * config/mips/openbsd-be.h: New, OpenBSD big endian target fragment.
11415 * config/mips/xm-openbsd.h: New, OpenBSD host.
11416
11417 Mon Sep 27 10:28:48 1999 Andreas Schwab <schwab@suse.de>
11418
11419 * config/m68k/m68k.c (output_function_prologue,
11420 output_function_epilogue): Use
11421 current_function_uses_pic_offset_table instead of regs_ever_live
11422 to decide whether to save/restore pic register.
11423 (legitimize_pic_address): Don't modify regs_ever_live any more.
11424
11425 Sun Sep 26 10:55:36 1999 Mark Mitchell <mark@codesourcery.com>
11426
11427 * function.h (struct function): Add x_dont_save_pending_sizes_p.
11428 * stor-layout.c (variable_size): Don't add sizes to the pending
11429 sizes list if x_dont_save_pending_sizes_p is set.
11430
11431 Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net)
11432
11433 * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
11434 for symbolic_operand().
11435 * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
11436
11437 Sun Sep 26 07:37:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11438
11439 * combine.c (gen_rtx_combine): Add missing call to va_end().
11440
11441 * final.c (asm_fprintf): Likewise.
11442
11443 * genattrtab.c (attr_rtx): Likewise.
11444
11445 Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com)
11446
11447 * cse.c: Update comments.
11448 (cse_insn): When converting a conditional/computed jump into
11449 an unconditional jump, always make sure a BARRIER immediately
11450 follows the converted jump. Do not delete unreachable code.
11451 (cse_basic_block): Do not delete unreachable code.
11452 * toplev.c (rest_of_compilation): Move call to
11453 delete_trivially_dead_insns after the conditional call to
11454 jump_optimize.
11455
11456 Sat Sep 25 09:03:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11457
11458 * collect2.c (make_temp_file): Don't prototype.
11459
11460 * gcc.c (make_temp_file): Likewise.
11461
11462 * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
11463
11464 Sat Sep 25 13:42:15 1999 Nick Clifton <nickc@cygnus.com>
11465
11466 * varasm.c (asm_emit_uninitialised): New function: Generate
11467 the assembler statements necessary to declare an uninitialised
11468 variable.
11469 (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
11470 variable.
11471 (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
11472 (ASM_EMIT_COMMON): New macro: Emit an entry in the common
11473 section.
11474 (assemble_variable): Use asm_emit_uninitialised to emit an
11475 uninitialised variable.
11476
11477 Fri Sep 24 17:10:56 1999 Nick Clifton <nickc@cygnus.com>
11478
11479 * combine.c (simplify_comparison): Cope with downshifting a 32 bit
11480 constant on a 64 bit host. Patch supplied by Geoffrey Keating
11481 <geoffk@cygnus.com>.
11482
11483 Fri Sep 24 10:48:10 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11484
11485 * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
11486 * c-common.h (builtin_function): Don't declare.
11487
11488 * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
11489 DECL_BUILT_IN.
11490 (pushdecl): Likewise.
11491 (finish_decl): Likewise.
11492 (builtin_function): New arg CLASS. Arg FUNCTION_CODE now of type
11493 int. All callers changed.
11494 Set the builtin's DECL_BUILT_IN_CLASS.
11495 * tree.h (enum built_in_class): New.
11496 (enum built_in_function): Delete NOT_BUILT_IN.
11497 (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
11498 in a union.
11499 (DECL_SET_FUNCTION_CODE): Likewise.
11500 (DECL_BUILT_IN_CLASS): New macro.
11501 (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
11502 (struct tree_decl): Split builtin function code field into a
11503 struct.
11504 (builtin_function): Declare.
11505
11506 Fri Sep 24 01:45:05 1999 Mark Mitchell <mark@codesourcery.com>
11507
11508 * optabs.c (init_traps): Fix typo in last change.
11509
11510 Fri Sep 24 01:10:11 1999 Mark Mitchell <mark@codesourcery.com>
11511
11512 * toplev.c (rest_of_decl_compilation): Update comment.
11513
11514 Fri Sep 24 11:57:06 1999 Geoffrey Keating <geoffk@cygnus.com>
11515
11516 * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
11517 in .sbss if appropriate.
11518 (EXTRA_SECTION_FUNCTIONS): Add sbss.
11519 (SBSS_SECTION_ASM_OP): New macro.
11520 * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
11521 (EXTRA_SECTIONS): Add in_sbss.
11522 * config/mips/mips.h: Prototype sbss_section.
11523
11524 Thu Sep 23 18:18:55 1999 Mark Mitchell <mark@codesourcery.com>
11525
11526 * stmt.c (expand_start_bindings): Don't allow cleanup instructions
11527 to disappear.
11528
11529 Thu Sep 23 18:07:01 1999 Mark Mitchell <mark@codesourcery.com>
11530
11531 * optabs.c (init_traps): Register trap_rtx as a GC root.
11532
11533 Thu Sep 23 17:41:47 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
11534
11535 * config/mips/mips.c (function_arg_pass_by_reference): Define
11536 unconditionally, since it's called unconditionally.
11537
11538 Thu Sep 23 13:40:02 1999 Jason Merrill <jason@yorick.cygnus.com>
11539
11540 * toplev.c (documented_lang_options): Add -fshort-wchar.
11541 * c-decl.c (c_decode_option): Likewise.
11542 (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
11543 for wchar_t.
11544 * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
11545 * gcc.c (default_compilers): If -fshort-wchar,
11546 override __WCHAR_TYPE__.
11547 * tm.texi (C Dialect Options): Add -fshort-wchar.
11548
11549 * dwarf2out.c (output_aranges): Use DW_AT_location to find the
11550 symbol for a variable.
11551
11552 * cpplib.h (CPP_PREPROCESSED): New macro.
11553 * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
11554 we're seeing this input for a second time.
11555
11556 Thu Sep 23 12:54:49 1999 Alex Samuel <samuel@codesourcery.com>
11557
11558 * emit-rtl.c (init_emit_once): Initialize modes first.
11559
11560 Sun Sep 19 01:23:23 1999 Alex Samuel <samuel@codesourcery.com>
11561
11562 * config/i386/i386.c (pic_label_name): Change to char pointer.
11563 (global_offset_table): New variable.
11564 (load_pic_register): Fill global_offset_table if it hasn't
11565 already been done. Allocate pic_label_name dynamically.
11566 * ggc.h (empty_string): New variable.
11567 * ggc-simple.c (empty_string): Likewise.
11568 (init_ggc): Allocate empty_string and add as root.
11569 * stmt.c (digit_strings): New variable.
11570 (init_stmt): Add last_block_end_note as root. Allocate and
11571 initialize digit_strings.
11572 (expand_asm_operands): Use empty_string instead of string
11573 constant. Use digit_strings instead of string constants.
11574 * profile.c (init_arc_profiler): Allocate string with
11575 ggc_alloc_string instead of xmalloc.
11576 (output_func_start_profiler): Likewise.
11577 * c-typeck.c (digest_init): Check if init is error_mark_node.
11578
11579 Thu Sep 23 12:59:14 1999 Alex Samuel <samuel@codesourcery.com>
11580 Richard Henderson <rth@cygnus.com>
11581
11582 * ggc-page.c: New file.
11583 * Makefile.in (ggc-page.o): New.
11584
11585 Thu Sep 23 13:55:21 1999 Jeffrey A Law (law@cygnus.com)
11586
11587 * invoke.texi: Document -fdelete-null-pointer-checks
11588 * toplev.c (flag_delete_null_pointer_checks): New.
11589 (f_options): Add entry for -fdelete-null-pointer-checks.
11590 (rest_of_compilation): Conditionalize null pointer check
11591 elimination on flag_delete_null_pointer_checks.
11592 (main): If -O2 or greater, enable -fdelete-null-pointer-checks
11593
11594 1999-09-23 10:56 -0700 Zack Weinberg <zack@bitmover.com>
11595
11596 * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
11597 copyright notice and special exception to GPL.
11598
11599 Thu Sep 23 13:40:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11600
11601 * abi64.h (mips_function_value): Add prototype arguments.
11602
11603 * mips-protos.h: New file with mips prototypes.
11604
11605 * mips.c: Include "tm_p.h".
11606 (mktemp, lookup_name): Add prototype arguments.
11607 (extern_list, string_constant, mips_fill_delay_slot,
11608 mips_output_external, mips_output_external_libcall,
11609 mips_output_filename, mips_declare_object, function_prologue,
11610 mips_expand_prologue, function_epilogue, mips16_constant,
11611 build_mips16_function_stub, mips_output_conditional_branch):
11612 Constify a char*.
11613 (mips_va_start): Remove unused variable `u'.
11614 (mips_va_arg): Cast value to unsigned when comparing against one.
11615 (trace): Delete.
11616 (save_restore_insns, mips_expand_prologue): Add missing arg in
11617 call to `large_int'.
11618
11619 * mips.h: Move prototypes to mips-protos.h.
11620 (data_section, memory_address_p, rdata_section,
11621 readonly_data_section, simple_epilogue_p, text_section): Delete
11622 prototypes delcared elsewhere.
11623 (mips_epilogue_delay_slots, print_options): Delete unused decls.
11624 (trace): Delete.
11625 (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
11626
11627 * mips.md: Delete extra args in call to `mips_move_2words'.
11628
11629 * xm-iris6.h (alloca): Add prototype argument.
11630
11631 * genpeep.c: Include "tm_p.h" in generated output file.
11632
11633 Thu Sep 23 10:36:55 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
11634
11635 * basic-block.h (find_edge_index): Change parameters.
11636 * flow.c (verify_edge_list): Pass basic_block parameters to
11637 find_edge_index instead of integers.
11638
11639 Thu Sep 23 15:54:12 1999 Nick Clifton <nickc@cygnus.com>
11640
11641 * combine.c (simplify_comparison): Use an unsigned shift to adjust
11642 the constant.
11643
11644 Thu Sep 23 08:46:21 1999 Guy Harris <guy@netapp.com>
11645
11646 * gcc.1: Fix a formatting error.
11647
11648 Wed Sep 22 16:10:21 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
11649
11650 * install.texi (Configurations): Remove pyramid. Add fr30, i686,
11651 i786, mn10200, mn10300, pdp11, v850.
11652
11653 Thu Sep 23 07:37:13 1999 Dan Nicolaescu <dann@ics.uci.edu>
11654
11655 * libgcc2.c (num_digits): Add prototype with
11656 __attribute__((const)).
11657 (__terminate): Add prototype.
11658
11659 Thu Sep 23 05:32:06 1999 Richard Henderson <rth@cygnus.com>
11660
11661 * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
11662
11663 * alpha/alpha.c (print_operand): Fix type of `code'.
11664 (alpha_output_filename): Constify.
11665 * alpha/alpha.h: Move all function declarations ...
11666 * alpha/alpha-protos.h: ... here. New file.
11667 * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
11668 (SECTION_FUNCTION_TEMPLATE): Likewise.
11669
11670 Thu Sep 23 11:15:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11671
11672 * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
11673 * expr.c (expand_expr): Likewise.
11674 (do_jump): Likewise.
11675 (do_store_flag): Pass ccp_store_flag to can_compare_p.
11676 * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
11677 accessor macros.
11678 (enum can_compare_purpose): New.
11679 (can_compare_p): Adjust prototype.
11680 (prepare_cmp_insn, prepare_operand): Declare.
11681 * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
11682 * optabs.c (cmp_available_p): Deleted.
11683 (expand_abs): Pass ccp_jump to can_compare_p.
11684 (can_compare_p): New arg PURPOSE. Check for combined optabs.
11685 (prepare_cmp_insn): No longer static. Add arg PURPOSE.
11686 Call can_compare_p rather than cmp_available_p.
11687 (prepare_operand): No longer static.
11688 (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
11689 (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
11690 (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
11691 sequence to use emit_cmp_and_jump_insns.
11692 (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
11693
11694 Wed Sep 22 17:58:01 1999 Stan Cox <scox@cygnus.com>
11695
11696 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
11697 register offsets; let LEGITIMIZE_ADDRESS load it into a register.
11698 (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
11699 (plus (reg) (const_int 0))
11700 * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
11701
11702 Wed Sep 22 17:55:31 1999 David Edelsohn <edelsohn@gnu.org>
11703
11704 * rs6000.c (expand_block_move): DImode loads and stores require
11705 word-aligned displacements. Increment address registers with
11706 adddi3 on 64-bit platform. Use TARGET_POWERPC64 not TARGET_64BIT.
11707
11708 Wed Sep 22 17:35:55 1999 Michael Meissner <meissner@cygnus.com>
11709
11710 * dwarf2out.c (base_type_die): Use the name __unknown__ if there
11711 is no name for the base type, rather than segfault. If we are
11712 writing out a complex integer type, use DW_ATE_lo_user.
11713
11714 * expr.c (emit_move_insn_1): If we are copying a complex that fits
11715 in one word or less (complex char, complex short, or on 64 bit
11716 systems complex float) to/from a hard register, copy it through
11717 memory instead of dying in gen_{real,imag}part. If we have a
11718 short complex type, prevent inlining since it allocates stack
11719 memory.
11720
11721 * tree.c (build_complex_type): If we are writing dwarf2 output,
11722 generate a name for complex integer types.
11723
11724 Wed Sep 22 11:34:08 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
11725
11726 * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
11727 * flow.c (remove_edge): Remove extra whitespace.
11728 (remove_fake_edges): Fix comment.
11729 (add_noreturn_fake_exit_edges): Use the correct name.
11730
11731 Wed Sep 22 16:12:40 BST 1999 Nathan Sidwell <nathan@acm.org>
11732
11733 * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
11734 (mostlyclean): Depend on INTL_MOSTLYCLEAN.
11735 (clean): Depend on INTL_CLEAN.
11736 (maintainer-clean): Adjust.
11737
11738 Wed Sep 22 10:18:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11739
11740 * configure.in (AC_PREREQ): Bump to 2.13.
11741 (AC_C_STRINGIZE): Call this instead of using a custom macro.
11742
11743 * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
11744
11745 * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
11746
11747 * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
11748
11749 * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
11750 (HAVE_STRINGIZE): Define.
11751
11752 Wed Sep 22 06:25:15 1999 Jim Kingdon <http://developer.redhat.com>
11753
11754 * c-parse.in: save and restore warn_pointer_arith on __extension__
11755 along with pedantic.
11756 (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
11757 Set the type of extension to itype rather than $<itype>1 kludge.
11758 * extend.texi (Alternate Keywords): Adjust documentation.
11759 * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
11760
11761 Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com)
11762
11763 * pa.c, pa.h, pa.md: Support multiple assembler dialects in
11764 most assembler templates.
11765
11766 * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
11767 FP loads and stores.
11768 (following_call): Always return zero for the PA8000.
11769 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
11770 FP loads and stores.
11771 (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
11772
11773 * pa.h (BRANCH_COST): Define.
11774
11775 * pa.md (return, return_internal): Use bve for PA2.0.
11776
11777 * pa.md (fused multiply): Add variants which reduce height for the
11778 fused multiply, but which still generate 2 insns.
11779 (fnegabs): Similarly.
11780
11781 * pa.md (subsi3): Turn into an expander. Create two anonymous
11782 patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0.
11783 * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
11784
11785 * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
11786 for TARGET_PA_20.
11787 (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
11788 code generation.
11789 (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
11790 (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
11791
11792 * regclass.c (init_regs): Add "top_of_stack" as a garbage
11793 collection root.
11794
11795 * flow.c (record_active_eh_regions): Terminate loop after finding
11796 the last insn in the last basic block.
11797
11798 Wed Sep 22 20:25:00 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11799
11800 * config/c4x/c4x.md: Delete parallel instruction peepholes.
11801
11802 Wed Sep 22 19:59:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11803
11804 * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
11805
11806 Wed Sep 22 19:56:25 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11807
11808 * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
11809 splitting to not use output template.
11810
11811 Wed Sep 22 19:50:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11812
11813 * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
11814 * config/c4x/c4x.c (c4x_va_start): New function.
11815
11816 Tue Sep 21 18:40:01 1999 Jan Hubicka <hubicka@freesoft.cz>
11817
11818 * genrecog.c (not_both_true): Handle correctly cases when called for
11819 tests with different positions in the insn.
11820
11821 Tue Sep 21 18:29:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11822
11823 * machmode.h (HOST_PTR_PRINTF): Move from here ...
11824
11825 * system.h (HOST_PTR_PRINTF): ... to here.
11826
11827 * mips-tfile.c: Don't include machmode.h.
11828
11829 * Makefile.in (MACHMODE_H): New variable. Update to use it.
11830 (mips-tfile.o): Don't depend on machmode.h.
11831
11832 Tue Sep 21 18:27:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11833
11834 * haifa-sched.c (sched_analyze): Rename local variable `region' to
11835 avoid conflicts with typedef struct `region' at the top level scope.
11836
11837 Tue Sep 21 14:14:50 1999 Richard Henderson <rth@cygnus.com>
11838
11839 * basic-block.h (basic_block): Add eh_beg, eh_end.
11840 * flow.c (entry_exit_blocks): Update.
11841 (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
11842 Call new functions.
11843 (find_basic_blocks_1): Don't record eh_list at each bb. Use
11844 lists.c functions to allocate insn lists.
11845 (make_edges): Use eh_beg+eh_end, not the lists. Split out EH
11846 edge creation ...
11847 (make_eh_edge): ... here. New.
11848 (move_stray_eh_region_notes): New.
11849 (record_active_eh_regions): New.
11850 (delete_unreachable_blocks): Split out block merging ...
11851 (try_merge_blocks): ... here. New.
11852 (merge_blocks_move_predecessor_nojumps): Remove edge arg.
11853 Dump debugging data.
11854 (merge_blocks_move_successor_nojumps): Likewise.
11855 (merge_blocks): Use eh_beg+eh_end to validate block movement.
11856
11857 Tue Sep 21 11:15:03 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
11858
11859 * extend.texi (Bound member functions): Document unbound pmf
11860 conversion.
11861
11862 Tue Sep 21 14:55:11 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
11863
11864 * flow.c (split_edge): Handle insertion on a fallthrough edge which
11865 has the EXIT_BLOCK as a dest.
11866
11867 Tue Sep 21 14:51:23 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
11868
11869 * flow.c (remove_edge): New function to remove an edge from the
11870 flow graph.
11871 (remove_fake_successors): New function to remove fake successor edges.
11872 (remove_fake_edges): New function to remove all fake edges from the
11873 flow graph.
11874 (add_fake_exit_edges): New function to add fake edges from all blocks
11875 with no successors to the exit block.
11876 * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
11877 prototypes for new functions.
11878
11879 Tue Sep 21 14:49:53 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
11880
11881 * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
11882 Use Pmode to determine whether to output .dword or .word.
11883
11884 Tue Sep 21 11:04:34 1999 Alex Samuel <samuel@codesourcery.com>
11885
11886 * tree.c (built_in_filename): New variable.
11887 (BUILT_IN_FILENAME): New macro.
11888 (init_tree_codes): Allocate built_in_filename.
11889 (make_node): Use built_in_filename instead of string constant.
11890
11891 Tue Sep 21 14:13:27 1999 Nick Clifton <nickc@cygnus.com>
11892
11893 * configure.in: Add fr30 target.
11894 * configure: Regenerate.
11895 * config/fr30: New directory.
11896 * config/fr30/crti.asm: New file.
11897 * config/fr30/fr30.c: New file.
11898 * config/fr30/crtn.asm: New file.
11899 * config/fr30/fr30.h: New file.
11900 * config/fr30/fr30.md: New file.
11901 * config/fr30/lib1funcs.asm: New file.
11902 * config/fr30/t-fr30: New file.
11903 * config/fr30/xm-fr30.h: New file.
11904
11905 Tue Sep 21 06:45:31 1999 Jeffrey A Law (law@cygnus.com)
11906
11907 * flow.c (merge_blocks_move_successor_nojumps): Delete the
11908 BARRIER at the end of the successor, not the BARRIER before
11909 the successor.
11910
11911 * pa.c (pa_add_gc_roots): Fix thinko in last change.
11912
11913 Tue Sep 21 05:29:17 1999 Richard Earnshaw (rearnsha@arm.com)
11914
11915 * stmt.c (any_pending_cleanups): Don't crash when
11916 current_function->stmt is unset.
11917
11918 Tue Sep 21 00:59:49 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
11919
11920 * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
11921 other initializations that may use it for relative offsets.
11922
11923 Mon Sep 20 21:43:25 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
11924
11925 * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
11926 (ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas.
11927 * config/i386/sol2dbg.h: Removed.
11928 * config/i386/sol2gas.h: New file, to enable gas work-around.
11929 * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
11930 Don't use sol2dbg.h.
11931 * configure: Rebuilt.
11932
11933 Mon Sep 20 13:29:41 1999 Mark Mitchell <mark@codesourcery.com>
11934
11935 * invoke.texi (-fthis-is-variable): Remove documentation.
11936
11937 Mon Sep 20 12:59:16 1999 Richard Henderson <rth@cygnus.com>
11938
11939 * basic-block.h (compute_bb_for_insn): Declare.
11940 * flow.c (compute_bb_for_insn): Export. Don't accept the varray
11941 to use; set size of basic_block_for_insn directly.
11942 (find_basic_blocks): Update.
11943
11944 Mon Sep 20 15:11:54 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11945
11946 * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
11947
11948 Mon Sep 20 14:56:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11949
11950 * crtstuff.c (ON_EXIT): Delete empty macro definition.
11951 (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
11952
11953 Mon Sep 20 15:25:35 1999 Nick Clifton <nickc@cygnus.com>
11954
11955 * c-decl.c (c_decode_option): Extend comment.
11956
11957 Mon Sep 20 14:43:37 1999 Nick Clifton <nickc@cygnus.com>
11958
11959 * toplev.c (progname): Make 'const char *'
11960 (flag_print_mem): Move out of main.
11961 (version_flag): Move out of main.
11962 (filename): Move out of main.
11963 (debug_args): Remove g prefix from options.
11964 (documented_lang_options): Remove cpplib specific options.
11965 (display_help): Add g prefix to debug options.
11966 (check_lang_option): Delete this function.
11967 (decode_d_option): New function: Decode -d... option.
11968 (decode_f_option): New function: Decode -f... option.
11969 (decode_W_option): New function: Decode -W... option.
11970 (decode_g_option): New function: Decode -g... option.
11971 (independent_decode_option): New function: Decode a language
11972 independent command line option.
11973 (main): Invoke lang_decode_option and then
11974 independent_decode_option on each command line option in
11975 turn.
11976
11977 Mon Sep 20 05:41:36 1999 Jeffrey A Law (law@cygnus.com)
11978
11979 Revert this change. Gavin's patch to operand_equal_p is a better fix.
11980 * fold-const.c (fold_range_test): Do not try to fold the range
11981 test if the rhs or lhs has side effects.
11982
11983 * basic-block.h (compute_flow_dominators): Declare.
11984
11985 * gcse.c (alloc_code_hoist_mem): New function.
11986 (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
11987 (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
11988 (hoist_code, one_code_hoisting_pass): Likewise.
11989 (gcse_main): If optimizing for size, then hoist expressions
11990 computed in multiple dominated basic blocks.
11991
11992 * gcse.c (invalid_nonnull_info): New function.
11993 (delete_null_pointer_checks): Likewise.
11994 * rtl.h (delete_null_pointer_checks): Declare.
11995 * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
11996
11997 * flow.c (merge_blocks_move_predecessor_nojumps): New function.
11998 (merge-blocks_move_successor_nojumps): Likewise.
11999 (merge_blocks): Allow merging of some blocks, even if it requires
12000 physical movement of the blocks, but not if it requires new jumps.
12001
12002 * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
12003 Callers and prototype changed.
12004 * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
12005
12006 Mon Sep 20 06:56:32 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12007
12008 * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
12009 -YP when both -p and -pg are present. From i386/sol2.h.
12010
12011 Mon Sep 20 10:49:05 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12012
12013 * Makefile.in (distclean): Delete tm_p.h.
12014 * configure.in: Create a new file, "tm_p.h", from a list in
12015 "tm_p_file". For ix86 systems, set up "tm_p_file" to include
12016 "i386/i386-protos.h".
12017
12018 * alias.c: Include "tm_p.h".
12019 * c-typeck.c: Likewise.
12020 * calls.c: Likewise.
12021 * cse.c: Likewise.
12022 * emit-rtl.c: Likewise.
12023 * explow.c: Likewise.
12024 * expmed.c: Likewise.
12025 * expr.c: Likewise.
12026 * final.c: Likewise.
12027 * flow.c: Likewise.
12028 * fold-const.c: Likewise.
12029 * function.c: Likewise.
12030 * gcse.c: Likewise.
12031 * global.c: Likewise.
12032 * haifa-sched.c: Likewise.
12033 * integrate.c: Likewise.
12034 * jump.c: Likewise.
12035 * local-alloc.c: Likewise.
12036 * loop.c: Likewise.
12037 * optabs.c: Likewise.
12038 * recog.c: Likewise.
12039 * reg-stack.c: Likewise.
12040 * regclass.c: Likewise.
12041 * regmove.c: Likewise.
12042 * reload.c: Likewise.
12043 * reload1.c: Likewise.
12044 * reorg.c: Likewise.
12045 * resource.c: Likewise.
12046 * stmt.c: Likewise.
12047 * stor-layout.c: Likewise.
12048 * toplev.c: Likewise.
12049 * tree.c: Likewise.
12050 * unroll.c: Likewise.
12051 * genattrtab.c (main): Make generated file include "tm_p.h".
12052 * genemit.c (main): Likewise.
12053 * genoutput.c (main): Likewise.
12054 * genrecog.c (main): Likewise.
12055
12056 * i386.h: Delete all prototypes.
12057 * i386.c: Include "tm_p.h".
12058 (ix86_attr_length_default): Call constant_call_address_operand
12059 with correct number of arguments.
12060 * i386-protos.h: New file.
12061 * i386.md (unnamed patterns): Call constant_call_address_operand
12062 with correct number of arguments.
12063 (exception_receiver): Call load_pic_register with correct number
12064 of arguments.
12065
12066 Sun Sep 19 14:18:39 1999 Richard Henderson <rth@cygnus.com>
12067
12068 * c-pragma.c (mark_align_stack): Dereference the void* properly.
12069
12070 Sun Sep 19 09:03:40 1999 Mark Mitchell <mark@codesourcery.com>
12071
12072 * rtl.h (insns_safe_to_move_p): New function.
12073 * loop.c (find_and_verify_loops): Use it.
12074 * rtlanal.c (insns_safe_to_move_p): Define it.
12075
12076 Sun Sep 19 02:54:33 1999 Richard Henderson <rth@cygnus.com>
12077
12078 * c-pragma.c: Include ggc.h.
12079 * Makefile.in (c-pragma.o): Update.
12080
12081 Sat Sep 18 16:01:18 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12082
12083 * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
12084 (LIB_SPEC): Likewise.
12085 (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
12086 Reindent -YP/-p/-pg.
12087 Copied from config/sparc/sol2.h.
12088
12089 Sat Sep 18 11:52:43 1999 Richard Henderson <rth@cygnus.com>
12090
12091 * c-pragma.c (mark_align_stack): New.
12092 (init_pragma): New.
12093 * c-pragma.h (init_pragma): Declare it.
12094 * c-lex.c (init_parse): Call it.
12095
12096 Sat Sep 18 15:20:38 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12097
12098 * configure.in: Pick up thread library on Solaris/x86 just
12099 like on Solaris/sparc.
12100 * configure: Rebuilt.
12101
12102 Sat Sep 18 11:15:58 1999 Alex Samuel <samuel@codesourcery.com>
12103
12104 * rtl.h (global_rtx_index): New enum.
12105 (global_rtl): Change to array of rtx.
12106 (pc_rtx, cc0_rtx): Redefine accordingly.
12107 (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
12108 (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
12109 (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
12110 (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
12111 (const_int_rtx): Change to array of rtx.
12112 (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
12113 accordingly.
12114 * emit-rtl.c (global_rtl): Change to array of rtx.
12115 (const_int_rtx): Change to aray of rtx.
12116 (gen_rtx_CONST_INT): Redefine accordingly.
12117 (init_emit_once): Allocate and initialize global_rtl. Likewise
12118 for const_int_rtx. Add both as GC roots.
12119 * genattrtab.c (global_rtl): Update declaration.
12120
12121 1999-09-17 Ulrich Drepper <drepper@cygnus.com>
12122
12123 * Makefile (USER_H): Add iso646.h back.
12124
12125 Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com)
12126
12127 * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
12128 zapping the LOG_LINKS of sched_before_next_call.
12129
12130 * pa.h (INSN_SETS_ARE_DELAYED): Delete.
12131 * pa.c (insn_refs_are_delayed): Renamed from
12132 insn_sets_and_refs_are_delayed.
12133
12134 Fri Sep 17 15:19:01 1999 Mark Mitchell <mark@codesourcery.com>
12135
12136 * functiion.h (struct function): Add x_whole_function_mode_p.
12137 (retrofit_block): Declare.
12138 * function.c (retrofit_block): New function.
12139 (identify_blocks): Add assertions. Allow an incomplete set of
12140 block notes if we're still generating code for the function.
12141 * integrate.c: Include loop.h.
12142 (expand_inline_function): Call find_loop_tree_blocks to map block
12143 notes to blocks when in whole-function mode. Use retrofit_block
12144 to insert new BLOCKs for the inlined function, rather than
12145 insert_block.
12146 * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel.
12147 * Makefile.in (integrate.o): Depend on loop.h.
12148
12149 Fri Sep 17 15:11:20 1999 Mark Mitchell <mark@codesourcery.com>
12150
12151 * tree.h (warn_about_unused_variables): Declare.
12152 * stmt.c (warn_about_unused_variables): New function, split out
12153 from ...
12154 (expand_end_bindings): Here.
12155
12156 Fri Sep 17 15:07:37 1999 Mark Mitchell <mark@codesourcery.com>
12157
12158 * stmt.c (preserve_subexpressions_p): Don't crash when
12159 current_function->stmt is unset.
12160
12161 Fri Sep 17 15:03:16 1999 Mark Mitchell <mark@codesourcery.com>
12162
12163 * stmt.c (expand_start_bindings): Allow callers to pass a flag
12164 indicating that no NOTE_INSN_BLOCK_BEG note is required.
12165 (expand_start_target_temps): Use it.
12166 * except.c (expand_eh_region_start_for_decl): Likewise.
12167 * expr.c (expand_expr): Likewise.
12168
12169 Fri Sep 17 15:05:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
12170
12171 * fold-const.c (operand_equal_p): Pay attention to side effects.
12172
12173 Fri Sep 17 11:14:17 1999 Jason Merrill <jason@yorick.cygnus.com>
12174
12175 * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
12176 * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
12177
12178 * tlink.c (scan_linker_output): Look for keywords before accepting
12179 a mangled name in quotes.
12180
12181 Thu Sep 16 16:47:08 1999 Richard Henderson <rth@cygnus.com>
12182
12183 * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
12184 * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
12185
12186 Thu Sep 16 16:35:41 1999 Richard Henderson <rth@cygnus.com>
12187
12188 * alpha.md: Revert Thu Nov 26 change that came in through the
12189 last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
12190 Avoid earlyclobber when possible.
12191
12192 Thu Sep 16 18:44:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12193
12194 * libgcc2.c (__do_global_ctors): Call atexit with one arg.
12195
12196 * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
12197 Define HAVE_ON_EXIT.
12198
12199 Thu Sep 16 18:06:35 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12200
12201 * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use
12202 CTYPE_CONV in all ctype macros.
12203
12204 * cccp.c (initialize_char_syntax): Use uppercase ctype macro
12205 from system.h.
12206
12207 * cexp.y (initialize_random_junk): Likewise.
12208
12209 * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
12210
12211 * i370.c (handle_pragma): Likewise.
12212
12213 * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
12214
12215 * v850.c (override_options): Likewise.
12216
12217 * doprint.c (_doprnt): Likewise.
12218
12219 * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
12220 Likewise.
12221
12222 * fixinc/server.c (load_data): Likewise.
12223
12224 * fold-const.c (real_hex_to_f): Likewise.
12225
12226 * genattr.c (write_upcase, gen_attr): Likewise.
12227
12228 * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
12229 write_upcase): Likewise.
12230
12231 * genemit.c (print_code): Likewise.
12232
12233 * genopinit.c (gen_insn): Likewise.
12234
12235 * genpeep.c (print_code): Likewise.
12236
12237 * genrecog.c (print_code): Likewise.
12238
12239 * optabs.c (init_libfuncs): Likewise.
12240
12241 Thu Sep 16 14:03:32 1999 Mark Mitchell <mark@codesourcery.com>
12242
12243 * haifa-sched.c (sched_analyze): Keep the list of notes organized
12244 in pairs.
12245 (reemit_notes): Likewise.
12246
12247 Thu Sep 16 11:50:52 1999 Alex Samuel <samuel@codesourcery.com>
12248
12249 * ggc.h (ggc_root): Move to ggc-common.c.
12250 (roots): Remove.
12251 (ggc_mark_rtx, ggc_mark_tree): Change to macro.
12252 (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
12253 (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
12254 (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
12255 * ggc-common.c (ggc_root): Move from ggc.h.
12256 (roots): Declare, static.
12257 (ggc_mark_rtx, ggc_mark_tree): Renamed to...
12258 (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
12259 null or check/set mark bit.
12260 (ggc_mark_roots): New.
12261 * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
12262
12263 Thu Sep 16 11:37:32 1999 Richard Henderson <rth@cygnus.com>
12264
12265 * m32r.c: Include toplev.h.
12266 (*): Add ATTRIBUTE_UNUSED as needed to arguments.
12267 (gen_compare): Rename swap_p to must_swap to match uses.
12268 Add default abort case.
12269 (m32r_output_function_epilogue): Remove unused variables.
12270 (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
12271 * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
12272 define to empty parameter list. Update all uses.
12273 (predicate decls): Use enum machine_mode not int.
12274 * m32r.md (movsi): Call abort, not fatal_insn.
12275 (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
12276
12277 1999-09-14 Andrew Haley <aph@cygnus.com>
12278
12279 * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
12280 use $0 instead of 0.
12281
12282 Thu Sep 16 10:53:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12283
12284 * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
12285 computation out of loop over hard regs.
12286
12287 Wed Sep 15 21:37:06 1999 Mark Mitchell <mark@codesourcery.com>
12288
12289 * function.c (identify_blocks): Don't shadow a variable in an
12290 outer scope.
12291 * integrate.c (integrate_decl_tree): Don't use pushlevel,
12292 pushdecl, or poplevel to build up the new BLOCK tree.
12293 (expand_inline_function): Likewise.
12294 (integrate_parm_decls): Likewise.
12295
12296 Wed Sep 15 21:20:38 1999 Mark Mitchell <mark@codesourcery.com>
12297
12298 * c-typeck.c (qualify_type): Merge qualifiers from both types.
12299
12300 1999-09-15 Brad Lucier <lucier@math.purdue.edu>
12301
12302 * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
12303 * invoke.texi: Document this change.
12304
12305 Wed Sep 15 17:56:00 1999 Richard Henderson <rth@cygnus.com>
12306
12307 * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
12308 Free the struct.
12309 (mark_emit_status): Renamed from mark_emit_state.
12310 * except.c (mark_eh_status): Renamed from mark_eh_state.
12311 Check not null before marking.
12312 (free_eh_status): New.
12313 * expr.c (mark_expr_status, free_expr_status): New.
12314 * function.c (free_machine_status): New.
12315 (free_after_parsing): New.
12316 (free_after_compilation): Move bits to free_after_parsing; call
12317 free_eh_status, free_expr_status; zero the marked members of the
12318 function state.
12319 (prepare_function_start): No can_garbage_collect.
12320 Call init_eh_for_function.
12321 (expand_dummy_function_end): Free up current_function state.
12322 (mark_function_status): Renamed from mark_function_state.
12323 (mark_function_chain): No can_garbage_collect. Call mark_expr_status.
12324 * function.h (struct function): No can_garbage_collect.
12325 (free_machine_status, free_after_parsing): Declare.
12326 (free_eh_status, free_expr_status): Declare.
12327 * ggc.h (mark_expr_status): Declare.
12328 * stmt.c (free_stmt_status): Free the struct.
12329 (mark_stmt_status): Renamed from mark_stmt_state.
12330 (init_stmt): Don't call init_eh.
12331 (init_stmt_for_function): Don't call init_eh_for_function.
12332 * toplev.c (compile_file): Call init_eh.
12333 (rest_of_compilation): Free basic block info before ggc_collect.
12334 Call free_after_parsing; conditionally call free_after_compilation.
12335 * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
12336 Check not null before marking.
12337 (free_varasm_status): Don't check DECL_DEFER_OUTPUT. Free the struct.
12338
12339 Wed Sep 15 17:53:16 1999 Richard Henderson <rth@cygnus.com>
12340
12341 * c-lex.c (yylex): Initialize warn.
12342
12343 Wed Sep 15 18:35:38 1999 Jeffrey A Law (law@cygnus.com)
12344
12345 * pa.c (emit_move_sequence): Properly set the mode of the scratch
12346 register when performing secondary reloads for the SAR register.
12347
12348 Wed Sep 15 15:51:52 1999 Mark Mitchell <mark@codesourcery.com>
12349
12350 * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
12351 (NOTE_BLOCK): New macro.
12352 (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
12353 * function.h (identify_blocks): Change prototype.
12354 * function.c (identify_blocks): Simplify.
12355 (reorder_blocks): Likewise.
12356 * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
12357 NOTE_INSN_BLOCK_{BEG,END}.
12358 * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
12359 the list of saved notes if the note isn't a
12360 NOTE_INSN_BLOCK_{BEG,END}.
12361 (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
12362 NOTE_BLOCK_NUMBER.
12363 (reemit_notes): Adjust recreation of notes to reflect new saved
12364 note structure.
12365 * print-rtl.c (print_rtx): Print the address of the BLOCK when
12366 printing a block note.
12367 * stmt.c (block_vector): Remove.
12368 (find_loop_tree_blocks): Simplify.
12369 (unroll_block_trees): Likewise.
12370 * tree.h (reorder_block): Change prototype.
12371
12372 Wed Sep 15 14:39:35 1999 Jason Merrill <jason@yorick.cygnus.com>
12373
12374 * gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT.
12375 * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
12376 (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
12377 (__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl.
12378 (atexit, exit): Simplify.
12379 * tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT.
12380 * config/lots: Remove defns of HAVE_ATEXIT.
12381
12382 Wed Sep 15 10:25:12 1999 Mark Mitchell <mark@codesourcery.com>
12383
12384 * calls.c (precompute_arguments): Fix typo in comment.
12385 * expr.c (preexpand_calls): Don't preexpand the cleanup in a
12386 TARGET_EXPR.
12387
12388 Wed Sep 15 09:59:59 1999 Mark Mitchell <mark@codesourcery.com>
12389
12390 * dsp16xx.c (override_options): Fix typos in GC root registration.
12391
12392 Wed Sep 15 15:23:28 1999 Philip Blundell <pb@nexus.co.uk>
12393
12394 * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
12395 from config/svr4.h.
12396 (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
12397 (FUNCTION_PROFILER): Redefine appropriately for Linux.
12398 (CC1_SPEC): Likewise.
12399
12400 Wed Sep 15 10:09:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12401
12402 * genattr.c (main): Add extern prototype. Call return, not exit.
12403 * genattrtab.c (main): Likewise.
12404 * gencheck.c (main): Likewise.
12405 * gencodes.c (main): Likewise.
12406 * genconfig.c (main): Likewise.
12407 * genemit.c (main): Likewise.
12408 * genextract.c (main): Likewise.
12409 * genflags.c (main): Likewise.
12410 * gengenrtl.c (main): Likewise.
12411 * genopinit.c (main): Likewise.
12412 * genoutput.c (main): Likewise.
12413 * genpeep.c (main): Likewise.
12414 * genrecog.c (main): Likewise.
12415
12416 * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
12417 * genattrtab.c (get_insn_name): Likewise.
12418 * gencodes.c (get_insn_name): Likewise.
12419 * genconfig.c (get_insn_name): Likewise.
12420 * genemit.c (get_insn_name): Likewise.
12421 * genextract.c (get_insn_name): Likewise.
12422 * genflags.c (get_insn_name): Likewise.
12423 * genopinit.c (get_insn_name): Likewise.
12424 * genpeep.c (get_insn_name): Likewise.
12425
12426 * gencheck.c (usage): Add static prototype.
12427 * genextract.c (print_path): Constify a char*.
12428 * genopinit.c (optabs): Likewise.
12429 * genoutput.c (operand_data, data, output_predicate_decls,
12430 compare_operands): Likewise.
12431 * genrecog.c (write_tree): Add default case in switch.
12432
12433 Wed Sep 15 09:59:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12434
12435 * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
12436
12437 * print-rtl.c (get_insn_name): Remove prototype.
12438
12439 * toplev.h (progname): Declare const.
12440
12441 * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
12442 init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
12443 dump_sched_info, dump_local_alloc, regset_release_memory,
12444 print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
12445 error_with_file_and_line, error_with_decl, error_for_asm, error,
12446 fatal, warning_with_file_and_line, warning_with_decl, warning,
12447 pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
12448 Remove redundant prototypes.
12449
12450 (notice, check_lang_option, report_file_and_line, vnotice,
12451 mark_file_stack): Add static prototype.
12452 (set_fatal_function): Add prototype.
12453 (vnotice, report_file_and_line, set_fatal_function,
12454 check_lang_option): Constify a char*.
12455 (main): Prototype. Call return, not exit.
12456
12457 Wed Sep 15 09:50:18 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12458
12459 * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
12460
12461 * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
12462
12463 * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
12464
12465 * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
12466
12467 Wed Sep 15 11:04:43 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12468
12469 * function.c (assign_parms): Delete arg SECOND_TIME. Don't test it,
12470 behave as if it's zero in all cases.
12471 (expand_function_start): Adjust call to assign_parms.
12472 * tree.h (assign_parms): Adjust prototype.
12473 * objc/objc-act.c (hack_method_prototype): Adjust call to
12474 assign_parms.
12475
12476 Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com)
12477
12478 * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
12479 arg_pointer_rtx fixed if the argument pointer register is
12480 not fixed.
12481 (NONZERO_BASE_PLUS_P): Likewise.
12482
12483 Tue Sep 14 20:26:02 1999 Richard Henderson <rth@cygnus.com>
12484
12485 * rtl.def (match_insn, match_insn2): Remove match_insn; rename
12486 match_insn2 to match_insn.
12487 * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
12488
12489 Tue Sep 14 20:10:29 1999 Richard Henderson <rth@cygnus.com>
12490
12491 * Makefile.in (USER_H): Remove va-foo.h.
12492
12493 * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
12494 va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
12495 va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
12496 va-spur.h,va-v850.h}: Remove.
12497
12498 Tue Sep 14 19:43:16 1999 Richard Henderson <rth@cygnus.com>
12499
12500 * sparc/sparc.md (eligible_for_return_delay): New attribute.
12501 (in_return_delay): Use it instead of match_insn.
12502
12503 Tue Sep 14 23:05:37 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12504
12505 * config/alpha/va_list.h (va-alpha.h): Do not include.
12506 (__gnuc_va_list): Typedef as in varargs.h.
12507
12508 Tue Sep 14 18:14:03 1999 Richard Henderson <rth@cygnus.com>
12509
12510 * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
12511 DECL_LIVE_RANGE_RTL.
12512
12513 Tue Sep 14 16:47:08 1999 Mark Mitchell <mark@codesourcery.com>
12514
12515 * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
12516 not NOTE_BLOCK_NUMBER.
12517 (expand_eh_region_end): Likewise.
12518 (find_exception_handler_labels): Likewise.
12519 (scan_region): Likewise.
12520 (exception_optimize): Likewise.
12521 (update_rethrow_references): Likewise.
12522 (set_insn_eh_region): Likewise.
12523 * final.c (final_scan_insn): Likewise.
12524 * flow.c (make_edges): Likewise.
12525 * integrate.c (expand_inline_function): Likewise.
12526 * print-rtl.c (print_rtx): Likewise.
12527
12528 Tue Sep 14 16:30:16 1999 Richard Henderson <rth@cygnus.com>
12529
12530 * ginclude/stdarg.h, ginclude/varargs.h: Implement in
12531 terms of builtin functions and types.
12532
12533 * mips.c (mips_build_va_list): New.
12534 (mips_va_start, mips_va_arg): New.
12535 * mips.h (BUILD_VA_LIST_TYPE): New.
12536 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
12537
12538 * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
12539 (sh_build_va_list, sh_va_start, sh_va_arg): New.
12540 * sh.h (BUILD_VA_LIST_TYPE): New.
12541 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
12542
12543 Tue Sep 14 16:20:24 1999 Richard Henderson <rth@cygnus.com>
12544
12545 * recog.h (struct recog_data): Make dup_num, operand_address_p,
12546 n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
12547 (struct insn_data): Likewise with n_operands, n_dups,
12548 n_alternatives, output_format.
12549 * regclass.c (scan_one_insn): Cast n_operands to int before
12550 arithmetic inside comparison.
12551
12552 Tue Sep 14 15:13:36 1999 Richard Henderson <rth@cygnus.com>
12553
12554 * toplev.c (compile_function): Unconditionally emit nop.
12555
12556 Tue Sep 14 14:41:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12557
12558 * haifa-sched.c (actual_hazard): Move declaration of variable
12559 `this_cost' into the scope where it is used.
12560
12561 Tue Sep 14 14:14:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12562
12563 * c-pragma.c (handle_pragma_token): Wrap variables `name' and
12564 `value' in HANDLE_PRAGMA_WEAK. Wrap variable `align' in
12565 HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
12566
12567 * genrecog.c (make_insn_sequence): Call memset, not bzero.
12568
12569 * jump.c (find_insert_position): Don't declare or define unless
12570 !HAVE_conditional_arithmetic.
12571 (returnjump_p_1, delete_prior_computation): Add static prototypes.
12572
12573 * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
12574
12575 * recog.c (offsettable_address_p): Prototype function pointer.
12576 (preprocess_constraints): Call memset, not bzero.
12577
12578 * tree.c (tree_node_kind_names): Constify a char*. Make static.
12579 (gcc_obstack_init): Don't declare.
12580 (fix_sizetype): Add static prototype.
12581 (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
12582 (tree_cons): Call memset, not bzero.
12583
12584 * varasm.c (remove_from_pending_weak_list): Wrap declaration and
12585 definition in macro ASM_WEAKEN_LABEL.
12586 (mark_const_hash_entry): Add static prototype.
12587
12588 Tue Sep 14 12:22:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12589
12590 * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
12591
12592 * unroll.c (find_common_reg_term, subtract_reg_term,
12593 loop_find_equiv_value): Add static prototypes.
12594 (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
12595 (copy_loop_body): Remove unreachable break statement.
12596
12597 * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
12598
12599 * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
12600
12601 Tue Sep 14 15:28:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12602
12603 Undo some changes from the gcc2 merge:
12604 * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
12605 * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
12606 pointers.
12607
12608 Undo this change:
12609 Sat Oct 3 07:20:28 1998 Stephen L Moshier <moshier@world.std.com>
12610 * emit-rtl.c (gen_lowpart_common): Disable optimization of
12611 initialized float-int union if the value is a NaN.
12612
12613 Tue Sep 14 04:03:44 1999 Mumit Khan <khan@xraylith.wisc.edu>
12614
12615 * gthr-win32.h: New file.
12616
12617 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
12618 shared as a valid attribute.
12619 * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
12620 * extend.texi: Document `shared' variable attribute.
12621
12622 Tue Sep 14 04:01:46 1999 Loren Rittle <ljrittle@acm.org>
12623
12624 * configure.in: Handle --enable-threads on FreeBSD.
12625 * configure: Rebuit.
12626
12627 Tue Sep 14 03:58:44 1999 Andreas Jaeger <aj@arthur.rhein-neckar.de>
12628
12629 * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
12630 thread support.
12631 * configure: Rebuilt.
12632
12633 Tue Sep 14 03:47:23 1999 Joel Sherrill <joel@OARcorp.com>
12634 Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
12635 Rosimildo DaSilva <rdasilva@connecttel.com>
12636
12637 * configure.in (m68k-*-rtemscoff*): Added.
12638 * configure.in (mips64orion-*-rtems*): Converted to ELF.
12639 * configure.in (sparc-*-rtemsaout*): Added as alias for old
12640 sparc-rtems configuration.
12641 * configure.in (sparc-*-rtemself*): Added.
12642 * configure.in (sparc-*-rtems*): Now ELF not a.out.
12643 * config/i386/rtems.h: Added comment.
12644 * config/sparc/rtemself.h: New file.
12645
12646 * configure.in (m68k-rtemself): Added.
12647 * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
12648 and DWARF_DEBUGGING_INFO.
12649 * config/m68k/crti.s: New file.
12650 * config/m68k/crtn.s: New file.
12651 * config/m68k/t-crtstuff: New file.
12652 * config/m68k/rtemself.h: New file.
12653
12654 * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
12655 global ctor/dtor and C++ exception handling.
12656 * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
12657 for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
12658 ENDFILE_SPEC.
12659 * config/i386/t-rtems-i386: New File.
12660
12661 Tue Sep 14 09:47:41 1999 Andreas Schwab <schwab@suse.de>
12662
12663 * stmt.c (expand_end_case): Return right away if the case stack is
12664 empty.
12665
12666 Tue Sep 14 01:47:19 1999 Jeffrey A Law (law@cygnus.com)
12667
12668 * Makefile.in (version.c): Remove rule incorrectly brought in from
12669 the gcc2 merge.
12670
12671 Tue Sep 14 01:42:27 1999 Marc Espie <espie@cvs.openbsd.org>
12672
12673 * Makefile.in: Prepend $(SHELL) to move-if-change calls.
12674 * msdos/top.sed: Take into account a prepended $(SHELL) to
12675 move-if-change.
12676 * winnt/config-nt.sed: Likewise. Kill bogus substitution.
12677
12678 * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
12679
12680 Tue Sep 14 01:38:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
12681
12682 * regmove.c (fixup_match_1): Don't change an unchanging register.
12683 (stable_but_for_p): Renamed to:
12684 (stable_and_no_regs_but_for_p). Reject unchanging registers too.
12685 Changed all callers.
12686
12687 Tue Sep 14 01:33:15 1999 Andreas Schwab <schwab@suse.de>
12688
12689 * loop.c (strength_reduce): Don't call reg_used_between_p if the
12690 insn from BL2 is after the insn from BL.
12691
12692 Mon Sep 13 21:06:01 1999 Richard Henderson <rth@cygnus.com>
12693
12694 * recog.h (INSN_OUTPUT_FORMAT_*): New.
12695 (struct insn_data): Merge `template' and `outfun' into `output'.
12696 Add `output_format'.
12697 * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
12698 (struct data): Remove `outfun'; add `output_format'.
12699 (name_for_index): Remove declaration.
12700 (output_insn_data): Handle output formats.
12701 (process_template): Emit the bare array for @.
12702 (gen_expand, gen_split): Set output_format to NONE.
12703 * output.h (get_insn_template): Declare.
12704 * final.c (get_insn_template): New.
12705 (final_scan_insn): Use it.
12706 * toplev.c (compile_file): Likewise.
12707
12708 * c4x/c4x.c (c4x_process_after_reload): Likewise.
12709 * i860/i860.c (output_delayed_branch): Likewise.
12710 (output_delay_insn): Likewise.
12711
12712 1999-09-13 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12713
12714 * rtl.c (obstack_alloc_rtx): Removed.
12715
12716 1999-09-13 17:03 -0700 Zack Weinberg <zack@bitmover.com>
12717
12718 * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
12719
12720 Mon Sep 13 15:21:46 1999 Richard Henderson <rth@cygnus.com>
12721
12722 * i386.c (call_insn_operand): Reject const_int.
12723 (expander_call_insn_operand): Use call_insn_operand.
12724
12725 Mon Sep 13 17:44:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12726
12727 * gcc.c (getrusage): Wrap prototype arguments in PROTO().
12728
12729 1999-09-13 12:18 -0700 Zack Weinberg <zack@bitmover.com>
12730
12731 * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
12732 Use DImode operation.
12733
12734 1999-09-13 12:13 -0700 Zack Weinberg <zack@bitmover.com>
12735
12736 * gcc.c: Include sys/resource.h.
12737 (report_times): New flag.
12738 (execute): If report_times is set, calculate and report the
12739 CPU time consumed by each subprocess.
12740
12741 (rus, prus): New globals.
12742 (option_map): Add --time.
12743 (display_help): Document -time.
12744 (process_command): Set report_times if -time is given.
12745 Turn off -pipe if -time is given.
12746
12747 * invoke.texi: Document new option -time.
12748
12749 * configure.in: Check for getrusage. Check if we have to
12750 prototype getrusage.
12751 * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
12752 * configure: Regenerate.
12753 * config.in: Regenerate.
12754
12755 Mon Sep 13 12:57:06 1999 Dave Brolley <brolley@cygnus.com>
12756
12757 * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
12758 fields.
12759
12760 Mon Sep 13 10:01:33 1999 Nick Clifton <nickc@cygnus.com>
12761
12762 * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
12763 appropriate) if FINE_GRAINED_LIBRARIES is not defined.
12764 (nan): Return _thenan_sf or _thenan_df as appropriate.
12765 (L_thenan_sf): Define _thenan_sf.
12766 (L_thenan_df): Define _thenan_df.
12767
12768 * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
12769 (DPBIT_FUNCS): Add _thenan_df.
12770
12771 Mon Sep 13 09:38:53 1999 Andreas Schwab <schwab@suse.de>
12772
12773 * tree.c (fix_sizetype): Exchange the types for TYPE_SIZE and
12774 TYPE_SIZE_UNIT.
12775
12776 Sun Sep 12 23:28:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12777
12778 * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
12779
12780 * gcc.h: New file.
12781 (lang_specific_driver): Don't take a function pointer parameter.
12782 All callers changed.
12783
12784 * gcc.c: Include gcc.h.
12785 (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
12786 lang_specific_extra_outfiles, fatal): Don't declare.
12787 (multilib_defaults_raw): Constify.
12788 (read_specs): Call memset, rather than bzero.
12789 (main): Call return, not exit.
12790 (lookup_compiler): Call memcpy, not bcopy.
12791 (fatal): Make extern.
12792
12793 * cppspec.c: Include gcc.h.
12794 (lang_specific_driver): Initialize variable `quote'. Constify a
12795 char*. All calls to the function pointer parameter now
12796 explicitly call `fatal'.
12797
12798 * gccspec.c (lang_specific_driver): Include gcc.h.
12799
12800 Sun Sep 12 19:52:10 1999 Richard Earnshaw <rearnsha@arm.com>
12801
12802 * arm.c (note_invalid_constants): Use recog_data.operand_type
12803 for recog_op_type.
12804
12805 Sun Sep 12 15:53:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12806
12807 * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
12808 Declare.
12809
12810 * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
12811 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
12812 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
12813 reload_secondary_in_reload, reload_secondary_out_reload,
12814 reload_secondary_in_icode, reload_secondary_out_icode,
12815 reload_reg_rtx, reload_when_needed): Delete declarations.
12816 (struct reload): New structure.
12817 (rld): Declare new array.
12818 * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
12819 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
12820 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
12821 reload_secondary_in_reload, reload_secondary_out_reload,
12822 reload_secondary_in_icode, reload_secondary_out_icode,
12823 reload_reg_rtx, reload_when_needed): Delete definitions.
12824 (rld): New array.
12825 (whole file): Replace uses of the deleted arrays with uses of rld.
12826 * reload1.c (whole file): Replace uses of the deleted arrays with
12827 uses of rld.
12828 (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
12829 explicit loops, not with bcopy.
12830
12831 Sun Sep 12 05:00:24 1999 Richard Henderson <rth@cygnus.com>
12832
12833 * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
12834 insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
12835 insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
12836 insn_name): Delete and consolidate into new structures.
12837 (insn_operand_predicate_fn): New.
12838 (insn_output_fn): New.
12839 (insn_gen_fn): New.
12840 (struct insn_operand_data): New.
12841 (struct insn_data): New.
12842 (insn_data): New.
12843 (OUT_FCN): Update for insn_data change.
12844 * builtins.c (expand_builtin_strlen): Likewise.
12845 (expand_builtin_memcmp): Likewise.
12846 * combine.c (make_extraction, simplify_comparison): Likewise.
12847 * cse.c (canon_reg, cse_insn): Likewise.
12848 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
12849 * expmed.c (store_bit_field, extract_bit_field): Likewise.
12850 (emit_store_flag): Likewise.
12851 * expr.c (convert_move, emit_block_move): Likewise.
12852 (clear_storage, emit_push_insn, expand_increment): Likewise.
12853 (do_store_flag): Likewise.
12854 * expr.h (GEN_FCN): Likewise.
12855 (insn_gen_function): Die.
12856 * final.c (final_scan_insn): Update for insn_data change.
12857 (output_asm_name): Likewise.
12858 * function.c (fixup_var_refs_1): Likewise.
12859 * loop.c (check_dbra_loop): Likewise.
12860 * optabs.c (expand_binop, expand_twoval_binop): Likewise.
12861 (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
12862 (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
12863 (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
12864 * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
12865 * regmove.c (gen_add3_insn): Likewise.
12866 * reload.c (push_secondary_reload, combine_reloads): Likewise.
12867 (find_reloads, find_reloads_address_1): Likewise.
12868 (debug_reload_to_stream): Likewise.
12869 * reload1.c (emit_reload_insns, gen_reload): Likewise.
12870 * stmt.c (expand_end_case): Likewise.
12871 * toplev.c (compile_file): Likewise.
12872
12873 * c4x/c4x.c (c4x_process_after_reload): Likewise.
12874 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
12875
12876 * print-rtl.c (insn_name_ptr): Remove declaration.
12877 (get_insn_name): Declare.
12878 (print_rtx): Use it.
12879 * genoutput.c (insn_name_ptr): Remove.
12880 (next_operand_number): New.
12881 (struct operand_data): New.
12882 (null_operand, odata, odata_end): New.
12883 (struct data): Use struct operand_data.
12884 (idata, idata_end): Renamed from insn_data and end_of_insn_data.
12885 (get_insn_name): Renamed from name_for_index.
12886 (output_prologue): Define NO_MD_PROTOTYPES.
12887 (output_predicate_decls): Break out from output_epilogue.
12888 Iterate over the operands list.
12889 (output_operand_data): Break out from output_epilogue. Emit
12890 just the operands list.
12891 (output_insn_data): Break out from output_epilogue. Emit just
12892 the insn data.
12893 (output_epilogue): Remove.
12894 (output_get_insn_name): New.
12895 (constraints, op_n_alternatives, predicates, address_p): Die.
12896 (modes, strict_low, seen): Die.
12897 (scan_operands): Take new param `d' instead of writing to
12898 seven global variables.
12899 (compare_operands): New.
12900 (place_operands): New.
12901 (validate_insn_alternatives): Update for struct data change.
12902 (gen_insn): Don't zero or copy 7 global arrays. Update for
12903 scan_operands; call place_operands.
12904 (gen_peephole, gen_expand, gen_split): Likewise.
12905 (main): Update for new output routines.
12906
12907 * genattr.c (insn_name_ptr): Remove.
12908 (get_insn_name): New function.
12909 * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
12910 * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
12911 * genrecog.c: Likewise.
12912
12913 * alpha.md (adddi3): Make `pattern' array static.
12914
12915 Sun Sep 12 22:05:21 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12916
12917 * config/c4x/c4x.h (c4x_rpts_cycles_string,
12918 c4x_cpu_version_string): Constify char *.
12919 * config/c4x/c4x.c (c4x_rpts_cycles_string,
12920 c4x_cpu_version_string): Likewise.
12921
12922 Sat Sep 11 23:28:33 1999 Richard Henderson <rth@cygnus.com>
12923
12924 * tree.c (save_tree_status): Revert 10 Sep change.
12925 (restore_tree_status): Likewise. Call obstack_free with NULL
12926 before freeing the obstack proper.
12927
12928 Sat Sep 11 23:23:46 1999 Richard Henderson <rth@cygnus.com>
12929
12930 * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
12931
12932 * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
12933 surrounding context.
12934
12935 Sat Sep 11 19:52:43 1999 Mark Mitchell <mark@codesourcery.com>
12936
12937 * tree.c (type_hash_canon): Put all types in the hash-table, when
12938 GC'ing.
12939
12940 Sat Sep 11 18:37:04 1999 Richard Henderson <rth@cygnus.com>
12941
12942 * recog.h (struct recog_data, recog_data): New.
12943 (recog_foo variables): Kill.
12944 * recog.c (recog_operand, recog_operand_loc): Kill.
12945 (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
12946 (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
12947 (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
12948 (recog_data): Define.
12949 (extract_insn): Update all recog_foo references to use recog_data.
12950 (preprocess_constraints, constrain_operands): Likewise.
12951 * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
12952 * genattrtab.c (main): Likewise.
12953 * genextract.c (main): Likewise.
12954 * genoutput.c: Likewise.
12955 * genrecog.c (write_subroutine, main): Likewise.
12956 * local-alloc.c (block_alloc): Likewise.
12957 * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
12958 * regclass.c (scan_one_insn, record_reg_classes): Likewise.
12959 * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
12960 * reload.c (find_reloads, find_reloads_toplev): Likewise.
12961 * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
12962 (reload_cse_simplify_operands): Likewise.
12963
12964 * arc/arc.c (arc_final_prescan_insn): Likewise.
12965 * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
12966 * h8300/h8300.c (notice_update_cc): Likewise.
12967 * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
12968 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
12969 * mn10200/mn10200.c (notice_update_cc): Likewise.
12970 * mn10300/mn10300.c (notice_update_cc): Likewise.
12971 * romp/romp.c (update_cc): Likewise.
12972 * sparc/sparc.c (check_pic): Likewise.
12973 * v850/v850.c (notice_update_cc): Likewise.
12974
12975 * genemit.c (main): Don't declare recog_operand.
12976
12977 Sat Sep 11 12:41:55 1999 Alex Samuel <samuel@codesourcery.com>
12978
12979 * ggc.h (rtvec_def): Forward declare.
12980 (tree_node): Likewise.
12981 (ggc_root): Define.
12982 (roots): Declare.
12983 (ggc_set_mark_rtx): Add prototype.
12984 (ggc_set_mark_rtvec): Likewise.
12985 (ggc_set_mark_tree): Likewise.
12986 * ggc-simple.c (ggc_root): Don't define.
12987 (roots): Don't declare.
12988 (ggc_mark_rtx): Remove.
12989 (ggc_mark_rtvec): Likewise.
12990 (ggc_mark_tree): Likewise.
12991 (ggc_mark_varray): Likewise.
12992 (ggc_mark_tree_hash_table_entry): Likewise.
12993 (ggc_mark_tree_hash_table): Likewise.
12994 (ggc_set_mart_rtx): New function.
12995 (ggc_set_mark_rtvec): Likewise.
12996 (ggc_set_mark_tree): Likewise.
12997 (ggc_add_root): Remove.
12998 (ggc_add_rtx_root): Likewise.
12999 (ggc_remove_tree_root): Likewise.
13000 (ggc_add_string_root): Likewise.
13001 (ggc_add_tree_varray_root): Likewise.
13002 (ggc_add_tree_hash_table_root): Likewise.
13003 (ggc_del_root): Likewise.
13004 (ggc_mark_rtx_ptr): Likewise.
13005 (ggc_mark_tree_ptr): Likewise.
13006 (ggc_mark_string_ptr): Likewise.
13007 (ggc_mark_tree_varray_ptr): Likewise.
13008 (ggc_mark_tree_hash_table_ptr): Likewise.
13009 * ggc-common.c: New file.
13010 * Makefile.in (OBJS): Add ggc-common.o.
13011 (ggc-common.o): List dependencies.
13012
13013 1999-09-10 22:37 -0700 Zack Weinberg <zack@bitmover.com>
13014
13015 * cppalloc.c (xstrdup): Use memcpy.
13016 * cpperror.c (cpp_print_containing_files): Don't use
13017 cpp_notice.
13018 * cpplib.c (conditional_skip): Set temp->lineno.
13019 (do_endif): Make error message less obscure.
13020 (if_directive_name): New function.
13021 (cpp_get_token [case EOF]): Unwind the if stack and generate
13022 error messages for each unterminated conditional in this file.
13023 (parse_string): Do not behave differently if -traditional.
13024
13025 Fri Sep 10 14:04:07 1999 Richard Henderson <rth@cygnus.com>
13026
13027 * builtins.c (expand_builtin_va_arg): Cope with an array-type
13028 va_list decomposing to pointer-type.
13029 * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
13030 (rs6000_va_arg): Likewise.
13031
13032 Fri Sep 10 13:21:21 1999 Jim Wilson <wilson@cygnus.com>
13033
13034 * except.c (start_dynamic_handler): Compute size using
13035 STACK_SAVEAREA_MODE.
13036
13037 Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13038
13039 * protoize.c: Remove various __STDC__ and POSIX hacks. Don't
13040 include directory headers. Don't define strrchr. Don't provide
13041 my_* replacement functions. Prefer PTR over `pointer_type'.
13042 Don't prototype system functions. Don't redefine getopt.
13043
13044 (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
13045 safe_read, safe_write, save_pointers, restore_pointers,
13046 is_id_char, in_system_include_dir, directory_specified_p,
13047 file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
13048 find_corresponding_lparen, referenced_file_is_newer,
13049 save_def_or_dec, munge_compile_params, gen_aux_info_file,
13050 process_aux_info_file, identify_lineno, check_source,
13051 seek_to_line, forward_to_next_token_char, output_bytes,
13052 output_string, output_up_to, other_variable_style_function,
13053 find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
13054 do_processing, is_syscalls_file, rename_c_file, find_extern_def,
13055 find_static_definition, connect_defs_and_decs, add_local_decl,
13056 add_global_decls, needs_to_be_converted, visit_each_hash_node,
13057 add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
13058 edit_fn_declaration, edit_formals_lists, edit_fn_definition,
13059 scan_for_missed_items, edit_file, string_list_cons): Add static
13060 prototypes.
13061 (standard_exec_prefix, target_machine, target_version,
13062 default_syscalls_dir, string_list, string_list_cons, find_file,
13063 do_cleaning): Constify a char*.
13064 (safe_read, safe_write): Use PTR, not a char*.
13065 (is_id_char): Take an int, not a char.
13066 (main): Add prototype. Call return, not exit.
13067
13068 Fri Sep 10 16:48:26 1999 Andrew Haley <aph@cygnus.com>
13069
13070 * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
13071 when comparing types.
13072
13073 Fri Sep 10 08:43:32 1999 Richard Henderson <rth@cygnus.com>
13074
13075 * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
13076 (strength_reduce): Release the varrays from the no-bivs early exit.
13077
13078 * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
13079 the loop over the registers.
13080
13081 * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
13082 for a new obstack.
13083 (restore_tree_status): Check that instead when freeing the obstack.
13084
13085 Wed Sep 8 16:12:04 1999 Andrew Haley <aph@cygnus.com>
13086
13087 * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
13088 as pointers.
13089
13090 Fri Sep 10 11:58:55 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13091
13092 * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall. Fix some
13093 operand size modifiers.
13094
13095 Fri Sep 10 10:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13096
13097 * c-common.c (c_common_nodes_and_builtins): Don't build
13098 va_list_type_node.
13099 * c-common.h (enum c_tree_index and related accesor macros): Remove
13100 everything now declared in tree.h.
13101 * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
13102 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
13103 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
13104 (error_mark_node, void_type_node, char_type_node, integer_type_node,
13105 unsigned_type_node, ptr_type_node, va_list_type_node,
13106 integer_zero_node, null_pointer_node, integer_one_node): Delete.
13107 (init_decl_processing): Call build_common_tree_nodes and
13108 build_common_tree_nodes_2 instead of building their nodes here.
13109 Don't add roots for these nodes.
13110 * stor-layout.c (size_zero_node, size_one_node): Delete.
13111 (set_sizetype): Make a new node for bitsizetype each time.
13112 * tree.c (global_trees): New variable.
13113 (init_obstacks): Add a gc root for it.
13114 (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
13115 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
13116 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
13117 (build_common_tree_nodes): New function.
13118 (fix_sizetype): New function.
13119 (build_common_tree_nodes_2): New function.
13120 * tree.h (enum tree_index): New.
13121 (global_trees): Declare.
13122 Add accessor macros for all nodes now moved to global_trees.
13123 Delete their declarations.
13124
13125 Thu Sep 9 20:15:46 1999 Richard Henderson <rth@cygnus.com>
13126
13127 * c-decl.c (finish_function): When processing a nested function,
13128 push and pop GC context around rest_of_compilation.
13129
13130 Thu Sep 9 16:42:06 1999 Richard Henderson <rth@cygnus.com>
13131
13132 * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
13133 Default ix86_arch to PROCESSOR_I386.
13134 * i386.h (CC1_CPU_SPEC): Don't add -march=foo. Remove -mno-foo.
13135 (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
13136 (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
13137 (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
13138 __tune_foo__ if no -mcpu. Make -mcpu=bar define __tune_bar__.
13139 (EXTRA_SPECS): Remove deleted specs.
13140
13141 Thu Sep 9 16:03:06 1999 Richard Henderson <rth@cygnus.com>
13142
13143 * function.c (assign_stack_local_1): Allocate from
13144 function->x_frame_offset, not frame_offset.
13145
13146 Thu Sep 9 14:36:31 1999 Mark Mitchell <mark@codesourcery.com>
13147
13148 * ggc.h (lang_cleanup_tree): Remove.
13149 * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
13150 * ggc-callbacks.c (lang_cleanup_tree): Remove.
13151
13152 * c-decl.c (finish_struct): Use ggc_alloc to allocate
13153 TYPE_LANG_SPECIFIC when garbage collecting.
13154 (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
13155 (lang_cleanup_tree): Remove.
13156
13157 Thu Sep 9 14:23:02 1999 Jason Merrill <jason@yorick.cygnus.com>
13158
13159 * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
13160 * crtstuff.c: Not here.
13161 * dwarf2out.c: Or here.
13162 * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
13163 info.
13164
13165 Thu Sep 9 09:40:58 1999 Mark Mitchell <mark@codesourcery.com>
13166
13167 * function.h (free_after_compilation): Remove decl parameter.
13168 (free_varasm_status0: Likewise.
13169 (free_emit_status): Likewise.
13170 (free_stmt_status): Likewise.
13171 (free_after_compilation): Likewise.
13172 (init_lang_status): New variable.
13173 (free_lang_status): Likewise.
13174 * emit-rtl.c (free_emit_status): Make decl parameter implicit.
13175 * function.c (init_lang_status): New variable.
13176 (free_lang_status): Likewise.
13177 (push_function_context_to): Don't set function::decl here.
13178 (free_after_copmilation): Make decl parameter implicit. Call
13179 free_lang_status if defined.
13180 (prepare_function_start): Call init_lang_status if defined.
13181 (init_function_start): Set function::decl here.
13182 * profile.c (output_func_start_profiler): Don't call pushdecl
13183 until we've actually started the function.
13184 * stmt.c (free_stmt_status): Make decl parameter implicit.
13185 * toplev.c (rest_of_compilation): Don't pass decl to
13186 free_after_compilation.
13187 * varasm.c (free_varasm_status): Likewise.
13188
13189 Thu Sep 9 17:23:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13190
13191 * except.c (call_get_eh_context): Add root when allocating static
13192 tree variable.
13193
13194 Thu Sep 9 15:24:59 BST 1999 Richard Earnshaw <rearnsha@arm.com>
13195
13196 * arm.c: Include "ggc.h".
13197 (arm_add_gc_roots): New function.
13198 (arm_override_options): Call it.
13199 (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
13200
13201 * arm.md (define_asm_attributes): Add a pool_range attribute.
13202
13203 Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell <nathan@acm.org>
13204
13205 * extend.texi (Volatiles): New node.
13206
13207 Thu Sep 9 03:37:31 1999 Richard Henderson <rth@cygnus.com>
13208
13209 * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
13210 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
13211 (struct ggc_any): Replace `mark' with `magic_mark'.
13212 (ggc_alloc_string): Use memcpy, not bcopy.
13213 (ggc_alloc_any): Set magic_mark. Update bytes_alloced_since_gc.
13214 (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
13215 (ggc_free_any): New.
13216 (ggc_mark_string): Use IGNORE_MARK. Calc back to struct gcc_string.
13217 (ggc_mark): Use IGNORE_MARK. Abort if magic doesn't match.
13218 (ggc_collect): Re-enable collection avoidance. Use GGC_ANY_MARK.
13219 Use IS_MARKED. Use ggc_free_any.
13220
13221 1999-09-09 Scott Bambrough <scottb@netwinder.org>
13222
13223 * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
13224
13225 Thu Sep 9 01:55:21 1999 Richard Henderson <rth@cygnus.com>
13226
13227 * toplev.c (main): Always init_ggc.
13228
13229 Wed Sep 8 23:53:22 1999 Richard Henderson <rth@cygnus.com>
13230
13231 * except.c (find_all_handler_type_matches): Free the list if
13232 we found no matches.
13233
13234 * combine.c (SUBST): Break out to a real function do_SUBST.
13235 (SUBST_INT): Likewise.
13236 * gcse.c (free_pre_mem): Free `temp_bitmap'.
13237 (pre_insert): Free `inserted'.
13238 * loop.c (basic_induction_var): Always set `location'.
13239
13240 * function.c (expand_function_end): Add initial_trampoline as a root.
13241 * rtl.h (init_varasm_once): Declare.
13242 * toplev.c (compile_file): Call it.
13243 * ggc-simple.c (ggc_mark_string_ptr): New.
13244 (ggc_add_string_root): New.
13245 (ggc_collect): Disable collection avoidance temporarily.
13246 * ggc.h (ggc_add_string_root): Declare.
13247 * except.c (create_rethrow_ref): Use ggc_alloc_string.
13248 * optabs.c (init_libfuncs): Likewise.
13249 * varasm.c (named_section): Use ggc_alloc_string.
13250 (make_function_rtl): Likewise.
13251 (make_decl_rtl): Likewise.
13252 (assemble_static_space): Likewise.
13253 (assemble_trampoline_template): Likewise.
13254 (output_constant_def): Likewise.
13255 (force_const_mem): Likewise.
13256 (mark_const_hash_entry): New.
13257 (mark_pool_sym_hash_table): New.
13258 (mark_varasm_state): Use it.
13259 (init_varasm_once): New.
13260
13261 * expr.h (init_one_libfunc): Declare.
13262 * optabs.c (init_one_libfunc): New.
13263 (init_optabs): Use it.
13264 * config/gofast.h: Likewise.
13265 * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
13266 * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
13267
13268 Thu Sep 9 13:46:06 1999 Geoffrey Keating <geoffk@cygnus.com>
13269
13270 * Makefile.in (cppexp.o): Depend on cpphash.h.
13271 * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
13272 Include cpphash.h.
13273 * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
13274 * cpplib.c (do_define): Generalise to handle poisoned definitions,
13275 redefining poisoned identifiers, etc.
13276 (do_undef): Don't allow poisoned identifiers to be undefined.
13277 (do_pragma): Add #pragma poison.
13278 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
13279
13280 * cccp.c: Add T_POISON node type.
13281 (special_symbol): Handle `defined(xxx)' and plain `xxx' for
13282 poisoned xxx.
13283 (do_define): Generalise to handle poisoned definitions,
13284 redefining poisoned identifiers, etc.
13285 (do_undef): Don't allow poisoned identifiers to be undefined.
13286 (do_pragma): Add #pragma poison.
13287 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
13288
13289 * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
13290 * c-pragma.h: Add ps_poison state. We now always have generic
13291 pragmas.
13292
13293 Wed Sep 8 20:30:42 1999 Mark Mitchell <mark@codesourcery.com>
13294
13295 * ggc.h (ggc_alloc): New function.
13296 (ggc_mark): Likewise.
13297 * ggc-simple.c (ggc_any): New structure.
13298 (ggc_status): Add anys.
13299 (n_anys_collected): New variable.
13300 (ggc_alloc): Define.
13301 (ggc_mark): Likewise.
13302 (ggc_collect): Collect the anys.
13303
13304 Wed Sep 8 20:15:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13305
13306 * c-decl.c (mark_binding_level): Make static to match prototype.
13307
13308 Wed Sep 8 16:41:27 1999 Richard Henderson <rth@cygnus.com>
13309
13310 * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
13311
13312 Wed Sep 8 16:07:52 1999 Richard Henderson <rth@cygnus.com>
13313
13314 * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
13315 will use into account. Expand the max width to 5.
13316 * rtl.c: Likewise.
13317
13318 Wed Sep 8 16:01:14 1999 Richard Henderson <rth@cygnus.com>
13319
13320 * ggc-simple.c (ggc_free_rtx): Poison the correct amount
13321 for the rtx length.
13322
13323 Wed Sep 8 15:23:54 1999 Richard Henderson <rth@cygnus.com>
13324
13325 * alpha.md (call value patterns): Remove the result predicates.
13326
13327 Wed Sep 8 13:35:38 1999 Richard Henderson <rth@cygnus.com>
13328
13329 * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
13330 last change.
13331
13332 Wed Sep 8 15:32:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13333
13334 * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
13335 changed from extern char *, to extern PTR. Also fix typo in
13336 NEED_DECLARATION_REALLOC test.
13337
13338 * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
13339
13340 Wed Sep 8 11:40:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13341
13342 * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
13343 ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
13344 ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
13345 ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
13346
13347 * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
13348
13349 * cccp.c (pcfinclude): Likewise.
13350
13351 * global.c (allocno_compare): Likewise.
13352
13353 * haifa-sched.c (rank_for_schedule): Likewise.
13354
13355 * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
13356
13357 * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
13358
13359 * stupid.c (stupid_reg_compare): Likewise.
13360
13361 * tree.c (_obstack_allocated_p): Likewise.
13362
13363 * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
13364
13365 1999-09-08 Bruce Korb autogen@linuxbox.com
13366
13367 * Makefile.in: Give the hapless gperf user a hint about
13368 why "gperf -F" fails.
13369
13370 Wed Sep 8 04:43:22 1999 Richard Henderson <rth@cygnus.com>
13371
13372 * lists.c: Include ggc.h.
13373 (zap_lists): New.
13374 (init_EXPR_INSN_LIST_cache): Install it.
13375
13376 * ggc-simple.c (init_ggc): Absorb the old init.
13377 (ggc_push_context): Use xcalloc.
13378 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
13379 (ggc_collect): Add [rvts] tags to the collection stats.
13380
13381 Wed Sep 8 11:14:25 1999 Andreas Schwab <schwab@suse.de>
13382
13383 * cccp.c (main): Fix handling of -include and -imacros options.
13384
13385 Wed Sep 8 02:23:08 1999 Jeffrey A Law (law@cygnus.com)
13386
13387 * cpplib.c (cpp_push_buffer): Fix order of arguments.
13388
13389 Wed Sep 8 04:44:09 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
13390
13391 * rtl.h (obstack_alloc_rtx): Removed, it's now static in
13392 genrtl.c.
13393
13394 Wed Sep 8 00:33:43 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
13395
13396 * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
13397 * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
13398 and SET_DEST. Update comment.
13399
13400 Wed Sep 8 18:55:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13401
13402 * config/c4x/c4x.c: Include ggc.h.
13403 (c4x_add_gc_roots): New function.
13404 (c4x_override_options): Call c4x_add_gc_roots.
13405
13406 Wed Sep 8 00:00:16 1999 Richard Henderson <rth@cygnus.com>
13407
13408 * defaults.h (TARGET_ESC): Move ...
13409 * system.h: ... here, where Linas had it in the first place. Silly me.
13410
13411 Tue Sep 7 23:46:35 1999 Linas Vepstas <linas@linas.org>
13412
13413 * c-common.c: Use ISGRAPH, ISLOWER, toupper.
13414 * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
13415 genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
13416 * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
13417 * defaults.h (TARGET_ESC): Add default.
13418
13419 Tue Sep 7 23:36:59 1999 Linas Vepstas <linas@linas.org>
13420
13421 * configure.in: add i370-*-openedition, i370-*-mvs and
13422 i370-*-linux targets
13423
13424 Tue Sep 7 23:31:53 1999 Mark Mitchell <mark@codesourcery.com>
13425
13426 * dsp16xxx.c: Include ggc.h
13427 (override_options): Mark GC roots.
13428 * mn10200.c: Include ggc.h.
13429 (asm_file_start): Mark GC roots.
13430 * tahoe.c: Include ggc.h.
13431 (extensible_operand): Mark GC roots.
13432
13433 Tue Sep 7 23:23:15 1999 Linas Vepstas <linas@linas.org>
13434
13435 * README: Add section discussing status of ELF ABI.
13436 * i370.c: Fix misc spelling mistakes.
13437 (i370_label_scan): Updated notes, exception handling.
13438 (i370_function_prolog): Simplify ELF stack handling.
13439 * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
13440 (STACK_GROWS_DOWNWARD): ELF stack grows down.
13441 (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
13442 * i370.md: (movdi): Add notes.
13443 (floatsidf2): Use stack not rtca for scratch float area.
13444 (iorsi3): Correct operand constraints.
13445 * x-oe: Restore TAROUTOPTS which are used by pax.
13446
13447 Tue Sep 7 22:39:18 1999 Mark Mitchell <mark@codesourcery.com>
13448
13449 * rs6000.c: Include ggc.h.
13450 (rs6000_add_gc_roots): New function.
13451 (override_options): Call it.
13452
13453 Tue Sep 7 22:09:03 1999 Richard Henderson <rth@cygnus.com>
13454
13455 * alpha.h (alpha_compare): New.
13456 (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
13457 * alpha.c: Likewise for the definitions.
13458 (alpha_emit_conditional_branch): Update for alpha_compare.
13459 (alpha_emit_conditional_move): Likewise.
13460 * alpha.md (cmpdf, cmpdi): Likewise.
13461 (setcc patterns): Likewise. Zero alpha_compare after use.
13462 (sne): Optimize (x != 0) into (0U < x).
13463
13464 Tue Sep 7 21:55:02 1999 Richard Henderson <rth@cygnus.com>
13465
13466 * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
13467 (struct machine_function): Declare; add eh_epilogue_sp_ofs.
13468 (INIT_EXPANDERS): Remove.
13469 * alpha.c: Include ggc.h.
13470 (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
13471 (alpha_init_machine_status, alpha_mark_machine_status): New.
13472 (override_options): Install them.
13473 (struct machine_function): Moved to alpha.h.
13474 (alpha_save_machine_status, alpha_restore_machine_status): Remove.
13475 (alpha_init_expanders): Remove.
13476 (alpha_return_addr): Adjust to use current_function->machine.
13477 (alpha_ra_ever_killed): Likewise.
13478 (alpha_expand_epilogue): Likewise.
13479 * alpha.md (eh_epilogue): Likewise.
13480
13481 Wed Sep 8 14:34:42 1999 Ian Piumarta <piumarta@prof.inria.fr>
13482 Melissa O'Neill <oneill@cs.sfu.ca>
13483 Geoffrey Keating <geoffk@cygnus.com>
13484
13485 * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
13486 call-used registers (call-saved registers must still be contiguous
13487 and end with r31, of course).
13488
13489 Tue Sep 7 21:41:38 1999 Richard Henderson <rth@cygnus.com>
13490
13491 * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
13492 (self_promoting_type_p): Delete.
13493 (self_promoting_args_p): Move ...
13494 * c-common.c: ... here.
13495 (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
13496 (simple_type_promotes_to): New.
13497 * builtins.c (lang_type_promotes_to): New.
13498 (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
13499 * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
13500 * c-common.h: ... here.
13501 (self_promoting_args_p, simple_type_promotes_to): Declare.
13502 * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
13503 (grokdeclarator): Likewise.
13504 * tree.h (lang_type_promotes_to): Declare.
13505
13506 Tue Sep 7 17:15:21 1999 Mark Mitchell <mark@codesourcery.com>
13507
13508 Add some machine-dependent GC roots.
13509 * sparc.c: Include ggc.h.
13510 (sparc_add_gc_roots): New function.
13511 (mark_ultrasparc_pipeline_state): Likewise.
13512 (override_options): Call sparc_add_gc_roots.
13513 * pa.c: Include ggc.h.
13514 (pa_add_gc_roots): New function.
13515 (mark_deferred_plabels): Likewise.
13516 (override_options): Call pa_add_gc_roots.
13517 * mips.c: Include ggc.h.
13518 (mips_add_gc_roots): New function.
13519 (override_options): Use it.
13520
13521 Tue Sep 7 11:39:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13522
13523 * cpperror.c (cpp_file_line_for_message): Constify a char*.
13524
13525 * cppexp.c (parse_number, parse_charconst, cpp_lex,
13526 cpp_parse_expr): Add static prototypes.
13527 (parse_charconst): Don't cast away const-ness.
13528 (token): Constify a char*.
13529
13530 * cppfiles.c (file_name_list, include_hash, find_include_file,
13531 finclude, initialize_input_buffer): Constify a char*.
13532 (file_cleanup, find_position): Add static prototypes.
13533
13534 * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
13535 collect_expansion): Add static prototypes.
13536 (cpp_install, create_definition, monthnames): Constify a char*.
13537
13538 * cpphash.h (cpp_install): Likewise.
13539
13540 * cppinit.c (known_suffixes, default_include,
13541 dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
13542 (base_name, dump_special_to_buffer, initialize_dependency_output):
13543 Add static prototypes.
13544
13545 * cpplib.c (my_strerror): Constify a char*.
13546 (null_underflow, null_cleanup, skip_comment, copy_comment,
13547 copy_rest_of_line, handle_directive, pass_thru_directive,
13548 get_directive_token, read_line_number, cpp_print_file_and_line,
13549 v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
13550 v_cpp_warning_with_line, detect_if_not_defined,
13551 consider_directive_while_skipping): Add static prototypes.
13552 (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
13553 cpp_pedwarn_with_file_and_line): Constify a char*.
13554
13555 * cpplib.h (cpp_options, include_hash, progname, definition,
13556 cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
13557 check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
13558 find_include_file, deps_output, include_hash): Constify a char*.
13559
13560 * cppmain.c (progname): Constify.
13561 (main): Add prototype. Use return, not exit.
13562
13563 * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
13564 recognized_macro, check_macro_names, read_scan_file, write_rbrac,
13565 inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
13566 check_protection): Add static prototype.
13567 (xfree): Remove.
13568 (progname, recognized_macrom, recognized_extern): Constify a char*.
13569 (main): Add prototype.
13570
13571 * gen-protos.c (progname): Constify a char*.
13572
13573 Tue Sep 7 00:47:52 1999 Mark Mitchell <mark@codesourcery.com>
13574
13575 * emit-rtl.c (free_emit_status): Take decl as a parameter.
13576 (init_emit_once): Add more GC roots.
13577 * except.c (mark_func_eh_entry): New function.
13578 (mark_eh_node): Mark false_label and rethrow_label.
13579 (init_eh): Add more GC roots.
13580 * function.c (free_after_compilation): Take decl as a paramter.
13581 Call free_stmt_status.
13582 (mark_function_state): Don't assume x_parm_reg_stack_loc is
13583 non-NULL.
13584 * function.h (free_after_compilation): Change prototype.
13585 (free_varasm_status): Likewise.
13586 (free_emit_status): Likewise.
13587 (free_stmt_status): New function.
13588 * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
13589 Remove, replacing with ...
13590 (ggc_status): New structure.
13591 (ggc_chain): New variable.
13592 (init_gcc): Define.
13593 (ggc_push_context): New function.
13594 (ggc_pop_context): Likewise.
13595 (ggc_alloc_rtx): Adjust for use of ggc_chain.
13596 (ggc_alloc_rtvec): Likewise.
13597 (ggc_alloc_tree): Likewise.
13598 (ggc_alloc_string): Likewise.
13599 (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
13600 (ggc_mark_tree): Give language-dependent code a chance to mark
13601 `x' nodes.
13602 (ggc_mark_tree_varray): Handle empty arrays.
13603 (ggc_collect): Adjust for use of ggc_chain. Clear
13604 bytes_alloced_since_last_gc.
13605 * ggc.h (ggc_pop_context): New function.
13606 (ggc_push_context): Likewise.
13607 * print-tree.c (print_node): Don't print obstacks when GC'ing.
13608 * stmt.c (free_stmt_status): New function.
13609 (init_stmt_for_function): Clear last_expr_value.
13610 * toplev.c (rest_of_compilation): Always call free_after_compilation.
13611 Conditionalize call to ggc_collect.
13612 (main): Call init_ggc.
13613 * tree.c (push_obstacks): Do the push, even when GC'ing.
13614 (push_obstacks_nochange): Likewise.
13615 (pop_obstacks): Liekwise.
13616 * varasm.c (free_varasm_status): Take decl as a parameter.
13617
13618 Tue Sep 7 08:15:49 1999 Gavin Romig-Koch <gavin@cygnus.com>
13619
13620 * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
13621 (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
13622 * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
13623 * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
13624
13625 Tue Sep 7 03:42:45 1999 Mark Klein (mklein@dis.com)
13626
13627 * pa/x-pa-mpeix: New file for the MPE port.
13628
13629 * pa/quadlib.asm: New file for long double support.
13630
13631 * configure.in: Add hppa1.0-*-mpeix for MPE port.
13632 * configure: Rebuilt.
13633
13634 Tue Sep 7 10:08:40 1999 Andreas Schwab <schwab@suse.de>
13635
13636 * final.c (shorten_branches): Fix last change.
13637
13638 Tue Sep 7 00:30:32 1999 Jeffrey A Law (law@cygnus.com)
13639
13640 * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
13641
13642 Mon Sep 6 22:44:47 1999 Jeffrey A Law (law@cygnus.com)
13643
13644 * Merge from gcc2 snapshot Jan 9, 1999. See FSFChangeLog for
13645 details.
13646
13647 Mon Sep 6 22:31:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13648
13649 * c-aux-info.c (concat): Don't define.
13650
13651 * cccp.c (my_strerror): Likewise. All callers changed to use
13652 xstrerror instead.
13653 (do_include): Call xstrdup, not xmalloc/strcpy.
13654 (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
13655 (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
13656
13657 * collect2.c (my_strsignal): Likewise. All callers changed to use
13658 strsignal instead.
13659 (locatelib): Call xstrdup, not xmalloc/strcpy.
13660
13661 * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
13662
13663 * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
13664
13665 * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
13666
13667 * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
13668
13669 * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
13670
13671 * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
13672
13673 * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
13674 malloc/realloc.
13675 (find_all_handler_type_matches): Likewise. Don't check return
13676 value.
13677 (get_new_handler, init_insn_eh_region, process_nestinfo): Call
13678 xmalloc, not malloc.
13679 (init_eh_nesting_info): Likewise. Call xcalloc, not xmalloc/bzero.
13680
13681 * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
13682 (init_spec): Call xcalloc, not xmalloc/bzero.
13683 (set_spec): Call xstrdup, not save_string.
13684 (record_temp_file): Call xstrdup, not xmalloc/strcpy.
13685 (find_a_file): Call xstrdup, not xmalloc/strcpy.
13686 (process_command): Call xstrdup, not save_string.
13687 (main): Call xcalloc, not xmalloc/bzero.
13688
13689 * gcov.c (xmalloc): Don't define.
13690 (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
13691 (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
13692 (output_data): Call xcalloc, not xmalloc/bzero.
13693
13694 * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
13695
13696 * mips-tdump.c (xmalloc): Don't define.
13697 (print_symbol): Call xmalloc, not malloc.
13698 (read_tfile): Call xcalloc, not calloc.
13699
13700 * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
13701 Don't define. All callers of xfree/my_strsignal changed to use
13702 free/strsignal instead.
13703 (allocate_cluster): Call xcalloc, not calloc.
13704
13705 * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
13706 Fix memory leak, free allocated memory.
13707
13708 * prefix.c (translate_name): Call xstrdup, not save_string.
13709 (update_path): Likewise.
13710
13711 * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
13712
13713 * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
13714 Don't define. Callers of xfree/savestring2 changed to use
13715 free/concat instead.
13716
13717 * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
13718 (init_elim_table): Likewise.
13719
13720 * resource.c (init_resource_info): Likewise.
13721
13722 * stupid.c (stupid_life_analysis): Likewise.
13723
13724 * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
13725 (open_dump_file): Call concat, not xmalloc/strcpy/...
13726 (clean_dump_file): Likewise.
13727 (compile_file): Call xstrdup, not xmalloc/strcpy.
13728
13729 Mon Sep 6 15:04:55 1999 Richard Henderson <rth@cygnus.com>
13730
13731 * v850.h (EXPAND_BUILTIN_VA_ARG): New.
13732 * v850.c (v850_va_arg): New.
13733
13734 Tue Sep 7 09:36:01 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13735
13736 * haifa-sched.c: Tidy comments.
13737
13738 Mon Sep 6 14:30:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13739
13740 * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
13741 (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
13742 $(out_object_file)): Depend on ggc.h.
13743 * c-common.c: Include "ggc.h".
13744 (combine_strings): If doing GC, use ggc_alloc_string.
13745 * c-decl.c: Include "ggc.h".
13746 (ggc_p): Define with value 0.
13747 (mark_binding_level): New function.
13748 (init_decl_processing): Add GC roots.
13749 (mark_c_function_context): New function.
13750 (lang_mark_false_label_stack): New function.
13751 (lang_mark_tree): New function.
13752 (lang_cleanup_tree): New function.
13753 * c-lang.c: Include "ggc.h".
13754 (lang_init): Call c_parse_init.
13755 * c-lex.c: Include "ggc.h".
13756 (check_linenum): If doing GC, don't copy filenames to permanent
13757 obstack.
13758 * c-parse.in: Include "ggc.h".
13759 (c_parse_init): New function.
13760 * c-tree.h (c_parse_init, mark_c_function_context): Declare.
13761 * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
13762
13763 * except.c (mark_eh_state): Mark more state.
13764 * function.c (mark_function_state): Likewise.
13765 * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
13766 (ggc_alloc_string) [GGC_DUMP]: Fix typo.
13767 * toplev.c (mark_file_stack): New function.
13768 (compile_file): If doing GC, use ggc_alloc_string on input filename.
13769 (main): Add root for input_file_stack.
13770
13771 * i386.c: Include "ggc.h".
13772 (ix86_mark_machine_status): New function.
13773 (override_options): Set mark_machine_status.
13774
13775 Mon Sep 6 15:26:23 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13776
13777 * tree.c (copy_node): Copy node contents also if doing GC.
13778
13779 Mon Sep 6 08:42:06 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
13780
13781 * collect2.c (scan_libraries): Fix double-thinko :-).
13782
13783 Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com)
13784
13785 * collect2.c (scan_libraries): Fix thinko.
13786
13787 * cse.c (delete_trivially_dead_insns): Do not skip the last
13788 insn if it is a real insn.
13789
13790 Sun Sep 5 18:57:42 1999 Mark Mitchell <mark@codesourcery.com>
13791
13792 * Makefile.in (ggc-simple.o): Depend on hash.h.
13793 * ggc.h (ggc_add_tree_hash_table_root): Declare.
13794 (ggc_mark_tree_varray): Likewise.
13795 (ggc_mark_tree_hash_table): Likewise.
13796 * ggc-simple.c: Include hash.h.
13797 (ggc_mark_tree_hash_table_ptr): New function.
13798 (ggc_mark_tree_hash_table_entry): Likewise.
13799 (ggc_mark_tree_hash_table): Likewise.
13800 (ggc_add_tree_hash_table_root): Likewise.
13801 * varray.h (const_equiv_data): Use struct rtx_def *, rather than
13802 rtx, when defining fields.
13803
13804 Sun Sep 5 18:57:42 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
13805
13806 * profile.c (output_func_start_profiler): Remove apparently
13807 nonsensical call to start_sequence.
13808
13809 Sun Sep 5 17:34:33 1999 Richard Henderson <rth@cygnus.com>
13810
13811 * clipper/clipper.c (clipper_va_start): Fix typos.
13812
13813 * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
13814 * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
13815 (spur_va_arg): New stub.
13816
13817 * configure.in: Comment out pyramid.
13818
13819 Sun Sep 5 19:11:01 1999 Michael Meissner <meissner@cygnus.com>
13820
13821 * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
13822 don't conflict with the bits that win32, cygwin, and dgux
13823 defines.
13824
13825 Sun Sep 5 09:31:56 1999 Richard Henderson <rth@cygnus.com>
13826 Bernd Schmidt <bernds@cygnus.co.uk>
13827
13828 * integrate.c (function_cannot_inline_p): Do not inline
13829 functions with forced labels.
13830
13831 Sun Sep 5 00:35:17 1999 Richard Henderson <rth@cygnus.com>
13832 Bernd Schmidt <bernds@cygnus.co.uk>
13833 Mark Mitchell <mark@codesourcery.com>
13834
13835 * Makefile.in (ggc-simple.o): Depend on varray.h.
13836 (rtl.o): Depend on ggc.h.
13837 (genattrtab.o): Depend on ggc.h.
13838 (print-tree.o): Likewise.
13839 (fold-const.o): Likewise.
13840 * emit-rtl.c (sequence_element_free_list): Remove, and all references.
13841 (make_insn_raw): Don't cache insns when GC'ing.
13842 (emit_insn_before): Likewise.
13843 (emit_insn_after): Likewise.
13844 (emit_insn): Likewise.
13845 (start_sequence): Use xmalloc to allocate the sequence_stack.
13846 (end_sequence): Add free to free it.
13847 (gen_sequence): Don't cache insns when GC'ing.
13848 (clear_emit_caches): Don't use sequence_element_free_list.
13849 (init_emit): Use xcalloc, not xmalloc+bzero.
13850 * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
13851 * function.c (pop_function_context_from): Use free to free the
13852 fixup_var_refs_queue.
13853 (put_reg_into_stack): Allocate it with xmalloc.
13854 * genattrtab.c: Include ggc.h.
13855 (operate_exp): Don't use obstack_free when GC'ing.
13856 (simplify_cond): Likewise.
13857 (simplify_text_exp): Likewise.
13858 (optimize_attrs): Likewise.
13859 * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
13860 GC'ing.
13861 (gencode): Generate a #include for ggc.h.
13862 * ggc-callbacks.c (ggc_p): Define it to zero.
13863 * ggc-none.c (ggc_p): Likewise.
13864 * ggc-simple.c: Include varray.h.
13865 (ggc_mark_tree_varray): New function.
13866 (ggc_add_tree_varray_root): Likewise.
13867 (ggc_mark_tree_varray_ptr): Likewise.
13868 * ggc.h (ggc_p): Declare.
13869 (varray_head_tag): Likewise.
13870 (ggc_add_tree_varray_root): Declare.
13871 * print-tree.c (print_node): Don't check for TREE_PERMANENT
13872 inconsistencies when GC'ing.
13873 * rtl.c: Include ggc.h.
13874 (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
13875 (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
13876 (rtx_free): Don't call obstack_free when GC'ing.
13877 * toplev.c (rest_of_compilation): Call ggc_collect after every
13878 pass, if GC'ing.
13879 * tree.c (push_obstacks): Do nothing, if GC'ing.
13880 (pop_obstacks_nochange): Likewise.
13881 (pop_obstacks): Likewise.
13882 (make_node): Use ggc_alloc_tree when GC'ing.
13883 (copy_node): Likewise.
13884 (get_identifier): Use ggc_alloc_string when GC'ing.
13885 (build_string): Likewise.
13886 (make_tree_vec): Use ggc_alloc_tree when GC'ing.
13887 (tree_cons): Likewise.
13888 (build1): Likewise.
13889 (type_hash_canon): Don't call obstack_free when GC'ing.
13890
13891 Sat Sep 4 21:52:32 1999 Richard Henderson <rth@cygnus.com>
13892
13893 * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
13894 of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
13895
13896 Sat Sep 4 20:40:19 1999 Richard Henderson <rth@cygnus.com>
13897 Bernd Schmidt <bernds@cygnus.co.uk>
13898 Mark Mitchell <mark@codesourcery.com>
13899
13900 * Makefile.in (stor-layout.o): Depend on ggc.h.
13901 (expr.o): Depend on ggc.h.
13902 (profile.o): Depend on ggc.h.
13903 (stor-layout.o): Depend on ggc.h.
13904 * emit-rtl.c (init_emit_once): Add gc roots.
13905 * expr.c: Include ggc.h.
13906 (emit_block_move): Add gc roots.
13907 (clear_storage): Likewise.
13908 * expr.h (init_stor_layout_once): New function.
13909 * profile.c: Include ggc.h.
13910 (init_arc_profiler): profiler_label is a root.
13911 * scan.c (make_sstring_space): Trust xrealloc to function
13912 correctly with first parameter NULL.
13913 * stor-layout.c: Include ggc.h.
13914 (set_sizetype): Add gc root.
13915 (init_stor_layout_once): New function.
13916 * toplev.c (compile_file): Call it.
13917
13918 Sat Sep 4 19:26:25 1999 Richard Henderson <rth@cygnus.com>
13919 Bernd Schmidt <bernds@cygnus.co.uk>
13920 Mark Mitchell <mark@codesourcery.com>
13921
13922 * Makefile.in (tree.o): Depend on ggc.h.
13923 (varasm.o): Likewise.
13924 (function.o): Likewise.
13925 (stmt.o): Likewise.
13926 (except.o): Likewise.
13927 (optabs.o): Likewise.
13928 (emit-rtl.o): Likewise.
13929 * emit-rtl.c: Include ggc.h.
13930 (sequence_element_free_list): Remove, and all references.
13931 (mark_sequence): New functions.
13932 (mark_emit_state): New function.
13933 * except.c: Include ggc.h.
13934 (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
13935 (mark_tree_label_node): New functions.
13936 (mark_eh_state): New function.
13937 * function.c: Include ggc.h.
13938 (mark_temp_slot, mark_function_chain): New functions.
13939 (mark_function_state): New function.
13940 (init_function_once): New function.
13941 * function.h (init_function_once): New function.
13942 * ggc-callbacks.c (lang_mark_false_label_stack): New function.
13943 * ggc.h (label_node): Declare.
13944 (eh_status, emit_status, stmt_status, varasm_status): Likewise.
13945 (lang_mark_false_label_stack): New function.
13946 (mark_temp_slot): Remove declaration.
13947 (mark_function_chain): Likewise.
13948 (mark_eh_state): Adjust prototype.
13949 (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
13950 Likewise.
13951 * optabs.c: Include ggc.h.
13952 (mark_optab): New function.
13953 (init_optabs): Add gc roots.
13954 * stmt.c: Include ggc.h.
13955 (mark_cond_nesting, mark_loop_nesting): New functions.
13956 (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
13957 (mark_stmt_state): New function.
13958 * toplev.c (compile_file): Call init_function_once.
13959 * tree.c: Include ggc.h.
13960 (type_hash): Move declaration earlier in file.
13961 (TYPE_HASH_SIZE, type_hash_table): Likewise.
13962 (init_obstacks): Add gc roots.
13963 (mark_type_hash): New function.
13964 * varasm.c: Include ggc.h.
13965 (mark_pool_constant): New function.
13966 (mark_varasm_state): New function.
13967
13968 Sat Sep 4 22:28:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13969
13970 * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
13971
13972 Sat Sep 4 18:01:45 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13973
13974 * c-decl.c (struct language_function): Renamed from struct c_function.
13975 Delete elt NEXT.
13976 (c_function_chain): Delete.
13977 (push_c_function_context): New arg F. Don't warn about nested
13978 functions here. Fill LANGUAGE elt of F. Delete code to update
13979 c_function_chain. Don't call push_function_context.
13980 (pop_c_function_context): New arg F. Restore from there instead of
13981 from c_function_chain. Don't call pop_function_context. Clear out
13982 LANGUAGE field of F when done.
13983 * c-lang.c: Include "function.h"
13984 (lang_init): Initialize save_lang_status and restore_lang_status.
13985 * c-parse.in (nested_function, nested_function_notype): Warn about
13986 nested functions. Call push_function_context/pop_function_context
13987 instead of the _c_ variants.
13988 * c-tree.h (push_c_function_context, pop_c_function_context): Update
13989 prototype.
13990 * Makefile.in (c-lang.o): Update dependencies.
13991
13992 * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
13993 regno_pointer_flag, regno_pointer_align.
13994 (gen_reg_rtx): Use xrealloc to enlarge them.
13995 (free_emit_status): New function.
13996 * function.c (mark_machine_status, mark_lang_status): New variables.
13997 (assign_stack_local_1): Renamed from assign_outer_stack_local. Merge
13998 in some bits from assign_stack_local. All callers changed to use new
13999 name.
14000 (assign_stack_local): Just call assign_stack_local_1.
14001 (free_after_compilation): New function.
14002 (put_reg_into_stack): Simplify to always call assign_stack_local_1.
14003 (trampoline_address): Likewise.
14004 (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
14005 (prepare_function_start): Explicitly clear some more variables.
14006 * function.h (struct function): New elt can_garbage_collect.
14007 (mark_machine_status, mark_lang_status): Declare variables.
14008 (free_after_compilation, free_emit_status, free_varasm_status,
14009 init_varasm_status): Declare functions.
14010 * toplev.c (rest_of_compilation): Call free_after_compilation when
14011 done with the current function.
14012 * varasm.c (free_varasm_status): New function.
14013
14014 Sat Sep 4 17:15:13 1999 Richard Henderson <rth@cygnus.com>
14015
14016 * sparc.h (EXPAND_BUILTIN_VA_START): Define.
14017 (EXPAND_BUILTIN_VA_ARG): Define.
14018 * sparc.c (sparc_va_start): New.
14019 (sparc_va_arg): New.
14020
14021 Sun Sep 5 11:11:59 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14022
14023 * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
14024
14025 Sun Sep 5 10:13:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14026
14027 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
14028
14029 Sat Sep 4 13:44:01 1999 Mark Mitchell <mark@codesourcery.com>
14030
14031 * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
14032 (OBJS): Add $(GGC).
14033 (ggc-callbacks.o): New target.
14034 * ggc-callbacks.c: New file.
14035
14036 Sat Sep 4 22:53:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14037
14038 * expr.h: Collapse individual optab and libfunc vars to arrays.
14039 (optab_index, libfunc_index): New enumerations.
14040 (optab_table, libfunc_table): New arrays.
14041 Add accessor macros for both.
14042
14043 * optabs.c (optab_table, libfunc_table): New.
14044 Delete declarations for individual optab and libfunc vars.
14045
14046 Sat Sep 4 12:57:17 1999 Richard Henderson <rth@cygnus.com>
14047
14048 * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
14049
14050 Sat Sep 4 11:19:52 1999 Richard Henderson <rth@cygnus.com>
14051
14052 * Makefile.in (GGC, GGC_LIB): New.
14053 (HOST_RTL): Include ggc-none.o.
14054 (ggc-simple.o): New target.
14055 (ggc-none.o): Likewise.
14056 * tree.h (tree_common): Add gc_mark.
14057 * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
14058 (struct rtvec_def): Add gc_mark.
14059 * emit-rtl.c (global_rtl): Update static initializers to contain
14060 enough initializers.
14061 * ggc.h, ggc-none.c, ggc-simple.c: New files.
14062 * toplev.c (gc_time): New variable.
14063 (all_time): New variable.
14064 (compile_file): Print gc time.
14065 (print_time): Calculate percentage of the whole.
14066
14067 Sat Sep 4 13:11:01 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14068
14069 Change obstack memory management and varasm constant pool handling so
14070 that nested functions are treated like any other functions.
14071 * function.c (init_machine_status): New variable.
14072 (push_function_context_to): Set contains_functions for the outer
14073 function. Don't call save_varasm_status.
14074 (pop_function_context_from): Don't call restore_varasm_status. Don't
14075 set current_function_contains_functions.
14076 (prepare_function_start): Call init_varasm_status rather than
14077 init_const_rtx_hash_table. Call (*init_machine_status) if the pointer
14078 is non-null.
14079 * function.h (struct function) Add field varasm. Delete fields
14080 inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
14081 last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
14082 (init_machine_status): Declare.
14083 (save_varasm_status, restore_varasm_status): Delete declarations.
14084 (save_tree_status, restore_tree_status): Delete last argument.
14085 * integrate.c (initialize_for_inline): Lose arg COPY. Delete copying
14086 code. All callers changed.
14087 (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
14088 save_constants_in_decl_trees, restore_constants, save_constants,
14089 save_for_inline_eh_labelmap, save_for_inline_copying): Delete
14090 functions.
14091 (inlining): New variable.
14092 (reg_map, label_map, insn_map, orig_asm_operands_vector,
14093 copy_asm_operands_vector, copy_asm_constraints_vector): Delete
14094 variables.
14095 (save_for_inline_nocopy): Don't save constants.
14096 Don't set inl_emit field in current_function.
14097 (expand_inline_function): Use emit field, not inl_emit, of the inlined
14098 function. Set new variable inlining before
14099 calling copy_rtx_and_substitute.
14100 (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
14101 constant pool references if inlining is nonzero.
14102 Delete ADDRESS and (most of the) CONST cases.
14103 (output_inline_function): Save and restore current_function/
14104 current_function_decl. Delete restore_constants code. Don't call
14105 init_const_rtx_hash_table.
14106 * output.h (init_const_rtx_hash_table): Don't declare.
14107 * rtl.h (struct function): Declare.
14108 (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
14109 * toplev.c (rest_of_compilation): Don't treat nested functions or
14110 functions containing them specially. Delete all code to deal with
14111 save_for_inline_copying.
14112 * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
14113 inline_obstacks): Delete variables.
14114 (save_tree_status): Lose arg CONTEXT. All callers changed.
14115 Simply allocate a new function_maybepermanent_obstack for the new
14116 function, delete all the special cases.
14117 Don't save inline_obstacks.
14118 (restore_tree_status): Lose arg CONTEXT. All callers changed.
14119 Delete special handling for function_maybepermanent_obstack; simply
14120 free it if empty.
14121 Don't restore inline_obstacks.
14122 (permanent_allocation): Delete code that frees inline_obstacks.
14123 (print_inline_obstack_statistics): Delete function.
14124 (dump_tree_statistics): Don't call it.
14125 * varasm.c (struct varasm_status): New.
14126 (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
14127 last_pool, pool_offset, const_double_chain): Delete global
14128 variables, replace with accessor macros.
14129 (immed_double_const): Don't walk const_double_chain outside a
14130 function, but don't treat nested functions specially anymore.
14131 (immed_real_const_1): Likewise.
14132 (clear_const_double_mem): Don't treat nested functions specially.
14133 (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
14134 (save_varasm_status, restore_varasm_status): Delete functions.
14135 (init_varasm_status): New function.
14136 (force_const_mem): Don't treat nested functions specially.
14137 (find_pool_constant): Accept new arg F, search for constants in
14138 that function's pool rather than the current one. All callers
14139 changed.
14140 (get_pool_constant_for_function, get_pool_mode_for_function): New
14141 functions.
14142
14143 * i386.c (init_386_machine_status): New function, mostly from
14144 clear_386_stack_locals.
14145 (struct machine_functions): Rename element names to avoid name
14146 clashes.
14147 (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
14148 macros, replacing global variables.
14149 (clear_386_stack_locals, save_386_machine_status,
14150 restore_386_machine_status): Delete functions.
14151 (override_options): Initialize init_machine_status.
14152 * i386.h (INIT_EXPANDERS): Delete macro.
14153 (save_386_machine_status, restore_386_machine_status,
14154 clear_386_stack_locals): Delete declarations.
14155
14156 Sat Sep 4 16:56:28 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14157
14158 * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
14159 (doloop_begin): Simplify pattern and use emit_jump_insn.
14160 (doloop_end): Simplify pattern, switch operand order,
14161 and use emit_jump_insn.
14162
14163 Fri Sep 3 19:02:38 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
14164
14165 * function.h (struct function): Add new element LANGUAGE.
14166 (save_lang_status): Declare new variable.
14167 (restore_lang_status): Likewise.
14168 * function.c (save_lang_status): Define.
14169 (restore_lang_status): Likewise.
14170 (push_function_context_to): Call language-specific save function.
14171 (pop_function_context_from): Call language-specific restore function.
14172
14173 Fri Sep 3 01:16:18 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
14174
14175 * i386.md (movsf_1): Check REG_P before use of REGNO.
14176 (movdf_1): Likewise.
14177 (movxf_1): Likewise.
14178 (extendsfdf2): Likewise.
14179 (extendsfxf2): Likewise.
14180 (extenddfxf2): Likewise.
14181
14182 Sat Sep 4 11:37:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14183
14184 * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
14185 constants into memory.
14186 (c4x_shiftable_constant): New function.
14187 * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
14188 (c4x_shiftable_constant): Declare.
14189 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
14190 ashlqi3_noclobber): Add new patterns and associated splitters.
14191
14192 Fri Sep 3 16:22:17 1999 Richard Henderson <rth@cygnus.com>
14193
14194 * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
14195 * dwarf2out.c (dwarf2out_frame_init): Likewise.
14196 * final.c (shorten_branches): Likewise.
14197 * global.c (global_alloc): Likewise.
14198 * haifa-sched.c (build_control_flow): Likewise.
14199 * stmt.c (check_for_full_enumeration_handling): Likewise.
14200 (estimate_case_costs): Likewise.
14201
14202 Fri Sep 3 15:49:56 1999 Mark Mitchell <mark@codesourcery.com>
14203
14204 * rtl.h (RTL_CHECKC2): Fix typo in last change.
14205
14206 Fri Sep 3 15:13:34 1999 Richard Henderson <rth@cygnus.com>
14207
14208 * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
14209 (recompute_reg_usage): Likewise.
14210 * rtlanal.c (find_regno_fusage): Likewise.
14211
14212 * rtl.c (rtl_check_failed_code1): New function.
14213 (rtl_check_failed_code2): New.
14214 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
14215 (RTL_CHECKC1, RTL_CHECKC2): New.
14216 (XC*): New accessor macros.
14217 (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
14218 (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
14219 (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
14220 (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
14221 (TRAP_*, RANGE_INFO_*): Likewise.
14222
14223 Fri Sep 3 15:10:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14224
14225 * Makefile.in (tlink.o): Don't depend on toplev.h.
14226
14227 * collect2.c (c_file, o_file, export_file, import_file, ldout,
14228 output_file, nm_file_name, ldd_file_name, strip_file_name,
14229 c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
14230 add_prefix, prefix_from_env, prefix_from_string, do_wait,
14231 fork_execute, maybe_unlink, add_to_list,
14232 extract_init_priority, write_list, dump_list,
14233 dump_prefix_list, write_list_with_asm, write_c_file,
14234 write_c_file_stat, write_c_file_glob, scan_prog_file,
14235 scan_libraries, is_in_list, resolve_lib_name, use_import_list,
14236 ignore_library, extract_string, notice, dump_file, target_machine,
14237 collect_wait, collect_execute, libname, locatelib, aix_std_libs,
14238 read_file, print_load_command): Constify a char*.
14239 (fdopen, error, fatal, fatal_perror): Don't prototype.
14240 (my_strerror): Remove. All callers use xstrerror instead.
14241 (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
14242 (main): Add prototype. Constify lots of char* ptrs. Change calls
14243 to xcalloc/strcpy/strcat/... to one call to concat.
14244 (main, scan_prog_file, scan_libraries): Use an intermediate
14245 `const char **' to build an argv array.
14246 (mapfile, libselect, libcompare, locatelib): Add prototypes.
14247
14248 * collect2.h (collect_execute, collect_wait, dump_file,
14249 file_exists): Constify a char*.
14250 (ldout, c_file_name, temporary_obstack, permanent_obstack,
14251 temporary_firstobj, vflag, debug): Add extern declarations.
14252 (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
14253
14254 * tlink.c: Don't include toplev.h.
14255 (vflag, debug, ldout, c_file_name, temporary_obstack,
14256 permanent_obstack, temporary_firstobj): Don't declare.
14257 (tlink_execute, frob_extension, symbol_hash_lookup,
14258 file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
14259 recompile_files, read_repo_files, demangle_new_symbols,
14260 scan_linker_output): Constify a char*.
14261 (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
14262 do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
14263
14264 Fri Sep 3 18:09:24 1999 Andrew Haley <aph@cygnus.com>
14265
14266 * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
14267 (relative) rather than jsr (absolute) subroutine call insns.
14268 * config/m68k/m68k-coff.h: Ditto.
14269
14270 Fri Sep 3 17:24:31 1999 Richard Earnshaw <rearnsha@arm.com>
14271
14272 * arm.c (note_invalid_constants): No need to ignore ASMs, we can
14273 now rework these too.
14274 (arm_reorg): If an insn can't reach the end of the current pool,
14275 ensure that we emit that pool before the insn.
14276
14277 Fri Sep 3 09:14:32 1999 Marc Espie <espie@tetto.liafa.jussieu.fr>
14278
14279 * tlink.c (scan_linker_output): Skip the initial underscore in
14280 a mangled name if appropriate.
14281
14282 Fri Sep 3 01:28:33 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14283
14284 * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
14285 objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
14286 error_with_ivar, gen_declarator, create_builtin_decl,
14287 my_build_string, generate_descriptor_table, generate_ivars_list,
14288 generate_dispatch_table, check_protocols, TAG_GETCLASS,
14289 TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
14290 dump_base_name, lang_decode_option, build_encode_expr,
14291 start_class, finish_class, encode_pointer, really_start_method,
14292 gen_declaration, dump_interface, handle_class_ref, handle_impent):
14293 Constify.
14294 (objc_demangle, objc_printable_name, generate_struct_by_value_array):
14295 Add static prototypes.
14296 (build_objc_string_decl, build_selector_reference_decl,
14297 encode_bitfield, build_class_reference_decl): Remove unused
14298 parameter, all callers changed.
14299 (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
14300 (objc_printable_name): Likewise. Change second parameter to type int.
14301 (init_objc): Use memcpy, not bcopy, to avoid casts.
14302
14303 Thu Sep 2 21:49:52 1999 Richard Henderson <rth@cygnus.com>
14304
14305 * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
14306 reg notes on a deleted insn.
14307 * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
14308
14309 Thu Sep 2 20:18:12 1999 Jeffrey A Law (law@cygnus.com)
14310
14311 * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
14312
14313 Thu Sep 2 22:00:08 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
14314
14315 * stmt.c (expand_asm_operands): Fix index into inout_mode when
14316 reading it.
14317
14318 Thu Sep 2 13:00:48 1999 Richard Henderson <rth@cygnus.com>
14319
14320 * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
14321 * tm.texi (MD_ASM_CLOBBERS): Document it.
14322
14323 Thu Sep 2 10:22:40 1999 Richard Henderson <rth@cygnus.com>
14324
14325 * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
14326 * except.c (expand_rethrow): Remove unused variable.
14327 * expr.c (do_jump_by_parts_greater_rtx): Likewise.
14328 * flow.c (replace_insns): Likewise.
14329 (create_edge_list, verify_edge_list): Likewise.
14330 * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
14331
14332 * genemit.c (gen_expand): Only emit `operands[N]' decl if there
14333 is special code to run.
14334 (main): Don't define operands to emit_operand.
14335 * genrecog.c (main): Don't emit an empty peephole2_insn function.
14336
14337 * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
14338
14339 * alpha/alpha.h (normal_memory_operand): Declare.
14340 (reg_no_subreg_operand): Declare.
14341 * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
14342
14343 Thu Sep 2 10:19:20 1999 Richard Henderson <rth@cygnus.com>
14344
14345 * c-parse.in (compstmt_primary_start): New, broken out of first
14346 part of compstmt handling in primary.
14347 (primary): Use it. Add an error clause.
14348 (compstmt_nostart): Renamed from compstmt; remove all
14349 initial invocations of compstmt_start.
14350 (compstmt): New.
14351
14352 Thu Sep 2 01:35:50 1999 Marc Espie <espie@cvs.openbsd.org>
14353
14354 * protoize.c (gen_aux_info_file): Let pexecute call choose_temp_base if
14355 needed.
14356
14357 Thu Sep 2 00:43:59 1999 Finn Hakansson <finn@axis.com>
14358
14359 * combine.c (simplify_shift_const): Remove extra semicolon.
14360 * dwarf2out.c (remove_AT): Likewise.
14361 * expmed.c (expand_mult): Likewise.
14362 * gcov.c (create_program_flow_graph): Likewise.
14363 * reorg.c (mostly_true_jump): Likewise.
14364
14365 Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com)
14366
14367 * fold-const.c (fold_range_test): Do not try to fold the range
14368 test if the rhs or lhs has side effects.
14369
14370 * combine.c (simplify_rtx): Recognize another case of a synthesized
14371 sign extension.
14372
14373 * varasm.c (mark_constant_pool): When marking indirect references,
14374 only look at SYMBOL_REFs.
14375
14376 * except.c (expand_fixup_region_end): Do not peek at
14377 INSN_UID (node->entry->outer_context) for flag_new_exceptions.
14378
14379 Thu Sep 2 13:52:53 1999 Geoffrey Keating <geoffk@cygnus.com>
14380
14381 * flags.h: New variables align_loops, align_loops_log,
14382 align_jumps, align_jumps_log, align_labels, align_labels_log,
14383 align_functions, align_functions_log.
14384 * toplev.c: Define them.
14385 (f_options): Handle -falign-* when they have no argument.
14386 (main): Add logic to set variables for -falign-functions,
14387 -falign-jumps, -falign-labels, -falign-loops.
14388 Make it -fsched-verbose=<n> and -finline-limit=<n>.
14389 (display_help): Change help to match options.
14390 * final.c (LABEL_ALIGN): Default to align_labels_log.
14391 (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
14392 (LOOP_ALIGN): Default to align_loops_log.
14393 (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
14394 (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
14395 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
14396 * varasm.c (assemble_start_function): Handle align_functions.
14397
14398 * config/sparc/sparc.h: Don't declare sparc_align_*.
14399 Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
14400 (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
14401 sparc.c.
14402 (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
14403 it's a promise.
14404 * config/sparc/sparc.c: Delete sparc_align_loops,
14405 sparc_align_jumps, sparc_align_funcs and the corresponding string
14406 variables.
14407 (sparc_override_options): Default align_functions on ultrasparc.
14408 Delete -malign-* handling.
14409
14410 * config/mips/mips.c (override_options): On 64-bit targets,
14411 try to align code to 64-bit boundaries.
14412 (print_operand): New substitution, %~,
14413 which aligns labels to align_labels_log.
14414 * config/mips/mips.md (div_trap_normal): Use %~.
14415 (div_trap_mips16): Likewise.
14416 (abssi): Likewise.
14417 (absdi2): Likewise.
14418 (ffssi2): Likewise.
14419 (ffsdi2): Likewise.
14420 (ashldi3_internal): Likewise.
14421 (ashrdi3_internal): Likewise.
14422 (lshrdi3_internal): Likewise.
14423 (casesi_internal): Likewise.
14424
14425 Wed Sep 1 21:13:48 1999 Richard Henderson <rth@cygnus.com>
14426
14427 Merge new ia32 backend from the branch!
14428
14429 * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
14430 See ChangeLog.P2 on new_ia32_branch for details.
14431
14432 * rtl.h (stack_regs_mentioned_p): Delete prototype.
14433 * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
14434 * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
14435 * i386/gas.h (ASM_FILE_START): Define.
14436 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
14437 for name change of ix86_valid_decl_attribute_p.
14438 (i386_pe_valid_type_attribute_p): Similarly.
14439
14440 Wed Sep 1 18:21:23 1999 Richard Henderson <rth@cygnus.com>
14441
14442 * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
14443 to step through CC modes.
14444
14445 Wed Sep 1 20:18:06 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
14446
14447 * regmove.c (fixup_match_1): Don't move INSN in front of P if
14448 it would end up in the shadow of a live flags regsiter.
14449
14450 Wed Sep 1 11:32:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14451
14452 * reload1.c: Fix many indentation problems.
14453 * reload.c: Likewise.
14454
14455 Tue Aug 31 22:08:03 1999 Marc Espie <espie@cvs.openbsd.org>
14456
14457 * alias.c (non_local_reference_p): Constify fmt.
14458
14459 Tue Aug 31 23:19:35 1999 Michael Meissner <meissner@cygnus.com>
14460
14461 * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
14462
14463 Tue Aug 31 16:44:52 1999 Jeffrey A Law (law@cygnus.com)
14464
14465 * cse.c (delete_trivially_dead_insns): Do not delete stores to
14466 the internal_arg_pointer.
14467
14468 Tue Aug 31 13:35:42 1999 Richard Henderson <rth@cygnus.com>
14469
14470 Merge peephole2 from new_ia32_branch:
14471 * Makefile.in (STAGESTUFF): Add *.peephole2.
14472 (mostlyclean): Likewise.
14473 (recog.o): Depend on resource.h.
14474
14475 * final.c (peephole): Conditionalize decl on HAVE_peephole.
14476 (final_scan_insn): Likewise for the invocation of peephole.
14477 * genconfig.c (main): Look for peephole and peephole2 patterns.
14478 Emit HAVE_peephole* accordingly.
14479 * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
14480 * flags.h (flag_peephole2): Declare.
14481 * toplev.c: New pass peephole2. New flag -fpeephole2.
14482
14483 * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
14484 * gencodes.c (main): Likewise.
14485 * genextract.c (main): Likewise.
14486 * genoutput.c (main): Likewise.
14487 * genemit.c (max_operand_1): Look for the max scratch operand.
14488 (gen_rtx_scratch): New.
14489 (gen_exp): Use it, and pass on new arg subroutine_type.
14490 (gen_expand): Take max scratch into account.
14491 (gen_split): Emit peephole2 functions.
14492 (output_peephole2_scratch): New.
14493 (main): Include hard-reg-set.h and resource.h. Handle peephole2.
14494 * genrecog.c (routine_type): Add PEEPHOLE2.
14495 (IS_SPLIT): New.
14496 (make_insn_sequence): Match outer parallel for peep2. Discard
14497 top level scratches and dups.
14498 (add_to_sequence): New args insn_type and top. Update all callers.
14499 Handle toplevel peep2 matching insns.
14500 (write_subroutine): Handle peep2.
14501 (write_tree_1): Likewise.
14502 (write_tree): Likewise.
14503 (main): Likewise.
14504 (change_state): New arg afterward. Update all callers.
14505 Handle matching separate insns.
14506 * recog.c (recog_next_insn): New.
14507 (peephole2_optimize): New.
14508 * rtl.def (DEFINE_PEEPHOLE2): New.
14509 * resource.c (find_free_register): New argument last_insn. Use it
14510 to find a register available through the entire span.
14511 * resource.h (find_free_register): Update prototype.
14512
14513 Tue Aug 31 11:51:06 1999 Jim Kingdon <http://developer.redhat.com>
14514
14515 * i386.c (output_strlen_unroll): Don't write xops[7]
14516 label if it wasn't set.
14517
14518 1999-08-31 12:44 -0700 Zack Weinberg <zack@bitmover.com>
14519
14520 * cpplib.c (struct directive): Const-ify name pointer and
14521 function pointer prototype.
14522 (validate_else, do_define, do_line, do_include, do_undef,
14523 do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
14524 do_elif, do_endif, do_sccs, do_assert, do_unassert,
14525 do_warning): Const-ify second arg.
14526 (directive_table): Mark const. Reorder entries by frequency
14527 of usage, record statistics.
14528
14529 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
14530
14531 * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
14532 bounds- check RTL accesses if --enable-checking.
14533 (RTVEC_ELT): Bounds check if --enable-checking.
14534 (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
14535 XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
14536 (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
14537 GET_NUM_ELEM.
14538 (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
14539 X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes.
14540
14541 (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
14542 (NOTE_SOURCE_FILE): Use X0STR.
14543 (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
14544 MEM_ALIAS_SET): Use X0INT.
14545 (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
14546 JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
14547 Use X0EXP.
14548 * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
14549 * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
14550 (rtl_check_failed_bounds, rtl_check_failed_type1,
14551 rtl_check_failed_type2, rtvec_check_failed_bounds): New
14552 functions.
14553 (fancy_abort): Fix comment.
14554
14555 * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
14556 (cse_insn): Decrement LABEL_NUSES for jump target before
14557 deleting jump insn.
14558 * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
14559 * final.c (alter_subreg): Compute regno before changing x to
14560 REG; set REGNO(x) after changing it.
14561 * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
14562 notes containing CONST_INTs.
14563 (delete_eh_regions): Use NOTE_EH_HANDLER.
14564 * function.c (put_reg_into_stack): Make reg a MEM before
14565 initializing it.
14566 (fixup_var_refs_insns): Save REG_NOTES (insn) in case we
14567 delete insn.
14568 (gen_mem_addressof): Make reg a MEM before initializing it.
14569 * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
14570 X0WINT.
14571 * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
14572 deleting an insn, not after.
14573 (block_alloc): Only look at PATTERN(insn) if we have to, and
14574 only if it's format class 'i'.
14575 * loop.c (check_dbra_loop): Check bl->biv->add_val is a
14576 CONST_INT before using its INTVAL.
14577 * print-rtl.c (print_rtx): Use X0STR.
14578 * regmove.c (fixup_match_1): Don't look at PATTERN of
14579 non-class-'i' insn chain elements.
14580 * reload.c (loc_mentioned_in_p): Take address of
14581 in->fld[1].rtx directly.
14582 * reload1.c (reload): Change reg to a MEM before initializing
14583 it.
14584 * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
14585 have no names.
14586 * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
14587
14588 Fri Aug 20 13:43:41 1999 Andrew Haley <aph@cygnus.com>
14589
14590 * config/mips/mips.c (machine_dependent_reorg): Force a
14591 barrier to output the local constant pool if a barrier hasn't
14592 been found at a natural point in the instruction stream.
14593
14594 Mon Aug 30 22:04:36 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14595
14596 * c-parse.in (language_string): Constify.
14597
14598 * dwarf2out.c (language_string): Remove declaration.
14599
14600 * dwarfout.c (language_string): Likewise.
14601
14602 * toplev.c (language_string, init_parse, finish_parse): Likewise.
14603
14604 * tree.h (language_string, init_parse, finish_parse): Declare.
14605
14606 * i386/sun386.h (language_string): Remove declaration.
14607
14608 * mips.h (language_string): Likewise.
14609
14610 * nextstep.h (language_string): Likewise.
14611
14612 * nextstep21.h (language_string): Likewise.
14613
14614 * rs6000.c (language_string): Likewise.
14615
14616 Mon Aug 30 20:56:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14617
14618 * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
14619 (getpwd.o): Remove target.
14620
14621 * getpwd.c: Delete file. Its in libiberty now.
14622
14623 * dbxout.c (getpwd): Don't prototype.
14624 * dwarf2out.c (getpwd): Likewise
14625 * dwarfout.c (getpwd): Likewise
14626 * final.c (getpwd): Likewise.
14627 * protoize.c (getpwd): Likewise.
14628
14629 Mon Aug 30 20:21:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14630
14631 * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
14632
14633 Mon Aug 30 16:07:49 1999 Richard Henderson <rth@cygnus.com>
14634
14635 * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
14636 mark_set_resources.
14637
14638 Mon Aug 30 12:23:53 1999 Jim Wilson <wilson@cygnus.com>
14639
14640 * fixinc/Makefile.in (subdir): New.
14641 (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
14642 (Makefile): New.
14643
14644 Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com)
14645
14646 * emit-rtl.c (copy_rtx_if_shared): A MEM which references
14647 virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
14648 be shared.
14649
14650 * invoke.texi: Fix typo.
14651
14652 * dwarf2out.c (mem_loc_descriptor): New argument MODE. All callers
14653 changed. Handle autoincrement addressing modes.
14654
14655 * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
14656 just like we would the virtual incoming args register when
14657 integrating.
14658
14659 Sun Aug 29 23:17:54 1999 David Edelsohn <edelsohn@gnu.org>
14660
14661 * rs6000.h (ASM_FILE_START): Specify complete filename, including
14662 path, in .file directive.
14663
14664 Sun Aug 29 05:06:43 1999 Russ Allbery <rra@stanford.edu>
14665
14666 * gcc.texi (External Bugs): Remove obsolete note about Perl on
14667 SunOS.
14668
14669 1999-08-29 08:38 -0700 Zack Weinberg <zack@bitmover.com>
14670
14671 * stdbool.h: Make the typedef name _Bool, with bool a #defined
14672 alias.
14673
14674 Sun Aug 29 09:36:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14675
14676 * tree.c (tree_code_name): Constify a char*.
14677
14678 * tree.h (tree_code_name, decl_printable_name): Likewise.
14679
14680 * function.h (struct function): Likewise.
14681
14682 * toplev.c (decl_name, decl_printable_name): Likewise.
14683
14684 * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
14685
14686 * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
14687 (init_objc): Remove function pointer cast.
14688
14689 Sun Aug 29 05:01:17 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
14690
14691 * pa.md (interspace_jump): New pattern.
14692 (builtin_longjmp): New expander.
14693
14694 1999-08-29 Bernd Schmidt <bernds@cygnus.co.uk>
14695
14696 * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
14697 _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
14698 sf_to_df, df_to_sf): Fix potential problem with alias analysis.
14699
14700 Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com)
14701
14702 * jump.c (delete_prior_computation): Also check calls
14703 to constant functions. Don't bother checking for a
14704 REG_UNUSED note before adding it.
14705 (delete_computation): Handle multi-word hard registers
14706 when synthesizing missing REG_DEAD notes for a register
14707 which is both set and used by an insn.
14708
14709 1999-08-29 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14710
14711 * loop.c (this_loop_info): New variable.
14712 (loop_has_call, loop_has_volatile, loop_has_tablejump,
14713 loop_continue, loops_enclosed): Replace with fields in this_loop_info.
14714 All uses updated.
14715 (prescan_loop, strength_reduce): New argument loop_info. All callers
14716 updated.
14717 (scan_loop): New variable loop_info, initialise to address of
14718 this_loop_info.
14719 (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
14720 Delete variable loop_has_multiple_exit targets and replace with
14721 field in this_loop_info.
14722 (find_and_verify_loops): Rename this_loop to this_loop_num.
14723 (strength_reduce): Delete loop_iteration_info. Replace variable
14724 loop_info with function argument of same name.
14725 (insert_bct): Rework test for loop being completely unrolled.
14726
14727 * loop.h (struct loop_info): New fields num, loops_enclosed,
14728 has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
14729 has_indirect_jump, and cont. Redefine use of unroll_number.
14730 (loop_unroll_number): Delete.
14731
14732 * unroll.c (unroll_loop): Store loop unroll count in unroll_number
14733 field of loop_info.
14734 (loop_iterations): Delete variable vtop and instead use
14735 loop_info->vtop computed in prescan_loop.
14736
14737 Sun Aug 29 03:27:23 1999 Scott Weikart <scott@igc.apc.org>
14738
14739 * fix-header.c (main): Do not pass a null pointer to strcmp.
14740
14741 Sun Aug 29 03:18:48 1999 William Bader (william@nscs.fast.net)
14742
14743 * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
14744 filenames.
14745 * configure: Rebuilt.
14746
14747 Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com)
14748
14749 * jump.c (jump_optimize_1): Do not delete assignments to
14750 internal_arg_pointer.
14751 * cse.c (delete_trivially_dead_insns): Always consider a set of
14752 the internal_arg_pointer live.
14753
14754 Sat Aug 28 16:24:31 1999 Richard Henderson <rth@cygnus.com>
14755
14756 * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
14757 (update_life_info) [REG_WAS_0]: Search the original insns rather
14758 than the new insns for the note. Fix typos finding note_dest.
14759 If no dest found, discard the note rather than abort.
14760 [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
14761 (replace_insns): Remove the old insn list after update_life_info
14762 not before.
14763
14764 Sat Aug 28 16:20:12 1999 Richard Henderson <rth@cygnus.com>
14765
14766 * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
14767 sched_analyze_insn.
14768 (sched_analyze_1): Let add_dependence care for not adding dups.
14769 (sched_analyze_2): Likewise.
14770 (add_branch_dependences): Likewise.
14771
14772 Sat Aug 28 15:58:16 1999 Mumit Khan <khan@xraylith.wisc.edu>
14773
14774 * i386/winnt.c (export_list): New type.
14775 (exports_head): Rename to
14776 (export_head): this.
14777 (i386_pe_record_exported_symbol): Add is_data flag.
14778 (i386_pe_asm_file_end): Emit directive for exported variables.
14779 * i386/cygwin.h (i386_pe_record_exported_symbol): Update
14780 prototype.
14781 * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
14782 (ASM_DECLARE_OBJECT_NAME): Likewise.
14783 (ASM_DECLARE_FUNCTION_NAME): Likewise.
14784 * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14785
14786 Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com)
14787
14788 * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
14789
14790 * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
14791 operand.
14792
14793 Fri Aug 27 14:01:19 1999 Marc Espie <espie@cvs.openbsd.org>
14794
14795 * config/openbsd.h: Define SET_ASM_OP.
14796 * tm.texi: cross-reference SET_ASM_OP in the index.
14797
14798 1999-08-27 13:27 -0700 Zack Weinberg <zack@bitmover.com>
14799
14800 * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
14801 for a CONST_DOUBLE, at compile time. Initialize rtx_length
14802 and class_narrowest_mode at compile time. Kill init_rtl.
14803 Mark rtx_length, mode_class, mode_size, mode_unit_size,
14804 mode_wider_mode, mode_mask_array, class_narrowest_mode, and
14805 rtx_format as const. Kill all references to EXTRA_CC_MODES or
14806 EXTRA_CC_NAMES.
14807 * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
14808 format.
14809 * rtl.h: Declare rtx_length and rtx_format as const.
14810 * machmode.def: Define CC(). Use CC() to define CCmode. If
14811 EXTRA_CC_MODES is defined, expand it here.
14812 * machmode.h: Declare mode_class, mode_size, mode_unit_size,
14813 mode_wider_mode, mode_mask_array, and class_narrowest_mode as
14814 const. Kill all references to EXTRA_CC_MODES.
14815
14816 * toplev.c: Don't prototype or call init_rtl.
14817 * optabs.c: Don't call init_mov_optab.
14818 * genemit.c: Don't generate init_mov_optab. Don't call
14819 init_rtl.
14820 * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
14821 here.
14822 * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
14823 genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
14824 genrecog.c: Don't call init_rtl.
14825
14826 * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
14827 rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES. Use CC() in
14828 definition of EXTRA_CC_MODES.
14829
14830 * md.texi: Kill ref to EXTRA_CC_NAMES.
14831 * tm.texi: Document new way to define EXTRA_CC_MODES.
14832
14833 * genrecog.c: Do not look up the name of a define_split.
14834 (Unrelated bugfix.)
14835
14836 Fri Aug 27 17:03:42 1999 Nick Clifton <nickc@cygnus.com>
14837
14838 * config/v850/v850.md: Fix typo introduced by previous delta.
14839
14840 Fri Aug 27 09:48:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14841
14842 * gcc.c (fatal): Make definition static to match prototype.
14843
14844 Fri Aug 27 10:33:35 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14845
14846 * combine.c (get_last_value): Don't look for earlier sets if the last
14847 known set is somewhere in between the insns being combined.
14848
14849 Fri Aug 27 10:03:12 BST 1999 Nathan Sidwell <nathan@acm.org>
14850
14851 * configure.in: Don't use shell ! to negate exit codes
14852 * configure: Regenerate
14853
14854 Fri Aug 27 09:36:17 1999 Andreas Schwab <schwab@suse.de>
14855
14856 * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
14857 the fact that ALIGN is measured in bits, not bytes.
14858
14859 1999-08-27 00:27 -0700 Zack Weinberg <zack@bitmover.com>
14860
14861 * errors.c: New file; defines functions error, warning, and
14862 fatal, variables have_error and progname.
14863 * errors.h: New file; prototypes and decls for stuff in errors.c.
14864
14865 * Makefile: Add rules to build errors.o and
14866 $(HOST_PREFIX)errors.o. Link genconfig, gencodes, genemit,
14867 genopinit, genrecog, genextract, genpeep, genattr, and
14868 genoutput with errors.o. Add errors.h to deps of genconfig.o,
14869 gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
14870 genpeep.o, genattr.o, and genoutput.o.
14871
14872 * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
14873 genextract.c, genpeep.c, genattr.c: Include errors.h. Don't
14874 define or prototype fatal. Set progname at beginning of main.
14875 * genoutput.c: Likewise, and don't define or prototype error
14876 either.
14877
14878 * c-typeck.c (c_expand_start_case): Return immediately if exp
14879 is an ERROR_MARK.
14880 * fold-const.c (operand_equal_p): Return immediately if arg1
14881 or arg0 are ERROR_MARKs.
14882 * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
14883 fields of type ERROR_MARK when calculating if the record can
14884 go in a register.
14885
14886 Fri Aug 27 01:03:48 1999 Jim Kingdon <http://developer.redhat.com>
14887 with much help from Jeffrey A Law and Richard Henderson
14888
14889 * i386.md: In the 6 insns which call output_fix_trunc,
14890 earlyclobber operands[0].
14891
14892 Fri Aug 27 01:01:51 1999 Philip Blundell <pb@nexus.co.uk>
14893
14894 * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
14895 creating new registers.
14896
14897 1999-08-26 23:09 -0700 Zack Weinberg <zack@bitmover.com>
14898
14899 * i386.h: Declare ix86_cpu_string, ix86_arch_string,
14900 i386_reg_alloc_order, i386_regparm_string,
14901 i386_align_loops_string, i386_align_jumps_string,
14902 i386_align_funcs_string, i386_preferred_stack_boundary_string,
14903 and i386_branch_cost_string as type "const char *".
14904 * i386.c: Define all above strings as type "const char *".
14905
14906 Thu Aug 26 20:36:30 1999 Jim Wilson <wilson@cygnus.com>
14907
14908 * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
14909 when emitting alignment padding. Emit padding byte of 0 instead of 4.
14910
14911 Thu Aug 26 18:11:20 1999 Mark Mitchell <mark@codesourcery.com>
14912
14913 * tree.c (array_type_nelts): Don't create RTL_EXPRs from
14914 SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
14915
14916 Thu Aug 26 19:33:23 1999 Jim Wilson <wilson@cygnus.com>
14917
14918 * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
14919 (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
14920 (dwarf2out_line, dwarf2out_finish): Likewise.
14921 * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
14922
14923 Thu Aug 26 16:10:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
14924
14925 * tree.c (lang_unsave_expr_now) : Correct return type.
14926 * tree.h (lang_unsave_expr_now) : Same.
14927
14928 Thu Aug 26 13:12:29 1999 Jeffrey A Law (law@cygnus.com)
14929
14930 * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
14931 instead of duplicating code.
14932
14933 Thu Aug 26 18:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14934
14935 * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
14936
14937 1999-08-26 09:42 -0700 Zack Weinberg <zack@bitmover.com>
14938
14939 * tree.h: fancy_abort always takes three args.
14940 * resource.c: Move include of system.h before toplev.h.
14941
14942 Thu Aug 26 09:46:16 1999 Nick Clifton <nickc@cygnus.com>
14943
14944 * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
14945 as SYMBOL_REFs.
14946
14947 1999-08-25 22:10 -0700 Zack Weinberg <zack@bitmover.com>
14948
14949 * system.h: Don't redefine abort or trim_filename.
14950 * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
14951 or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
14952 whether or not __FUNCTION__ is available.
14953 * tree.h: Duplicate rtl.h's definition of abort, for files
14954 that don't include rtl.h. Delete all code to perform type
14955 checking with a compiler other than GCC.
14956 * varray.h: Delete all code to perform type checking with a
14957 compiler other than GCC. Make VARRAY_CHECK() always evaluate
14958 its arguments exactly once, using a statement expression.
14959 Adjust the VARRAY_<type> accessor macros to match.
14960 * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
14961 (_fatal_insn, _fatal_insn_not_found): New fns, take info on
14962 caller's location. Define fatal_insn and fatal_insn_not_found
14963 as macros that use _fatal_insn and _fatal_insn_not_found.
14964 (fancy_abort, trim_filename): Kill prototypes.
14965
14966 * rtl.c (trim_filename): Move here from toplev.c.
14967 (fancy_abort): New function.
14968 (DIR_SEPARATOR): Provide default definition.
14969 * tree.c (tree_check_failed, tree_class_check_failed): Go
14970 through fancy_abort.
14971 (tree_check, tree_class_check, cst_or_constructor_check,
14972 expr_check): Delete.
14973 * varray.c (varray_check_failed): New function.
14974 * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
14975 _fatal_insn and _fatal_insn_not_found. Go through
14976 fancy_abort.
14977 (trim_filename, fancy_abort): Delete.
14978
14979 * builtins.c (expand_builtin_args_info): Report ICE with abort.
14980 * except.c (start_catch_handler): Report ICE with error/abort
14981 combo.
14982 * final.c (output_operand_lossage): Likewise.
14983 * flow.c (verify_flow_info): Likewise.
14984
14985 * gcc.c: Prototype fatal.
14986 * gengenrtl.c: Undef abort after including rtl.h not system.h.
14987 * genattr.c, genattrtab.c, genemit.c, genextract.c,
14988 genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
14989 Don't define fancy_abort.
14990
14991 Wed Aug 25 17:56:59 1999 Richard Henderson <rth@cygnus.com>
14992
14993 * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
14994 canonization.
14995
14996 Wed Aug 25 15:35:55 1999 Richard Henderson <rth@cygnus.com>
14997
14998 * m88k.h (VERSION_INFO2): Kill.
14999 (VERSION_STRING): Kill.
15000 (TM_RCS_ID): Kill.
15001 (VERSION_INFO1): Tidy.
15002 (TARGET_VERSION): Update.
15003 * m88k/dgux.h (VERSION_INFO2): Kill.
15004 (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
15005 * m88k/luna.h (VERSION_INFO1): Tidy.
15006 * m88k/sysv4.h (VERSION_INFO1): Likewise.
15007 * m88k.c (out_rcs_id, tm_rcs_id): Kill.
15008 (output_file_start): Adjust for death of VERSION_STRING.
15009
15010 1999-08-25 13:51 -0700 Jim Meyering <meyering@ascend.com>
15011
15012 * cpplib.c (detect_if_not_defined): New function.
15013 (do_if): Use it to detect potential once-only headers.
15014
15015 Wed Aug 25 14:00:18 1999 Jason Merrill <jason@yorick.cygnus.com>
15016
15017 * c-common.c (combine_strings): Always set TREE_CONSTANT.
15018
15019 Wed Aug 25 15:27:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
15020
15021 * combine.c (nonzero_bits) : Allow single-ly set registers to be
15022 anywere in the function only if they are pseudos and set before
15023 being used (not live at the start of the function).
15024 (num_sign_bit_copies) : Same.
15025 (get_last_value_validate) : Same.
15026 (get_last_value) : Same.
15027
15028 Wed Aug 25 11:13:29 1999 Richard Henderson <rth@cygnus.com>
15029
15030 * loop.c (express_from): Try harder to unify (* c N) and (* c M)
15031 where N and M are constant and N is an integer multiple of M.
15032
15033 Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
15034
15035 * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
15036 (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
15037 sbitmap_union_of_preds): Add prototypes.
15038 * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
15039 the intersection of successors with the new flow graph structures.
15040 (sbitmap_intersection_of_preds): New function to compute the
15041 intersection of predecessors with the new flow graph structures.
15042 (sbitmap_union_of_succs): New function to compute the union of
15043 successors with the new flow graph structures.
15044 (sbitmap_union_of_preds): New function to compute the union of
15045 predecessors with the new flow graph structures.
15046 * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
15047 (expr_reaches_here_p): Use edge and basic_block structures instead
15048 of s_preds and s_succs.
15049 (compute_cprop_avinout): Use new sbitmap routines.
15050 (pre_expr_reaches_here_p): Use edge and basic_block structures instead
15051 of s_preds and s_succs.
15052 * flow.c (compute_flow_dominators): Compute dominators using
15053 edges and basic blocks instead of s_preds and s_succs.
15054
15055 Wed Aug 25 13:41:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
15056
15057 * lists.c (unused_insn_list, unused_expr_list): New file for
15058 maintaining various types of lists. New statics for maintaining a
15059 cache of available INSN_LIST and EXPR_LIST nodes.
15060 (free_list): Static function for freeing a list of INSN/EXPR nodes.
15061 (alloc_INSN_LIST): Function to get a free INSN_LIST node.
15062 (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
15063 (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
15064 (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
15065 (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
15066 (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
15067 (free_INSN_LIST_node): Free an individual INSN_LIST node.
15068 * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
15069 (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
15070 (remove_dependence, free_pending_lists): Use new global routines.
15071 (flush_pending_lists, sched_analyze_insn): Use new global routines.
15072 (sched_analyze, compute_block_backward_dependences): Use new routines.
15073 (sched_analyze_1, sched_analyze_2): Use new routines.
15074 (schedule_insns): Use new global routines.
15075 * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
15076 prototypes.
15077 (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
15078 (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
15079 prototypes.
15080 * toplev.c (rest_of_compilation): Initialize node cache.
15081 * Makefile.in (OBJS): Add lists.o to list of object files.
15082 (lists.o): Add dependancies.
15083
15084 Wed Aug 25 17:31:56 1999 Nick Clifton <nickc@cygnus.com>
15085
15086 * config/v850/v850.md: Fix compile time warning messages.
15087 * config/v850/v850.c: Fix compile time warning messages.
15088 * config/v850/v850.h: Fix compile time warning messages.
15089
15090 Wed Aug 25 09:44:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15091
15092 * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
15093 Remove unused prototype for `init_lengths'.
15094
15095 Wed Aug 25 09:32:31 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15096
15097 * calls.c (emit_call_1): Mark parameter `stack_size' with
15098 ATTRIBUTE_UNUSED.
15099 (expand_call): Initialize variable `insn'.
15100 (emit_library_call): Likewise for variable `high_to_save'.
15101 (emit_library_call_value): Likewise.
15102 (store_one_arg): Likewise for variables `lower_bound' and
15103 `upper_bound'.
15104
15105 * combine.c (try_combine): Likewise for variables `i2_code_number'
15106 and `other_code_number'.
15107 (find_split_point): Likewise for variables `pos', `unsignedp' and
15108 `inner'.
15109 (simplify_if_then_else): Likewise for variables `op' and `c1'.
15110 (simplify_and_const_int): Remove unused variable `width'.
15111 (merge_outer_ops): Likewise.
15112
15113 * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
15114 HOST_WIDE_INT' when comparing against one.
15115 (simplify_relational_operation): Likewise.
15116 (cse_insn): Initialize variables `src_eqv_volatile',
15117 `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
15118
15119 * final.c (init_final): Constify parameter `filename'.
15120 (final_start_function): Mark parameter `optimize' with
15121 ATTRIBUTE_UNUSED.
15122 (profile_function): Likewise for parameters `first' and `optimize'.
15123 (output_source_line): Likewise for parameter `file'.
15124
15125 * integrate.c (subst_constants): Cast a value to `size_t' when
15126 comparing against one.
15127 (mark_stores): Initialize variable `mode'. Cast a value to
15128 `size_t' when comparing against one.
15129
15130 * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
15131
15132 * loop.c (move_movables): Initialize variable `first'.
15133 (strength_reduce): Likewise for variable `increment'.
15134 (check_dbra_loop): Likewise for variable `comparison_val'. Cast a
15135 value to `size_t' when comparing against one.
15136 (load_mems): Initialize variable `end_label'.
15137
15138 * output.h (init_final): Constify parameter.
15139
15140 * reload.c (decompose): Initialize variable `base'.
15141
15142 * reload1.c (reload): Likewise for variable `is_scalar'.
15143 (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
15144 (choose_reload_regs): Initialize variable `mode'.
15145 (emit_reload_insns): Likewise for variable `store_insn'.
15146 (reload_cse_noop_set_p): Mark parameter `insn' with
15147 ATTRIBUTE_UNUSED.
15148 (reload_combine): Initialize variable `set'.
15149
15150 * unroll.c (unroll_loop): Likewise for variable `local_label'.
15151 (copy_loop_body): Cast a value to `size_t' when comparing against
15152 one.
15153
15154 * varasm.c (assemble_variable): Initialize variable `size_tree'.
15155 (const_hash): Add an `else abort()' in an if-else-if-else sequence.
15156 (remove_from_pending_weak_list): Mark parameter `name' with
15157 ATTRIBUTE_UNUSED.
15158
15159 Wed Aug 25 11:18:39 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15160
15161 * toplev.c (rest_of_compilation): Use decl_printable_name when opening
15162 gcse dump file.
15163
15164 Wed Aug 25 10:57:12 1999 Nick Clifton <nickc@cygnus.com>
15165
15166 * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
15167 (ASM_DECLARE_FUNCTION_NAME): Define.
15168 (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
15169 ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
15170 ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
15171 not already defined.
15172
15173 Wed Aug 25 01:36:11 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
15174
15175 * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
15176 of n_popped when call/call_value are not defined.
15177
15178 Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com)
15179
15180 * tm.texi: GNU CC -> GCC conversion.
15181 (CC1_SPEC): Indicate it is used for all language front ends.
15182
15183 Tue Aug 24 23:43:03 1999 Mark Mitchell <mark@codesourcery.com>
15184
15185 * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
15186 NOTE_INSN_EH_REGION_END correctly.
15187
15188 Tue Aug 24 23:26:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
15189 Jeff Law <law@cygnus.com>
15190
15191 * loop.c (strength_reduce): Automatically unroll loops if the
15192 unrolled loop size is smaller than the rolled loop size.
15193
15194 * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
15195 and delete comment that code should be rewritten.
15196
15197 Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com)
15198
15199 * haifa-sched.c (find_rgns): Mark a block found during the DFS search
15200 as reachable.
15201
15202 * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
15203
15204 Tue Aug 24 22:41:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
15205
15206 * fixinc/mkfixinc.sh: Don't fix uwin headers.
15207 * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
15208 (LINK_SPEC): Add -u _main when building executables.
15209 (ASM_DECLARE_FUNCTION): Update from Cygwin.
15210 (ASM_FILE_END): Use the default for ix86-pe.
15211 * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
15212
15213 Tue Aug 24 20:49:47 1999 Art Haas <ahaas@neosoft.com>
15214
15215 * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
15216 and ASM_CLOSE_PAREN are empty strings.
15217
15218 Wed Aug 25 12:46:22 1999 Fred Fish <fnf@cygnus.com>
15219 Geoffrey Keating <geoffk@cygnus.com>
15220
15221 * Makefile.in (PREPROCESSOR_DEFINES): New macro.
15222 (protoize.o): Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
15223 (unprotoize.o): Ditto.
15224 (test-protoize-simple): Don't define STD_PROTO_DIR.
15225 * protoize.c: Use PARAMS rather than PROTO. Minor whitespace
15226 changes to make 'test-protoize-simple' pass.
15227 (STD_PROTO_DIR): Remove define.
15228 (STANDARD_EXEC_PREFIX): Supply default define.
15229 (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
15230 (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
15231 (target_version): New variable, init to DEFAULT_TARGET_VERSION.
15232 (GET_ENV_PATH_LIST): New macro.
15233 (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
15234 (do_processing): Initialize default_syscalls_dir using new
15235 macros. Use it to initialize syscalls_absolute_filename.
15236
15237 Tue Aug 24 16:58:15 1999 Richard Henderson <rth@cygnus.com>
15238
15239 * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
15240 B into a register before emit_conditional_move.
15241
15242 Tue Aug 24 15:37:03 1999 Richard Henderson <rth@cygnus.com>
15243
15244 * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
15245 as (+ (+ (* a b) (* d e)) c). Factor a common power-of-two
15246 multiplicand out of (+ (* a b) (* c d)).
15247
15248 Tue Aug 24 11:46:10 1999 Bob Manson <manson@cygnus.com>
15249 Richard Henderson <rth@cygnus.com>
15250
15251 * haifa-sched.c (split_hard_reg_notes): Move to flow.c
15252 (new_insn_dead_notes): Likewise.
15253 (update_n_sets): Likewise.
15254 (update_flow_info): Move to flow.c, renamed to update_life_info;
15255 extend to handle multiple source insns.
15256 * flow.c: Include resource.h
15257 (unlink_insn_chain): New.
15258 (split_hard_reg_notes): New.
15259 (maybe_add_dead_note): New.
15260 (maybe_add_dead_note_use): New.
15261 (find_insn_with_note): New.
15262 (new_insn_dead_notes): New.
15263 (update_n_sets): New.
15264 (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
15265 (maybe_remove_dead_notes): New.
15266 (update_life_info): New.
15267 (prepend_reg_notes): New.
15268 (replace_insns): New.
15269 * output.h (update_life_info): Declare.
15270 * recog.c (split_block_insns): Use update_life_info.
15271 * resource.c (find_free_register): Use reg_alloc_order, don't use
15272 fixed regs, make sure the mode is supported, don't use new regs.
15273 (reg_dead_p): New.
15274 * rtl.h (replace_insns): Declare.
15275
15276 Tue Aug 24 13:48:39 1999 Nathan Sidwell <nathan@acm.org>
15277
15278 * expr.c (expand_expr): Cope with COND_EXPRs with one
15279 non-returning branch.
15280
15281 Mon Aug 23 22:28:16 1999 Mark Mitchell <mark@codesourcery.com>
15282
15283 * expr.c (store_expr): Always pass down the target, even when not
15284 doing CSE.
15285
15286 1999-08-24 Nick Clifton <nickc@cygnus.com>
15287
15288 * configure.in: Define target_cpu_default for v850 targets.
15289 * configure: Regenerate
15290
15291 * config/v850/v850.h (TARGET_CPU_generic): Define.
15292 (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
15293 addresses are 4 byte aligned.
15294
15295 * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
15296 addresses.
15297
15298 Tue Aug 24 09:32:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15299
15300 * genattr.c (function_unit_desc): Constify a char*. Add prototype.
15301 (main): Add prototypes.
15302
15303 * genattrtab.c (substitute_address, write_const_num_delay_slots,
15304 attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
15305 (write_attr_get): Emit prototypes along with function definition.
15306 (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
15307 (write_complex_function): Emit static prototype along with
15308 function definition.
15309
15310 * genemit.c (gen_split): Emit prototypes along with function
15311 definition.
15312
15313 * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
15314 Likewise for predicates and `insn_operand_predicate'.
15315 (process_template): Emit static prototype along with function
15316 definition.
15317
15318 * genrecog.c (make_insn_sequence): Constify a char*. Add
15319 prototypes for get_split_*().
15320 (write_subroutine): Emit prototypes along with function
15321 definition.
15322
15323 Tue Aug 24 12:35:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15324
15325 * gcse.c (find_avail_set): Follow chains of register-register copies.
15326 Use oprs_not_set_p to guarantee that the returned value can be
15327 substituted.
15328 (cprop_insn): Don't verify the return value of find_avail_set with
15329 oprs_not_set_p.
15330
15331 * gcse.c (cprop_jump): New function, broken out of cprop_insn.
15332 (cprop_cc0_jump): New function.
15333 (cprop_insn): Break out new function cprop_jump and use it.
15334 Also use cprop_cc0_jump for machines with CC0.
15335 (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
15336
15337 * tree.h (current_function_calls_setjmp,
15338 current_function_calls_longjmp): Delete declarations.
15339 * dsp16xx.c: Include "function.h".
15340 * elxsi.c: Likewise.
15341 * gmicro.c: Likewise.
15342 * h8300.c: Likewise.
15343 * i370.c: Likewise.
15344 * m32r.c: Likewise.
15345 * mn10200.c: Likewise.
15346 * mn10300.c: Likewise.
15347 * ns32k.c: Likewise.
15348 * spur.c: Likewise.
15349 * v850.c: Likewise.
15350
15351 * rtl.h (rtx_equal_function_value_matters): Declare.
15352 * toplev.c (rtx_equal_function_value_matters): Don't declare.
15353 * cse.c: Likewise.
15354 * function.c: Likewise.
15355 * emit-rtl.c: Likewise.
15356
15357 Tue Aug 24 02:47:44 1999 Jeffrey A Law (law@cygnus.com)
15358
15359 * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
15360 call.
15361
15362 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15363
15364 * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
15365 exactly.
15366
15367 Mon Aug 23 23:35:52 1999 Matthias Klose <doko@cs.tu-berlin.de>
15368
15369 * cpp.texi: Add a node documenting macro varargs (copied
15370 from extend.texi).
15371
15372 1999-08-23 22:23 -0700 Zack Weinberg <zack@bitmover.com>
15373
15374 * cppspec.c: Put a null pointer at the end of the new argv.
15375
15376 Mon Aug 23 21:23:24 1999 Jeffrey A Law (law@cygnus.com)
15377
15378 * configure.in: Remove code to select/de-select the haifa
15379 scheduler. Every scheduled port gets haifa now.
15380 * configure: Rebuilt.
15381 * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
15382 * sched.c Deleted.
15383 * Makefile.in: Corresponding changes.
15384
15385 Mon Aug 23 16:04:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15386
15387 * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
15388 All callers changed.
15389 (prepare_float_lib_cmp): Likewise.
15390 Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
15391 * expr.h (emit_float_lib_cmp): Delete declaration.
15392 * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
15393 * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
15394 * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
15395 specially.
15396 (cmptf): Now conditional on TARGET_HARD_QUAD.
15397
15398 Fri Aug 20 17:52:27 1999 Jim Wilson <wilson@cygnus.com>
15399
15400 * resource.c (mark_target_live_regs): Use
15401 PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
15402
15403 Fri Aug 20 19:07:55 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15404
15405 * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
15406
15407 * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
15408
15409 * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
15410
15411 Fri Aug 20 18:53:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15412
15413 * rtl.h (rtx_format): Constify a char*.
15414
15415 * rtl.c (rtx_format): Likewise.
15416 (copy_rtx, copy_most_rtx, read_rtx): Likewise.
15417 (init_rtl): Use accessor macro, not `rtx_format'.
15418
15419 * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
15420 char*.
15421
15422 * caller-save.c (mark_referenced_regs): Likewise.
15423
15424 * combine.c (subst, make_compound_operation, known_cond,
15425 gen_rtx_combine, update_table_tick, get_last_value_validate,
15426 use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
15427
15428 * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
15429 refers_to_p, canon_reg, fold_rtx, cse_process_notes,
15430 count_reg_usage): Likewise.
15431
15432 * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
15433 Likewise.
15434
15435 * final.c (leaf_renumber_regs_insn): Likewise.
15436
15437 * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
15438 dump_edge_info, count_reg_references): Likewise.
15439
15440 * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
15441 fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
15442 Likewise.
15443
15444 * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
15445 oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
15446 add_label_notes): Likewise.
15447
15448 * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
15449 clear_struct_flag, count_sub_rtxs, count_alternatives,
15450 compares_alternatives_p, contained_in_p, walk_attr_value,
15451 write_expr_attr_cache): Likewise.
15452
15453 * genconfig.c (walk_insn_part): Likewise.
15454
15455 * genemit.c (max_operand_1, gen_exp): Likewise.
15456
15457 * genextract.c (walk_rtx): Likewise.
15458
15459 * genflags.c (num_operands): Likewise.
15460
15461 * genoutput.c (scan_operands): Likewise.
15462
15463 * genpeep.c (match_rtx): Likewise.
15464
15465 * genrecog.c (add_to_sequence): Likewise.
15466
15467 * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
15468 Likewise.
15469
15470 * integrate.c (save_constants, copy_for_inline,
15471 copy_rtx_and_substitute, subst_constants, restore_constants):
15472 Likewise.
15473
15474 * jump.c (mark_jump_label, invert_exp, redirect_exp,
15475 rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
15476
15477 * local-alloc.c (contains_replace_regs, memref_referenced_p):
15478 Likewise.
15479
15480 * loop.c (record_excess_regs, rtx_equal_for_loop_p,
15481 add_label_notes, replace_call_address, count_nonfixed_reads,
15482 invariant_p, find_single_use_in_loop, find_mem_givs,
15483 find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
15484 Likewise.
15485
15486 * print-rtl.c (reg_names, print_rtx): Likewise.
15487
15488 * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
15489
15490 * reg-stack.c (stack_regs_mentioned_p, record_label_references,
15491 record_reg_life_pat, swap_rtx_condition, goto_block_pat,
15492 print_blocks): Likewise.
15493
15494 * regclass.c (fix_register, record_address_regs,
15495 reg_scan_mark_refs): Likewise.
15496
15497 * regmove.c (stable_but_for_p): Likewise.
15498
15499 * reload.c (loc_mentioned_in_p, operands_match_p,
15500 find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
15501 copy_replacements, refers_to_regno_for_reload_p,
15502 refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
15503 reload_when_needed_name, reg_class_names, debug_reload_to_stream):
15504 Likewise.
15505
15506 * reload1.c (eliminate_regs, scan_paradoxical_subregs,
15507 delete_address_reloads_1, count_occurrences,
15508 reload_cse_mem_conflict_p, reload_combine_note_use,
15509 add_auto_inc_notes): Likewise.
15510
15511 * resource.c (mark_referenced_resources, mark_set_resources):
15512 Likewise.
15513
15514 * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
15515 reg_mentioned_p, regs_set_between_p, modified_between_p,
15516 modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
15517 rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
15518 may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
15519 jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
15520
15521 * sched.c (sched_analyze_2, attach_deaths): Likewise.
15522
15523 * stupid.c (stupid_mark_refs): Likewise.
15524
15525 * unroll.c (remap_split_bivs): Likewise.
15526
15527 * varasm.c (mark_constants): Likewise.
15528
15529 * a29k/a29k.c (uses_local_reg_p): Likewise.
15530
15531 * alpha/alpha.c (summarize_insn): Likewise.
15532
15533 * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
15534 eliminate_lr2ip): Likewise.
15535
15536 * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
15537
15538 * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
15539 reg_mentioned_in_mem): Likewise.
15540
15541 * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
15542 symbolic_reference_mentioned_p): Likewise.
15543
15544 * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
15545
15546 * sh/sh.c (regs_used, mark_use): Likewise.
15547
15548 * vax/vax.c (vax_rtx_cost): Likewise.
15549
15550 Fri Aug 20 18:38:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15551
15552 * machmode.h (mode_name): Constify a char*.
15553
15554 * rtl.c (mode_name): Likewise.
15555
15556 * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
15557
15558 * optabs.c (init_libfuncs): Constify a char*.
15559
15560 * print-tree.c (mode_name): Remove redundant declaration.
15561 (print_node): Use accessor macro, not `mode_name'.
15562
15563 * reload1.c (dump_needs): Constify a char*. Use accessor macro,
15564 not `mode_name'.
15565 (new_spill_reg): Constify a char*.
15566
15567 * tree.c (mode_name): Remove redundant declaration.
15568
15569 Fri Aug 20 18:31:26 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15570
15571 * rtl.c (rtx_name): Constify a char*.
15572
15573 * rtl.h (rtx_name, fix_sched_param): Likewise.
15574
15575 * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
15576 (mypr): Use accessor macro, not `rtx_name'.
15577
15578 * genemit.c (print_code): Constify a char*.
15579
15580 * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
15581
15582 * genpeep.c (print_code): Constify a char*.
15583
15584 * genrecog.c (print_code): Likewise.
15585
15586 * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
15587 end_bb): Add static prototype.
15588 (draw_edge): Constify a char*.
15589 (end_bb): Remove unused parameter.
15590
15591 * haifa-sched.c (fix_sched_param, safe_concat, print_exp
15592 print_block_visualization): Constify a char*.
15593
15594 Fri Aug 20 15:02:10 1999 Mark Mitchell <mark@codesourcery.com>
15595
15596 * c-common.c (c_get_alias_set): Update comment.
15597
15598 1999-08-20 Andreas Jaeger <aj@arthur.rhein-neckar.de>
15599
15600 * linux.h (LIB_SPEC): Added.
15601
15602 Fri Aug 20 22:32:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15603
15604 * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
15605
15606 1999-08-19 18:43 -0700 Zack Weinberg <zack@bitmover.com>
15607
15608 * tree.c (expr_check): Fix typo in last change.
15609
15610 1999-08-19 14:44 -0700 Zack Weinberg <zack@bitmover.com>
15611
15612 * rtl.def (NOTE): Change format to "iuu0n".
15613 (ADDR_DIFF_VEC): Change format to "eEee0".
15614 (ADDRESSOF): Change format to "eit".
15615
15616 * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
15617 (RTVEC_ELT): Change to match.
15618 (XVECEXP): Use XVEC and RTVEC_ELT.
15619 (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
15620 ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
15621 (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
15622 CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
15623 TRAP_CONDITION, TRAP_CODE): Use XEXP.
15624 (INTVAL): Use XWINT.
15625 (ADDRESSOF_DECL): Use XTREE.
15626 (SET_ADDRESSOF_DECL): Delete.
15627 (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
15628 NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been
15629 ifdefed out since 2.6 at least.
15630 (gen_rtvec_vv): Delete prototype.
15631
15632 * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
15633 not rtunion.
15634 (copy_most_rtx): Handle 't' format letter.
15635 * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
15636 (gen_rtvec_vv): Delete function. All callers changed to use
15637 gen_rtvec_v instead.
15638 * print-rtl.c (print_rtx): Move special casing of NOTEs to
15639 the '0' format letter.
15640
15641 * function.c (gen_mem_addressof): Don't use
15642 SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
15643 instead.
15644 * integrate.c (copy_rtx_and_substitute): Likewise.
15645 Copy 't' slots with XTREE.
15646 (subst_constants): Treat 't' slots like '[swi]' slots.
15647 * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
15648 * jump.c (rtx_equal_for_thread_p): Likewise.
15649 * rtlanal.c (rtx_equal_p): Likewise.
15650 * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
15651 only four arguments.
15652 * gengenrtl.c (type_from_format): Provide correct types for
15653 'b' and 't' slots.
15654
15655
15656 * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
15657 If a recent gcc is in use (always in stage2 and beyond), use
15658 statement expressions, so we don't make a function call unless
15659 the check fails. Evaluate arguments exactly once.
15660 (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
15661 TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
15662 Delete.
15663 (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
15664 they evaluate their arguments exactly once, irrespective of
15665 the compiler in use.
15666
15667 * tree.c [ENABLE_CHECKING]: Define whichever set of functions
15668 is used by the currently-enabled check macros. This is:
15669 (tree_check_failed, tree_class_check_failed): For gcc.
15670 (tree_check, tree_class_check, cst_or_constructor_check,
15671 expr_check): For other compilers.
15672
15673 * gencheck.c: Do not define any *_CHECK1 macros.
15674
15675 Thu Aug 19 14:42:38 1999 Mike Stump <mrs@wrs.com>
15676 Mark Mitchell <mark@codesourcery.com>
15677
15678 * c-common.c (c_get_alias_set): Fix support for poitners and
15679 references.
15680
15681 Thu Aug 19 11:51:22 EDT 1999 John Wehle (john@feith.com)
15682
15683 * alias.c: Include tree.h.
15684 (nonlocal_reference_p, mark_constant_function): New functions.
15685 * flow.c (life_analysis): Call mark_constant_function.
15686 * rtl.h (mark_constant_function): Declare it.
15687
15688 Thu Aug 19 15:02:01 1999 Nick Clifton <nickc@cygnus.com>
15689
15690 * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
15691 unrecognisable switches.
15692
15693 Wed Aug 18 23:31:57 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15694
15695 * loop.c (recombine_givs): Set ix field after sorting.
15696 (recombine_givs): Remove bogus index / giv lockstep looping.
15697
15698 Wed Aug 18 18:20:40 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15699
15700 * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
15701 on CODE.
15702 (emit_store_flag_force): Use do_compare_rtx_and_jump.
15703 (do_cmp_and_jump): Formatting fixes.
15704 * expr.c (do_compare_and_jump): Renamed from compare; changed to call
15705 do_compare_rtx_and_jump instead of compare_from_rtx.
15706 (do_compare_rtx_and_jump): New function; mostly copied from
15707 compare_from_rtx.
15708 (do_jump_for_compare): Delete.
15709 (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
15710 MIN_EXPR.
15711 (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
15712 of compare/do_jump_for_compare pairs.
15713 (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
15714 (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
15715 compare_from_rtx/do_jump_for_compare pairs.
15716 (do_jump_by_parts_equality): Likewise.
15717 (do_jump_by_parts_equality_rtx): Likewise.
15718 * expr.h (do_compare_rtx_and_jump): Declare.
15719 * optabs.c (prepare_cmp_insn): New function, contains most of the code
15720 that used to be in emit_cmp_insn.
15721 (cmp_available_p): New function.
15722 (prepare_operand): New function.
15723 (emit_cmp_and_jump_insn_1): New function, contains some code that used
15724 to be in emit_cmp_insn.
15725 (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
15726 parameters to be pointers; don't emit final compare but modify some of
15727 the values pointed to by the args so the caller can perform the
15728 correct comparison.
15729 (expand_binop): Call emit_store_flag_force with signed forms of
15730 comparison code.
15731 (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
15732 emit_jump_insn pair.
15733 (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
15734 emit_cmp_and_jump_insn_1. Call emit_queue.
15735 (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
15736 arg.
15737 * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
15738 jump sets cc0 before deleting it.
15739 * integrate.c (expand_inline_function): Likewise.
15740 * unroll.c (unroll_loop): Similar changes in several places.
15741 (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
15742 before deleting it.
15743
15744 Wed Aug 18 06:37:44 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15745
15746 * Makefile.in (insn-recog.o): Update dependencies.
15747 * genrecog.c (main): Make generated file include "function.h".
15748
15749 Sat Aug 14 00:54:57 1999 Geoffrey Keating <geoffk@cygnus.com>
15750
15751 * cse.c (cse_insn): Call never_reached_warning when a jump is
15752 changed to be unconditional.
15753 * flags.h: Declare warn_notreached.
15754 * flow.c (delete_block): Call never_reached_warning when
15755 a block is deleted.
15756 * jump.c (delete_barrier_successors): Call never_reached_warning
15757 when we delete everything after a BARRIER.
15758 (never_reached_warning): New function.
15759 * rtl.h: Declare never_reached_warning.
15760 * toplev.c (warn_notreached): New variable.
15761 (lang_independent_options): Set warn_notreached
15762 when -Wunreachable-code.
15763 (compile_file): We need line numbers for -Wunreachable-code.
15764
15765 Tue Aug 17 22:06:11 1999 Jan Hubicka <hubicka@freesoft.cz>
15766
15767 * haifa-sched.c (insn_unit): Fix typo on out of range test.
15768 * sched.c (insn_unit): Likewise.
15769
15770 Tue Aug 17 21:57:23 1999 Andreas Schwab <schwab@suse.de>
15771
15772 * combine.c (distribute_notes): Handle REG_EH_RETHROW.
15773
15774 Tue Aug 17 17:39:43 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
15775
15776 * flow.c (create_edge_list): Use xmalloc, not malloc.
15777
15778 Tue Aug 17 01:40:54 1999 Loren Rittle <ljrittle@acm.org>
15779
15780 * fixinc/inclhack.def (no_double_slash): Do not trash single-line
15781 C-style comments. Do not lose the character before double slash.
15782
15783 Mon Aug 16 18:08:22 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
15784
15785 * basic-block.h (struct edge_list): Stucture to maintain a vector
15786 of edges.
15787 (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
15788 INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
15789 (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
15790 New function prototypes.
15791 * flow.c (create_edge_list): Function to create an edge list.
15792 (free_edge_list): Discards memory used by an edge list.
15793 (print_edge_list): Debug output showing an edge list.
15794 (verify_edge_list): Internal consistency check for an edge list.
15795 (find_edge_index): Function to find an edge index for a pred and succ.
15796
15797 Mon Aug 16 11:56:36 1999 Mark Mitchell <mark@codesourcery.com>
15798
15799 * tree.c (type_hash_add): Use permalloc to allocate nodes in the
15800 hashtable.
15801
15802 Mon Aug 16 17:04:15 1999 Jorn Rennecke <amylaar@cygnus.co.uk>
15803
15804 * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
15805
15806 Fri Aug 13 15:20:43 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
15807
15808 * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
15809
15810 Fri Aug 13 10:21:28 1999 Nick Clifton <nickc@cygnus.com>
15811
15812 * toplev.c (rest_of_compilation): Allow machine dependent
15813 reorganisation pass to place information into the RTL dump
15814 file if it so wishes.
15815
15816 Sun Aug 15 12:41:21 1999 Jim Wilson <wilson@cygnus.com>
15817
15818 * explow.c (hard_function_value): Use VOIDmode instead of
15819 MAX_MACHINE_MODE.
15820 * stmt.c (expand_return): Likewise.
15821 * stor-layout.c (get_best_mode): Likewise.
15822
15823 * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
15824 emit call instead of emit_insn call.
15825
15826 Sat Aug 14 15:04:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
15827
15828 * configure.in: Handle --disable/enable-win32-registry.
15829 * install.texi: Document --disable/enable-win32-registry.
15830 * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
15831 (WIN32_REGISTRY_KEY): New macro.
15832 * prefix.c: Use to enable/disable win32-specific code.
15833 (lookup_key): Use versioned key.
15834 * configure: Regenerate.
15835 * config.in: Likewise.
15836
15837 Fri Aug 13 17:41:55 1999 Jason Merrill <jason@yorick.cygnus.com>
15838
15839 * cpplib.c (read_line_number): New fn, split out of...
15840 (do_line): Here.
15841
15842 Fri Aug 13 14:18:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
15843
15844 tree.c (lang_unsave_expr_now) : New.
15845 (unsave_expr_now): Call lang_unsave_expr_now.
15846 tree.h (lang_unsave_expr_now) : New.
15847
15848 Fri Aug 13 00:49:46 1999 Jason Merrill <jason@yorick.cygnus.com>
15849
15850 * toplev.c (flag_new_exceptions): On by default.
15851
15852 1999-08-13 Michael Meissner <meissner@cygnus.com>
15853
15854 * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
15855
15856 Fri Aug 13 01:29:57 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
15857
15858 * dwarfout.c (fundamental_type_code): Return FT_boolean for
15859 INTEGER_TYPE with precision==1, it's __java_boolean.
15860
15861 Thu Aug 12 23:51:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15862
15863 * global.c (prune_preferences): Move some invariants out of the
15864 inner loop.
15865
15866 Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com)
15867
15868 * configure.in (alpha*-dec-osf*): Add osf5.
15869
15870 Sun Aug 1 22:24:03 1999 Philip Blundell <philb@gnu.org>
15871
15872 * configure.in: Rework handling of ARM GNU/Linux slightly.
15873 (arm*-*-linux-gnuoldld): New target.
15874 * configure: Regenerate.
15875 * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
15876 arm-*-elf. Mention that arm-*-linux-gnuaout is obsolete.
15877 * config/arm/linux-oldld.h: New file.
15878 * config/arm/linux-elf26.h: Don't include linux-elf.h.
15879 (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
15880 Don't define.
15881 * config/arm/linux-elf.h (ASM_SPEC): Define.
15882 (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
15883 SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
15884 for 26-bit APCS and old linker.
15885 (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
15886 `arm_elf'.
15887 (FP_DEFAULT): Define to FP_SOFT3 for all machines.
15888 * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
15889 don't define `arm' or `arm_elf'.
15890 * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
15891 MULTILIB_DIRNAMES): Define. Fix typo in comment.
15892
15893 Thu Aug 12 10:14:47 1999 Andreas Schwab <schwab@suse.de>
15894
15895 * rtl.texi: Fix typo.
15896
15897 Wed Aug 11 23:50:57 1999 Jason Merrill <jason@yorick.cygnus.com>
15898
15899 * invoke.texi (C++ Dialect Options): Add -fms-extensions.
15900
15901 Wed Aug 11 12:59:37 1999 Mark Mitchell <mark@codesourcery.com>
15902
15903 * extend.texi (C++ Signatures): Remove node.
15904 * invoke.texi: Remove discussion of -fhandle-signatures,
15905 signature, sigof, __signature__, and __sigof__.
15906
15907 Wed Aug 11 03:38:25 1999 Jeffrey A Law (law@cygnus.com)
15908
15909 * Makefile.in (JAVAGC): Removed.
15910
15911 Wed Aug 11 02:13:26 1999 Mumit Khan <khan@xraylith.wisc.edu>
15912
15913 * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
15914
15915 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
15916
15917 * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
15918
15919 1999-08-11 Richard Earnshaw (rearnsha@arm.com)
15920
15921 * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
15922 a register that is already known to be a pointer.
15923
15924 1999-08-11 Bruce Korb <ddsinc09@ix.netcom.com>
15925
15926 * fixinc/inclhack.tpl: Only install assert.h conditionally.
15927 * fixinc/inclhack.sh: Regenerated.
15928 * fixinc/fixincl.sh: Regenerated.
15929
15930 Wed Aug 11 00:34:22 1999 Joe Buck <jbuck@synopsys.com>
15931
15932 * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
15933 Fix documentation of -ansi flag to describe its C++ behavior.
15934 Remove bogus reference to GCC 2.9.
15935
15936 Tue Aug 10 17:19:02 1999 Jim Wilson <wilson@cygnus.com>
15937
15938 * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
15939 note if it is non-NULL.
15940
15941 Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
15942
15943 * except.h (eh_nesting_info): Add new structure defintion.
15944 (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
15945 (reachable_handlers, update_rethrow_references): Add function
15946 prototypes.
15947 * rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes
15948 a rethrow symbol instead of an integer exception region number.
15949 * flow.c (Make_edges): Use new exception nesting routines to determine
15950 which handlers are reachable from a CALL or asynchronous insn.
15951 Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
15952 goto receivers.
15953 (delete_eh_regions): Update rethrow labels, and don't delete
15954 regions which are the target of a rethrow.
15955 * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
15956 avoid overloading the SYMBOL_REF_USED flag.
15957 (rethrow_symbol_map): Use new rethrow_ref field.
15958 (rethrow_used): Use new rethrow_ref field.
15959 (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
15960 of an integer. Fix formatting.
15961 (output_exception_table_entry): Use new rethrow_ref field.
15962 (can_throw): Check for EH_REGION_NOTE before deciding
15963 whether a CALL can throw or not.
15964 (scan_region): Call rethrow_used() instead of accessing data structure.
15965 (update_rethrow_references): New function to make sure only regions
15966 which are still targets of a rethrow are flagged as such.
15967 (process_nestinfo): New static function to initialize a handler
15968 list for a specific region.
15969 (init_eh_nesting_info): New function to allocate and initialize
15970 the list of all EH handlers reachable from all regions.
15971 (reachable_handlers): New function to retrieve the list of handlers
15972 reachable from a specific region and insn.
15973 (free_eh_nesting_info): New function to dispose of a list of
15974 reachable handlers.
15975
15976 Tue Aug 10 10:39:31 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
15977
15978 * flow.c (split_edge): Set JUMP_LABEL field.
15979 (commit_one_edge_insertion): Set head correctly for insert_before.
15980 When inserting insns, update insn block numbers if allocated.
15981
15982 Tue Aug 10 09:26:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15983
15984 * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
15985 retry_incomplete_types): Add static prototype.
15986 (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
15987 dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
15988 dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
15989 dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
15990 dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
15991 Constify a char*.
15992
15993 * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
15994 dwarf2out_start_source_file, dwarf2out_line): Likewise.
15995
15996 Tue Aug 10 09:21:46 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15997
15998 * output.h (assemble_name): Constify a char*.
15999
16000 * varasm.c (UNIQUE_SECTION, assemble_start_function,
16001 assemble_variable, assemble_name): Likewise.
16002
16003 * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
16004
16005 * arm/pe.c (arm_pe_unique_section): Likewise.
16006
16007 * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
16008
16009 * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
16010
16011 * i386/interix.c (i386_pe_unique_section): Likewise.
16012
16013 * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
16014
16015 * i386/winnt.c (i386_pe_unique_section): Likewise.
16016
16017 * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
16018
16019 * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
16020
16021 * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
16022
16023 * pa/pa.c (output_call): Likewise.
16024
16025 * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
16026
16027 * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
16028
16029 * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
16030 Likewise.
16031
16032 * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
16033 Likewise.
16034
16035 * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
16036
16037 * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
16038 STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
16039
16040 * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
16041
16042 Mon Aug 9 19:54:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16043
16044 * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
16045
16046 Mon Aug 9 19:36:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16047
16048 * tree.h (lang_identify): Constify a char*.
16049 (print_error_function): Add extern prototype. Constify a char*.
16050
16051 * c-lang.c (lang_identify): Constify a char*.
16052
16053 * objc/objc-act.c (lang_identify): Constify a char*.
16054
16055 Mon Aug 9 16:21:53 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16056
16057 * genpeep.c (main): Make generated file include "function.h".
16058 * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
16059
16060 Mon Aug 9 10:08:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16061
16062 * Makefile.in: Update dependencies.
16063 * alias.c: Include "function.h"
16064 * c-decl.c: Likewise.
16065 * caller-save.c: Likewise.
16066 * calls.c: Likewise.
16067 * combine.c: Likewise.
16068 * cse.c: Likewise.
16069 * explow.c: Likewise.
16070 * final.c: Likewise.
16071 * global.c: Likewise.
16072 * graph.c: Likewise.
16073 * local-alloc.c: Likewise.
16074 * loop.c: Likewise.
16075 * optabs.c: Likewise.
16076 * profile.c: Likewise.
16077 * recog.c: Likewise.
16078 * regclass.c: Likewise.
16079 * regmove.c: Likewise.
16080 * reload.c: Likewise.
16081 * reorg.c: Likewise.
16082 * resource.c: Likewise.
16083 * sched.c: Likewise.
16084 * stupid.c: Likewise.
16085 * config/1750a/1750a.c: Likewise.
16086 * config/a29k/a29k.c: Likewise.
16087 * config/arc/arc.c: Likewise.
16088 * config/arm/arm.c: Likewise.
16089 * config/arm/thumb.c: Likewise.
16090 * config/c4x/c4x.c: Likewise.
16091 * config/clipper/clipper.c: Likewise.
16092 * config/convex/convex.c: Likewise.
16093 * config/fx80/fx80.c: Likewise.
16094 * config/i860/i860.c: Likewise.
16095 * config/m68k/m68k.c: Likewise.
16096 * config/m88k/m88k.c: Likewise.
16097 * config/mips/mips.c: Likewise.
16098 * config/pdp11/pdp11.c: Likewise.
16099 * config/pyr/pyr.c: Likewise.
16100 * config/romp/romp.c: Likewise.
16101 * config/sh/sh.c: Likewise.
16102 * config/tahoe/tahoe.c: Likewise.
16103 * config/vax/vax.c: Likewise.
16104 * config/we32k/we32k.c: Likewise.
16105 * config/sparc/sparc.c: Include "function.h".
16106 (mem_min_alignment): Test current_function rather than
16107 regno_pointer_align.
16108 * config/pa/pa.c: Likewise.
16109 (compute_frame_size): Delete declaration of
16110 current_function_outgoing_args_size.
16111 * config/arc/arc.h (current_function_varargs): Delete declaration.
16112 * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
16113 declaration.
16114 * config/i370/i370.h (current_function_outgoing_args_size): Delete
16115 declaration.
16116 * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
16117 current_function_uses_pic_offset_table.
16118 * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
16119 of current_function_returns_pointer.
16120 * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
16121 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
16122 * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
16123 * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
16124 * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
16125 * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
16126 * config/m88k/m88k.c: Include "function.h"
16127 (call_used_regs, current_function_pretend_args_size,
16128 current_function_outgoing_args_size, frame_pointer_needed): Delete
16129 declarations.
16130 * config/m88k/m88k.h (current_function_pretend_args_size): Delete
16131 declaration.
16132 * config/mips/mips.h (current_function_calls_alloca): Delete
16133 declaration.
16134 * config/mn10200/mn10200.h (current_function_needs_context,
16135 rtx_equal_function_value_matters): Delete declarations.
16136 * config/ns32k/ns32k (current_function_uses_pic_offset_table,
16137 flag_pic): Delete declarations.
16138 * config/pa/pa.h (current_function_pretend_args_size,
16139 current_function_decl): Delete declarations.
16140 * config/pa/som.h (current_function_varargs): Delete declaration.
16141 * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
16142 declaration.
16143 * config/pyr/pyr.h (current_function_pretend_args_size,
16144 current_function_args_size, current_function_calls_alloca): Delete
16145 declarations.
16146 * config/sh/sh.h (current_function_varargs): Delete declaration.
16147 * config/sparc/sparc.h (current_function_outgoing_args_size,
16148 current_function_calls_alloca, current_function_decl): Delete
16149 declarations.
16150 * config/spur/spur.h (current_function_pretend_args_size,
16151 current_function_calls_alloca): Delete declarations.
16152 * config/v850/v850.c (current_function_outgoing_args_size): Delete
16153 declaration.
16154 * config/vax/vms.h (current_function_name): Delete declaration.
16155 * gcse.c: Include "function.h".
16156 (current_function_name, current_function_calls_setjmp): Delete
16157 declarations.
16158 * haifa-sched.c: Include "function.h".
16159 (forced_labels): Delete declaration.
16160 * jump.c: Likewise.
16161 * reg-stack.c: Likewise.
16162 * reload1.c: Likewise.
16163 * genemit.c (main): Make generated file include function.h.
16164 * genoutput.c (output_prologue): Likewise.
16165
16166 * builtins.c (saveregs_value, apply_args_value): Delete variables.
16167 * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
16168 sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
16169 regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
16170 regno_reg_rtx, sequence_stack): Delete variables. Add accessor
16171 macros for some of them.
16172 (emit_filename, emit_lineno): Delete declarations.
16173 (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy. Access
16174 regno_pointer_* variables through current_function.
16175 (gen_inline_header_rtx): Delete function.
16176 (save_emit_status): Delete function.
16177 (set_new_last_label_num): New function.
16178 (clear_emit_caches): New function.
16179 (restore_emit_status): Just clear last_labelnum and call
16180 clear_emit_caches.
16181 (get_last_insn_anywhere): Variable sequence_stack is now accessed
16182 through macro seq_stack.
16183 (add_insn_after): Likewise.
16184 (add_insn_before): Likewise.
16185 (remove_insn): Likewise.
16186 (pop_topmost_sequence): Likewise.
16187 (in_sequence_p): Likewise.
16188 (start_sequence_for_rtl_expr): Likewise.
16189 (start_sequence): Likewise, and likewise for
16190 sequence_rtl_expr/seq_rtl_expr.
16191 (push_topmost_sequence): Likewise.
16192 (end_sequence): Likewise.
16193 (init_virtual_regs): Now takes a "struct emit_status *" argument.
16194 All callers changed. Store into that pointer instead of globals.
16195 (init_emit): Allocate emit elt of current_function.
16196 Changes for sequence_rtl_expr/sequence_stack renaming.
16197 Call clear_emit_caches instead of doing it in-line.
16198 Access regno_pointer_* variables through current_function.
16199 (init_emit_once) Don't clear sequence_stack.
16200
16201 * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
16202 Delete variables.
16203 (arg_pointer_save_area): Delete declaration.
16204 (finish_expr_for_function): Renamed from init_queue; no longer static.
16205 (init_expr): Don't call init_queue.
16206 (save_expr_status, restore_expr_status): Delete functions.
16207 (expand_expr): Changes to reflect new layout of struct function.
16208 Don't access current_function_check_memory_usage when current_function
16209 is 0.
16210 * expr.h (forced_labels, save_expr_regs, saveregs_value,
16211 apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
16212 current_function_outgoing_args_size, current_function_arg_offset_rtx,
16213 current_function_uses_const_pool, function_call_count,
16214 current_function_uses_pic_offset_table, nonlocal_labels,
16215 current_function_internal_arg_pointer, nonlocal_goto_stack_level,
16216 current_function_check_memory_usage, nonlocal_goto_handler_slots,
16217 pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
16218 declarations.
16219 (finish_expr_for_function): Declare.
16220 * flags.h (current_function_has_nonlocal_label,
16221 current_function_has_nonlocal_goto, current_function_is_thunk,
16222 current_function_has_computed_jump): Delete declarations.
16223 * flow.c (forced_labels): Delete declaration.
16224 * function.c (current_function_pops_args,
16225 current_function_returns_struct, current_function_returns_pcc_struct,
16226 current_function_needs_context, current_function_calls_setjmp,
16227 current_function_calls_longjmp, current_function_has_nonlocal_label,
16228 current_function_has_nonlocal_goto, current_function_is_thunk,
16229 current_function_has_computed_jump, current_function_calls_alloca,
16230 current_function_contains_functions, current_function_returns_pointer,
16231 current_function_epilogue_delay_list, current_function_args_size,
16232 current_function_pretend_args_size, current_function_arg_offset_rtx,
16233 current_function_outgoing_args_size, current_function_varargs,
16234 current_function_stdarg, current_function_args_info, cleanup_label,
16235 current_function_name, current_function_uses_const_pool,
16236 current_function_instrument_entry_exit, current_function_return_rtx,
16237 current_function_uses_pic_offset_table, nonlocal_labels,
16238 current_function_internal_arg_pointer, current_function_cannot_inline,
16239 current_function_check_memory_usage, function_call_count,
16240 nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
16241 nonlocal_goto_stack_level, return_label, save_expr_regs,
16242 stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
16243 tail_recursion_reentry, arg_pointer_save_area, frame_offset,
16244 context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
16245 last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
16246 temp_slot_level, var_temp_slot_level, target_temp_slot_level):
16247 Delete variables.
16248 (push_function_context_to): Don't save them. Don't call
16249 save_storage_status, save_emit_status or save_expr_status.
16250 (pop_function_context_from): Don't restore them. Don't call
16251 restore_storage_status or restore_expr_status.
16252 (get_func_frame_size): New function.
16253 (get_frame_size): Use it.
16254 (assign_outer_stack_local): Reflect some member name changes in struct
16255 function.
16256 (put_reg_into_stack): Likewise.
16257 (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
16258 seq_rtl_expr.
16259 (fixup_var_refs): Likewise.
16260 (fix_lexical_addr): Likewise.
16261 (trampoline_address): Likewise.
16262 (prepare_function_start): Clear field inlinable of current_function.
16263 (init_function_for_compilation): New function.
16264 (expand_dummy_function_end): New function.
16265 (expand_function_end): Call finish_expr_for_function.
16266 * function.h (struct emit_status): New; fields moved here from struct
16267 function and from global variables. Add accessor macros for some of
16268 the fields.
16269 (struct expr_status): Likewise.
16270 (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
16271 (struct function): Add fields expr and emit, inlinable, inl_emit,
16272 original_arg_vector, original_decl_initial, inl_last_parm_insn,
16273 inl_max_label_num. Add many comments.
16274 Add accessor macros for all elts of struct function that no longer
16275 have a global variable.
16276 (cleanup_label, return_label, frame_offset, tail_recursion_label,
16277 tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
16278 stack_slot_list): Delete declarations.
16279 (get_func_frame_size): Declare.
16280 (save_expr_status, restore_expr_status, save_emit_status,
16281 save_storage_status, restore_storage_status): Delete declarations.
16282 (init_virtual_regs): Declare.
16283 * output.h (current_function_pops_args,
16284 current_function_returns_struct, current_function_returns_pcc_struct,
16285 current_function_needs_context, current_function_calls_setjmp,
16286 current_function_calls_longjmp, current_function_calls_alloca,
16287 current_function_has_nonlocal_label, current_function_varargs,
16288 current_function_has_computed_jump, current_function_returns_pointer,
16289 current_function_contains_functions, current_function_args_size,
16290 current_function_pretend_args_size, current_function_stdarg,
16291 current_function_outgoing_args_size, current_function_args_info,
16292 current_function_name, current_function_return_rtx,
16293 current_function_epilogue_delay_list,
16294 current_function_uses_const_pool, current_function_cannot_inline):
16295 Delete declarations.
16296 * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
16297 regno_reg_rtx): Delete declaration.
16298 (REGNO_POINTER_FLAG): Delete macro.
16299 * stmt.c (expand_goto): Changes to reflect that some fields in struct
16300 function were renamed.
16301 * stor-layout.c (save_storage_status, restore_storage_status): Delete
16302 functions.
16303 * toplev.c: Include "function.h".
16304 (current_function_decl): Delete declaration.
16305 (compile_file): Call init_dummy_function_start and
16306 expand_dummy_function_end around some initializations that need to
16307 emit rtl.
16308 (rest_of_compilation): Use DECL_SAVED_INSNS properly.
16309 Call init_function_for_compilation.
16310 * unroll.c: Include "function.h"
16311 (unroll_loop): Access regno_pointer_* variables through
16312 current_function.
16313
16314 * tree.h (struct tree_decl): Add elt f to saved_insns member.
16315 (DECL_SAVED_INSNS): use it.
16316 (expand_dummy_function_end): Declare.
16317 (init_function_for_compilation): Declare.
16318 * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
16319 that it's no longer an INLINE_HEADER.
16320 (expand_call): Likewise.
16321 * integrate.c (finish_inline): Delete function.
16322 (max_parm_reg, parm_reg_stack_loc): Delete declarations.
16323 (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
16324 args. Don't generate an INLINE_HEADER rtx, just return the arg
16325 vector. All callers changed.
16326 (save_for_inline_copying): Create a duplicate struct emit_status to
16327 hold the emit state for compiling the current function. Use this and
16328 the other new fields in struct function that are for integration
16329 instead of an INLINE_HEADER.
16330 Use memcpy instead of bcopy.
16331 Store the current struct function in DECL_SAVED_INSNS of fndecl.
16332 (save_for_inline_nocopy): Similar changes, except no new emit_status
16333 is needed here.
16334 (expand_inline_function): Get information from function structure,
16335 not from an inline header rtx.
16336 (output_inline_function): Lose code to extract the necessary
16337 information from an inline header; simply put back the function
16338 structure into current_function. Clear its inlinable elt.
16339 * rtl.def (INLINE_HEADER): Delete.
16340 * rtl.h: Delete all accessors for an INLINE_HEADER.
16341 (gen_inline_header_rtx): Delete declaration.
16342 (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
16343 Delete declarations.
16344 (REGNO_POINTER_ALIGN): Delete.
16345 (clear_emit_caches): Declare.
16346 (set_new_last_label_num): Declare.
16347
16348 Mon Aug 9 01:52:24 1999 Jason Merrill <jason@yorick.cygnus.com>
16349
16350 * print-tree.c (print_node): Print base for OFFSET_TYPEs.
16351
16352 * except.c (expand_eh_region_start_for_decl): Always start a new block.
16353 * stmt.c (is_eh_region): Make sure current_function is present, too.
16354
16355 Mon Aug 9 01:15:24 1999 Jeffrey A Law (law@cygnus.com)
16356
16357 * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
16358 for 64bit PA targets.
16359
16360 * pa.h (SELECT_SECTION): Define.
16361 * som.h (SELECT_SECTION): Delete.
16362
16363 Sun Aug 8 15:13:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16364
16365 * alias.c (init_alias_analysis): Wrap call to
16366 `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
16367
16368 1999-08-07 Bruce Korb <autogen@linuxbox.com>
16369
16370 * fixinc/inclhack.def(irix_asm_apostrophe): IRIX 5.2's
16371 <sys/asm.h> contains an asm comment with an apostrophe
16372 * fixinc/inclhack.sh: regen
16373 * fixinc/fixincl.x: regen
16374
16375 Sat Aug 7 19:37:07 1999 Richard Henderson <rth@cygnus.com>
16376
16377 * function.c (init_function_start): Clear prologue & epilogue.
16378 (prologue_epilogue_contains): New function.
16379 * alias.c (init_alias_analysis): Use it.
16380 * rtl.h (prologue_epilogue_contains): Declare it.
16381
16382 Sat Aug 7 19:32:16 1999 Richard Henderson <rth@cygnus.com>
16383
16384 * jump.c (onlyjump_p): New function.
16385 * rtl.h: Declare it.
16386 * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
16387 of condjump_p in calling tidy_fallthru_edge and merge_blocks.
16388
16389 Sat Aug 7 17:09:36 1999 Richard Henderson <rth@cygnus.com>
16390
16391 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
16392 to invert loops. Simplify block scanning.
16393
16394 Sat Aug 7 02:11:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16395
16396 * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
16397 (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
16398
16399 1999-08-07 Jonathan Larmour <jlarmour@cygnus.co.uk>
16400
16401 * config/sparc/liteelf.h: New file to support sparclite-elf target
16402 * config/sparc/t-sp86x: New file to support sparc86x targets
16403 * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
16404 * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
16405 * configure.in: Support above target triplets
16406 * configure: Regenerated
16407
16408 Sat Aug 7 01:39:27 1999 Philippe De Muyter <phdm@macqel.be>
16409
16410 * fixinc/server.c (server_setup): Do not prefix function used as
16411 parameter with `&'.
16412
16413 Sat Aug 7 00:21:20 1999 Richard Henderson <rth@cygnus.com>
16414
16415 * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
16416 Remove fp reg alternatives.
16417
16418 Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com)
16419
16420 * Makefile.in (TAROUTOPTS): Kill.
16421 (install-headers-tar): Use "xpf" for tar headerfile extraction
16422 * i370/x-oe (TAROUTOPTS): Delete.
16423 * m68k/x-apollo68 (TAROUTOPTS): Delete.
16424 * m68k/x-hp320 (TAROUTOPTS): Delete.
16425 * m68k/x-hp320g (TAROUTOPTS): Delete.
16426 * gcc.texi: Update bug reporting text.
16427
16428 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16429
16430 * reg-stack.c (change_stack) Fixed problem with negative array index.
16431
16432 Fri Aug 6 23:08:44 1999 Jeffrey A Law (law@cygnus.com)
16433
16434 * extend.texi, install.texi: Fix spelling mistakes.
16435
16436 * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
16437 (s-attrtab); No longer try to use pre-made insn-attrtab file.
16438 * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
16439 PREMADE_ATTRTAB_MD.
16440 * mips/t-ecoff: Likewise.
16441 * mips/t-elf: Likewise.
16442 * mips/t-mips: Likewise.
16443 * mips/t-osfrose: Likewise.
16444 * mips/t-r3900: Likewise.
16445 * mips/t-svr3: Likewise.
16446 * mips/t-svr4: Likewise.
16447 * mips/t-ultrix: Likewise.
16448
16449 * gcc.texi: Document recommend means to provide software floating
16450 point libraries in libgcc.a
16451
16452 1999-08-06 Jason Merrill <jason@yorick.cygnus.com>
16453
16454 * c-lex.c (yylex): We can have a number with no digits.
16455
16456 Fri Aug 6 16:53:55 EDT 1999 John Wehle (john@feith.com)
16457
16458 * jump.c (delete_prior_computation): New function, broken
16459 out of delete_computation. Check for side effects with
16460 side_effects_p instead of FIND_REG_INC_NOTE. Handle
16461 multi-word hard registers.
16462 (delete_computation): Use it. Check for side effects with
16463 side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a
16464 missing REG_DEAD note for a register which is both set and
16465 used by an insn.
16466
16467 Fri Aug 6 11:05:29 1999 Jeffrey A Law (law@cygnus.com)
16468
16469 * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
16470 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
16471 (ASM_FILE_START): Import _mcount with the right type.
16472 (ASM_DECLARE_FUNCTION_NAME): Define.
16473 (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
16474 * pa.c (output_function_prologue): Always emit the function's label
16475 here.
16476 * pa.h (TEXT_SPACE_P): Define.
16477 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
16478 (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
16479 * som.h (TEXT_SPACE_P): Delete.
16480 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
16481 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
16482
16483 Thu Aug 5 19:29:39 1999 Jim Wilson <wilson@cygnus.com>
16484
16485 * expr.c (emit_group_load): Allow src to be a CONCAT.
16486
16487 Thu Aug 5 22:27:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16488
16489 * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
16490 (___mulsi3): Use '!' comment character.
16491
16492 Thu Aug 5 13:34:14 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16493
16494 * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
16495
16496 Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com)
16497
16498 * gcc.c: Update URLs and mail addresses.
16499 * gcc.texi: Likewise.
16500
16501 Thu Aug 5 01:14:13 1999 Daniel Jacobowitz <drow@false.org>
16502
16503 * rs6000.c (current_file_function_operand): Return zero for
16504 weak functions.
16505 (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
16506 weak symbols.
16507 * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
16508 for weak symbols.
16509
16510 Thu Aug 5 00:56:30 1999 Geoffrey Keating <geoffk@cygnus.com>
16511
16512 * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
16513 allocate space in the stack frame for the PIC register.
16514
16515 Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com)
16516
16517 * m68k.md (xordi3, anddi3): These patterns are not available on
16518 the coldfire.
16519
16520 Wed Aug 4 23:39:20 1999 Mark Mitchell <mark@codesourcery.com>
16521
16522 * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
16523 (PUT_REAL): Likewise.
16524
16525 Wed Aug 4 20:45:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16526
16527 * final.c (shorten_branches): Don't add an alignment for loops
16528 that have no label inside.
16529
16530 Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16531
16532 * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
16533 prototypes in macro HAVE_cmpstrsi.
16534
16535 * cpplib.c (cpp_get_token): Remove unused label `op3'.
16536
16537 * emit-rtl.c (operand_subword): Remove unused variable
16538 `bits_per_word'.
16539
16540 * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
16541
16542 * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
16543
16544 Wed Aug 4 13:29:23 1999 Zack Weinberg <zack@bitmover.com>
16545
16546 * cpphash.c (macroexpand): Delete leading whitespace when arg
16547 is concatenated before.
16548 (unsafe_chars): Correct test for whether + and - can extend a
16549 token.
16550
16551 * cppinit.c (cpp_start_read): Do dependencies for
16552 -include/-imacros files also.
16553
16554 * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
16555 tokenizing non-directive lines.
16556 (cpp_expand_to_buffer): Temporarily disable no-output mode.
16557 * cppmain.c: In no-output mode, just call cpp_scan_buffer for
16558 the input file.
16559
16560 Wed Aug 4 12:53:44 1999 Jason Merrill <jason@yorick.cygnus.com>
16561
16562 * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
16563
16564 * c-lex.c: Sync with C++ frontend.
16565 (linemode): New variable.
16566 (parse_float): imag, conversion_errno, and type are output only.
16567 (yylex): Adjust. Move initial '.' case into main switch.
16568 Use linemode.
16569 (handle_generic_pragma): Just deal with tokens.
16570 (readescape): Use ISXDIGIT and ISGRAPH.
16571 * c-parse.in: Add END_OF_LINE token.
16572
16573 * c-lex.c (lang_init): Generalize.
16574 (nextchar): Remove. Replace uses with UNGETC.
16575 (skip_white_space): Handle linemode here. Optimize for cpplib.
16576 (skip_white_space_on_line): Remove.
16577 (extend_token_buffer_to): New fn.
16578 (extend_token_buffer): Use it.
16579 (read_line_number, check_newline): Just deal with tokens.
16580 (token_getch, token_put_back): New fns.
16581 (yylex): Use them. More cpplib optimizations. Simplify.
16582
16583 Wed Aug 4 12:53:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
16584 Jason Merrill <jason@yorick.cygnus.com>
16585
16586 * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
16587 (consume_string): Make this smart about USE_CPPLIB.
16588 (check_newline): Rewrite to be intelligent about USE_CPPLIB.
16589 (yylex): Rewrite to be intelligent about USE_CPPLIB.
16590 Also, clean up cases where we redundantly set token_buffer[0].
16591 (read_line_number): New fn.
16592 (ignore_escape_flag): New variable.
16593
16594 Wed Aug 4 13:12:17 1999 Jeffrey A Law (law@cygnus.com)
16595
16596 * a29k/t-a29kbare: Fix some comments.
16597 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
16598 (FPBIT, DPBIT): Define.
16599 * a29k/t-vx29k: Likewise.
16600 * arc/t-arc: Likewise.
16601 * arm/t-arm-elf: Likewise.
16602 * arm/t-bare: Likewise.
16603 * arm/t-pe: Likewise.
16604 * arm/t-pe-thumb: Likewise.
16605 * arm/t-semi: Likewise.
16606 * arm/t-thumb: Likewise.
16607 * arm/t-thumb-elf: Likewise.
16608 * arm/t-thumb-linux: Likewise.
16609 * h8300/t-h8300: Likewise.
16610 * i960/t-i960: Likewise.
16611 * i960/t-vxworks960: Likewise.
16612 * m32r/t-m32r: Likewise.
16613 * mips/t-ecoff: Likewise.
16614 * mips/t-elf: Likewise.
16615 * mips/t-r3900: Likewise.
16616 * pa/t-pro: Likewise.
16617 * rs6000/t-aix43: Likewise.
16618 * rs6000/t-beos: Likewise.
16619 * rs6000/t-newas: Likewise.
16620 * rs6000/t-ppccomm: Likewise.
16621 * rs6000/t-rs6000: Likewise.
16622 * rs6000/t-winnt: Likewise.
16623 * rs6000/t-xnewas: Likewise.
16624 * rs6000/t-xrs6000: Likewise.
16625 * sh/t-sh: Likewise.
16626 * sparc/t-elf: Likewise.
16627 * sparc/t-sparcbare: Likewise.
16628 * sparc/t-sparclite: Likewise.
16629 * sparc/t-splet: Likewise.
16630 * v850/t-v850: Likewise.
16631 * mn10200/t-mn10200: Fix comments.
16632 * mn10300/t-mn10300: Likewise.
16633
16634 * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
16635 dummy operand. Allocate a new pseudo for the dummy operand.
16636 (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
16637
16638 * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
16639
16640 Wed Aug 4 11:53:55 1999 Tom Tromey <tromey@cygnus.com>
16641
16642 * configure: Rebuilt.
16643 * configure.in: Removed --enable-java-gc option and JAVAGC subst.
16644
16645 Wed Aug 4 09:06:14 1999 Richard Earnshaw (rearnsha@arm.com)
16646
16647 * recog.c (preproces_constraints): Zero recog_op_alt before
16648 processing the constraints.
16649
16650 * arm.c (typedef minipool_node): Renamed from pool_node.
16651 (minipool_vector, minipool_size, minipool_vector_label): Similarly.
16652 (add_minipool_constant): New function.
16653 (dump_minipool): New function.
16654 (find_barrier): Remove special case for getting the insn size of
16655 an insn that references the constant pool.
16656 (minipool_fixup): New structure.
16657 (push_minipool_barrier): New function.
16658 (push_minipool_fix): New function.
16659 (note_invalid_constants): New function.
16660 (add_pool_constant, dump_table, fixit, broken_move): Delete.
16661 (arm_reorg): Rewrite code to fix up the constant pool into a
16662 series of mini-pools embedded in the insn stream.
16663 (arm_output_epilogue): New function, made mainly from the body
16664 of output_func_epilogue.
16665 (output_func_epilogue): Move insn generation part of epilogue code
16666 to arm_output_epilogue.
16667 * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
16668 * arm.md (pool_range): New attribute.
16669 (zero_extendqidi2): Add attribute pool_range.
16670 (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
16671 extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
16672 pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
16673 movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
16674 movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
16675 (epilogue): New expand.
16676 (epilogue_insn): New insn. Call arm_output_epilogue.
16677
16678 * arm.c (arm_poke_function_name): Undo change of July 17. Tidy up.
16679 * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
16680
16681 Mon Aug 2 19:18:44 1999 Jason Merrill <jason@yorick.cygnus.com>
16682
16683 * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
16684
16685 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
16686
16687 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Define.
16688
16689 Wed Aug 4 02:15:32 1999 Richard Henderson <rth@cygnus.com>
16690
16691 * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
16692
16693 Wed Aug 4 01:48:08 1999 Jim Kingdon <http://developer.redhat.com>
16694
16695 * global.c: Fix comment.
16696
16697 Wed Aug 4 01:43:01 1999 Ian Lance Taylor <ian@zembu.com>
16698
16699 * gcc.c (access_check): New static function.
16700 (find_a_file): Use it when searching a directory list.
16701 * collect2.c (find_a_file): Don't accept directories found when
16702 searching a directory list.
16703
16704 Wed Aug 4 01:40:43 1999 Philippe De Muyter <phdm@macqel.be>
16705
16706 * tlink.c (symbol_hash_lookup): Do not prefix functions used as
16707 function parameters with `&'.
16708 (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
16709
16710 Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com)
16711
16712 * flow.c (delete_unreachable_blocks): Do not call merge_blocks
16713 or tidy_fallthru_edge if the last insn in the block is not
16714 an unconditional jump or a simple conditional jump.
16715
16716 Tue Aug 3 20:21:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16717
16718 * Makefile.in (c-decl.o): Depends on defaults.h.
16719
16720 Tue Aug 3 14:14:52 1999 Jeffrey A Law (law@cygnus.com)
16721
16722 * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
16723 PA1.1 and above.
16724 (CLASS_MAX_NREGS): Likewise.
16725
16726 Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com)
16727
16728 * cse.c (cse_insn): Fix dumb thinko in last change.
16729
16730 Tue Aug 3 10:36:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16731
16732 * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
16733 "const char *".
16734
16735 Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson <hp@bitrange.com>
16736
16737 * dwarf2out.c (add_location_or_const_value_attribute): Correct
16738 test for sizes of passed and declared parameter types.
16739
16740 Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16741
16742 * fixincludes: Fix the return type of bsearch, char* -> void*.
16743
16744 * fixinc/inclhack.def: Likewise.
16745
16746 Mon Aug 2 18:29:32 1999 Mark Mitchell <mark@codesourcery.com>
16747
16748 * invoke.texi (-fdump-translation-unit): New option.
16749
16750 Mon Aug 2 17:54:19 1999 Richard Henderson <rth@cygnus.com>
16751
16752 * expr.h (PROMOTE_PROTOTYPES): Move ...
16753 * defaults.h: ... to here.
16754 * c-decl.c: Include defaults.h instead of expr.h.
16755 * c-typeck.c: Include defaults.h.
16756
16757 Mon Aug 2 17:10:24 1999 Mark Mitchell <mark@codesourcery.com>
16758
16759 * toplev.h (errorcount): Declare.
16760 (warningcount): Likewise.
16761 (sorrycount): Likewise.
16762 * c-lex.c (errorcount): Don't declare.
16763 * dwarf2out.c (errorcount): Don't declare.
16764
16765 Mon Aug 2 17:02:08 1999 Jason Merrill <jason@yorick.cygnus.com>
16766
16767 * config/libgloss.h: Add a note discouraging use with ELF.
16768 * configure.in: Don't use libgloss.h for ELF targets.
16769 Always use_collect2 on a.out targets.
16770
16771 Mon Aug 2 16:27:42 1999 Jim Wilson <wilson@cygnus.com>
16772
16773 * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
16774 (force_to_mode, case ASHIFTRT): Add shiftrt label.
16775
16776 Tue Aug 3 00:45:02 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16777
16778 * loop.c (strength_reduce): When doing biv->giv conversion, update
16779 reg note of NEXT->insn.
16780
16781 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
16782
16783 * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
16784
16785 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
16786
16787 * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
16788 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
16789 Ensure expr.h is included.
16790 * c-typecheck.c (convert_arguments): Ditto.
16791
16792 * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
16793
16794 * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
16795 * config/convex/convex.h: Ditto.
16796 * config/dsp16xx/dsp16xx.h: Ditto.
16797 * config/fx80/fx80.h: Ditto.
16798 * config/gmicro/gmicro.h: Ditto.
16799 * config/i370/i370.h: Ditto.
16800 * config/i386/i386.h: Ditto.
16801 * config/m32r/m32r.h: Ditto.
16802 * config/m68k/m68k.h: Ditto.
16803 * config/m88k/m88k.h: Ditto.
16804 * config/mips/mips.h: Ditto.
16805 * config/pa/pa.h: Ditto.
16806 * config/pyr/pyr.h: Ditto.
16807 * config/tahoe/tahoe.h: Ditto.
16808 * config/we32k/we32k.h: Ditto.
16809
16810 * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
16811 based on arch size.
16812
16813 * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
16814
16815 * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
16816 from comment.
16817
16818 * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
16819
16820 1999-08-02 Richard Henderson <rth@cygnus.com>
16821
16822 * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
16823 for the register spill block.
16824 (m32r_va_arg): New.
16825 * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
16826 (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
16827
16828 * m32r.h (INT8_P): Don't short-cut test with (unsigned).
16829 (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
16830 (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
16831
16832 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
16833
16834 * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
16835 MAX_WCHAR_TYPE defined in sparc.h.
16836 * config/sparc/linuxaout.h: Likewise.
16837 * config/sparc/linux64.h: Likewise.
16838 Also default to -mvis if CPU is UltraSPARC.
16839
16840 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
16841
16842 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
16843 (RTX_OK_FOR_OLO10): Likewise.
16844 (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
16845 %lo(), allow it in addresses...
16846 (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
16847 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
16848 does not make sense.
16849 * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
16850 (sparc_output_scratch_registers): New function.
16851 (output_function_prologue, sparc_flat_output_function_prologue): Use
16852 it.
16853 * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
16854 defined.
16855 * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
16856 * configure.in: Add check for .register pseudo-op support in as and
16857 check for offsetable %lo().
16858 * acconfig.h: Add templates for the above checks.
16859 * configure: Regenerate.
16860
16861 1999-08-02 Richard Henderson <rth@cygnus.com>
16862
16863 * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
16864 * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
16865 * sparc/sol2.h (TARGET_DEFAULT): Likewise.
16866
16867 Mon Aug 2 23:46:45 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16868
16869 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
16870 reg_biv_class.
16871
16872 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
16873
16874 * config/float-sparc.h: New file.
16875 * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
16876 sparc-*-linux-gnu and sparc64-*-linux*.
16877
16878 1999-08-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
16879
16880 * rs6000.c (rs6000_va_list): Type is an array.
16881 (rs6000_va_start): Don't doubly adjust for varargs.
16882 (rs6000_va_arg): Evaluate long long GPR adjustment.
16883
16884 Mon Aug 2 16:15:57 1999 David Edelsohn <edelsohn@gnu.org>
16885
16886 * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
16887 -maix64 and -maix32.
16888 (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
16889 LINK_SPEC): Change appropriately.
16890 * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
16891 (u_short_cint_operand): Likewise.
16892 * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
16893 for 64-bit hosts.
16894 * rs6000/t-aix43 (MULTILIB): Change to -m64.
16895
16896 * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
16897
16898 Mon Aug 2 16:15:57 1999 Geoff Keating <geoffk@cygnus.com>
16899
16900 * rs6000/rs6000.c (num_insns_constant_wide): Correct
16901 for type promotion.
16902 (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
16903 (non_add_cint_operand): Likewise.
16904 (logical_operand): Likewise.
16905 (non_logical_cint_operand): Likewise.
16906 (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
16907 (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
16908 (rs6000_select_rtx_section): Suppress warning.
16909 (small_data_operand): Suppress warning.
16910 (rs6000_got_register): Suppress warning.
16911 * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
16912 type, so `J' is generally the wrong constraint for a SImode value;
16913 use `L' instead.
16914 (andsi3_internal2): Likewise.
16915 (andsi3_internal3): Likewise.
16916 (iorsi3_internal1): Likewise.
16917 (xorsi3_internal1): Likewise.
16918 (movsi): Likewise.
16919 (movsf_softfloat): Likewise.
16920 (scc insns): Likewise.
16921 (movsi+2): Preserve sign bits of SImode constant.
16922 (floatsidf2_internal+1): Sign-extend SImode constant correctly.
16923 (movdf+1): Sign-extend properly.
16924 (movdi_32+1): Sign-extend properly.
16925 (scc insns): Sign-extend properly.
16926
16927 * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
16928 K, L, and T.
16929
16930 1999-08-02 Richard Henderson <rth@cygnus.com>
16931
16932 * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
16933 -mcpu parsing code.
16934 (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
16935 * alpha.md (all fp insns): Likewise.
16936
16937 1999-08-02 Nick Clifton <nickc@cygnus.com>
16938
16939 * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
16940 already defined.
16941
16942 Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com)
16943
16944 * pa.c (legitimize_pic_address): Clarify comments. Do not call the
16945 pic_load_label generator directly.
16946 * pa.md (pic_load_label): Clarify comments. Remove modes on operands.
16947 No longer a named pattern.
16948
16949 Mon Aug 2 09:38:10 1999 Nick Clifton <nickc@cygnus.com>
16950
16951 * explow.c (force_reg): Call force_operand if X does not
16952 satisfy general_operand.
16953
16954 Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com)
16955
16956 * fix-header.c (main): When testing for CONTINUED, use string
16957 equality, not pointer equality.
16958
16959 Mon Aug 2 01:27:24 1999 Dan Nicolaescu <dann@ics.uci.edu>
16960
16961 * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
16962
16963 Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com)
16964
16965 * cse.c (cse_insn): Fix loop which deletes insns after a jump
16966 that has become an unconditional jump.
16967
16968 * m68k.c (output_function_prologue): Fix typo in CPU32 case.
16969 (output_function_epilogue): Similarly.
16970
16971 Sun Aug 1 20:14:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16972
16973 * tree.h (init_dummy_function_start): Declare.
16974
16975 Sun Aug 1 12:55:31 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16976
16977 * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
16978 last_expr_type, last_expr_value, block_start_count, block_stack,
16979 stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
16980 nesting_depth, goto_fixup_chain): Delete global vars; now allocated
16981 dynamically in stmt elt of struct function for each function.
16982 (struct nesting): Rename function_call_count elt to n_function_calls,
16983 target_temp_slot_level to block_target_temp_slot_level. All users
16984 changed.
16985 (struct stmt_status): New structure definition.
16986 Add many accessor macros for stmt_status elements which previously
16987 were global variables.
16988 (init_stmt_for_function): Allocate stmt elt for current_function.
16989 Reflect that block_start_count was renamed to
16990 current_block_start_count.
16991 (save_stmt_status, restore_stmt_status): Delete functions.
16992 (preserve_subexpressions_p): Don't access loop_stack when outside
16993 a function.
16994 (expand_start_bindings): Reflect that block_start_count was renamed to
16995 current_block_start_count.
16996 (expand_fixup): Likewise.
16997 (expand_decl): Don't access block_stack when outside a function.
16998 (expand_decl_cleanup): Likewise.
16999 (expand_dcc_cleanup): Likewise.
17000 (expand_dhc_cleanup): Likewise.
17001 (expand_anon_union_decl): Likewise.
17002 (set_file_and_line_for_stmt): New function.
17003 (in_control_zone_p): New function.
17004
17005 * function.h (struct function): Add new elt stmt.
17006 Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
17007 case_stack, nesting_stack, nesting_depth, block_start_count,
17008 last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
17009 emit_lineno, goto_fixup_chain.
17010 (save_eh_status, restore_eh_status, save_stmt_status,
17011 restore_stmt_status): Delete declarations.
17012 * function.c (push_function_context_to): Don't call save_stmt_status.
17013 (pop_function_context_to): Don't call restore_stmt_status.
17014 * tree.h (in_control_zone_p): Declare.
17015 * rtl.h (set_file_and_line_for_stmt): Declare.
17016
17017 * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
17018 call set_file_and_line_for_stmt.
17019
17020 Thu Jul 31 12:34:45 1999 Joe Buck <jbuck@synopsys.com>
17021
17022 * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
17023 Also update copyright.
17024
17025 Sat Jul 31 11:10:07 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17026
17027 * c-pragma.c: Don't include "except.h".
17028 * emit-rtl.c: Likewise.
17029 * stor-layout.c: Likewise.
17030 * tree.c: Likewise.
17031 * varasm.c: Likewise.
17032
17033 * flow.c: Include "function.h".
17034 * tree.h (init_dummy_function_start): Declare new function.
17035
17036 * except.h (struct eh_status): New structure.
17037 (struct label_node, struct eh_entry): Declare even if tree.h hasn't
17038 been included.
17039 (eh_return_stub_label, ehstack, catchstack, ehqueue,
17040 catch_clauses, false_label_stack, caught_return_label_stack,
17041 protect_list, current_function_ehc): Add accessor macros for the
17042 corresponding fields in current_function->eh; delete declarations
17043 for all items that used to be declared here.
17044 * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
17045 catch_clauses, false_label_stack, caught_return_label_stack,
17046 protect_list, current_function_ehc): Delete variables.
17047 (init_eh_for_function): Allocate current_function->eh.
17048 (save_eh_status, restore_eh_status): Delete functions.
17049
17050 * function.h (struct function): Add fields next_global and eh.
17051 Delete all exception handling related fields.
17052 * function.c (current_function): New variable.
17053 (all_functions): New variable.
17054 (push_function_context_to): Don't allocate a struct function,
17055 use current_function instead. Call init_dummy_function_start when
17056 outside a function. Clear current_function before returning.
17057 (pop_function_context_from): Restore current_function.
17058 Don't free the restored struct function.
17059 (prepare_function_start): New function.
17060 (init_dummy_function_start): New function.
17061 (init_function_start): Break out some code into prepare_function_start
17062 and call it here.
17063
17064 * stmt.c (save_stmt_status): Don't call save_eh_status.
17065 (restore_stmt_status): Don't call restore_eh_status.
17066
17067 * Makefile.in: Update dependencies.
17068
17069 Sat Jul 31 04:10:01 1999 Jeffrey A Law (law@cygnus.com)
17070
17071 * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
17072 of depending on a magic constant value. Update comments.
17073 (hppa_expand_prologue): Similarly.
17074
17075 * pa.md (reload_indi, reload_outdi): Allow any register for the
17076 original reload register.
17077
17078 Fri Jul 30 19:41:35 1999 Jim Wilson <wilson@cygnus.com>
17079
17080 * cccp.c (print_help): Change marcos to macros.
17081
17082 1999-07-30 Richard Henderson <rth@cygnus.com>
17083
17084 * c-typeck.c (initializer_constant_valid_p): Move ...
17085 * c-common.c (initializer_constant_valid_p): ... here. Use
17086 FOO_TYPE_P instead of tests against TREE_CODE. Allow subtraction
17087 of label addresses.
17088 * c-common.h (initializer_constant_valid_p): Declare.
17089 * c-tree.h (initializer_constant_valid_p): Remove.
17090
17091 Fri Jul 30 16:33:42 1999 Mathias Froehlich <frohlich@na.uni-tuebingen.de>
17092
17093 * config/i386/sol2-c1.asm: Align the stack.
17094 * config/i386/sol2-gc1.asm: Likewise.
17095
17096 1999-07-30 Vladimir Makarov <vmakarov@loony.cygnus.com>
17097
17098 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
17099 -Asparclite for sparc86x.
17100 (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
17101 sparc86x.
17102 (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
17103
17104 Fri Jul 30 14:53:56 1999 Jakub Jelinek <jj@ultra.linux.cz>
17105
17106 * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
17107 the user if using the non-default arch size in BI_ARCH configuration.
17108 * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
17109
17110 * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
17111 Fix patterns so that they actually match.
17112 (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
17113 (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
17114 (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
17115 TARGET_HARD_MUL32.
17116 (mulsidi3): Reflect this in the expand.
17117 (smulsi3_highpart): Only on TARGET_ARCH32.
17118 (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
17119 (const_umulsidi3_sp32): Renamed from const_umulsidi3.
17120 (umulsidi3): Reflect this in the expand.
17121 (umulsi3_highpart): Only on TARGET_ARCH32.
17122 (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
17123 don't require g0 to be zero.
17124 (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
17125 ({,u}divsi3): New expands.
17126 ({,u}divsi3_sp64): New patterns.
17127 (after lshrdi3_v8plus): Four new patterns to help combiner
17128 optimizing nested mixed mode shifts.
17129
17130 * config/sparc/sparc.c (sparc_override_options): Use deprecated
17131 v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
17132 speed things up. Don't use them by default on plain v9 in 64bit
17133 mode, according to what SPAMv9 sais.
17134
17135 * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
17136 top 32 bits of %[og][0-7] in signal handlers.
17137 Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
17138
17139 Fri Jul 30 03:00:41 1999 Jeffrey A Law (law@cygnus.com)
17140
17141 * pa.md (zvdep_imm32): Renamed from zvdep_imm.
17142 (ashlsi3): Corresponding changes.
17143
17144 * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
17145
17146 Thu Jul 29 18:37:13 1999 Jeffrey A Law (law@cygnus.com)
17147
17148 * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
17149
17150 Thu Jul 29 19:01:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17151
17152 * arm.h (Hint): Delete macro.
17153 Substitute HOST_WIDE_INT for Hint in some prototypes.
17154 * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
17155
17156 Thu Jul 29 09:21:42 1999 Nick Clifton <nickc@cygnus.com>
17157
17158 * builtins.c (expand_builtin_setjmp): Use force_operand to
17159 make sure that the buffer address is in a suitable form to be
17160 passed to force_reg.
17161
17162 Wed Jul 28 12:50:48 1999 Geoff Keating <geoffk@cygnus.com>
17163
17164 * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
17165 them here.
17166
17167 Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com)
17168
17169 * pa.md (indirect_jump): Remove mode from match_operand. Verify
17170 proper mode in the condition string.
17171 (icacheflush, dcacheflush): Remove modes from match_operands.
17172
17173 * pa.c (emit_move_sequence): Always convert scratch_reg to the
17174 proper mode before using it.
17175
17176 * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
17177 pair.
17178
17179 * pa.c (store_reg): Do not call add_high_const generator directly.
17180 (load_reg, set_reg_plus_d): Likewise.
17181 * pa.md (add_high_const): No longer a named pattern.
17182
17183 * pa.c (legitimize_address): Consistently use Pmode rather than
17184 SImode. Do not call gen_pic2_highpart directly anymore.
17185 * pa.md (pic2_highpart): No longer a named pattern.
17186 (pic2_lo_sum): Similarly. Reformat to make more readable.
17187
17188 * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
17189 needed.
17190
17191 * README: Update.
17192
17193 Wed Jul 28 11:28:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
17194
17195 * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
17196
17197 Wed Jul 28 11:23:48 1999 Richard Henderson <rth@cygnus.com>
17198
17199 * pa.c (hppa_builtin_saveregs): Use get_varargs_alias_set
17200 and tag the spill mems.
17201 (hppa_va_start): New.
17202 (hppa_va_arg): New.
17203 * pa.h (EXPAND_BUILTIN_VA_START): New.
17204 (EXPAND_BUILTIN_VA_ARG): New.
17205
17206 Wed Jul 28 11:22:21 1999 Richard Henderson <rth@cygnus.com>
17207
17208 * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
17209 and tag the spill mems.
17210 (mn10300_va_start): New.
17211 (mn10300_va_arg): New.
17212 * mn10300.h (EXPAND_BUILTIN_VA_START): New.
17213 (EXPAND_BUILTIN_VA_ARG): New.
17214
17215 Wed Jul 28 11:20:19 1999 Richard Henderson <rth@cygnus.com>
17216
17217 * mn10200.c (mn10200_va_arg): New.
17218 * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
17219
17220 Wed Jul 28 11:19:06 1999 Richard Henderson <rth@cygnus.com>
17221
17222 * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
17223 rather than play with TREE_INT_CST_LOW.
17224
17225 1999-07-27 Philip Blundell <pb@nexus.co.uk>
17226
17227 * config/arm/telf.h: Include dbxelf.h.
17228 (CPP_PREDEFINES): Only define if not already defined.
17229 (ASM_IDENTIFY_GCC): Likewise.
17230 (SUBTARGET_EXTRA_SECTIONS): Likewise.
17231 (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
17232 * config/arm/thumb.h (LINK_SPEC): Only define if not already
17233 defined.
17234 (DBX_DEBUGGING_INFO): Don't define.
17235 * config/arm/linux-telf.h: New file.
17236 * config/arm/linux-tgas.h: New file.
17237 * config/arm/t-thumb-linux: New file.
17238 * config/arm/uclinux-elf.h: New file.
17239 * config/arm/uclinux-telf.h: New file.
17240 * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
17241 thumb-*-uclinux): New targets.
17242 * configure: Regenerate.
17243
17244 Tue Jul 27 23:20:21 1999 Jeffrey A Law (law@cygnus.com)
17245
17246 * pa.md (post_store, pre_load): New expanders.
17247 (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
17248 (post_ldwm, pre_stwm): Make these unnamed patterns since we never
17249 need to directly generate RTL for them.
17250 * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
17251 changes.
17252
17253 Tue Jul 27 16:05:52 1999 David Edelsohn <edelsohn@gnu.org>
17254
17255 * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
17256 * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
17257 (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
17258 (secndary_reload_class): Make TARGET_ELF conditional compile.
17259 (print_operand_address): Similar.
17260 (output_toc): Print all values as hex.
17261 (get_issue_rate): Rearrange and add RS64A and PPC630.
17262 * rs6000.h (processor_type): Add RS64A and PPC630.
17263 (PROCESSOR_POWERPC64): New.
17264 (PROMOTE_MODE): Use word_mode.
17265 (RTX_COSTS): Add RS64A and PPC630.
17266 * rs6000.md (scheduling information): Add lmul and ldiv
17267 representing 64-bit integer multiply and divide. Add rs64a and
17268 PPC630 information.
17269 (ashldi3): Add support for "rldic" instruction.
17270 * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
17271
17272 Tue Jul 27 15:31:53 1999 Vladimir Makarov <vmakarov@toad.to.cygnus.com>
17273
17274 * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
17275 instead of V8 for sparclite86x in cpu_table.
17276
17277 Tue Jul 27 17:49:42 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17278
17279 * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
17280 output_file_directive.
17281
17282 Tue Jul 27 03:15:33 1999 Jason Merrill <jason@yorick.cygnus.com>
17283
17284 * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
17285 tree for op1, not the rtl.
17286
17287 Tue Jul 27 00:18:34 1999 Richard Henderson <rth@cygnus.com>
17288
17289 * m88k.c (m88k_builtin_saveregs): Break out the constructor code
17290 to m88k_va_start, leaving only the register spill.
17291 (m88k_build_va_list): New.
17292 (m88k_va_start): New.
17293 (m88k_va_arg): New.
17294 * m88k.h (BUILD_VA_LIST_TYPE): New.
17295 (EXPAND_BUILTIN_VA_START): New.
17296 (EXPAND_BUILTIN_VA_ARG): New.
17297
17298 Mon Jul 26 19:07:11 1999 Geoff Keating <geoffk@cygnus.com>
17299
17300 * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
17301 Rename from expand_builtin_saveregs.
17302 * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
17303
17304 Mon Jul 26 22:52:47 1999 Richard Henderson <rth@cygnus.com>
17305
17306 * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
17307 for the register spill block.
17308 (i960_build_va_list): New.
17309 (i960_va_start): New.
17310 (i960_va_arg): New.
17311 * i960.h (BUILD_VA_LIST_TYPE): New.
17312 (EXPAND_BUILTIN_VA_START): New.
17313 (EXPAND_BUILTIN_VA_ARG): New.
17314 * i960.md (store_multiple): Use change_address on individul mems.
17315
17316 Mon Jul 26 22:43:12 1999 Richard Henderson <rth@cygnus.com>
17317
17318 * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
17319 an ARRAY_TYPE.
17320 (std_expand_builtin_va_start): Back out one word if !stdarg_p.
17321 (expand_builtin_va_end): Evaluate arg for side effects.
17322 * c-common.c (c_common_nodes_and_builtins): Construct a
17323 va_list_arg_type_node to handle array decomposition to pointer.
17324
17325 Mon Jul 26 18:51:34 1999 Richard Henderson <rth@cygnus.com>
17326
17327 * except.c (start_dynamic_cleanup): Use force_operand on the
17328 buffer's address.
17329
17330 Mon Jul 26 16:43:26 1999 Richard Henderson <rth@cygnus.com>
17331
17332 * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
17333 * c4x.c (c4x_va_arg): New.
17334
17335 Mon Jul 26 12:30:09 1999 Jason Merrill <jason@yorick.cygnus.com>
17336
17337 * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
17338 has manual_pop set.
17339
17340 1999-07-26 Nathan Sidwell <nathan@acm.org>
17341
17342 * eh-common.h (__eh_matcher): Prototype correctly.
17343
17344 Mon Jul 26 17:24:51 1999 Philip Blundell <pb@nexus.co.uk>
17345
17346 * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
17347 (TARGET_SINGLE_PIC_BASE): Likewise.
17348 (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
17349 definitions.
17350 (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
17351 (TARGET_SWITCHES): Add -m{no-}single-pic-base.
17352 (TARGET_OPTIONS): Add -mpic-register=N.
17353 (OUTPUT_INT_ADDR_CONST): New macro.
17354 (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
17355 LEGITIMATE_PIC_OPERAND_P): Likewise.
17356 (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
17357 (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
17358 output_addr_const directly.
17359 (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
17360 ARM port.
17361 (thumb_pic_register, thumb_pic_register_string): Declare.
17362
17363 * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
17364 from arm.c.
17365 (label_mentioned_p): New function: Imported from arm.c.
17366 (legitimize_pic_address): New function: Imported from arm.c.
17367 (is_pic):New function: Imported from arm.c.
17368 (thumb_finalize_pic):New function: Imported from arm.c.
17369 (add_constant): Cope with PIC constants.
17370 (fixit): Cope with PIC constants.
17371 (output_return): Do not treat the PIC register as live if
17372 TARGET_SINGLE_PIC_BASE is true.
17373 (thumb_function_prologue): Do not treat the PIC register as live if
17374 TARGET_SINGLE_PIC_BASE is true.
17375 (thumb_expand_prologue): Do not treat the PIC register as live if
17376 TARGET_SINGLE_PIC_BASE is true.
17377 (thumb_unexpand_epilogue): Do not treat the PIC register as live if
17378 TARGET_SINGLE_PIC_BASE is true.
17379 (thumb_print_operand): Accept '|'.
17380 (thumb_override_options): Process PIC options.
17381
17382 * config/arm/thumb.md (movsi): Support PIC.
17383 (call_insn): Change "i" constraint to "X".
17384 (call_value_insn): Likewise.
17385 (consttable_4, consttable_8, consttable_end): Set and clear
17386 "making_const_table" as appropriate.
17387 (pic_load_addr, pic_add_dot_plus_four): New insns.
17388
17389 * invoke.texi (Thumb Options): Fix spelling. Document new
17390 options -msingle-pic-base and -mpic-register=.
17391
17392 1999-07-26 Andrew Haley <aph@cygnus.com>
17393
17394 * config/m32r/initfini.c (__init): Use a full word immediate for
17395 __fini: this allows it to be placed in any memory region.
17396
17397 * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
17398 -mmodel=medium. This is OK for all memory models.
17399
17400 Mon Jul 26 11:58:46 1999 Nick Clifton <nickc@cygnus.com>
17401
17402 * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
17403 * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
17404
17405 Mon Jul 26 10:23:36 1999 Nick Clifton <nickc@cygnus.com>
17406
17407 * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
17408 defined.
17409
17410 * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
17411
17412 Sun Jul 25 23:51:59 1999 Richard Henderson <rth@cygnus.com>
17413
17414 * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
17415 (BUILD_VA_LIST_TYPE): New.
17416 (EXPAND_BUILTIN_VA_START): New.
17417 (EXPAND_BUILTIN_VA_ARG): New.
17418 * i860.c (output_delayed_branch): Disable.
17419 (output_delay_insn): Likewise.
17420 (i860_saveregs): New.
17421 (i860_build_va_list): New.
17422 (i860_va_start): New.
17423 (i860_va_arg): New.
17424 * i860.md: Disable all peepholes using output_delayed_branch.
17425 * i860/sysv4.h (I860_SVR4_VA_LIST): New.
17426
17427 Sun Jul 25 23:44:13 1999 Richard Henderson <rth@cygnus.com>
17428
17429 * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
17430 (BUILD_VA_LIST_TYPE): New.
17431 (EXPAND_BUILTIN_VA_START): New.
17432 (EXPAND_BUILTIN_VA_ARG): New.
17433 * clipper.c (clipper_builtin_saveregs): Only dump registers.
17434 Return the address of the save area.
17435 (clipper_build_va_list): New.
17436 (clipper_va_start): New.
17437 (clipper_va_arg): New.
17438
17439 Sun Jul 25 22:56:47 1999 Richard Henderson <rth@cygnus.com>
17440
17441 * arc.h (EXPAND_BUILTIN_VA_START): New.
17442 (EXPAND_BUILTIN_VA_ARG): New.
17443 * arc.c (arc_setup_incoming_varargs): Set alias set of
17444 varargs save area.
17445 (arc_va_start): New.
17446 (arc_va_arg): New.
17447
17448 Sun Jul 25 22:45:55 1999 Richard Henderson <rth@cygnus.com>
17449
17450 * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
17451 (BUILD_VA_LIST_TYPE): New.
17452 (EXPAND_BUILTIN_VA_START): New.
17453 (EXPAND_BUILTIN_VA_ARG): New.
17454 * alpha.c (alpha_builtin_saveregs): Delete.
17455 (alpha_build_va_list): New.
17456 (alpha_va_start): New.
17457 (alpha_va_arg): New.
17458
17459 Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com)
17460
17461 * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
17462 column zero.
17463 (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
17464 (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
17465
17466 * gcc.texi: More changes related to list conversion.
17467 * invoke.texi: Likewise.
17468
17469 Sun Jul 25 18:15:39 1999 Richard Henderson <rth@cygnus.com>
17470
17471 * builtins.c (expand_builtin_saveregs): Remove static, remove exp
17472 and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
17473 (expand_builtin_next_arg): Accept ARGLIST not EXP.
17474 (stabilize_va_list): New function.
17475 (std_expand_builtin_va_start): New function.
17476 (expand_builtin_va_start): New function.
17477 (get_varargs_alias_set): New function.
17478 (std_expand_builtin_va_arg): New function.
17479 (expand_builtin_va_arg): New function.
17480 (expand_builtin_va_end): New function.
17481 (expand_builtin_va_copy): New function.
17482 (expand_builtin): Call them.
17483 * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
17484 __builtin_{varargs_start,stdarg_start,end,copy}.
17485 (build_va_arg): New function.
17486 * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
17487 (build_va_arg): Declare.
17488 * c-decl.c (ptr_type_node, va_list_type_node): New.
17489 * c-parse.gperf (__builtin_va_arg): New.
17490 * c-parse.in (VA_ARG): New token.
17491 (unary_expr): Recognize it.
17492 * expr.c (expand_expr): Expand VA_ARG_EXPR.
17493 * expr.h (std_expand_builtin_va_start): Declare.
17494 (std_expand_builtin_va_arg): Declare.
17495 (expand_builtin_va_arg): Declare.
17496 (get_varargs_alias_set): Declare.
17497 * tree.def (VA_ARG_EXPR): New.
17498 * tree.h (BUILT_IN_VARARGS_START): New.
17499 (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
17500 (ptr_type_node, va_list_type_node): Declare.
17501 * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
17502 * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
17503 * m88k.h, m88k.c: Likewise.
17504 * mn10300.h, mn10300.c: Likewise.
17505 * pa.h, pa.c: Likewise.
17506 * rs6000.h, rs6000.c: Likewise.
17507 * sh.h, sh.c: Likewise.
17508 * sparc.h, sparc.c: Likewise.
17509
17510 * emit-rtl.c (operand_subword): Copy alias set.
17511 (change_address): Likewise.
17512
17513 Sun Jul 25 15:04:37 1999 Jeffrey A Law (law@cygnus.com)
17514
17515 * pa.c (compute_frame_size): Scan all the used callee saved registers,
17516 not just the first one.
17517
17518 Fri Jul 23 14:09:58 1999 Philip Blundell <pb@nexus.co.uk>
17519
17520 * config/arm/arm.h (TARGET_SWITCHES): Add
17521 -m{no-}single-pic-base. Correct help string for -mshort-load-words.
17522 (TARGET_OPTIONS): Add -mpic-register=.
17523 (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
17524 (arm_pic_register_string): Declare.
17525 (NEED_PLT_GOT): Delete, replace with ...
17526 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. New macros.
17527 (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
17528 (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
17529 * config/arm/arm.c (arm_override_options): Add new option
17530 -mpic-register=N.
17531 (arm_pic_register_string): New variable.
17532 (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
17533 (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
17534 register as never live. Use NEED_PLT_RELOC not NEED_PLT_GOT.
17535 (output_return_instruction): Likewise.
17536 * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
17537 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. Define to flag_pic.
17538 * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
17539
17540 * invoke.texi (ARM Options): Fix spelling. Remove duplicate
17541 mention of -msched-prolog. Document new options -msingle-pic-base
17542 and -mpic-register=.
17543
17544 Thu Jul 22 18:23:56 1999 Richard Henderson <rth@cygnus.com>
17545
17546 * haifa-sched.c (reemit_notes): Tidy.
17547 * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
17548 haifa's routine.
17549
17550 Thu Jul 22 18:21:04 1999 Richard Henderson <rth@cygnus.com>
17551
17552 * explow.c (trunc_int_for_mode): New function.
17553 (plus_constant_wide): Use it.
17554 * combine.c (simplify_and_const_int): Likewise.
17555 (merge_outer_ops): Likewise.
17556 (simplify_shift_const): Likewise.
17557 * cse.c (simplify_unary_operation): Likewise.
17558 (simplify_binary_operation): Likewise.
17559 * emit-rtl.c (operand_subword): Likewise.
17560 * rtl.h: Declare it.
17561
17562 Thu Jul 22 14:34:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17563
17564 * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
17565 (use NUM_REGS instead of NUM_INTS).
17566
17567 Thu Jul 22 11:25:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17568
17569 * builtins.c: New file.
17570 * expr.c (saveregs_value, apply_args_value): Delete definition,
17571 moved into builtins.c.
17572 (string_constant): No longer static.
17573 (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
17574 apply_args_size, apply_result_size, result_vector,
17575 expand_builtin_apply_args, expand_builtin_apply,
17576 expand_builtin_return): Delete functions, moved into builtins.c.
17577 (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
17578 * expr.h (saveregs_value, apply_args_value): Declare variables.
17579 (expand_builtin, string_constant): Declare functions.
17580 * Makefile.in: Update to build builtin.o.
17581
17582 Wed Jul 21 00:46:58 1999 Mark P. Mitchell <mark@codesourcery.com>
17583
17584 * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
17585 * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
17586 * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
17587 start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
17588 false.
17589 * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
17590 Define to zero.
17591
17592 1999-07-21 Michael Meissner <meissner@cygnus.com>
17593
17594 * print-rtl.c (print_rtx): Print the names of the virtual
17595 registers.
17596
17597 Wed Jul 21 16:00:32 1999 Nick Clifton <nickc@cygnus.com>
17598
17599 * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
17600 introduced in previous delta.
17601
17602 Wed Jul 21 14:30:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17603
17604 * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
17605 to avoid name clash.
17606
17607 Wed Jul 21 08:39:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
17608
17609 * c-lex.c (yylex) : Correct the test for overflow when lexing
17610 integer literals.
17611
17612 Tue Jul 20 18:02:42 1999 Richard Henderson <rth@cygnus.com>
17613
17614 * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
17615 (adjust_priority): Always call ADJUST_PRIORITY.
17616 (schedule_insn): Only put insns into the ready at cost 0.
17617 (schedule_block): Remove redundant initial sort. Give clock_var
17618 and can_issue_more to MD_SCHED_REORDER. Requeue if hazard cost
17619 is not 0.
17620 * tm.texi (MD_SCHED_REORDER): Update docs.
17621
17622 * sparc.h (MD_SCHED_REORDER): Update. Set CAN_ISSUE_MORE.
17623 * sparc.c (ultra_reorder_called_this_block): Delete.
17624 (ultrasparc_sched_init): Don't set it.
17625 (ultrasparc_sched_reorder): Don't check it.
17626
17627 Tue Jul 20 17:07:54 1999 Richard Henderson <rth@cygnus.com>
17628
17629 * rs6000.h (struct rs6000_args): Add sysv_gregno.
17630 * rs6000.c (init_cumulative_args): Init sysv_gregno.
17631 (function_arg_boundary): Align DFmode.
17632 (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
17633 to get fp reg and stack overflow correct.
17634 (function_arg): Likewise.
17635 (function_arg_pass_by_reference): True for TFmode for ABI_V4.
17636 (setup_incoming_varargs): Restructure for ABI_V4; use
17637 function_arg_advance to skip final named argument.
17638 (expand_builtin_saveregs): Properly unskip the last integer arg
17639 when doing varargs. Adjust overflow location calculation.
17640
17641 * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
17642 explicitly unsigned.
17643 (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
17644 (__VA_GP_REGSAVE): Similarly.
17645 (__va_longlong_p): Delete.
17646 (__va_arg_type_violation): New declaration.
17647 (va_arg): Restructure. Flag promotion errors. Align double.
17648 TFmode passed by reference.
17649
17650 * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
17651 in the HOST_BITS_PER_WIDE_INT > 32 case.
17652
17653 Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson <hp@bitrange.com>
17654
17655 * dwarf2out.c (output_abbrev_section): Terminate with a zero.
17656
17657 Tue Jul 20 12:12:27 1999 Jason Merrill <jason@yorick.cygnus.com>
17658
17659 * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
17660 * toplev.c (documented_lang_options): Add -fpreprocessed.
17661 * cpplib.h (struct cpp_buffer): Add preprocessed.
17662 * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
17663 (cpp_start_read): Don't expand macros or emit an initial #line
17664 directive if -fpreprocessed.
17665
17666 Tue Jul 20 12:12:09 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
17667
17668 * cpplib.h (struct cpp_buffer): Added manual_pop for
17669 better C++ tokenization.
17670 * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
17671 Also, support C++ tokenization for ->*, .*, <?, and >? operators.
17672 * c-common.c (cpp_token): Make non-static.
17673
17674 Tue Jul 20 11:24:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17675
17676 * c-common.h: New file.
17677 * c-common.c (permanent_obstack): Delete unused declaration.
17678 (c_global_trees): New array.
17679 (c_common_nodes_and_builtins): New function; split off common code
17680 from init_decl_processing in both c-decl.c and cp/decl.c.
17681 * c-tree.h: Delete lots of declarations of tree nodes; replaced by
17682 c_global_trees and accessor macros defined in c-common.h.
17683 Include c-common.h.
17684 * c-decl.c: Delete definitions for tree nodes that were replaced by
17685 c_global_trees.
17686 (init_decl_processing): Build void_list_node.
17687 Call c_common_nodes_and_builtins; delete code to generate the common
17688 builtins here.
17689 * objc/objc-act.c (build_module_descriptor): Rename variable
17690 void_list_node to avoid clash with c-common.h.
17691
17692 * Makefile.in: Update dependencies.
17693 * objc/Make-lang.in: Likewise.
17694
17695 Mon Jul 19 14:22:18 1999 Mark P. Mitchell <mark@codesourcery.com>
17696
17697 * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
17698 (UNIQUE_SECTION_P): Likewise.
17699 (UNIQUE_SECTION): Likewise.
17700
17701 1999-07-19 Linas Vepstas <linas@linas.org>
17702
17703 * config/i370/README: New file.
17704 * config/i370/linux.h: New file.
17705 * config/i370/mvs.h: New file.
17706 * config/i370/oe.h: New file.
17707 * config/i370/t-linux: New file.
17708 * config/i370/t-mvs: New file.
17709 * config/i370/t-oe: New file.
17710 * config/i370/x-oe: New file.
17711 * config/i370/xm-linux.h: New file.
17712 * config/i370/xm-mvs.h: New file.
17713 * config/i370/xm-oe.h: New file.
17714
17715 * i370.c (label_node_t): Add first_ref_page, label_addr,
17716 label_first_ref, label_last_ref members.
17717 (mvs_need_base_reload): Renamed from mvs_label_emitted.
17718 (MAX_MVS_LABEL_SIZE): Define.
17719 (MAX_LONG_LABEL_SIZE): Define.
17720 (alias_node_t, alias_anchor, alias_number): New.
17721 (mvs_function_table): Reorder for EBCDIC.
17722 (ascebc, ebcasc): Unconditionally define.
17723 (i370_branch_dest, i370_branch_length): New functions.
17724 (i370_short_branch, i370_label_scan): New functions.
17725 (mvs_get_label): Renamed from mvs_add_label. Search for
17726 an existing label before creating a new one.
17727 (mvs_add_label): New function.
17728 (mvs_get_label_page): New function.
17729 (mvs_free_label_list): Renamed from mvs_free_label. Iterate
17730 over the entire list.
17731 (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
17732 (mvs_check_page) [TARGET_ELF_ABI]: New function.
17733 (mvs_add_alias, mvs_need_alias): New functions.
17734 (mvs_get_alias, mvs_check_alias): New functions.
17735 (handle_pragma): New function.
17736 (mvs_function_check): New function.
17737 (unsigned_jump_follows_p): Search harder.
17738 (i370_function_prolog) [TARGET_HLASM]: Handle LE370. Scan labels.
17739 (i370_function_prolog) [TARGET_ELF_ABI]: New function.
17740 * i370.h (TARGET_VERSION): Delete.
17741 (CPP_SPEC, CPP_PREDEFINES): Delete.
17742 (mvs_label_emitted): Delete.
17743 (TARGET_EBCDIC): Delete.
17744 (MAP_CHARACTER): Define only if TARGET_EBCDIC.
17745 (HANDLE_PRAGMA): Define.
17746 (HARD_REGNO_NREGS): Handle complex modes.
17747 (HARD_REGNO_MODE_OK): Likewise.
17748 (CLASS_MAX_NREGS): Likewise.
17749 (RET_REG): Likewise.
17750 (EXTRA_CONSTRAINT): Define.
17751 (RETURN_IN_MEMORY): True for DImode.
17752 (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
17753 (FUNCTION_PROFILER): Delete.
17754 (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
17755 (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
17756 (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
17757 (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
17758 (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
17759 (ASM_FILE_START): Add "RMODE ANY".
17760 (ASM_OUTPUT_EXTERNAL): Check for aliases.
17761 (ASM_GLOBALIZE_LABEL): Likewise.
17762 (ASM_OUTPUT_LABELREF): Likewise.
17763 (ASM_OUTPUT_COMMON): Likewise.
17764 (PRINT_OPERAND): Handle 'K', 'W', default.
17765 (PRINT_OPERAND_ADDRESS): New.
17766 (Lots of defines): Add support for TARGET_ELF_ABI.
17767 * i370.md (attr length): New. Define for all patterns.
17768 (*): Lots of tweeks to assembly output and constraints.
17769
17770 Mon Jul 19 15:09:29 1999 David Edelsohn <edelsohn@gnu.org>
17771
17772 * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
17773 Disable patterns performing SImode comparisons with SImode values
17774 if TARGET_POWERPC64 and instruction does not sign-extend or does
17775 not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
17776 differ for signed quantities.
17777 (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
17778 (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
17779 (decrement_and_branch_on_count): Add 64-bit variant.
17780
17781 Mon Jul 19 09:36:27 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17782
17783 * final.c (output_asm_insn): When searching for the matching string
17784 for a given dialect, don't run past the end of the list of
17785 alternatives if there are fewer alternatives in the template than
17786 dialects.
17787
17788 1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br>
17789
17790 * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
17791 Removed paragraph about compression of files and size limitation,
17792 duplicated in the FAQ. Use gcc-patches for posting patches.
17793 * gcc.c (main): Updated URL with bug reporting instructions to
17794 gcc.gnu.org. Removed e-mail address.
17795 * system.h (abort): Likewise.
17796
17797 1999-07-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17798
17799 * Makefile.in (stmp-multilib-sub): Make the files extracted
17800 from $(LIBGCC1) writable.
17801
17802 Sat Jul 17 14:25:46 1999 Nick Clifton <nickc@cygnus.com>
17803
17804 * config/arm/aout.h: Reformat for improved readability.
17805
17806 * config/arm/arm.h: Reformat for improved readability.
17807 Replace uses of fprintf with asm_fprintf where appropriate.
17808 (ARM_DECLARE_FUNCTION_NAME): New macro: Perform any generic ARM
17809 function declaration assembler actions.
17810 (NUM_INTS): New macro: Convert from bytes to words.
17811 (NUM_REGS): New macro: Compute number of registers required to
17812 hold a quanitity of tyep MODE.
17813 (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
17814 types.
17815 (NUM_ARG_REGS): New macro: The number of argument registers
17816 available.
17817 (ARG_REGISTER): New macro: Compute the register number of the Nth
17818 argument register.
17819 (LAST_ARG_REGNUM): New macro: The number of the last argument
17820 register.
17821 (SP_REGNUM): New macro: Register number of the stack pointer.
17822 (FP_REGNUM): New macro: Register number of the frame pointer.
17823 (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
17824 FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
17825 CUMULATIVE_ARGS so that it counts registers not bytes.
17826
17827 * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
17828 TARGET_INTERWORK.
17829 Replace uses of fprintf with asm_fprintf where appropriate.
17830 (output_ascii_pseudo_op): Replace with version from thumb.c
17831
17832 * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
17833
17834 * config/arm/elf.h (CPP_PREDEFINES): Replace with
17835 SUBTARGET_CPP_SPEC.
17836 (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
17837 (ASM_FILE_START): Emit ASM_APP_OFF.
17838
17839 Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com)
17840
17841 * pa.c (compute_frame_size): Round frame according to
17842 STACK_BOUNDARY rather than a hardwired value.
17843
17844 * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
17845
17846 * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
17847 of "1".
17848 * configure: Rebuilt.
17849
17850 * configure.in (hppa*-*-linux*): New configuration.
17851 * configure: Rebuilt.
17852 * pa.h (MAX_OFILE_ALIGNMENT): Delete.
17853 * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
17854 * pa/pa-linux.h: New file.
17855 * pa/t-linux: New file.
17856 * pa/xm-linux.h: New file.
17857
17858 * pa.c (hppa_legitimize_address): Change references from SImode to
17859 either Pmode or word_mode as appropriate.
17860 (emit_move_sequence, store_reg, load_reg): Likewise.
17861 (set_reg_plus_d, hppa_expand_prologue): Likewise.
17862 (output_mul_insn): Likewise.
17863 * pa.h (PROMOTE_MODE): Likewise.
17864 (INITIALZE_TRAMPOLINE): Likewise.
17865 (Pmode): Define to word_mode.
17866
17867 * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
17868 value of 4. Allocate 8 bytes for each FP register save.
17869 (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
17870 value of 4.
17871 (hppa_expand_prologue): Likewise.
17872 * pa.h (PROMOTE_MODE): Likewise.
17873 (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
17874 (FUNCTION_ARG_BOUNDARY): Likewise.
17875
17876 * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
17877
17878 * pa.c (out_of_line_prologue_epilogue): Delete.
17879 (override_options): Remove -mspace related code.
17880 (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
17881 (compute_frame_size): Only allocate space for register that
17882 actually need to be saved.
17883 * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
17884 (TARGET_SWITCHES): Remove -mspace, -mno-space
17885 * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
17886 * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. Remove -mspace multilib.
17887 * pa/ee.asm, pa/ee_fp.asm: Delete.
17888
17889 * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
17890
17891 * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
17892 directive in column zero.
17893
17894 Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com)
17895
17896 * m68k.c (output_function_prologue): Fix computation of save mask
17897 when generating PIC code.
17898
17899 Thu Jul 15 15:40:09 1999 Jim Wilson <wilson@cygnus.com>
17900
17901 * tree.c (build_type_attribute_variant): Move current_obstack restore
17902 after build_qualified_type call.
17903
17904 1999-07-15 Mark Mitchell <mark@codesourcery.com>
17905
17906 * configure.in: Use t-iris6, even with GNU LD.
17907 * config/mips/iris6gld.h: Fix typo in linker spec.
17908 * config/mips/t-iris6gld: Remove.
17909
17910 Thu Jul 15 15:15:43 1999 David Edelsohn <edelsohn@gnu.org>
17911
17912 * rs6000.md (insv, extzv): Remove SImode dependence in named
17913 patterns. Explicitly generate DImode RTL if PowerPC64 and
17914 operand is DImode.
17915 (insvdi): Reverse start and size in instruction template.
17916
17917 1999-07-12 Joseph S. Myers <jsm28@cam.ac.uk>
17918
17919 * invoke.texi: Typo fixes.
17920
17921 Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com)
17922
17923 * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
17924 handle at this time instead of silently generating incorrect code.
17925 (gen_imagpart): Likewise.
17926
17927 * reload.c (find_reloads): Emit a USE for a pseudo register without
17928 a hard register if we could not create an optional reload for the
17929 pseudo.
17930
17931 Wed Jul 14 23:45:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17932
17933 * c-typeck.c (output_init_element, process_init_element):
17934 When advancing constructor_unfilled_fields for a RECORD_TYPE,
17935 check for nameless bit fields.
17936
17937 Wed Jul 14 01:57:39 1999 Richard Henderson <rth@cygnus.com>
17938
17939 * regclass.c (scan_one_insn): Notice subregs that change the
17940 size of their operand.
17941 (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
17942
17943 Wed Jul 14 01:41:42 1999 Jeffrey A Law (law@cygnus.com)
17944
17945 * configure.in (alpha*-*-*): Include alpha/t-ieee.
17946 * configure: Rebuilt.
17947 * alpha/t-ieee: New file.
17948
17949 Tue Jul 13 10:45:58 1999 Jeffrey A Law (law@cygnus.com)
17950
17951 * rs6000.c (find_addr_reg): Do not select r0 as an address
17952 register.
17953
17954 Tue Jul 13 00:46:18 1999 Philippe De Muyter <phdm@macqel.be>
17955
17956 * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
17957
17958 Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com)
17959
17960 * rs6000.md (movsf): Do not force easy FP constants into memory.
17961
17962 * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
17963 immed_double_const to ensure they are properly truncated then
17964 sign extended.
17965
17966 Mon Jul 12 10:40:01 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
17967
17968 * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
17969 always unless NO_DEBUG is used. Compile this code
17970 unconditionally.
17971 (replace_symbols_in_block): Compile it unconditionally.
17972
17973 Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com)
17974
17975 * configure.in (i?86-*-elf*): New target.
17976 * configure: Rebuilt.
17977 * i386/i386elf.h, i386/t-i386elf: New files.
17978
17979 Fri Jul 9 22:39:44 1999 Jason Merrill <jason@yorick.cygnus.com>
17980
17981 * toplev.c (main): Don't complain about saying -gdwarf.
17982 (rest_of_compilation): Remove redundant code.
17983
17984 Fri Jul 9 19:08:55 1999 Jim Wilson <wilson@cygnus.com>
17985
17986 * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
17987
17988 Fri Jul 9 18:54:18 1999 Felix Lee <flee@cygnus.com>
17989
17990 * config/i960/i960.c (ret_label): Change asm label from "LR:" to
17991 "Li960R:", to avoid name clash.
17992
17993 Fri Jul 9 10:48:28 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17994
17995 * loop.c (check_dbra_loop): When reversing a loop, delete all
17996 REG_EQUAL notes referencing the reversed biv except those which are
17997 for a giv based on it.
17998
17999 Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com)
18000
18001 * version.c: Drop "gcc-" prefix from version #.
18002
18003 Thu Jul 8 18:06:30 1999 Jason Merrill <jason@yorick.cygnus.com>
18004
18005 * dwarf2out.c (dwarf2out_line): Emit a line number comment after
18006 the label if we're being verbose.
18007
18008 Thu Jul 8 14:18:46 1999 Richard Henderson <rth@cygnus.com>
18009
18010 * m68k.c (output_function_prologue): Add pic register to mask
18011 if live and flag_pic.
18012 (output_function_epilogue): Likewise.
18013
18014 Thu Jul 8 12:55:12 1999 Jeffrey A Law (law@cygnus.com)
18015
18016 * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
18017 directives in column zero.
18018
18019 * pa/elf.h (ASM_FILE_START): Define.
18020 * pa/som.h (ASM_FILE_START): Include .level directives.
18021 * pa/hpux10.h (ASM_FILE_START): Delete.
18022 * pa/hpux11.h (ASM_FILE_START): Delete.
18023
18024 * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
18025
18026 Thu Jul 8 18:03:19 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18027
18028 * reload1.c (choose_reload_regs): Never call remove_adress_replacements
18029 when reload_out equals reload_in.
18030
18031 Thu Jul 8 16:50:14 1999 Nick Clifton <nickc@cygnus.com>
18032
18033 * invoke.texi (Spec Files): New node: Describe the contents of
18034 spec files.
18035
18036 Thu Jul 8 10:28:25 1999 Craig Burley <craig@jcb-sc.com>
18037
18038 * invoke.texi (DEC Alpha Options): Put @end table at
18039 beginning of line, to avoid confusing texi2html.
18040
18041 Thu Jul 8 09:22:06 1999 Nick Clifton <nickc@cygnus.com>
18042
18043 * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
18044 introduced in previous delta.
18045
18046 Wed Jul 7 02:00:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18047
18048 * reload1.c (gen_reload): When synthesizing a 3 operand add
18049 sequence, improve test for when to reload OP1 into the reload
18050 register instead of OP0.
18051
18052 Wed Jul 7 01:38:03 1999 Jim Wilson <wilson@cygnus.com>
18053
18054 * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
18055
18056 1999-07-07 Manfred Hollstein <mhollstein@cygnus.com>
18057
18058 * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
18059 string literal.
18060
18061 Wed Jul 7 01:16:43 1999 Richard Henderson <rth@cygnus.com>
18062
18063 * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
18064 (va_dcl): Use __builtin_va_alist_t.
18065
18066 Wed Jul 7 01:14:42 1999 Jason Merrill <jason@yorick.cygnus.com>
18067
18068 * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
18069 on the permanent_obstack.
18070 * dwarfout.c (output_type): Likewise.
18071
18072 Tue Jul 6 15:25:32 1999 Gavin Romig-Koch <gavin@cygnus.com>
18073
18074 * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
18075 Merged from c-typeck.c and cp/typeck.c.
18076 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
18077 Merged into c-common.
18078
18079 Tue Jul 6 13:06:01 1999 Dave Brolley <brolley@cygnus.com>
18080
18081 * c-lex.c (errorcount): Declare it.
18082 (finish_parse): Update errorcount when using CPPLIB.
18083
18084 1999-07-06 Bruce Korb <ddsinc09@ix.netcom.com>
18085
18086 * fixinc/inclhack.def(end_else_label): Double the backslash so
18087 sed gets a chance to see it.
18088 * fixinc/inclhack.sh: regen
18089 * fixinc/fixincl.x: regen
18090
18091 Fri Jul 2 18:49:51 1999 Nick Clifton <nickc@cygnus.com>
18092
18093 Add framework to support armv5 architecture when it becomes
18094 available:
18095
18096 * config/arm/arm.c (FL_ARCH5): New processor capability flag.
18097 (arm_arch5): New variable.
18098 (all_architectures): Add armv5 line.
18099 * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
18100 -march=armv5 is specified on the command line.
18101 (arm_arch5): Export this variable.
18102 * invoke.texi: Document new string accepted by -march= switch for
18103 ARM ports.
18104
18105 * config/arm/arm.h: Replace use of constant 12 as a register
18106 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
18107 * config/arm/arm.c: Replace use of constant 12 as a register
18108 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
18109
18110 * config/arm/elf.h: Tidy up.
18111 * config/arm/coff.h: Tidy up.
18112
18113 Thu Jul 1 19:08:13 1999 Mark P. Mitchell <mark@codesourcery.com>
18114
18115 * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
18116 * gcc/config/mips/t-iris6gld: New file.
18117 * gcc/config/mips/iris6gld.h: Likewise.
18118
18119 Fri Jul 2 13:23:39 1999 Gavin Romig-Koch <gavin@cygnus.com>
18120
18121 * c-decl.c (widest_integer_literal_type_node,
18122 widest_unsigned_literal_type) : New.
18123 (init_decl_processing): Handle/use the two new types.
18124 * c-common.c (type_for_size,type_for_mode) : Same.
18125 * c-lex.c (yylex) : Same.
18126 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
18127 Same.
18128 * c-tree.h (widest_integer_literal_type_node,
18129 widest_unsigned_literal_type) : New.
18130
18131 Fri Jul 2 03:05:44 1999 Jeffrey A Law (law@cygnus.com)
18132
18133 * dwarfout.c (field_byte_offset): Correctly compute the object's
18134 byte offset for the first bit of a field which crosses an alignment
18135 boundary on a !BYTES_BIG_ENDIAN target.
18136
18137 Fri Jul 2 01:36:36 1999 Robert Lipe <robertlipe@usa.net>
18138
18139 * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
18140 ntohs.
18141
18142 Fri Jul 2 00:46:47 1999 Richard Henderson <rth@cygnus.com>
18143 Jeff Law <law@cygnus.com>
18144
18145 * ginclude/varargs.h (va_dcl): Use word_mode for type of
18146 __builtin_va_list.
18147
18148 * except.c: Include intl.h.
18149 (expand_eh_return): Set current_function_cannot_inline.
18150 (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
18151 * function.h (struct function): Add eh_return_stub_label.
18152 * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
18153 * Makefile.in (except.o): Depend on intl.h.
18154
18155 Fri Jul 2 00:04:23 1999 David Edelsohn <edelsohn@gnu.org>
18156
18157 * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
18158 same as offsettable in cases 1 and 2.
18159
18160 Thu Jul 1 20:54:10 1999 Richard Henderson <rth@cygnus.com>
18161
18162 * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
18163 (extlh, extwh): Likewise.
18164
18165 Thu Jul 1 11:05:25 1999 Gavin Romig-Koch <gavin@cygnus.com>
18166
18167 * c-lex.c (yylex): Improve 'integer constant out of range' messages.
18168
18169 Wed Jun 30 16:51:41 1999 Nick Clifton <nickc@cygnus.com>
18170
18171 * configure.in: Add arm-pe and thumb-pe targets.
18172 * configure: Regenerate.
18173
18174 * thumb.c (arm_naked_function_p): New function: Determines if
18175 a function is naked (has no gcc generated prologue/epilogue).
18176 (is_called_in_ARM_mode): Return true if the func has the
18177 interfacearm attribute.
18178 (output_return): Do not generate a return for naked functions.
18179 (thumb_function_prologue): Do not generate a prologue for
18180 naked functions.
18181 (thumb_expand_prologue): Do not generate a prologue for naked
18182 functions.
18183 (thumb_expand_epilogue): Do not generate an epilogue for naked
18184 functions.
18185 (arm_valid_machine_decl_attribute): New function, copied from
18186 arm.c: Permit naked and interfacearm attributes.
18187
18188 * config/arm/pe.c: New file: Support code for arm-pe target.
18189 * config/arm/pe.h: New file: Header file for arm-pe target.
18190 * config/arm/tpe.h: New file: Header file for thumb-pe target.
18191 * config/arm/t-thumb-pe: New file: Makefile fragment for
18192 thumb-pe target.
18193
18194 1999-07-01 Mark Kettenis <kettenis@gnu.org>
18195
18196 * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
18197 -fPIC or -fpic is specified.
18198
18199 Wed Jun 30 03:31:54 1999 Jeffrey A Law (law@cygnus.com)
18200
18201 * expr.c (emit_block_move): Use copy_to_mode_reg for
18202 !TARGET_MEM_FUNCTIONS case too.
18203
18204 * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
18205 appropriate.
18206 * configure: Rebuilt.
18207 (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
18208 * pa.h: Include dbxelf.h. Delete various dbx/stabs related
18209 definitions made redundant by dbxelf.h inclusion. Delete
18210 lots of definitions related to assembly output that are
18211 specific to the SOM object format.
18212 * pa.c (output_function_prologue): Do not emit the function's
18213 name for OBJ_ELF.
18214 * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
18215 * pa-pro.h: Deleted.
18216 * som.h: New file with SOM specific definitions.
18217 * elf.h: New file with ELF specific definitions.
18218
18219 * elfos.h (const_section): Output a tab before assembler directives.
18220 (ctors_section, dtors_section): Likewise.
18221 (ASM_OUTPUT_SECTION_NAME): Likewise.
18222
18223 * pa/pa1.h: Delete unused file.
18224
18225 Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com)
18226
18227 * configure.in (hppa*-hp-hpux11*): New configuration.
18228 * configure: Rebuilt.
18229 * pa/pa-hpux11.h: New file.
18230 * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
18231 command line.
18232
18233 * mips.md (leasi, leadi): New patterns.
18234
18235 * expr.c (emit_block_move): Properly handle case where one of the
18236 block move arguments has a queued increment or decrement.
18237 (clear_storage): Similarly. Fix formatting goof.
18238
18239 1999-06-28 "David O'Brien" <obrien@NUXI.com>
18240
18241 * fixinc/inclhack.def(stdio_va_list): This patch Removes a
18242 semicolon from the BSD VA_LIST replacement expression.
18243
18244 * fixinc/inclhack.sh: regen
18245 * fixinc/fixincl.x: regen
18246
18247 * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
18248 now use the fixincl program.
18249
18250 Mon Jun 28 05:28:12 1999 Jeffrey A Law (law@cygnus.com)
18251
18252 * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
18253 case. Also make the PIC register call_used.
18254
18255 * m68k.h (FINALIZE_PIC): Delete.
18256 * m68k.c (finalize_pic): Delete.
18257
18258 Mon Jun 28 05:16:35 1999 Richard Henderson <rth@cygnus.com>
18259
18260 * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
18261 to memory.
18262
18263 Mon Jun 28 04:07:27 1999 David Edelsohn <edelsohn@gnu.org>
18264
18265 * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
18266
18267 Sun Jun 27 02:39:08 1999 Richard Henderson <rth@cygnus.com>
18268
18269 * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
18270
18271 Sat Jun 26 17:18:18 1999 David Edelsohn <edelsohn@gnu.org>
18272
18273 * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
18274
18275 Fri Jun 25 11:33:24 1999 Richard Henderson <rth@cygnus.com>
18276
18277 * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
18278
18279 Fri Jun 25 13:41:25 1999 David Edelsohn <edelsohn@gnu.org>
18280
18281 * rs6000.c (output_toc): Always use hex values for floating-point
18282 constants. Store single-precision values in upper-half of TOC
18283 entry in 64-bit mode.
18284 * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
18285 to final constraints.
18286 (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
18287 (fctiwz): Improve accuracy of RTL for pattern.
18288
18289 Fri Jun 25 11:26:38 1999 Gavin Romig-Koch <gavin@cygnus.com>
18290
18291 * expr.c (expand_expr): Allow RTL_EXPR's through the
18292 MAX_INTEGER_COMPUTATION_MODE checks.
18293
18294 Fri Jun 25 06:06:37 1999 Richard Henderson <rth@cygnus.com>
18295
18296 * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
18297 such that MASK_SUPPORT_ARCH is not negative.
18298
18299 Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com)
18300
18301 * loop.c (verify_dominator): Properly handle ADDR_VEC and
18302 ADDR_DIFF_VEC insns that appear inside loops.
18303
18304 Thu Jun 24 22:54:05 1999 David Edelsohn <edelsohn@gnu.org>
18305 Jeff Law <law@cygnus.com>
18306
18307 * rs6000.md (movdf_hardfloat32): Revert previous patch.
18308 Handle LO_SUM the same as offsettable in cases 1 and 2.
18309 * rs6000.c (find_addr_reg): Revert previous patch.
18310
18311 Thu Jun 24 22:43:12 1999 Philippe De Muyter <phdm@macqel.be>
18312
18313 * system.h (strstr): New external function declaration.
18314 * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
18315 * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
18316 * config.in, configure: Rebuilt.
18317
18318 1999-06-24 Tom Tromey <tromey@cygnus.com>
18319
18320 * gcc.c (main): Read user-specified specs files after computing
18321 additional startfile_prefixes.
18322
18323 Thu Jun 24 15:00:47 1999 Mark Mitchell <mark@codesourcery.com>
18324
18325 Revert these two patches:
18326
18327 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18328 * loop.c (strength_reduce): When doing biv->giv conversion, update
18329 reg note of NEXT->insn.
18330
18331 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18332 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
18333 reg_biv_class.
18334 (recombine_givs): Set ix field after sorting.
18335
18336 Wed Jun 23 21:26:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18337
18338 * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
18339 for the parts of an UNSPEC / UNSPEC_VOLATILE.
18340
18341 1999-06-23 Bruce Korb <ddsinc09@ix.netcom.com>
18342
18343 *fixinc/inclhack.def: Add fix development commentary
18344 (read_ret_type): reactivate and add selection clause
18345 (zzz_*): tweak output file name to match what is used in hackshell.tpl
18346 *fixinc/{fixincl.x|inclhack.sh}: regen
18347
18348 Wed Jun 23 00:48:21 1999 Jason Merrill <jason@yorick.cygnus.com>
18349
18350 * expr.c (expand_expr): STRIP_NOPS before checking against
18351 MAX_INTEGER_COMPUTATION_MODE
18352 (check_max_integer_computation_mode): Likewise.
18353
18354 Tue Jun 22 20:23:43 1999 Jim Wilson <wilson@cygnus.com>
18355
18356 * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
18357
18358 1999-06-22 Jim Wilson <wilson@cygnus.com>
18359
18360 * expr.c (store_expr): When target is a promoted subreg, return a
18361 promoted subreg as a result.
18362
18363 Tue Jun 22 17:14:58 1999 Michael Meissner <meissner@cygnus.com>
18364
18365 * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
18366 coding standards.
18367 (dwarf2out_define): Mark unused parameters appropriately.
18368 (gen_unspecified_parameters_die): Ditto.
18369 (gen_subprogram_die): Fix signed/unsigned warnings.
18370 (gen_variable_die): Ditto.
18371
18372 1999-06-22 Bruce Korb <ddsinc09@ix.netcom.com>
18373
18374 * fixinc/inclhack.def(end_else_label): combined else_label
18375 and endif_label and fixed the sed expression.
18376 *fixinc/{fixincl.x|inclhack.sh}: regen
18377
18378 Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com)
18379
18380 * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
18381 'x' when handling non-offsettable addresses
18382
18383 Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com)
18384
18385 * final.c (shorten_branches): Don't try to split an insn that has
18386 been deleted.
18387
18388 Mon Jun 21 12:47:39 1999 Mark Mitchell <mark@codesourcery.com>
18389
18390 * config/mips/mips.c (symbolic_expression_p): New function.
18391 (mips_select_rtx_section): Put symbolic expressions in the
18392 data section, not the read-only data section.
18393
18394 Mon Jun 21 22:13:06 1999 Jeffrey A Law (law@cygnus.com)
18395
18396 * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
18397
18398 Mon Jun 21 20:10:42 1999 Richard Henderson <rth@cygnus.com>
18399
18400 * collect2.c (main): Log frame table count.
18401 (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
18402 (scan_prog_file) [COFF]: Handle frame tables.
18403
18404 * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
18405 (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
18406 * alpha/elf.h: Undef them again.
18407 * alpha/vms.h: Remove their definitions.
18408
18409 Tue Jun 22 03:17:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18410
18411 * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
18412 remove the clobber of r0 and change the REG_UNUSED note to
18413 REG_INC.
18414
18415 1999-06-21 Jakub Jelinek <jj@ultra.linux.cz>
18416
18417 * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
18418 * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
18419 fits in HOST_WIDE_INT and one uses union to access a long constant
18420 as double.
18421
18422 Mon Jun 21 17:18:25 1999 Richard Henderson <rth@cygnus.com>
18423
18424 * sparc.c (sparc_override_options): Don't allow profiling for
18425 code models other than medlow.
18426 (sparc_function_profiler): New function from old FUNCTION_PROFILER
18427 macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
18428 (sparc_function_block_profiler): Likewise. Use user_label_prefix.
18429 (sparc_block_profiler): Likewise.
18430 (sparc_function_block_profiler_exit): Likewise.
18431 * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
18432 (FUNCTION_BLOCK_PROFILER): Likewise.
18433 (BLOCK_PROFILER): Likewise.
18434 (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
18435 (MCOUNT_FUNCTION): New.
18436 * sparc/pbd.h (FUNCTION_PROFILER): Delete.
18437 (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
18438 * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
18439 (MCOUNT_FUNCTION): New.
18440 * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
18441 (BLOCK_PROFILER): Delete.
18442 (MCOUNT_FUNCTION): New.
18443
18444 Mon Jun 21 14:11:29 1999 David Edelsohn <edelsohn@gnu.org>
18445
18446 * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
18447
18448 Mon Jun 21 12:27:17 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
18449
18450 * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18451 Add the macros.
18452
18453 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18454 Ditto.
18455
18456 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18457 Ditto.
18458
18459 * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18460 Ditto.
18461
18462 Mon Jun 21 14:58:42 1999 Nick Clifton <nickc@cygnus.com>
18463
18464 * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
18465 types.
18466
18467 Mon Jun 21 06:22:21 1999 Mark Elbrecht <snowball3@bigfoot.com>
18468
18469 * i386/djgpp.h (LIB_SPEC): New.
18470 (STARTFILE_SPEC): New.
18471
18472 * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
18473
18474 Mon Jun 21 06:19:33 1999 Philippe De Muyter <phdm@macqel.be>
18475
18476 * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
18477 compiler flags.
18478
18479 * system.h (WSTOPSIG): New macro.
18480
18481 Mon Jun 21 05:33:15 1999 Mumit Khan <khan@xraylith.wisc.edu>
18482
18483 * c-pragma.c (push_alignment): Don't ignore alignments greater than
18484 4 bytes.
18485 (insert_pack_attributes): Take into account member natural
18486 alignment.
18487
18488 * i386/winnt.c (exports_head): New static variable.
18489 (i386_pe_record_exported_symbol): New function.
18490 (i386_pe_asm_file_end): Use.
18491 * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
18492 symbols to be emitted at end of assembly.
18493 (ASM_DECLARE_OBJECT_NAME): Likewise.
18494 (ASM_DECLARE_FUNCTION_NAME): Likewise.
18495
18496 * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
18497 -iwithprefix.
18498
18499 Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com)
18500
18501 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
18502 in last change.
18503
18504 Sun Jun 20 17:27:20 1999 Richard Henderson <rth@cygnus.com>
18505
18506 * haifa-sched.c (sched_analyze_1): Use free_list instead of
18507 zapping reg_last_uses directly.
18508 (sched_analyze_2, sched_analyze_insn): Likewise.
18509 (sched_analyze): Likewise. Don't clear reg_last_uses on calls.
18510
18511 Sun Jun 20 16:57:29 1999 David Edelsohn <edelsohn@gnu.org>
18512
18513 * rs6000.md (movdf_hardfloat32): Use worst case insn length
18514 attributes for cases 1 and 2.
18515
18516 Sat Jun 19 22:52:55 1999 Richard Henderson <rth@cygnus.com>
18517
18518 * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
18519 instead of set.
18520
18521 Sat Jun 19 05:40:07 1999 Philip Blundell <pb@nexus.co.uk>
18522
18523 * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
18524
18525 Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com)
18526
18527 * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
18528 PIC_OFFSET_TABLE_REGNUM for general alloaction.
18529 (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
18530 must be stacked if it is used for PIC accesses.
18531 * arm.c (use_return_insn): Handle PIC register specially.
18532 (output_return_instruction): Likewise.
18533 (output_func_{prologue,epilogue}): Likewise.
18534 (output_expand_prologue): Likewise.
18535
18536 * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
18537 (*strsi_predec): Renamed from *strqi_predec.
18538 (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
18539 (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
18540
18541 * arm.c (arm_override_options): Remove warning about PIC code
18542 not being supported.
18543
18544 Fri Jun 18 23:47:06 1999 David Edelsohn <edelsohn@gnu.org>
18545
18546 * rs6000.c (find_addr_reg): New function.
18547 * rs6000.h (find_addr_reg): Declare.
18548 (offsettable_addr_operand): Delete.
18549 * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
18550 from and stores to GPRs.
18551
18552 Fri Jun 18 15:44:18 1999 Richard Henderson <rth@cygnus.com>
18553
18554 * alpha.c (alpha_expand_block_move): Use get_insns rather than
18555 gen_sequence as argument to emit_no_conflict_block.
18556
18557 Fri Jun 18 07:02 1999 Bruce Korb <ddsinc09@ix.netcom.com>
18558
18559 * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
18560 * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
18561 *fixinc/fixincl.x: regen
18562 *fixinc/inclhack.sh: regen
18563
18564 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay <dlindsay@cygnus.com>
18565
18566 * added support for -mpcrel (PC relative addressing for m68k)
18567 based on code done by Michael Tiemann <tiemann@axon.cygnus.com>.
18568 * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
18569 * m68k.c (print_operand_address): Handle 32-bit PIC case.
18570 (comments for general_src_operand): Add some explanation
18571 about EXTRA_CONSTRAINTS.
18572 (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
18573 * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
18574 (LEGITIMATE_PIC_OPERAND_P): Fix typo.
18575 (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
18576 * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
18577 (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
18578 (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
18579 if not already set.
18580 (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
18581 * m68k.h (TARGET_PCREL): New target flag.
18582 (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
18583 (OVERRIDE_OPTIONS): Add checks for -mpcrel.
18584 (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
18585 contains a SYMBOL_REF. Relax this constraint during reload, since
18586 we want to use the predicates, not reload's built-in concept of a
18587 valid memory address, to control what insns need reloading.
18588 (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
18589 operands (essentially 'g', 'm', and 's' under normal circumstances).
18590 * m68k.c (print_operand): Cause printing of pc-relative addresses
18591 to include pc register.
18592 (print_operand_address): Ditto.
18593 (general_src_operand): Accept operands that are not only
18594 general_operands, but are also valid when used as a pc-relative
18595 source.
18596 (nonimmediate_src_operand): Similar, for nonimmediate_operands.
18597 (memory_src_operand): Similar, for memory_operands.
18598 (pcrel_address): New predicate to accept the special case of a
18599 pc-relative address.
18600 * m68k.md (many patterns): Rewrite common SImode, HImode, and
18601 QImode insns to accept *_src_operand instead of *_operand where
18602 pc-relative operands can fit. For example, a pc-relative operand
18603 can be used as a memory source operand for addsi3, but not as a
18604 memory destination.
18605 * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
18606
18607 Fri Jun 18 09:11:07 1999 Nick Clifton <nickc@cygnus.com>
18608
18609 * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
18610 .thumb_set pseudo op to mark aliases of thumb functions.
18611
18612 Wed Jun 16 18:19:13 1999 Nick Clifton <nickc@cygnus.com>
18613
18614 * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
18615 preference to ASM_OUTPUT_DEF, if it is defined.
18616
18617 * tm.texi: Document new, optional target macro
18618 ASM_OUTPUT_DEF_FROM_DECLS.
18619
18620 Thu Jun 17 15:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
18621
18622 * fixincludes: ISCNTL patch
18623 * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
18624 (dgux_int_varargs): new for DG/UX
18625 * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
18626
18627 Thu Jun 17 21:34:24 1999 Jeff Law <law@cygnus.com>
18628
18629 * invoke.texi (ia32 options): Fix typo.
18630
18631 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18632
18633 * loop.c (strength_reduce): When doing biv->giv conversion, update
18634 reg note of NEXT->insn.
18635
18636 Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com)
18637
18638 * loop.c (move_movables): Note issues with replacing REGs with
18639 SUBREGs.
18640 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
18641
18642 Thu Jun 17 13:28:30 1999 David O'Brien <obrien@FreeBSD.org>
18643
18644 * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
18645
18646 * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
18647 the reference to `mcount' was not correct for the ELF on FreeBSD.
18648
18649 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18650
18651 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
18652 reg_biv_class.
18653
18654 (recombine_givs): Set ix field after sorting.
18655
18656 Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com)
18657
18658 * emit-rtl.c (operand_subword): Tighten checks for when it is safe
18659 to safe to extract a subword out of a REG.
18660
18661 Thu Jun 17 01:45:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18662
18663 * sh.md (mulsi3): Don't add a no-op move at the end.
18664
18665 Wed Jun 16 20:29:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18666
18667 * cse.c (cse_insn): Don't put hard register source into tables for
18668 the last insn of a libcall.
18669
18670 Wed Jun 16 19:44:33 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18671
18672 * loop.c (strength_reduce): Insert sets of derived givs at every
18673 biv increment, even if it's the only one.
18674
18675 Wed Jun 16 10:33:02 1999 Jason Merrill <jason@yorick.cygnus.com>
18676
18677 * dwarfout.c (add_incomplete_type): New fn.
18678 (output_type): Call it.
18679 (retry_incomplete_types): New fn.
18680 (dwarfout_finish): Call it.
18681
18682 From Eric Raskin <ehr@listworks.com>:
18683 (output_type): Output types for bases.
18684
18685 Tue Jun 15 12:51:23 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
18686
18687 * mips.c (mips_output_conditional_branch): Add `break'
18688 between `default' label and `close braces'.
18689
18690 Tue Jun 15 01:55:20 1999 David O'Brien <obrien@FreeBSD.org>
18691
18692 * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
18693 specifications and make it realistic.
18694 (LIB_SPEC): Likewise.
18695
18696 Mon Jun 14 15:38:43 1999 Jim Wilson <wilson@cygnus.com>
18697
18698 * config/mips/mips.c (mips_secondary_reload_class): Check for
18699 (PLUS (SP) (REG)) and return appropriate register class.
18700 * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
18701 Handle (PLUS (SP) (REG)).
18702 (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
18703 (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
18704 of emit_insn for tablejump.
18705
18706 Mon Jun 14 17:26:40 1999 David Edelsohn <edelsohn@gnu.org>
18707
18708 * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
18709 asm_fprintf format string by itself.
18710 (output_function_profiler): Likewise.
18711
18712 Mon Jun 14 12:57:38 1999 David Mosberger <davidm@hpl.hp.com>
18713
18714 * combine.c (simplify_logical, case AND): Only call
18715 simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
18716 or the constant is positive.
18717
18718 Mon Jun 14 11:43:41 1999 Nick Clifton <nickc@cygnus.com>
18719
18720 * configure.in: Fix typo in rs6000-ibm-aix4 case.
18721 * configure: Regenerate.
18722
18723 Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com)
18724
18725 * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
18726 require a sub-version #.
18727 * configure: Rebuilt.
18728
18729 1999-06-14 Robert Lipe (robertlipe@usa.net)
18730
18731 * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
18732
18733 Mon Jun 14 10:30:52 BST 1999 Nathan Sidwell <nathan@acm.org>
18734
18735 * c-typeck.c (process_init_element): Detect excess elements in
18736 char array initializer.
18737
18738 1999-06-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
18739
18740 * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
18741
18742 Sat Jun 12 22:29:48 EDT 1999 Jerry Quinn <jquinn@nortelnetworks.com>
18743
18744 * invoke.texi (Option Summary): Add -fpermissive flag.
18745
18746 Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com)
18747
18748 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
18749 that require PIC code sequences.
18750
18751 Wed Jun 9 16:29:01 1999 Nick Clifton <nickc@cygnus.com>
18752
18753 * configure.in: Add new target: thumb-elf.
18754 * configure: Regenerate.
18755 * config/arm/t-thumb-elf: New file: Makefile fragment for
18756 thumb-elf build.
18757 * config/arm/telf.h: New file: Header file for thumb-elf
18758 build.
18759
18760 Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com)
18761
18762 * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
18763 * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
18764 initializers is some circumstances.
18765
18766 * fixinc/inclhack.def (endif_label): Add additional selector for
18767 more bogus stuff after #endif statements.
18768 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
18769
18770 Thu Jun 10 20:44:36 1999 Mumit Khan <khan@xraylith.wisc.edu>
18771
18772 * i386/cygwin.h (SET_ASM_OP): Define.
18773
18774 Thu Jun 10 20:37:57 1999 Mumit Khan <khan@xraylith.wisc.edu>
18775
18776 * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
18777
18778 Thu Jun 10 19:23:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18779
18780 * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
18781 latter.
18782
18783 * sh.md (ic_invalidate_line_i): Remove second alternative.
18784
18785 Thu Jun 10 06:55 1999 Bruce Korb <ddsinc09@ix.netcom.com>
18786
18787 *fixinc/inclhack.def(sun_auth_proto): We do not know how to
18788 test for the presence of valid prototypes. Delete bypass expr.
18789 (ioctl_fix_ctrl): Correct the selection expression.
18790 (no_double_slash): Correct quoting rules
18791 *fixinc/fixincl.x: regen
18792 *fixinc/inclhack.sh: regen
18793
18794 Thu Jun 10 15:08:15 1999 Nick Clifton <nickc@cygnus.com>
18795
18796 * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
18797
18798 Wed Jun 9 15:57:57 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18799
18800 * rs6000.md (movsi_got_internal_mem): Delete.
18801 * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
18802 (GOT_TOC_REGNUM): Delete.
18803 (PIC_OFFSET_TABLE_REGNUM): Define.
18804 (FINALIZE_PIC): Disable.
18805 * rs6000.c (rs6000_got_register): New code for fixed pic register.
18806 (rs6000_replace_regno): Delete.
18807 (rs6000_finalize_pic): Likewise.
18808 (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
18809
18810 Wed Jun 9 19:44:26 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18811
18812 * loop.c (loop_insn_first_p): Don't compare LUIDs when P
18813 is a note; use <= for the compare; advance P while it is
18814 a NOTE.
18815
18816 Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com)
18817
18818 * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
18819 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
18820
18821 * varasm.c (remove_from_pending_weak_list): Verify t->name
18822 is non-NULL before passing it to strcmp.
18823
18824 Wed Jun 9 06:50 1999 Bruce Korb <ddsinc09@ix.netcom.com>
18825
18826 *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
18827 the typed arguments are not part of a comment
18828 (ioctl_fix_ctrl): Added a purpose comment
18829 *fixinc/fixincl.x: regenerate
18830 *fixinc/inclhack.sh: regenerate
18831
18832 Wed Jun 9 22:57:02 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
18833
18834 * invoke.texi: Add C4x invocation docs.
18835
18836 Wed Jun 9 22:34:38 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
18837
18838 * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
18839 Define new macros.
18840 * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
18841 TARGET_EXPOSE_LDP.
18842 (c4x_legitimize_reload_address): New function.
18843 * config/c4x/c4x.md: Update docs.
18844
18845 Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com)
18846
18847 * fixincludes: Avoid removing '.'.
18848 * fixinc/fixinc.svr4: Likewise.
18849 * fixinc/fixinc.winnt: Likewise.
18850 * fixinc/inclhack.tpl: Likewise.
18851 * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
18852
18853 1999-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18854
18855 * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
18856 pattern.
18857 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
18858
18859 Wed Jun 9 03:10:34 1999 Mumit Khan <khan@xraylith.wisc.edu>
18860
18861 * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
18862 correctly.
18863
18864 Tue Jun 8 13:06:15 1999 Jim Wilson <wilson@cygnus.com>
18865
18866 * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
18867 * configure: Regenerate.
18868
18869 Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com)
18870
18871 * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
18872 values.
18873
18874 Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com)
18875
18876 * fixinc/inclhack.def (avoid_bool): Also catch
18877 "typedef [unsigned] int bool".
18878 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
18879
18880 * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
18881 * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
18882 * configure: Rebuilt.
18883
18884 Mon Jun 7 22:05:03 1999 Mark Kettenis <kettenis@gnu.org>
18885
18886 * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
18887 such that we can override its definitions if necessary.
18888 (CPP_SPEC): New define. Support processor specific predefines via
18889 %(cpp_cpu).
18890 (CC1_SPEC): New define. Support processor specific compiler
18891 options via %(cc1_cpu).
18892 (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for
18893 -static.
18894
18895 1999-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18896
18897 * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
18898 between sed's -e flag, and the open-quote following it.
18899 * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
18900
18901 Mon Jun 7 20:34:20 1999 Robert Lipe <robertlipe@usa.net>
18902 Jeffrey A Law (law@cygnus.com)
18903
18904 * varasm.c (assemble_start_function): Remove the function
18905 from the pending weak decls list when we define a function.
18906 (assemble_variable): Similarly for variables.
18907 (weak_finish): Ignore items on the list with a NULL name.
18908 (remove_from_ending_weak_list); New function to "remove" an item
18909 from the pending weak declarations list.
18910
18911 Mon Jun 7 19:27:07 1999 Jerry Quinn <jquinn@nortelnetworks.com>
18912
18913 * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
18914
18915 Mon Jun 7 14:07:39 1999 Dave Brolley <brolley@cygnus.com>
18916
18917 * c-lex.c (GETC): Redefine to call getch.
18918 (UNGETC): Redefine to call put_back.
18919 (putback_buffer): New structure type.
18920 (putback): New static structure.
18921 (getch): New function.
18922 (put_back): New function.
18923 (yylex): Replace unused bytes from bad multibyte character.
18924
18925 Mon Jun 7 13:33:39 1999 Dave Brolley <brolley@cygnus.com>
18926
18927 * cpplib.c (do_define): Cast `alloca' return value.
18928 (do_include, do_undef, do_pragma): Likewise.
18929 * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
18930 values.
18931 * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
18932 * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
18933
18934 Sun Jun 6 11:58:34 1999 Jakub Jelinek <jj@ultra.linux.cz>
18935
18936 * sparc.md (abstf2): This should be an expand.
18937 (split after abstf2_notv9): Fix mode.
18938 (abstf2_hq_v9): New pattern.
18939 (abstf2_v9): Only use when no hard quad.
18940 (absdf2_v9): Fix if target is not the same as source.
18941 (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
18942 Add correct output constraints.
18943
18944 Sat Jun 5 17:04:16 1999 Craig Burley <craig@jcb-sc.com>
18945
18946 From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
18947 * invoke.texi: Clarify text vis-a-vis Intel CPUs.
18948
18949 Sat Jun 5 12:11:24 1999 Mark Mitchell <mark@codesourcery.com>
18950
18951 * mips.h (mips_output_conditional_branch): New function.
18952 (mips_adjust_insn_length): Likewise.
18953 (ASSEMBLER_SCRATCH_REGNUM): New macro.
18954 (ADJUST_INSN_LENGTH): Likewise.
18955 * mips.c (print_operand): Add `F' and `W' for floating-point
18956 comparison opcodes.
18957 (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
18958 are now in bytes.
18959 (mips_adjust_insn_length): New function.
18960 (mips_output_conditional_branch): New function.
18961 * mips.md (length): Adjust attribute definition to handle
18962 conditional branches. Change lengths to bytes, rather than
18963 instructions throughout. Remove length attribute from
18964 instructions whose length is four bytes, and rely on the default
18965 instead.
18966 (dslot): Fix typo in comment.
18967 Reword conditional branch patterns to use
18968 mips_output_conditional_branch.
18969
18970 Fri Jun 4 13:30:27 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
18971
18972 * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
18973 (LIB_SPEC): Likewise.
18974 Link with -lprof1_r for -g/-pg.
18975
18976 1999-06-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
18977
18978 * loop.c (check_dbra_loop): Fix change of Jan 19.
18979
18980 Fri Jun 4 00:12:40 1999 Marc Espie <espie@cvs.openbsd.org>
18981
18982 * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define.
18983 (STARTFILE_SPEC): Define, override the svr4.h version.
18984 (ENDFILE_SPEC): Likewise.
18985
18986 Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com)
18987
18988 * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
18989 * fixinc/fixincl.x: Regenerated.
18990 * fixinc/inclhack.sh: Regenerated.
18991
18992 Fri Jun 4 05:42:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18993
18994 * sh.c (barrier_align): Don't return early for normal branch/barrier
18995 when optimizing for SH2.
18996
18997 Thu Jun 3 22:27:50 1999 Robert Lipe <robertlipe@usa.net>
18998
18999 * i386/udk.h (LINK_SPEC): Correct linker search path for
19000 system libraries.
19001
19002 Fri Jun 4 03:20:40 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19003
19004 * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
19005 (braf_label_ref_operand): Delete.
19006 * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
19007 * sh.md (casesi_jump_2): Operand1 is now the inside of a
19008 label_ref, and has no predicate.
19009 The patten has a predicate to guard against invalid substitutions.
19010 (dummy_jump): Delete.
19011 (casesi): Update use of casesi_jump_2.
19012
19013 Thu Jun 3 07:48 1999 Bruce Korb <ddsinc09@ix.netcom.com>
19014
19015 *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
19016 *fixinc/fixincl.x: regenerate
19017 *fixinc/inclhack.sh: regenerate
19018
19019 Thu Jun 3 02:15:07 1999 Jason Merrill <jason@yorick.cygnus.com>
19020
19021 * dwarf2out.c (add_incomplete_type): New fn.
19022 (gen_struct_or_union_type_die): Call it.
19023 (retry_incomplete_types): New fn.
19024 (dwarf2out_finish): Call it.
19025
19026 Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com)
19027
19028 * gcse.c (insert_insn_end_bb): Correct placement of insns when the
19029 current block starts with a CODE_LABEL and ends with a CALL and
19030 we can not find all the argument setup instructions for the CALL.
19031
19032 Wed Jun 2 15:44:15 1999 Mark Mitchell <mark@codesourcery.com>
19033
19034 Revert this change:
19035 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
19036 something is a candidate for optimize_bit_field_compare.
19037
19038 Wed Jun 2 21:53:05 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19039
19040 * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
19041
19042 Wed Jun 2 12:25:55 1999 Richard Henderson <rth@cygnus.com>
19043
19044 * alpha.c (override_options): Thinko in last patch.
19045
19046 * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
19047 (LIB_SPEC): Recognize -pthread.
19048
19049 Wed Jun 2 08:42:55 1999 Nick Clifton <nickc@cygnus.com>
19050
19051 * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
19052 definition in config/arm/coff.h
19053 * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
19054
19055 Wed Jun 2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
19056
19057 * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
19058 fixes that need "file=xxx\n" prepended before invocation
19059 (start_fixer - new): starting the fixer process is complex enough
19060 to warrent its own routine. It prepends the "file=xxx\n" stuff.
19061 (process): uses the new routine; omit usage of putenv()
19062 * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
19063 * fixinc/fixincl.x: regenerate
19064
19065 Wed Jun 2 02:29:07 1999 Jeffrey A Law (law@cygnus.com)
19066
19067 * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
19068 and version #s (1.1 -> 2.96) as needed.
19069 * README.g77: Kill way out of date file in the toplevel directory.
19070
19071 Wed Jun 2 00:52:34 1999 David O'Brien <obrien@FreeBSD.org>
19072
19073 * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
19074 i386/freebsd-elf.h no longer requires it. Instead include svr4.h.
19075 * configure: Rebuilt.
19076 * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
19077 (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
19078 (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
19079 (SWITCH_TAKES_ARG): Likewise.
19080 * i386/freebsd.h: Remove FREEBSD_NATIVE support.
19081 * config/t-freebsd: Moved from config/i386/ so it can used for all
19082 FreeBSD targets.
19083
19084 Mon May 31 02:22:55 1999 Philippe De Muyter <phdm@macqel.be>
19085
19086 * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
19087
19088 Wed Jun 2 00:08:34 1999 Robert Lipe <robertlipe@usa.net>
19089
19090 * configure.in (i[34567]86-*-udk*): Install headers with cpio.
19091 * configure: Rebuilt.
19092
19093 Tue Jun 1 19:06:22 1999 David Edelsohn <edelsohn@gnu.org>
19094
19095 * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
19096 * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
19097 * rs6000/rs6000.c (rs6000_file_start): Use putc.
19098 (rs6000_output_load_toc_table): Same.
19099 (output_prolog, output_mi_thunk): Same.
19100 * rs6000/rs6000.h (SELECT_SECTION): Formatting.
19101 (ASM_GLOBALIZE_LABEL): Use putc.
19102
19103 Mon May 31 15:23:23 1999 Richard Henderson <rth@cygnus.com>
19104
19105 * alpha.md (reload_*_help): New patterns and splitters.
19106 (reload_*): Use them.
19107 (mov[qh]i): Likewise.
19108
19109 Mon May 31 11:48:07 1999 Mark Mitchell <mark@codesourcery.com>
19110
19111 * cccp.c (handle_directive): Handle backslash-newlines in quoted
19112 strings correctly.
19113
19114 Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu>
19115
19116 * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
19117
19118 Mon May 31 11:40:20 EDT 1999 John Wehle (john@feith.com)
19119
19120 * flow.c (mark_regs_live_at_end, insn_dead_p,
19121 mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
19122 and HARD_FRAME_POINTER_REGNUM special treatment if reload
19123 hasn't run or the frame pointer is needed.
19124 * haifa-sched.c (attach_deaths): Likewise.
19125 * sched.c (attach_deaths): Likewise.
19126
19127 Mon May 31 00:46:17 1999 Jeffrey A Law (law@cygnus.com)
19128
19129 * jump.c (jump_optimize_1): Only set CAN_REACH_END if
19130 calculate_can_reach_end returns nonzero.
19131
19132 * configure.in (native gas tests): Search for an assembler in the
19133 same manner that the installed compiler will.
19134 * configure: Rebuilt.
19135 * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
19136
19137 * alias.c (find_base_term): Improve handling of addresses
19138 constructed from binary operations.
19139
19140 Sun May 30 14:29:17 1999 Eric Raskin (ehr@listworks.com)
19141
19142 * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
19143
19144 Sun May 30 14:19:13 1999 Jeffrey A Law (law@cygnus.com)
19145
19146 * function.h (cleanup_label, frame_offset): Declare.
19147 (tail_recursion_label, tail_recursion_reentry): Likewise.
19148 (arg_pointer_save_area, rtl_expr_chain): Likewise.
19149 * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
19150 (tail_recursion_label, tail_recursion_reentry): Likewise.
19151 (arg_pointer_save_area, rtl_expr_chain): Likewise.
19152
19153 Sat May 29 19:08:10 1999 Philip Blundell <philb@gnu.org>
19154
19155 * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
19156 defined.
19157 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
19158 (MAX_OFILE_ALIGNMENT): Define.
19159
19160 Fri May 28 21:40 1999 Robert Lipe <robertlipe@usa.net>
19161
19162 * fixincl.c: Replace local include scheme with #includes of
19163 gansidecl.h and system.h.
19164 * procopen.c: Likewise.
19165 * server.c: Likewise.
19166
19167 Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com)
19168
19169 * i386/t-dgux (EXTRA_PARTS): Add crti.o
19170 (crti.o): Add build rule and dependencies.
19171 * fixinc/fixinc.dgux: Use modified _int_varargs.h
19172
19173 Fri May 28 03:41:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
19174
19175 * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
19176 (LIB_LINUX_SPEC): Likewise.
19177 (LIB_LINUX_SPEC): Add support for -pthread
19178 (CPP_OS_LINUX_SPEC): Likewise.
19179 (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
19180 specified.
19181
19182 Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org)
19183
19184 * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
19185 conditional move.
19186 (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
19187 (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
19188 for IEEE math and CC_FCOMI.
19189 (put_jump_code): No IEEE if CC_FCOMI is set.
19190
19191 1999-05-27 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
19192
19193 * fold-const.c (fold_truthop): Make the field reference unsigned
19194 when converting a single bit compare.
19195
19196 Thu May 27 02:40:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19197
19198 * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
19199
19200 Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com)
19201
19202 * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
19203 * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
19204 version did.
19205
19206 * reload.c (push_reload): Do not call remove_address_replacements
19207 when presented with identical optional reloads.
19208
19209 Wed May 26 14:18:05 1999 Richard Henderson <rth@cygnus.com>
19210
19211 * alpha.h (MASK_FIX, TARGET_FIX): New.
19212 (MASK_*): Reorganize constants.
19213 (CPP_AM_FIX_SPEC): New.
19214 (TARGET_SWITCHES): Add FIX.
19215 (EXTRA_SPECS): Likewise.
19216 (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
19217 (SECONDARY_MEMORY_NEEDED): Likewise.
19218 (REGISTER_MOVE_COST): Likewise.
19219 * alpha.c (override_options): Add FIX support. Always use
19220 ALPHA_TP_PROG for ev6.
19221 * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
19222 * alpha/elf.h (ASM_FILE_START): Look at FIX too.
19223 * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
19224
19225 Wed May 26 09:53:05 1999 Mark Mitchell <mark@codesourcery.com>
19226
19227 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
19228 something is a candidate for optimize_bit_field_compare.
19229
19230 Wed May 26 09:40:02 1999 Mark Mitchell <mark@codesourcery.com>
19231
19232 * gcc.texi (Passes): Document branch-shortening.
19233 * invoke.texi (Debugging Options): Document the fact that `-dp'
19234 outputs length information for instructions.
19235
19236 Wed May 26 08:49:31 1999 Nick Clifton <nickc@cygnus.com>
19237
19238 * flow.c: Revert previous delta.
19239
19240 Wed May 26 06:05:10 1999 Nick Clifton <nickc@cygnus.com>
19241
19242 * flow.c (insn_dead_p): Check against frame_pointer_rtx not
19243 FRAME_POINTER_REGNUM.
19244 (mark_set_1): Ditto.
19245 (mark_used_regs): Ditto.
19246
19247 Wed May 26 02:19:31 1999 Philip Blundell <pb@nexus.co.uk>
19248
19249 * arm.h (NEED_PLT_GOT): Fix mistake in last change.
19250 (GOT_PCREL): New macro. Define to 1 if not already defined.
19251 * arm/elf.h (GOT_PCREL): Define to 0.
19252 * arm.c (arm_finalize_pic): Take into account the setting of
19253 GOT_PCREL.
19254
19255 Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com)
19256
19257 * output.h (STRIP_NAME_ENCODING): Provide default definition.
19258 * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
19259
19260 * flow.c (mark_set_1): Do not record BLKmode stores as dead
19261 store elimination candidates.
19262
19263 Tue May 25 08:55:57 1999 Gavin Romig-Koch <gavin@cygnus.com>
19264
19265 * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
19266 TARGET_GAS.
19267
19268 Mon May 24 20:30:08 1999 Jim Wilson <wilson@cygnus.com>
19269
19270 * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
19271 Add use of x-aix41-gld.
19272
19273 Mon May 24 16:44:09 1999 Jakub Jelinek <jj@ultra.linux.cz>
19274
19275 * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
19276 (ASM_OUTPUT_DESTRUCTOR): Define.
19277
19278 Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com)
19279
19280 * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
19281 last CODE_LABEL in a loop if we have previously passed a jump
19282 to the top of the loop.
19283
19284 Mon May 24 07:56:29 1999 Nick Clifton <nickc@cygnus.com>
19285
19286 * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
19287 applying Philip's patch.
19288
19289 Mon May 24 01:02:12 1999 Mark Mitchell <mark@codesourcery.com>
19290
19291 * stmt.c (expand_end_bindings): Ignore any elements of VARS that
19292 are not VAR_DECLs.
19293
19294 Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com)
19295
19296 * loop.c (strength_reduce): Grow reg_single_usage as needed.
19297
19298 Sun May 23 10:13:20 1999 David O'Brien <obrien@FreeBSD.org>
19299
19300 * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
19301 Also remove a useless comment.
19302
19303 Sun May 23 10:05:23 1999 Jerry Quinn <jquinn@nortelnetworks.com>
19304
19305 * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0.
19306
19307 Sat May 22 21:02:06 1999 David Edelsohn <edelsohn@gnu.org>
19308
19309 * collect2.c (main): Only generate import or export file and add
19310 to link arguments if non-empty. Use xmalloc not alloca.
19311 (write_{export,import}_file): Delete.
19312 (write_aix_file): New function.
19313 (locatelib): Use xmalloc not malloc.
19314 (GCC_OK_SYMBOL): Do not check type if aix64.
19315
19316 Sat May 22 09:35:51 1999 Philip Blundell <pb@nexus.co.uk>
19317
19318 Based on patch by Scott Bambrough and Pat Beirne:
19319 * config/arm/arm.c (making_const_table): New variable.
19320 * config/arm/arm.h (making_const_table): Declare.
19321 (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
19322 appropriate.
19323 * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
19324 Keep track of when we are building the constant table.
19325
19326 Sat May 22 09:34:22 1999 Philip Blundell <pb@nexus.co.uk>
19327
19328 * config/arm/arm.c (arm_override_options): Fix erroneous warning
19329 message.
19330
19331 Sat May 22 09:06:33 1999 Nick Clifton <nickc@cygnus.com>
19332
19333 * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
19334 defined.
19335
19336 Sat May 22 07:17:05 1999 Nick Clifton <nickc@cygnus.com>
19337
19338 * tm.texi (FUNCTION_ARG): Correct description of a stack element
19339 in a PARALLEL.
19340
19341 Sat May 22 01:27:49 1999 Mark Mitchell <mark@codesourcery.com>
19342
19343 * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
19344
19345 Fri May 21 21:19:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
19346
19347 * rs6000.c (output_mi_thunk): Enable full support again.
19348
19349 Fri May 21 20:09:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19350
19351 * sh.h (BRANCH_COST): Define.
19352
19353 Thu May 20 10:00:42 1999 Stephen L Moshier <moshier@world.std.com>
19354
19355 * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
19356
19357 Thu May 20 09:58:57 1999 Jan Hubicka <hubicka@freesoft.cz>
19358
19359 * function.c (assign_stack_local): Align stack slot propertly.
19360 (assign_outer_stack_local): Likewise.
19361
19362 Thu May 20 10:38:43 1999 Mark Mitchell <mark@codesourcery.com>
19363
19364 * expr.h (lang_expand_constant): Declare.
19365 * toplev.c (lang_expand_constant): Define it.
19366 * varasm.c (output_constant): Use it.
19367
19368 Thu May 20 11:28:53 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19369
19370 * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
19371 Change function definitions to K&R style.
19372
19373 Thu May 20 08:16:39 1999 Bruce Korb <ddsinc09@ix.netcom.com>
19374
19375 * fixinc/fixincl.c: We must not ignore SIGCLD now.
19376
19377 Thu May 20 07:06:39 1999 Alexandre Oliva <aoliva@acm.org>
19378
19379 * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
19380 * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
19381 (several places): omit static initialization
19382 (process): use single fd, since only the read fd is used
19383 * fixinc/gnu-regex.c: define 'const' away, if not supported
19384 * fixinc/procopen.c(several places): omit static initialization
19385 * fixinc/server.c: define 'volitile' away, if not supported
19386
19387 1999-05-20 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
19388
19389 * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
19390 asm_fprintf and %L to generate the label name.
19391 * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
19392 (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
19393
19394 Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com)
19395
19396 * jump.c (can_reverse_comparison_p): Do not abort if the comparison
19397 insn for a conditional jump can not be found.
19398
19399 Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com)
19400
19401 * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
19402 on variables in specific sections other than .sbss and .sdata.
19403
19404 Wed May 19 03:56:56 1999 Mark Mitchell <mark@codesourcery.com>
19405
19406 * stmt.c (expand_return): Call start_cleanup_deferral and
19407 end_cleanup_deferral around conditional code.
19408
19409 Wed May 19 08:40:08 1999 Bruce Korb <ddsinc09@ix.netcom.com>
19410
19411 * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
19412 filename lists. Utilizes new "krstr" AutoGen function.
19413 * fixinc/fixincl.x: Rebuilt.
19414
19415 Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz)
19416
19417 * i386.c (output_float_compare): Avoid GNU-C extensions.
19418
19419 Wed May 19 00:34:40 1999 Jeffrey A Law (law@cygnus.com)
19420
19421 * version.c: Bump to distinguish mainline tree from the
19422 gcc-2.95 branch.
19423
19424 See ChangeLog.1 for earlier changes.