]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
genoutput.c: Don't include errors.h.
[gcc.git] / gcc / ChangeLog
1 2000-05-27 Richard Henderson <rth@cygnus.com>
2
3 * genoutput.c: Don't include errors.h.
4 (struct data): Add lineno member.
5 (have_error): New.
6 (scan_operands): Use message_with_line instead of error.
7 (validate_insn_alternatives): Likewise.
8 (gen_insn): Accept and store the pattern's line number.
9 (gen_peephole, gen_expand, gen_split): Likewise.
10 (main): Don't set progname. Pass line_no to gen_foo.
11
12 2000-05-27 Richard Henderson <rth@cygnus.com>
13
14 * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
15 * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
16 * config/d30v/d30v.md (attr predicable): New.
17 (all insn patterns): Mark non-predicable patterns; use %: on the rest.
18 (andsi3*): Unify into one pattern.
19 (iorsi3*, xorsi3*): Likewise.
20 (peephole2 patterns): Use peep2_reg_dead_p; verify not a
21 conditional return.
22 (old cond_exec patterns): Remove.
23 (define_cond_exec): New.
24
25 Sat May 27 11:01:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26
27 * tree.h (TREE_CODE_LENGTH): New macro.
28 * c-common.c (c_find_base_decl): Use it.
29 * expr.c (safe_from_p): Likewise.
30 * print-tree.c (print_node): Likewise.
31 * tree.c (make_node, copy_node, get_identifier): Likewie.
32 (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
33 (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
34 * fold-const.c (make_range): Likewise.
35 (fold): Likewise; also use first_rtl_op.
36 * c-iterate.c (collect_iterators): Use first_rtl_op.
37 * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
38 Use IS_EXPR_CODE_CLASS.
39 (preexpand_calls): Likewise.
40 * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
41 and TREE_CODE_LENGTH.
42 * stmt.c (warn_if_unused_value): If no operands, no unused value.
43
44 2000-05-26 Geoffrey Keating <geoffk@cygnus.com>
45
46 * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
47 than '%1(%*)'.
48 (movdi_internal64): Likewise.
49
50 * config/rs6000/rs6000.md: Correct order of operands for DImode
51 boolean patterns.
52
53 * config/rs6000/rs6000.c (boolean_or_operator): New function.
54 * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
55 * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
56 * config/rs6000/rs6000.md: Use boolean_or_operator instead of
57 boolean_operator for the boolean patterns without NOTs.
58
59 * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
60 from reg_or_u_cint_operand. Change comment and behaviour.
61 (logical_operand): Clean up, add assertion.
62 (non_logical_cint_operand): Also check for
63 reg_or_logical_cint_operand.
64 * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
65 * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
66 in the expander.
67 (xorsi3): Likewise.
68 (iordi3): Likewise.
69 (xordi3): Likewise.
70
71 2000-05-26 Mark Mitchell <mark@codesourcery.com>
72
73 * tree.h (struct record_layout_info): Rename to (struct
74 record_layout_info_s).
75 * stor-layout.c (start_record_layout): Replace
76 `record_layout_info' with `record_layout_info_s'.
77
78 2000-05-26 Richard Earnshaw <rearnsha@arm.com>
79
80 * flow.c (find_label_refs): New function.
81 (find_basic_blocks_1): Call it for each alternative of a call
82 placeholder.
83
84 2000-05-26 Richard Earnshaw <rearnsha@arm.com>
85
86 * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
87 of get_pc.
88
89 2000-05-25 Richard Henderson <rth@cygnus.com>
90
91 * config/alpha/alpha.c (alpha_comparison_operator): Don't be
92 so strict about DImode.
93 (alpha_swapped_comparison_operator): Likewise.
94 * config/alpha/alpha.md (*setne_internal): Name it. Allow
95 any integer output mode.
96 (*setcc_internal): Likewise.
97 (*setcc_swapped_internal): Likewise.
98 (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
99 (*mov[qhs]icc_internal): New.
100 (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
101
102 2000-05-25 J. David Anglin <dave@hiauly1.hia.nrc.ca>
103
104 * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
105
106 2000-05-25 Richard Henderson <rth@cygnus.com>
107
108 * bb-reorder.c (reorder_block_def): Reorder elements for size.
109 Remove add_jump; add next; replace flags with visited.
110 (rbd_init): Remove.
111 (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
112 (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
113 (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
114 (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
115 (RBI): New.
116 (reorder_index, reorder_last_visited): Remove.
117 (skip_insns_after_block): Rewrite to use a switch.
118 (get_common_dest): Remove.
119 (chain_reorder_blocks): Remove.
120 (record_effective_endpoints): Split out from reorder_basic_blocks.
121 (make_reorder_chain): Likewise. Loop until all blocks are placed.
122 (make_reorder_chain_1): Renamed from old make_reorder_chain.
123 Only construct the reorder chain, do not move insns. Try harder
124 to tail recurse.
125 (label_for_bb, emit_jump_to_block_after): New.
126 (fixup_reorder_chain): Use them. Do bulk block movement. Examine
127 and adjust the jump insns appropriately. Fixup basic_block_info.
128 (verify_insn_chain): Always define.
129 (relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko
130 in allocation size.
131 (make_new_scope): Don't write zeros to calloc'd space.
132 (build_scope_forest): Rely on xrealloc to DTRT.
133 (reorder_basic_blocks): Don't build loop nest. Don't fail if
134 profile_arc_flag. Streamline EH test.
135
136 * flow.c (redirect_edge_succ, redirect_edge_pred): New.
137 * basic-block.h: Declare them.
138
139 2000-05-25 Alexandre Oliva <aoliva@cygnus.com>
140
141 * emit-rtl.c (reset_used_decls): New function.
142 (unshare_all_rtl_again): Call it.
143
144 2000-05-25 Zack Weinberg <zack@wolery.cumb.org>
145
146 * cpplex.c (maybe_macroexpand): Warn about function-like
147 macros used in non-function context, if -Wtraditional.
148
149 2000-05-25 Mark Mitchell <mark@codesourcery.com>
150
151 * recog.c (peephole2_optimize): Use INSN_P.
152
153 2000-05-25 Richard Henderson <rth@cygnus.com>
154
155 * ifcvt.c (seq_contains_jump): New.
156 (noce_try_store_flag_constants): Use it to fail conversion.
157 (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
158
159 2000-05-25 Mark Mitchell <mark@codesourcery.com>
160
161 * except.h (can_throw): Declare it.
162 * except.c (can_throw): Give it external linkage.
163 * resource.c (find_dead_or_set_registers): Use can_throw.
164
165 2000-05-25 Richard Henderson <rth@cygnus.com>
166
167 * flow.c (mark_set_1): Don't record conditionally dead memory.
168
169 2000-05-25 Jan Hubicka <jh@suse.cz>
170
171 * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
172 and pc_set at the place of simplejump_p and condjump_p.
173 * cse.c (record_jump_equiv): Likewise.
174 * emit-rtl.c (emit): Likewise.
175 * explow.c (find_next_ref): Likewise.
176 * flow.c (tidy_fallthru_edge): Likewise.
177 (init_propagate_block_info): Likewise.
178 * gcse.c (delete_null_pointer_checks): Likewise.
179 * ifcvt.c (cond_exec_get_condition, noce_get_condition,
180 dead_or_predicable): Likewise.
181 * integrate.c (copy_insn_list): Likewise.
182 * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
183 for_each_insn_in_loop, check_dbra_loop, get_condition,
184 insert_bct, load_mems): Likewise.
185 * resource.c (find_dead_or_set_registers): Likewise.
186 * sibcalls.c (simplejump_p): Likewise.
187 * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
188
189 2000-05-25 David Edelsohn <edelsohn@gnu.org>
190
191 * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
192 to STRING case. Use doubleword STRING move for TARGET_POWERPC64
193 when unaligned.
194 * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
195 (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
196 (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
197 * rs6000.md: Name various internal patterns.
198
199 2000-05-25 Jan Hubicka <jh@suse.cz>
200
201 * jump.c (invert_exp_1): Remove first argument, use pc_set
202 to get the expression.
203 (redirect_exp): Make static; redirect only the pc_set expression,
204 remove first argument.
205 (invert_exp): Remove first argument, make static.
206 (jump_optimize): Use any_condjump_p, any_uncondjump_p and
207 any_onlyjump at most places where we originaly did condjump_p
208 and simplejump_p.
209 (jump_back_p, follow_jumps, thread_jumps): Likewise.
210 (delete_barrier_succesors): Use pc_set.
211 (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
212 calls of invert_exp and redirect_exp.
213 * rtl.h (redirect_exp, invert_exp): Remove.
214 * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
215
216 2000-05-25 Richard Henderson <rth@cygnus.com>
217
218 * stmt.c (expand_end_bindings): Fix thinko last change.
219
220 2000-05-25 Andrew MacLeod <amacleod@cygnus.com>
221 Andrew Haley <aph@cygnus.com>
222
223 * except.c (func_eh_entry): Add emitted field.
224 (new_eh_region_entry): Set emitted field to 0;
225 (output_exception_table_entry): Only emit previously un-emitted data,
226 and send it to the eh_data section.
227 (output_exception_table): Break out common parts. Output
228 exception table for entire compilation unit to eh_data section.
229 (output_exception_table_data): Common parts of output_exception_table.
230 Send output to eh_data section.
231 (output_function_exception_table): Output exception table data for
232 a single function to eh_data section.
233 (free_exception_table): New external to free the table.
234 * except.h (free_exception_table): Add prototype.
235 (output_function_exception_table): Add prototype.
236 * final.c (final_end_function): Output function exception table
237 for IA64_UNWIND_INFO.
238 (final_scan_insn): Emit any unwind directives for an insn.
239
240 * frame-dwarf2.c: New file containing all DWARF 2 specific code
241 from frame.c.
242 * frame.c: Remove all DWARF 2 specific code.
243 * config/ia64/frame-ia64.c: New file.
244 (gthread_stuff): Make all gthread available with
245 IA64_UNWIND_INFO.
246 (dwarf_fde): Define an IA64 struct for dwarf_fde.
247 (__register_frame_info, __register_frame): Move to common area of file.
248 (__register_frame_info_table, __register_frame_table): Move to common i
249 area.
250 (__deregister_frame_info, __deregister_frame): Move to common area.
251 (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
252 (read_uleb128): New version for ia64.
253 (get_unwind_record): Read the next IA-64 unwind record.
254 (read_R_record): Read a region header record.
255 (process_a_b_reg_code): X record helper.
256 (read_X_record): Read an X format record.
257 (read_B_record): Read a B format record.
258 (P3_record_types): List of record types matching the P3 format.
259 (P7_record_types): List of record types matching the P7 format.
260 (P8_record_types): List of record types matching the P8 format.
261 (read_P_record): Read a P format record.
262 (init_ia64_reg_loc): Set default fields for a register.
263 (init_ia64_unwind_frame): Set defaults for all register records.
264 (execute_one_ia64_descriptor): Execute one descriptor record.
265 (rse_address_add): Calculate the position of a local reg in memory.
266 (normalize_reg_loc): Turn a location descriptor into a memory address.
267 (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
268 within a specified PC offset range.
269 (get_real_reg_value): Given a register location, retrieve its value.
270 (set_real_reg_value): Change the value of a register location.
271 (copy_reg_value): Copy reg values, if needed.
272 (copy_saved_reg_state): Copy all registers that need to be copied.
273 (process_state_between): Normalize all frame register records that
274 fall within the specified PC range.
275 (frame_translate): Take a processed frame description, and turn
276 everything into addresses.
277 (build_ia64_frame_state ): Find and create frame state record for a PC.
278 (get_personality): Get the personality routine for a given frame.
279 (get_except_table): Get the exception table for a given frame.
280 (record_name): Unwind record names for debugging.
281 (print_record): Print and unwind record.
282 (print_all_records): Print an entire unwind image.
283 (__ia64_backtrace): Print a backtrace.
284 (ia64_backtrace_helper): New function.
285 (__register_frame_info_aux): New function.
286 * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
287
288 * frame.h (enum unw_record_type): New unwind record types.
289 (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
290 (struct unw_r_record, unwind_record): New unwind record structs.
291 (struct unwind_info_ptr): Unwind information layout.
292 (IA64_UNW_LOC_TYPE_*): Macros for different types for location
293 descriptors.
294 (struct ia64_reg_loc): Register location description.
295 (struct ia64_frame_state): Location of all registers in a frame.
296 (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
297 * libgcc2.c (__ia64_personality_v1): Personality routine.
298 (__calc_caller_bsp): Calculate the bsp register for the caller's
299 frame.
300 (ia64_throw_helper): Figure out who to return to and set up the
301 registers.
302 (__throw): Throw routine.
303
304 * output.h (assemble_eh_align, assemble_eh_label): New functions
305 to generate EH info where we want it.
306 (assemble_eh_integer): New function.
307 * toplev.c (compile_file): Output module level exception table for
308 non-ia64 targets.
309 (main): Set exceptions_via_longjump and flag_new_exceptions based
310 on IA64_UNWIND_INFO too.
311
312 * varasm.c (assemble_eh_label): Generate a label via
313 ASM_OUTPUT_EH_LABEL if it has been specified.
314 (assemble_eh_align): Generate an alignment directive via
315 ASM_OUTPUT_EH_ALIGN if it has been specified.
316 (assemble_eh_label): Generate an integer value via
317 ASM_OUTPUT_EH_type if they have been specified.
318 * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
319 (ia64_init_builtins): Add __builtin_ia64_bsp
320 and __builtin_ia64_flushrs.
321 (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
322 IA64_BUILTIN_FLUSHRS.
323 * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
324 IA64_BUILTIN_FLUSHRS.
325
326 * config/ia64/ia64.md (flushrs): New insn to flush the register
327 stack. Add to unspec list.
328
329 * config/ia64/crtbegin.asm (frame_object): Change size.
330 (__do_frame_setup_aux): New function.
331 * config/ia64/crtend.asm: call __do_frame_setup_aux.
332 * config/ia64/t-ia64 (LIB2ADDEH): Add.
333 * Makefile.in (LIB2ADDEH): Add.
334 (LIB2ADD): Use LIB2ADDEH.
335
336 2000-05-24 Richard Henderson <rth@cygnus.com>
337
338 * recog.c (offsettable_address_p): If mode size is zero, assume
339 BIGGEST_ALIGNMENT.
340
341 2000-05-24 J. David Anglin <dave@hiauly.hia.nrc.ca>
342
343 * configure.in: Check for -Wno-long-long option support and improve
344 handling of warning CFLAGS for stages 1 and 2.
345 * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
346 * configure: Regenerate.
347
348 Wed May 24 19:37:53 2000 Jeffrey A Law (law@cygnus.com)
349
350 * gcc.texi: Remove contributor list. Instead include contrib.texi.
351 * contrib.texi: New file.
352
353 Thu May 25 02:27:22 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
354
355 * loop.c (basic_induction_var): Avoid double recording of an increment.
356
357 Thu May 25 02:19:27 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
358
359 * Back out this patch:
360 Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
361 * loop.h (struct induction): Add multi_insn_incr.
362 * loop.c (basic_induction_var): New multi_insn_incr argument.
363 Set it if we search back through previous insns for the biv.
364 (record_biv): New multi_insn_incr argument; fill in struct induction.
365 (strength_reduce): Discard an iv with multiple bivs, any of
366 which require multiple insns to increment.
367
368 * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
369
370 Thu May 25 02:09:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
371
372 * rtl.h (loc_mentioned_in_p): Declare.
373 * reload.c (loc_mentioned_in_p): Moved from here...
374 * rtlanal.c (loc_mentioned_in_p): to here. No longer static.
375 Fix loop increment for 'E' handling.
376 * loop.c (strength_reduce): When doing biv->giv conversion,
377 take multi-insn biv increments into account.
378
379 2000-05-24 Jason Merrill <jason@casey.soma.redhat.com>
380
381 * stmt.c (expand_end_bindings): Look through NOTEs to find a
382 BARRIER.
383
384 2000-05-24 Mark Mitchell <mark@codesourcery.com>
385
386 * calls.c (expand_call): Handle cleanups in tail-recursion
387 arguments analagously to cleanups in sibling calls.
388
389 2000-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
390
391 * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
392 All callers changed.
393
394 2000-05-24 Alexandre Oliva <aoliva@cygnus.com>
395
396 * expr.c (expand_assignment, store_expr, expand_expr,
397 expand_expr_unaligned): Set in_check_memory_usage while emitting
398 chkr_check_addr libcall.
399
400 2000-05-24 Nick Clifton <nickc@cygnus.com>
401
402 * fold-const.c (extract_muldiv): When constructing a
403 multiplier/divisor, do not expect const_binop to correctly
404 determine if overflow has occured, so check explicitly.
405
406 2000-05-24 Alexandre Oliva <aoliva@cygnus.com>
407
408 * c-decl.c (build_enumerator): Don't modify the value's type,
409 convert it.
410
411 2000-05-24 Andreas Jaeger <aj@suse.de>
412
413 * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
414
415 2000-05-24 Eric Christopher <echristo@cygnus.com>
416
417 * configure.in: Redefine inhibit_libc conditions.
418 * libgcc2.c: Remove inhibit_libc conditional define.
419 * configure: Regenerate.
420
421 2000-05-24 Phil Edwards <pme@sourceware.cygnus.com>
422
423 * configure.in: For --enable-languages=LIST, check for empty LIST.
424 * configure: Regenerate.
425
426 2000-05-24 Lars Brinkhoff <lars@nocrew.org>
427
428 * pdp11.h (STACK_BOUNDARY): Define.
429
430 2000-05-24 Jakub Jelinek <jakub@redhat.com>
431
432 * ifcvt.c (if_convert): Update life info globally.
433
434 2000-05-24 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
435
436 * emit-rtl.c (unshare_all_decls): New function.
437 (unshare_all_rtl): Call it.
438
439 2000-05-23 Nick Clifton <nickc@cygnus.com>
440
441 * configure.in: Treat 'strongarm' as if it were 'arm' when
442 determining cpu type.
443
444 * configure: Regenerate.
445
446 * config/arm/arm.c: Change 'char *' to 'const char *' for cases
447 where constant strings are involved.
448
449 * config/arm/arm.h (arm_condition_codes): Change type to 'const
450 char *'.
451
452 * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
453 cases where constant strings are involved.
454
455 Tue May 23 15:08:31 2000 Clinton Popetz <cpopetz@cygnus.com>
456
457 * config/sh/sh.c (gen_far_branch, split_branches): Update
458 to reflect new prototypes for redirect_jump and invert_jump.
459 (sh_insn_length_adjustment): Get rid of const warnings.
460
461 2000-05-23 Kazu Hirata <kazu@hxi.com>
462
463 * invoke.texi (Options for Debugging Your Program or GCC): Update
464 the names of dump files.
465
466 Tue May 23 13:58:52 2000 Philippe De Muyter <phdm@macqel.be>
467
468 * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
469 * configure: Regenerated.
470
471 2000-05-23 Zack Weinberg <zack@wolery.cumb.org>
472
473 * simplify-rtx.c (SIGN_EXTEND): New macro.
474 (simplify_unary_operation, simplify_binary_operation,
475 simplify_relational_operation): Use SIGN_EXTEND. Make low
476 halves of (low, high) pairs unsigned if they weren't already.
477 (simplify_ternary_operation): Cast INTVAL to unsigned before
478 comparing to a MODE_BITSIZE.
479
480 2000-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
481
482 * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
483 rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
484
485 * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
486 gcc_AC_NEED_DECLARATIONS.
487
488 * dwarfout.c: Don't prototype time().
489
490 * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
491
492 * system.h: Likewise.
493
494 * toplev.c: Likewise.
495
496 2000-05-23 Zack Weinberg <zack@wolery.cumb.org>
497
498 * c-decl.c (pushdecl): Invert sense of test for non-global types.
499
500 Tue May 23 18:11:42 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
501
502 * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
503
504 2000-05-23 Jonathan Larmour <jlarmour@redhat.co.uk>
505
506 * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
507
508 Tue May 23 06:50:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
509
510 * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
511 (alpha_start_function): Never write ..ng label if VMS or NT.
512 (alpha_align_insns): Remove GP_IN_USE arg.
513 Alignment now unsigned.
514 (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
515 * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
516 and two define_insn's.
517
518 2000-05-22 Richard Henderson <rth@cygnus.com>
519
520 * combine.c (simplify_comparison): Use trunc_int_for_mode.
521
522 2000-05-22 Richard Henderson <rth@cygnus.com>
523
524 * stor-layout.c (place_field): Change rli->size to rli->offset.
525
526 2000-05-22 Richard Henderson <rth@cygnus.com>
527
528 * function.c (thread_prologue_and_epilogue_insns): Make sure
529 existing line number notes appear after the prologue.
530
531 Mon May 22 21:49:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
532
533 * config/alpha/alpha.c (alpha_fnname): New static variable.
534 (print_operand, case '~'): New case.
535 (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
536 (alpha_start_function): Set alpha_fnname.
537 Write "ng" label if no ldgp; don't write ldgp insn.
538 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
539 * config/alpha/alpha.md (prologue_ldgp): New define_insn.
540
541 Mon May 22 11:30:48 2000 Clinton Popetz <cpopetz@cygnus.com>
542
543 * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
544 on deleted labels.
545
546 2000-05-22 Zack Weinberg <zack@wolery.cumb.org>
547
548 * varasm.c (eh_frame_section): Revert change to argument list.
549
550 Mon May 22 13:14:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
551
552 * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
553 (gen_extend_insn, can_fix_p, can_float_p): Likewise.
554
555 * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
556 dangling "else" that causes "break" to be conditional.
557 Also remove unneeded code at start.
558
559 Mon May 22 17:31:35 2000 Philippe De Muyter <phdm@macqel.be>
560
561 * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
562 * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
563 * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
564
565 2000-05-22 Jakub Jelinek <jakub@redhat.com>
566
567 * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
568 just one argument.
569
570 Mon May 22 06:57:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
571
572 * alias.c (record_component_aliases): New function.
573 * tree.h: Clean up some declarations and comments.
574 (record_component_aliases): New declaration.
575 * tree.c (get_alias_set): If type and has alias set, use it.
576
577 2000-05-22 Richard Henderson <rth@cygnus.com>
578
579 * simplify-rtx.c (simplify_ternary_operation): Try to simplify
580 IF_THEN_ELSE to a setcc form.
581 * jump.c (can_reverse_comparison_p): Be prepared for insn null.
582
583 2000-05-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
584
585 * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
586 (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
587
588 Sun May 21 16:42:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
589
590 * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
591 not a PARALLEL.
592
593 2000-05-20 Alexandre Oliva <aoliva@cygnus.com>
594
595 * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
596 * config/mn10300/mn10300.c (print_operand): Likewise.
597
598 * final.c (split_double): Right shift of negative values is not
599 portable.
600
601 * ifcvt.c (if_convert): Scan and kill dead code.
602
603 * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
604
605 2000-05-20 Zack Weinberg <zack@wolery.cumb.org>
606
607 * diagnostic.c: Eliminate implicit int.
608 * except.c, gcc.c: Add static prototypes.
609 * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
610 * gensupport.c (process_rtx): Use XVEC to initialize vector
611 slot of 'split'.
612
613 * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
614 debug_reg_names instead of static reg_names. If not, define
615 global reg_names.
616 * regclass.c: Don't define global reg_names unless
617 DEBUG_REGISTER_NAMES is defined.
618
619 * reload1.c (order_regs_for_reload): Remove unused variable.
620 * varasm.c: Include output.h after defaults.h. Define
621 eh_frame_section as function of no args, not of unspecified args.
622
623 * gcc.c: Constify argbuf; arguments to store_arg,
624 process_command, main; elements of struct command and struct
625 switchstr; local variables in execute, process_command, main.
626
627 2000-05-20 Bruce Korb <bkorb@gnu.org>
628
629 * fixinc/inclhack.def: many applications of c_fix=format + tests
630 * fixinc/check.diff: regenerated
631 * fixinc/fixincl.x: regenerated
632
633 Sat May 20 09:30:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
634
635 * alias.c: Clarify some comments.
636 (record_base_value): REGNO is unsigned.
637 * rtl.h (record_base_value): Likewise.
638
639 * alias.c (aliases_everything_p): Don't special-case QImode here.
640 * c-common.c (c_get_alias_set): Do it here.
641 Handle BIT_FIELD_REF by getting alias info for arg.
642 Use POINTER_TYPE_P.
643
644 2000-05-20 Alexandre Oliva <aoliva@cygnus.com>
645
646 * mklibgcc.in: Restore rule to create ${dir}.
647
648 Sat May 20 08:45:41 2000 H.J. Lu <hjl@gnu.org>
649
650 * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
651 GCC_FOR_TARGET used by MULTILIBS.
652 * mklibgcc.in: Make sure each .o file depends on the
653 directory it will be in.
654 Make the multilib directory depends libgcc.
655
656 Sat May 20 08:29:28 2000 H.J. Lu <hjl@gnu.org>
657
658 * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
659
660 Sat May 20 07:27:35 2000 Alexandre Oliva <aoliva@cygnus.com>
661
662 * fold-const.c (make_range): Handle degenerated intervals.
663 Fixes c-torture/execute/991221-1.c
664
665 Fri May 19 18:16:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
666
667 * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
668 * reload.c (find_equiv_reg): Likewise.
669 * alias.c (init_alias_analysis): Likewise.
670 Only call prologue_epilogue_contains on insns.
671 * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
672 * bb-reorder.c (hard-reg-set.h): Include earlier.
673 * haifa-sched.c (hard-reg-set.h): Likewise.
674 * ifcvt.c (hard-reg-set.h): Likewise.
675 * local-alloc.c (hard-reg-set.h): Likewise.
676 * loop.c (hard-reg-set.h): Likewise.
677 * predict.c (hard-reg-set.h): Likewise.
678 * regrename.c (hard-reg-set.h): Likewise.
679 * flow.c (hard-reg-set.h): Likewise.
680 (reg_set_to_hard_reg_set): New function.
681 * bitmap.c (regs.h, basic-block.h): No longer include.
682 (bitmap.h): Now include.
683 * conflict.c (hard-reg-set.h): Include.
684 * profile.c (hard-reg-set.h): Likewise.
685 * print-rtl.c (hard-reg-set.h): Likewise.
686 * sbitmap.c (hard-reg-set.h): Likewise.
687 * toplev.c (hard-reg-set.h): Likewise.
688 * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
689 * hard-reg-set.h (reg_names): Now constant.
690 * regs.h (reg_names): Likewise.
691 * regclass.c (reg_names): Likewise.
692 * loop.h (basic-block.h): No longer include.
693 (bitmap.h): Now include.
694 * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
695 * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
696 (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
697
698 2000-05-19 Jan Hubicka <jh@suse.cz>
699 Richard Henderson <rth@cygnus.com>
700
701 * basic-block.h (struct edge_def): New field "count".
702 (struct basic_block_def): Likewise.
703 * flow.c (entry_exit_blocks): Add count fileds.
704 (split_edge): Keep count information up-to-date.
705 (dump_edge_info, dump_flow_info): Dump count fields.
706
707 * final.c (count_instrumented_edges): Rename to edge from arc.
708 (end_final): Update users.
709 * profile.c: Include expr.h, basic-block.h.
710 (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
711 (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
712 (ignore_next_note, return_label_execution_count): Kill.
713 (bbg_file_name, da_file_name): Kill.
714 (edge_info, bb_info): New structures.
715 (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
716 (count_instrumented_edges, total_num_edges): Rename to edge from arc.
717 (total_num_edges_instrumented): Likewise.
718 (init_arc, expand_spanning_tree): Kill.
719 (fill_spanning_tree, tablejump_entry_p): Kill.
720 (instrument_edges): Rewrite from instrument_arcs to use
721 commit_edge_insertions infrastructure.
722 (compute_branch_probabilities): Remove arguments; rewrite for
723 CFG infrastructure; use rtl_dump_file directly.
724 (branch_prob, find_spanning_tree): Likewise.
725 (union_groups, find_group): New.
726 (init_branch_prob): Make bbg_file_name and da_file_name local.
727 (end_branch_prob): Use rtl_dump_file directly.
728 (init_edge_profiler): Rename to edge from arc.
729 (output_arc_profiler): Kill.
730 (gen_edge_profiler): New.
731 (output_func_start_profiler): Turn off profiling. Make the
732 constructor static when we can.
733 * rtl.h (branch_prob, end_branch_prob): Update prototypes.
734
735 * toplev.c (DFI_flow): Remove.
736 (DFI_cfg, DFI_life): New.
737 (dump_file): Update accordingly.
738 (compile_file): Call end_branch_prob if profile_arc_flag too.
739 (rest_of_compilation): Move flow1 cfg creation to DFI_cfg. Do edge
740 profiling after the CFG is built. Move flow1 life analysis to
741 DFI_life. Always estimate remaining probabilities.
742
743 2000-05-19 Richard Henderson <rth@cygnus.com>
744
745 * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
746
747 * flow.c (make_edges): The sibling call edge to exit is abnormal.
748
749 2000-05-19 Richard Henderson <rth@cygnus.com>
750
751 * jump.c (redirect_jump): Add delete_unused argument. Don't
752 remove labels and code following when LABEL_NUSES goes to zero.
753 (invert_jump): Likewise.
754 (jump_optimize_1): Fix redirect/invert arguments.
755 (do_cross_jump, thread_jumps): Likewise.
756 * flow.c (split_edge): Likewise.
757 * reorg.c (optimize_skip): Likewise.
758 (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
759 * profile.c (instrument_arcs): Likewise.
760 * loop.c (find_and_verify_loops): Likewise. Fix indentation.
761 * rtl.h: Update prototypes.
762
763 Fri May 19 12:05:13 2000 Clinton Popetz <cpopetz@cygnus.com>
764
765 * ssa.c (convert_from_ssa): Tell life_analysis we need death
766 notes.
767 (make_regs_equivalent_over_bad_edges): Only look at abnormal
768 critical edges.
769
770 2000-05-19 Zack Weinberg <zack@wolery.cumb.org>
771
772 * cpphash.c (funlike_macroexpand): Make sure not to walk p1
773 past l1 when deleting whitespace and markers.
774
775 * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
776 * cpplib.c (do_unassert): Put the list to compare against on
777 the stack.
778
779 2000-05-19 Bruce Korb <bkorb@gnu.org>
780
781 * fixinc/README: cleaned up old documentation
782 * fixinc/check.diff: regenerated & verified on OSR5 on ix86
783 * fixinc/check.tpl: compute the list of needed directories
784 emit "#if defined(name)" because of conflict
785 omit machine name differences from output differences
786 * fixinc/inclhack.def( m88k_multi_incl ): Use `wrap' function
787 (machine_name): change test text to use `sed' markers
788 * fixinc/fixincl.x: regen
789
790 Fri May 19 06:49:35 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
791
792 * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
793 a CONSTRUCTOR.
794
795 2000-05-18 Chris Demetriou <cgd@sibyte.com>
796
797 * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
798 it to match the current practice.
799
800 2000-05-18 Mark Mitchell <mark@codesourcery.com>
801
802 * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
803
804 2000-05-18 Richard Henderson <rth@cygnus.com>
805
806 * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
807 * rtl.h (insn_dependant_p): Declare it.
808 * loop.c (strength_reduce): Use it.
809
810 2000-05-18 Alexandre Oliva <aoliva@cygnus.com>
811
812 * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
813 16-bit and 64-bit clean-up.
814
815 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
816
817 * configure.in (*-pc-msdosdjgpp): Set float_format to none.
818 * configure: Rebuilt.
819
820 2000-05-18 Zack Weinberg <zack@wolery.cumb.org>
821
822 * genopinit.c: Use $ for escape sequences in optab patterns.
823 Remove backslashes from optab patterns. Change $A, $B, $C to
824 expand to (int) whatever instead of just whatever; remove
825 explicit (int) from all optab patterns.
826
827 * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
828 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
829 genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
830 genrecog.c: Remove private copies of xmalloc, xrealloc, and
831 xstrdup.
832
833 2000-05-18 Richard Henderson <rth@cygnus.com>
834
835 * jump.c (jump_optimize_1): Base minimum insn count during
836 find_cross_jump on BRANCH_COST.
837
838 2000-05-18 Jakub Jelinek <jakub@redhat.com>
839
840 * print-rtl.c (print_rtx): Only print note line number as string
841 if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
842 * final.c (final_scan_insn): Do nothing for note line number 0.
843
844 2000-05-18 Jakub Jelinek <jakub@redhat.com>
845
846 * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
847 from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
848 NOTE_INSN_DELETED_LABEL.
849
850 2000-05-18 Nick Clifton <nickc@cygnus.com>
851
852 * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
853 uninitialised data in .rodata not .bss, and do not interpret an
854 error in the initialisation value as meaning that the variable
855 should be placed in the .bss section.
856
857 Thu May 18 12:10:18 2000 Philippe De Muyter <phdm@macqel.be>
858
859 * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
860 not `$ac_cv_prog_cc_cc_c_o'.
861 * configure: Regenerated.
862
863 2000-05-18 Chris Demetriou <cgd@sibyte.com>
864 Richard Henderson <rth@cygnus.com>
865
866 * c-common.h (enum c_tree_index): Add g77 type entries.
867 (g77_integer_type_node, g77_uinteger_type_node): New.
868 (g77_longint_type_node, g77_ulongint_type_node): New.
869 * c-decl.c (init_decl_processing): Initialize them.
870
871 2000-05-18 Richard Henderson <rth@cygnus.com>
872
873 * config/h8300/h8300.md (subs patterns): Use %G to negate.
874
875 * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
876 (small_power_of_two): Likewise; use exact_log2.
877 (adds_subs_operand, one_insn_adds_subs_operand): Remove.
878 (output_adds_subs): Remove.
879 (two_insn_adds_subs_operand): New.
880 (split_adds_subs): New.
881 * config/h8300/h8300-protos.h: Update.
882 * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
883 (CONST_OK_FOR_L): Match strict adds operands.
884 (CONST_OK_FOR_N): Match struct subs operands.
885 * config/h8300/h8300.md (adds_subs insns): Remove.
886 (addhi patterns): Output adds/subs directly.
887 (addsi_h8300h): Likewise.
888 (addhi/addsi splitters): New. Decompose two_insn_adds_subs_operand.
889
890 2000-05-18 Zack Weinberg <zack@wolery.cumb.org>
891
892 * cppexp.c (parse_assertion): New.
893 (lex): Call it for CPP_HASH. Remove CPP_ASSERTION case.
894 (_cpp_parse_expr): Remove case '#'. Don't set
895 parsing_if_directive.
896 * cpphash.c (collect_objlike_expansion,
897 collect_funlike_expansion, collect_params,
898 _cpp_create_definition): The list no longer has a trailing
899 VSPACE token.
900 * cpphash.h (enum node_type): Add T_ASSERTION.
901 (struct hashnode): Remove aschain, add pred.
902 (struct predicate): New.
903 Update prototypes.
904
905 * cpplex.c (expand_token_space): Handle both offset and
906 nonoffset lists.
907 (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
908 (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
909 _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
910 _cpp_equiv_toklists): New.
911 (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
912 stop at any single-character token, not just newline.
913 (_cpp_lex_token): Remove special cases for #define and #if.
914 (cpp_get_token): Expect # as a separate token type. Remove
915 DIRECTIVE case.
916 (_cpp_get_directive_token): Remove DIRECTIVE case.
917 (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
918
919 * cpplib.c (_cpp_check_directive): Set dirno and
920 SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
921 (_cpp_handle_directive): Run # <number> through the same logic
922 as normal directives.
923 (do_define): Don't set parsing_define_directive. Use
924 _cpp_scan_until. The list does not have a VSPACE at the end.
925 (do_if): Save, clear, and restore only_seen_white around
926 _cpp_parse_expr.
927 (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
928 (do_assert, do_unassert): Rewrite.
929
930 * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
931 (LIST_OFFSET): New flag.
932 (struct cpp_toklist): Replace dir_handler and dir_flags with
933 dirno and flags.
934 (struct cpp_reader): Remove parsing_if_directive and
935 parsing_define_directive.
936
937 2000-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
938
939 * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
940 following the cabs decl which terminate on the following line.
941 Add the corresponding test_text case.
942
943 2000-05-18 Neil Booth <NeilB@earthling.net>
944
945 * cppinit.c (cpp_reader_init): Initialise col_adjust and
946 default tab stop size.
947 (no_num, OPT_ftabstop): New.
948 (handle_option): Handle "ftabstop=" command-line option.
949 (print_help): Document it.
950 * cpplex.c (COLUMN): Remove.
951 (handle_newline): Reset col_adjust.
952 (skip_whitespace): Update col_adjust as tabs encountered.
953 (_cpp_lex_line): Update to use col_adjust. Call
954 skip_whitespace for all whitespace.
955 * cpplib.h (struct cpp_options): New member tabstop.
956 (struct cpp_reader): New member col_adjust.
957 (CPP_BUF_COL): Update.
958 (CPP_BUF_COLUMN): New.
959 * cpp.texi: Document "-ftabstop=" command line option.
960
961 Wed May 17 18:19:41 2000 Philippe De Muyter <phdm@macqel.be>
962
963 * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
964 files.
965 * configure: Rebuilt.
966
967 Wed May 17 18:06:12 2000 John David Anglin <dave@hiauly1.hia.nrc.ca>
968
969 * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
970
971 * tree.c (build_common_tree_nodes): Do not build TI nodes unless
972 HOST_BITS_PER_WIDE_INT is >= 64.
973
974 2000-05-17 Richard Henderson <rth@cygnus.com>
975
976 * jump.c (jump_optimize_1): Remove inactive but real insns
977 in jump-to-next-insn optimization.
978
979 2000-05-17 Richard Henderson <rth@cygnus.com>
980
981 * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
982 unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos.
983 Don't call recompute_reg_usage if no_new_pseudos is true.
984 * lcm.c (optimize_mode_switching): Move ifdefs outside function.
985 Return true if we did work; update global life information.
986 * basic-block.h (optimize_mode_switching): Update decl.
987
988 2000-05-17 Neil Booth <neilb@earthling.net>
989
990 * cpplex.c (expand_name_space): Don't use ptrdiff_t.
991
992 2000-05-17 Zack Weinberg <zack@wolery.cumb.org>
993
994 * cpplib.c: New feature, #pragma system_header.
995 * cpp.texi: Document special treatment of system headers, and
996 the various mechanisms to get a header that special treatment.
997
998 2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
999
1000 * system.h (offsetof): Define at the very end, to ensure we prefer
1001 the platform's definition if available.
1002
1003 2000-05-16 Bruce Korb <bkorb@gnu.org>
1004
1005 * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
1006 * fixinc/server.c: likewise
1007 * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
1008 + #ifdef debugging code + use #def constant for
1009 sub-pattern count
1010 * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
1011 on C++ math namespace
1012
1013 2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1014
1015 * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
1016 Don't check the return value of sprintf. Use asprintf to avoid
1017 buffer overflows.
1018
1019 Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
1020
1021 * flags.h (warn_unused_function, warn_unused_label,
1022 warn_unused_parameter, warn_unused_variable, warn_unused_value):
1023 Replace ``warn_unused''.
1024 (set_Wunused): Add declaration.
1025 * toplev.c (set_Wunused): New function.
1026 (warn_unused_function, warn_unused_label, warn_unused_parameter,
1027 warn_unused_variable, warn_unused_value): New variables.
1028 (W_options): Add -Wunused-function, -Wunused-function,
1029 -Wunused-label, -Wunused-parameter, -Wunused-variable and
1030 -Wunused-value. Delete -Wunused. Handled in decode_W_option.
1031
1032 * toplev.c (decode_W_option): Update -Wunused flags by calling
1033 set_Wunused.
1034 * c-decl.c (c_decode_option): Ditto for -Wall.
1035
1036 * stmt.c (expand_expr_stmt, expand_expr_stmt,
1037 warn_about_unused_variables): Replace warn_unused with more
1038 explicit warn_unused_value et.al.
1039 * function.c (expand_function_end): Ditto.
1040 * c-typeck.c (internal_build_compound_expr,
1041 internal_build_compound_expr): Ditto.
1042 * c-decl.c (poplevel, pop_label_level): Ditto.
1043 * toplev.c (check_global_declarations): Replace warn_unused with
1044 check for either warn_unused_function or warn_unused_variable.
1045
1046 * gcc.1, invoke.texi (Warning Options): Document
1047 -Wunused-function, -Wunused-function, -Wunused-label,
1048 -Wunused-parameter, -Wunused-variable and -Wunused-value options.
1049
1050 Wed May 17 10:28:12 2000 Philippe De Muyter <phdm@macqel.be>
1051
1052 * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
1053 $(srcdir), not in the current directory.
1054
1055 2000-05-16 Richard Henderson <rth@cygnus.com>
1056
1057 * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
1058 assembler supports it.
1059 (.fini, .init): Use a gp-relative indirect call.
1060 (__do_global_dtors_aux): Preserve the gp; rebundle.
1061 (__do_frame_setup): Likewise.
1062 * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
1063 (.init): Use a gp-relative indirect call.
1064 (__do_global_ctors_aux): Preserve the gp.
1065
1066 2000-05-16 Richard Henderson <rth@cygnus.com>
1067
1068 * flow.c (commit_one_edge_insertion): Be prepared for a return
1069 insn to be inserted on the edge with a normal jump.
1070 * jump.c (jump_optimize_1): Don't look to create return isns.
1071
1072 * flow.c (flow_delete_insn): Don't adjust reference count of notes.
1073 * jump.c (jump_optimize_1): Likewise.
1074 (returnjump_p): Verify the argument is a JUMP_INSN.
1075 * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
1076
1077 2000-05-16 Nick Clifton <nickc@cygnus.com>
1078
1079 * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
1080 GET_RTX_CLASS (GET_CODE ()) == 'i'.
1081 (large_insn_p): Ditto.
1082 (m32r_is_insn): New function: Return true if the insn contains
1083 an executable instruction.
1084 (m32r_adjust_insn): Use m32r_is_insn.
1085 (m32r_sched_reorder): Use m32r_is_insn.
1086 (m32r_sched_variable_issue): Use m32r_is_insn.
1087
1088 2000-05-16 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1089
1090 * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
1091 VAR_DECL.
1092
1093 * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
1094
1095 * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
1096 according to given options.
1097
1098 Tue May 16 12:17:31 2000 Jeffrey A Law (law@cygnus.com)
1099
1100 * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
1101 if X has VOIDmode either.
1102 (LIMIT_RELOAD_CLASS): Similarly.
1103
1104 * mn10200.md (indirect_jump, tablejump): Use "register_operand",
1105 not "general_operand" to match the processor's capabilities.
1106
1107 2000-05-16 Bruce Korb <bkorb@gnu.org>
1108
1109 * fixinc/README: corrected return address
1110 * fixinc/check.diff: regenerate, now that test works
1111 * fixinc/fixfixes.c(format_fix,format_write): reformatted
1112 (char_macro_def_fix,char_macro_use_fix): corrected and
1113 rewrote to use regex to parse the text
1114 * fixinc/inclhack.def: more testing
1115 * fixinc/fixincl.x: regenerated
1116
1117 * fixinc/inclhack.def: added several "test_text" attributes
1118 changed several fixes to use `c_fix = format'
1119 re-alphabetized the fixes
1120
1121 * fixinc/check.diff: regenerate
1122 * fixinc/fixincl.x: regenerate
1123 * fixinc/check.tpl: added `sparc' and `netinet' to the list
1124 of created dirs
1125
1126
1127 2000-05-16 Alexandre Oliva <aoliva@cygnus.com>
1128
1129 * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
1130
1131 2000-05-15 Richard Henderson <rth@cygnus.com>
1132
1133 * toplev.c (rest_of_compilation): Run full jump pass before
1134 find_basic_blocks of flow2.
1135
1136 2000-05-15 Richard Henderson <rth@cygnus.com>
1137
1138 * jump.c: Fix typos and clarify commentary from last change.
1139 (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
1140 (safe_to_remove_jump_p): Remove.
1141 (condjump_label): Use pc_set.
1142
1143 2000-05-15 Richard Henderson <rth@cygnus.com>
1144
1145 * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
1146 that get in the way after reload.
1147 (cond_exec_process_if_block): Skip a label heading THEN block.
1148
1149 2000-05-15 Richard Henderson <rth@cygnus.com>
1150
1151 * varasm.c (output_constant_pool): Abort instead of converting
1152 (improperly) deleted labels to zero.
1153
1154 2000-05-16 Neil Booth <NeilB@earthling.net>
1155
1156 * cpplex.c (parse_string2): Update comment.
1157 (cpp_lex_line): No special assertion treatment for '('.
1158 * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
1159 * cpplib.h (SYNTAX_ASSERT): Remove.
1160
1161 Mon May 15 21:45:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
1162
1163 * jump.c (condjump_p): Mark as depreached.
1164 (any_condump_p): New.
1165 (any_uncondump_p): New.
1166 (pc_set): New.
1167 (safe_to_remove_jump_p): New.
1168 * rtl.h (any_condump_p, any_uncondjump_p, pc_set
1169 safe_to_remove_jump_p): Declare.
1170
1171 Mon May 15 21:07:20 MET DST 2000 Jan Hubicka <jh@suse.cz>
1172
1173 * calls.c: Re-install both patches reverted by last patch.
1174 (struct arg_data): New field tail_call_reg.
1175 (initialize_argument_information): Initialize tail_call_reg
1176 (load_register_parameters): New argument flags, use
1177 tail_call_reg when emiting tail call sequence.
1178 (expand_call): Update call of load_register_parameters;
1179 copy unadjusted_args_size to adjusted_args_size.
1180
1181 Mon May 15 19:01:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
1182
1183 * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
1184 and bct_p parameters to flags.
1185 * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
1186 * rtl.h (loop_optimize): Update prototype.
1187 * toplev.c (rest_of_compilation): Update call of loop_optimize.
1188
1189 2000-05-15 Jakub Jelinek <jakub@redhat.com>
1190
1191 * calls.c (expand_call): Move expand_start_target_temps call after
1192 start_sequence().
1193
1194 2000-05-15 Neil Booth <NeilB@earthling.net>
1195
1196 * cpphash.c (trad_stringify, warn_trad_stringify,
1197 collect_params): Make some pointers pointers to const.
1198 * cpplex.c (auto_expand_name_space) Guaranteed to always
1199 expand by at least one character.
1200 (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
1201 (struct token_spelling): Use const U_CHAR * rather than PTR.
1202 (expand_name_space): Fix up token pointers if name space
1203 is moved when expanding.
1204 (INIT_NAME, cpp_scan_line, parse_name, parse_number,
1205 parse_string2, save_comment, spell_token, cpp_output_list):
1206 Update so the routines handle tokens with a direct pointer to
1207 their text, rather than an offset into the token's list's namebuf.
1208 (_cpp_lex_line): Rearrange for clarity.
1209
1210 * cpplib.c (_cpp_check_directive): Similarly.
1211 (do_define): Make SYM a pointer to const.
1212 * cpplib.h (struct cpp_name): Replace offset with direct pointer.
1213 (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
1214 (TOK_OFFSET): Delete.
1215 (TOK_NAME): Update.
1216
1217 2000-05-14 Geoffrey Keating <geoffk@cygnus.com>
1218
1219 * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
1220 64-bit ABI.
1221
1222 * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
1223 into account.
1224 (logical_u_operand): Delete.
1225 (non_logical_cint_operand): Rewrite to take MODE into account.
1226 (non_logical_u_cint_operand): Delete.
1227 (boolean_operator): New function.
1228 (print_operand): Add new %q operand.
1229 * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
1230 remove logical_u_operand and non_logical_u_cint_operand,
1231 update logical_operand and non_logical_cint_operand.
1232 * config/rs6000/rs6000.md: Rewrite the patterns for performing
1233 logical operations to use %q.
1234
1235 * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
1236 (movdi): Make similar to movsi.
1237 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
1238 is no such thing as a DImode CONST_DOUBLE.
1239 * config/rs6000/rs6000.c (output_toc): Likewise.
1240
1241 * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
1242 codes when old mnemonics are in use. Print register names
1243 for cc registers when requested.
1244
1245 * optabs.c (expand_float): Don't allow mode widening that causes
1246 double rounding.
1247
1248 * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
1249 flags to their current names -maix64 and -maix32.
1250
1251 2000-05-14 Bruce Korb <bkorb@gnu.org>
1252
1253 * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
1254 and/or after current text of file
1255 * fixinc/fixlib.c(must_malloc):
1256 * fixinc/fixlib.h(must_malloc): + reformatting
1257 * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
1258 with usages of ``c_fix = wrap;''
1259 Add several tests and use the ``c_fix = format'' fixer more.
1260 * fixinc/fixincl.x: regen
1261 * fixinc/check.diff: regen
1262 * fixinc/check.tpl: emit the associated header with the missing
1263 test message
1264
1265 Sun May 14 17:58:59 2000 Hans-Peter Nilsson <hp@axis.com>
1266
1267 * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
1268 variables $src and $dst.
1269
1270 2000-05-13 Gabriel Dos Reis <gdr@codesourcery.com>
1271
1272 * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
1273 (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
1274 (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
1275 (struct output_buffer: emitted_prefix_p, prefixing_rule): New
1276 fields.
1277 (set_message_prefixing_rule): Declare.
1278
1279 * diagnostic.c: (current_prefixing_rule): New variable.
1280 (set_message_prefixing_rule): Define.
1281 (output_set_prefix): Adjust buffer->emitted_prefix_p.
1282 (init_output_buffer): Adjust Initialization.
1283 (output_emit_prefix): Rewrite. Take prefixing rules into account.
1284
1285 Sat May 13 11:05:47 2000 Philippe De Muyter <phdm@macqel.be>
1286
1287 * ifcvt.c (if_convert): Do not free NULL.
1288
1289 2000-05-12 Nick Clifton <nickc@cygnus.com>
1290
1291 * config/fr30/fr30.c (fr30_move_double): New function: Emit code
1292 to move a double word value.
1293 (di_operand): New function: Return true if the operand is suitbale
1294 for a double word move operation.
1295 (nonimmediate_di_operand): New function: Return true if the
1296 operand is a DImode register or MEM.
1297
1298 * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
1299 nonimmediate_di_operand.
1300
1301 * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
1302 nonimmediate_di_operand.
1303
1304 * config/fr30/fr30.md (movdi): New pattern. Required because
1305 other patterns generate DImode results.
1306 (movdi_insn): New pattern.
1307
1308 2000-05-12 Richard Henderson <rth@cygnus.com>
1309
1310 * config/alpha/alpha.c (struct shadow_summary): Define
1311 bitfields as type unsigned int.
1312
1313 Sat May 13 00:09:59 2000 Denis Chertykov <denisc@overta.ru>
1314
1315 * config/avr/t-avr: Added definition of FLOAT while generates
1316 fp-bit.c
1317
1318 * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
1319 peepholes for tst+jump = sbrs/sbrc optimization.
1320
1321 Fry May 12 20:03:00 CEST 2000 Jan Hubicka <jh@suse.cz>
1322
1323 * expr.c (emit_push_insn): Do not adjust stack pointer when
1324 preallocating.
1325
1326 Fri May 12 19:03:58 2000 Philippe De Muyter <phdm@macqel.be>
1327
1328 * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
1329 * system.h (offsetof): ... to here.
1330
1331 2000-05-12 Richard Henderson <rth@cygnus.com>
1332
1333 * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
1334 * final.c (final_end_function): Use app_disable. Rearrange note
1335 handling into a switch. Emit deleted labels.
1336 (output_asm_label): Generate label strings for deleted labels.
1337 * flow.c (tail_recursion_label_list): New.
1338 (find_basic_blocks_1): Set label_value_list directly. Collect list
1339 of tail recursion labels from call_placeholders. Don't add deleted
1340 labels to the label value list.
1341 (cleanup_cfg): Use free_EXPR_LIST_list.
1342 (flow_delete_insn_chain): Turn non-removable labels into notes.
1343 (flow_delete_block): Don't disable deleting the block because of
1344 a non-removable label.
1345 (tail_recursion_label_p): New.
1346 (merge_blocks_move_predecessor_nojumps): Don't disable the merge
1347 because of a label.
1348 (merge_blocks_move_successor_nojumps): Likewise. Also move a
1349 jump table.
1350 (merge_blocks): Disable a merge because of tail recursion labels.
1351 * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
1352 Use a more accurate measure of not merging the join block.
1353 (find_if_block): Don't disable conversion because of a label.
1354 (find_if_case_1, find_if_case_2): Likewise.
1355 * jump.c (duplicate_loop_exit_test): Preserve the kind of list
1356 element when copying.
1357 (squeeze_notes): Also leave EH notes.
1358 (mark_jump_label): Ignore deleted labels. Use an INSN_LIST for
1359 REG_LABEL notes.
1360 (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
1361 deleting a label.
1362 * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
1363 NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref
1364 referring to a deleted label. Convert tail handling to a switch.
1365 * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
1366 for NOTE_INSN_DELETED_LABEL.
1367 (NOTE): Fix commentary.
1368 * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
1369 (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
1370 (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
1371 (LABEL_NUSES, LABEL_REFS): Likewise.
1372 * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
1373
1374 2000-05-12 Bruce Korb <bkorb@gnu.org>
1375
1376 * fixinc/fixfixes.c(format_write): buglet & relaxed rules
1377 * fixinc/check.diff: updated
1378 * fixinc/inclhack.def: corrected & added some test_text-s
1379 * fixinc/genfixes: removed unneeded options to autogen invocation
1380 * fixinc/fixincl.tpl: Specified the output file
1381 * fixinc/fixfixes.c: visual appearance
1382 * fixinc/fixincl.x: regenerate
1383
1384 2000-05-12 Zack Weinberg <zack@wolery.cumb.org>
1385
1386 * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
1387 CTRL_defn_fix): Delete.
1388 (fix_char_macro_defines, fix_char_macro_uses): Rename to
1389 char_macro_def_fix and char_macro_use_fix, respectively. Put
1390 them into the FIXUP_TABLE. Get the string to search for from
1391 a c_fix_arg.
1392
1393 (format_write): New function.
1394 (format_fix): Use it.
1395
1396 (FIX_PROC_HEAD): Constify text parameter.
1397 (machine_name_fix): Constify all char *s.
1398 * fixtests.c (skip_quote): Remove double static.
1399
1400 * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
1401 ctrl_use_quotes): Update for new scheme.
1402 * fixincl.x: Regenerate.
1403
1404 2000-05-12 Alexandre Oliva <aoliva@cygnus.com>
1405
1406 * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
1407 DWARF2_DEBUG.
1408 (DWARF2_ASM_LINE_DEBUG_INFO): Define.
1409 (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
1410
1411 2000-05-11 Robert Lipe <robertlipe@usa.net>
1412
1413 * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
1414 * fixincl.x: Regenerate.
1415
1416 2000-05-11 Richard Henderson <rth@cygnus.com>
1417
1418 * calls.c: Revert both 05-09 patches.
1419
1420 2000-05-11 Alexandre Oliva <aoliva@cygnus.com>
1421
1422 * config/mn10300/mn10300.c (print_operand): Print FP constants in
1423 hexadecimal.
1424 * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
1425 for FP values.
1426
1427 * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
1428 and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
1429
1430 2000-05-11 Jason Merrill <jason@casey.cygnus.com>
1431
1432 * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
1433
1434 2000-05-11 Zack Weinberg <zack@wolery.cumb.org>
1435
1436 * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
1437
1438 Thu May 11 22:28:05 2000 Denis Chertykov <denisc@overta.ru>
1439
1440 * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
1441 * config/avr/avr.c (jump_over_one_insn_p): New function.
1442 * config/avr/avr.md: New peepholes added. Output test and
1443 conditional jump to "sbrc" or "sbrs" command.
1444
1445 2000-05-11 Mark Elbrecht <snowball3@bigfoot.com>
1446
1447 * cppmain.c (main): Use IS_DIR_SEPARATOR.
1448
1449 2000-05-11 Jakub Jelinek <jakub@redhat.com>
1450
1451 * except.c (find_exception_handler_labels_1): New function.
1452 (find_exception_handler_labels): Split into two functions, dive
1453 into CALL_PLACEHOLDERs when looking for exception handler labels.
1454
1455 2000-05-11 Stan Cox <scox@cygnus.com>
1456
1457 * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
1458 * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
1459 * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
1460
1461 2000-05-11 Bruce Korb <bkorb@gnu.org>
1462
1463 * fixinc/fixfixes.c (double_slash_fix): obsolete
1464 (else_endif_label_fix): obsolete
1465 (format_fix): new, unused as yet
1466 (main): obsolete
1467 * fixinc/fixlib.h: added fix description struct for use by format_fix
1468 * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
1469 * fixinc/Makefile.in: compile fixfixes.c and fixtests.c as separate
1470 modules. Removed the vestiges of the script version.
1471 Added support for "make check".
1472 * fixinc/check.diff: base diff file (needs work!!)
1473 * fixinc/check.tpl: quiet the fixup output
1474 * fixinc/fixtests.c (main): obsolete
1475 * fixinc/fixincl.sh: don't bother copying fixincl to ..
1476 * fixinc/fixincl.tpl: provide for arguments to c_fix routines
1477
1478 Thu May 11 11:57:02 MET DST 2000 Jan Hubicka <jh@suse.cz>
1479
1480 * toplev.c (rest_of_compilation): Remove dead code after
1481 combine.
1482
1483 2000-05-11 Zack Weinberg <zack@wolery.cumb.org>
1484
1485 * cpphash.c (collect_funlike_expansion): Make "# is not
1486 followed by a macro argument name" a pedwarn, not an error.
1487 Preserve the # in the output. Suppress the warning if lang_asm.
1488
1489 Thu May 11 01:19:31 2000 Jeffrey A Law (law@cygnus.com)
1490
1491 * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
1492 * configure: Rebuilt.
1493
1494 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
1495
1496 * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
1497
1498 2000-05-10 Kazu Hirata <kazu@hxi.com>
1499
1500 * combine.c (try_combine): Fix a typo.
1501
1502 Wed May 10 21:31:44 2000 Jim Wilson <wilson@cygnus.com>
1503
1504 * config/ia64/ia64.md (insv): Add comment.
1505
1506 2000-05-10 Richard Henderson <rth@cygnus.com>
1507
1508 * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
1509 * mklibgcc.in: Rewrite to not use functions. Don't shortcut
1510 dependancies on FPBIT and DPBIT.
1511
1512 2000-05-10 Nick Clifton <nickc@redhat.com>
1513
1514 * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
1515 when optimising for size.
1516 (mark_used_regs:) Ditto.
1517 (try_pre_increment_1): Ditto.
1518
1519 2000-05-10 Zack Weinberg <zack@wolery.cumb.org>
1520
1521 * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
1522 Make error message friendlier.
1523
1524 * cpphash.h (struct hashnode): Use struct hack for name
1525 member.
1526 * cpphash.c (struct hashdummy): New.
1527 (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
1528 (make_HASHNODE): No need to set ->name pointer. Correct
1529 setting of p.
1530 (cpp_lookup): Make 'dummy' a struct hashdummy. Tidy up a bit.
1531
1532 2000-05-10 Richard Henderson <rth@cygnus.com>
1533
1534 * flow.c (find_basic_blocks_1): Remove any spare bb_note
1535 after completion.
1536
1537 2000-05-10 Bruce Korb <bkorb@gnu.org>
1538
1539 * fixinc/gnu-regex.c: reg_syntax_t re_syntax_options must be static
1540
1541 2000-05-10 Eric Schweitz <schweitz@nortelnetworks.com>
1542
1543 * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
1544 after we enter .debug.
1545
1546 2000-05-10 Jason Merrill <jason@casey.cygnus.com>
1547
1548 * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
1549 abstract instance of a nested inline function.
1550
1551 * stor-layout.c (finish_record_layout): finalize_type_size
1552 before laying out the pending_statics.
1553
1554 Wed 10 May 09:36:47 2000 Neil Booth <NeilB@earthling.net>
1555
1556 * cpplex.c (spell_token): New function.
1557 (spell_string, spell_comment, spell_name): fold into
1558 spell_token.
1559 (I, S): Add macros.
1560 (E, H): Remove macros.
1561 (save_comment): Save comment opening characters too.
1562 (_cpp_lex_file): Update to use spell_token. Tidy up comment
1563 handling.
1564 * cpplib.h (I, S): Add macros.
1565 (E, H): Remove macros.
1566 (TTYPE_TABLE): Update entries for new speller.
1567 (SYNTAX_ASSERT): Remove.
1568
1569 Wed 10 May 09:08:30 2000 Neil Booth <NeilB@earthling.net>
1570
1571 * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
1572 when removing escaped newlines. Reverse sense of test for
1573 escaped newline.
1574
1575 2000-05-09 Richard Henderson <rth@cygnus.com>
1576
1577 * flow.c (find_basic_blocks_1): Do not delete the first
1578 bb_note we run across.
1579 (create_basic_block): Use reorder_insns to move an existing
1580 bb_note to the correct place.
1581
1582 2000-05-09 Richard Henderson <rth@cygnus.com>
1583
1584 * calls.c (expand_call): Increment currently_expanding_call
1585 before calling optimize_tail_recursion.
1586
1587 Tue May 9 18:54:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1588
1589 * reload1.c (reload_combine): Fix errors in last change.
1590
1591 2000-05-09 Zack Weinberg <zack@wolery.cumb.org>
1592
1593 * gcc.c (used_arg): Skip over a semicolon at the end of the
1594 split-up loop; don't break out of it.
1595
1596 * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
1597 (tree.o): Depend on output.h.
1598
1599 * c-decl.c (pending_invalid_xref_file,
1600 current_function_prototype_file): Constify.
1601 (pushdecl): Constify a local char *.
1602 (define_label): Constify filename parameter.
1603 * c-lex.c (init_parse): Constify parameter and return value.
1604 * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
1605 * c-tree.h: Update prototypes.
1606 * c-parse.in: Constify filename member of %union, and if_stmt_file.
1607 * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
1608 objc/objc-parse.c: Regenerate.
1609
1610 * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
1611 * dwarfout.h: Update prototypes.
1612 * expr.c (expand_expr): Constify a local char *.
1613 * flags.h: Constify main_input_filename.
1614 * function.c (expand_function_end): Constify filename parameter.
1615 * genrecog.c (make_insn_sequence): Use a character array for
1616 c_test_pos.
1617 (main): Remove unused variables.
1618 * input.h: Constify input_filename, main_input_filename, and
1619 file_stack.name. Update prototypes.
1620 * output.h: Declare first_global_object_name and
1621 weak_global_object_name here, as const char *.
1622 * stmt.c (expand_asm_operands): Constify filename parameter.
1623 * toplev.c (compile_file, push_srcloc, debug_start_source_file):
1624 Constify filename parameter.
1625 (input_filename, main_input_filename): Constify.
1626 * toplev.h: Update prototypes.
1627 * tree.c: Include output.h. Don't declare
1628 first_global_object_name or weak_global_object_name. Clean up string
1629 bashing in get_file_function_name_long.
1630 * tree.h (struct tree_decl): Constify filename member.
1631 (input_filename): Constify.
1632 Update prototypes.
1633 * varasm.c (first_global_object_name, weak_global_object_name):
1634 Constify.
1635 (assemble_start_function, assemble_variable): Clean up string bashing.
1636
1637 * gcc.c: Constify all spec-related strings initialized,
1638 transitively, from string constants. Constify all strings
1639 and string variables related to multilibs.
1640 (set_spec, read_specs): Cast argument to free to PTR.
1641 (used_arg): Do not modify multilib_matches. Use strncmp plus
1642 length comparison to compare multilib switches.
1643 * genmultilib: Constify everything declared in multilib.h.
1644
1645 Tue May 9 22:28:03 2000 Denis Chertykov <denisc@overta.ru>
1646
1647 * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
1648 as deleted.
1649
1650 Tue May 9 20:52:43 2000 Denis Chertykov <denisc@overta.ru>
1651
1652 * config/avr/avr-protos.h (extra_constraint): change a type of
1653 second argument from char to int to avoid warnings.
1654 (asm_output_byte): Likewise.
1655
1656 * config/avr/avr.c (MAX_LD_OFFSET) New macro.
1657 (initial_elimination_offset): Handle elimination from
1658 FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
1659 (legitimate_address_p): Use MAX_LD_OFFSET.
1660 (legitimize_address): Likewise.
1661 (out_movqi_r_mr): Likewise.
1662 (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
1663 (out_movsi_r_mr): Use MAX_LD_OFFSET.
1664 (out_movsi_mr_r): Likewise.
1665 (out_movqi_mr_r): Likewise.
1666 (out_movhi_mr_r): Likewise.
1667 (notice_update_cc): Correct CC for the ashrqi3 with the shift
1668 count as CONST_INT != 6.
1669 (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
1670 shift count is a CONSTANT_P, but not a CONST_INT.
1671 (ashlhi3_out): Coding style modifications.
1672 (ashlsi3_out): Likewise.
1673 (ashrhi3_out): Likewise.
1674 (ashrsi3_out): Likewise.
1675 (lshrhi3_out): Likewise.
1676 (lshrsi3_out): Likewise.
1677 (ashrqi3_out): Generate shift for any known constant count without
1678 scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
1679 but not a CONST_INT.
1680 (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
1681 shift count is a CONSTANT_P, but not a CONST_INT.
1682 (extra_constraint): change a type of
1683 second argument from char to int to avoid warnings.
1684 (asm_output_byte): Likewise.
1685 (asm_file_end): Output size generated commands count as a hex
1686 number too.
1687
1688 * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
1689
1690 * config/avr/avr.md (addhi3): Fragment commented by &&0 is
1691 removed.
1692 (ashlqi3): Values of "length" attribute changed. Shift count
1693 uses constraints 'n' instead of 'i'.
1694 (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
1695 shifts without clobber register.
1696 (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
1697 (call_insn): Correct test for which_alternative == 1 (was 0).
1698 (call_value_insn): Likewise.
1699
1700 * config/avr/t-avr: Remove definition of FLOAT while generates
1701 fp-bit.c
1702
1703 2000-05-09 Bruce Korb <bkorb@gnu.org>
1704
1705 * fixinc/check.tpl: Template for checking fixes
1706 * fixinc/inclhack.def: Added 'test_text' for many fixes
1707 disable hpux8_bogus_inlines on SCO
1708 * fixinc/fixinc.sco: Oh, yes, we don't need this any more.
1709
1710 Tue May 9 16:30:27 MET DST 2000 Jan Hubicka <jh@suse.cz>
1711
1712 * calls.c (expand_call): Reorganize somewhat in order
1713 to avoid unnecesary recalculation inside loop and make
1714 tail call failure code cleaner.
1715
1716 Tue May 9 06:30:20 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1717
1718 * alias.c (nonlocal_reference_p): Minor reformatting.
1719 * reload.c (find_equiv_reg): Simplify logic for
1720 CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
1721 some some reformatting.
1722 * reload1.c (reload_combine): Don't assume everything in
1723 CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
1724
1725 2000-05-08 Richard Henderson <rth@cygnus.com>
1726
1727 * final.c (current_insn_predicate): New.
1728 (final_scan_insn): Set it.
1729 * output.h (current_insn_predicate): Declare.
1730
1731 * ifcvt.c (cond_exec_process_insns): New argument prob_val.
1732 Attach it to call insns.
1733 (cond_exec_process_if_block): Track probability for true and
1734 false branches.
1735 (dead_or_predicable): Likewise.
1736
1737 * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
1738 (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
1739 (PROB_VERY_LIKELY, PROB_ALWAYS): New.
1740 (estimate_probability, expected_value_to_br_prob): Use them.
1741
1742 * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
1743 * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
1744 (ia64_expand_prediction): New.
1745 (emit_insn_group_barriers): Don't look at notes. Emit barriers
1746 as needed after calls.
1747 (ia64_epilogue_uses): Mark b0 used.
1748 * config/ia64/ia64.md (beq_true, beq_false): Remove.
1749 (bne_true, bne_false): Remove.
1750 (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
1751 (br_true, br_false): New. Use predicate_operator and
1752 ia64_expand_prediction.
1753 (return_true, return_false): Likewise.
1754 (call_internal): Use ia64_expand_prediction. Don't emit stop bit.
1755 (call_internal1, call_value_internal): Likewise.
1756 (call_value_internal1, call_multiple_values_internal1): Likewise.
1757
1758 * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
1759
1760 * config/ia64/ia64.md (extendsfdf2): Split only after reload.
1761
1762 2000-05-08 Richard Henderson <rth@cygnus.com>
1763
1764 * rtlanal.c (may_trap_p): Consider old-style and volatile
1765 asms to trap.
1766
1767 Mon May 8 17:16:48 2000 Jim Wilson <wilson@cygnus.com>
1768
1769 * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
1770
1771 2000-05-08 Richard Henderson <rth@cygnus.com>
1772
1773 * config/ia64/ia64.h (predicate_operator): Declare.
1774
1775 * config/ia64/ia64.md (extendsfdf2): Split the nop case out
1776 of existance.
1777
1778 * gensupport.c (process_rtx): Copy and post-process each member
1779 of the define_insn rtvec individually.
1780
1781 Mon 8 May 22:17:35 2000 Neil Booth <NeilB@earthling.net>
1782
1783 * cpplex.c (spell_token): New function.
1784 (TOKEN_LEN): Add 1 for whitespace.
1785 (_cpp_lex_file): Update to use spell_token.
1786 * cpplib.h (E): Remove.
1787 (TTYPE_TABLE): Update CPP_VSPACE entry.
1788
1789 2000-05-08 Richard Henderson <rth@cygnus.com>
1790
1791 * flow.c (init_propagate_block_info): Watch out for conditional
1792 branch to next instruction, and thus one outgoing edge.
1793
1794 * config/ia64/ia64.c (ia64_encode_section_info): Exit early
1795 for global register variables; don't special case __[CD]TOR_LIST__;
1796 mind ggc_p for string allocation.
1797
1798 2000-05-08 Nick Clifton <nickc@cygnus.com>
1799
1800 * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
1801
1802 2000-05-08 Bruce Korb <bkorb@gnu.org>
1803
1804 * fixinc/mkfixinc.sh: fixinc.sco is no longer used
1805 i?86-*-msdosdjgpp* no longer uses fixincludes
1806 * fixinc/genfixes: inclhack.sh and fixincl.sh are no longer generated
1807 * fixinc/inclhack.sh: deleted
1808 * fixinc/hackshell.tpl: deleted
1809 * fixinc/inclhack.tpl: deleted
1810 * fixinc/Makefile.in: Remove dependencies on above
1811 * fixinc/fixincl.sh: "DO NOT EDIT" text modified
1812
1813 2000-05-08 Andreas Jaeger <aj@suse.de>
1814
1815 * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
1816 support.
1817
1818 2000-05-07 Zack Weinberg <zack@wolery.cumb.org>
1819
1820 * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
1821 substitutions.
1822
1823 Sun 7 May 08:43:53 2000 Neil Booth <NeilB@earthling.net>
1824
1825 * cpplex.c: Move new lexer definitions and prototypes
1826 to top. Conditional include these and the code if
1827 NEW_LEXER is defined. Rename functions whose names
1828 clash if this code included.
1829
1830 Sun May 7 00:54:57 EDT 2000 John Wehle (john@feith.com)
1831
1832 * rtl.def (COND_EXEC): Clarify.
1833
1834 * i386.md (extendsidi2): Clobber (reg:CC 17) in the
1835 same fashion as zero_extendsidi2.
1836
1837 2000-05-06 Richard Henderson <rth@cygnus.com>
1838
1839 * config/ia64/ia64.c (predicate_operator): New.
1840 (ia64_print_operand): Handle 'J'.
1841 (rtx_needs_barrier): Handle COND_EXEC.
1842 * config/ia64/ia64.h (BRANCH_COST): Define.
1843 (PREDICATE_CODES): Update.
1844 * config/ia64/ia64.md: Docuement used unspec values.
1845 (attr predicable): New.
1846 (movxf, movxf_internal): New.
1847 (extendsfdf2): Don't comment out nop.
1848 (floatdidf2): Remove.
1849 (truncxfsf2, truncxfdf2, floatdixf2): New.
1850 (abssi2, absdi2): Put the neg in the "true" slot.
1851 (conditional branch instructions): Mark not predicable.
1852 (cmov*_internal): Use predicate_operator. Split to cond_exec.
1853 (abs*_internal): Likewise.
1854 (alloc, set_bsp): Mark not predicable.
1855 (barrier, insn_group_barrier, flush_cache): Likewise.
1856 (define_cond_exec): New.
1857
1858 2000-05-06 Richard Henderson <rth@cygnus.com>
1859
1860 * c-decl.c: Include "tm_p.h".
1861
1862 * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
1863 (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
1864 (ia64_expand_op_and_fetch): Declare.
1865 * config/ia64/ia64.c: Include "toplev.h". Kill trailing whitespace.
1866 (setjmp_operand): Constify variables for XSTR.
1867 (ia64_encode_section_info): Likewise.
1868 (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
1869 values to int.
1870 (ia64_asm_output_external): Constify name.
1871 (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
1872 (process_for_unwind_directive): Provide switch default.
1873 (ia64_expand_compare_and_swap): Remove unused variables.
1874 (ia64_expand_builtin): Likewise.
1875 * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
1876 for printing.
1877
1878 * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
1879 (symbolic_operand, function_operand, setjmp_operand): Likewise.
1880 (shift_count_operand, shift_32bit_count_operand): Likewise.
1881 (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
1882 (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
1883 (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
1884 (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
1885 (ia64_expand_builtin): Likewise.
1886 (call_multiple_values_operation): Make dest_regno unsigned.
1887
1888 2000-05-06 Richard Henderson <rth@cygnus.com>
1889
1890 * rtl.def (DEFINE_COND_EXEC): New.
1891 * md.texi: Document it.
1892
1893 * gensupport.c (input_file): Remove.
1894 (struct queue_elem): Add lineno.
1895 (rtx_ready_queue): Remove.
1896 (errors): New.
1897 (predicable_default): New.
1898 (predicable_true, predicable_false): New.
1899 (define_attr_queue, define_attr_tail): New.
1900 (define_insn_queue, define_insn_tail): New.
1901 (define_cond_exec_queue, define_cond_exec_tail): New.
1902 (other_queue, other_tail): New.
1903 (queue_pattern): New.
1904 (process_rtx): Add patterns to the appropriate queues.
1905 (is_predicable, identify_predicable_attribute): New.
1906 (n_alternatives, collect_insn_data): New.
1907 (alter_predicate_for_insn, alter_test_for_insn): New.
1908 (shift_output_template, alter_output_for_insn): New.
1909 (process_one_cond_exec, process_define_cond_exec): New.
1910 (init_md_reader): Read the entire file. Process define_cond_exec.
1911 (read_md_rtx): Return elements from the queues.
1912
1913 2000-05-06 Richard Henderson <rth@cygnus.com>
1914
1915 * flow.c (mark_set_1): Don't update conditional life info
1916 if the register is not_dead.
1917
1918 2000-05-06 Zack Weinberg <zack@wolery.cumb.org>
1919
1920 * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
1921 (mostlyclean): Also delete fixincl, fixinc.sh, and
1922 specs.ready, and make clean in the fixinc subdir.
1923
1924 2000-05-06 Richard Henderson <rth@cygnus.com>
1925
1926 * Makefile.in (gensupport.o): Compile for the host.
1927 (host-prefix gensuuprt.o): Remove.
1928 (genflags.o): Depend on gensupport.h and OBSTACK_H.
1929 (genattrtab.o): Likewise.
1930 (gencodes.o): Depend on gensupport.h.
1931 (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
1932 (genpeep.o, genattr.o, genoutput.o): Likewise.
1933
1934 * gensupport.c (obstack, rtl_obstack): New.
1935 (init_md_reader): Initialize rtl_obstack.
1936 * gensupport.h (rtl_obstack): Declare.
1937 (message_with_line): Declare.
1938
1939 * genattr.c: Remove all traces of obstack manipulation.
1940 * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
1941 * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
1942
1943 * genattrtab.c (obstack, rtl_obstack): Remove.
1944 (main): Don't init rtl_obstack.
1945 * genflags.c: Likewise.
1946
1947 * genrecog.c (message_with_line): Move ...
1948 * gensupport.c: ... here.
1949
1950 2000-05-06 Richard Henderson <rth@cygnus.com>
1951
1952 * c-typeck.c (build_c_cast): Remove dead code.
1953
1954 2000-05-06 Richard Henderson <rth@cygnus.com>
1955
1956 * flow.c (split_edge): Don't allocate global_live_at_start for
1957 the new block unless the old blocks had them as well.
1958
1959 * flow.c (mark_set_1): Respect not_dead when updating reg_live.
1960
1961 * ifcvt.c (noce_process_if_block): Don't use an insn_b from
1962 test_bb if a or b uses x.
1963
1964 2000-05-06 Zack Weinberg <zack@wolery.cumb.org>
1965
1966 * cpphash.h: Remove conditional #define of __extension__.
1967 * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
1968 RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
1969 (ENABLE_RTL_CHECKING only).
1970 * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
1971 CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
1972 (ENABLE_TREE_CHECKING only).
1973 * varray.h: Add __extension__ to VARRAY_CHECK macro
1974 (ENABLE_CHECKING only).
1975
1976 2000-05-06 Richard Earnshaw (reanrsha@arm.com)
1977
1978 Use new tail-calling mechanism on ARM.
1979 * arm.md (sibcall, sibcall_value): New expands.
1980 (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
1981 (tailcalling peepholes): Delete.
1982 (push_multi): Simplify.
1983 * arm.c (lr_save_eliminated): Delete definition.
1984 (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
1985 (output_return_instruction): Remove checks on lr_save_eliminated.
1986 (output_arm_prologue): Remove old tail-calling code.
1987 (arm_output_epilogue): New parameter, really_return. All callers
1988 changed. Handle tail-calling epilogues.
1989 * arm.h (lr_save_eliminated): Delete declaration.
1990 (frame_pointer_needed): Delete declaration.
1991 * arm-protos.h (arm_output_epilogue): Adjust prototype.
1992
1993 * arm.md (is_thumb): Examine symbol thumb_code, not expression
1994 TARGET_ARM.
1995 * arm.c (thumb_code): Define it.
1996 (arm_override_options): Set it.
1997 * arm.h (thumb_code): Declare it.
1998
1999 2000-05-06 Richard Earnshaw (reanrsha@arm.com)
2000
2001 * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
2002
2003 2000-05-06 Richard Earnshaw (reanrsha@arm.com)
2004
2005 * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
2006 bogus clobber to insns.
2007 (load_multiple_operation, store_mulitple_operation): Don't check
2008 for it.
2009 * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
2010
2011 * arm.md (and_scc, ior_scc): Add missing mode.
2012
2013 * arm.md (call_value_symbol): Remove predicate from op2.
2014
2015 * arm.h (SPECIAL_MODE_PREDICATES): Define.
2016
2017 Sat May 6 06:25:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2018
2019 * expr.c (get_subtarget): New function.
2020 (force_operand, expand_expr, do_store_flag): Use it.
2021
2022 * toplev.c (compile_file): Don't take strlen of NAME if null.
2023
2024 2000-05-06 David Edelsohn <edelsohn@gnu.org>
2025
2026 * xcoffout.c (xcoff_current_include_file,
2027 xcoff_current_function_file, xcoff_lastfile): Constify char *.
2028 (xcoffout_source_file, xcoffout_source_line): Make filename 'const
2029 char *'.
2030 (xcoffout_declare_function): Make name 'const char *'.
2031 (xcoffout_end_epilogue): Make fname 'const char *'
2032 * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
2033 xcoffout_declare_function, xcoffout_source_line): Match above.
2034
2035 * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
2036 -maix64 is error.
2037 * rs6000.c (print_operand): Fix lossage typo.
2038 (output_cbranch): Remove "cr" decoration for now.
2039 * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
2040
2041 Sat May 6 06:55:32 2000 Denis Chertykov <denisc@overta.ru>
2042
2043 * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
2044 constant count.
2045
2046 2000-05-05 Bruce Korb <bkorb@gnu.org>
2047
2048 * fixinc/genfixes: Improve the matching for make target names
2049
2050 2000-05-05 Catherine Moore <clm@cygnus.com>
2051
2052 * c-common.c (decl_attributes): For TYPE_DECLs attach the
2053 attribute to the decl.
2054 * c-decl.c (pushdecl): Propagate the USED attribute to the
2055 type copy.
2056
2057 2000-05-05 Richard Henderson <rth@cygnus.com>
2058
2059 * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
2060 same way emit_group_load does.
2061
2062 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
2063
2064 * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
2065
2066 * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
2067 (main): Likewise.
2068
2069 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
2070
2071 * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
2072
2073 Fri May 5 10:29:21 2000 Marc Espie <espie@cvs.openbsd.org>
2074
2075 * config/openbsd.h (LINK_SPEC): pass correct flags to ld
2076 to support -shared, on platforms with dynamic libraries.
2077
2078 Fri May 5 10:27:06 2000 Philippe De Muyter <phdm@macqel.be>
2079
2080 * system.h (S_ISBLK): Provide fallback definition.
2081
2082 2000-05-05 Geoff Berry <geoffb@bops.com>
2083
2084 * extend.texi (Extended Asm): Document inability to give asm
2085 statements access to condition codes.
2086
2087 2000-05-05 Marek Michalkiewicz <marekm@linux.org.pl>
2088
2089 * varasm.c (asm_emit_uninitialised): Use 0, not NULL
2090 as arg 2 of UNIQUE_SECTION.
2091
2092 Fri May 5 10:11:41 2000 Jeffrey A Law (law@cygnus.com)
2093
2094 * predict.c: Remove May 4 change.
2095 * bb-reorder.c (make_reorder_chain): Do not perform block movement
2096 if we have predicted the branch at 50-50 probability.
2097
2098 2000-05-05 Richard Henderson <rth@cygnus.com>
2099
2100 * flow.c (init_propagate_block_info): Fix merge error
2101 in HAVE_conditional_execution code.
2102
2103 Fri May 5 07:43:50 2000 Denis Chertykov <denisc@overta.ru>
2104
2105 * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
2106 shift cycle for unknown shift count. Also generates dec + brpl.
2107 (ashlqi3_out): Don't generate dec + brpl which now generates by
2108 `out_shift_with_cnt'.
2109 (ashlhi3_out): Likewise.
2110 (ashlsi3_out): Likewise.
2111 (ashrqi3_out): Likewise.
2112 (ashrhi3_out): Likewise.
2113 (ashrsi3_out): Likewise.
2114 (lshrqi3_out): Likewise.
2115 (lshrhi3_out): Likewise.
2116 (lshrsi3_out): Likewise.
2117
2118 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
2119
2120 * gcc.c (free_split_directories): Correct typo in explanation
2121 of make_relative_prefix.
2122
2123 2000-05-04 Geoff Keating <geoffk@cygnus.com>
2124
2125 * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
2126 comparison codes to branch_comparison_operator.
2127
2128 2000-05-04 Richard Henderson <rth@cygnus.com>
2129
2130 * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
2131
2132 2000-05-04 Richard Henderson <rth@cygnus.com>
2133
2134 * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
2135 (DPBIT_FUNCS): Remove _sf_to_usi.
2136 (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
2137
2138 * ifcvt.c (noce_process_if_block): Fail if A or B modified
2139 between condition and jump.
2140
2141 * libgcc2.c (near eh_context_specific): Comment #endif string.
2142 * longlong.h: Don't use strings with embedded newlines.
2143
2144 2000-05-04 Geoff Keating <geoffk@cygnus.com>
2145
2146 * config/rs6000/rs6000-protos.h: Add output_cbranch.
2147 * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
2148 (print_operand): Delete %t and %T codes.
2149 (output_cbranch): New function. Support branch prediction.
2150 * config/rs6000/rs6000.md: Use output_cbranch for
2151 conditional branches and returns.
2152
2153 2000-05-04 Jason Merrill <jason@casey.cygnus.com>
2154
2155 * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
2156 * stor-layout.c (place_field): Likewise.
2157 * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
2158 * expr.c (store_expr): Make align unsigned.
2159 * explow.c (plus_constant_wide): Make low words unsigned.
2160 * expmed.c (choose_multiplier): Likewise.
2161 * fold-const.c (fold): Likewise.
2162 * tree.h (build_int_2): Likewise.
2163 * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
2164 * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
2165 (init_emit): Change cast to unsigned char*.
2166 * varasm.c (compare_constant_1): Add cast to char*.
2167 * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
2168 * reload1.c (reload): Likewise.
2169
2170 * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
2171
2172 Thu May 4 14:37:23 2000 Jeffrey A Law (law@cygnus.com)
2173
2174 * predict.c (estimate_probability): If no prediction was found, then
2175 predict the successor that is the next physical block (if such a
2176 successor exists).
2177
2178 2000-05-04 Richard Henderson <rth@cygnus.com>
2179
2180 * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
2181
2182 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2183
2184 * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
2185
2186 2000-05-04 Mumit Khan <khan@xraylith.wisc.edu>
2187
2188 * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
2189 attribute macros from here ...
2190 (CPP_SPEC): to here.
2191 * i386/mingw32.h (CPP_PREDEFINES): Likewise.
2192 (CPP_SPEC): Likewise.
2193 * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
2194
2195 * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
2196 (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
2197
2198 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2199
2200 * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
2201
2202 * diagnostic (vbuild_message_string, build_message_string,
2203 build_location_prefix, output_get_prefix, init_output_buffer,
2204 output_notice, vline_wrapper_message_with_location,
2205 v_message_with_decl, default_print_error_function): De-constify.
2206 (set_real_maximum_length): Prototype.
2207
2208 * diagnostic.h (struct output_buffer, init_output_buffer,
2209 output_get_prefix, output_set_prefix): De-constify.
2210
2211 * function.c (init_function_start): Constify.
2212
2213 * gensupport.c (remove_constraints, process_rtx): Prototype.
2214
2215 * gthr-posix.h: Indent uses of #pragma.
2216
2217 * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
2218 Prototype.
2219
2220 * predict.c (find_expected_value): Delete prototype.
2221 (expected_value_to_br_prob): Initialize variable `ev_reg'.
2222
2223 * sbitmap.h (debug_sbitmap): Prototype.
2224
2225 * ssa.c (compute_coalesced_reg_partition): Prototype.
2226
2227 * stor-layout.c (debug_rli): Prototype.
2228
2229 * tree.h (round_down): Prototype.
2230 (init_function_start): Constify.
2231
2232 2000-05-04 Zack Weinberg <zack@wolery.cumb.org>
2233
2234 * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
2235 (overly conservative). Change extern inline wrappers to
2236 static inline, define them always, use PARAMS properly.
2237 * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
2238 whitespace warnings for \f and \v at the beginning of a line.
2239
2240 Thu May 4 10:03:50 2000 Jeffrey A Law (law@cygnus.com)
2241
2242 * haifa-sched.c (schedule_insns): Free the flow edge list when it
2243 is no longer needed
2244
2245 2000-05-04 Bruce Korb <bkorb@gnu.org>
2246
2247 * fixincl/inclhack.def: added broken_cabs -
2248 Remove `extern double cabs' declarations from math.h
2249 * fixincl/inclhack.sh: regen
2250 * fixincl/fixincl.x: regen
2251 * fixincl/fixincl.c: Remove BOGOSITY code
2252 * fixincl/mkfixinc.sh: Remove code for installing "shell" version
2253
2254 Thu May 4 09:45:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2255
2256 * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
2257 MEM_ALIAS_SET.
2258 * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
2259 when calling MEM_COPY_ATTRIBUTES.
2260 * emit-rtl.c (operand_subword, change_address): Likewise.
2261 * explow.c (stabilize): Likewise.
2262 * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
2263 * integrate.c (copy_rtx_and_substitute): Likewise.
2264 * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
2265 when calling MEM_COPY_ATTRIBUTES.
2266 (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
2267 Likewise.
2268 * cse.c (gen_lowpart_if_possible): Likewise.
2269 * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
2270 * optabs.c (gen_move_insn): Likewise.
2271 * recog.c (validate_replace_rtx_1): Likewise.
2272 * simplify-rtx.c (add_mem_for_addr): Likewise.
2273 * stmt.c (expand_anon_union_decl): Likewise.
2274 * config/arm/arm.md: Likewise.
2275 * config/h8300/h7300.c (fix_bit_operand): Likewise.
2276 * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
2277 (block_move_no_loop, block_move_sequence): Likewise.
2278 * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
2279 * config/alpha/alpha.c (get_aligned_mem): Likewise.
2280 Clear MEM_ALIAS_SET.
2281 * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
2282 MEM_COPY_ATTRIBUTES.
2283
2284 2000-05-03 Robert Lipe <robertlipe@usa.net>
2285
2286 * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
2287 to suppress libgcc1.
2288 (i[34567]86-*-sco3.2v5*) Likewise.
2289 (i[34567]86-*-sco3.2v4*) Likewise.
2290 (i[34567]86-*-sco) Likewise.
2291 (i[34567]86-*-solaris2) Likewise.
2292 (i[34567]86-*-sysv5*) Likewise.
2293 (i[34567]86-*-sysv4*) Likewise.
2294 (i[34567]86-*-udk*) Likewise.
2295 (i[34567]86-*-sysv*) Likewise.
2296
2297 2000-05-03 Zack Weinberg <zack@wolery.cumb.org>
2298
2299 * cpphash.h (U): New define, to correct type of string constants.
2300 (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
2301 routines, to do casts when passing unsigned strings to libc.
2302 * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
2303
2304 * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
2305 * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
2306 * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
2307 * cpplex.c (parse_ifdef, parse_include, validate_else): Make
2308 second argument an U_CHAR *.
2309
2310 * cppinit.c (builtin_array): Make name and value U_CHAR *, add
2311 length field, clean up initializer.
2312 (ISTABLE): Add __extension__ to designated-
2313 initializers version.
2314 * cpplex.c (CHARTAB): Likewise.
2315
2316 * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
2317 case so the file won't be empty.
2318
2319 Wed May 3 21:01:46 2000 Jason Eckhardt <jle@cygnus.com>
2320
2321 * bb-reorder.c (struct reorder_block_def): Member succ removed.
2322 (REORDER_BLOCK_SUCC): Removed.
2323 (enum reorder_skip_type): Removed.
2324 (skip_insns_between_block): Renamed to skip_insns_after_block.
2325 Removed second argument. Removed dead code and cleaned up.
2326 (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
2327 (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
2328 second parameter to skip_insns_after_block.
2329
2330 Wed May 3 13:29:54 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2331
2332 * tree.c (staticp, case LABEL_DECL): New case.
2333
2334 2000-05-03 Richard Henderson <rth@cygnus.com>
2335
2336 * Makefile.in (start.encap): Do not depend on LIBGCC1.
2337
2338 * mklibgcc1.in: Fix typo last change.
2339
2340 2000-05-03 Jason Merrill <jason@casey.cygnus.com>
2341
2342 * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
2343 (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
2344 (GCC_CFLAGS): Use it.
2345 (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
2346 * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
2347 objc/Make-lang.in: Use it.
2348
2349 2000-05-03 Jason R Thorpe <thorpej@zembu.com>
2350
2351 * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
2352
2353 2000-05-03 Richard Henderson <rth@cygnus.com>
2354
2355 * mklibgcc.in: Restrict OLDCC=GCC test to native. Equate
2356 LIBGCC1 empty with libgcc1.null.
2357
2358 Wed May 3 12:55:46 2000 Jim Wilson <wilson@cygnus.com>
2359
2360 * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
2361 change.
2362
2363 2000-05-03 Greg McGary <gkm@gnu.org>
2364
2365 * tree.h (tree_common): Add bounded_flag member. Remove
2366 inaccurate comment about number of remaining bits.
2367 (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
2368 BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
2369 MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
2370 TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
2371 TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
2372 (TYPE_QUAL_BOUNDED): New constant.
2373 (TYPE_QUALS): Handle bounded qualifier.
2374 (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
2375 (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
2376 TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
2377 TYPE_AMBIENT_BOUNDEDNESS): New macros.
2378 (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
2379 (tree_type): Add pointer_depth member. Remove
2380 inaccurate comment about number of remaining bits.
2381 (DECL_POINTER_DEPTH): Add macro.
2382 (tree_decl): Add pointer_depth member.
2383
2384 Wed May 3 22:52:53 2000 Denis Chertykov <denisc@overta.ru>
2385
2386 * config/avr/avr-protos.h (test_hard_reg_class): Declared.
2387 * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
2388 (lshrhi3_out): Likewise.
2389 (ashrsi3_out): bugfix in shift by 8.
2390 (test_hard_reg_class): New function.
2391 * config/avr/avr.md: Bugfix inside conditions in peepholes.
2392 (ashlhi3): removed define_expand of this pattern.
2393 (*ashlhi3_insn): renamed to ashlhi3.
2394 (ashlsi3): removed define_expand of this pattern.
2395 (*ashlsi3_insn): renamed to ashlsi3.
2396 (ashrqi3): removed define_expand of this pattern.
2397 (*ashrqi3_insn): renamed to ashrqi3.
2398 (ashrhi3): removed define_expand of this pattern.
2399 (*ashrhi3_insn): renamed to ashrhi3.
2400 (ashrsi3): removed define_expand of this pattern.
2401 (*ashrsi3_insn): renamed to ashrsi3.
2402 (lshrhi3): removed define_expand of this pattern.
2403 (*lshrhi3_insn): renamed to lshrhi3.
2404 (lshrsi3): removed define_expand of this pattern.
2405 (*lshrsi3_insn): renamed to lshrsi3.
2406
2407 2000-05-03 Rodney Brown <RodneyBrown@pmsc.com>
2408
2409 * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
2410 inclusion of "system.h".
2411
2412 Wed May 3 11:43:53 2000 Jim Wilson <wilson@cygnus.com>
2413
2414 * config/ia64/ia64.c (ia64_encode_section_info): Add check for
2415 TREE_ASM_WRITTEN.
2416
2417 2000-05-03 David Mosberger <davidm@hpl.hp.com>
2418
2419 * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
2420 if -mauto-pic is on.
2421 (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
2422 -mconstant-gp is in effect and function-descriptors are being used
2423 to make indirect calls.
2424 * config/ia64/ia64.h (MASK_CONST_GP): New macro.
2425 (MASK_AUTO_PIC): Ditto.
2426 (TARGET_CONST_GP): Ditto.
2427 (TARGET_AUTO_PIC): Ditto.
2428 (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
2429 (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
2430 -mno-pic is in effect.
2431 (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
2432 * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
2433 -mauto-pic is in effect.
2434 (gprel64_offset): New pattern.
2435 (load_gprel64): Ditto.
2436 (call): Handle -mauto-pic like -mno-pic (don't use fptr). If
2437 -mconstant-gp is in effect, no need to preserve gp around direct
2438 calls.
2439 (call_value): Ditto.
2440 * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
2441 (FUNCTION_PROFILER): Define.
2442 * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
2443 @fptr() directive when -mno-pic or -mauto-pic is in effect.
2444 (ASM_OUTPUT_DESTRUCTOR): Ditto.
2445
2446 2000-05-03 Richard Henderson <rth@cygnus.com>
2447
2448 * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
2449 (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
2450 (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
2451 (mklibgcc, libgcc.mk): New targets.
2452 (libgcc.a): Use libgcc.mk.
2453 (stmp-multilib): Likewise.
2454 (stmp-multilib-sub): Remove.
2455 (mostlyclean): Don't delete libgcc2 temp files.
2456 * configure.in (AC_PROG_CC_C_O): Add.
2457 (NO_MINUS_C_MINUS_O): Substitute it.
2458 (all_outputs): Add mklibgcc.
2459 * mklibgcc.in: New file.
2460
2461 2000-05-03 Jason Merrill <jason@casey.cygnus.com>
2462
2463 * cppexp.c (op_t): Make an int.
2464
2465 * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
2466
2467 * varasm.c (initializer_constant_valid_p): Fix parenthesis.
2468
2469 * gensupport.c (process_rtx): Fix macros used.
2470
2471 2000-05-03 Richard Henderson <rth@cygnus.com>
2472
2473 * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
2474 call-clobbered registers of a call.
2475
2476 Wed May 3 12:40:53 2000 Clinton Popetz <cpopetz@cygnus.com>
2477
2478 * gensupport.c: New file.
2479 * gensupport.h: New file.
2480 * Makefile.in (HOST_RTL): Depend on gensupport.
2481 (gensupport.o) New rule.
2482 * genattr.c: Use gensupport for reading .md files.
2483 * genattrtab.c: Ditto.
2484 * gencodes.c: Ditto.
2485 * genconfig.c: Ditto.
2486 * genemit.c: Ditto.
2487 * genextract.c: Ditto.
2488 * genflags.c: Ditto.
2489 * genopinit.c: Ditto.
2490 * genoutput.c: Ditto.
2491 * genpeep.c: Ditto.
2492 * genrecog.c: Ditto.
2493 * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
2494 * md.texi (Insn Splitting): Document define_insn_and_split.
2495
2496 Tue May 2 00:20:30 2000 Jason Eckhardt <jle@cygnus.com>
2497
2498 * flow.c (verify_flow_info): Added two more sanity checks. The
2499 first checks that the blocks are numbered consecutively. The second
2500 checks that n_basic_blocks is actually equal to the number of
2501 basic blocks in the insn chain.
2502
2503 2000-05-03 Zack Weinberg <zack@wolery.cumb.org>
2504
2505 * cpplib.h: Add accessor macros for token lists.
2506 * cpplib.c, cpphash.c, cpplex.c: Use them.
2507
2508 Wed May 3 09:29:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2509
2510 * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
2511 memory usage if not in a function.
2512 * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
2513 return address if static.
2514
2515 Wed May 3 13:14:49 MET DST 2000 Jan Hubicka <jh@suse.cz>
2516
2517 * ifcvt.c (noce_try_cmove_arith): Use may_trap_p to thest
2518 whether address may trap.
2519
2520 Tue May 2 23:38:37 2000 Jason Eckhardt <jle@cygnus.com>
2521
2522 * bb-reorder (chain_reorder_blocks): Changed code to test for
2523 EDGE_FALLTHRU rather than making erroneous assumption that the
2524 first outgoing edge is the fall-through edge.
2525
2526 Tue May 2 18:20:31 2000 Donald Lindsay <dlindsay@hound.cygnus.com>
2527
2528 * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
2529 ABI for varargs, across all MIPS. This is incompatible because the
2530 va_list (__builtin_va_list) structure is different, so a compilation
2531 unit passing a va_list and a compilation unit being passed one, should
2532 both be compiled with the same ABI. (The old structure had two
2533 pointers, now it has three.)
2534
2535 Tue May 2 19:18:43 2000 Jason Eckhardt <jle@cygnus.com>
2536
2537 * bb-reorder.c (struct reorder_block_def): Remove members end,
2538 block_begin, and block_end.
2539 (REORDER_BLOCK_OLD_END): Delete.
2540 (REORDER_BLOCK_BEGIN): Delete.
2541 (REORDER_BLOCK_END): Delete.
2542 (chain_reorder_blocks): Remove dead code.
2543
2544 Tue May 2 17:06:53 2000 Jason Eckhardt <jle@cygnus.com>
2545
2546 * bb-reorder.c (remove_scope_notes): Check for both types of scope
2547 notes as the end of a basic block before deleting.
2548
2549 2000-05-02 Mumit Khan <khan@xraylith.wisc.edu>
2550
2551 * final.c (final_start_function): Fix spelling of "necessary".
2552
2553 2000-05-02 Jason Merrill <jason@casey.cygnus.com>
2554
2555 * toplev.c (debug_ignore_block): Return int.
2556 * dwarf2out.c (dwarf2out_ignore_block): Likewise.
2557 * toplev.h, dwarf2out.h: Adjust.
2558 * emit-rtl.c (remove_unnecessary_notes): Test return value.
2559
2560 * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
2561 * toplev.c, final.c, rtl.h: Adjust.
2562
2563 2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
2564
2565 * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
2566 * configure.in: Look for makeinfo in the unified tree, then
2567 for a system makeinfo which is sufficiently new.
2568 * Makefile.in: If configure says makeinfo is too old, don't
2569 build or install Info documentation.
2570
2571 2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
2572
2573 * cpphash.c (collect_params): Fix off-by-one error.
2574 (dump_hash_helper): Dump all four macro nodetypes.
2575
2576 2000-05-02 Jakub Jelinek <jakub@redhat.com>
2577
2578 * cpphash.c (trad_stringify): Adjust p after stringification as
2579 well.
2580
2581 2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
2582
2583 * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
2584 (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
2585
2586 * cppfiles.c (file_cleanup): Delete.
2587 * cpphash.c (macro_cleanup): Delete.
2588 (collect_objlike_expansion, collect_funlike_expansion,
2589 macarg, scan_arguments): Remove CPP_POP case.
2590
2591 * cpplex.c (null_cleanup): Delete.
2592 (cpp_pop_buffer): Do the work that was done in the cleanups
2593 here. Call _cpp_unwind_if_stack from here.
2594 (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
2595 cpp_scan_buffer): Run until we see CPP_EOF and the top of
2596 stack is the buffer _below_ the one we stacked.
2597 (cpp_get_token): Always pop an exhausted buffer. Return
2598 CPP_EOF unless it's a macro buffer. Don't call _cpp_handle_eof.
2599 * cpplib.c (skip_if_group): Don't call cpp_get_token to
2600 increment the line number.
2601 (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
2602
2603 * fix-header.c (read_scan_file) [parsing getchar()]: Run until
2604 we see CPP_EOF and the top of stack is the buffer _below_ the
2605 one we stacked.
2606 * scan-decls.c: Likewise.
2607
2608 2000-05-02 Andrew Haley <aph@cygnus.com>
2609
2610 * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
2611 where this function is called for the second time on a decl that
2612 has had its section info changed in such a way as to move it out
2613 of small data/bss.
2614 * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
2615
2616 2000-05-01 Richard Henderson <rth@cygnus.com>
2617
2618 * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
2619 the sequence we're moving, not to merge_bb->head.
2620
2621 2000-05-01 Richard Henderson <rth@cygnus.com>
2622
2623 * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
2624 reference to alpha/t-linux.
2625 (alpha*-*-linux-gnu*): Likewise.
2626 * configure: Rebuild.
2627
2628 * calls.c (expand_call): Don't emit reg notes for a sibcall.
2629
2630 * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
2631 if not in SSA form.
2632
2633 * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
2634
2635 2000-05-01 Jason Merrill <jason@casey.cygnus.com>
2636
2637 * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
2638 TREE_THIS_VOLATILE.
2639
2640 2000-05-01 Richard Henderson <rth@cygnus.com>
2641
2642 * ifcvt.c (noce_emit_cmove): Conditionally compile call to
2643 emit_conditional_move.
2644
2645 2000-05-01 Jakub Jelinek <jakub@redhat.com>
2646
2647 * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
2648 as the dynamic linker.
2649
2650 2000-05-01 Zack Weinberg <zack@wolery.cumb.org>
2651
2652 * cppfiles.c (open_include_file): Open file in blocking mode.
2653 (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
2654 Only exclude block devices and directories.
2655
2656 * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
2657 static. Allocate the hashnode and its string in the same
2658 block of memory.
2659 (del_HASHNODE): Don't free h->name.
2660 (_cpp_lookup): If there is no entry for this string, create
2661 one, of type T_VOID.
2662 (_cpp_lookup_slot): Delete.
2663 * cpphash.h: Update prototypes.
2664
2665 * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
2666 not hp == NULL.
2667 * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
2668 do_unassert, cpp_defined): Use _cpp_lookup. Don't create a
2669 node here, just fill in the value field properly. "Delete"
2670 entries by setting the value field to T_VOID. Check for
2671 hp->type == T_VOID, not hp == NULL.
2672
2673 * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
2674 * cpperror.c, cppexp.c, cpplex.c, cpplib.c: Don't include
2675 hashtab.h.
2676
2677 2000-05-01 Alexandre Oliva <aoliva@cygnus.com>
2678
2679 * config/mn10300/mn10300.c (print_operand_address): Do not add
2680 zero to SP.
2681
2682 * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
2683 adjusted by less than 256 bytes, use ret regardless of having any
2684 callee-saved register to restore.
2685
2686 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
2687
2688 * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
2689
2690 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
2691
2692 * config/i386/djgpp.h (INT_ASM_OP): Define.
2693 (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
2694 (ASM_WEAKEN_LABEL): Define.
2695 (MASK_BNU210): Define.
2696 (SUBTARGET_SWITCHES): Define.
2697 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
2698 (MAKE_DECL_ONE_ONLY): Define.
2699 (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
2700
2701 2000-05-01 Mumit Khan <khan@xraylith.wisc.edu>
2702
2703 * i386/cygwin.h (INT_ASM_OP): Define.
2704
2705 Mon May 1 18:20:06 2000 Denis Chertykov <denisc@overta.ru>
2706
2707 * config/avr/avr.c (address_cost): renamed to avr_address_cost.
2708 * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
2709
2710 Mon May 1 17:50:44 2000 Denis Chertykov <denisc@overta.ru>
2711
2712 * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
2713 __tmp_reg__ and __zero_reg__ initialization.
2714
2715 2000-04-30 Richard Henderson <rth@cygnus.com>
2716
2717 * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
2718
2719 * ifcvt.c (noce_process_if_block): Fail the conversion if X is
2720 referenced bewteen the condition and the jump. Don't delete
2721 anything but the jump.
2722
2723 Sun Apr 30 22:48:24 2000 Jason Eckhardt <jle@cygnus.com>
2724
2725 * bb-reorder.c (scope_def): New struct.
2726 (scope_forest_info): New struct.
2727 (struct reorder_block_def): New member "scope".
2728 (REORDER_BLOCK_SCOPE): New macro.
2729 (relate_bbs_with_scopes): New function and prototype.
2730 (make_new_scope): Likewise.
2731 (build_scope_forest): Likewise.
2732 (remove_scope_notes): Likewise.
2733 (insert_intra_1): Likewise.
2734 (insert_intra_bb_scope_notes): Likewise.
2735 (insert_inter_bb_scope_notes): Likewise.
2736 (rebuild_scope_notes): Likewise.
2737 (free_scope_forest_1): Likewise.
2738 (free_scope_forest): Likewise.
2739 (dump_scope_forest): Likewise.
2740 (dump_scope_forest_1): Likewise.
2741 (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
2742 Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
2743 block.
2744 (reorder_basic_blocks): Added calls to build_scope_scope_forest
2745 and remove_scope_notes before reordering is done. Added calls to
2746 rebuild_scope_notes, free_scope_forest, and reorder_blocks after
2747 after reordering is done.
2748
2749 2000-40-30 Bruce Korb <bkorb@gnu.org>
2750
2751 * fixinc/inclhack.def: Added definitions needed by OSR5,
2752 removed two stale entries (defined away with OLD_CPP).
2753 * fixinc/inclhack.sh: regen
2754 * fixinc/fixincl.x: regen
2755
2756 2000-04-30 Richard Henderson <rth@cygnus.com>
2757
2758 * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
2759 from the last insn in the sequence.
2760
2761 2000-04-30 Zack Weinberg <zack@wolery.cumb.org>
2762
2763 * cpplex.c (cpp_idcmp): New function.
2764 * cpplib.h: Prototype it.
2765 * scan_decls.c (scan_decls): Use it to inspect token names.
2766 * fix-header.c (read_scan_file): Likewise. Set system_header_p on
2767 the file being run through the preprocessor.
2768 (check_macro_names): Provide length of token to cpp_defined.
2769
2770 * Makefile.in: Remove stale warning message.
2771
2772 * cppfiles.c (redundant_include_p): Provide length of token to
2773 cpp_defined.
2774 * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
2775 values are unsigned int.
2776 (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
2777 (_cpp_lookup_slot): Do not calculate the hash, either.
2778 * cpphash.h: Update prototypes.
2779 * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
2780 Hashes are unsigned int. Calculate hash here, pass by value
2781 to _cpp_lookup_slot.
2782
2783 2000-04-30 Bernd Schmidt <bernds@cygnus.co.uk>
2784
2785 * simplify-rtx.c (check_value_useless): Delete function.
2786 (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
2787 by hand.
2788 (cselib_invalidate_regno): Likewise.
2789 (cselib_invalidate_mem_1): Likewise.
2790 (references_value_p): Recognize useless values by the fact that they
2791 have no locations.
2792 (discard_useless_values): Likewise.
2793 (cselib_record_set): This may turn a useless value
2794 into a useful one.
2795
2796 2000-04-30 Richard Henderson <rth@cygnus.com>
2797
2798 * config/d30v: New port.
2799
2800 * configure.in (d30v-*): Set fp format.
2801 * configure: Rebuild.
2802
2803 2000-04-30 Richard Henderson <rth@cygnus.com>
2804
2805 * ifcvt.c: New file.
2806 * Makefile.in (OBJS): Add it.
2807 (ifcvt.o): New target.
2808 * jump.c (jump_optimize_1): Remove all code related to if-conversion,
2809 and conditional arithmetic.
2810 (find_insert_position): Remove.
2811 * timevar.def (TV_IFCVT, TV_IFCVT2): New.
2812 * toplev.c (DFI_ce, DFI_ce2): New.
2813 (dump_file): Add ce and ce2 dumps.
2814 (rest_of_compilation): Run if_convert a couple o times. Set
2815 cse_not_expected after cse2. Don't set no_new_pseudos until
2816 after sched1 or recompute_reg_usage.
2817
2818 2000-04-30 Richard Henderson <rth@cygnus.com>
2819
2820 * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
2821 (crtend.o, crtbeginS.o, crtendS.o): Likewise.
2822
2823 2000-04-30 Richard Henderson <rth@cygnus.com>
2824
2825 * flow.c (struct reg_cond_life_info): New.
2826 (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
2827 (init_propagate_block_info): Initialize them.
2828 (free_propagate_block_info): Destruct them.
2829 (mark_set_1): Consider conditional life before killing a register.
2830 (mark_regno_cond_dead): New.
2831 (free_reg_cond_life_info): New.
2832 (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
2833 (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
2834 (mark_used_reg): Record conditional life.
2835
2836 * haifa-sched.c (schedule_insns): Disable death counting
2837 sanity check for HAVE_conditional_execution.
2838
2839 2000-04-30 Richard Henderson <rth@cygnus.com>
2840
2841 * Makefile.in (TIMEVAR_H): New.
2842 (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
2843 (timevar.h): Remove rule.
2844
2845 2000-04-29 Richard Henderson <rth@cygnus.com>
2846
2847 * config/alpha/crtend.asm: Use C comments instead of #.
2848 * config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden.
2849
2850 * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
2851
2852 2000-04-29 Zack Weinberg <zack@wolery.cumb.org>
2853
2854 * cpphash.h (enum node_type: Take out T_MCONST.
2855 (union hashval): Move into struct hashnode.
2856 (struct hashnode): Pack tighter. Remove file, line, col
2857 members.
2858 * cpphash.c: Constify most of the macro-definition structures.
2859 (struct definition): Replace by struct object_defn
2860 and struct funct_defn. Put file, line, column information
2861 here. All users updated to match.
2862 (_cpp_create_definition, _cpp_macroexpand): Remove special
2863 case for #define WORD OTHERWORD.
2864 * cpplib.c (do_undef): Remove T_MCONST case.
2865
2866 * cpphash.h: Move struct reflist, struct definition, and the
2867 DEFINITION typedef to cpphash.c. Use 'struct definition *' in
2868 union hashval. _cpp_free_definition takes a HASHNODE pointer.
2869 * cpphash.c (_cpp_free_definition): Free data pointed to by
2870 MCONST, XCONST, MACRO, and FMACRO nodes properly.
2871 (_cpp_create_definition, del_HASHNODE): Just call
2872 _cpp_free_definition to clear out a hashnode.
2873 * cpplib.c (do_pragma_poison): Likewise.
2874
2875 Sat Apr 29 12:25:17 2000 Alexandre Oliva <aoliva@cygnus.com>
2876
2877 * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
2878 LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
2879 FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
2880 (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
2881 (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
2882 REGNO_AM33_P): Redefine in terms of the new macros.
2883 (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
2884 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
2885 STRUCT_VALUE): Likewise.
2886 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
2887 ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise. Moved.
2888
2889 Sat Apr 29 01:18:45 MET DST 2000 Jan Hubicka <jh@suse.cz>
2890
2891 * regmove.c (struct record_stack_memrefs_data): New.
2892 (record_stack_memrefs): New function.
2893 (combine_stack_adjustments_for_block): Use it.
2894
2895 Sat Apr 29 01:15:27 MET DST 2000 Jan Hubicka <jh@suse.cz>
2896
2897 * calls.c (calls_function_1): Propertly handle TREE_LIST expressions;
2898 use special_function_p to detect alloca.
2899
2900 Fri Apr 28 16:30:33 2000 Marc Espie <espie@cvs.openbsd.org>
2901
2902 * gcc.texi: Fixes for makeinfo 4.0 --html.
2903
2904 2000-04-28 Zack Weinberg <zack@wolery.cumb.org>
2905
2906 * pcp.h: Delete file.
2907
2908 2000-04-28 Kazu Hirata <kazu@hxi.com>
2909
2910 * h8300.c (function_epilogue): Clean up flags when the last insn
2911 in a function is a barrier.
2912
2913 2000-04-28 Chris Demetriou <cgd@sibyte.com>
2914
2915 * configure.in (sparc-hal-solaris2*): protect [] glob from
2916 my expansion.
2917 (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
2918 rather than hard-coded constants in target_cpu_default2.
2919 * configure: Regenerate.
2920
2921 2000-04-28 Jason Merrill <jason@casey.cygnus.com>
2922
2923 * tree.c (get_callee_fndecl): Extract the initial value from
2924 a readonly decl.
2925
2926 2000-04-28 Richard Henderson <rth@cygnus.com>
2927
2928 * varasm.c (record_constant_1): Record the CODE_LABEL when
2929 taking the address of a LABEL_REF.
2930
2931 2000-04-28 Richard Henderson <rth@cygnus.com>
2932 Jan Hubicka <jh@suse.cz>
2933
2934 * calls.c (combine_pending_stack_adjustment_and_call): Return the
2935 adjustment; don't do the stack adjust.
2936 (expand_call): Call compute_argument_block_size right before
2937 allocating the block; update comment; don't do alignment sanity
2938 checking for sibling call; use args_size instead of
2939 unadjusted_args_size before args_size is adjusted. Use
2940 combine_pending_stack_adjustment_and_call to compute stack adjust
2941 for must_preallocate case.
2942
2943 * expr.c (push_block): Remove shadow `temp' in inner scope.
2944
2945 2000-04-28 Jason Merrill <jason@casey.cygnus.com>
2946
2947 * toplev.c (rest_of_compilation): Call
2948 note_deferral_of_defined_inline_function even if the function
2949 can't be inlined.
2950
2951 2000-04-28 Scott Bambrough <scottb@netwinder.org>
2952
2953 * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
2954
2955 2000-04-28 Richard Henderson <rth@cygnus.com>
2956
2957 * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
2958
2959 2000-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2960
2961 * timevar.c (init_timevar): DeANSIfy function definition.
2962
2963 2000-04-27 Alex Samuel <samuel@codesourcery.com>
2964
2965 * Makefile.in (timevar.o): Depend on flags.h.
2966 * timevar.c (unused_stack_instances): New variable.
2967 (timevar_push): Take a timevar_stack_def from
2968 unused_stack_instances if available.
2969 (timevar_pop): Push the popped timevar_stack_def onto
2970 unused_stack_instances.
2971 (TIMEVAR_ENABLE): New macro.
2972 (timevar_def): Make standalone a 1-bit field. Add field used.
2973 (get_time): Rename parameter to now. Return after clearing it if
2974 not TIMEVAR_ENABLE.
2975 (init_timevar): Do nothing if not TIMEVAR_ENABLE.
2976 (timevar_pop): Likewise.
2977 (timevar_stop): Likewise.
2978 (timevar_push): Likewise. Mark the timing variable as used.
2979 (timevar_start): Likewise.
2980 (timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print
2981 timevars that were never used.
2982
2983 2000-04-27 Mark Mitchell <mark@codesourcery.com>
2984
2985 * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
2986 always TREE_READONLY.
2987
2988 2000-04-27 Ulrich Drepper <drepper@cygnus.com>
2989
2990 * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
2991 for call instruction with mode QImode.
2992
2993 2000-04-27 Alex Samuel <samuel@codesourcery.com>
2994
2995 * Makefile.in (OBJS): Add timevar.o.
2996 (toplev.o): Depend on timevar.h.
2997 (ggc-simple.o): Likewise.
2998 (ggc-page.o): Likewise.
2999 (timevar.o): New rule.
3000 (timevar.h): New rule.
3001
3002 * timevar.h: New file.
3003 * timevar.c: Likewise.
3004 * timevar.def: Likewise.
3005
3006 * toplev.h (gc_time, parse_time, varconst_time): Remove.
3007 * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
3008 throughout.
3009 (TIMEVAR): Remove macro.
3010 (gc_time, parse_time, varconst_time, integration_time, jump_time,
3011 cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
3012 flow_time, combine_time, regmove_time, sched_time,
3013 local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
3014 sched2_time, dbr_sched_time, reorder_blocks_time,
3015 rename_registers_time, shorten_branch_time, stack_reg_time,
3016 to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
3017 all_time): Remove.
3018 (compile_file): Don't initialize time variables. Call
3019 init_timevar and start TV_TOTAL timer. Call timevar_print instead
3020 of many calls to print_time.
3021 (rest_of_compilation): Add timing for reload_cse_regs.
3022 (get_run_time): Removed to timevar.c.
3023 (print_time): Likewise.
3024 (get_run_time): Implement using TV_TOTAL time variable.
3025 (print_time): Get total run time from get_run_time.
3026 * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
3027 computing elapsed time explicitly.
3028 * ggc-simple.c (ggc_collect): Likewise.
3029 (gc_time): Remove declaration.
3030
3031 2000-04-27 Mark Mitchell <mark@codesourcery.com>
3032
3033 * calls.c (combine_pending_stack_adjustment_and_call): New function.
3034 (expand_call): Use it.
3035
3036 2000-04-27 Jan Hubicka <jh@suse.cz>
3037
3038 * flow.c (mark_set_1): Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
3039 fields.
3040
3041 Thu Apr 27 12:47:00 2000 Alexandre Oliva <aoliva@cygnus.com>
3042
3043 * config/mn10300/mn10300.md (movhi): Simplify. Prefer data
3044 registers.
3045
3046 Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz>
3047
3048 * function.c (epilogue_done): Pass whole insn to record_insns.
3049
3050 Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka <jh@suse.cz>
3051
3052 * cse.c (CSE_ADDRESS_COST): Remove.
3053 (find_best_addr): Add new parameter "MODE", use address_cost instead
3054 of CSE_ADDRESS_COST
3055 (address_cost): New.
3056 (fold_rtx): Update call of find_best_addr.
3057 * rtl.h (address_cost): Declare.
3058 * loop.c (general_induction_var): Add new parameter "MODE", use
3059 address_cost instead of ADDRESS_COST
3060 (init_loop): Use address_cost instead of ADDRESS_COST.
3061 (check_insn_for_givs): Update call of general_induction_var.
3062 (find_mem_givs): Likewise.
3063 (consec_sets_giv): Likewise.
3064 * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
3065 * i386.c (ix86_address_cost): New.
3066 * i386-protos.h (ix86_address_cost): Declare.
3067
3068 Thu Apr 27 11:45:16 2000 Alexandre Oliva <aoliva@cygnus.com>
3069
3070 * config/mn10300/mn10300.md (movqi): Simplify. Prefer data
3071 registers.
3072
3073 Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka <jh@suse.cz>
3074
3075 * expr.c (store_expr): Use clear_storage instead of direct memset
3076 libcall.
3077
3078 Thu Apr 27 10:36:51 2000 Alexandre Oliva <aoliva@cygnus.com>
3079
3080 * config/mn10300/mn10300.c (mn10300_address_cost): Test
3081 ASHIFT, AND and LABEL_REF.
3082
3083 Thu Apr 27 15:08:46 MET DST 2000 Jan Hubicka <jh@suse.cz>
3084
3085 * invoke.texi (-foptimize-sibling-calls): Fix.
3086
3087 Thu Apr 27 14:54:22 MET DST 2000 Jan Hubicka <jh@suse.cz>
3088
3089 * loop.c (load_mems) Don't use hard registers for the hoisting.
3090
3091 * unroll.c (unroll_loop): Avoid overflow in the n_iterations
3092 calculation; rename const_equiv array in the preconditioning code
3093 from loop_unroll to loop_unroll_precondition
3094
3095 2000-04-27 Richard Henderson <rth@cygnus.com>
3096
3097 * flow.c (struct propagate_block_info): Remove new_dead, new_live;
3098 add new_set.
3099 (propagate_one_insn): Clear it. Don't update reg_live here.
3100 (init_propagate_block_info): Update for pbi member changes.
3101 (free_propagate_block_info): Likewise.
3102 (mark_set_1): Know that zero_extract, sign_extract, and
3103 strict_low_part don't kill their argument. Alter hard subregs.
3104 Update new_set for non-CLOBBER sets. Update reg_live.
3105 (find_auto_inc): Update reg_live, not new_dead.
3106 (mark_used_reg): Update reg_live, not new_live. Examine new_set
3107 to determine if the reg in question was set this insn. Only update
3108 reg info with PROP_REG_INFO.
3109
3110 2000-04-26 Richard Henderson <rth@cygnus.com>
3111
3112 * flow.c (allocate_reg_life_data): Set max_regno here ...
3113 (life_analysis): ... not here.
3114
3115 * flow.c (calculate_global_regs_live): Force stack pointer
3116 live at end.
3117
3118 2000-04-26 Richard Henderson <rth@cygnus.com>
3119
3120 * jump.c (redirect_exp_1): Rework from old redirect_exp. Never
3121 commit change group changes.
3122 (invert_exp_1): Similarly.
3123 (redirect_exp, invert_exp): Use them.
3124 (redirect_jump_1): New.
3125 (invert_jump_1): New.
3126 (jump_optimize_1): Remove code subsumed by condexec.c.
3127 * rtl.h (invert_jump_1, redirect_jump_1): Declare.
3128
3129 2000-04-26 Richard Henderson <rth@cygnus.com>
3130
3131 * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
3132
3133 * genconfig.c (main): Set all HAVE_foo to 1.
3134
3135 * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
3136
3137 2000-04-26 Alex Samuel <samuel@codesourcery.com>
3138
3139 * invoke.texi: Document -fssa flag.
3140
3141 2000-04-26 Richard Henderson <rth@cygnus.com>
3142
3143 * flow.c (count_reg_sets_1): Remove.
3144 (count_reg_sets, count_reg_references): Remove.
3145 (recompute_reg_usage): Implement with update_life_info.
3146 Reallocate life data.
3147
3148 2000-04-26 Richard Henderson <rth@cygnus.com>
3149
3150 * flow.c (update_life_info): Consider blocks null to mean the
3151 universal set.
3152 (calculate_global_regs_live): Likewise.
3153 (life_analysis): Do that instead of collecting all_blocks.
3154
3155 2000-04-26 Richard Henderson <rth@cygnus.com>
3156
3157 * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
3158 a still-valid conditional jump.
3159
3160 2000-04-26 Richard Henderson <rth@cygnus.com>
3161
3162 * jump.c (invert_jump): Always invert REG_BR_PROB. Do it correctly.
3163
3164 * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
3165 * flow.c (calculate_loop_depth): Remove.
3166 * output.h (calculate_loop_depth): Don't declare.
3167 * toplev.c (rest_of_compilation): Expand calculate_loop_depth
3168 inline; run estimate_probability at the same time.
3169
3170 2000-04-26 Neil Booth <NeilB@earthling.net>
3171
3172 * cpplib.h: "~=" is not a single pp-token.
3173 * cpplex.c: Correct commentary.
3174
3175 2000-04-26 Richard Henderson <rth@cygnus.com>
3176
3177 * flow.c (mark_set_1): New arguments code and flags; update all
3178 callers. Track regno_first and regno_last; do HARD_REGNO_NREGS
3179 test in one place. Tidy flags tests. Don't bias REG_N_REFS by
3180 loop_depth when optimizing for size. Do new_dead update after
3181 emitting REG_UNUSED notes. Merge mark_set_reg code.
3182 (mark_set_reg): Remove.
3183 (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
3184 arrange to not emit REG_UNUSED notes.
3185
3186 2000-04-26 Richard Henderson <rth@cygnus.com>
3187
3188 * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
3189 * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
3190
3191 2000-04-26 Richard Henderson <rth@cygnus.com>
3192
3193 * flow.c (propagate_one_insn): Break out from propagate_block.
3194 (init_propagate_block_info): Likewise.
3195 (free_propagate_block_info): Likewise.
3196 (propagate_block): Use them. Export.
3197 * basic-block.h: Declare them all.
3198
3199 2000-04-26 Richard Henderson <rth@cygnus.com>
3200
3201 * basic-block.h (life_analysis): Declare here ...
3202 * output.h: ... not here.
3203 * flow.c (life_analysis): Remove nregs parameter; replace
3204 remove_dead_code with flags. Remove ssa dead code check.
3205 Only init alias analysis if we'll use it.
3206 * reg-stack.c (reg_to_stack): Update life_analysis arguments.
3207 * ssa.c (convert_to_ssa): Likewise.
3208 (convert_from_ssa): Likewise.
3209 * toplev.c (rest_of_compilation): Likewise.
3210
3211 2000-04-26 Richard Henderson <rth@cygnus.com>
3212
3213 * flow.c (flow_delete_block): Rename from delete_block. Export.
3214 * basic-block.h (flow_delete_block): Declare.
3215
3216 2000-04-26 David S. Miller <davem@redhat.com>
3217
3218 * optabs.c (emit_libcall_block): Verify insns with INSN_P before
3219 taking a PATTERN of it.
3220
3221 2000-04-26 <NeilB@earthling.net>
3222
3223 * cpplex.c (spell_other, spell_char): Remove.
3224 (SPELL_CHAR): New.
3225 (token_spelling, trigraph_map): Use unsigned chars.
3226 (_cpp_lex_line): Tidy up the switch statement.
3227 * cpplib.h: Implement spell_char with spell_string.
3228 (C): New.
3229
3230 2000-04-26 <RodneyBrown@pmsc.com>
3231
3232 * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3233 * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3234
3235 2000-04-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3236
3237 * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
3238 reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
3239 dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
3240 dwarf2out_return_save, dwarf2out_return_reg,
3241 dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
3242 add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
3243 gen_compile_unit_die, dwarf2out_init): Constify a char*.
3244
3245 * dwarf2out.h (dwarf2out_init): Likewise.
3246
3247 * dwarfout.c (filename_entry, primary_filename, last_filename,
3248 type_tag, output_compile_unit_die, dwarfout_init): Likewise.
3249
3250 * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
3251 dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
3252 dwarf2out_return_reg): Likewise.
3253
3254 2000-04-26 Andreas Jaeger <aj@suse.de>
3255
3256 * extend.texi (Function Attributes): Fix description of pure
3257 attribute.
3258
3259 2000-04-26 Jason Merrill <jason@casey.cygnus.com>
3260
3261 * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
3262 before calling rest_of_compilation.
3263
3264 2000-04-26 Andreas Jaeger <aj@suse.de>
3265
3266 * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
3267 last patch.
3268
3269 2000-04-25 Richard Henderson <rth@cygnus.com>
3270
3271 * cse.c (cse_insn): Emit barrier after unconditional jump.
3272
3273 * calls.c (expand_call): Disable tail call generation once
3274 rtx_equal_function_value_matters is false.
3275
3276 * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
3277 like EDGE_EH edges.
3278
3279 2000-04-25 Jason Merrill <jason@casey.cygnus.com>
3280
3281 * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
3282
3283 * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
3284
3285 * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
3286 is the primary DIE for a member function.
3287 (gen_decl_die): Call set_decl_origin_self here.
3288 * dwarfout.c (output_decl): And here.
3289 * integrate.c (output_inline_function): Not here.
3290 Don't clear DECL_INLINE until after calling rest_of_compilation.
3291 (set_decl_origin_self): No longer static.
3292 * tree.h: Add prototype.
3293 * toplev.c (note_deferral_of_defined_inline_function): Only write
3294 out abstract instance for actual inlines.
3295
3296 2000-04-25 Alexandre Oliva <aoliva@cygnus.com>
3297
3298 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
3299 EXTENDED_REGS only if TARGET_AM33.
3300 * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
3301 SP_REGS to register allocation and reloading unless absolutely
3302 necessary.
3303 (movsi3): Remove special-case of adding non-constants to SP.
3304
3305 2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3306
3307 * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
3308 INCLUDES to search and does not provide any of its own. Also it
3309 now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
3310 parameters. Also it does not call AC_DEFINE.
3311 (gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls
3312 AC_DEFINE and provides for automatic entries for autoheader.
3313 (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
3314
3315 * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
3316 so we can pass -I flags and include gansidecl.h/system.h in this
3317 test.
3318
3319 * acconfig.h: Delete all NEED_DECLARATION_* entries.
3320
3321 2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3322
3323 * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3324 ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3325 ENABLE_GC_ALWAYS_COLLECT): Delete entries.
3326
3327 * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3328 ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3329 ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
3330 for these macros. Clean up spacing and linewraps.
3331
3332 2000-04-26 Jason Merrill <jason@casey.cygnus.com>
3333
3334 * calls.c (expand_call): Use get_callee_fndecl.
3335
3336 * print-tree.c (print_node): Print the chain of an _EXPR.
3337
3338 Tue Apr 25 16:16:04 2000 Andrew MacLeod <amacleod@cygnus.com>
3339 Jim Wilson <wilson@cygnus.com>
3340 Andrew Haley <aph@cygnus.com>
3341
3342 * config/ia64/crtbegin.asm: Add IA-64 unwind support. Correct alloc
3343 and gp save/restore problems.
3344 * config/ia64/crtend.asm: Add IA-64 unwind support.
3345 * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
3346 in fr_pad_size calculation.
3347 (save_restore_insns): Move PR save area. Correct uses of
3348 RTX_FRAME_RELATED_P.
3349 (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
3350 (ia64_expand_epilogue): Add eh_epilogue support.
3351 (ia64_function_prologue): Emit .prologue directive.
3352 (ia64_init_machine_status, ia64_mark_machine_status): New functions.
3353 (ia64_override_options): Set init_machine_status and
3354 mark_machine_status.
3355 (rtx_needs_barrier): Handle bsp reads and writes.
3356 (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
3357 New static variables.
3358 (process_set, process_for_unwind_directive): New functions.
3359 * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
3360 ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
3361 ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
3362 macros.
3363 (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
3364 (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
3365 (struct machine_function): Define.
3366 * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
3367
3368 2000-04-25 Bruce Korb <bkorb@gnu.org>
3369
3370 * fixinc/Makefile.in: make the removal of old programs more
3371 robust
3372 * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
3373 install-bin and install-sh
3374
3375 2000-04-25 Nick Clifton <nickc@cygnus.com>
3376
3377 * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
3378 defined, define to return zero.
3379 (function_cannot_inline_p): If a function has any target
3380 specific attributes, then use the macro
3381 FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
3382 whether it can be inlined. If it cannot, issue a suitable
3383 explanation.
3384
3385 * tm.texi: Add a new node 'Inlining' to document the new macro
3386 FUNCTION_ATTRIBUTE_INLINABLE_P.
3387
3388 2000-04-25 Zack Weinberg <zack@wolery.cumb.org>
3389
3390 * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
3391 commentary.
3392
3393 2000-04-25 Neil Booth <NeilB@earthling.net>
3394
3395 Restore previous patch, plus the following fixes:
3396
3397 * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
3398 flags, not CPP_OPEN_PAREN.
3399 * cpplex.c (expand_token_space, init_token_list,
3400 cpp_free_token_list): Put the dummy token at list->tokens[-1].
3401 (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
3402
3403 Tue Apr 25 14:06:40 2000 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
3404
3405 * config/i386/freebsd.h (INT_ASM_OP): Define.
3406
3407 Tue Apr 25 14:51:07 MET DST 2000 Jan Hubicka <jh@suse.cz>
3408
3409 * loop.c (strength_reduce): Fix typo in the last checkin.
3410
3411 Tue Apr 25 07:33:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3412
3413 * stor-layout.c (finalize_record_size): Simplify to use existing
3414 functions.
3415 (compute_record_mode): No longer static.
3416 * tree.h (compute_record_mode): New declaration.
3417
3418 2000-04-25 Neil Booth <NeilB@earthling.net>
3419
3420 * Revert my patch below until cause of build failures
3421 determined.
3422
3423 2000-04-25 Richard Henderson <rth@cygnus.com>
3424
3425 * combine.c (combine_instructions): Add missing argument
3426 to try_combine.
3427
3428 * toplev.c (rest_of_compilation): Delay sibcall optimization
3429 until after emit_eh_context.
3430
3431 2000-04-24 Nick Clifton <nickc@redhat.com>
3432
3433 * combine.c (combine_instructions): Do not try to combine a
3434 sequence of insns when the second insn has been replaced by a
3435 note.
3436
3437 Mon Apr 24 17:34:18 2000 Mumit Khan <khan@xraylith.wisc.edu>
3438
3439 * gcc.c (load_specs): New static function.
3440 (read_specs): Use it.
3441
3442 * gcc.c (lookup_compiler): Make multiple passes for case
3443 insensitive filesystems.
3444
3445 2000-04-24 Neil Booth <NeilB@earthling.net>
3446
3447 * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
3448 * cpphash.h (_cpp_check_directive): new.
3449 * cpplex.c (handle_newline, cpp_free_token_list,
3450 init_trigraph_map, trigraph_ok, trigraph_replace,
3451 backslash_start, skip_block_comment, skip_line_comment,
3452 skip_whitespace, parse_name, parse_number, parse_string,
3453 copy_comment, _cpp_lex_line, spell_char, spell_string,
3454 spell_comment, spell_name, spell_other, _cpp_lex_file,
3455 _cpp_output_list): new.
3456 (expand_name_space): take length argument.
3457 (init_token_list): add comment list initialisation.
3458 (cpp_scan_line): use auto_expand_name_space. PREV_WHITESPACE
3459 instead of HSPACE_BEFORE.
3460
3461 * cpplib.c (_cpp_check_directive): new
3462 * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
3463 DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
3464 (HSPACE_BEFORE): delete.
3465 (TTYPE_TABLE): rearrange.
3466 (struct cpp_toklist): update.
3467
3468 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3469
3470 * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
3471 gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
3472 argument form of AC_DEFINE.
3473
3474 * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
3475 HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
3476 WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
3477 HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
3478 HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
3479
3480 * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
3481
3482 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3483
3484 * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
3485 deduced.h): Use -isystem, not -I, for including system headers.
3486
3487 2000-04-24 Nick Clifton <nickc@cygnus.com>
3488
3489 * config/fr30/fr30.md (addsi3): Do not use small add instruction if
3490 the source register is the frame pointer or arg pointer.
3491 (addsi3_small_int): Disallow if source register is the frame
3492 pointer or arg pointer.
3493
3494 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3495
3496 * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
3497 call to AC_MSG_RESULT.
3498
3499 2000-04-24 Martin v. Löwis <loewis@informatik.hu-berlin.de>
3500
3501 * invoke.texi: Correct grammatical errors, document
3502 -fno-gnu-keywords as identical to -fno-asm for C++.
3503
3504 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3505
3506 * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
3507 GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
3508 GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
3509 AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
3510 EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
3511
3512 * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
3513 GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
3514 GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
3515 GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
3516 new macros names.
3517
3518 2000-04-24 Mumit Khan <khan@xraylith.wisc.edu>
3519
3520 * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
3521 (pop_alignment): Likewise.
3522 (handle_pragma_token): Likewise.
3523
3524 2000-04-24 Robert Lipe <robertlipe@usa.net>
3525
3526 * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
3527
3528 2000-04-24 Hiroyuki Machida <machida@sm.sony.co.jp>
3529
3530 * combine.c (try_combine): Update reg_nonzero_bits of
3531 newi2pat before newpat.
3532
3533 Mon Apr 24 10:19:48 MET DST 2000 Jan Hubicka <jh@suse.cz>
3534
3535 * loop.c (strength_reduce): Simplify test to INSN_P.
3536 (record_giv): Attempt to simplify the add value, use CONSTANT_P
3537 expressions instead of CONST_INT.
3538 (express_from_1): Likewise.
3539
3540 2000-04-24 Mark Mitchell <mark@codesourcery.com>
3541
3542 * regs.h (reg_n_max): Don't declare.
3543 * flow.c (reg_n_max): Don't define.
3544 * regclass.c (renumber): Don't initialize to zero.
3545 (regno_allocated): Likewise.
3546 (reg_n_max): Define.
3547 (allocate_reg_info): Don't initialize unnecessarily.
3548
3549 Mon Apr 24 00:21:36 2000 Jeffrey A Law (law@cygnus.com)
3550
3551 * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
3552 and blockage_p in the newly allocated attribute.
3553
3554 Sun Apr 23 20:16:49 2000 Alexandre Oliva <aoliva@cygnus.com>
3555
3556 * config/mn10300/mn10300.md (addsi): `inc4' on address
3557 registers does not modify cc, but `inc' on an extended
3558 register does.
3559
3560 Sun Apr 23 16:24:35 2000 Denis Chertykov <denisc@overta.ru>
3561
3562 * reload.c (find_equiv_reg): Checks all valueno regs
3563 as a reload_reg_p regs.
3564
3565 2000-04-23 Zack Weinberg <zack@wolery.cumb.org>
3566
3567 * cpphash.c (collect_objlike_expansion): Add sanity check.
3568 (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If
3569 the buffer is the empty string, return. Mark __DATE__ and
3570 __TIME__ as XCONST nodes, not MCONST.
3571 (_cpp_macroexpand): Avoid pushing an empty buffer.
3572 (funlike_macroexpand): Don't pop token_buffer here.
3573
3574 Sun Apr 23 18:37:53 2000 Alexandre Oliva <aoliva@cygnus.com>
3575
3576 * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
3577 (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
3578 (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
3579 (REGNO_OK_FOR_BASE_P): Define in terms of them.
3580 (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
3581 (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
3582 (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
3583
3584 Sun Apr 23 22:23:08 MET DST 2000 Jan Hubicka <jh@suse.cz>
3585
3586 * loop.c (simplify_giv_expr): Be more agressive on simplifying
3587 constant MULT givs.
3588
3589 2000-04-23 Zack Weinberg <zack@wolery.cumb.org>
3590
3591 * cpphash.h (struct definition): Move file, line, col members...
3592 (struct hashnode): ... here. Also add 'disabled' flag.
3593 (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
3594 T_IDENTITY. Remove T_DISABLED.
3595 Update prototypes.
3596
3597 * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
3598 (collect_expansion): Split into collect_objlike_expansion and
3599 collect_funlike_expansion.
3600 (_cpp_macroexpand): Split out scan_arguments, stringify, and
3601 funlike_macroexpand.
3602 (_cpp_compare_defs): Rename compare_defs, make static.
3603 (_cpp_make_hashnode): Initialize hp->disabled.
3604 (macro_cleanup): Adjust for new token types. Clear
3605 m->disabled.
3606 (_cpp_create_definition): Move code here to determine what
3607 sort of macro it is, and code to check for redefinitions, from
3608 do_define. Implement a few simple cases without creating a
3609 full DEFINITION.
3610 (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
3611 Handle the simple cases.
3612 (push_macro_expansion): Set buf->has_escapes and hp->disabled
3613 here.
3614
3615 * cppinit.c (builtin_array): Change MCONST to XCONST
3616 everywhere.
3617 * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
3618 fix check for disabled and function-like macros.
3619 * cpplib.c (do_define): Move most logic to
3620 _cpp_create_definition.
3621 (do_undef): Handle new special token types.
3622
3623 Sun Apr 23 14:27:44 MET DST 2000 Jan Hubicka <jh@suse.cz>
3624
3625 * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
3626 of CONSTANT_P for mult_val; always use validate_change to update insn.
3627
3628 2000-04-22 Zack Weinberg <zack@wolery.cumb.org>
3629
3630 * cpphash.c (trad_stringify, add_pat): New functions.
3631 (collect_expansion): Restore support for -traditional syntax.
3632 Use trad_stringify and add_pat.
3633 (_cpp_macroexpand): Restore support for -traditional semantics.
3634 * cpplex.c (_cpp_scan_line): Don't change space_before if we
3635 get a COMMENT token.
3636 (_cpp_lex_token): Provide COMMENT tokens to caller if
3637 traditional and parsing_define_directive.
3638 (skip_comment): Warn about // comments if -Wtraditional.
3639 * cpplib.c (do_define): Fix typo. Create EMPTY nodes with
3640 proper node type.
3641 (do_undef): Don't warn about undefining EMPTY nodes.
3642
3643 Sat Apr 22 22:35:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
3644
3645 * loop.c (strength_reduce): Fix biv removal code.
3646
3647 2000-04-22 Richard Henderson <rth@cygnus.com>
3648
3649 * predict.c (estimate_probability): Examine both sides of
3650 a branch for no exits. Use 90% not 50% for predict taken.
3651 Reorg for one copy of note generation code.
3652
3653 2000-04-22 Richard Henderson <rth@cygnus.com>
3654
3655 * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
3656
3657 2000-04-22 Richard Henderson <rth@cygnus.com>
3658
3659 * diagnostic.c (init_output_buffer): Don't initialize format_args.
3660 (output_clear): Likewise.
3661 (output_printf): Use va_copy.
3662 (vline_wrapper_message_with_location): Likewise.
3663 (v_message_with_decl): Likewise.
3664 (line_wrapper_printf): VA_START infor buffer.format_args directly.
3665 * system.h (va_copy): Provide default implementation.
3666
3667 2000-04-22 Richard Henderson <rth@cygnus.com>
3668
3669 * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
3670 the collected condition is not a constant.
3671
3672 2000-04-22 Gabriel Dos Reis <gdr@codesourcery.com>
3673
3674 * diagnostic.h: New file.
3675
3676 * Makefile.in (diagnostic.o): Depends on diagnostic.h
3677
3678 * diagnostic.c: Tweak. Rationalize the output logic. Adjust
3679 various function prototypes.
3680 (diagnostic.h): #include.
3681 (struct output_buffer): Move into diagnostic.h.
3682 (get_output_prefix): Rename to output_get_prefix. Export.
3683 (init_output_buffer): Export. Break out. Ajust intialization.
3684 (output_space_left, output_append): Export.
3685 (output_newline): Rename to output_add_newline. Export.
3686 (output_clear): Nullify additional output_buffer fields.
3687 (output_puts): Rename to output_add_string. Export.
3688 (dump_output): Rename to output_flush_on. Export.
3689 (build_location_prefix): Constify return-type.
3690 (emit_output_prefix): Rename to output_emit_prefix. Export.
3691 (set_real_maximum_length): New function.
3692 (output_set_maximum_length): Ditto
3693 (output_clear): Ditto.
3694 (output_add_character): Ditto.
3695 (output_add_integer): Ditto.
3696 (output_add_space): Ditto.
3697 (output_format): Ditto.
3698 (output_printf): Adjust buffer initialization.
3699 (vline_wrapper_message_with_location): Ditto.
3700 (v_message_with_decl): Ditto. Adjust call to output_puts
3701 and get_output_prefix.
3702 (default_print_error_function): Adjust buffer intialization.
3703
3704 Sat Apr 22 06:45:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3705
3706 * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
3707 of VOID_TYPE.
3708
3709 Fri Apr 21 18:33:09 2000 Alexandre Oliva <aoliva@cygnus.com>
3710
3711 * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
3712 of explicit 0.
3713
3714 Fri Apr 21 18:30:00 2000 Alexandre Oliva <aoliva@cygnus.com>
3715
3716 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
3717 accurate data about SP moves.
3718
3719 Fri Apr 21 18:28:28 2000 Alexandre Oliva <aoliva@cygnus.com>
3720
3721 * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
3722 aliases to AM33 registers.
3723
3724 Fri Apr 21 18:26:17 2000 Alexandre Oliva <aoliva@cygnus.com>
3725
3726 * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
3727 to all EXTENDED bitmaps.
3728
3729 Fri Apr 21 18:17:12 2000 Alexandre Oliva <aoliva@cygnus.com>
3730
3731 * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
3732 * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
3733 * config/mn10300/mn10300.c (mn10300_address_cost): New function.
3734
3735 Fri Apr 21 18:11:56 2000 Alexandre Oliva <aoliva@cygnus.com>
3736
3737 * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
3738 the operand is not constant.
3739
3740 Fri Apr 21 14:58:29 2000 Denis Chertykov <denisc@overta.ru>
3741
3742 * reload.c (find_equiv_reg): Checks all valueno and regno regs
3743 as a call-clobbered regs.
3744
3745 Fri Apr 21 13:30:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3746
3747 * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
3748 * rtl.h: Likewise.
3749 * rtl.def: Update comment.
3750 * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
3751 * integrate.c (expand_inline_function): Likewise.
3752 * profile.c (branch_prob): Likewise.
3753 * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
3754 * print-rtl.c (print_rtx): Likewise.
3755 * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
3756 (reemit_notes): Likewise; also use enum insn_note.
3757
3758 * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
3759 (place_field): Properly compute know and actual alignment.
3760
3761 * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
3762 in proper format.
3763
3764 * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
3765 note for REG1.
3766
3767 2000-04-21 Zack Weinberg <zack@wolery.cumb.org>
3768
3769 * cpphash.c (struct arg, struct arglist): Const-ify strings.
3770 (warn_trad_stringify, duplicate_arg_p): New helper functions.
3771 (collect_expansion): Rewrite to scan over a token list.
3772 Remove -traditional support.
3773 (collect_formal_parameters): Rename to collect_params; rewrite
3774 to scan over a token list.
3775 (_cpp_create_definition): Adjust to scan a token list.
3776 (_cpp_macroexpand): Remove -traditional support.
3777 (_cpp_compare_defs): Whitespace is now canonicalized.
3778 (comp_def_part): Delete function.
3779
3780 * cpphash.h: Update prototypes.
3781 * cpplex.c (init_token_list): Don't set lineno if there is no
3782 buffer.
3783 (pedantic_whitespace): New function.
3784 (_cpp_scan_line): Mark tokens that had hspace before. Don't
3785 consume a newline. Use pedantic_whitespace.
3786 (_cpp_lex_token): Remove support for -traditional macros.
3787 (_cpp_get_define_token): Delete.
3788 (_cpp_get_directive_token): Do the real work here. Use
3789 pedantic_whitespace.
3790 (_cpp_init_input_buffer): Initialize pfile->directbuf.
3791
3792 * cpplib.c (get_macro_name): Delete.
3793 (do_define): Read the entire line into pfile->directbuf, then
3794 feed the token list to _cpp_create_definition.
3795 * cpplib.h (HSPACE_BEFORE): new define.
3796 (struct cpp_reader): Add a toklist member, "directbuf".
3797
3798 * predict.c (estimate_probability): New heuristic: if a jump
3799 branches around a block with no successors, predict it taken.
3800 Disentangle control flow.
3801
3802 2000-04-20 Richard Henderson <rth@cygnus.com>
3803
3804 * loop.c (emit_iv_add_mult): Revert last change.
3805
3806 2000-04-20 Zack Weinberg <zack@wolery.cumb.org>
3807
3808 * cpplib.h (enum cpp_ttype): Add token types for all
3809 punctuators. Distinguish pp-numbers from valid C numbers.
3810 Give some tokens better names. Initialize from macro.
3811 (struct cpp_name, cpp_token, cpp_toklist): New data
3812 structures.
3813 Update prototypes.
3814 * cpplex.c (bump_column, expand_name_space,
3815 expand_token_space, init_token_list, cpp_output_list,
3816 _cpp_scan_line): New functions.
3817 (output_line_command): Add third argument, new line number.
3818 * cpphash.h: Update prototypes.
3819 * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
3820 token names.
3821
3822 2000-04-20 Richard Henderson <rth@cygnus.com>
3823
3824 * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
3825
3826 2000-04-20 Zack Weinberg <zack@wolery.cumb.org>
3827
3828 * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
3829 object pointed to.
3830
3831 Thu Apr 20 14:19:18 MET DST 2000 Jan Hubicka <jh@suse.cz>
3832
3833 * loop.c (emit_iv_add_mult): Simplify it's input and emit
3834 REG_EQUAL note explaining the calculated value.
3835
3836 * calls.c (expand_call): Avoid unnecesary precalculation
3837 and outgoing parameters space guarding for sibling calls.
3838 (store_one_arg): Likewise.
3839
3840 Thu Apr 20 08:01:07 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3841
3842 * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
3843 (rest_of_compilation): Write sibling dump file and account
3844 for time as jump time.
3845 * invoke.texi: Update documentation on dump flags.
3846
3847 2000-04-19 Marek Michalkiewicz <marekm@linux.org.pl>
3848
3849 * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
3850
3851 2000-04-19 Zack Weinberg <zack@wolery.cumb.org>
3852
3853 * cpphash.c (special_symbol): Represent an empty macro with
3854 "\r \r " not just "\r ".
3855 (_cpp_macroexpand): Correct condition for the foo ( ) special
3856 case.
3857 (unsafe_chars): Handle EOF as second argument.
3858 (push_macro_expansion): Simplify test for removing escape at
3859 end. Do not trim both escapes if there is no text in between.
3860
3861 2000-04-19 Jim Blandy <jimb@redhat.com>
3862
3863 * dwarf2out.c (DWARF2_ADDR_SIZE): New macro. Use it instead
3864 of PTR_SIZE, when appropriate.
3865
3866 2000-04-19 Mark Mitchell <mark@codesourcery.com>
3867
3868 * system.h (ONLY_INT_FIELDS): Make sure it is defined.
3869 (USE_ENUM_BITFIELDS): Fix typo.
3870
3871 Wed Apr 19 12:14:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3872
3873 * stor-layout.c (place_field): Set rli->offset_align properly.
3874
3875 2000-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3876
3877 * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
3878 INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
3879 PARM_BOUNDARY): Remove unnecessary casts.
3880
3881 Wed Apr 19 12:02:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
3882
3883 * calls.c (precompute_arguments): Remove must_preallocate and
3884 args_size calls.
3885 (expand_call): Update call of precompute_arguments.
3886
3887 * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
3888 check_insn_for_givs): Break out from ...
3889 (strength_reduce) ... here; use for_every_insn_in_loop to call
3890 check_insn_for_givs.
3891 * loop.h (for_every_insn_in_loop): Declare.
3892 (loop_insn_callback): New type.
3893
3894 2000-04-18 Zack Weinberg <zack@wolery.cumb.org>
3895
3896 * cpplib.c (do_pragma_poison): Strings in the token buffer are
3897 not nul-terminated.
3898
3899 Tue Apr 18 16:04:12 2000 Jim Wilson <wilson@cygnus.com>
3900
3901 * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
3902 flag_pic and RELOC.
3903
3904 2000-04-18 Zack Weinberg <zack@wolery.cumb.org>
3905
3906 * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
3907
3908 * configure.in: Delete --disable-cpplib option and all
3909 references to cpp_main.
3910 * configure: Regenerate.
3911 * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
3912 @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
3913 cccp.o, cccp, or cppmain. Link cppmain.o straight to
3914 cpp$(exeext). Add --no-headers to makeinfo command line when
3915 generating INSTALL. Install and uninstall cpp.1 manpage, not
3916 cccp.1.
3917 * install.texi: Delete all references to cexp.y/cexp.c.
3918 Delete ancient instructions for compiling GCC on 3b1.
3919 * INSTALL: Regenerate.
3920
3921 * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
3922 mips/t-elf, mips/t-r3900: Remove references to cccp.c.
3923 * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
3924 cexp.c/cexp.y.
3925 * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
3926 which is no longer tested anywhere.
3927
3928 * cppinit.c (handle_option): Don't run error message through
3929 gettext twice.
3930
3931 Tue Apr 18 14:16:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3932
3933 * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
3934 * cpperror.c (hashtab.h): Now include.
3935 * cppexp.c (hashtab.h): Likewise.
3936 * cpplex.c (hashtab.h): Likewise.
3937 * cppfiles.c (hashtab.h): Likewise.
3938 (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
3939 to htab_find_slot_with_hash.
3940 * cpphash.c (hashtab.h): Now include.
3941 (_cpp_lookup_slot): INSERT is now enum insert_option.
3942 * cpphash.h (_cpp_lookup_slot): Likewise.
3943 * cppinit.c (hashtab.h): Include earlier.
3944 (initialize_builtins): Pass enum to htab_find_slot.
3945 * cpplib.c (hashtab.h): Now include.
3946 (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
3947 (do_pragma_poison, do_assert): Likewise.
3948 * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
3949 htab_find_slot_with_hash.
3950 * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
3951 * tree.c (type_hash_add): Likewise.
3952 (build1): Minor cleanup.
3953
3954 * ggc-common.c: Add missing blanks.
3955 * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
3956 * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
3957
3958 * stmt.c (mark_case_node): New function.
3959 (mark_case_nesting): Call it.
3960
3961 * expmed.c (emit_store_flag): If comparing two-word integer
3962 with zero, can optimize NE, EQ, GE, and LT.
3963
3964 * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
3965 * conflict.c: Minor cleanups.
3966 * optabs.c: Add blank line
3967 * simplify-rtx.c: Minor cleanups.
3968
3969 2000-04-18 Stan Cox <scox@cygnus.com>
3970
3971 * gengenrtl.c (genlegend): Fix misspelling.
3972
3973 2000-04-18 Robert Lipe <robertlipe@usa.net>
3974
3975 * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added. Check that
3976 bitfields of the host compiler are not signed quantities.
3977 * config.in: Regenerate.
3978 * configure: Regenerate.
3979 * system.h (USE_ENUM_BITFIELDS): Added.
3980 (ENUM_BITFIELDS): Added.
3981 * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
3982 (SHORT_ENUM_BUG): Deleted.
3983 * tree.h (tree_common): Members `code', `mode', `built_in_class',
3984 now ENUM_BITFIELD.
3985 * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
3986 (CODE_FIELD_BUG): Likewise.
3987 * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
3988 (OLD_CC): Likewise.
3989 * config/m68k/x-ccur (X_CFLAGS): Likewise.
3990
3991 2000-04-18 Mark Mitchell <mark@codesourcery.com>
3992
3993 * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
3994 mark is active.
3995
3996 2000-04-17 Zack Weinberg <zack@wolery.cumb.org>
3997
3998 * cppexp.c (lex): Don't assume tokens are NUL terminated.
3999 * cpplib.c (do_include, do_import, do_include_next,
4000 read_line_number, detect_if_not_defined): Likewise.
4001 * cpphash.c (collect_expansion): Likewise.
4002 (special_symbol, _cpp_macroexpand): Check return from
4003 cpp_file_buffer.
4004 * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
4005 macros. Delete all uses.
4006
4007 * gcc.dg/cpp-mi.c: Add two more test cases.
4008 * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
4009
4010 2000-04-17 Richard Henderson <rth@cygnus.com>
4011
4012 * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
4013 (reorder_basic_blocks): If no epilogue in rtl, force last block last.
4014
4015 2000-04-17 Mark Mitchell <mark@codesourcery.com>
4016
4017 * function.c (expand_function_start): Use hard_function_value to
4018 compute the RTL to use for DECL_RESULT.
4019
4020 Mon Apr 17 23:35:29 MET DST 2000 Jan Hubicka <jh@suse.cz>
4021
4022 * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
4023 (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4024 x86_memory_mismatch_stall): New global variables.
4025 (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
4026 alloved; fix load penalties for Athlon.
4027 * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
4028 x86_memory_mismatch_stall): Declare.
4029 (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
4030 TARGET_MEMORY_MISMATCH_STALL): New.
4031 * i386.md (athlon scheduling parameters): Fix latencies according to
4032 Athlon Optimization Manual.
4033 (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
4034 vector.
4035 (fsqrt instruction patterns): Set athlon_decode to direct.
4036 (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
4037 PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
4038 (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
4039 and TARGET_PARTIAL_REGISTER_STALL machines.
4040 (pushdf_nointeger): New pattern.
4041 (pushdf_integer): Rename from pushdf.
4042 (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
4043 (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
4044
4045 2000-04-17 Richard Henderson <rth@cygnus.com>
4046
4047 * loop.c (canonicalize_condition): Add WANT_REG argument.
4048 Stop the search if we match it.
4049 * expr.h (canonicalize_condition): Update decl.
4050 * predict.c (expected_value_to_br_prob): Use it. Track last
4051 expected value note.
4052 (find_expected_value): Remove.
4053
4054 * reorg.c (mostly_true_jump): Always use BR_PROB if present.
4055
4056 2000-04-17 Zack Weinberg <zack@wolery.cumb.org>
4057
4058 * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
4059 (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
4060 a plain file.
4061 * configure.in: Call AC_FUNC_MMAP_FILE.
4062 * configure: Regenerate.
4063 * config.in: Regenerate.
4064
4065 * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
4066 * fixinc/fixincl.c: Likewise.
4067
4068 2000-04-17 Richard Henderson <rth@cygnus.com>
4069
4070 * builtins.c (expand_builtin_expect): New.
4071 (expand_builtin): Call it.
4072 * builtins.def (BUILT_IN_EXPECT): New.
4073 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
4074 * extend.texi: Document it.
4075
4076 * predict.c (expected_value_to_br_prob): New.
4077 (find_expected_value): New.
4078 * basic-block.h (expected_value_to_br_prob): Declare.
4079 * toplev.c (rest_of_compilation): Invoke it.
4080
4081 * rtl.h (NOTE_EXPECTED_VALUE): New.
4082 (NOTE_INSN_EXPECTED_VALUE): New.
4083 * rtl.c (note_insn_name): Update.
4084 * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
4085 cases; handle NOTE_INSN_EXPECTED_VALUE.
4086
4087 2000-04-17 Jakub Jelinek <jakub@redhat.com>
4088
4089 * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
4090 leaf sibcall delay slot if flag_pic.
4091 (output_sibcall): Always emit call for leaf sibcall if flag_pic.
4092
4093 2000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4094
4095 * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
4096
4097 * fixproto: If fix-header fails, exit with an error.
4098
4099 Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
4100
4101 * cse.c (struct check_depdendence_data): New.
4102 (check_dependence): New function.
4103 (invalidate): Use check_depdenence.
4104
4105 2000-04-16 Mark Mitchell <mark@codesourcery.com>
4106
4107 * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
4108 UNITS_PER_WORD is unsigned.
4109
4110 * tree.h (struct tree_common): Remove misleading comment.
4111
4112 2000-04-16 Dave Pitts <dpitts@cozx.com>
4113
4114 * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
4115 message in quotes. Otherwise, IBM's make program treats the '#' as the
4116 start of a comment and ignores the remainder of the line.
4117
4118 * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
4119 upper case.
4120 * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
4121 * cexp.y (initialize_random_junk): Likewise.
4122 * cppfiles.c (find_include_file): Cast alloca return value.
4123 * cppinit.c (initialize_standard_includes): Likewise.
4124 * cpplib.c (cpp_define, cpp_undef): Likewise.
4125 * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
4126 * final.c (output_asm_insn): Allow for holes in EBCDIC.
4127 * fold-const.c (CHARMASK): New.
4128 (real_hex_to_f): Use it.
4129 * real.c (CHARMASK): New.
4130 (etoasc, asctoeg): Use it.
4131 (asctoeg): EBCDIC lower case characters preceed upper case.
4132
4133 * i370.c (mvs_add_label): Change spacing for coding conventions.
4134 * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
4135 outputing case vectors.
4136 (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
4137 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
4138 since vector in in the data CSECT.
4139 (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
4140 * i370.md (Many patterns): Put the length in the XL directives.
4141 (movdi): Put back STM and MVC in definition.
4142 (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
4143 pattern using the TCA.
4144 * oe.h (CPP_SPEC): Added to allow trigraphs.
4145 * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
4146 not support the "long long" type.
4147
4148 2000-04-16 Mark Mitchell <mark@codesourcery.com>
4149
4150 * config/mips/mips-protos.h (mips_legitimate_address_p): New
4151 function.
4152 (mips_reg_mode_ok_for_base_p): Likewise.
4153 * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
4154 (REG_OK_FOR_INDEX_P): Define unconditionally.
4155 (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
4156 (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
4157 * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
4158 that GET_MODE_SIZE is unsigned.
4159 (mips_reg_mode_ok_for_base_p): Define.
4160 (mips_legitimate_address_p): Likewise. Adjust now
4161 that GET_MODE_SIZE is unsigned.
4162 (block_move_loop): Make the number of bytes unsigned.
4163 (expand_block_move): Likewise.
4164 (function_arg): Make the loop counter unsigned to match the
4165 boundary condition.
4166
4167 2000-04-16 Richard Henderson <rth@cygnus.com>
4168
4169 * rtl.h (enum insn_note): New enumeration. Subsume
4170 NOTE_INSN_DELETED and friends.
4171 (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
4172 * rtl.c (note_insn_name): Tweak string order.
4173
4174 2000-04-15 Zack Weinberg <zack@wolery.cumb.org>
4175
4176 * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
4177 to offset * 2.
4178
4179 * cpplex.c (output_line_command): Remove debugging prints.
4180 (cpp_output_tokens): Don't write out a zero-length buffer or
4181 try to see if it has a newline in it.
4182 (_cpp_expand_to_buffer): Copy the source buffer before pushing.
4183 (_cpp_read_and_prescan): Move shift-down of pushback bytes to
4184 the end of the loop. Use memmove. Don't read past the end of
4185 the buffer. Remove trailing newlines from error messages.
4186
4187 2004-04-16 Neil Booth <NeilB@earthling.net>
4188
4189 * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
4190 * cpplib.c: Add new syntax flags to directive table, and
4191 supporting macros.
4192
4193 2000-04-15 Ulrich Drepper <drepper@redhat.com>
4194
4195 * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
4196 using ret $N.
4197
4198 2000-04-15 David Edelsohn <edelsohn@gnu.org>
4199
4200 * toplev.c (display_help): Prefix "f" to "sched-verbose=".
4201 * haifa-sched.c: Update -fsched-verbose comments to use "=".
4202
4203 Sat Apr 15 10:59:19 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4204
4205 * Makefile.in (ggc-page.o): Now includes toplev.h.
4206 * ggc-page.c (toplev.h): Now included.
4207 (gc_time): Remove declaration.
4208 (ggc_collect): TIME now long.
4209 * toplev.c (parse_time, varasm_time, gc_time): Still global; all
4210 others static.
4211 * toplev.h (gc_time, parse_time, gc_time): New declarations.
4212
4213 * toplev.c: Make *_time variable long to reduce chance of overflow.
4214 (TIMEVAR): Likewise for `otime'.
4215 (print_time): Arg is now long; compute percentage in FP and round.
4216 * toplev.h (print_time): Arg is long.
4217
4218 * tree.c: Minor whitespace changes.
4219
4220 * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
4221 * configure: Rebuilt.
4222 * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
4223 (__fixunsxfDI): Renamed from __fixunsxfdi.
4224 (__fixunsdfDI): Renamed from __fixunsdfdi.
4225 (__fixunssfDI): Renamed from __fixunssfdi.
4226 (__floatdisf): Use proper type in REP_BIT macro.
4227 (__fixunsxfSI): Renamed from __fixunsxfsi.
4228 (__fixunsdfSI): Renamed from __fixunsdfsi.
4229 (__fixunssfSI): Renamed from __fixunssfsi.
4230 * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
4231 Change location of macros and upper-case some names as above.
4232 * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
4233 * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
4234
4235 * varasm.c (assemble_variable): Add cast to remove warning.
4236 (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
4237
4238 * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
4239 * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
4240 region number to -1.
4241
4242 2000-04-15 Richard Earnshaw (rearnsah@arm.com)
4243
4244 * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
4245 call unshare_all_rtl.
4246
4247 * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
4248
4249 Fri Apr 14 16:58:45 2000 Jim Wilson <wilson@cygnus.com>
4250
4251 * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
4252 Use .s1 not .s0 for all FP instructions.
4253
4254 2000-04-14 Zack Weinberg <zack@wolery.cumb.org>
4255
4256 * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
4257 interfaces.
4258 (safe_fwrite, output_line_command): New static functions.
4259 (cpp_expand_to_buffer): Now private to cpplib.
4260 (cpp_scan_buffer): Take a printer.
4261
4262 * cpphash.h: Update prototypes.
4263 * cpplib.h: Update prototypes.
4264 (cpp_printer): New.
4265 (cpp_buffer): Remove last_nominal_fname.
4266 (cpp_reader): Remove lineno.
4267
4268 * cppmain.c: Use a cpp_printer.
4269 * fix-header.c: No need to inhibit line commands. Call
4270 cpp_start_read with no printer.
4271
4272 * cpperror.c (cpp_notice_from_errno): Provide default name.
4273 * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
4274 (find_include_file, cpp_read_file): Use make_IHASH.
4275 (file_cleanup): Set control_macro and clear
4276 input_stack_listing_current here.
4277 (_cpp_execute_include): Don't output entering-file marker.
4278 * cpphash.c (special_symbol): Look for the line number in the
4279 buffer, not the reader.
4280 (_cpp_macroexpand): No need to disable line commands.
4281 (_cpp_dump_definition): No need to generate line commands.
4282 (dump_hash_helper): Remove excess newline from output.
4283 * cppinit.c (dump_special_to_buffer): No need to generate line
4284 commands.
4285 (cpp_printer_init): New.
4286 (cpp_start_read): Take a printer, and start it up if it's not
4287 NULL. No need to generate line commands.
4288 (cpp_finish): Expect no buffers stacked at all. Take a
4289 printer argument, and flush the output buffer if it's not
4290 NULL.
4291 * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
4292 Don't put two hashes at the beginning of an assertion.
4293 (cpp_get_token): Don't increment pfile->lineno or emit line
4294 commands here. Return EOF if there's no buffer when we get
4295 EOF.
4296 * cpplib.c (do_define, skip_if_group):
4297 No need to disable line commands.
4298 (_cpp_output_line_command): Delete function.
4299 (do_line): Don't emit line commands here, but set things up so
4300 they will be emitted if necessary. Use _cpp_fake_ihash to
4301 make unique nominal_fnames if necessary.
4302 (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
4303 with 0 for column, not -1.
4304 (_cpp_handle_eof): Don't set the control macro here. Don't
4305 clear input_stack_listing_current here. Don't emit line
4306 commands.
4307
4308 2000-04-14 Geoff Keating <geoffk@cygnus.com>
4309
4310 * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
4311 always, use the default SVR4 start address.
4312
4313 * config/rs6000/linux.h (LINK_SPEC): Don't define.
4314 (LINK_SHLIB_SPEC): Define.
4315 (LINK_START_DEFAULT_SPEC): Define.
4316 (LINK_OS_DEFAULT_SPEC): Define.
4317
4318 * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
4319
4320 * config/rs6000/eabi.asm (__eabi): Call __init rather than
4321 __do_global_ctors to handle constructors.
4322 * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
4323 (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
4324 (STARTFILE_MVME_SPEC): Likewise.
4325 (STARTFILE_SIM_SPEC): Likewise.
4326 (ENDFILE_ADS_SPEC): Use crtend.
4327 (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
4328 (ENDFILE_MVME_SPEC): Likewise.
4329 (ENDFILE_SIM_SPEC): Likewise.
4330 (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
4331 (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
4332 (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
4333 (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
4334 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
4335 (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
4336 (CRTSTUFF_T_CFLAGS_S): Define.
4337 * config/rs6000/eabi-ctors.c: Delete.
4338
4339 * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
4340 boundary.
4341 (__fini): Likewise.
4342 * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
4343 boundary.
4344 (__fini): Likewise.
4345
4346 Fri Apr 14 16:09:02 2000 Jim Wilson <wilson@cygnus.com>
4347
4348 * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
4349 plus mask size is smaller or equal to the mode size.
4350
4351 Fri Apr 14 18:07:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4352
4353 * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
4354 not yet set.
4355
4356 * expr.c (reload.h): Now included.
4357 (emit_block_move): Set volatile_ok when checking for movstr.
4358 (emit_move_1): Check for replacements in addresses in multi-word case.
4359 * Makefile.in (expr.o): Now includes reload.h.
4360
4361 * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
4362 Never have a LIBCALL end a basic block.
4363 (find_basic_blocks_1): Likewise.
4364 Reorganize CALL_INSN cases.
4365
4366 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
4367
4368 Fri Apr 14 10:54:22 2000 Jim Wilson <wilson@cygnus.com>
4369
4370 * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
4371 completers from mov.ret instruction.
4372
4373 2000-04-14 Richard Henderson <rth@cygnus.com>
4374
4375 * fold-const.c (extract_muldiv): Don't distribute and widen
4376 multiply across plus for non-sizetype unsigned types.
4377
4378 2000-04-14 Richard Henderson <rth@cygnus.com>
4379
4380 * flow.c (find_auto_inc): Don't autoinc eliminable registers.
4381 If the original source is dead in the incr insn, it's dead now.
4382
4383 Fri Apr 14 07:40:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4384
4385 * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
4386 see if DECL_BIT_FIELD needs to still be set.
4387
4388 * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
4389
4390 * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
4391 print_int_cst_octal with something that's not an INTEGER_CST.
4392
4393 * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
4394 and not a SUBREG to a FLOAT rtl.
4395
4396 Thu Apr 13 19:39:56 2000 Clinton Popetz <cpopetz@cygnus.com>
4397
4398 * emit-rtl.c (try_split): Avoid infinite loop if the split
4399 results in a sequence that contains the original insn.
4400
4401 2000-04-13 Andreas Jaeger <aj@suse.de>
4402
4403 * config/mips/mips.c (expand_block_move): Pass alignment
4404 argument to move_by_pieces in bits, not bytes.
4405
4406 * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
4407 __pic__ for little endian.
4408
4409 2000-04-13 Andreas Jaeger <aj@suse.de>
4410
4411 * config/i386/i386-protos.h: Add prototype for
4412 uno_comparison_operator.
4413
4414 Thu Apr 13 15:55:08 MET DST 2000 Jan Hubicka <jh@suse.cz>
4415
4416 * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
4417 * calls.c (ECF_PURE): New flag.
4418 (emit_call_1): Handle ECF_PURE calls.
4419 (initialize_argument_information): Unset ECF_PURE flag too.
4420 (precompute_arguments): Precompute for ECF_PURE too.
4421 (expand_call): Handle ECF_PURE calls too.
4422 (emit_library_call_value_1): Rename no_queue argument to fn_type,
4423 accept value of 2 as pure function.
4424 (emit_library_call_value, emit_library_call): Rename no_queue argument
4425 to fn_type.
4426 * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
4427
4428 * tree.h (DECL_IS_PURE): New macro.
4429 (struct tree_decl): Add pure_flag.
4430 * c-common.c (enum attrs): Add attribute "pure".
4431 (init_attributes): Initialize attribute "pure"
4432 (decl_attributes): Handle attribute "pure".
4433 * extend.texi (Attribute "pure"): Document.
4434 * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
4435 in pure function.
4436 (flags_from_decl_or_type): Support attribute "pure".
4437
4438 2000-04-13 Jason Merrill <jason@casey.cygnus.com>
4439
4440 * cpplex.c (_cpp_lex_token): Handle digraphs. Don't null-terminate
4441 the token except for numbers and identifiers.
4442
4443 Thu Apr 13 00:09:16 EDT 2000 John Wehle (john@feith.com)
4444
4445 * i386.c (ix86_expand_binary_operator,
4446 ix86_expand_unary_operator): Check no_new_pseudos
4447 instead of reload_in_progress and reload_completed.
4448 (ix86_split_ashldi, ix86_split_ashrdi,
4449 ix86_split_lshrdi): Check no_new_pseudos instead
4450 of reload_completed.
4451
4452 2000-04-12 Jeffrey A Law (law@cygnus.com)
4453
4454 * function.c (purge_addressof): Unshare any shared rtl created by
4455 purge_addressof and its children.
4456
4457 2000-04-12 Mark Mitchell <mark@codesourcery.com>
4458
4459 * function.c (aggregate_value_p): VOID_TYPE nodes are never
4460 aggregates.
4461
4462 2000-04-05 Andreas Jaeger <aj@suse.de>
4463
4464 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
4465 not compiling PIC code, add flags for mabi=64.
4466 (SUBTARGET_CPP_SIZE_SPEC): New.
4467 (SUBTARGET_CPP_SPEC): New.
4468 (CPP_PREDEFINES): Define __PIC__ and __pic__. PIC code is default
4469 for MIPS/Linux and lots of code needs these defines.
4470
4471 Wed Apr 12 22:44:11 2000 Hans-Peter Nilsson <hp@axis.com>
4472
4473 * reorg.c (fill_slots_from_thread): Check side_effects_p when
4474 trying the "opposite arithmetic" approach.
4475
4476 Wed Apr 12 20:51:20 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4477
4478 * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
4479 (struct sh_args): Add new field force_mem.
4480 (INIT_CUMULATIVE_ARGS): Initialize it.
4481 (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
4482
4483 Wed Apr 12 17:20:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
4484
4485 * calls.c (expand_call): Do not reverse args in "equal from" field.
4486 (emit_library_call_value_1): Emit_libcall_block for const and pure
4487 function.
4488
4489 Wed Apr 12 16:00:25 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4490
4491 * reload1.c (reload_combine): Don't enable optimization for fixed
4492 registers when encountering a BARRIER.
4493
4494 Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka <jh@suse.cz>
4495
4496 * builtins.c (expand_builtin_memcmp): Do expansion even with
4497 !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
4498
4499 * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
4500 stack is propertly aligned; add sanity checking for aligned
4501 stack pointer.
4502 (expand_library_call_value_1): Add sanity checking for aligned
4503 stack pointer.
4504
4505 Wed Apr 12 07:51:54 2000 Catherine Moore <clm@cygnus.com>
4506
4507 * calls.c (emit_library_call_value_1): Change 3rd arg to
4508 locate_and_pad_parm to disregard the setting of partial.
4509
4510 Wed Apr 12 08:47:38 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4511
4512 * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
4513
4514 * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
4515 CALL_INSN from the normal case.
4516
4517 Fri Apr 7 12:23:04 MET DST 2000 Jan Hubicka <jh@suse.cz>
4518
4519 * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4520 New global variables.
4521 (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
4522 adjustment.
4523 * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4524 Declare,
4525 (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
4526 TARGET_ADD_ESP_8): New macros.
4527 * i386.md: Add peep2s to convert esp adjustments to push and pop
4528 instructions.
4529 (pushsi_prologue, popsi_epilogue): New patterns.
4530
4531 2000-04-12 Jakub Jelinek <jakub@redhat.com>
4532
4533 * real.c (toe64): Remove stale #endif from the last change.
4534
4535 2000-04-12 Stephen L Moshier <moshier@mediaone.net>
4536
4537 * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
4538 * real.c (toe64): Revert previous change.
4539
4540 2000-04-12 Jakub Jelinek <jakub@redhat.com>
4541
4542 * objc/objc-act.c: Include ggc.h.
4543 (objc_tree_index, objc_global_trees): Convert most of the
4544 static tree variables into a static array with previous names
4545 as defines.
4546 (objc_ellipsis_node): New variable.
4547 (lang_init): Call objc_act_parse_init and c_parse_init.
4548 Create objc_ellipsis_node.
4549 (build_selector_translation_table): Use objc_ellipsis_node instead
4550 of (tree)1.
4551 (hack_method_prototype): Likewise.
4552 (get_arg_type_list): Likewise.
4553 (start_method_def): Likewise.
4554 (continue_method_def): Likewise.
4555 (gen_method_decl): Likewise.
4556 (ggc_mark_imp_list): New function.
4557 (ggc_mark_hash_table): New function.
4558 (objc_act_parse_init): New function.
4559 * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
4560 * c-parse.in (c_parse_init): For objc add roots of objc specific
4561 local tree variables.
4562 * objc/objc-parse.y: Rebuilt.
4563 * objc/objc-parse.c: Rebuilt.
4564 (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
4565
4566 Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com)
4567
4568 * cse.c (delete_trivially_dead_insns): Also delete insns
4569 that copy a register to itself where the destination is
4570 a strict_low_part.
4571
4572 2000-04-11 Richard Henderson <rth@cygnus.com>
4573
4574 * flow.c (struct propagate_block_info): Add new_dead, new_live.
4575 (propagate_block): Initialize them. Use them in parallel instead
4576 of one tmp variable, ie revert much of the 0408 and 0407 functional
4577 changes, but keep the structural changes.
4578 (mark_set_regs): Take new_dead from propagate_block_info instead.
4579 (mark_set_1, mark_set_reg): Likewise.
4580 (mark_used_regs): Likewise with new_live.
4581 (mark_used_reg): Likewise. Revert 0408 change.
4582
4583 2000-04-11 Nick Clifton <nickc@cygnus.com>
4584
4585 * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
4586 restriction.
4587 (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
4588
4589 2000-04-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
4590
4591 * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
4592 const section to output a CONSTRUCTOR based on the same conditions
4593 used for VAR_DECLs.
4594
4595 Tue Apr 11 09:55:59 2000 Jeffrey A Law (law@cygnus.com)
4596
4597 * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
4598 * pa/pa-protos.h (output_call): Add additional argument indicating
4599 if the call is a sibling/tail call.
4600 (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
4601 (compute_64bit_ior, cmpib_comparison_operator): Likewise.
4602 (function_arg, function_arg_partial_nregs): Likewise
4603 * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
4604 (emit_move_sequence): Zero extend certain constants as needed
4605 for TARGET_64BIT.
4606 (compute_zdepdi_operands, output_64bit_and): New functions.
4607 (output_64bit_ior, function_arg): Likewise.
4608 (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
4609 (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
4610 (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
4611 (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
4612 (output_bvb): Likewise.
4613 (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
4614 (output_call): New argument 'sibcall'. Generate sibcall sequences
4615 as needed.
4616 (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT. For
4617 (ouput_arg_descriptor): Do not emit argument descriptors for
4618 TARGET_64BIT.
4619 * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
4620 defined.
4621 (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
4622 (FUNCTION_OK_FOR_SIBALL): Define.
4623 (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
4624 (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
4625 (CPP_SPEC): Use new spec infrastructure.
4626 (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
4627 (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
4628 (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
4629 (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
4630 (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
4631 (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
4632 (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
4633 (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
4634 (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
4635 (FUNCTION_ARG); Call out to C code.
4636 (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
4637 (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
4638 (MIN_UNITS_PER_WORD): Likewise.
4639 * pa/pa.md (cmpdi): New expander.
4640 (scc patterns, movstrsi): Not available for TARGET_64BIT.
4641 (64bit conditional arithmetic): New patterns.
4642 (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
4643 (movsicc): Not available if modes on all the operands to not match.
4644 (movdicc): New expander and associated patterns.
4645 (64bit branches): New patterns.
4646 (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
4647 (pre_ldd, post_std): New patterns.
4648 (64bit addil, load low part): New patterns.
4649 (special movsf constant): Not available for TARGET_64BIT.
4650 (movsf, movdf expanders): Force constants into memory.
4651 (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
4652 (64bit movdf/movdi patterns): New patterns.
4653 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
4654 for TARGET_64BIT.
4655 (extendqidi2, extendhidi2, extendsidi2): Similarly.
4656 (adddi3 expander): Allow "arith_operand" for second input.
4657 (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
4658 (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
4659 (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
4660 (muldi3): New expander for TARGET_64BIT.
4661 (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
4662 for TARGET_64BIT.
4663 (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
4664 patterns for TARGET_64BIT.
4665 (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
4666 patterns for TARGET_64BIT.
4667 (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
4668 (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
4669 (sibcall_epilogue): New expander.
4670 (casesi): Tweak for TARGET_64BIT.
4671 (call expanders): Set & use the outgoing argument pointer. Use the
4672 64bit call patterns as needed. Add additional arg to output_call.
4673 (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
4674 (sibcall, sibcall_internal_symref): New expanders.
4675 (sibcall_value, sibcall_value_internal_symref
4676 (interspace_jump): Turn into an expander + matching patterns.
4677 (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
4678 * pa/pa64-regs.h: Eliminate trigraph sequences.
4679 * pa/pa64-start.h (TARGET_PA_20): Fix typo.
4680
4681 2000-04-11 Zack Weinberg <zack@wolery.cumb.org>
4682
4683 * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
4684 cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
4685 cpp_token with cpp_ttype everywhere.
4686 * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
4687 Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
4688 CPP_BUF_COL. Line and column numbers are unsigned int, not
4689 long.
4690 * cpplex.c (cpp_buf_line_and_col): Delete.
4691 * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
4692 'long lineno' to 'unsigned int lineno'.
4693 (CPP_BUF_LINE, CPP_BUF_COL): New macros.
4694
4695 2000-04-11 Martin v. Löwis <loewis@informatik.hu-berlin.de>
4696
4697 * extend.texi: ISO C99 is not a draft anymore.
4698 * invoke.texi: ISO C++ is not a draft anymore.
4699 * cpp.texi: __cplusplus is required by the ISO standard.
4700
4701 * extend.texi (-fthis-is-variable): Undocument.
4702 * flags.h (warn_template_debugging): Remove declaration.
4703 * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
4704 -Wenum-clash, -Wtemplate-debugging): Undocument.
4705
4706 2000-04-10 Nick Clifton <nickc@cygnus.com>
4707
4708 * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
4709 integer.
4710 (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
4711 integer.
4712 (ARM_SIGN_EXTEND): Use HOST_UINT.
4713 (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
4714 (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
4715 (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
4716 (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
4717
4718 * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
4719 (arm_gen_constant): Use HOST_UINT.
4720 (arm_canonicalize_constant): Use HOST_UINT.
4721 (arm_reload_in_hi): Use HOST_UINT.
4722 (arm_reload_out_hi): Use HOST_UINT.
4723 (output_multi_immediate): Use HOST_UINT.
4724 (int_log2): Use HOST_UINT.
4725 (arm_poke_function_name): Use HOST_UINT.
4726 (arm_output_epilogue): Use arm_volatile_func().
4727 (output_thumb_prologue): Use arm_strip_name_encoding().
4728
4729 Mon Apr 10 15:40:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4730
4731 * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
4732 of sequence point problems.
4733
4734 2000-04-10 Nathan Sidwell <nathan@codesourcery.com>
4735
4736 * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
4737 Recomment.
4738 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
4739
4740 Mon Apr 10 07:21:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4741
4742 * sbitmap.h: Whitespace changes and use upper-case macro args.
4743 (struct simple_bitmap_def): All sizes now unsigned.
4744 (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
4745 * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
4746 (sbitmap_vector_alloc): Parms and local vars now unsigned.
4747 (sbitmap_zero): Cast bzero arg to PTR.
4748 (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
4749 (sbitmap_union_of_diffs): Change loop index to unsigned and rework
4750 loop to make structure clearer.
4751 (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
4752 (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
4753 (sbitmap_a_and_b_or_c): Likewise.
4754 (sbitmap_intersection_of_succs): Minor cleanups.
4755 (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
4756 (sbitmap_union_of_preds): Likewise.
4757 (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
4758 (debug_sbitmap): New function.
4759
4760 * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
4761 * c-typeck.c (convert_for_assignment): Likewise.
4762
4763 * expmed.c (init_expmed): Don't free objects we make.
4764 * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
4765
4766 * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
4767 (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
4768
4769 * gcse.c (expr_hash_table_size): Now unsigned.
4770 (compute_ae_gen): Local variable `i' now unsigned.
4771 (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
4772 (compute_transout, hoist_code): Likewise.
4773 (compute_local_properties): Likewise, also hash_table_size.
4774 (alloc_expr_hash_table): N_INSNS now unsigned.
4775 (delete_null_pointer_checks): Mark arg F as unused.
4776
4777 * regrename.c: Minor cleanups, including chang some variables
4778 to unsigned int.
4779
4780 2000-04-10 Neil Booth <NeilB@earthling.net>
4781
4782 * cpplex.c (skip_block_comment): Use pointer arithmetic rather
4783 than GETC ().
4784 * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
4785
4786 2000-04-10 Martin v. Löwis <loewis@informatik.hu-berlin.de>
4787
4788 * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
4789 __classof__, and __headof__ from the list of gnu keywords.
4790 (-ansi): Remove -foperator-names from list of implied options.
4791 Do not call it ANSI C++.
4792 (-foperator-names): Document as -fno-operator-names.
4793
4794 2000-04-09 Zack Weinberg <zack@wolery.cumb.org>
4795
4796 * cpphash.c (timestamp): Delete.
4797 (del_HASHNODE): If type is T_MCONST, free value.cpval.
4798 (special_symbol): Remove unnecessary braces. Remove
4799 T_VERSION. Treat T_STDC like T_CONST unless
4800 STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__
4801 when one is encountered, then convert them into T_MCONST
4802 nodes.
4803 * cppinit.c (builtin_array): version_string is T_MCONST.
4804 __STDC__ has a "1" in its cpval. Don't have a terminator
4805 entry. Clean up which entries are dumped.
4806 (initialize_builtins): Only __STDC__ gets the special
4807 -traditional treatment. Count the length of builtin_array.
4808 Render version_string here.
4809 * cpphash.h: Remove T_VERSION. Add T_MCONST.
4810 * cpplib.h (struct cpp_reader): Remove timebuf.
4811
4812 2000-04-09 Richard Henderson <rth@cygnus.com>
4813
4814 * genrecog.c (pred): Update comparison_operator for the unordered
4815 operators.
4816
4817 * config/i386/i386.c (no_comparison_operator): Disallow unordered
4818 operators.
4819 (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
4820 (uno_comparison_operator): New.
4821 (put_condition_code): Handle UNORDERED/ORDERED.
4822 (unsigned_comparison): Likewise.
4823 (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
4824 (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
4825 (ix86_expand_fp_compare): Use them. Take scratch as argument,
4826 update all callers. Handle all 8 unordered operators.
4827 (ix86_expand_setcc): Lose the unordered argument, update all callers.
4828 (ix86_expand_branch): Likewise. Don't fully expand fp branches.
4829 * config/i386/i386.h (PREDICATE_CODES): Update.
4830 * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
4831 (ix86_expand_branch, ix86_expand_setcc): Update.
4832 * config/i386/i386.md (sunordered, sordered): New.
4833 (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
4834 (bunordered, bordered): New.
4835 (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
4836 (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
4837 (*fp_jcc_5, *fp_jcc_6, and splitters): New.
4838
4839 2000-04-09 Philip Blundell <philb@gnu.org>
4840
4841 * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
4842
4843 Sun Apr 9 15:16:14 EDT 2000 John Wehle (john@feith.com)
4844
4845 * i386.md (fix_truncsfhi2, fix_truncdfhi2,
4846 fix_truncxfhi2): New patterns.
4847 * i386.c (output_fix_trunc): Handle converting to HImode.
4848
4849 2000-04-08 Alex Samuel <samuel@codesourcery.com>
4850
4851 * ssa.c (convert_to_ssa): Eliminate dead code when calling
4852 life_analysis.
4853 (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
4854 (for_each_successor_phi): Change parameter to basic_block.
4855 (coalesce_regs_in_successor_phi_nodes): Likewise.
4856 (coalesce_regs_in_copies): Likewise.
4857 (compute_coalesced_reg_partition): Use basic_block instead of index.
4858 * rtl.h (convert_to_ssa): Delete.
4859 (convert_from_ssa): Likewise.
4860 (successor_phi_fn): Likewise.
4861 (for_each_successor_phi): Likewise.
4862 (in_ssa_form): Likewise.
4863 * basic-block.h (convert_to_ssa): Moved from rtl.h.
4864 (convert_from_ssa): Likewise.
4865 (successor_phi_fn): Likewise.
4866 (in_ssa_form): Likewise.
4867 (for_each_successor_phi): Likewise. Change parameter to basic_block.
4868 * flow.c (calculate_global_regs_live): Pass a basic_block to
4869 for_each_successor_phi.
4870
4871 2000-04-08 Richard Henderson <rth@cygnus.com>
4872
4873 * flow.c (mark_used_reg): Use reg_set_p to determine if a register
4874 was modified in the current insn.
4875
4876 2000-04-08 Richard Earnshaw (rearnsha@arm.com)
4877
4878 * arm/thumb.md: Delete.
4879 * arm/thumb-protos.h: Delete.
4880
4881 2000-04-08 Richard Earnshaw (rearnsha@arm.com)
4882
4883 Merge changes from merged-arm-thumb-backend-branch onto trunk.
4884
4885 2000-04-08 Richard Earnshaw (rearnsha@arm.com)
4886
4887 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
4888 into branch.
4889
4890 * arm.md (nop): Use the standard RTL expression. Don't code as a
4891 define_expand.
4892 (*arm_nop, *thumb_nop): Delete.
4893
4894 * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
4895 constants. Use casts instead.
4896 (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
4897 output_multi_immediate, arm_poke_function_name): Likewise.
4898 * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
4899 MASK_RETURN_ADDDR): Likewise.
4900
4901 2000-03-31 Richard Earnshaw (rearnsha@arm.com)
4902
4903 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
4904 into branch.
4905
4906 * arm.md (eh_epilogue): New function.
4907 * arm.h (struct machine_function): Move to here ...
4908 * arm.c: ... from here.
4909 (arm_output_epilogue): Support epilogues for __builtin_eh_return.
4910 (thumb_exit): Extra parameter eh_ofs. All callers changed.
4911 Handle epilogues for __builtin_eh_return. Make bit-fields unsigned.
4912
4913 2000-03-30 Nick Clifton <nickc@cygnus.com>
4914
4915 * config/arm/semi.h (ASM_SPEC): Restore definition.
4916 (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
4917
4918 * config/arm/elf.h (ASM_SPEC): Restore definition.
4919 (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
4920
4921 * config/arm/arm.h (ASM_SPEC): Remove definition.
4922 (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
4923
4924 2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk>
4925
4926 * config/arm/arm.c: Disable -fschedule-insns for Thumb.
4927
4928 2000-03-24 Nick Clifton <nickc@cygnus.com>
4929
4930 Various formating tidyups, elimination of compile time
4931 warnings and synchronisation with internal sources:
4932
4933 * config/arm/arm-protos.h (assemble_align): Add prototype.
4934 (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
4935 (gen_comapre_reg): Rename to arm_gen_compare_reg.
4936 (arm_return_addr_rtx): Rename to arm_return_addr.
4937
4938 * config/arm/arm.c: Include except.h.
4939 Define shorter typenames for strict minipool_node and struct
4940 minipool_fix.
4941 (arm_return_in_memory): For WinCE return all structures <= 32 bits
4942 in memory.
4943 (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
4944 (gen_comapre_reg): Rename to arm_gen_compare_reg.
4945
4946 * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
4947 already defined.
4948 (ASM_SPEC): Define if not already defined.
4949 (ASM_OUTPUT_DEF_FROM_DECLS): Define.
4950
4951 * config/arm/arm.md: Rename references to gen_rotated_half_load to
4952 arm_gen_rotated_half_load, and references to gen_comapre_reg to
4953 arm_gen_compare_reg.
4954 (indirect_jump): Only accept register operands.
4955 (load_indirect_jump): Keep this pattern since combine can generate
4956 it.
4957
4958 * config/arm/coff.h: Include aout.h.
4959 (MULTILIB_DEFAULTS): Only define if not already defined.
4960
4961 * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
4962 into arm.h (so that COFF ports can support thumb based aliases).
4963 (ASM_SPEC): Move definition into arm.h
4964
4965 * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
4966 redundant apcs spec.
4967 (ASM_SPEC): Move definition to arm.h
4968
4969 * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
4970
4971 * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
4972 for entries in the .bss section
4973
4974 2000-03-23 Nick Clifton <nickc@cygnus.com>
4975
4976 * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
4977 to thumb_far_jump_used_p.
4978
4979 * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
4980 single integer parameter.
4981
4982 * config/arm/arm.c (struct machine_function): Add two new
4983 fields, 'far_jump_used' and 'arg_pointer_live'.
4984 (thumb_far_jump_used_p): Once the decision has been made that
4985 far jumps might be used, always return true.
4986 If being called from the initial elimination offset macro then
4987 do not bother to perform the test if the arg pointer is not
4988 being used.
4989 (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
4990 (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
4991
4992 2000-03-23 Richard Earnshaw (rearnsha@arm.com)
4993
4994 * arm.c (output_return_instruction): Handle more cases where we can
4995 return from a function with an ldr instruction.
4996 (arm_output_epilogue): Likewise.
4997
4998 * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
4999 if we need to push a large stack frame and there are no callee-saved
5000 registers.
5001
5002 * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
5003 in ARM code if the frame pointer has been eliminated.
5004
5005 * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
5006 unspec_volatile arguments to avoid duplicates.
5007 (consttable_1, consttable_2): Fixes for big-endian mode.
5008
5009 * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
5010 as appropriate.
5011
5012 Re-write constant pool code.
5013 * arm.c (minipool_node, minipool_fix): New types.
5014 (minifix): Delete type.
5015 (arm_add_minipool_constant): Delete.
5016 (arm_compute_minipool_offsets, arm_find_barrier,
5017 arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
5018 (get_jump_table_size): Now returns HOST_WIDE_INT.
5019 (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
5020 functions.
5021 (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
5022 (assign_minipool_offsets, arm_print_value): Likewise.
5023 (dump_minipool): Rewrite.
5024 (arm_barrier_cost): New function.
5025 (create_fix_barrier): New function.
5026 (push_minipool_barrier): New function.
5027 (push_minipool_fix): Record additional information about the fixup
5028 required.
5029 (note_invalid_constants): Remove push for (UNSPEC 3). Don't
5030 check the mode of what needs fixing.
5031 (arm_reorg): Rewrite.
5032
5033 2000-03-08 Nick Clifton <nickc@cygnus.com>
5034
5035 * config/arm/arm.md (indirect_jump): Force constant addresses into
5036 a register.
5037
5038 2000-03-01 Bernd Schmidt <bernds@cygnus.co.uk>
5039
5040 * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
5041
5042 2000-02-24 Nick Clifton <nickc@cygnus.com>
5043
5044 * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
5045 adjust is word aligned.
5046 (thumb_expand_epilogue): Make sure that stack adjust is word
5047 aligned.
5048
5049 * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
5050
5051 2000-02-24 Bernd Schmidt <bernds@cygnus.com>
5052
5053 * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
5054 pointer relative addresses.
5055
5056 2000-02-10 Richard Earnshaw <rearnsha@arm.com>
5057
5058 * arm.c (find_barrier): Find the last barrier within the allowed
5059 range.
5060
5061 2000-02-09 Nick Clifton <nickc@cygnus.com>
5062
5063 * config/arm/arm-protos.h: Replace PROTO with PARAMS.
5064
5065 2000-02-09 Nick Clifton <nickc@cygnus.com>
5066
5067 * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
5068 ARM_FUNCTION_PROFILER.
5069
5070 * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
5071 ARM_FUNCTION_PROFILER.
5072
5073 * config/arm/linux-oldld.h: Imported from mainline sources.
5074
5075 2000-02-07 Nick Clifton <nickc@cygnus.com>
5076
5077 * config/arm/lib1funcs.asm: Merge in thumb functions from
5078 lib1thumb.asm.
5079
5080 * config/arm/lib1thumb.asm: Delete.
5081
5082 2000-02-04 Nick Clifton <nickc@cygnus.com>
5083
5084 * config/arm/arm.c: Sychronised with current Red hat local
5085 sources.
5086 * config/arm/arm.h: Ditto.
5087 * config/arm/arm-protos.h: Ditto.
5088
5089 2000-02-02 Bernd Schmidt <bernds@cygnus.co.uk>
5090
5091 * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
5092
5093 * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
5094 byte stores.
5095
5096 2000-02-02 Nick Clifton <nickc@cygnus.com>
5097
5098 * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
5099
5100 * config/arm/arm.md (epilogue): Fix rtl checking abort because
5101 (return) was emited using an emit_insn() call.
5102
5103 2000-01-31 Nick Clifton <nickc@cygnus.com>
5104
5105 * config/arm/arm.c (output_thumb_prologue): Fix bug generating
5106 thumb stack frame.
5107 (thumb_exit): Move frame pointer back into hard frame pointer
5108 register if backtracing is being used.
5109
5110 2000-01-13 Richard Earnshaw (rearnsha@arm.com)
5111
5112 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
5113 into branch.
5114
5115 1999-12-15 Bernd Schmidt <bernds@cygnus.co.uk>
5116
5117 * config/arm/arm.md (neg_pool_offset): Provide default for new
5118 attribute.
5119 (arm_movsi_insn): Add neg_pool_offset attribute.
5120 * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
5121 rtx for the insn that starts the scan and an unsigned long for its
5122 address. Add MIN_OFFSET and PINSERTED args. All callers changed.
5123 Change scan to ignore insns before MIN_OFFSET. Store size of inserted
5124 instructions in *PINSERTED.
5125 (struct minipool_fixup): Add MIN_ADDRESS elt.
5126 (sort_fixups): Compute it.
5127 (arm_reorg): Changes to support inserting pools before the insn to be
5128 fixed up.
5129
5130 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
5131
5132 * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
5133 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
5134 * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
5135
5136 Wed Nov 3 10:04:07 1999 Nick Clifton <nickc@cygnus.com>
5137
5138 * config/arm/semi.h (TARGET_VERSION): Do not define if already
5139 defined.
5140 (TARGET_DEFAULT): Do not define if already defined.
5141
5142 Tue Nov 2 10:37:25 1999 Nick Clifton <nickc@cygnus.com>
5143
5144 * config/arm/arm.md (anddi3): Allow disjoint source operands.
5145 (iordi3): Allow disjoint source operands.
5146 (xordi3): Allow disjoint source operands.
5147 (negdi2): Permit construction for ARM and Thumb.
5148 (arm_negdi2): Renamed version of old negdi2 pattern.
5149 (thumb_negdi2): New pattern: Only permit non-overlapping
5150 source and destination.
5151
5152 Fri Oct 29 18:52:38 1999 Nick Clifton <nickc@cygnus.com>
5153
5154 * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
5155 scratch low register so that it will not be deleted.
5156
5157 Fri Oct 29 15:23:48 1999 Nick Clifton <nickc@cygnus.com>
5158
5159 * config/arm/pe.h (ARM_PE): Define.
5160
5161 * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
5162 interfacearm attribute if this is a PE toolchain.
5163 (output_return_instruction): Do not emit anything if the function
5164 has the naked attribute set.
5165 (is_called_in_ARM_mode): If the function has the interfacearm
5166 attribute then return true.
5167 (thumb_expand_prologue): Do not generate a prologue for naked
5168 functions.
5169 (thumb_expand_epilogue): Do not generate an epilogie for a naked
5170 function.
5171 (output_thumb_prologue): Do not bother if the function is naked.
5172 Strip PE encoding from function name before emitting.
5173
5174 Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com>
5175
5176 * arm.md (pic_load_addr): Fix constraints.
5177
5178 * arm.md (casesi_insn): Fix mis-applied patch.
5179
5180 * arm.md ("core" function unit): Add rules for single- and
5181 multi-cycle insns.
5182 (All TARGET_THUMB patterns): Add "type" attribute information
5183 where needed.
5184 * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
5185 the following insn is a CALL.
5186
5187 * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
5188 pointer.
5189 * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
5190 ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
5191 (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
5192
5193 Wed Oct 27 14:40:48 1999 Nick Clifton <nickc@cygnus.com>
5194
5195 * config/arm/linux-gas.h: oops - this file was missed out when the
5196 branch was created...
5197
5198 Tue Oct 26 17:07:38 1999 Richard Earnshaw <rearnsha@arm.com>
5199
5200 * thumb.c: Deleted. Move contents to ...
5201 * arm.c: ... here.
5202 * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
5203 rule for thumb.o
5204 * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
5205 * configure: Regen.
5206
5207 * arm-protos.h: Use RTX_CODE and tidy up long lines. Don't
5208 declare a prototype for asm_output_align();
5209
5210 * arm.c (thumb_condition_code): Delete.
5211 (arm_print_operand): Always use arm_condition_code array.
5212
5213 * arm.c (thumb_return_addr_rtx): Delete.
5214 (arm_save_machine_status, arm_restore_machine_status): Delete.
5215 (arm_init_machine_status, arm_mark_machine_status): New functions.
5216 (arm_init_expanders): Update accordingly.
5217 (arm_return_addr): Renamed from arm_return_addr_rtx. Rewrite.
5218 (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
5219 * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
5220
5221 Tue Oct 26 13:24:16 1999 Nick Clifton <nickc@cygnus.com>
5222
5223 * configure.in : Fix arm-*-aout target to use new t-arm-aout
5224 script.
5225 * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
5226 targets.
5227
5228 Tue Oct 26 11:27:12 1999 Nick Clifton <nickc@cygnus.com>
5229
5230 * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
5231 stack backtrace structure.
5232
5233 * config/arm/arm-protos.h: Add prototypes for functions defined in
5234 arm/pe.h.
5235
5236 * config/arm/arm.c (arm_override_options): Fix selection of
5237 attributes of default processor.
5238
5239 * config/arm/coff.h: Delete needless #include.
5240
5241 * config/arm/pe.c: Delete unused code.
5242
5243 * config/arm/pe.h (CPP_DEFINES): Delete
5244 (SUBTARGET_CPP_SPEC): Define.
5245 (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
5246
5247 * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
5248
5249 Mon Oct 25 15:42:09 1999 Richard Earnshaw (rearnsha@arm.com)
5250
5251 * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
5252 updated.
5253 (CAN_DEBUG_WITHOUT_FP): Define.
5254 (FIXED_REGISTERS): Make r11 call-saved.
5255 (CALL_USED_REGISTERS): Likewise.
5256 (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
5257 (FRAME_POINTER_REQUIRED): Correct logic for determining when a
5258 frame-pointer is required.
5259 (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
5260 * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
5261 if the target normally needs a stack frame in non-leaf functions.
5262 (use_return_insn): Correct logic for determining when a return
5263 instruction can be used.
5264 (output_return_instruction): Handle the frame-pointer register as
5265 a normal register when not TARGET_APCS_FRAME.
5266 (arm_output_prologue): Likewise.
5267 (arm_output_epilogue): Likewise.
5268 (output_func_epilogue): Likewise.
5269 (arm_expand_prologue): Likewise.
5270 * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
5271
5272 * arm.c (use_return_insn): No need to check floating point regs if
5273 TARGET_SOFT_FLOAT.
5274 (arm_find_minipool_constant): Correct typo; use GET_CODE to get
5275 the code of value stored in the minipool array.
5276 (arm_add_minipool_constant): Likewise.
5277
5278 2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5279
5280 * basic-block.h (conflict_graph_enum_fn): K&R fix.
5281
5282 2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5283
5284 * tree.c (tree_expr_nonnegative_p): New function.
5285
5286 * tree.h (tree_expr_nonnegative_p): Declare.
5287
5288 * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
5289 elide some sign_compare warnings.
5290 (build_conditional_expr): Likewise.
5291
5292 Sat Apr 8 00:21:51 EDT 2000 John Wehle (john@feith.com)
5293
5294 * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
5295
5296 * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
5297 * i386.c (print_operand): Use the proper suffix for a 387 HImode
5298 operand. Abort if a 387 operand has an unsupported size.
5299
5300 2000-04-08 Neil Booth <NeilB@earthling.net>
5301
5302 * cppexp.c (parse_charconst): Null does not end character
5303 constants.
5304 * cppinit.c (ISTABLE): Null character handled as whitespace.
5305 * cpplex.c (null_warning): new function.
5306 (skip_string): Emit warning if nulls encountered.
5307 (_cpp_skip_hspace): Emit warning if nulls encountered.
5308 (_cpp_lex_token): Emit warning if nulls encountered. Drop
5309 them.
5310 * cpp.texi: Update.
5311
5312 2000-04-07 Richard Henderson <rth@cygnus.com>
5313
5314 * flow.c (loop_depth): Remove.
5315 (reg_next_use, cc0_live, mem_set_list): Replace with ...
5316 (struct propagate_block_info): New.
5317 (life_analysis): Don't allocate reg_next_use.
5318 (propagate_block_delete_insn): Break out of propagate_block.
5319 Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
5320 (propagate_block_delete_libcall): Likewise.
5321 (propagate_block): Create a propagate_block_info struct to pass
5322 to subroutines. Allocate one not two temporary regsets. Don't
5323 clobber memory for const calls. Look for clobbers in
5324 CALL_INSN_FUNCTION_USAGE.
5325 (mark_set_regs): Recognize COND_EXEC.
5326 (mark_set_reg): Break out of mark_set_1.
5327 (mark_used_reg): Break out of mark_used_regs.
5328 (mark_used_regs): Recognize COND_EXEC.
5329 (insn_dead_p): Use propagate_block_info struct.
5330 (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
5331 (find_auto_inc, try_pre_increment_1): Likewise.
5332 (print_rtl_with_bb): Dump regs live at end too.
5333 (count_reg_sets_1): Pass in loop_depth.
5334 (count_reg_sets, count_reg_references): Likewise.
5335 (recompute_reg_usage): Provide it.
5336
5337 2000-04-07 Richard Henderson <rth@cygnus.com>
5338
5339 * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
5340 not the raw files.
5341
5342 2000-04-07 Zack Weinberg <zack@wolery.cumb.org>
5343
5344 * cpplib.c (do_elif): Skip the rest of the line if we're
5345 not going to bother evaluating it.
5346 (skip_if_group): Clear pfile->only_seen_white. Reorder loop
5347 to avoid pointless calls to the lexer.
5348
5349 Fri Apr 7 11:50:54 2000 Jim Wilson <wilson@cygnus.com>
5350
5351 * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
5352
5353 2000-04-07 Jason Merrill <jason@casey.cygnus.com>
5354
5355 * calls.c (expand_call): emit_queue if we're trying a sibcall.
5356
5357 2000-04-07 Jakub Jelinek <jakub@redhat.com>
5358
5359 * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
5360
5361 2000-04-06 Geoff Keating <geoffk@cygnus.com>
5362
5363 * Makefile.in: Build crtbeginS and crtendS like crtbegin and
5364 crtend so they can be multilibbed.
5365 (STAGESTUFF): Remove s-crt and s-crtS.
5366
5367 2000-04-07 Richard Henderson <rth@cygnus.com>
5368
5369 * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
5370 if we discover we need a pseudo and no_new_pseudos is true.
5371 * config/alpha/alpha.md (ne:DI insn): New.
5372 (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
5373
5374 2000-04-07 Richard Henderson <rth@cygnus.com>
5375
5376 * rtl.def (COND_EXEC): New.
5377 * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
5378 * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
5379
5380 * genconfig.c (have_cond_arith_flag): Remove.
5381 (have_cond_exec_flag): New.
5382 (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
5383 (main): Print HAVE_conditional_execution.
5384
5385 * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
5386 (sched_analyze_insn, print_pattern): Likewise.
5387 * reload.c (find_equiv_reg): Likewise.
5388 * rtlanal.c (reg_referenced_p): Likewise.
5389 (note_stores, dead_or_set_regno_p): Likewise.
5390 (reg_overlap_mentioned_p): Rewrite to use a switch.
5391
5392 * ggc.h (struct rtx_def): Forward declare.
5393
5394 * print-rtl.c (debug_rtx_range): New.
5395 * rtl.h (debug_rtx_range): Declare.
5396
5397 * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
5398
5399 * gcse.c (gcse_main): Don't rebuild the CFG here.
5400 (delete_null_pointer_checks): Likewise.
5401 * ssa.c (convert_to_ssa): Likewise.
5402 * toplev.c (rest_of_compilation): Do it here instead. Combine
5403 sequential calls to TIMEVAR. Consistently use `insns' instead of
5404 `get_insns()'. Always split insns after reload when optimizing.
5405
5406 * basic-block.h (merge_blocks_nomove): Declare.
5407 (tidy_fallthru_edge): Declare.
5408 * flow.c (merge_blocks_nomove): Document as merging into previous
5409 blocks. Remove cruft from between blocks; remove all edges out of A.
5410 (tidy_fallthru_edge): Export.
5411
5412 2000-04-06 Alex Samuel <samuel@codesourcery.com>
5413
5414 * ssa.c (compute_conservative_reg_partition): Declare with
5415 void arguments.
5416 * toplev.c (clean_dump_file): Remove previously-deleted function
5417 inadvertantly merged back in.
5418 * conflict.c (conflict_graph_add): Use a single call to
5419 htab_find_slot to look up and insert.
5420
5421 2000-04-06 Richard Henderson <rth@cygnus.com>
5422
5423 * genrecog.c (*): Rename _last_insn to last_insn.
5424 (make_insn_sequence): Set the position of the peephole2 C test
5425 to be at the last insn.
5426
5427 2000-04-06 Richard Henderson <rth@cygnus.com>
5428
5429 * flow.c (compute_flow_dominators): Free worklist.
5430
5431 2000-04-06 Michael Matz <matzmich@cs.tu-berlin.de>
5432
5433 * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
5434
5435 2000-04-06 Alex Samuel <samuel@codesourcery.com>
5436
5437 * rtl.h (INSN_P): New macro.
5438 (successor_phi_fn): New typedef.
5439 (for_each_successor_phi): New prototype.
5440 (in_ssa_form): New variable.
5441 (PHI_NODE_P): Likewise.
5442 * flow.c (calculate_global_regs_live): Add to new_live_at_end from
5443 phi nodes in successors.
5444 (mark_used_regs): Add PHI case.
5445 (set_phi_alternative_reg): New function.
5446 (life_analysis): Assert that dead code elimination is not selected
5447 when in SSA form.
5448 * toplev.c (to_ssa_time): New variable.
5449 (from_ssa_time): Likewise.
5450 (compile_file): Zero to_ssa_time and from_ssa_time.
5451 Print time to convert to and from SSA.
5452 (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
5453 (print_time): Compute percent fraction as integer.
5454 * ssa.c (PHI_NODE_P): Moved to rtl.h.
5455 (convert_to_ssa): Check if we're already in SSA.
5456 Don't eliminate dead code in life_analysis.
5457 Rerun flow and life analysis at bottom.
5458 (eliminate_phi): Use canonical regnos when adding nodes.
5459 (mark_reg_in_phi): New function.
5460 (mark_phi_and_copy_regs): Likewise.
5461 (convert_from_ssa): Rerun life analysis at top.
5462 Use coalesced partition.
5463 Check for removing a phi node at the end of the block.
5464 (compute_coalesced_reg_partition): New function.
5465 (coalesce_regs_in_copies): Likewise.
5466 (coalesce_reg_in_phi): Likewise.
5467 (coalesce_regs_in_sucessor_phi_nodes): Likewise.
5468 (for_each_successor_phi): Likewise.
5469 (rename_context): New struct.
5470 (rename_block): Use a rename_context with rename_insn_1. When
5471 renaming sets of a subreg, emit a copy of the entire reg first.
5472 (rename_insn_1): Treat data as a rename_context *. Save current
5473 insn in set_data.
5474 (rename_set_data): Add field set_insn.
5475 * Makefile.in (HASHTAB_H): Move up in file.
5476 (OBSTACK_H): New macro.
5477 (collect2.o): Use OBSTACK_H in dependencies.
5478 (sdbout.o): Likewise.
5479 (emit-rtl.o): Likewise.
5480 (simplify-rtx.o): Likewise.
5481 (fix-header.o): Likewise.
5482 (OBJS): Add conflict.o.
5483 (conflict.o): New rule.
5484 * basic-block.h: Include partition.h.
5485 (conflict_graph): New typedef.
5486 (conflict_graph_enum_fn): Likewise.
5487 (conflict_graph_new): New prototype.
5488 (conflict_graph_delete): Likewise.
5489 (conflict_graph_add): Likewise.
5490 (conflict_graph_conflict_p): Likewise.
5491 (conflict_graph_enum): Likewise.
5492 (conflict_graph_merge_regs): Likewise.
5493 (conflict_graph_print): Likewise.
5494 (conflict_graph_compute): Likewise.
5495 * conflict.c: New file.
5496
5497 2000-04-06 Jason Merrill <jason@yorick.cygnus.com>
5498
5499 * tlink.c (read_repo_files): Don't look for .rpo info for
5500 linker flags.
5501
5502 Thu Apr 6 20:39:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
5503
5504 * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
5505
5506 Thu Apr 6 19:34:08 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
5507
5508 * config/sh/lib1funcs.asm (___udivsi3_i4):
5509 ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
5510 only depends on FMOVD_WORKS.
5511
5512 Thu Apr 6 19:11:47 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
5513
5514 * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
5515 make double constant 8-byte aligned.
5516
5517 2000-04-06 Jakub Jelinek <jakub@redhat.com>
5518
5519 * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
5520 movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
5521 movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
5522 (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
5523 Accept storing GENERAL_REGS into offsetable memory.
5524 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
5525 building a TFmode constant other than 0.0L into GENERAL_REGS.
5526
5527 2000-04-06 Clinton Popetz <cpopetz@cygnus.com>
5528
5529 * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
5530
5531 2000-04-06 Zack Weinberg <zack@wolery.cumb.org>
5532
5533 * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
5534 (macro_cleanup): No need to cast pbuf->macro.
5535 (collect_expansion): Use _cpp_get_define_token. Goto done if
5536 it returns VSPACE. Remove check for trailing space after
5537 CPP_COMMENT.
5538 (_cpp_create_definition): Don't diddle flags here. Return
5539 directly on error.
5540 (unsafe_chars): Handle c1 being EOF.
5541 (push_macro_expansion): Use unsafe_chars for both accidental-paste
5542 checks. Don't push the buffer till after we're done with
5543 them.
5544 * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
5545 (PEEKN, FORWARD, GETC, PEEKC): Use them.
5546 (cpp_push_buffer): Don't set new->alimit. Set new->mark
5547 appropriately.
5548 (_cpp_parse_assertion): Don't NUL terminate.
5549 (_cpp_lex_token): Fix -traditional macro handling. Don't skip
5550 hspace before calling _cpp_parse_assertion. Remove all sets
5551 of only_seen_white. Treat '\f' as hspace. Don't do anything
5552 special with '\n' here.
5553 (maybe_macroexpand): Handle T_EMPTY hash entries without
5554 pushing a buffer at all.
5555 (cpp_get_token): Handle clearing only_seen_white here. Handle
5556 incrementing the line number here. Clear
5557 potential_control_macro as well as only_seen_white, if
5558 appropriate.
5559 (cpp_get_non_space_token): Don't eat CPP_POP tokens.
5560 (_cpp_get_define_token): New function, basically like
5561 _cpp_get_directive_token was but doesn't eat horizontal space.
5562 Don't do anything with only_seen_white here.
5563 (_cpp_get_directive_token): Just call _cpp_get_define_token
5564 repeatedly till it returns non-hspace.
5565
5566 * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
5567 (conditional_skip, skip_if_group): Return int.
5568 (DIRECTIVE_TABLE): Change origin of all conditional directives
5569 to "COND".
5570 (TRAD_DIRECT_P): New macro.
5571 (_cpp_handle_directive): Use _cpp_get_directive_token. Issue
5572 an error for a bogus directive, unless -lang-asm. Use
5573 TRAD_DIRECT_P. Loop calling handler functions till one returns
5574 zero.
5575 (get_macro_name): Don't diddle flags here.
5576 (do_define): Diddle flags here. Use _cpp_get_directive_token.
5577 Create T_EMPTY nodes for #define macro /* nothing */.
5578 (do_undef): Don't copy the name. Use _cpp_get_directive_token.
5579 Use hp->name when calling pass_thru_directive.
5580 (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
5581 Return the result of conditional_skip and/or skip_if_group.
5582 Don't call _cpp_output_line_command.
5583 (consider_directive_while_skipping): Use _cpp_get_directive_token.
5584 Issue -Wtraditional warnings as appropriate. Don't complain
5585 about unrecognized directives. If we are to stop skipping,
5586 return the number of the directive that ended the skip.
5587 (skip_if_group): Use _cpp_get_directive_token. Turn off macro
5588 expansion and line commands while skipping. Return the result
5589 of consider_directive_while_skipping, if nonzero.
5590 (do_endif): Just set potential_control_macro here.
5591 (validate_else): Use _cpp_get_directive_token.
5592 (do_assert, do_unassert): Don't save pointers into the
5593 token_buffer across calls to the lexer. Use
5594 _cpp_get_directive_token.
5595
5596 * cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a
5597 pointer, not an offset. Replace 'data', which was a generic
5598 pointer, with 'macro', which points to a struct hashnode.
5599 (cpp_reader): Add 'potential_control_macro' pointer.
5600 * cpphash.h (T_UNUSED): Replace with T_EMPTY.
5601 (CPP_BUF_GET, CPP_FORWARD): Delete.
5602 (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
5603 (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
5604 ACTIVE_MARK_P): Update.
5605 (_cpp_get_define_token): New internal function.
5606 * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
5607
5608 2000-04-05 Benjamin Kosnik <bkoz@cygnus.com>
5609
5610 * configure.in: And here.
5611 * configure: Regenerate.
5612 * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
5613 --enable-libstdcxx-v3 is passed at configure time.
5614 * config.h.in: Regenerate.
5615
5616 2000-04-05 Mark Mitchell <mark@codesourcery.com>
5617
5618 * final.c (final): Use xcalloc to allocate line_note_exists.
5619 * function.c (free_after_compilation): Free the temp_slots.
5620 (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
5621 (combine_temp_slot): Free temp_slots when they get combined.
5622 (purge_addressof): Fix typo in comment.
5623 * stmt.c (mark_goto_fixup): Mark the fixup itself.
5624 (expand_fixup): Allocate the fixup with ggc_alloc_obj.
5625
5626 * ggc.h: Include varray.h.
5627 (ggc_pending_trees): Declare.
5628 (ggc_mark_tree_children): Remove declaration.
5629 (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
5630 * ggc-common.c (ggc_pending_trees): New variable.
5631 (ggc_mark_roots): Call ggc_mark_trees.
5632 (ggc_mark_tree_children): Rename to ggc_mark_trees. Process all
5633 the ggc_pending_trees.
5634 * Makefile.in (GGC_H): New variable. Use it throughout in place
5635 of ggc.h.
5636
5637 Thu Apr 6 00:30:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
5638
5639 * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
5640 GET_MODE_SIZE.
5641
5642 Wed Apr 5 23:17:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
5643
5644 * sh.c (sh_insn_length_adjustment): New function.
5645 * sh-protos.h (sh_insn_length_adjustment): Declare.
5646 * sh.h (ADJUST_INSN_LENGTH): Use it.
5647
5648 Wed Apr 5 12:35:18 2000 Hans-Peter Nilsson <hp@axis.com>
5649
5650 * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
5651 from the insn where REG_RETVAL is added.
5652 (emit_no_conflict_block): Ditto.
5653
5654 * md.texi (Standard Names): Clarify when movX is needed.
5655
5656 * combine.c (simplify_comparison) [MINUS]: Do not replace
5657 all (op (minus A B) 0) with (op A B).
5658
5659 Wed Apr 5 18:03:31 2000 Toshiyasu Morita (toshi.morita@sega.com)
5660 J"orn Rennecke <amylaar@cygnus.co.uk>
5661
5662 * sh.md (block_lump_real_i4): Add missing clobber of T_REG
5663 (block_lump_real): Likewise.
5664
5665 2000-04-05 Chris Demetriou <cgd@netbsd.org>
5666
5667 * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
5668 remaining non-zero debugging masks.
5669
5670 Wed Apr 5 09:44:07 2000 Jeffrey A Law (law@cygnus.com)
5671
5672 * basic-block.h (verify_flow_info): Declare.
5673 (flow_loop_outside_edge_p): Declare.
5674 * flow.c (verify_flow_info): Remove declaration.
5675 (clear_log_links, flow_loop_outside_edge_p): Likewise.
5676
5677 Wed Apr 5 09:34:26 2000 Philippe De Muyter <phdm@macqel.be>
5678
5679 * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
5680 not C++ comments.
5681
5682 2000-04-05 Jakub Jelinek <jakub@redhat.com>
5683
5684 * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
5685 snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
5686 seqdi_zero_trunc+1): Allow splits only if registers are
5687 different.
5688
5689 2000-04-04 Ulrich Drepper <drepper@cygnus.com>
5690
5691 * acconfig.h: Add HAVE_GAS_HIDDEN.
5692 * config.in: Regenerated.
5693 * configure.in: Add test for .hidden pseudo-op in gas.
5694 * configure: Regenerated.
5695 * crtstuff.c: Include auto-host.h.
5696 Emit additional .hidden pseudo-op for __dso_handle if the
5697 assembler knows about it.
5698
5699 2000-04-04 Philippe De Muyter <phdm@macqel.be>
5700
5701 * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
5702 before freeing argnames.
5703 * cpplib.c (do_ifndef): Cast return value of xstrdup.
5704
5705 2000-04-05 Michael Meissner <meissner@redhat.com>
5706
5707 * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
5708 Walton <jonboy@gordian.com> to make memory references with update
5709 work wtih -mregnames.
5710
5711 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5712
5713 * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
5714 (regrename_optimize): Rename variables `def_uses' and
5715 `ext_basic_blocks' to avoid conflicts with similarly named
5716 typedefs in traditional C.
5717
5718 * calls.c (initialize_argument_information): Fix typo in previous
5719 change.
5720
5721 2000-04-04 Richard Henderson <rth@cygnus.com>
5722
5723 * regrename.c (consider_available): Test fixed_regs not
5724 PIC_OFFSET_TABLE_REGNUM.
5725
5726 2000-04-04 Geoff Keating <geoffk@cygnus.com>
5727
5728 * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
5729 crtend.
5730 (CRTSTUFF_T_CFLAGS_S): Delete definition.
5731 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
5732 (ENDFILE_LINUX_SPEC): Always use crtend.
5733 * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
5734 (powerpc-*-linux-gnu): Likewise.
5735 * configure: Regenerate.
5736
5737 * config/rs6000/eabi.h: Don't include sysv4.h.
5738 (MULTILIB_DEFAULTS): Don't define.
5739 * config/rs6000/eabiaix.h: Don't include eabi.h.
5740 * config/rs6000/eabile.h: Delete.
5741 * config/rs6000/eabilesim.h: Delete.
5742 * config/rs6000/eabisim.h: Don't include eabi.h.
5743 * config/rs6000/linux.h: Don't include sysv4.h.
5744 (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
5745 (MULTILIB_DEFAULTS): Don't redefine.
5746 * config/rs6000/rtems.h: Don't include eabi.h.
5747 * config/rs6000/sol2.h: Don't include sysv4le.h.
5748 * config/rs6000/sysv4le.h: Don't include sysv4.h.
5749 * config/rs6000/t-ppc: Delete.
5750 * config/rs6000/t-ppcgas: Correct comment.
5751 * config/rs6000/t-ppcos: Correct comment. Don't build
5752 multilibs for -fPIC, rather use -fPIC -mstrict-align
5753 as default.
5754 * config/rs6000/t-ppc: Delete.
5755 * config/rs6000/vxppc.h: Don't include sysv4.h.
5756 * config/rs6000/vxppcle.h: Delete.
5757 * configure.in: Use multiple header files for p2pc ELF targets
5758 powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
5759 powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
5760 powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
5761 powerpc-vxworks, powerpcle-vxworks. Assume GAS functionality is
5762 always available for these platforms.
5763
5764 2000-04-04 Richard Henderson <rth@cygnus.com>
5765
5766 * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
5767
5768 2000-04-04 Stan Cox <scox@cygnus.com>
5769
5770 * Makefile.in: Add rules for regrename.o
5771 * regrename.c: New file.
5772 * rtl.h (regrename_optimize): Add prototype.
5773 * toplev.c (rename_registers_dump, flag_rename_registers): New variables
5774 (compile_file, decode_d_option): Add support for -frename-registers.
5775 (rest_of_compilation): Call regrename_optimize.
5776 * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
5777 New macros.
5778
5779 2000-04-04 Martin v. Löwis <loewis@informatik.hu-berlin.de>
5780
5781 * Makefile (gccbug): New target.
5782 (doc): Depend on it.
5783 * gcc.texi (Bugs): Link subnodes.
5784 (gccbug): New node.
5785 * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
5786 Document severities, priorities, and classes in bug form.
5787
5788 2000-04-04 Zack Weinberg <zack@wolery.cumb.org>
5789
5790 * cpplex.c (trigraph_map, speccase): Combine into single
5791 table, chartab.
5792 (NORMAL, NONTRI): New macros.
5793 (_cpp_read_and_prescan): Change to use unified table. Use
5794 is_hspace to test for whitespace.
5795
5796 * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
5797 definition that doesn't provoke the "empty body in an
5798 if-statement" warning.
5799
5800 2000-04-04 Clinton Popetz <cpopetz@cygnus.com>
5801
5802 * builtins.c (expand_builtin_strlen): Force the source to
5803 be a memory address.
5804
5805 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5806
5807 * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
5808
5809 Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka <jh@suse.cz>
5810
5811 * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
5812 ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants.
5813 (ECF_IS_CONST): Rename to ECF_CONST.
5814 (special_function_p): Make static, change interface.
5815 (flags_from_decl_or_type, try_to_integrate): Break out from ...
5816 (expand_call) ... here; convert number of variables to flags.
5817 (emit_library_call_vlue_1): Likewise.
5818 (setjmp_call_p): New function.
5819 (initialize_argument_information): Accepts flags as argument;
5820 return flags.
5821 (precompute_arguments): Likewise.
5822 * tree.h (special_function_p): Remove.
5823 (setjmp_call_p): Add prototype.
5824
5825 2000-04-04 Jakub Jelinek <jakub@redhat.com>
5826
5827 * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
5828 so that addresses are offsetable by up to 16 bytes.
5829 (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
5830 non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
5831 offsetable.
5832
5833 * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
5834 (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
5835 (movsf): Don't force any constant to memory if target is integer
5836 hard register.
5837 Move fp_zero_operand check below the const0_rtx check.
5838 (movtf): Likewise. Also allow fp_zero_operand for stores into
5839 memory.
5840 (movdf): Likewise. Also allow fp_zero_operand for stores into
5841 memory and into integer hard registers.
5842 (clear_df, clear_dfp, movdf_const_intreg_sp32,
5843 movdf_const_intreg_sp64): Remove.
5844 (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
5845 conditions.
5846 (movdf_no_e_insn_v9_sp32): New pattern.
5847 (movdf_insn_v9only): Remove.
5848 (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
5849 (movdf_insn_sp64): Remove.
5850 (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
5851 (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
5852 (following splits): Rewrite conditions. Add two new splits
5853 for storing 0.0 into memory and registers.
5854 (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
5855 (movtf_insn_sp32): Redo constraints and conditions.
5856 (movtf_insn_vis_sp32): New pattern.
5857 (movtf_no_e_insn_sp32): Redo constraints and conditions.
5858 (movtf_insn_hq_sp64): Likewise.
5859 (movtf_insn_hq_vis_sp64): New pattern.
5860 (movtf_insn_sp64): Redo constraints and conditions.
5861 (movtf_insn_vis_sp64): New pattern.
5862 (movtf_no_e_insn_sp64): Redo constraints and conditions.
5863 (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
5864 or memory.
5865 * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
5866 -mvis or -m64 to take down the number of various reload patterns.
5867
5868 Tue Apr 4 00:41:53 2000 Jeffrey A Law (law@cygnus.com)
5869
5870 * pa/pa-64.h: New file.
5871 * pa/pa64-regs.h: New file.
5872 * pa/pa64-start.h: New file.
5873 * pa/t-pa64: New file.
5874 * pa/xm-pa64hpux.h: New file.
5875
5876 2000-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5877
5878 * sparc.c (output_restore_regs): Prototype.
5879 (sparc_emit_float_lib_cmp): Constification.
5880
5881 * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
5882
5883 * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
5884 Prototype.
5885
5886 * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
5887 (get_value_hash, hash_rtx): Likewise.
5888
5889 * ssa.c (compute_conservative_reg_partition): Prototype.
5890
5891 * tree.c (mark_hash_entry): Prototype.
5892
5893 2000-04-03 Zack Weinberg <zack@wolery.cumb.org>
5894
5895 * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
5896 * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
5897 * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
5898
5899 * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
5900 * objc/lang-specs.h: Likewise.
5901
5902 2000-04-03 Neil Booth <NeilB@earthling.net>
5903
5904 * cppexp.c: wrap long lines. New macros CPP_ICE, SYNTAX_ERROR
5905 and SYNTAX_ERROR2. Replace `' in messages with ''.
5906 (op_to_str): Make re-entrant.
5907 (_cpp_parse_expr): Implement new error macros. Use | rather
5908 than || to logically or 2 boolean integers. Simply expression
5909 checking we have a left operand iff needed.
5910
5911 2000-04-03 Nick Clifton <nickc@cygnus.com>
5912
5913 * Makefile.in (diagnostic.o): Depend upon diagnostic.c
5914
5915 2000-04-03 Philip Blundell <philb@gnu.org>
5916
5917 * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
5918
5919 2000-04-03 Felix Lee <flee@cygnus.com>
5920
5921 * fixinc/server.c (find_shell): New function. Avoid $SHELL.
5922 (run_shell): Use it.
5923
5924 2000-04-03 Jonathan Larmour <jlarmour@redhat.co.uk>
5925
5926 * Makefile.in (stmp-int-hdrs): Make include subdir here...
5927 (stmp-fixproto): ...rather than here.
5928
5929 Mon Apr 3 00:50:06 2000 Jason Eckhardt <jle@cygnus.com>
5930
5931 * pa.c (print_operand): Compute 'base' only inside the code paths
5932 that use it.
5933
5934 2000-04-03 Geoffrey Keating <geoffk@cygnus.com>
5935
5936 * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
5937 CEIL_DIV_EXPR.
5938
5939 2000-04-03 Philipp Thomas <pthomas@suse.de>
5940
5941 * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
5942
5943 Mon Apr 3 00:02:59 2000 Brad Lucier <lucier@math.purdue.edu>
5944
5945 * Makefile.in (alias.o): Depend on $(TREE_H).
5946
5947 2000-04-02 Zack Weinberg <zack@wolery.cumb.org>
5948
5949 * cppinit.c (cpp_start_read): Turn off -Wtraditional if
5950 processing C++.
5951 * cpplib.c (_cpp_handle_directive): Improve warnings for
5952 traditional C and indented directives.
5953
5954 * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
5955 fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
5956 fixinc/inclhack.def: Indent the # of #include_next one space.
5957 * cp/rtti.c: Un-indent #if and #endif.
5958
5959 * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
5960 syntax error, but an error has already been printed.
5961 * cpplex.c (_cpp_parse_assertion): Give a more specific error
5962 message when called with nothing remaining on the line.
5963 (_cpp_lex_token): If _cpp_parse_assertion fails, return an
5964 OTHER token, not an ASSERTION.
5965 * cpplib.c (do_assert): When we create a 'base' node, clear
5966 its aschain pointer.
5967
5968 2000-04-02 Neil Booth <NeilB@earthling.net>
5969
5970 * cppexp.c: New typedef op_t. struct operation and struct
5971 token updated to use it.
5972 (op_to_str): New function.
5973 (_cpp_parse_expr): Error messages modified to use op_to_str.
5974
5975 2000-04-02 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5976
5977 * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
5978 before checking MUST_PASS_IN_STACK.
5979
5980 2000-04-02 Neil Booth <NeilB@earthling.net>
5981
5982 * cppexp.c: New FINISHED dummy token. Combine operator initial
5983 flags and initial priority into a single constant. New
5984 EQUALITY macro. New operator flag SHORT_CIRCUIT.
5985 (_parse_cpp_expr): Implement new constants. Take left operand
5986 checks out of reduction loop. Handle SHORT_CIRCUIT. End of
5987 parse indicated by reducing FINISHED token. Remove new lines
5988 from cpp_error messages.
5989
5990 2000-04-01 Mark Mitchell <mark@codesourcery.com>
5991
5992 * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
5993 permanent obstack.
5994
5995 2000-04-01 Zack Weinberg <zack@wolery.cumb.org>
5996
5997 * cpplib.c: Include symcat.h. Add 'origin' field to struct
5998 directive. Add origin values to DIRECTIVE_TABLE. Generate
5999 the strings and function names on the fly. Take the #sccs
6000 entry out of the table if SCCS_DIRECTIVE is not defined.
6001 (_cpp_handle_directive): Decide if the # was at the beginning
6002 of the line here. Issue -pedantic warnings for extended
6003 directives here. Warn about K+R directives with the #
6004 indented, and C89/extended directives with the # not indented,
6005 here.
6006 (do_import, do_include_next, do_warning, do_ident, do_sccs,
6007 do_assert, do_unassert): Don't issue pedantic warning here.
6008
6009 * cpphash.h: Add CPP_WTRADITIONAL macro.
6010 * cpplib.h (struct cpp_options): Rename warn_stringify to
6011 warn_traditional; update comments.
6012 * cppinit.c (handle_option): Set warn_traditional not
6013 warn_stringify.
6014 * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
6015 CPP_WTRADITIONAL (pfile).
6016 * cpplex.c (_cpp_lex_token): Don't decide if directives should
6017 be ignored in -traditional mode here.
6018
6019 * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
6020 to initialize speccase[] and trigraph_map[]. Delete all
6021 references to pfile->input_speccase. Always treat '?' as a
6022 special character. Remove table-initialization code from
6023 _cpp_init_input_buffer.
6024
6025 * cpplib.h (struct cpp_reader): Remove input_speccase field.
6026 * cppinit.c (cpp_cleanup): Don't free input_speccase.
6027
6028 2000-04-01 Richard Henderson <rth@cygnus.com>
6029
6030 * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
6031 (mostlyclean): Likewise.
6032
6033 * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
6034 (struct dump_file_info, enum dump_file_index, dump_file): New.
6035 (open_dump_file): Take a dump_file_index not a suffix, and a decl
6036 not a string. Clean out file if we havn't yet done so. Do nothing
6037 if the dump isn't enabled.
6038 (close_dump_file): Do nothing if the dump isn't open. Dump
6039 graph data if requested.
6040 (dump_rtl, clean_dump_file): Remove.
6041 (compile_file): Don't clean the dump files. Only finalize .bp dump
6042 if flag_test_coverage or flag_branch_probabilities. Only finalize
6043 .combine dump if optimizing. Iterate over dump_file to finalize the
6044 graph dumps.
6045 (rest_of_compilation): Update for open_dump_file/close_dump_file.
6046 Convert all uses of dump_rtl.
6047 (decode_d_option): Iterate over dump_file to implement 'a' and to
6048 locate pass-specific dumps.
6049
6050 2000-04-01 Neil Booth <NeilB@earthling.net>
6051
6052 * cppexp.c: Redefine priority constants.
6053 (_cpp_parse_expr): Replace left and right priority scheme with
6054 single priority logic. Move LOGICAL to same place as COMPARE.
6055 Remove bogus check for multiple unary +/- operators.
6056
6057 2000-04-01 Neil Booth <NeilB@earthling.net>
6058
6059 * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
6060 within the switch statement. Binary operations break out of
6061 the switch naturally. '(' tokens handled by forcing
6062 immediate shift. ')' handled by forcing immediate reduce to
6063 the previous '('. New error messages.
6064
6065 2000-03-31 Geoff Keating <geoffk@cygnus.com>
6066
6067 * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
6068 part', it's already in use. Use %K instead. Add a return at the
6069 end of what is now %K.
6070 * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
6071
6072 Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka <jh@suse.cz>
6073
6074 * builtins.c (expand_builtin_apply): Pass proper parameters to
6075 allocate_dynamic_stack_space.
6076 * calls.c (emit_call_1): Do not adjust stack pointer for SIB,
6077 update stack_pointer_delta; do not update arg_size_so_far.
6078 (compute_argument_block_size): Use stack_delta instead of
6079 stack_pointer_pending and arg_size_so_far.
6080 (expand_call): Add sanity checking for stack_pointer_delta;
6081 save and restore stack_pointer_delta for SIB, use
6082 stack_pointer_delta for alignment; do not update arg_space_so_far.
6083 (emit_library_call_value): Use stack_pointer_delta for alignment.
6084 (store_one_arg): Do not update arg_space_so_far.
6085 * explow.c (adjust_stack, anti_adjust_stack): Update
6086 stack_pointer_delta.
6087 (allocate_dynamic_stack_space): Add sanity checking for
6088 stack_pointer_delta.
6089 * expr.c (init_expr, clear_pending_stack_adjust): Clear
6090 stack_pointer_delta.
6091 (emit_push_insn): Update stack_pointer_delta.
6092 * function.h (struct expr_status): Add x_stack_pointer_delta;
6093 remove x_arg_space_so_far.
6094 (arg_space_so_far): Remove.
6095 (stack_pointer_delta): New macro.
6096
6097 2000-03-31 Zack Weinberg <zack@wolery.cumb.org>
6098
6099 * cpplib.h: Merge struct cpp_options into struct cpp_reader.
6100 Reorder struct cpp_options and struct cpp_reader for better
6101 packing. Replace CPP_OPTIONS macro with CPP_OPTION which
6102 takes two args. Change all 'char' flags to 'unsigned char'.
6103 Move show_column flag into struct cpp_options. Don't
6104 prototype cpp_options_init.
6105 * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
6106 cppinit.c, cpplex.c, cpplib.c:
6107 Replace CPP_OPTIONS (pfile)->whatever with
6108 CPP_OPTION (pfile, whatever), and likewise for
6109 opts = CPP_OPTIONS (pfile); ... opts->whatever;
6110
6111 * cppinit.c (merge_include_chains): Take a cpp_reader *.
6112 Extract CPP_OPTION (pfile, pending) and work with that
6113 directly.
6114 (cpp_options_init): Delete.
6115 (cpp_reader_init): Turn on on-by-default options here.
6116 Allocate the pending structure here.
6117 (cl_options, enum opt_code): Define these from the same table,
6118 kept in a large macro. Add -fshow-column and -fno-show-column
6119 options.
6120
6121 * cpperror.c (v_message): If show_column is off, don't print
6122 the column number.
6123
6124 * cppmain.c: Update for new interface.
6125 * fix-header.c: Likewise.
6126
6127 2000-03-30 Geoff Keating <geoffk@cygnus.com>
6128
6129 * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
6130 definition.
6131 * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
6132 are passed to any invocation of AR_FOR_TARGET.
6133 (AR_CREATE_FOR_TARGET): New macro.
6134 (AR_EXTRACT_FOR_TARGET): New macro.
6135 (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
6136 AR_EXTRACT_FOR_TARGET.
6137 (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
6138 in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
6139 `$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and
6140 AR_EXTRACT_FOR_TARGET to sub-makes.
6141
6142 2000-03-31 Neil Booth <NeilB@earthling.net>
6143
6144 * cppexp.c: Delete SKIP_OPERAND. Correct priority
6145 PAREN_INNER_PRIO.
6146 (_cpp_parse_expr): Check for multiple unary +/- operators.
6147 Correct priorities of ':' and '?'. Treat ')' as having a
6148 value. Ensure conditional expression is not void.
6149
6150 2000-03-31 Mark Mitchell <mark@codesourcery.com>
6151
6152 * alias.c (canon_rtx): Make it global.
6153 (rtx_equal_for_memref_p): CONST_INT equality is now pointer
6154 equality.
6155 * cse.c (struct table_elt): Add canon_exp.
6156 (insert): Clear it.
6157 (invalidate): Canonicalize expressions only once.
6158 * rtl.h (canon_rtx): Declare.
6159
6160 2000-03-30 Mark Mitchell <mark@codesourcery.com>
6161
6162 * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
6163 * alias.c (reg_known_value): Add comments.
6164 (init_alias_analysis): Likewise.
6165 * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
6166 address.
6167 (cse_basic_block): Fix typo in comment.
6168 * emit-rtl.c: Include hashtab.h.
6169 (const_int_htab): New variable.
6170 (const_int_htab_hash): New function.
6171 (const_int_htab_eq): Likewise.
6172 (rtx_htab_mark_1): Likewise.
6173 (rtx_htab_mark): Likewise.
6174 (gen_rtx_CONST_INT): Cache all CONST_INTs.
6175 (unshare_all_rtx): Fix formatting.
6176 (init_emit_once): Initialize const_int_htab.
6177 * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
6178 address.
6179 * rtl.texi: Document the fact that all CONST_INTs with the same
6180 value are shared.
6181
6182 2000-03-30 Richard Henderson <rth@cygnus.com>
6183
6184 * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
6185
6186 2000-03-30 Zack Weinberg <zack@wolery.cumb.org>
6187
6188 * configure.in: Comment out --enable-c-cpplib stanza.
6189 * configure: Regenerate.
6190
6191 Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6192
6193 * expr.c (store_constructor): Properly compute displacement and
6194 alignment when offset is variable.
6195
6196 * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
6197 cases of alignment in bytes.
6198
6199 Thu Mar 30 13:30:40 2000 Jeffrey A Law (law@cygnus.com)
6200
6201 * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
6202 since it is used to generate c-parse.y.
6203 * objc-parse.c, objc-parse.y: Regenerated.
6204
6205 * function.c (expand_function_end): Pass alignment argument to
6206 emit_block_move in bits, not bytes.
6207
6208 Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6209
6210 * expr.c (move_by_pieces_ninsns): Fix one more missing align
6211 correction.
6212
6213 * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
6214
6215 * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
6216 * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
6217 * function.c (assign_parms): Likewise.
6218 * integrate.c (expand_inline_function): Likewise.
6219 * stmt.c (expand_decl): Likewise.
6220 (copy_rtx_and_substitute): Likewise.
6221 * expr.c (expand_expr, expand_expr_unaligned): Likewise.
6222 (clear_by_pieces): Fix error in last change.
6223 * emit-rtl.c (init_emit): Set known registers alignment in bits.
6224 * function.h (regno_pointer_align): Now unsigned.
6225 * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
6226 is in bits.
6227 * config/i386/i386.c (aligned_operand): Likewise.
6228 * config/sparc/sparc.c (mem_min_alignment): Likewise.
6229 * config/alpha/alpha.c (aligned_memory_operand): Likewise.
6230 (unaligned_memory_operand): Likewise.
6231 (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
6232 Also make alignments and sizes unsigned and some whitespace cleanup.
6233 (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
6234
6235 * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
6236 (expand_builtin_apply): Pass alignment to emit_block_move in bits.
6237 (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
6238 (expand_builtin_memset): Likewise, but to clear_storage.
6239 * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
6240 (restore_fixed_argument_area): Likewise.
6241 (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
6242 (load_register_parameters): Likewise, to emit_group_load.
6243 (expand_call): Likewise, to emit_group_store and emit_block_move.
6244 (emit_library_call_value_1): Likewise, to emit_block_move.
6245 (store_one_arg): Likewise, and to emit_push_insn.
6246 * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
6247 (extract_fixed_bit_field, extract_split_bit_field): Likewise.
6248 * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
6249 (emit_block_move, emit_group_load, emit_group_store): Likewise.
6250 (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
6251 (expand_assigment, store_expr, store_constructor_field): Likewise.
6252 (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
6253 (store_constructor, store_field, get_inner_reference): Likewise.
6254 Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
6255 (expand_expr, case COMPONENT_REF): Likewise.
6256 (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
6257 and positions; reindent code.
6258 * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
6259 * function.c (purge_addressof_1): Pass bit align to store_bit_field.
6260 (assign_parms): Likewise to emit_group_store.
6261 * optabs.c (prepare_cmp_insn): Alignment is in bits.
6262 (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
6263 * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
6264 (expand_return): Likewise to {extract,store}_bit_field.
6265 * stor-layout.c (get_mode_alignment): Minor cleanup.
6266 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
6267 * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
6268
6269 2000-03-29 Nick Clifton <nickc@cygnus.com>
6270
6271 * config/arm/arm.h: Undo effects of previous delta:
6272 (ASM_SPEC): Do not define.
6273 (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
6274
6275 * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
6276 typo.
6277
6278 2000-03-29 Zack Weinberg <zack@wolery.cumb.org>
6279
6280 * cppinit.c (cpp_start_read): Call initialize_dependency_output
6281 only after reading in the primary source file.
6282
6283 2000-03-29 Geoff Keating <geoffk@cygnus.com>
6284
6285 * c-common.c (c_common_nodes_and_builtins): The first parameter to
6286 __builtin_va_start and __builtin_va_copy is now either a 'va_list'
6287 or a reference to a va_list.
6288 * builtins.c (stabilize_va_list): Simplify now we don't have to
6289 work around C array address decay.
6290 * c-typeck.c (convert_for_assignment): Handle assignment to
6291 a reference parameter by taking the address of the RHS.
6292 * ginclude/stdarg.h (va_start): Don't take address of first parameter.
6293 (va_copy): Likewise.
6294 (__va_copy): Likewise.
6295 * ginclude/varargs.h (va_start): Likewise.
6296 (__va_copy): Likewise.
6297
6298 Wed Mar 29 15:44:53 2000 Jeffrey A Law (law@cygnus.com)
6299
6300 * i386/djgpp.h: Remove extraneous "+".
6301
6302 * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
6303
6304 * calls.c (expand_call): Fix typo in last change.
6305
6306 2000-03-29 Jason Merrill <jason@casey.cygnus.com>
6307
6308 * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
6309 been expanded.
6310
6311 Wed Mar 29 15:39:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6312
6313 * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
6314 (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
6315 (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
6316 * tree.c (bit_position, byte_position): Likewise.
6317 * tree.h: Declare new functions.
6318
6319 2000-03-29 Nick Clifton <nickc@cygnus.com>
6320
6321 * config/arm/arm.c: Minor formatting changes/
6322 * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
6323 already defined.
6324 (ASM_SPEC): Define if not already defined.
6325
6326 2000-03-29 Zack Weinberg <zack@wolery.cumb.org>
6327
6328 * cppfiles.c (cpp_read_file): Don't pass zero-length string to
6329 _cpp_calc_hash.
6330
6331 2000-03-29 Jakub Jelinek <jakub@redhat.com>
6332
6333 * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
6334 value, don't output it as unsigned.
6335
6336 Wed Mar 29 10:53:49 2000 Jeffrey A Law (law@cygnus.com)
6337
6338 * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
6339
6340 2000-03-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6341
6342 * c-common.c (c_common_nodes_and_builtins): Don't special case
6343 cplus_mode when declaring builtin bzero/bcmp, always avoid
6344 prototype arguments.
6345
6346 2000-03-29 Bruce Korb <bkorb@gnu.org>
6347
6348 * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
6349 to a non-file
6350
6351 Wed Mar 29 15:08:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
6352
6353 Convert ACCUMULATE_OUTGOING_ARGS to an expression.
6354 * calls.c (PUSH_ARGS_REVERSED) Change to expression.
6355 (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
6356 (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
6357 (save_fixed_argument_area, restore_fixed_argument_area):
6358 conditionize by #ifdef REG_PARM_STACK_SPACE only.
6359 (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
6360 to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
6361 (precompute_register_parameters): Avoid #ifdefs on
6362 ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
6363 (stire_one_args): Likewise.
6364 (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
6365 (emit_library_call_value_1): Likewise.
6366 (compute_argument_block_size): Align to STACK_BOUNDARY only for
6367 ACCUMULATE_OUTGOING_ARGS.
6368 * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
6369 value.
6370 (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
6371 (use_crosses_set_p): Likewise.
6372 * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
6373 #define ACCUMULATE_OUTGOING_ARGS 1.
6374 * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
6375 frames.
6376 * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
6377 constants.
6378 (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
6379 (TARGET_SWITCHES): Add push-args, no-push-args,
6380 accumulate-outgoing-args and no-accumulate-outgoing-args.
6381 (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
6382 * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
6383 (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
6384 and PUSH_ROUNDING.
6385 (emit_push_insn): Likewise.
6386 * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6387 (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
6388 * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6389 (STACK_DYNAMIC_OFFSET): Define correctly for both
6390 ACCUMULATE_OUTGOING_ARGS and normal mode.
6391 * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
6392 * tm.texi (PUSH_ARGS): Document.
6393 (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
6394
6395 Wed Mar 29 11:51:13 MET DST 2000 Jan Hubicka <jh@suse.cz>
6396
6397 * flags.h (flag_optimize_sibling_calls): Declare.
6398 * calls.c (expand_call): Fail sibcall when
6399 !flag_optimize_sibling_calls
6400 * invoke.texi (flag_optimize_sibling_calls): Document.
6401 * toplev.c (flag_optimize_sibling_calls): New global variable.
6402 (f_options): Add flag_optimize_sibling_calls.
6403 (rest_of_compilation): Conditionize
6404 optimize_sibling_and_tail_recursive_calls by
6405 flag_optimize_sibling_calls.
6406 (main): Set flag_optimize_sibling_calls for -O2.
6407 * stmt.c (expand_return): Conditionize tail recursion by
6408 flag_optimize_sibling_calls.
6409
6410 2000-03-29 Richard Henderson <rth@cygnus.com>
6411
6412 * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
6413 (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
6414
6415 2000-03-29 Nathan Sidwell <nathan@codesourcery.com>
6416
6417 * except.c (add_eh_table_entry): Mark type_info's as referenced.
6418
6419 2000-03-29 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6420
6421 * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
6422 is given.
6423 * config/rs6000/aix43.h (CPP_SPEC): Likewise.
6424 * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
6425 * config/rs6000/aix.h: then modified likewise.
6426
6427 2000-03-28 Richard Henderson <rth@cygnus.com>
6428
6429 * rtl.h: Redistribute enum reg_note documentation.
6430 Kill trailing whitespace.
6431 * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
6432 Kill trailing whitespace.
6433
6434 2000-03-28 Zack Weinberg <zack@wolery.cumb.org>
6435
6436 * cppfiles.c (hash_IHASH): Just return i->hash.
6437 (cpp_included): Set dummy.hash using _cpp_calc_hash. Use
6438 htab_find_with_hash.
6439 (cpp_read_file): Likewise.
6440 (find_include_file): Likewise. Properly initialize
6441 ih->nshort. Share ih->name and ih->nshort if possible.
6442 * cpphash.c (_cpp_calc_hash): New function.
6443 (hash_HASHNODE): Just return h->hash.
6444 (_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use
6445 htab_find_with_hash.
6446 * cpphash.h: Prototype _cpp_calc_hash.
6447 * cppinit.c (initialize_builtins): Provide a valid hash
6448 to _cpp_make_hashnode, using _cpp_calc_hash.
6449
6450 * cpphash.c (collect_expansion): # is not a special character
6451 in object-like macros. In -traditional mode, /**/ is not
6452 token paste at the beginning or end of the line.
6453 * cpplib.c (do_include, do_import, do_include_next): If
6454 parse_include fails, return immediately.
6455
6456 2000-03-28 Jason Merrill <jason@casey.cygnus.com>
6457
6458 * config/arm/arm.md (return peepholes): Update to reflect the new
6459 call insn patterns.
6460 * config/arm/arm.c (arm_volatile_func): Also check
6461 current_function_nothrow.
6462 (output_return_instruction, output_func_prologue): Use it.
6463 (arm_output_epilogue, arm_expand_prologue): Likewise.
6464
6465 2000-03-27 Tom Tromey <tromey@cygnus.com>
6466
6467 * gcc.c (handle_braces): In {x*...} case, break out of loop if
6468 switch is found.
6469
6470 Tue Mar 28 11:55:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6471
6472 * expr.c (store_constructor): SIZE now signed.
6473 For EXPR_SIZE, don't evaluate size; just needed if constant.
6474 * fold-const.c (fold): Fix a number of cases when folded tree is
6475 wrong type.
6476 * function.c (flush_addressof): Reenable.
6477 * tree.h (flush_addressof): Likewise.
6478 * toplev.c (independent_decode_option): Look at strings_processed.
6479 * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
6480
6481 Tue Mar 28 08:29:46 2000 Jan Hubicka <jh@suse.cz>
6482
6483 * sibcall.c (indentify_call_return_value): Find last call in the chain;
6484 Allow stack adjustment after function call.
6485
6486 * regmove.c (struct csa_memlist): Make mem field rtx *.
6487 (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
6488 (try_apply_stack_adjustment): Replace whole MEM rtx.
6489 (combine_stack_adjustments_for_block): Update calls
6490 to record_one_stack_ref.
6491
6492 2000-03-28 Neil Booth <NeilB@earthling.net>
6493
6494 * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
6495 '\\' rather than a null character, so nulls are not special. Fix
6496 "\\\n" handling in end-of-buffer conditions. Use trigraph map to
6497 speed trigraph conversion.
6498 (_cpp_init_input_buffer): Initialize trigraph map.
6499
6500 2000-03-27 Alan Modra <alan@linuxcare.com.au>
6501
6502 * config/i386/i386.c (output_387_binary_op): Correct intel
6503 mode assembly output, and add spaces after commas in AT&T
6504 output. Correct Unixware assembler comment. Document input
6505 constraints. Comment fp operations. Reduce profligate buffer
6506 size. Remove extraneous abort. Localize temp var.
6507 (SYSV386_COMPAT): Define. Add !SYSV386_COMPAT code.
6508 (output_fix_trunc): Add spaces after commas in assembly output.
6509
6510 2000-03-27 Richard Henderson <rth@cygnus.com>
6511
6512 * i386-protos.h (ix86_match_ccmode): Declare.
6513 * i386.c (ix86_match_ccmode): New.
6514 (ix86_expand_fp_compare): Update for pattern renames.
6515 (ix86_expand_strlensi_unroll_1): Likewise.
6516 * i386.h (EXTRA_CC_MODES): Add CCZ.
6517 (SELECT_CC_MODE): Use it for EQ/NE zero.
6518 * i386.md (cmpsi_ccz_1): New.
6519 (cmpqi_ccz_1): New.
6520 (*testsi_ccz_1): New.
6521 (testqi_ccz_1): New.
6522 (cmpsi_ccno_1): Rename from cmpsi_0.
6523 (testsi_ccno_1): Rename from testsi_1.
6524 (testqi_ccno_1): Rename from testqi_1.
6525 (*testqi_ext_ccz_0): Rename from testqi_ext_0.
6526 (testqi_ext_ccno_0): Rename from *testqi_ext_1.
6527 (*cmphi_0): Use ix86_match_ccmode.
6528 (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
6529 (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
6530 (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
6531 (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
6532 (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
6533 (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
6534 (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
6535 (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
6536 (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
6537 (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
6538 (appropriate peepholes): Likewise.
6539 (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
6540 (*subsi_3, *subhi_3, *subqi_3): Remove.
6541 (*negdi2_1+1 splitter): Use CCZ for neg patterns.
6542 (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
6543 (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
6544 (*neghi2_cmpz, *negqi2_cmpz): Similarly.
6545 (x86_shift_adj_1): Use CCZ.
6546 (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
6547
6548 2000-03-27 Stan Cox <scox@cygnus.com>
6549
6550 * resource.h (mark_resource_type): New.
6551 * resource.c (find_dead_or_set_registers, mark_target_live_regs,
6552 find_free_register): Use mark_resource_type.
6553 (mark_set_resources): Change include_delayed_effects
6554 to mark_resource_type.
6555 * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
6556 redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
6557 Use mark_resource_type.
6558
6559 2000-03-27 Richard Henderson <rth@cygnus.com>
6560
6561 * i386.md (call_pop_0, call_value_pop_0): New.
6562 (call_pop_1): Remove constraint from unused arg. Support sibcalls.
6563 (call_value_pop_1): Likewise.
6564 (call_0, call_value_0): New.
6565 (call_1, call_value_1): Remove constraint from unused arg.
6566
6567 2000-03-27 Nick Clifton <nickc@cygnus.com>
6568
6569 * invoke.texi (Spec Files): Document new spec % command created by
6570 Tom Tromey's recent patch.
6571
6572 2000-03-27 Jakub Jelinek <jakub@redhat.com>
6573
6574 * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
6575 if not defined.
6576
6577 Mon Mar 27 06:04:22 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6578
6579 * expr.c (expand_assignment): Fix typo in last change.
6580
6581 * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
6582
6583 Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6584
6585 * c-convert.c (convert): Return if output or input type is ERROR_MARK.
6586 * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
6587 and DECL_INLINE if FUNCTION_DECL.
6588 (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
6589 (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
6590 Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
6591 (combine_parm_decls): Likewise.
6592 * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
6593 * print-tree.c (print_node): Likewise.
6594 Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
6595 DECL_TRANSPARENT_UNION on proper decl types.
6596 Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
6597 * stor-layout.c (layout_decl): Only check DECL_PACKED and
6598 DECL_BIT_FIELD of FIELD_DECL.
6599 * tree.h (DECL_RESULT_FLD): New macro.
6600
6601 * expr.c (expand_assignment): Add code to handle variable-sized
6602 BLKmode case.
6603
6604 2000-03-26 Richard Henderson <rth@cygnus.com>
6605
6606 * calls.c (expand_call): Pass parms not original exp to
6607 optimize_tail_recursion. Mind return value instead of looking
6608 for a barrier.
6609 * stmt.c (optimize_tail_recursion): Take parameter list, not entire
6610 call_expr. Move checks for call_expr and current_function_decl ...
6611 (expand_return): ... here.
6612
6613 2000-03-26 Tom Tromey <tromey@cygnus.com>
6614
6615 * gcc.c (handle_braces): Recognize `%{<S}' construct.
6616 (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
6617 defines.
6618 (process_command): Use them.
6619 (check_live_switch): Likewise.
6620 (give_switch): Skip ignored switches.
6621
6622 2000-03-26 Jan Hubicka <jh@suse.cz>
6623
6624 * jump.c (jump_optimize_1): Fix typo in elide optimizations
6625 for minimal jump pass test.
6626
6627 2000-03-26 Mark Mitchell <mark@codesourcery.com>
6628
6629 * integrate.c (function_cannot_inline_p): Do inline functions that
6630 return `void'.
6631
6632 Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6633
6634 * stor-layout.c (layout_type, set_sizetype): early_type_list is
6635 now a list of TREE_LIST entries, not types.
6636 * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
6637
6638 * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
6639 * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
6640 int_bit_position.
6641 * config/mips/mips.c (function_arg): Likewise; also remove cast
6642 and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
6643 (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
6644 * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
6645 * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
6646 (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
6647 (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
6648 (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
6649 (struct mips_arg): arg_number, arg_words, fp_arg_words, and
6650 num_adjusts now unsigned.
6651 (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
6652 * config/sparc/sparc.c (struct function_arg_record_value_parms):
6653 NREGS now unsigned.
6654 (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
6655 as is BITPOS variable; use host_integerp and int_bit_position.
6656 (function_arg_record_value_2): Likewise.
6657 (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
6658 Variable REGNO now unsigned.
6659 (function_arg_record_value): NREGS now unsigned.
6660
6661 2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk>
6662
6663 * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
6664
6665 Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6666
6667 * Rework fields used to describe positions of bitfields and
6668 modify sizes to be unsigned and use HOST_WIDE_INT.
6669 * alias.c (reg_known_value_size): Now unsigned.
6670 * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
6671 (really_start_incremental_init): Use bitsize_zero_node.
6672 (push_init_level, pop_init_level, output_init_element): Likewise.
6673 Use bitsize_unit_node and bitsize_one_node.
6674 (output_pending_init_elements, process_init_element): Likewise.
6675 * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
6676 (make_extraction): Position and length HOST_WIDE_INT and unsigned
6677 HOST_WIDE_INT, respectively.
6678 (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
6679 (num_sign_bit_copies): Returns unsigned.
6680 BITWIDTH now unsigned; rework arithmetic.
6681 Remove recursive call from arg to MAX.
6682 (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
6683 (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
6684 REGNO now unsigned.
6685 (set_nonzero_bit_and_sign_copies): NUM now unsigned.
6686 (find_split_point, expand_compound_operation, make_extraction): LEN
6687 now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
6688 (make_field_assignment): Likewise.
6689 (combine_simplify_rtx): Add cast.
6690 (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
6691 (force_to_mode): WIDTH now unsigned; add cast.
6692 (if_then_else_cond): SIZE now unsigned.
6693 (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
6694 (extended_count): Now returns unsigned.
6695 (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
6696 Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
6697 (simplify_comparison): MODE_WIDTH now unsigned.
6698 (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
6699 (mark_used_regs_combine): Likewise; rework arithmetic.
6700 (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
6701 (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
6702 (record_promoted_value): REGNO now unsigned.
6703 (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
6704 (get_last_value): REGNO now unsigned.
6705 (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
6706 (reg_dead_regno, reg_dead_endregno): Now unsigned.
6707 (remove_death): Arg REGNO now unsigned.
6708 (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
6709 (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
6710 now unsigned.
6711 * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
6712 * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
6713 (struct cse_reg_info): REGNO now unsigned.
6714 (cached_regno): Now unsigned.
6715 (REGNO_QTY_VALID_P): Add cast.
6716 (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
6717 (remove_invalid_regs): Likewise.
6718 (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
6719 as are variables END and I.
6720 (get_cse_reg_info, insert): Likewise.
6721 (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
6722 (canon_hash): Likewise.
6723 (insert_regs, lookup_for_remove): REGNO now unsigned.
6724 (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
6725 New variable RN.
6726 * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
6727 * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
6728 * emit-rtl.c (subreg_realpart_p): Add cast.
6729 (operand_subword): Arg I is now unsigned as is var PARTWORDS.
6730 (operand_subword_force): Arg I is now unsigned.
6731 * except.c (eh_regs): Variable I is now unsigned.
6732 * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
6733 * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
6734 length is unsigned HOST_WIDE_INT; likewise for internal variables.
6735 (store_split_bit_field, extract_fixed_bit_field): Likewise.
6736 (extract_split_bit_field, store_bit_field, extract_bit_field):
6737 Likewise.
6738 * expr.c (store_constructor_fields, store_constructor, store_field):
6739 Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
6740 (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
6741 (do_jump): Likewise.
6742 (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
6743 MAX_SIZE is now unsigned.
6744 (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
6745 (emit_group_store): Likewise.
6746 (emit_move_insn): I now unsigned.
6747 (store_constructor): Use host_integerp, tree_low_cst, and
6748 bitsize_unit_node.
6749 (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
6750 Rework all calculations to use trees and new fields.
6751 * expr.h (promoted_input_arg): Regno now unsigned.
6752 (store_bit_field, extract_bit_field): Adjust types of pos and size.
6753 (mark_seen_cases): Arg is HOST_WIDE_INT.
6754 * flow.c (verify_wide_reg_1): REGNO now unsigned.
6755 * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
6756 precisions and alignments are unsigned.
6757 (optimize_bit_field_compare, fold_truthop): Likewise.
6758 (int_const_binop): Adjust threshold for size_int_type_wide call.
6759 (fold_convert): Likewise.
6760 (size_int_type_wide): Make table larger and fix thinko that only
6761 had half of table used.
6762 (all_ones_mask_p, fold): Precisions are unsigned.
6763 * function.c (put_reg_info_stack): REGNO is unsigned.
6764 (instantiate_decl): Size is HOST_WIDE_INT.
6765 (instantiate_virtual_regs): I is unsigned.
6766 (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
6767 (promoted_input_arg): REGNO is unsigned.
6768 * function.h (struct function): x_max_parm_reg is now unsigned.
6769 * gcse.c (max_gcse_regno): Now unsigned.
6770 (struct null_pointer_info): min_reg and max_reg now unsigned.
6771 (lookup_set, next_set): REGNO arg now unsigned.
6772 (compute_hash_table): REGNO and I now unsigned.
6773 (handle_avail_expr): regnum_for_replacing now unsigned.
6774 (cprop_insn): REGNO now unsigned.
6775 (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
6776 * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
6777 * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
6778 * hard-reg-set.h (reg_class_size): Now unsigned.
6779 * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
6780 * jump.c (mark_modified_reg): I now unsigned; add cast.
6781 (rtx_equal_for_thread_p): Add cast.
6782 * loop.c (max_reg_before_loop): Now unsigned.
6783 (struct_movable): REGNO now unsigned.
6784 (try_copy_prop): REGNO arg unsigned.
6785 (regs_match_p): XN and YN now unsigned.
6786 (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
6787 (strength_reduce): Likewise; NREGS also unsigned.
6788 (first_increment_giv, last_increment_giv unsigned): Now unsigned.
6789 * loop.h (struct iv_class): REGNO now unsigned.
6790 (max_reg_before_loop, first_increment_giv, last_increment_giv):
6791 Now unsigned.
6792 * machmode.h (mode_size, mode_unit_size): Now unsigned.
6793 (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
6794 * optabs.c (expand_binop): I and NWORDS now unsigned.
6795 (expand_unop): I now unsigned.
6796 * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
6797 print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
6798 * real.c (significand_size): Now returns unsigned.
6799 * real.h (significand_size): Likewise.
6800 * regclass.c (reg_class_size): Now unsigned.
6801 (choose_hard_reg_mode): Both operands now unsigned.
6802 (record_reg_classes): REGNO and NR now unsigned.
6803 (reg_scan): NREGS now unsigned.
6804 (reg_scan_update): old_max_regno now unsigned.
6805 (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
6806 * reload.c (find_valid_class): BEST_SIZE now unsigned.
6807 (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
6808 (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
6809 Likewise for variable R.
6810 (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
6811 as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
6812 (find_equiv_reg): Add casts.
6813 (regno_clobbered_p): Arg REGNO now unsigned.
6814 * reload.h (struct reload): NREGS now unsigned.
6815 (refers_to_regno_for_reload_p): Regno args are unsigned.
6816 (regno_clobbered_p): Likewise.
6817 * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
6818 (compute_use_by_pseudos): REGNO now unsigned.
6819 (find_reg): I and J now unsigned, new variable K, and change loop
6820 variables accordingly; THIS_NREGS now unsigned.
6821 (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
6822 (spill_hard_reg): REGNO arg now unsigned; add casts.
6823 (forget_old_reloads_1): REGNO, NR, and I now unsigned.
6824 (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
6825 (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
6826 END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
6827 (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
6828 (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
6829 (emit_reload_insns): REGNO now unsigned.
6830 (reload_cse_move2add): Add cast.
6831 (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
6832 and rework loop.
6833 * resource.c (mark_referenced_resources, mark_set_resources): New
6834 variable R; REGNO and LAST_REGNO now unsigned.
6835 (mark_target_live_regs): J and REGNO now unsigned.
6836 * rtl.c (mode_size, mode_unit_size): Now unsigned.
6837 * rtl.h (union rtunion_def): New field rtuint.
6838 (XCUINT): New macro.
6839 (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
6840 (operand_subword, operand_subword_force): Word number is unsigned.
6841 (choose_hard_reg_mode): Operands are unsigned.
6842 (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
6843 (find_regno_note, find_regno_fusage, replace_regs): Likewise.
6844 (regno_use_in, combine_instructions, remove_death): Likewise.
6845 (reg_scan, reg_scan_update): Likewise.
6846 (extended_count): Return is unsigned.
6847 * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
6848 INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
6849 (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
6850 (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
6851 (reg_reg_last_1): FIRS and LAST now unsigned.
6852 (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
6853 (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
6854 now unsigned.
6855 (find_regno_note, regno_use_in): Arg REGNO now unsigned.
6856 (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
6857 (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
6858 (replace_regs): Arg NREGS now unsigned.
6859 * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
6860 * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
6861 (simplify_binary_operation): Likewise.
6862 (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
6863 THIS_LAST now unsigned.
6864 (cselib_record_set): Add cast.
6865 * ssa.c (ssa_max_reg_num): Now unsigned.
6866 (rename_block): REGNO now unsigned.
6867 * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
6868 sizes now unsigned.
6869 (all_cases_count): Just return -1 not -2.
6870 COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
6871 Rework tests to use trees whenever possible.
6872 Use host_integerp and tree_low_cst.
6873 (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
6874 Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
6875 (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
6876 * stor-layout.c (mode_for_size): SIZE arg now unsigned.
6877 (smallest_mode_for_size): Likewise.
6878 (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
6879 KNOWN_ALIGN is now an alignment, so simplify code.
6880 Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
6881 (start_record_layout): Renamed from new_record_layout_info.
6882 Update to new fields.
6883 (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
6884 New functions.
6885 (place_union_field): Renamed from layout_union_field.
6886 Update to use new fields in rli.
6887 (place_field): Renamed from layout_field.
6888 Major rewrite to use new fields in rli; pass alignment to layout_decl.
6889 (finalize_record_size): Rework to use new fields in rli and handle
6890 union.
6891 (compute_record_mode): Rework to simplify and to use new DECL fields.
6892 (finalize_type_size): Make rounding more consistent.
6893 (finish_union_layout): Deleted.
6894 (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
6895 (layout_type, case RECORD_TYPE): Call new function names.
6896 (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
6897 (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
6898 (get_best_mode): UNIT is now unsigned; remove casts.
6899 * tree.c (bit_position): Compute from new fields.
6900 (byte_position, int_byte_position): New functions.
6901 (print_type_hash_statistics): Cast to remove warning.
6902 (build_range_type): Use host_integerp and tree_low_cst to try to hash.
6903 (build_index_type): Likewise; make subtype of sizetype.
6904 (build_index_2_type): Pass sizetype to build_range_type.
6905 (build_common_tree_nodes): Use size_int and bitsize_int to
6906 initialize nodes; add bitsize_{zero,one,unit}_node.
6907 * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
6908 (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
6909 (DECL_PACKED, DECL_BIT_FIELD): Likewise.
6910 (DECL_FIELD_BITPOS): Deleted.
6911 (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
6912 (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
6913 (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
6914 (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
6915 (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
6916 (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
6917 (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
6918 (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
6919 (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
6920 (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
6921 (DECL_ALIGN): Adjust to new field in union.
6922 (DECL_OFFSET_ALIGN): New field.
6923 (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
6924 (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
6925 (union tree_decl): Add struct for both aligns.
6926 (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
6927 (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
6928 (struct record_layout_info): Rework fields to have offset
6929 alignment and byte and bit position.
6930 (start_record_layout, place_field): Renamed from old names.
6931 (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
6932 (byte_position, int_byte_position): Likewise.
6933 (get_inner_reference): Change types of position and length.
6934 * unroll.c (unroll_loop): New variable R; use for some loops.
6935 MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
6936 (calculate_giv_inc): Arg REGNO now unsigned.
6937 (copy_loop_body): REGNO and SRC_REGNO now unsigned.
6938 * varasm.c (assemble_variable): Clean up handling of size using
6939 host_integerp and tree_low_cst.
6940 (decode_addr_const): Use byte, not bit, position.
6941 (output_constructor): bitpos and offsets are HOST_WIDE_INT;
6942 use tree_low_cst and int_bit_position.
6943 * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
6944
6945 Fri Mar 24 20:13:49 2000 Jason Eckhardt <jle@cygnus.com>
6946
6947 * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
6948 (reorder_block_def): New members eff_head and eff_end.
6949 (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
6950 (verify_insn_chain): New function.
6951 (skip_insns_between_block): Add code to skip deleted insns.
6952 Check for note before using.
6953 (chain_reorder_blocks): Replace calls to skip_insns_between_block
6954 with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
6955 Check for note before using.
6956 (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
6957 (fixup_reorder_chain): Restructure, clean up, defect removal.
6958 (reorder_basic_blocks): Remove last_insn and references to it.
6959 Moved insn chain verification code into a new function (see above).
6960 Delete defective code that sets last insn.
6961 Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
6962 all blocks.
6963
6964 2000-03-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6965
6966 * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
6967
6968 2000-03-24 Richard Henderson <rth@cygnus.com>
6969
6970 * tree.c (lang_safe_for_unsave): Remove.
6971 (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
6972 allowing for two levels of unsafeness. Remove lang hook.
6973 * tree.h: Update declarations.
6974 * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
6975 Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
6976 Always fail sibcalls when there are pending cleanups.
6977
6978 2000-03-24 Geoff Keating <geoffk@cygnus.com>
6979
6980 * flow.c (propagate_block): When we delete an ADDR_VEC,
6981 also delete the BARRIER following it if there is one.
6982
6983 2000-03-24 Richard Henderson <rth@cygnus.com>
6984
6985 * builtins.c (expand_builtin_bzero): Convert `length' argument
6986 to sizetype.
6987
6988 2000-03-24 Jakub Jelinek <jakub@redhat.com>
6989
6990 * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
6991 comparison if regno's are equal.
6992 * calls.c (initialize_argument_informat): Add ecf_flags argument.
6993 Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
6994 (expand_call): Update caller.
6995 Avoid making a sibling call if argument size of the callee is larger
6996 than argument size of the caller.
6997 Call hard_function_value with outgoing set if in sibcall pass.
6998 Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
6999
7000 * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
7001 Change LEAF_REGISTERS from an array initializer to actual array
7002 identifier. Move static global variable into the function.
7003 (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
7004 sequences for leaf functions.
7005 * global.c (global_alloc): Likewise.
7006 * tm.texi (LEAF_REGISTERS): Update documentation.
7007
7008 * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
7009 TARGET_FLAT leaf disabling hack.
7010 (LEAF_REGISTERS): Changed from an array initializer to actual array
7011 identifier to avoid duplication and remove the above hack.
7012 (FUNCTION_OK_FOR_SIBCALL): Define.
7013 * config/sparc/sparc.md (sibcall): New attr type. Use it almost
7014 always like call attribute.
7015 (eligible_for_sibcall_delay): New attribute.
7016 (sibcall): New delay type.
7017 (sibcall, sibcall_value, sibcall_epilogue): New expands.
7018 (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
7019 sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
7020 * config/sparc/sparc.c (sparc_leaf_regs): New array.
7021 (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
7022 New functions.
7023 (output_function_epilogue): Move part of the code into
7024 output_restore_regs.
7025 (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
7026 TYPE_SIBCALL.
7027 * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
7028 prototypes.
7029
7030 * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
7031 until infrastructure is finished.
7032
7033 Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com)
7034
7035 * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
7036 (save_parm_insns): Not here.
7037
7038 2000-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7039
7040 * builtins.c (expand_builtin_bzero): New function.
7041 (expand_builtin): Handle bzero.
7042
7043 * builtins.def: Add BUILT_IN_BZERO.
7044
7045 * c-common.c (c_common_nodes_and_builtins): Provide builtin
7046 prototype & function for bzero.
7047
7048 2000-03-23 Michael Meissner <meissner@redhat.com>
7049
7050 * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
7051 change adding TARGET_FP to the TF floating point insns, except for
7052 trunctfsf2, which generates direct calls to truncdfsf2.
7053
7054 2000-03-23 Geoff Keating <geoffk@cygnus.com>
7055
7056 * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
7057 try to protect against middle-end changes that break binary
7058 compatibility.
7059 (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
7060
7061 2000-03-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7062
7063 * config/c4x/c4x.md (load_immed_address): Add DP reg clobber.
7064
7065 Thu Mar 23 17:10:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7066
7067 * calls.c (expand_call): If TARGET is passed by reference and
7068 is readonly, write a CLOBBER.
7069
7070 2000-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7071
7072 * builtins.c (expand_builtin): Handle bcmp.
7073
7074 * builtins.def: Add BUILT_IN_BCMP.
7075
7076 * c-common.c (c_common_nodes_and_builtins): Provide builtin
7077 prototype & function for bcmp.
7078
7079 Thu Mar 23 11:34:39 2000 Jim Wilson <wilson@cygnus.com>
7080
7081 * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
7082 (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
7083 * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
7084
7085 Thu Mar 23 16:04:40 2000 Andrew Haley <aph@cygnus.com>
7086
7087 * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
7088 alternative when using -fp64 -gp32.
7089
7090 2000-03-22 Jason Merrill <jason@casey.cygnus.com>
7091
7092 * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
7093 * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
7094 * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
7095
7096 * frame.h (frame_state): Revert last change.
7097 * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
7098 * libgcc2.c (throw_helper): Revert last change.
7099
7100 2000-03-22 Richard Henderson <rth@cygnus.com>
7101
7102 * stmt.c (expand_asm_operands): Don't promote the temporary.
7103
7104 2000-03-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7105
7106 * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
7107 * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
7108 c_get_alias_set): Likewise.
7109 * c-decl.c (duplicate_decls): Likewise.
7110 * c-typeck.c (default_conversion,build_unary_op): Likewise.
7111 * calls.c (initialize_argument_information): Likewise.
7112 * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
7113 Likewise.
7114 * dwarfout.c (decl_class_context,output_type): Likewise.
7115 * expr.c (get_inner_reference): Likewise.
7116 * fold-const.c (simple_operand_p,fold): Likewise.
7117 * function.c (aggregate_value_p): Likewise.
7118 * stmt.c (expand_asm_operands): Likewise.
7119 * varasm.c (named_section): Likewise.
7120
7121 2000-03-22 Jason Merrill <jason@casey.cygnus.com>
7122
7123 Implement dwarf2 exception handling for the ARM.
7124 * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
7125 (DWARF_FRAME_RETURN_COLUMN): Define.
7126 * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach
7127 REG_FRAME_RELATED_EXPR note.
7128 (emit_sfm): Likewise.
7129 (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
7130 * dwarf2out.c (reg_save): Handle saving a register to itself.
7131 (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
7132 * except.c (eh_regs): Don't use the static chain reg if it's
7133 callee-saved.
7134 * frame.h (frame_state): Add cfa_saved field.
7135 * frame.c (execute_cfa_insn): Set it.
7136 * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
7137 the epilogue.
7138 * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
7139 Now takes a parm.
7140 (instantiate_virtual_regs): Adjust.
7141 * tm.texi: Adjust.
7142 * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7143 * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7144 * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
7145
7146 * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
7147 (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
7148
7149 2000-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7150
7151 * builtins.def: New file.
7152
7153 * Makefile.in (TREE_H): Depend on builtins.def.
7154
7155 * builtins.c (built_in_names): Use builtins.def.
7156
7157 * tree.h (built_in_function): Likewise.
7158
7159 2000-03-22 Mark Mitchell <mark@codesourcery.com>
7160
7161 * tree.c (size_in_bytes): Return size_zero_node, not
7162 integer_zero_node.
7163
7164 2000-03-22 Geoff Keating <geoffk@cygnus.com>
7165
7166 * config/fp-bit.c (pack_d): Correct the case when a denormal
7167 is rounded up and stops being denormal.
7168
7169 2000-03-21 Richard Henderson <rth@cygnus.com>
7170
7171 * config/alpha/alpha.c (function_arg): Check for void_type_node
7172 before using MUST_PASS_IN_STACK.
7173
7174 2000-03-21 Stephane Carrez <stcarrez@worldnet.fr>
7175
7176 * regmove.c (combine_stack_adjustments_for_block): Check that
7177 the stack pointer is a valid memory address.
7178
7179 Wed Mar 22 11:44:50 MET 2000 Jan Hubicka <jh@suse.cz>
7180
7181 * calls.c: re-install Mar 16 emit_library_call merge.
7182
7183 2000-03-21 Jakub Jelinek <jakub@redhat.com>
7184
7185 * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
7186 we cannot be sure that if reload_completed base register will
7187 be properly aligned.
7188
7189 2000-03-21 Richard Henderson <rth@cygnus.com>
7190
7191 * flow.c (delete_block): Fix typo last change.
7192
7193 2000-03-21 Mark Mitchell <mark@codesourcery.com>
7194
7195 * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
7196 not COMPLETE_TYPE_P, to check the type of the expression.
7197
7198 2000-03-21 Michael Meissner <meissner@redhat.com>
7199
7200 * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
7201 all floating point insns that just tested the macro
7202 TARGET_HAS_XFLOATING_LIBS.
7203 (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
7204 used to only use the gprs.
7205
7206 2000-03-21 Nathan Sidwell <nathan@codesourcery.com>
7207
7208 * tree.h (COMPLETE_TYPE_P): New macro.
7209 (COMPLETE_OR_VOID_TYPE_P): New macro.
7210 (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
7211 * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
7212 * c-aux-info.c (gen_type): Use them.
7213 * c-common.c (c_expand_expr_stmt): Likewise.
7214 * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
7215 grokdeclarator, grokparms, finish_struct, start_function,
7216 store_parm_decls, combine_parm_decls): Likewise.
7217 * c-parse.y (cast_expr): Likewise.
7218 * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
7219 c_size_in_bytes, c_alignof, build_component_ref,
7220 build_indirect_ref, build_array_ref, convert_arguments,
7221 build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
7222 * calls.c (initialize_argument_information): Likewise.
7223 * convert.c (convert_to_integer): Likewise.
7224 * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
7225 * dwarfout.c (location_or_const_value_attribute,
7226 output_enumeration_type_die, output_structure_type_die,
7227 output_union_type_die, output_type): Likewise.
7228 * expr.c (safe_from_p, expand_expr): Likewise.
7229 * function.c (assign_parms): Likewise.
7230 * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
7231 * tree.c (build_array_type, build_function_type,
7232 build_method_type, build_offset_type, build_complex_type): Likewise.
7233 * c-parse.c, c-parse.h: Regenerated.
7234
7235 2000-03-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7236
7237 * config/c4x/rtems.h: Include config/rtems.h.
7238
7239 Tue Mar 21 09:24:00 2000 Denis Chertykov <denisc@overta.ru>
7240
7241 * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
7242 decl is a FUNCTION_DECL
7243
7244 Mon Mar 20 19:53:53 2000 Jim Wilson <wilson@cygnus.com>
7245
7246 * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
7247 function uses output registers. Don't save RP for leaf functions.
7248 Do save RP even if no epilogue.
7249 * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
7250 (CALL_USED_REGISTERS): Unmark in registers.
7251 (REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up,
7252 to near the middle.
7253
7254 2000-03-20 Geoff Keating <geoffk@cygnus.com>
7255
7256 * config/rs6000/rs6000.md (bunordered): New expander.
7257 (bordered): New expander.
7258 (buneq): New expander.
7259 (bunge): New expander.
7260 (bungt): New expander.
7261 (bunle): New expander.
7262 (bunlt): New expander.
7263 (bltgt): New expander.
7264
7265 * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
7266 (ccr_bit_negated_p): New function.
7267 (print_operand): For %C, generate appropriate cror for UNEQ,
7268 UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p.
7269
7270 2000-03-20 Andreas Jaeger <aj@suse.de>
7271
7272 * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
7273 warning.
7274
7275 * tree.h (safe_for_unsave): Prototype.
7276
7277 2000-03-20 Richard Henderson <rth@cygnus.com>
7278
7279 * regmove.c (stack_memref_p): Fix typo, reorg for readability.
7280 (combine_stack_adjustments_for_block): Don't allow sp references
7281 in the side of a set we're not fixing up.
7282 * toplev.c (rest_of_compilation): Run combine_stack_adjustments
7283 after life_analysis.
7284
7285 2000-03-20 Richard Henderson <rth@cygnus.com>
7286
7287 * calls.c (expand_call): Don't bother generating tail call
7288 sequences if there are pending cleanups. Use
7289 expand_start_target_temps/expand_end_target_temps to elide
7290 cleanups created during sibcall expansion.
7291
7292 2000-03-20 Geoff Keating <geoffk@cygnus.com>
7293
7294 * configure.in: Set $IFS to a value if it doesn't already have one
7295 in the --enable-checking handling.
7296 * configure: Regenerate.
7297
7298 2000-03-20 Martin v. Löwis <loewis@informatik.hu-berlin.de>
7299
7300 * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
7301 * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7302 Regenerated.
7303
7304 Mon Mar 20 11:43:15 MET 2000 Jan Hubicka <jh@suse.cz>
7305
7306 * jump.c (delete_noop_moves): Remove code attempting to
7307 combine stack adjustments.
7308
7309 2000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de>
7310
7311 * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
7312 * except.c (emit_cleanup_handler): Use them.
7313 (expand_end_all_catch): Likewise.
7314 * function.c (fixup_var_refs): Likewise.
7315 (expand_function_end): Clear catch_clauses_last.
7316 * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
7317 * except.h (struct eh_status): New field x_catch_clauses_last.
7318 (catch_clauses_last): New define.
7319
7320 * Makefile.in (tree.o): Depend on HASHTAB_H.
7321 * tree.c: Include hashtab.h.
7322 (struct type_hash): Remove next field.
7323 (TYPE_HASH_SIZE): Remove.
7324 (TYPE_HASH_INITIAL_SIZE): New define.
7325 (type_hash_table): Change type to htab_t.
7326 (type_hash_eq, type_hash_hash, print_type_hash_statistics,
7327 mark_hash_entry): New functions.
7328 (init_obstacks): Allocate type hash.
7329 (type_hash_lookup): Use htab functions.
7330 (type_hash_add, mark_type_hash): Likewise.
7331 (dump_tree_statistics): Call print_type_hash_statistics.
7332
7333 2000-03-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7334
7335 * rs6000/t-aix41: New file.
7336
7337 * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
7338
7339 Sun Mar 19 13:27:30 2000 Hans-Peter Nilsson <hp@axis.com>
7340
7341 * tm.texi (Driver): Fix typos and tweak entry for
7342 INCLUDE_DEFAULTS.
7343 Move misplaced STRUCT_FORCE_BLK entry ...
7344 (Storage Layout): ... to here.
7345 (Run-time Target): Recommend having TARGET_MASK_... helper macros.
7346
7347 2000-03-19 Richard Henderson <rth@cygnus.com>
7348
7349 * flow.c (delete_block): Delete the addr_vec along with the block.
7350 (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
7351 reference labels.
7352
7353 * fold-const.c (extract_muldiv): Apply type check for defined
7354 overflow to multiply as well as divide.
7355
7356 * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
7357
7358 2000-03-18 Mark Mitchell <mark@codesourcery.com>
7359
7360 * emit-rtl.c (remove_unncessary_notes): Check that all
7361 NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
7362 associated NOTE_BLOCK.
7363 * function.h (identify_blocks): Update comments.
7364 (reorder_blocks): Declare.
7365 * function.c (identify_blocks): Don't take paramters.
7366 (reorder_blocks): Don't take parameters.
7367 * loop.h (find_loop_tree_blocks): Remove.
7368 (unroll_block_trees): Likewise.
7369 * loop.c (loop_optimize): Don't call find_loop_tree_blocks. Use
7370 reorder_blocks instead of unroll_block_trees.h
7371 * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
7372 * stmt.c (find_loop_tree_blocks): Remove.
7373 (unroll_block_trees): Likewise.
7374 * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
7375 in whole-function mode.
7376 * tree.h (reorder_blocks): Remove declaration.
7377
7378 * expr.c: Include intl.h.
7379 * Makefile.in (expr.o): Depend on intl.h.
7380
7381 2000-03-18 Richard Henderson <rth@cygnus.com>
7382
7383 * expr.c (emit_move_insn_1): Clarify cannot_inline message.
7384
7385 2000-03-18 Mark Mitchell <mark@codesourcery.com>
7386
7387 * tree.h (tree_index): Remove enumerals for integer types.
7388 (integer_type_kind): New type.
7389 (integer_types): New variable.
7390 (char_type_node): Adjust.
7391 (signed_char_type_node): Likewise.
7392 (unsigned_char_type_node): Likewise.
7393 (short_integer_type_node): Likewise.
7394 (short_unsigned_type_node): Likewise.
7395 (integer_type_node): Likewise.
7396 (unsigned_type_node): Likewise.
7397 (long_integer_type_node): Likewise.
7398 (long_unsigned_type_node): Likewise.
7399 (long_long_integer_type_node): Likewise.
7400 (long_long_unsigned_type_node): Likewise.
7401 * tree.c (integer_types): New variable.
7402 (init_obstacks): Register it as a root.
7403
7404 Sat Mar 18 14:38:00 2000 Jason Eckhardt <jle@cygnus.com>
7405
7406 * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
7407 NEXT_INSN. Update last insn in chain.
7408
7409 2000-03-17 Jason Merrill <jason@casey.cygnus.com>
7410
7411 * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
7412 with TYPE_DECL_SUPPRESS_DEBUG set.
7413
7414 2000-03-18 Richard Henderson <rth@cygnus.com>
7415
7416 * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
7417
7418 2000-03-18 Richard Henderson <rth@cygnus.com>
7419
7420 * i386.c (call_insn_operand): Always allow SYMBOL_REF,
7421 care for HALF_PIC_P.
7422 (expander_call_insn_operand): Remove.
7423 (ix86_expand_epilogue): New arg `emit_return' to control return insn.
7424 * i386.h (PREDICATE_CODES): Update.
7425 * i386.md (all call expanders): Remove predicates, remove special
7426 handling for half-pic.
7427 (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
7428 (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
7429 (sibcall_epilogue): New.
7430
7431 2000-03-17 Richard Henderson <rth@cygnus.com>
7432
7433 * rtlanal.c (single_set): Reject if the parallel has anything
7434 except SET or USE or CLOBBER.
7435
7436 2000-03-17 Jeff Law <law@cygnus.com>
7437 Richard Henderson <rth@cygnus.com>
7438
7439 * Makefile.in (OBJS): Add sibcall.o.
7440 (sibcall.o): New.
7441 * sibcall.c: New file.
7442 * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
7443 (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
7444 (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
7445 Emit sibcall patterns when requested. Update all callers.
7446 (expand_call): Generate CALL_PLACEHOLDER insns when tail call
7447 elimination seems feasable.
7448 * final.c (leaf_function_p): Sibling calls don't discount being
7449 a leaf function.
7450 * flow.c (HAVE_sibcall_epilogue): Provide default.
7451 (find_basic_blocks_1): Sibling calls don't throw.
7452 (make_edges): Make edge from sibling call to EXIT.
7453 (propagate_block): Don't remove sibcall_epilogue insns.
7454 * function.c (prologue, epilogue): Turn into varrays. Update all uses.
7455 (sibcall_epilogue): New.
7456 (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
7457 (identify_blocks_1): Likewise. Break out from ...
7458 (identify_blocks): ... here.
7459 (reorder_blocks_1): Scan CALL_PLACEHOLDER. Break out from ...
7460 (reorder_blocks): ... here.
7461 (init_function_for_compilation): Zap prologue/epilogue as varrays.
7462 (record_insns): Extend a varray instead of mallocing new memory.
7463 (contains): Read a varray not array of ints.
7464 (sibcall_epilogue_contains): New.
7465 (thread_prologue_and_epilogue_insns): Emit and record
7466 sibcall_epilogue patterns.
7467 (init_function_once): Allocate prologue/epilogue varrays.
7468 * genflags.c (gen_insn): Treat sibcall patterns as calls.
7469 * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
7470 Broken out from ...
7471 (save_for_inline_nocopy): ... here.
7472 (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
7473 Broken out from ...
7474 (expand_inline_function): ... here.
7475 (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
7476 (subst_constants): Handle 'n' formats.
7477 * jump.c (jump_optimize_minimal): New.
7478 (jump_optimize_1): New arg `minimal'; update callers. Elide most
7479 optimizations if it's set.
7480 * rtl.c (copy_rtx): Do copy jump & call for insns.
7481 * rtl.h (struct rtx_def): Document use of jump and call for insns.
7482 (SIBLING_CALL_P): New.
7483 (sibcall_use_t): New.
7484 * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
7485 Invoke optimize_sibling_and_tail_recursive_calls.
7486 * tree.c (lang_safe_for_unsave): New.
7487 (safe_for_unsave): New.
7488 * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
7489
7490 * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
7491 * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
7492 (*sibcall_osf_1, *sibcall_value_osf_1): New.
7493
7494 2000-03-17 Mark Mitchell <mark@codesourcery.com>
7495
7496 * objc/objc-act.c (encode_method_prototype): Pass types, not
7497 PARM_DECLs, to int_size_in_bytes.
7498
7499 Fri Mar 17 11:51:34 2000 Jim Wilson <wilson@cygnus.com>
7500
7501 * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
7502
7503 * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
7504 config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
7505
7506 Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7507
7508 * Clean up usages of TREE_INT_CST_LOW.
7509 * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
7510 * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7511 Regenerated.
7512 * c-tree.h (min_precision): Move declaration to here.
7513 * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
7514 (build_unary_op, add_pending_init): Use bit_position.
7515 (pending_init_member, process_init_element): Likewise.
7516 (really_start_incremental_init, push_init_level, pop_init_level):
7517 Don't make copies of nodes or modify them in place, use consistent
7518 types when tracking positions, and use tree routines computations.
7519 (set_init_index, output_init_element): Likewise.
7520 (output_pending_init_elements, process_init_element): Likewise.
7521 * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
7522 tree_low_cst and int_bit_position; also minor cleanup.
7523 (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
7524 (print_cst_octal): Precision is unsigned.
7525 (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
7526 * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
7527 (simple_type_align_in_bits): Result is unsigned int.
7528 Use tree_int_low_cst and host_integerp.
7529 (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
7530 (field_byte_offset): Result is HOST_WIDE_INT.
7531 Change types of internal variables so alignments are unsigned int,
7532 offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
7533 Use host_integerp, tree_low_cst, and int_bit_position.
7534 (add_bit_offset_attribute): Likewise.
7535 (add_data_member_location_attribute): Use tree_cst_low.
7536 (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
7537 (add_bit_size_attribute): Use tree_low_cst.
7538 (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
7539 * dwarfout.c: Similar changes to dwarf2out.c.
7540 * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
7541 * genoutput.c (n_occurences): Return -1 for null string.
7542 (strip_whitespace): Accept null string and make into function.
7543 (scan_operands): Reflect above changes.
7544 * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
7545 (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
7546 * ssa.c (rename_registers): Add missing cast of arg to bzero.
7547 * tree.c (int_size_in_bytes): Check for too big to represent.
7548 (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
7549 * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
7550 New declarations.
7551 (min_precision): Delete from here.
7552 * varasm.c (decode_addr_const): Use host_integerp, bit_position,
7553 and int_bit_position.
7554 * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
7555 (encode_method_def): Likewise.
7556 (build_ivar_list_initializer): Use int_bit_position.
7557 (generate_shared_structures): Convert size.
7558 (encode_type, encode_complete_bitfield): Use integer_zerop.
7559 (encode_bitfield): Use tree_low_cst and int_bit_position.
7560
7561 2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7562
7563 * config/c4x/c4x.h (CPP_SPEC): Fix typo.
7564
7565 2000-03-17 Martin v. Löwis <loewis@informatik.hu-berlin.de>
7566
7567 * call.c (special_function_p): It is only malloc if it returns
7568 Pmode.
7569
7570 2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7571
7572 * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
7573 (C33_FLAG, TARGET_C3X): Add macros.
7574 (TARGET_SWITCHES): Add -m33 option.
7575 * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
7576
7577 2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7578
7579 * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
7580 (PARALLEL_PACK_FLAG): Delete.
7581 (TARGET_SWITCHES): Update.
7582 (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
7583
7584 Thu Mar 16 18:52:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7585
7586 * fold-const.c (fold): Fix a few cases when the returned result
7587 is not of the same type as the input.
7588
7589 2000-03-16 Nick Clifton <nickc@cygnus.com>
7590
7591 * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
7592 warning.
7593
7594 2000-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7595
7596 * libgcc2.h: Move prototypes above macros with the same name.
7597 Wrap some function prototypes in the conditional which indicates
7598 whether they are supported, i.e. "BITS_PER_UNIT == 8".
7599
7600 2000-03-16 Richard Henderson <rth@cygnus.com>
7601
7602 * calls.c: Revert last two changes.
7603
7604 2000-03-16 Bernd Schmidt <bernds@cygnus.co.uk>
7605
7606 * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
7607 has exponent 0 is a zero.
7608
7609 * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
7610 HASH may already be nonzero. Add code/mode into hash value
7611 immediately after repeat label.
7612 (cselib_lookup): Don't leave the hash table in an inconsistent
7613 state before a hash lookup operation.
7614
7615 Thu Mar 16 17:03:10 MET 2000 Jan Hubicka <jh@suse.cz>
7616
7617 * i386.md (all HI and QI mode non-move patterns): Conditionize
7618 by TARGET_[HQ]IMODE_MATH.
7619 * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
7620 x86_promote_qi_regs): Declare.
7621 (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
7622 TARGET_PROMOTE_QI_REGS): New macros.
7623 (PROMOTE_MODE): New macro.
7624 * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
7625 x86_promote_qi_regs): New global variables.
7626
7627 Thu Mar 16 16:50:44 MET 2000 Jan Hubicka <jh@suse.cz>
7628
7629 * calls.c (emit_library_call_value_1): Break out from ...; handle
7630 VOIDmode function calls too.
7631 (emit_library_call_value): ... here.
7632 (emit_library_call): Implement by calling emit_library_call_value_1.
7633
7634 Thu Mar 16 16:01:30 MET 2000 Jan Hubicka <jh@suse.cz>
7635
7636 * calls.c (expand_call): Do sanity checking on arg_space_so_far.
7637 Update arg_space_so_far on stack adjustments.
7638 (emit_library_call, emit_library_call_value): Likewise; take into
7639 account arg_space_so_far and pending_stack_adjust when calculcating
7640 the boundary.
7641
7642 Thu Mar 16 09:02:19 2000 Jason Eckhardt <jle@cygnus.com>
7643
7644 * flow.c: Move all basic block reordering code into its own file.
7645 (create_basic_block): Externalize.
7646 * bb-reorder.c: New file. Copy all basic block reordering code from
7647 flow.c to this file.
7648 (reorder_basic_blocks): Fix fencepost error in for-loop.
7649 (reorder_basic_blocks): Remove braces from single statement for-loops.
7650 * basic-block.h: Add declaration for create_basic_block.
7651 * Makefile.in: Add rules for bb-reorder.o.
7652
7653 2000-03-16 Neil Booth <NeilB@earthling.net>
7654
7655 * cppinit.c (handle_option): Implement #unassert directive
7656 as -A- command line option.
7657 (print_help): Update.
7658 * cpptexi.c: Update.
7659
7660 Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson <hp@bitrange.com>
7661
7662 * md.texi (Standard Names): Document `jump'.
7663
7664 2000-03-15 Jason Merrill <jason@casey.cygnus.com>
7665
7666 * calls.c (emit_call_1): Nothrow functions can still have nonlocal
7667 gotos.
7668
7669 2000-03-15 Geoff Keating <geoffk@cygnus.com>
7670
7671 Merge changes from newppc-branch onto trunk.
7672
7673 2000-03-15 Geoff Keating <geoffk@cygnus.com>
7674
7675 * rs6000.c (toc_hash_table): Update for new hash table functions.
7676 (toc_hash_function): Likewise.
7677 (toc_hash_eq): Likewise.
7678 (toc_hash_mark_entry): Likewise.
7679 (toc_hash_mark_table): Likewise.
7680 (output_toc): Likewise.
7681 (rs6000_add_gc_roots): Likewise.
7682
7683 2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
7684
7685 * t-aix43 (AR_FOR_TARGET): Deleted. Moved `-X32_64'...
7686 (AR_FLAGS_FOR_TARGET): here. New macro.
7687
7688 2000-03-05 Clinton Popetz <cpopetz@cygnus.com>
7689
7690 * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
7691 fpmem_operand) Delete.
7692 (xer_operand) New.
7693 (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
7694 (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
7695 (rs6000_save_machine_status, rs6000_restore_machine_status,
7696 rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
7697 references to above variables.
7698 (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
7699 * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
7700 DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
7701 (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
7702 (XER_REGNO_P, XER_REGNO): New.
7703 (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
7704 (PREDICATE_CODES): Change fpmem_operand to xer_operand.
7705 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
7706 XER_REGNO_P.
7707 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
7708 REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS, and remove FLOAT_OR_FPMEM_REGS.
7709 (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
7710
7711 2000-02-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7712
7713 * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
7714 TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
7715 * rs6000.h: from here.
7716
7717 * rs6000-protos.h (rs6000_select_section): Provide prototype.
7718 (rs6000_select_rtx_section): Likewise.
7719 (rs6000_encode_section_info): Likewise.
7720 (sdata_section): Likewise.
7721 (sdata2_section): Likewise.
7722 (sbss_section): Likewise.
7723 * sysv4.h (rs6000_select_section): Delete prototype.
7724 (rs6000_select_rtx_section): Likewise.
7725 (rs6000_encode_section_info): Likewise.
7726 (sdata_section): Likewise.
7727 (sdata2_section): Likewise.
7728 (sbss_section): Likewise.
7729 (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
7730
7731 * sysv4.h: Delete various unnecessary #undef's and put a comment
7732 on the remaining ones.
7733 Change various comments according to coding standard.
7734
7735 2000-02-29 Clinton Popetz <cpopetz@cygnus.com>
7736
7737 * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
7738 CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
7739 (CR0_REGNO_P) Remove.
7740 * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
7741 setup_incoming_varargs, mtcrf_operation, print_operand,
7742 rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
7743 Use the above macros.
7744
7745 2000-02-24 Clinton Popetz <cpopetz@cygnus.com>
7746
7747 * config/rs6000/rs6000.md: Added a new alternative for each
7748 pattern that had a 'x' alternative but no 'y' alternative.
7749 Added a new split for each of the above patterns.
7750
7751 2000-02-18 Geoff Keating <geoffk@cygnus.com>
7752
7753 * aix41.h (ASM_CPU_SPEC): Delete.
7754 (CPP_CPU_SPEC): Delete.
7755
7756 * aix.h (RS6000_OUTPUT_BASENAME): Define.
7757 (ASM_OUTPUT_LABEL): Define.
7758 (ASM_GLOBALIZE_LABEL): Define.
7759 (STRIP_NAME_ENCODING): Define.
7760 * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
7761 (STRIP_NAME_ENCODING): Don't define.
7762 (ASM_OUTPUT_LABEL): Don't define.
7763 (ASM_GLOBALIZE_LABEL): Don't define.
7764 * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
7765 names, and ASM_OUTPUT_LABEL to output labels, rather than
7766 asm_fprintf.
7767 (ASM_OUTPUT_LABEL): Define.
7768 (ASM_OUTPUT_INT): Use assemble_name.
7769 (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
7770 (STRIP_NAME_ENCODING): Don't undefine first.
7771 (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
7772 ELF.
7773 (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
7774 specified with 'asm' even with -fleading-underscore.
7775 * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
7776 (output_epilog): Likewise.
7777 (output_toc): Likewise.
7778 * tramp.asm: Handle -fleading-underscore correctly.
7779
7780 * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
7781 -mminimal-toc.
7782 (nonlocal_goto_receiver): Delete.
7783 * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
7784
7785 * rs6000.h (ASM_OUTPUT_DEF): Don't define.
7786 (SET_ASM_OP): Define.
7787 * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
7788
7789 * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
7790 (ASM_LONG): Define.
7791
7792 * rs6000.c (rs6000_dll_import_ref): Delete, not used.
7793 * rs6000-protos.h (rs6000_dll_import_ref): Delete.
7794
7795 * rs6000.h: Add 'u' to more constants.
7796
7797 2000-02-18 David Edelsohn <edelsohn@gnu.org>
7798
7799 * rs6000.md (mfcr+shift): Delete PowerPC64 version.
7800
7801 2000-02-15 David Edelsohn <edelsohn@gnu.org>
7802
7803 * rs6000.c (reg_or_u_cint_operand): New function.
7804 (logical_operand): Handle 64-bit hosts.
7805 (logical_u_operand): New function.
7806 (non_logical_cint_operand): Handle 64-bit hosts.
7807 (non_logical_u_cint_operand): New function.
7808 * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
7809 (PREDICATE_CODES): Define new functions.
7810 * rs6000-protos.h: Declare new functions.
7811 * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
7812 (movdi_64): Bracket code intended for 64-bit hosts. Create
7813 CONST_DOUBLE for 32-bit values.
7814 (scc insns): Generate DImode compares.
7815 (mfcr insns): Create DImode versions.
7816 (sge matchers): New patterns.
7817
7818 2000-02-15 Gabriel Paubert <paubert@iram.es>
7819
7820 * rs6000.md: Correct instructions length attributes and
7821 constraints on unsigned compare instructions.
7822 (*ne0): Disable for PowerPC64.
7823
7824 2000-02-11 Geoff Keating <geoffk@cygnus.com>
7825
7826 * rs6000.c (output_function_profiler): Use .long for a 32-bit
7827 quantity, fix profile1.C test failure under -fPIC.
7828
7829 * rs6000.c: Add 'u' to many constants to suppress warnings.
7830 (constant_pool_expr_1): Make static.
7831 (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
7832 * rs6000.h: Add 'u' to many constants to suppress warnings.
7833
7834 * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
7835 for the start of the TOC, instead of LCTOC..0.
7836 * aix.h (toc_section): Use LCTOC..1 under AIX for the start
7837 of the TOC.
7838 * rs6000.md (load_toc_aix_si): Use LCTOC..1.
7839 (load_toc_aix_di): Use LCTOC..1.
7840
7841 * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
7842 * rs6000.c (rs6000_legitimize_address): New function from
7843 LEGITIMIZE_ADDRESS. Only use create_TOC_reference on
7844 symbols in the constant pool that really are TOC references.
7845 (print_operand_address): For ELF, write TOC offsets under
7846 -fPIC as subtractions in the insn.
7847 (output_toc): For ELF, define symbols in TOC as normal labels,
7848 to match RTL.
7849 (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
7850 * rs6000-protos.h (rs6000_legitimize_address): Prototype.
7851 (create_TOC_reference): Prototype only when RTX_CODE is defined.
7852 * rs6000.md (movsi): Only use create_TOC_reference on
7853 symbols in the constant pool that really are TOC references.
7854
7855 * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
7856 * rs6000.c (rs6000_reorg): Delete.
7857 * rs6000-protos.h (rs6000_reorg): Delete.
7858
7859 2000-02-09 Geoff Keating <geoffk@cygnus.com>
7860
7861 * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
7862
7863 * aix.h (SETUP_FRAME_ADDRESSES): Define.
7864 * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
7865 [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
7866 [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
7867 * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
7868 rs6000_aix_emit_builtin_unwind_init.
7869 * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
7870 rs6000_emit_eh_toc_restore on AIX.
7871 (return_eh_si): Use r2.
7872 (return_eh_di): Use r2.
7873
7874 * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
7875 since we're breaking binary compatibility anyway.
7876
7877 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
7878
7879 * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
7880 constant_pool_expr_p): Declare them.
7881 (constant_pool_expr_p): Declare it.
7882 * config/rs6000/rs6000.c (toc_label_name): Define.
7883 (rs6000_override_options): Set toc_label_name.
7884 (input_operand): Allow any TOC_RELATIVE_EXPR_P.
7885 (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
7886 uses_TOC): New functions.
7887 (print_operand): Delete old '*' case.
7888 (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
7889 and strip off rtl for TOC before calling output_addr_const.
7890 (rs6000_emit_load_toc_table): Use toc_label_name.
7891 * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
7892 the default.
7893 (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
7894 (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
7895 (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
7896 (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
7897 into explicit TOC_REGISTER offsets.
7898 (TOC_REGISTER): New macro.
7899 * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
7900 TARGET_TOC to reference TOC_REGISTER.
7901 (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
7902 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
7903 uses_TOC before emitting label references.
7904
7905 2000-02-05 Geoff Keating <geoffk@cygnus.com>
7906
7907 * rs6000.md (stack_tie): Fix warning.
7908
7909 * eabi-ctors.c: Use 'asm' names for the start/end variables,
7910 to handle -fleading-underscore.
7911 * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
7912 (USER_LABEL_PREFIX): New macro.
7913 (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
7914 (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
7915 * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
7916 call-linux can use the same multilibs.
7917 * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
7918 and call-linux multilibs. Do multilib with -fleading-underscore.
7919 (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
7920 (MULTILIB_EXCEPTIONS): Remove call-linux exceptions. Add restrictions
7921 to call-aix.
7922
7923 * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
7924 have MASK_SOFT_FLOAT set.
7925 (CPP_FLOAT_DEFAULT_SPEC): New macro.
7926 (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
7927 CPP_FLOAT_DEFAULT_SPEC.
7928
7929 * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
7930 * rs6000.md: Whitespace change.
7931 * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
7932 * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
7933
7934 2000-02-05 Geoff Keating <geoffk@cygnus.com>
7935
7936 * rs6000.md (eh_epilogue): New expander.
7937 (eh_reg_restore): New expand/split/insn combination.
7938 (return_eh_si): New insn.
7939 (return_eh_di): New insn.
7940
7941 * eabi-ci.asm: Put a label at the start of the .eh_frame section.
7942 * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
7943 * eabi-ctors.c (__do_global_ctors): Register this object's
7944 frame. Clean up. Call atexit() after the constructors.
7945 (__do_global_dtors): Deregister this object's frame. Clean up.
7946 Allow for recursive calls to exit().
7947 * rs6000.c (fixuplabelno): New variable.
7948 * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
7949 TARGET_RELOCATABLE, it slows down exec() under linux.
7950 (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
7951
7952 * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
7953 (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
7954 (ASM_OUTPUT_DWARF_DELTA2): New macro.
7955 (ASM_OUTPUT_DWARF_DELTA4): New macro.
7956 (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
7957 (ASM_OUTPUT_DWARF_ADDR): New macro.
7958 (ASM_OUTPUT_DWARF_DATA4): New macro.
7959 (ASM_OUTPUT_DWARF_DATA2): New macro.
7960 (ASM_OUTPUT_DWARF_OFFSET4): New macro.
7961 (ASM_OUTPUT_DWARF_OFFSET): New macro.
7962 (UNALIGNED_INT_ASM_OP): New macro, fake definition.
7963
7964 2000-02-03 Geoff Keating <geoffk@cygnus.com>
7965
7966 * rs6000.c (rs6000_sr_alias_set): New variable.
7967 (rs6000_override_options): Initialise rs6000_sr_alias_set.
7968 (rs6000_emit_stack_tie): New function.
7969 (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
7970 in a way that dwarf2out can understand.
7971 (rs6000_frame_related): New function.
7972 (rs6000_emit_prologue): Use rs6000_sr_alias_set. Specify
7973 RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
7974 Use rs6000_emit_stack_tie when needed.
7975 (rs6000_emit_epilogue): Use rs6000_sr_alias_set. Don't set
7976 RTX_FRAME_RELATED_P. Use rs6000_emit_stack_tie when needed.
7977 * rs6000.md (stack_tie): New insn.
7978 (return_internal_si): Allow return value to be in the count
7979 register.
7980 (return_internal_di): Likewise.
7981
7982 * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
7983
7984 2000-02-03 Geoff Keating <geoffk@cygnus.com>
7985
7986 * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
7987
7988 2000-01-31 Geoff Keating <geoffk@cygnus.com>
7989
7990 * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
7991
7992 * rs6000.md (stmw): Use the right POWER opcode.
7993 (lmw): Likewise.
7994
7995 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7996
7997 * rs6000-protos.h: New file.
7998
7999 * rs6000.c: Include tm_p.h. Fix compile time warnings.
8000
8001 * rs6000.h: Move prototypes to rs6000-protos.h. Fix compile time
8002 warnings.
8003
8004 * sysv4.h: Likewise.
8005
8006 2000-01-28 Geoff Keating <geoffk@cygnus.com>
8007
8008 * ../../configure.in: Delete powerpcle-*-winnt*
8009 and powerpcle-*-pe|powerpcle-*-cygwin*.
8010 * ../../configure: Regenerated.
8011 * cygwin.h: Delete.
8012 * rs6000.h (OBJECT_WINDOWS_NT): Delete.
8013 (TARGET_WINDOWS_NT): Delete.
8014 (ABI_NT): Delete.
8015 (CALL_NT_DLLIMPORT): Delete.
8016 Delete NT-specific code.
8017 * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
8018 * win-nt.h: Delete.
8019 * t-winnt: Delete.
8020 * nt-ci.asm: Delete.
8021 * nt-cn.asm: Delete.
8022 * ntstack.asm: Delete.
8023
8024 2000-01-27 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8025
8026 * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
8027 (ASM_FILE_START): Likewise.
8028 (ASM_DECLARE_FUNCTION_NAME): Likewise.
8029 (ASM_OUTPUT_LABELREF): Likewise.
8030 (ASM_OUTPUT_SKIP): Likewise.
8031 (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
8032 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
8033 (ASM_OUTPUT_CASE_LABEL): Likewise.
8034 (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8035 (ASM_OUTPUT_ASCII): Likewise.
8036
8037 2000-01-27 Clinton Popetz <cpopetz@cygnus.com>
8038
8039 * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
8040 reload_toc_labelno for non-prologue TOC reloads. Also, don't
8041 increment rs6000_pic_labelno here.
8042 (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
8043 and increment rs6000_pic_labelno here.
8044
8045 2000-01-24 Geoffrey Keating <geoffk@cygnus.com>
8046
8047 * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
8048 rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
8049 allocation knows (reg) is dead before the insn.
8050
8051 2000-01-21 Geoff Keating <geoffk@cygnus.com>
8052
8053 * rs6000.md (movsi_to_cr): Correct typo in output template.
8054
8055 2000-01-19 Geoffrey Keating <geoffk@cygnus.com>
8056
8057 * rs6000.c (rs6000_pic_labelno): Always define.
8058 (rs6000_pic_func_labelno): Delete.
8059 (lmw_operation): Check for a zero base register,
8060 which doesn't mean what we want.
8061 (stmw_operation): New function.
8062 (print_operand): Define new 'l' modifier.
8063 (rs6000_stack_info): We must save all 64 bits of the registers
8064 if TARGET_POWERPC64.
8065 (rs6000_output_load_toc_table): Delete.
8066 (rs6000_emit_load_toc_table): New function.
8067 (rs6000_allocate_stack_space): Delete.
8068 (rs6000_emit_allocate_stack): New function.
8069 (rs6000_emit_prologue): New function.
8070 (output_prolog): Use rs6000_emit_prologue.
8071 (rs6000_emit_epilogue): Change a few variable names to be
8072 more accurate. Restore all 64 bits of the registers if
8073 TARGET_POWERPC64. Only restore the FP registers which were used
8074 if they are being saved/restored one-at-a-time.
8075 (output_mi_thunk): Delete inefficient code generation.
8076 (output_function_profiler): Don't use rs6000_output_load_toc_table.
8077 * rs6000.h: Declare rs6000_emit_load_toc_table,
8078 rs6000_allocate_stack_space, stmw_operation. Don't declare
8079 rs6000_output_load_toc_table.
8080 * rs6000.md (elf_high): Allow register 0, but discourage it
8081 heavily.
8082 (elf_low): Support loading into register 0.
8083 (load_toc_aix_si): New pattern.
8084 (load_toc_aix_di): New pattern.
8085 (load_toc_v4_pic_si): New pattern.
8086 (load_toc_v4_pic_di): New pattern.
8087 (load_toc_v4_PIC_1): New pattern.
8088 (load_toc_v4_PIC_1b): New pattern.
8089 (load_toc_v4_PIC_2): New pattern.
8090 (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
8091 (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
8092 (prologue): New expander.
8093 (movesi_from_cr): New pattern.
8094 (stmw): New pattern.
8095 (save_fpregs_si): New pattern.
8096 (save_fpregs_di): New pattern.
8097
8098 2000-01-19 Geoff Keating <geoffk@cygnus.com>
8099
8100 * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
8101 (movdi): Likewise.
8102 (movhi): Likewise.
8103 (movqi): Likewise.
8104
8105 2000-01-19 Geoff Keating <geoffk@cygnus.com>
8106
8107 * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
8108 at present.
8109 (movsi_got_internal): Likewise.
8110 (movsi_got_internal+1): Likewise.
8111 (set_sp): 'unspec 7' does a SImode clobber.
8112
8113 2000-01-19 Geoff Keating <geoffk@cygnus.com>
8114
8115 * rs6000.md (floatsidf2): Don't use the fpmem "register", just
8116 allocate a stack temporary.
8117 (floatsidf2_internal): Likewise.
8118 (floatsidf2_internal+1): Likewise. Don't do bizzare hacks
8119 with unspec.
8120 (floatunssidf2): Don't use the fpmem "register", just
8121 allocate a stack temporary.
8122 (floatunssidf2_internal): Likewise.
8123 (floatunssidf2_internal+1): Likewise. Don't do bizzare hacks
8124 with unspec.
8125 (floatsidf2_loadaddr): Delete.
8126 (floatsidf2_store1): Delete.
8127 (floatsidf2_store2): Delete.
8128 (floatsidf2_load): Delete.
8129 (fix_truncdfsi2): Don't use the fpmem "register", just
8130 allocate a stack temporary.
8131 (fix_truncdfsi2_internal_si): Delete.
8132 (fix_truncdfsi2_internal_di): Delete.
8133 (fix_truncdfsi2_internal): New insn.
8134 (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
8135 (fix_truncdfsi2_store): Delete.
8136 (fix_truncdfsi2_load): Delete.
8137 (fctiwz): Produce gen_fctiwz.
8138
8139 2000-01-19 Geoffrey Keating <geoffk@cygnus.com>
8140
8141 * eabi.h (INVOKE__main): Define.
8142 * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
8143 specially.
8144 (rs6000_emit_prologue): Likewise.
8145 * rs6000.h (struct rs6000_stack): Don't keep track of whether
8146 this is the main program.
8147
8148 2000-01-19 Geoff Keating <geoffk@cygnus.com>
8149
8150 * rs6000.c (rs6000_va_arg): Delete some unused variables.
8151
8152 2000-01-19 Geoff Keating <geoffk@cygnus.com>
8153
8154 * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
8155 goes after the argument.
8156
8157 2000-01-12 Geoff Keating <geoffk@cygnus.com>
8158
8159 * rs6000.md: Document 'unspec' values used.
8160 (epilogue): New expander.
8161 (movesi_to_cr_one): New expander.
8162 (movesi_to_cr and following): New pattern.
8163 (lmw): New pattern.
8164 (return_internal_si): New pattern.
8165 (return_internal_di): New pattern.
8166 (return_and_restore_fpregs_si): New pattern.
8167 (return_and_restore_fpregs_di): New pattern.
8168 * rs6000.h: Declare new functions.
8169 * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
8170 rather than rs6000_calls_p.
8171 (rs6000_makes_calls): Delete.
8172 (lmw_operation): New function.
8173 (mtcrf_operation): New function.
8174 (rs6000_emit_epilogue): New function.
8175 (output_epilog): Call rs6000_emit_epilogue and final if
8176 !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
8177
8178 2000-01-12 Geoff Keating <geoffk@cygnus.com>
8179
8180 * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
8181 * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
8182 * aix.h (SUBTARGET_SWITCHES): Document switches.
8183 * rs6000.h: (TARGET_SWITCHES): Don't print options twice. Make
8184 sched-prolog and sched-epilog the same. Document all the
8185 switches.
8186 (TARGET_OPTIONS): No longer allow -mdebug-.
8187
8188 2000-01-12 Geoff Keating <geoffk@cygnus.com>
8189
8190 * rs6000.h (ASM_FILE_END): Move to aix.h.
8191 (EXTRA_SECTIONS): Move to aix.h.
8192 (READONLY_DATA_SECTION): Move to aix.h.
8193 (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
8194 (SELECT_SECTION): Move to aix.h.
8195 (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
8196 (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
8197 (LINK_REGISTER_REGNUM): New definition.
8198 (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
8199 (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
8200 AIX and SVR4.
8201 * sysv4.h: Delete the code between the inclusion of rs6000.h
8202 and svr4.h.
8203 (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
8204 (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
8205 (RS6000_REG_SAVE): Move generic definition to rs6000.h.
8206 (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
8207 * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
8208 (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
8209 (fix_truncdfsi2_internal_di): New pattern.
8210 (fix_truncdfsi2_store): The second arg here is Pmode too.
8211 (fix_truncdfsi2_load): The second arg here is Pmode too.
8212 (tablejumpdi): Now that switch tables hold only SImode values,
8213 gcc needs to know how to add them to the pc which is DImode.
8214 * rs6000.c (rs6000_stack_info): Use symbolic name for
8215 LINK_REGISTER_REGNUM.
8216 (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
8217 (output_toc): Delete unused variables s1 and s2.
8218 (output_ascii): Use fputs not fprintf on a variable string.
8219
8220 2000-01-07 David Edelsohn <edelsohn@gnu.org>
8221
8222 * rs6000.c (processor_target_table): Add power3 as alias for 630.
8223 * aix43.h: Revert Aug 2 change.
8224 (HAS_INIT_SECTION): Define, not visible yet.
8225 (LD_INIT_SWITCH): Define, not visible yet.
8226 * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
8227
8228 2000-01-04 Joel Sherrill (joel@OARcorp.com>
8229
8230 * config/rs6000/rtems.h: Include config/rtems.h.
8231
8232 2000-01-04 David Edelsohn <edelsohn@gnu.org>
8233
8234 * rs6000.h (HANDLE_PRAGMA_PACK): Define.
8235 (SLOW_UNALIGNED_ACCESS): Define.
8236 (CASE_VECTOR_MODE): Always use 32-bit offsets.
8237 (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
8238 (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
8239 (toc_section): Likewise and .toc pseudo-op.
8240 (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
8241 64-bit mode.
8242 (TEXT_SECTION_ASM_OP): Likewise.
8243 (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
8244 32-bit offsets.
8245
8246 1999-12-17 Jakub Jelinek <jakub@redhat.com>
8247
8248 * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
8249 UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
8250 compiling libgcc2.
8251
8252 2000-01-06 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8253
8254 * rs6000.h: Move more stuff from here...
8255 * aix.h: to here.
8256 * sysv4.h: Cleanup accordingly.
8257 * netware.h: Likewise
8258
8259 2000-01-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8260
8261 * rs6000.h: Continue cleanup.
8262 * aix.h: Likewise.
8263 * lynx.h: Likewise.
8264 * netware.h: Likewise.
8265 * sol2.h: Likewise.
8266 * sysv4.h: Likewise.
8267 * win-nt.h: Likewise.
8268
8269 * rs6000.h (TARGET_SWITCHES): Add descriptions.
8270 (TARGET_OPTIONS): Likewise.
8271
8272 * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
8273 (SUBTARGET_OPTIONS): Likewise.
8274
8275 * rs6000.md: Fix compile time warnings.
8276
8277 2000-01-04 Geoff Keating <geoffk@cygnus.com>
8278
8279 vxworks patches from the Cygnus tree originally by
8280 Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
8281 <vmakarov@cygnus.com>.
8282 * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
8283 (ENDFILE_SPEC): Likewise.
8284 (LIB_VXWORKS_SPEC): New macro.
8285 (STARTFILE_VXWORKS_SPEC): New macro.
8286 (ENDFILE_VXWORKS_SPEC): New macro.
8287 (LINK_START_VXWORKS_SPEC): New macro.
8288 (LINK_OS_VXWORKS_SPEC): New macro.
8289 (CPP_OS_VXWORKS_SPEC): New macro.
8290 (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
8291 * vxppc.h: Rewrite to use proper configuration method.
8292 * vxppcle.h: New file.
8293 * ../../configure.in: Add powerpcle-wrs-vxworks*.
8294 * ../../configure: Rebuilt.
8295
8296 2000-01-04 Geoff Keating <geoffk@cygnus.com>
8297
8298 Lots of changes to rs6000.h, sysv4.h, aix.h,
8299 aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
8300 with the aim that rs6000.h is the first header
8301 included and the others override it.
8302 * aix.h: New file.
8303
8304 * x-aix41-gld: Remove.
8305 * x-aix43: Remove.
8306 * x-aix41: Remove target-specific switches, and don't specify
8307 -Wl,-bbigtoc as we don't need it any more.
8308 * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
8309 Use t-aix43 for AIX 4.3 and above.
8310 * ../../configure: Regenerated.
8311
8312 * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
8313 options, that don't do anything yet.
8314 (MASK_SCHED_PROLOG): New macro.
8315 (MASK_SCHED_EPILOG): New macro.
8316 (TARGET_SCHED_PROLOG): New macro.
8317 (TARGET_SCHED_EPILOG): New macro.
8318
8319 2000-01-04 Geoff Keating <geoffk@cygnus.com>
8320
8321 * rs6000.c: Correct comment, the `minimal' TOCs are actually
8322 one per translation unit, not one per function.
8323 (output_toc): Also do duplicate constant elimination
8324 for per-translation-unit TOCs.
8325
8326 * rs6000.md (nonlocal_goto_receiver): Put it back as before. Add
8327 a comment explaining _exactly_ when this pattern gets used.
8328 (builtin_setjmp_receiver): New pattern for better clarity.
8329 (init_v4_pic): Move it into a section dealing with TOC registers.
8330
8331 1999-12-30 Geoff Keating <geoffk@cygnus.com>
8332
8333 * rs6000.c (toc_hash_table): New variable.
8334 (rs6000_hash_constant): New function.
8335 (toc_hash_function): New function.
8336 (toc_hash_eq): New function.
8337 (toc_hash_mark_entry): New function.
8338 (toc_hash_mark_table): New function.
8339 (output_toc): Don't output duplicate TOC entries in
8340 a single file.
8341 (rs6000_add_gc_roots): Add the hash table as a GC root.
8342 * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
8343 where they clearly shouldn't be. This may need to be fixed
8344 later when there is a GNU ar for AIX.
8345 * x-aix43: Don't define CLIB or AR_FOR_TARGET.
8346 Don't define BOOT_LDFLAGS as it is now not necessary.
8347
8348 1999-12-29 Geoff Keating <geoffk@cygnus.com>
8349
8350 * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
8351 for va_list on AIX. Use unsigned_char_type_node rather than
8352 constructing our own version on svr4.
8353
8354 1999-12-17 Geoff Keating <geoffk@cygnus.com>
8355
8356 * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
8357 since patently it's not.
8358
8359 1999-12-08 Geoff Keating <geoffk@cygnus.com>
8360
8361 * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
8362 define_expand/define_insn pair, and handle restore of the
8363 SVR4 -fpic register.
8364
8365 Wed Mar 15 15:43:38 2000 Jeffrey A Law (law@cygnus.com)
8366
8367 * acconfig.h (HAVE_GAS_WEAK): New define.
8368 * configure.in (assembler weak support): Check for .weak support.
8369 * config.in, configure: Rebuilt.
8370 * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
8371 HAVE_GAS_WEAK is defined.
8372
8373 2000-03-15 Nick Clifton <nickc@cygnus.com>
8374
8375 * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
8376 asm_fprintf().
8377
8378 2000-03-15 Zack Weinberg <zack@wolery.cumb.org>
8379
8380 * cppfiles.c (open_include_file): New function.
8381 (find_include_file, cpp_read_file): Use it.
8382
8383 2000-03-15 Jason Merrill <jason@casey.cygnus.com>
8384
8385 * cpphash.c (dump_hash_helper): Take the slot, not the element.
8386
8387 Wed Mar 15 14:28:54 2000 Jason Eckhardt <jle@cygnus.com>
8388
8389 * flow.c (verify_flow_info): Check for unconditional return.
8390
8391 Wed Mar 15 11:34:27 2000 Jim Wilson <wilson@cygnus.com>
8392
8393 * config/ia64/ia64.md (restore_stack_nonlocal): New.
8394 * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
8395 (__ia64_restore_stack_nonlocal): New.
8396 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
8397
8398 2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
8399
8400 * cpphash.c (collect_formal_parameters): Do not complain about
8401 parameter names that just start with `__VA_ARGS__'.
8402
8403 Wed Mar 15 13:26:58 MET 2000 Jan Hubicka <jh@suse.cz>
8404
8405 * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
8406 movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
8407 * i386.c (pentiumpro_cost): Set mul cost to 4.
8408 (x86_use_movx): Set for PPro.
8409
8410 Wed Mar 15 13:07:05 MET 2000 Jan Hubicka <jh@suse.cz>
8411
8412 * i386.md (ix86_compute_frame_size): stack_alignment_needed is
8413 STACK_BOUNDARY for empty frames now.
8414
8415 2000-03-14 Mark Mitchell <mark@codesourcery.com>
8416
8417 * stor-layout.c (layout_union): Remove.
8418 (layout_union_field): New function, split out from layout_union.
8419 (finish_union_layout): Likewise.
8420 (layout_field): Handle unions by calling layout_union_field.
8421 (finish_record_layout): Handle unions.
8422 (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
8423 QUAL_UNION_TYPE handling.
8424
8425 Wed Feb 23 13:00:06 CET 2000 Jan Hubicka <jh@suse.cz>
8426
8427 * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
8428 end of basic block is jump_insn, not barrier; use create_basic_block
8429 instead of creating basic block by hand.
8430
8431 2000-03-14 Jason Eckhardt <jle@cygnus.com>
8432
8433 * flow.c (reorder_basic_blocks): Account for barriers when writing
8434 over NEXT_INSN (last_bb->end).
8435 (verify_flow_info): Add check for missing barriers.
8436
8437 2000-03-14 Greg McGary <gkm@gnu.org>
8438
8439 * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
8440 * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
8441 * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
8442 __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
8443 __unbounded, __unbounded__): New keywords.
8444 * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
8445 * c-parse.y, c-parse.c, c-parse.h: Regenerate.
8446 * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
8447
8448 2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk>
8449
8450 * cselib.h: New file.
8451 * alias.c: Include "cselib.h".
8452 (fixed_scalar_and_varying_struct_p): Accept the addresses of the
8453 MEMs as two new arguments.
8454 (get_addr): New static function.
8455 (find_base_term): Handle VALUEs.
8456 (memrefs_conflict_p): Likewise.
8457 (true_dependence): Call get_addr on the addresses.
8458 Call fixed_scalar_and_varying_struct_p with addresses that have been
8459 passed through get_addr and canon_rtx.
8460 (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
8461 with true_dependence.
8462 Call get_addr on the addresses; don't call canon_rtx on the MEMs.
8463 * loop.c: Include "cselib.h".
8464 (load_mems): Process extended basic block that enters the loop with
8465 cselib. Use that information to change initialization of the shadow
8466 register so that a constant equivalence is seen by later passes.
8467 * reload1.c: Include "cselib.h".
8468 (reload_cse_invalidate_regno): Delete function.
8469 (reload_cse_mem_conflict_p): Likewise.
8470 (reload_cse_invalidate_mem): Likewise.
8471 (reload_cse_invalidate_rtx): Likewise.
8472 (reload_cse_regno_equal_p): Likewise.
8473 (reload_cse_check_clobber): Likewise.
8474 (reload_cse_record_set): Likewise.
8475 (reg_values): Delete static variable.
8476 (invalidate_regno_rtx): Likewise.
8477 (reload_cse_delete_noop_set): New static function.
8478 (reload_cse_simplify): New static function, broken out of
8479 reload_cse_regs_1.
8480 (reload_cse_noop_set_p): Delete unused argument INSN.
8481 Just call rtx_equal_for_cselib_p on set source and destination.
8482 (reload_cse_regs_1): Break out some code into reload_cse_simplify and
8483 reload_cse_delete_noop_set. Delete code to keep track of values; use
8484 cselib functions instead. Delete code to push/pop obstacks.
8485 (reload_cse_simplify_set): Use cselib to find equivalent values.
8486 Delete code to push/pop obstacks.
8487 (reload_cse_simplify_operands): Likewise.
8488 * rtl.def (VALUE): New rtx code.
8489 * rtl.h (union rtunion_def): New elt rt_cselib.
8490 (X0CSELIB, CSELIB_VAL_PTR): New macros.
8491 * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
8492 (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
8493 unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
8494 discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
8495 hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
8496 cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
8497 cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
8498 cselib_record_set, cselib_record_sets): New static functions.
8499 (cselib_lookup, cselib_update_varray_sizes, cselib_init,
8500 cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
8501 references_value_p): New functions.
8502 (MAX_USELESS_VALUES, REG_VALUES): New macros.
8503 (table, cselib_current_insn, next_unknown_value, cselib_nregs,
8504 n_useless_values, reg_values, callmem, cselib_obstack,
8505 cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
8506 New static variables.
8507 * varray.h (union varray_data_tag): New elt te.
8508 (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
8509 * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
8510 dependencies.
8511
8512 2000-03-14 Nick Clifton <nickc@cygnus.com>
8513
8514 * gcc.c (do_spec_1): Catch the case where %* is used in a
8515 substitution pattern, but it has not been initialised.
8516 Issue a meaningful error message if an unrecognised operator
8517 is encountered in a spec string.
8518
8519 2000-03-14 Richard Earnshaw <rearnsha@arm.com>
8520
8521 * function.c (prepare_function_start): Correctly initialize
8522 cfun->stack_alignment_needed.
8523
8524 2000-03-14 Zack Weinberg <zack@wolery.cumb.org>
8525
8526 * cppfiles.c (find_include_file): Don't assume nshort is a
8527 substring of name.
8528
8529 Tue Mar 14 08:42:21 2000 Jeffrey A Law (law@cygnus.com)
8530
8531 * configure.in (hppa configurations): Add pa32-regs.h to the
8532 list of tm files as appropriate.
8533 * configure: Rebuilt.
8534 * pa.c (compute_frame_size): Remove explicit knowledge about FP
8535 register numbering.
8536 (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
8537 (fmpyaddoperands, fmpysuboperands): Likewise.
8538 * pa.h: Remove various definitions which depend on knowing
8539 how registers are numbered.
8540 * pa32-regs.h: New file with PA32 register numbering specific
8541 definitions.
8542
8543 2000-03-14 Richard Henderson <rth@cygnus.com>
8544
8545 * regmove.c (combine_stack_adjustments): New.
8546 (stack_memref_p, single_set_for_csa): New.
8547 (free_csa_memlist, record_one_stack_memref): New.
8548 (try_apply_stack_adjustment): New.
8549 (combine_stack_adjustments_for_block): New.
8550 * rtl.h (combine_stack_adjustments): Declare.
8551 * toplev.c (rest_of_compilation): Call it.
8552
8553 * i386.md: Revert 2000-01-16 change.
8554
8555 2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de>
8556
8557 * gccbug.in: Add web category, gcc specific classes.
8558
8559 2000-03-14 Nathan Sidwell <nathan@codesourcery.com>
8560
8561 * stor-layout.c (finalize_record_size): Fix typo.
8562
8563 2000-03-14 Stan Shebs <shebs@apple.com>
8564
8565 * c-typeck.c (c_alignof): Error on incomplete types.
8566 * extend.texi (Alignment): Document this.
8567
8568 2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
8569
8570 * cppfiles.c: Include mkdeps.h.
8571 (find_include_file, read_include_file): Remove _cpp_ prefix
8572 from name, make static.
8573 (_cpp_execute_include): New function, broken out of
8574 do_include.
8575
8576 * cpplib.c: Don't include mkdeps.h.
8577 (struct directive): Remove type field. Reorder entries. The
8578 function takes only one argument.
8579 (struct if_stack): Make type field an int.
8580 (directive_table): Rename to dtable. Generate it, the
8581 prototypes of the directive handlers, and the enum for the
8582 directive numbers, from a template macro.
8583 (do_ifndef, do_include_next, do_import): New functions.
8584 (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
8585 do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
8586 do_ident, do_assert, do_unassert, do_sccs): Take only one
8587 argument.
8588 (do_sccs): Define always, but alter behavior based on
8589 SCCS_DIRECTIVE.
8590 (_cpp_handle_directive, consider_directive_while_skipping):
8591 Restructure for new directive table layout.
8592
8593 (pass_thru_directive): Take a directive number, not a pointer
8594 to a struct directive.
8595 (parse_include): New function, broken out of do_include.
8596 (do_include, do_import, do_include_next): Use parse_include
8597 and _cpp_execute_include.
8598 (do_elif, do_else): Test for T_ELSE specifically when checking
8599 for #elif/#else after #else.
8600 (parse_ifdef): New function, broken out of do_ifdef.
8601 (validate_else): Expect a name arg without a leading #.
8602 (if_directive_name): Delete.
8603 (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
8604 directive handlers with only one argument.
8605
8606 * cpphash.h: Update prototypes.
8607 (enum node_type): Remove entries for directives.
8608 * Makefile.in: Update dependencies.
8609
8610 * cpphash.c (dump_hash_helper): Only dump nodes of type
8611 T_MACRO. Emit a newline after each definition.
8612
8613 2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de>
8614
8615 * gccbug.in: New file.
8616 * configure.in (all_outputs): Add gccbug.
8617 * Makefile.in (install-common): Install gccbug.
8618 (GCCBUG_INSTALL_NAME): New variable.
8619 * configure: Rebuilt.
8620
8621 2000-03-13 Jason Merrill <jason@casey.cygnus.com>
8622
8623 * function.c (put_var_into_stack): Use type_for_mode to calculate
8624 part_type. Use MEM_SET_IN_STRUCT_P.
8625 * expr.c (store_field): Handle CONCAT.
8626 (store_constructor): Use fields_length.
8627 * tree.c (fields_length): New fn.
8628 * tree.h: Declare it.
8629
8630 2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
8631
8632 * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
8633 (cpplex.o): New target.
8634 * po/POTFILES.in: Add cpplex.c.
8635
8636 * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
8637 cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
8638 cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
8639 skip_block_comment, skip_line_comment, skip_comment,
8640 copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
8641 _cpp_parse_name, skip_string, parse_string,
8642 _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
8643 _cpp_get_directive_token, find_position,
8644 _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
8645 (maybe_macroexpand, _cpp_lex_token): New functions.
8646
8647 * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
8648 parse_goto_mark): Delete.
8649 (_cpp_handle_eof): New function.
8650 (_cpp_handle_directive): Rename from handle_directive.
8651 (_cpp_output_line_command): Rename from output_line_command.
8652 (do_if, do_elif): Call _cpp_parse_expr directly.
8653 * cppfiles.c (_cpp_read_include_file): Don't call
8654 init_input_buffer here.
8655 * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
8656 * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
8657 here; pop the token_buffer and skip the rest of the line here.
8658 * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
8659 here.
8660
8661 * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
8662 Define here.
8663 (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
8664 CPP_GOTO_MARK): New macros.
8665 (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
8666 _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
8667 _cpp_read_and_prescan, _cpp_init_input_buffer,
8668 _cpp_grow_token_buffer, _cpp_get_directive_token,
8669 _cpp_handle_directive, _cpp_handle_eof,
8670 _cpp_output_line_command): Prototype them here.
8671 * cpplib.h (enum cpp_token): Add CPP_MACRO.
8672 (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
8673 quote_string, output_line_command): Remove.
8674
8675 2000-03-13 Bernd Schmidt <bernds@cygnus.co.uk>
8676
8677 * stmt.c (expand_end_case): RANGE may be signed, and when checking
8678 whether it is too large we must also verify that it isn't negative.
8679
8680 2000-03-13 Jakub Jelinek <jakub@redhat.com>
8681
8682 * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
8683 (movsi_zero_liveg0): Remove.
8684 (movsf_insn_novis_liveg0): Remove.
8685 (negsi2): Remove.
8686 (negsi2_not_liveg0): Rename to negsi2.
8687 (one_cmplsi2): Remove.
8688 (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
8689 (one_cmplsi2_liveg0): Remove.
8690 * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
8691 MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
8692 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
8693 (PREDICATE_CODES): Remove zero_operand.
8694 * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
8695 TARGET_BROKEN_SAVERESTORE.
8696 (zero_operand): Remove.
8697 * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
8698 -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
8699 options.
8700 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
8701 * config/sparc/linux-aout.h (TARGET_LIVE_G0,
8702 TARGET_BROKEN_SAVERESTORE): Remove.
8703 * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
8704 Remove.
8705 * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
8706 Remove.
8707 * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
8708 Remove.
8709
8710 * config/sparc/sparc.md (return_df_no_fpu): New pattern.
8711
8712 2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
8713
8714 * cpplib.c (do_pragma_implementation): Fix off-by-one error
8715 truncating a string. Don't assume tokens are nul terminated.
8716 Problem noted by Andreas Jaeger <aj@suse.de>
8717
8718 2000-03-13 Jason Merrill <jason@casey.cygnus.com>
8719
8720 * dwarf2out.c (add_name_and_src_coords_attributes): Only add
8721 DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
8722 (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
8723
8724 2000-03-13 Richard Earnshaw <rearnsha@arm.com>
8725
8726 * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
8727 STRUCTURE_SIZE_BOUNDARY.
8728
8729 2000-03-13 Mark Mitchell <mark@codesourcery.com>
8730
8731 * tree.h (record_layout_info_s): New structure.
8732 (record_layout_info): New type.
8733 (new_record_layout_info): New function.
8734 (layout_field): Likewise.
8735 (finish_record_layout): Likewise.
8736 * stor-layout.c (layout_record): Remove.
8737 (new_record_layout_info): New function.
8738 (layout_field): New function, broken out from layout_record.
8739 (finalize_record_size): Likewise.
8740 (compute_record_mode): Likewise.
8741 (finalize_type_size): New function, broken out from layout_type.
8742 (finish_record_layout): Likewise.
8743 (layout_type): Use them.
8744
8745 2000-03-12 Zack Weinberg <zack@wolery.cumb.org>
8746
8747 * cpphash.c: Don't include version.h.
8748 (special_symbol) [case T_VERSION]: Look for the string in
8749 hp->value.cpval; don't use version_string.
8750 * cppinit.c (initialize_builtins): Set hp->value.cpval for
8751 __VERSION__ to version_string.
8752 * Makefile.in (cpphash.o): Update deps.
8753
8754 2000-03-12 Zack Weinberg <zack@wolery.cumb.org>
8755
8756 Convert cpplib to use libiberty/hashtab.c.
8757
8758 * cpplib.h (struct cpp_reader): Make hashtab and
8759 all_include_files of type 'struct htab *'. Delete HASHSIZE
8760 and ALL_INCLUDE_HASHSIZE macros.
8761
8762 * cpphash.h: Update prototypes.
8763 (struct hashnode): Remove next, prev, and bucket_hdr members.
8764 Make length a size_t. Add hash member.
8765 (struct ihash): Remove next member. Add hash member. Make
8766 name a flexible array member.
8767
8768 * cppfiles.c: Include hashtab.h.
8769 (include_hash): Delete.
8770 (IHASHSIZE): New macro.
8771 (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
8772 (cpp_included): Do the hash lookup here.
8773 (_cpp_find_include_file): Rewrite.
8774 (cpp_read_file): Put the "fake" hash entry into the hash
8775 table. Honor the control_macro, if it turns out we've seen
8776 the file before. Don't push the buffer here.
8777 (_cpp_read_include_file): Push the buffer here.
8778 (OMODES): New macro. Use it whenever we call open(2).
8779
8780 * cpphash.c: Include hashtab.h.
8781 (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
8782 _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
8783 _cpp_lookup_slot): New functions.
8784 (HASHSIZE): new macro.
8785 (hashf, _cpp_install, _cpp_delete_macro): Delete.
8786 (_cpp_lookup): Use hashtab.h routines.
8787
8788 * cppinit.c: Include hashtab.h.
8789 (cpp_reader_init): Call _cpp_init_macro_hash and
8790 _cpp_init_include_hash. Don't allocate hashtab directly.
8791 (cpp_cleanup): Just call htab_delete on pfile->hashtab and
8792 pfile->all_include_files.
8793 (initialize_builtins): Use _cpp_make_hashnode and
8794 htab_find_slot to add hash entries.
8795 (cpp_finish): Just call _cpp_dump_macro_hash.
8796 * cpplib.c: Include hashtab.h.
8797 (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
8798 create hash entries.
8799 (do_pragma_poison, do_assert): Likewise.
8800 (do_include): Don't push the buffer here. Don't increment
8801 system_include_depth unless _cpp_read_include_file succeeds.
8802 (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
8803 or htab_remove_elt.
8804 (do_pragma_implementation): Use alloca to create copy.
8805
8806 * Makefile.in: Update dependencies.
8807
8808 2000-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8809
8810 * cppinit.c (cl_directive_handler): More K&R fixing.
8811
8812 Sat Mar 11 23:54:26 2000 Jim Wilson <wilson@cygnus.com>
8813
8814 * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
8815 STACK_BOUNDARY.
8816 * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
8817
8818 2000-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8819
8820 * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
8821 Change from char[] to macros.
8822
8823 2000-03-12 Neil Booth <NeilB@earthling.net>
8824
8825 * cppinit.c (cpp_start_read): Update indirect function
8826 call to K&R C.
8827
8828 Sat Mar 11 16:18:12 2000 Jim Wilson <wilson@cygnus.com>
8829
8830 * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
8831 entry.
8832
8833 * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
8834 config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
8835
8836 2000-03-11 Neil Booth <NeilB@earthling.net>
8837
8838 * cppinit.c (struct pending option): Replace undef with a
8839 pointer to a directive handling routine.
8840 (struct cpp_pending): Replace separate assert_ and define_
8841 lists with one directive_ list.
8842 (new_pending_define): Rename new_pending_directive. Extra
8843 argument is the directive's handling routine.
8844 (handle_option): Update to use new_pending_directive.
8845
8846 2000-03-11 Neil Booth <NeilB@earthling.net>
8847
8848 * cppfiles.c (file_cleanup, _cpp_find_include_file,
8849 remap_filename, _cpp_read_include_file, actual_directory,
8850 hack_vms_include_specification): Replace bcopy(), index() etc
8851 calls. Add casts to some allocations. Make some variables
8852 pointers to const [unsigned] char.
8853 * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
8854 collect_formal_parameters): Similarly.
8855 * cppinit.c (struct pending_option, append_include_chain,
8856 cpp_options_init, cpp_reader_init, initialize_standard_includes,
8857 cpp_start_read, new_pending_define, handle_option): Similarly.
8858 * cpplib.c (cpp_define, copy_comment, do_define, do_include,
8859 do_undef, do_error, do_warning, do_pragma, do_pragma_once,
8860 do_pragma_implementation, detect_if_not_defined,
8861 do_ifdef, skip_if_group, cpp_get_token, parse_string,
8862 do_assert, do_unassert): Similarly.
8863 * cpplib.h (cpp_buffer, cpp_options): Update types. Update
8864 function prototypes.
8865 * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
8866
8867 2000-03-10 Richard Henderson <rth@cygnus.com>
8868
8869 * builtins.c (expand_builtin_strlen): Revert last change.
8870 Use emit_insn_before if we're at the beginning of a sequence.
8871
8872 2000-03-10 Jason Merrill <jason@casey.cygnus.com>
8873
8874 * builtins.c (expand_builtin_strlen): Make sure that we have something
8875 at the beginning of the sequence.
8876
8877 * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
8878 deferred inlines.
8879
8880 * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
8881
8882 2000-03-10 Richard Henderson <rth@cygnus.com>
8883
8884 * except.c (can_throw): Use INTVAL on a CONST_INT.
8885 (reachable_handlers): Likewise.
8886 * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
8887
8888 2000-03-10 Andreas Jaeger <aj@suse.de>
8889
8890 * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
8891 MD_STARTFILE_PREFIX since those are not needed on linux.
8892 (ASM_FILE_START): New, from mips/gnu.h.
8893
8894 2000-03-09 Richard Henderson <rth@cygnus.com>
8895 Alex Samuel <samuel@codesourcery.com> and others
8896
8897 * Makefile.in (ssa.o): New rule.
8898 (OBJS): Add ssa.o.
8899 (STAGESTUFF): Add *.ssa and *.ussa.
8900 (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
8901 * rtl.def (PHI): New RTL expression.
8902 * rtl.h (clear_log_links): New declaration.
8903 (convert_to_ssa): Likewise.
8904 (convert_from_ssa): Likewise.
8905 * flow.c (split_edge): If the entry node falls through to the
8906 split edge's source block, split the entry edge.
8907 (clear_log_links): New function.
8908 * toplev.c (ssa_dump): New variable.
8909 (flag_ssa): Likewise.
8910 (f_options): Add "ssa".
8911 (compile_file): Create SSA dump files.
8912 (rest_of_compilation): Go to and from SSA if enabled.
8913 (decide_d_option): Handle -de for SSA dump files.
8914 * ssa.c: New file.
8915
8916 Thu Mar 9 20:01:38 2000 Jim Wilson <wilson@cygnus.com>
8917
8918 * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
8919 same as VAR_DECL.
8920
8921 2000-03-09 Benjamin Kosnik <bkoz@cygnus.com>
8922
8923 * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
8924
8925 Thu Mar 9 18:10:02 2000 Jeffrey A Law (law@cygnus.com)
8926
8927 * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
8928 (MD_STARTFILE_PREFIX_1): New macro.
8929
8930 2000-03-09 Robert Lipe <robertl@sco.com>
8931
8932 * config/ia64/ia64.c: Include system.h.
8933
8934 2000-03-09 Jason Merrill <jason@casey.cygnus.com>
8935
8936 * except.c (nothrow_function_p): If -fno-exceptions, just return.
8937 (init_eh_nesting_info): Likewise.
8938
8939 * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
8940 (TREE_NOTHROW): Rename from TREE_RAISES.
8941 * toplev.c (rest_of_compilation): Set it.
8942 * print-tree.c (print_node): Adjust.
8943 * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
8944 (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
8945 * calls.c (emit_call_1): Add 'nothrow' parm. Add
8946 REG_EH_REGION note as appropriate.
8947 (libfunc_nothrow): New fn.
8948 (emit_library_call, emit_library_call_value): Use it.
8949 (expand_call): Check TREE_NOTHROW.
8950
8951 * varasm.c (make_decl_rtl): Skip initial '*' when setting
8952 DECL_ASSEMBLER_NAME.
8953
8954 2000-03-09 Andreas Jaeger <aj@suse.de>
8955
8956 * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
8957 (TARGET_MEM_FUNCTIONS): Define.
8958
8959 2000-03-09 Jason Merrill <jason@casey.cygnus.com>
8960
8961 * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
8962
8963 * except.c (can_throw): See through a SEQUENCE.
8964 (nothrow_function_p): New fn.
8965 * except.h: Declare it.
8966 * function.c (current_function_nothrow): New var.
8967 (prepare_function_start): Initialize it.
8968 * output.h: Declare it.
8969 * toplev.c (rest_of_compilation): Set it.
8970 * dwarf2out.c (dwarf2out_begin_prologue): Use it.
8971
8972 2000-03-09 Zack Weinberg <zack@wolery.cumb.org>
8973
8974 * cpphash.c (collect_formal_parameters): strncmp returns 0 for
8975 match. (cpp_compare_defs): Count the nul separator when
8976 advancing over argument names.
8977
8978 2000-03-09 Bernd Schmidt <bernds@cygnus.co.uk>
8979
8980 * recog.c (preprocess_constraints): Matching constraints affect
8981 same alternative/different operand, not same operand/different
8982 alternative.
8983
8984 * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
8985 register and a constant specially.
8986
8987 2000-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8988
8989 * libgcc2.h: New file.
8990 * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
8991
8992 Wed Mar 8 16:19:42 2000 Jim Wilson <wilson@cygnus.com>
8993
8994 * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
8995 * configure: Regenerate.
8996 * config/ia64: New.
8997
8998 2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
8999
9000 * Makefile.in (LIBCPP_DEPS): New macro.
9001 (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
9002 it to declare deps.
9003 * cpperror.c: Include cpphash.h.
9004 * cppexp.c: Include cpphash.h. Remove MULTIBYTE_CHARS
9005 dingleberry.
9006 (lex): Don't use CPP_WARN_UNDEF.
9007 (_cpp_parse_expr): Return an int, the truth value.
9008 * cppfiles.c: Include cpphash.h.
9009 (_cpp_merge_include_chains): Move to cppinit.c and make static.
9010 * cppinit.c (include_defaults_array): Disentangle.
9011 (cpp_cleanup): Don't free the if stack here.
9012 (cpp_finish): Pop off all buffers, not just one.
9013 * cpplib.c (eval_if_expr): Return int.
9014 (do_xifdef): Rename do_ifdef.
9015 (handle_directive): Don't use CPP_PREPROCESSED.
9016 (cpp_get_token): Don't use CPP_C89.
9017 * fix-header.c: Don't use CPP_OPTIONS.
9018
9019 * cpplib.h: Move U_CHAR, enum node_type, struct
9020 file_name_list, struct ihash, is_idchar, is_idstart,
9021 is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
9022 CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
9023 CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
9024 CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
9025 CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
9026 of _cpp_simplify_pathname, _cpp_find_include_file,
9027 _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
9028 Move struct if_stack to cpplib.c. Move struct cpp_pending to
9029 cppinit.c.
9030 Change all uses of U_CHAR to be unsigned char instead.
9031 Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
9032
9033 2000-03-08 Jason Merrill <jason@casey.cygnus.com>
9034
9035 * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
9036 (dwarf2out_begin_prologue): Set it.
9037 (output_call_frame_info): Don't emit EH unwind info for leaves.
9038
9039 * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
9040 can occur outside of an EH region.
9041 * except.c: Correct comments about rethrow behavior.
9042 (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
9043
9044 2000-03-08 Andrew MacLeod <amacleod@cygnus.com>
9045
9046 * flow.c (make_edges): Always call make_eh_edge for calls.
9047
9048 2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
9049
9050 * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
9051 (struct cpp_buffer): Remove fname and underflow fields.
9052 (struct cpp_reader): Remove get_token field.
9053 (struct include_hash): Rename to struct ihash. Add typedef to
9054 IHASH.
9055 (struct if_stack): Remove fname field.
9056 (IF_STACK_FRAME): Rename to IF_STACK.
9057
9058 * cpperror.c (print_containing_files): Trust that there are no
9059 macro buffers below the top file buffer.
9060 * cppfiles.c: Replace all references to 'struct include_hash'
9061 with 'IHASH'. Rename initialize_input_buffer to
9062 init_input_buffer. Don't set or reference cpp_buffer->fname,
9063 use buffer->ihash->name instead.
9064 * cpphash.c (special_symbol): Use cpp_file_buffer. Use NULL
9065 not CPP_NULL_BUFFER.
9066 * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
9067 IF_STACK_FRAME, IHASH not struct include_hash.
9068 * cpplib.c: Rename eval_if_expression to eval_if_expr. Remove
9069 null_underflow. Use IF_STACK not IF_STACK_FRAME, IHASH not
9070 struct include_hash, NULL not CPP_NULL_BUFFER. Remove all
9071 references to cpp_buffer->fname (delete entirely, or use
9072 ->ihash->name instead) and IF_STACK->fname.
9073 (cpp_push_buffer): Don't set new->underflow.
9074 (do_include): Use cpp_file_buffer.
9075
9076 * cpphash.c (collect_formal_parameters): Remove duplicate
9077 increment of argslen. Pedwarn in C99 mode if __VA_ARGS__ is
9078 used as a macro argument name. Don't append "..." to namebuf
9079 for varargs macros. After we're done scanning, go through
9080 namebuf and make it NUL separated, not comma separated.
9081 (_cpp_compare_defs): Remove register tag from variables.
9082 Expect defn->argnames to be NUL separated.
9083 (_cpp_dump_definition): Expect defn->argnames to be NUL
9084 separated and in forward order.
9085 * cpphash.h: Update documentation of argnames field.
9086
9087 2000-03-08 Richard Henderson <rth@cygnus.com>
9088
9089 * builtins.c (expand_builtin_strlen): Be prepared for strlensi
9090 to fail. Don't pre-expand the source operand.
9091
9092 * i386.md (strlensi): Initialize eoschar and align before use.
9093
9094 2000-03-08 Jason Merrill <jason@casey.cygnus.com>
9095
9096 * expr.c (expand_expr, case ARRAY_REF): Still check for missing
9097 CONSTRUCTOR element.
9098
9099 2000-03-08 Gavin Romig-Koch <gavin@cetus.cygnus.com>
9100
9101 * mips.c (mips_expand_prologue): If the last
9102 named argument is the vararg marker "va_list", treat it as
9103 an unnamed argument.
9104
9105 2000-03-08 Clinton Popetz <cpopetz@cygnus.com>
9106
9107 * dbxout.c (dbxout_parms): When correcting for promoted
9108 big-endian parameters, use the mode of the DECL_RTL rather
9109 than UNITS_PER_WORD.
9110
9111 2000-03-08 Nathan Sidwell <nathan@codesourcery.com>
9112
9113 * c-common.h (make_fname_decl): Declare.
9114 * c-common.c (make_fname_decl): Define.
9115 (declare_hidden_char_array): Remove.
9116 (declare_function_name): Use make_fname_decl.
9117 * c-decl.c (c_make_fname_decl): New function.
9118 (init_decl_processing): Set make_fname_decl.
9119
9120 Tue Mar 7 23:50:31 2000 Jeffrey A Law (law@cygnus.com)
9121
9122 * cccp.c (handle_directive): Initialize backslash_newlines_p.
9123
9124 2000-03-07 Philipp Thomas <pthomas@suse.de>
9125
9126 * po/POTFILES.in: Remove cppalloc.c from file list.
9127
9128 2000-03-07 Steve Chamberlain <sac@pobox.com>
9129
9130 * pj.c (pj_expand_prologue): current_function->args_info is
9131 now current_function_args_info.
9132
9133 * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
9134 LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
9135 ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
9136
9137 2000-03-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9138
9139 * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
9140 output as hexadecimal rather than the default octal.
9141
9142 2000-03-07 Zack Weinberg <zack@wolery.cumb.org>
9143
9144 * cpphash.c (special_symbol): Fix thinko in previous commit.
9145
9146 2000-03-07 Neil Booth <NeilB@earthling.net>
9147
9148 * cppexp.c (struct operation, left_shift, right_shift,
9149 cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
9150 "int"s to "unsigned int"s.
9151 * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
9152 Similarly.
9153 * cpplib.h: Update for above.
9154 * mkdeps.c (deps_init, deps_calc_target): Cast pointers
9155 returned from allocations.
9156
9157 * cppinit.c (opt_comp, parse_options): New functions.
9158 (handle_option): Use parse_option to parse a single command
9159 line option, that possibly takes an argument.
9160 (cpp_handle_options): Sort the array of command line options on
9161 first invocation (non-ASCII hosts only).
9162 (print_help): Update.
9163
9164 2000-03-07 Zack Weinberg <zack@wolery.cumb.org>
9165
9166 * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
9167 backslash counting loops. Problem noted by Matt Kraai <kraai@ghs.com>.
9168
9169 * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
9170 initialized.
9171 * cppinit.c (cpp_cleanup): Free imp->nshort also.
9172
9173 * cpperror.c (cpp_print_containing_files,
9174 cpp_print_file_and_line, v_cpp_message): Rename to
9175 print_containing_files, print_file_and_line, and v_message.
9176 * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
9177 to _cpp_parse_expr, parse_escape, and lex.
9178 (parse_charconst): Remove broken multibyte support.
9179 * cppfiles.c (include_hash): Make static.
9180 (cpp_included): New function.
9181 (merge_include_chains, find_include_file, finclude,
9182 simplify_pathname): Rename to _cpp_merge_include_chains,
9183 _cpp_find_include_file, _cpp_read_include_file, and
9184 _cpp_simplify_pathname.
9185 * cpphash.c (cpp_lookup, free_definition, delete_macro,
9186 cpp_install, create_definition, macroexpand, compare_defs,
9187 dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
9188 _cpp_delete_macro, _cpp_install, _cpp_create_definition,
9189 _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
9190 * cppinit.c (cpp_handle_option): Rename to handle_option, make
9191 static.
9192 * cpplib.c: Remove extern prototype of cpp_parse_expr.
9193
9194 * cpphash.h: Update prototypes.
9195 * cpplib.h: Likewise. Prototype _cpp_parse_expr here.
9196
9197 2000-03-07 Andrew Haley <aph@cygnus.com>
9198
9199 * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
9200 PTRDIFF_TYPE should be based solely on Pmode.
9201 (SIZE_TYPE): ditto.
9202
9203 2000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9204
9205 * rtl.h (rtunion_def): Constify member `rtstr'.
9206 (emit_line_note_after, emit_line_note, emit_line_note_force,
9207 emit_note, decode_asm_operands): Constify.
9208
9209 * cse.c (canon_hash): Likewise.
9210
9211 * dbxout.c (dbxout_block): Likewise.
9212
9213 * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
9214 v_warning_for_asm): Likewise.
9215
9216 * dwarfout.c (function_start_label): Likewise.
9217
9218 * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
9219 emit_line_note_force): Likewise.
9220
9221 * final.c (last_filename, asm_insn_count, final_scan_insn,
9222 output_source_line): Likewise.
9223
9224 * function.h (struct emit_status): Likewise.
9225
9226 * gcse.c (hash_expr_1): Likewise.
9227
9228 * genattr.c (gen_attr, main): Likewise.
9229
9230 * genattrtab.c (struct function_unit, current_alternative_string,
9231 write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
9232 attr_numeral, check_attr_test, check_attr_value,
9233 convert_set_attr_alternative, convert_set_attr,
9234 compute_alternative_mask, simplify_by_exploding, gen_attr,
9235 gen_unit): Likewise.
9236
9237 * genflags.c (gen_insn): Likewise.
9238
9239 * gengenrtl.c (type_from_format): Likewise.
9240
9241 * genopinit.c (gen_insn): Likewise.
9242
9243 * genoutput.c (n_occurrences, process_template, process_template):
9244 Likewise.
9245
9246 * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9247 Likewise.
9248
9249 * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9250 Likewise.
9251
9252 * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
9253 ggc_set_mark, ggc_get_size): Likewise.
9254
9255 * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
9256
9257 * optabs.c (init_one_libfunc): Likewise.
9258
9259 * output.h (assemble_start_function): Likewise.
9260
9261 * recog.c (decode_asm_operands): Likewise.
9262
9263 * toplev.c (rest_of_compilation): Likewise.
9264
9265 * tree.h (emit_line_note_after, emit_line_note,
9266 emit_line_note_force): Likewise.
9267
9268 * varasm.c (asm_output_bss, asm_output_aligned_bss,
9269 asm_emit_uninitialised, assemble_start_function,
9270 assemble_variable, const_hash, compare_constant_1,
9271 find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
9272
9273 * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
9274
9275 * alpha/alpha.md (call_vms, call_value_vms): Likewise.
9276
9277 * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
9278
9279 * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
9280
9281 * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
9282 arm_dllimport_name_p): Likewise.
9283
9284 * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
9285 Likewise.
9286
9287 * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
9288
9289 * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9290
9291 * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
9292 arm_mark_dllexport, arm_mark_dllimport,
9293 arm_pe_encode_section_info): Likewise.
9294
9295 * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
9296 ASM_FINISH_DECLARE_OBJECT): Likewise.
9297
9298 * arm/thumb.c (thumb_function_prologue): Likewise.
9299
9300 * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
9301
9302 * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9303
9304 * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
9305
9306 * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
9307
9308 * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
9309
9310 * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9311
9312 * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
9313 ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
9314
9315 * i386/i386-protos.h (asm_output_function_prefix): Likewise.
9316
9317 * i386/i386.c (asm_output_function_prefix): Likewise.
9318
9319 * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
9320
9321 * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9322
9323 * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
9324
9325 * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
9326 ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
9327 ASM_OUTPUT_SECTION_NAME): Likewise.
9328
9329 * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
9330
9331 * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
9332
9333 * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
9334
9335 * m32r/m32r.c (m32r_encode_section_info): Likewise.
9336
9337 * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9338
9339 * mcore/mcore.c (mcore_encode_section_info): Likewise.
9340
9341 * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9342
9343 * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9344
9345 * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9346
9347 * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
9348
9349 * mips/mips.md (movdi, movsi): Likewise.
9350
9351 * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9352
9353 * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9354
9355 * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9356
9357 * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
9358 ASM_OUTPUT_ASCII): Likewise.
9359
9360 * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
9361 output_mi_thunk, output_toc): Likewise.
9362
9363 * rs6000/rs6000.md (movsi): Likewise.
9364
9365 * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
9366
9367 * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
9368
9369 * v850/v850.c (print_operand, print_operand_address,
9370 v850_encode_data_area): Likewise.
9371
9372 2000-03-07 Clinton Popetz <cpopetz@cygnus.com>
9373
9374 * config/mips/mips.md (zero_extendsidi2): Always force operand
9375 one to memory for mips16.
9376
9377 Mon Mar 6 15:22:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9378
9379 * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
9380 (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
9381 (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
9382 (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
9383 (min_precision): Result is unsigned.
9384 (add_double, neg_double, mul_double): Low word is unsigned.
9385 (lshift_double, rshift_double, lrotate_double): Likewise.
9386 (rrotate_double, div_and_round_double): Likewise.
9387 (tree_floor_log2, compare_tree_int): New functions.
9388 (preserve_rtl_expr_temps): New declaration.
9389 * c-common.c (declare_hidden_char_array): Use compare_tree_int.
9390 (decl_attributes): Use tree_log2 to find alignment.
9391 Check for TREE_INT_CST_HIGH for format args.
9392 (min_precision): Now unsigned.
9393 Use tree_floor_log2.
9394 (truthvalue_conversion): Delete long-disabled code.
9395 * c-decl.c (finish_struct): Clean up tests on field width.
9396 (finish_function): Use compare_tree_int.
9397 * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
9398 * c-typeck.c (comptypes): Use tree_int_cst_equal.
9399 (default_conversion, digest_init): Use compare_tree_int.
9400 (build_binary_op): Use integer_all_onesp and compare_tree_int.
9401 Fix type errors in forming masks.
9402 * calls.c (initialize_argument_information): Use compare_tree_int.
9403 * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9404 * except.c (expand_eh_region_start_tree): Use compare_tree_int.
9405 * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
9406 (store_field): Use compare_tree_int.
9407 (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
9408 (expand_expr, case ARRAY_REF): Use compare_tree_int.
9409 (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
9410 (do_store_flag): Use compare_tree_int.
9411 * fold-const.c (encode, decode): Low part is always unsigned.
9412 (force_fit_type, add_double, neg_double, mul_double): Likewise.
9413 (lshift_double, rshift_double, lrotate_double): Likewise.
9414 (rrotate_double, div_and_round_double, int_const_binop): Likewise.
9415 (fold_convert): Use compare_tree_int.
9416 (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
9417 (invert_truthvalue, case INTEGER_CST): Likewise.
9418 (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
9419 * mkdeps.c (deps_dummy_targets): Make I unsigned.
9420 * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
9421 (lshift_double, rshift_double, lrotate_double, rrotate_double):
9422 Likewise.
9423 * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
9424 (expand_end_case): Use compare_tree_int.
9425 (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9426 * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
9427 (layout_decl): Likewise.
9428 (layout_record, layout_union): Make sizes unsigned.
9429 (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
9430 (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
9431 * tree.c (struct type_hash): hashcode is unsigned.
9432 (build_type_attribute_variant, type_hash_list): Likewise.
9433 (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
9434 (attribute_hash_list, build_array_type, build_method_type): Likewise.
9435 (build_complex_type): Likewise.
9436 (real_value_from_int_cst): Remove unneeded casts.
9437 (integer_all_onesp): Add casts.
9438 (tree_floor_log2, compare_tree_int): New functions.
9439 (build_index_type): Use tree_int_cst_sgn.
9440 * varasm.c (assemble_variable): Use compare_tree_int.
9441
9442 2000-03-06 Jason Merrill <jason@casey.cygnus.com>
9443
9444 * cpphash.c (collect_expansion): Also catch ## at start of macro.
9445
9446 * varasm.c (make_decl_rtl): Don't add a number to members of
9447 local classes.
9448 (make_function_rtl): Likewise.
9449
9450 2000-03-06 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
9451
9452 * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
9453 patch from 2000-01-28.
9454
9455 2000-03-06 Clinton Popetz <cpopetz@cygnus.com>
9456
9457 * config/sh/sh.c: (barrier_align): Handle a delay slot that is
9458 filled with an insn from the jump target.
9459
9460 2000-03-07 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9461
9462 * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
9463 (c4x_external_ref): Likewise.
9464 * config/c4x/c4x.c (struct name_list): Likewise.
9465
9466 1999-12-16 Ben Collins <bcollins@debian.org>
9467
9468 * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
9469 argument to genmultilib.
9470 * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
9471 the contents into the multilib.h header.
9472 * gcc.c: Declare multilib_exclusions for the specs file.
9473 (set_multilib_dir): Use it.
9474 (print_multilib_info): Likewise.
9475 * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
9476 to pass to genmultilib.
9477
9478 2000-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9479
9480 * builtins.c (built_in_class_names, built_in_names): Constify a
9481 char*.
9482
9483 * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
9484 int.
9485 (_mcleanup): Ensure value matches format specifier in sprintf.
9486
9487 * cpphash.c (special_symbol): Don't needlessly cast away
9488 const-ness.
9489
9490 * cppinit.c (base_name): Delete unused prototype.
9491
9492 * mkdeps.c (deps_init): Make definition K&R safe.
9493
9494 * tree.h (built_in_class_names, built_in_names): Constify a
9495 char*.
9496
9497 2000-03-06 Jakub Jelinek <jakub@redhat.com>
9498
9499 * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
9500 floating point instructions for epilogue delay.
9501
9502 * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
9503 to gas if it supports .register pseudo.
9504
9505 * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
9506 LONG_DOUBLE_TYPE_SIZE if not defined.
9507 Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
9508 LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
9509 * real.c: Likewise.
9510 * gengenrtl.c: Likewise.
9511 * print-rtl.c: Likewise.
9512 * rtl.c: Likewise.
9513 * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
9514 MASK_LONG_DOUBLE_128.
9515 * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
9516 * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
9517 * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
9518 (SUBTARGET_SWITCHES): Define.
9519 (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
9520 with -mlong-double-128.
9521 (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9522 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9523 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9524 (CC1_SPEC): Include -mlong-double-{64,128} as needed.
9525 * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
9526 (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
9527 with -mlong-double-128.
9528 (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9529 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9530 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9531 * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
9532 TARGET_LONG_DOUBLE_128): Define.
9533 * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9534 * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
9535 long double on TARGET_ARCH64.
9536
9537 2000-03-06 Mark Mitchell <mark@codesourcery.com>
9538
9539 * function.c (free_temps_for_rtl_expr): Don't free slots
9540 that have been pushed into a higher level.
9541
9542 Revert this patch:
9543 2000-03-05 Mark Mitchell <mark@codesourcery.com>
9544
9545 2000-03-05 Mark Mitchell <mark@codesourcery.com>
9546
9547 * basic-block.h (ALLOCA_REG_SET): Remove.
9548 (INITIALIZE_REG_SET): New macro.
9549 * flow.c (update_life_info): Use it.
9550 (calculate_global_regs_live): Likewise.
9551 (propagate_block): Likewise.
9552 * global.c (build_insn_chain): Likewise.
9553 * haifa-sched.c (schedule_region): Likewise.
9554
9555 2000-03-05 Stephane Carrez <stcarrez@worldnet.fr>
9556
9557 * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
9558 (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
9559 (DWARF_ARANGES_PAD_SIZE): New define.
9560 (output_aranges): Use it to pad the address range header.
9561 (DWARF_ROUND): Fix for non power of 2 rounding.
9562
9563 2000-03-05 Jason Merrill <jason@casey.cygnus.com>
9564
9565 * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
9566
9567 2000-03-05 Mark Mitchell <mark@codesourcery.com>
9568
9569 * tree.def (RTL_EXPR): Update documentation.
9570 * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
9571 * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
9572 * function.c (preserve_rtl_expr_temp): New function.
9573 (preserve_rtl_expr_temps): Likewise.
9574 (preserve_rtl_expr_result): Use it.
9575
9576 Revert this patch:
9577 2000-03-04 Mark Mitchell <mark@codesourcery.com>
9578
9579 2000-03-04 Thomas Schuster <Thomas.Schuster@gmx.net>
9580
9581 * regmove.c (copy_src_to_dest) Do not create src->dest move
9582 for unchanging destination.
9583
9584 2000-03-04 Mark Mitchell <mark@codesourcery.com>
9585
9586 * function.h (struct sequence_stack): Remove rtl_expr.
9587 (struct emit_staus): Likewise.
9588 (seq_rtl_expr): Remove.
9589 * tree.h (free_temps_for_rtl_expr): Don't declare.
9590 (start_sequence_for_rtl_expr): Likewise.
9591 * rtl.h (preserve_rtl_expr_result): Likewise.
9592 * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
9593 (start_sequence_for_rtl_expr): Remove.
9594 (push_topmost_sequence): Don't save sequence_rtl_expr.
9595 (pop_topmost_sequence): Remove comment about not restoring it.
9596 (end_sequence): Don't set seq_rtl_expr.
9597 (init_emit): Don't initialize it.
9598 (mark_sequence_stack): Don't mark it.
9599 (mark_emit_status): Likewise.
9600 * except.c (protect_with_terminate): Use
9601 start_sequence_for_rtl_expr, not start_sequence.
9602 * expr.c (expand_expr, case RTL_EXPR): Don't call
9603 preserve_rtl_expr_result or free_temps_for_rtl_expr.
9604 * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
9605 (preserve_rtl_expr_result): Remove.
9606 (free_temps_for_rtl_expr): Likewise.
9607 (pop_temp_slots): Likewise.
9608 (mark_temp_slot): Don't mark the rtl_expr.
9609 * stmt.c (expand_start_stmt_expr): Use start_sequence, not
9610 start_sequence_for_rtl_expr.
9611
9612 2000-03-04 Zack Weinberg <zack@wolery.cumb.org>
9613
9614 * mkdeps.c, mkdeps.h: New files.
9615 * po/POTFILES.in: Add them.
9616 * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
9617 (cpplib.o, cppinit.o): Depend on mkdeps.h.
9618 (mkdeps.o): New target.
9619
9620 * cppfiles.c: Delete deps_output.
9621 * cppinit.c: Include mkdeps.h. Delete known_suffixes,
9622 OBJECT_SUFFIX, and base_name.
9623 (cpp_cleanup): Use deps_free. Free ihash->name when clearing
9624 the include hash.
9625 (initialize_dependency_output): Use deps_init,
9626 deps_add_target, deps_calc_target, and deps_add_dep. Remove
9627 all the unnecessary string bashing.
9628 (cpp_finish): Use deps_write. Remove an unnecessary nesting
9629 level.
9630 * cpplib.c (do_include): Use deps_add_dep.
9631 * cpplib.h (struct cpp_reader): Replace deps_buffer,
9632 deps_allocated_size, deps_size, deps_column members with
9633 single pointer to a struct deps. Delete prototype of
9634 deps_output.
9635
9636 * cppinit.c: Fix thinko in previous patch.
9637
9638 Sat Mar 4 11:32:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9639
9640 * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
9641 * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
9642 (mode_for_size_tree): New function.
9643 (layout_decl, layout_type): Call it and clean up BLKmode checks.
9644 * tree.h (mode_for_size_tree): New declaration.
9645
9646 * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
9647
9648 2000-03-04 Jason Merrill <jason@casey.cygnus.com>
9649
9650 * stmt.c (is_body_block): Move...
9651 * dwarfout.c, dwarf2out.c: ...from here.
9652 * tree.h: Declare it.
9653 * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
9654 * final.c (final_start_function): Do call remove_unnecessary_notes
9655 when scheduling.
9656
9657 2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
9658
9659 * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
9660
9661 * cpplib.h (_dollar_ok): New macro.
9662 (is_idchar, is_idstart): Use it.
9663 (IStable): Rename to _cpp_IStable. Declare it const if
9664 gcc >=2.7 or C99. Delete all references to FAKE_CONST.
9665 (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
9666 is_space): Update for renamed IStable.
9667
9668 * cppinit.c: Delete all references to FAKE_CONST and CAT
9669 macros. Define init_IStable as empty macro if gcc >=2.7 or
9670 C99. Change TABLE() to ISTABLE and hardcode name of table.
9671 (cpp_start_read): Don't change the IStable based on
9672 dollars_in_ident.
9673
9674 * cpphash.c (unsafe_chars): Add pfile argument. All callers
9675 changed. Handle '$' for char1 correctly.
9676 * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
9677
9678 * cppexp.c (tokentab2): Make const.
9679 (cpp_lex): Make toktab const.
9680 * cppinit.c (include_defaults_array): Make const.
9681 (initialize_standard_includes): Make default_include const.
9682
9683 2000-03-03 Jason Merrill <jason@casey.cygnus.com>
9684
9685 * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
9686 (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
9687 (gen_decl_die): Likewise.
9688 * dwarfout.c (dwarfout_file_scope_decl): Likewise.
9689 (output_decl): Likewise.
9690
9691 * varasm.c (make_function_rtl): If we change the name used in the
9692 rtl, update DECL_ASSEMBLER_NAME accordingly.
9693 (make_decl_rtl): Likewise.
9694
9695 * toplev.c (rest_of_compilation): Tweak formatting.
9696
9697 * toplev.c (rest_of_compilation): find_loop_tree_blocks before
9698 remove_unnecessary_notes.
9699 (debug_ignore_block): New fn.
9700 * toplev.h: Declare it.
9701 * emit-rtl.c (remove_unncessary_notes): Call it.
9702 * dwarf2out.c (dwarf2out_ignore_block): New fn.
9703 * dwarf2out.h: Declare it.
9704 * final.c (final_start_function): Don't call remove_unnecessary_notes
9705 if we did insn scheduling.
9706
9707 2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
9708
9709 * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
9710 * cpplib.h: Delete SET_CPP_PEDANTIC.
9711
9712 Fri Mar 3 14:56:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9713
9714 * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
9715 result is a RECORD_TYPE.
9716
9717 2000-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
9718
9719 * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
9720
9721 2000-03-03 Richard Henderson <rth@cygnus.com>
9722
9723 * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
9724 addition over compliments over shifts.
9725
9726 Fri Mar 3 12:49:28 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
9727
9728 * reload1.c (reload_combine_note_use): Handle return register USEs.
9729 REG case: Handle multi-hard-register hard regs.
9730
9731 Fri Mar 3 07:38:34 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9732
9733 * md.texi: Document use of '*' in insn pattern name.
9734
9735 2000-03-03 Jason Merrill <jason@casey.cygnus.com>
9736
9737 * calls.c (special_function_p): operator new may not be malloc-like.
9738
9739 * gcse.c (dump_hash_table): Really fix error in last change.
9740
9741 2000-03-02 Denis Chertykov <denisc@overta.ru>
9742
9743 * avr.c (print_operand): Use print_operand_address instead of
9744 output_addr_const.
9745 * avr/libgcc.S: Cleanup code.
9746
9747 2000-03-02 Richard Henderson <rth@cygnus.com>
9748
9749 * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
9750
9751 2000-03-02 Mark Mitchell <mark@codesourcery.com>
9752
9753 * tree.h (TYPE_ALIGN_UNIT): New macro.
9754
9755 2000-03-02 Clinton Popetz <cpopetz@cygnus.com>
9756
9757 * i386.c: (constant_call_address_operand): Reject CONST_INT.
9758
9759 2000-03-02 Jason Merrill <jason@casey.cygnus.com>
9760
9761 * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
9762 for the buffer.
9763 (SET_CPP_PEDANTIC): New macro.
9764 * cpplib.c (do_include): Don't bother checking system_header_p.
9765 (do_warning, do_ident, do_assert, do_unassert): Likewise.
9766 * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
9767
9768 * function.h (struct expr_status): Add x_arg_space_so_far.
9769 (arg_space_so_far): New macro.
9770 * expr.c (init_expr): Initialize it.
9771 * calls.c (emit_call_1): Reset it.
9772 (compute_argument_block_size, expand_call): Use it.
9773 (expand_call, store_one_arg): Increment it.
9774
9775 Thu Mar 2 17:27:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9776
9777 * varasm.c (output_constant): Strip off a CONVERT_EXPR to
9778 a UNION_TYPE.
9779
9780 2000-03-02 Zack Weinberg <zack@wolery.cumb.org>
9781
9782 * cppfiles.c (cpp_read_file): New function.
9783
9784 * cpphash.c (collect_expansion): Make sure to reset last_token
9785 to NORM when we hit a string. Handle trailing whitespace
9786 properly when the expansion is empty.
9787 (create_definition): Disable line commands while parsing the
9788 directive line.
9789 (dump_definition): If pfile->lineno == 0, output a line
9790 command ahead of the dump, and add a trailing newline.
9791
9792 * cppinit.c (append_include_chain): Add fifth argument, which
9793 indicates whether or not system headers are C++ aware.
9794 (initialize_standard_includes): New function,
9795 broken out of read_and_prescan. Pass 'cxx_aware' value from
9796 the include_defaults_array on to append_include_chain.
9797 (dump_special_to_buffer): Const-ify char array.
9798 (builtin_array): Don't dump __BASE_FILE__.
9799 (cpp_start_read): Use cpp_read_file. Reorder code for
9800 clarity. Don't output line commands here for -D/-A/-U
9801 switches. Don't call deps_output for files included with
9802 -include or -imacros.
9803
9804 * cpplib.c (do_define): Don't pay any attention to the second
9805 argument.
9806 (cpp_expand_to_buffer): Disable line commands while scanning.
9807 (output_line_command): Work in the file buffer.
9808 * cpplib.h: Remove no_record_file flag from struct cpp_reader.
9809 Fix formatting of comments. Prototype cpp_read_file.
9810
9811 Thu Mar 2 13:29:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9812
9813 * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
9814 reference the language-equivalent of sizetype.
9815 * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
9816 * fold-const.c (size_binop, size_diffop): Put back checks.
9817 * gcse.c (dump_hash_table): Fix minor error in last change.
9818 * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
9819 Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
9820 all sizetypes.
9821
9822 Thu Mar 2 12:48:45 MET 2000 Jan Hubicka <jh@suse.cz>
9823
9824 * calls.c (expand_call) Do not attempt to combine stack adjustments
9825 with inhibit_defer_pop set.
9826
9827 2000-03-01 Mark Mitchell <mark@codesourcery.com>
9828
9829 * stor-layout.c (layout_decl): Allow front-ends to explicitly set
9830 the DECL_SIZE for a FIELD_DECL.
9831
9832 2000-03-01 Bruce Korb <bkorb@gnu.org>
9833
9834 * fixinc/inclhack.tpl: remove unused symlinks
9835 * fixinc/README: GCC Maintainer info
9836 * fixinc/inclhack.sh: regen
9837 * fixinc/fixincl.sh: regen
9838
9839 2000-03-01 Zack Weinberg <zack@wolery.cumb.org>
9840
9841 * cpphash.c (collect_expansion): Trim trailing white space
9842 from macro definitions, but don't go past the last insertion
9843 point.
9844
9845 Wed Mar 1 12:14:31 MET 2000 Jan Hubicka <jh@suse.cz>
9846
9847 * i386.md (mulqi3): New pattern.
9848
9849 2000-02-29 Zack Weinberg <zack@wolery.cumb.org>
9850
9851 * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
9852 token types.
9853 (struct cpp_reader): Add parsing_if_directive and
9854 parsing_define_directive flags.
9855 (struct cpp_options): Remove output_conditionals flag.
9856 (check_macro_name): Delete prototype.
9857
9858 * cpphash.h (struct macrodef): Delete.
9859 (struct reflist): Separate from struct definition.
9860 (struct definition): Remove unused fields. Add column number.
9861 (create_definition): Returns a DEFINITION *. Takes a
9862 cpp_reader * and an int.
9863
9864 * cpphash.c (SKIP_WHITE_SPACE): Delete.
9865 (PEEKC): Copy defn from cpplib.c.
9866 (rest_extension, REST_EXTENSION_LENGTH): Delete.
9867 (struct arg): New.
9868 (struct arglist): Simplify.
9869 (collect_expansion): Rewrite. Get tokens by calling
9870 cpp_get_token. Add more error checking.
9871 (collect_formal_parameters): New function, broken out of
9872 create_definition and reworked to use get_directive_token.
9873 (create_definition): All real work is now in collect_expansion
9874 and collect_formal_parameters. do_define handles finding the
9875 macro name. Return a DEFINITION, not a MACRODEF.
9876 (macroexpand): Replace bcopy with memcpy throughout. Replace
9877 character-at-a-time copy loop with memcpy and pointer increments.
9878 (compare-defs): d1->argnames / d2->argnames might be null.
9879
9880 * cpplib.c (copy_rest_of_line): Delete function.
9881 (skip_rest_of_line): Do all the work ourselves.
9882 (skip_string): New function.
9883 (parse_string): Use skip_string.
9884 (get_macro_name): New function.
9885 (check_macro_name): Delete.
9886 (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
9887 (cpp_skip_hspace): Use CPP_BUMP_LINE.
9888 (handle_directive): ICE if we're called on a macro buffer.
9889 (do_define): Determine macro name and type (funlike/objlike)
9890 here. Expunge all uses of MACRODEF.
9891 (cpp_push_buffer): Set line_base to NULL.
9892 (do_undef, read_line_number): Don't worry about getting a POP token.
9893 (eval_if_expression): Set/reset parsing_if_directive around
9894 cpp_parse_expr. Don't clear only_seen_white.
9895 (skip_if_group): Remove output_conditionals logic. Use
9896 skip_rest_of_line.
9897 (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
9898 tokens under appropriate conditions.
9899 (cpp_unassert): Call do_unassert not do_assert. Oops.
9900
9901 * cppexp.c (parse_defined): New function, break out of
9902 cpp_lex.
9903 (cpp_lex): We now get CPP_ASSERTION tokens and can check them
9904 ourselves, with cpp_defined.
9905 * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
9906
9907 * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
9908 * gcc.dg/strpaste-2.c: New.
9909
9910 2000-02-29 Mark Mitchell <mark@codesourcery.com>
9911
9912 * fold-const.c (size_binop): Don't asert inputs are the same and
9913 have TYPE_IS_SIZETYPE set.
9914 (size_diffop): Likewise.
9915
9916 2000-02-29 Jason Merrill <jason@casey.cygnus.com>
9917
9918 * dwarfout.c (output_block): Output abstract blocks even if they
9919 don't have TREE_ASM_WRITTEN set.
9920
9921 * calls.c (emit_library_call): Check for null REG.
9922
9923 2000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de>
9924
9925 * c-decl.c (current_function_decl): Move to toplev.c.
9926 (init_decl_processing): Don't add current_function_decl as a ggc
9927 root here.
9928 * dbxout.c (dbxout_symbol): Change return type to int.
9929 (dbxout_symbol_location, dbxout_syms): Likewise.
9930 (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
9931 any locals. Use current_function_func_begin_label if set.
9932 * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
9933 * dwarf2out.c (dwarf2out_begin_prologue): Set
9934 current_function_func_begin_label.
9935 * final.c (final_start_function): Reset it.
9936 * toplev.c (current_function_decl): Define it here.
9937 (current_function_func_begin_label): New variable.
9938 (main): Add both as ggc roots.
9939 * tree.h (current_function_func_begin_label): Declare.
9940
9941 Tue Feb 29 14:07:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9942
9943 * gcse.c: Cleanups throughout: mostly white-space, but also
9944 some minor rearrangement of code.
9945
9946 Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com)
9947
9948 * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
9949 returns a PARALLEL. Use emit_group_load and use_group_regs
9950 as needed.
9951 (emit_library_call_value): Similarly.
9952
9953 * pa/t-pa: Use quadlib.c instead of quadlib.asm.
9954 * pa/quadlib.asm: Remove.
9955 * pa/quadlib.c: New file.
9956
9957 * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
9958 * configure: Rebuilt.
9959
9960 2000-02-29 Philip Blundell <pb@futuretv.com>
9961
9962 * config/arm/conix-elf.h: New file.
9963 * configure.in (arm*-*-conix*): New configuration.
9964 * configure: Regenerate.
9965
9966 2000-02-28 Jason Merrill <jason@casey.cygnus.com>
9967
9968 * dwarf2out.c (gen_block_die): Output abstract blocks even if they
9969 don't have TREE_ASM_WRITTEN set.
9970
9971 Mon Feb 28 21:07:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9972
9973 * Eliminate DECL_FIELD_SIZE.
9974 * builtins.c (built_in_class_names, built_in_names): New variables.
9975 * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
9976 * expr.c (expand_expr, case COMPONENT_REF): Get field size from
9977 DECL_SIZE, not DECL_FIELD_SIZE.
9978 * print-tree.c (print_node): Remove code that prints extra blank
9979 lines in some cases.
9980 Properly handle inline and builtin function cases.
9981 * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
9982 * tree.h (built_in_class_named, built_in_names): New declarations.
9983 (union tree_decl): Rename internal unions to u1 and u2 and change
9984 some of their components.
9985 Add new field built_in_class.
9986 (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
9987 Reflect above changes.
9988 (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
9989 (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
9990 * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
9991 (encode_field_decl): Likewise; also remove obsolete test for bitfield.
9992
9993 2000-02-28 Dmitri Makarov <dim@windriver.com>
9994
9995 * extend.texi: Document ARM's support for long/short calls.
9996
9997 * invoke.texi: Document ARM's -mlong-calls command line switch.
9998
9999 * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
10000 (arm_encode_call_attribute): Add prototype.
10001 (arm_set_default_type_attribute): Add prototype.
10002 (arm_strip_name_encoding): Add prototype.
10003
10004 * config/arm/arm.c (arm_init_cumulative_args): replace
10005 initialisation og 'long_calls' field with initialisation of
10006 'call_cookie' field.
10007 (enum arm_pragma_enum): New enum.
10008 (arm_pragma_long_calls): New static variable.
10009 (arm_process_pragma): Also process "#pragma long_calls_off".
10010 (arm_valid_type_attribute_p): Accept short_call attribute.
10011 (arm_comp_type_attributes): Check long/short call attributes.
10012 (arm_encode_call_attribute): New function: Encode long_call
10013 or short_call attribute in function name.
10014 (arm_set_default_type_attributes): New function: Assign
10015 default attributes to newly defined type.
10016 (current_file_function_operand): New function: Return true if
10017 the symbol is a function which has already been compiled.
10018 (arm_is_longcall_p): New function: Return true if the
10019 indicated function should be called via a long call.
10020 (arm_get_strip_length): New function. Returns number of
10021 prefix characters to be stripped from a function's name.
10022 (arm_strip_name_encoding): New function. Strip prefix characters
10023 from a function's name.
10024
10025 * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
10026 with 'call_cookie'.
10027 (SHORT_CALL_FAG_CHAR): Define.
10028 (LONG_CALL_FAG_CHAR): Define.
10029 (ENCODED_SHORT_CALL_ATTR_P): Define.
10030 (ENCODED_LONG_CALL_ATTR_P): Define.
10031 (ARM_NAME_ENCODING_LENGTHS): Define.
10032 (STRIP_NAME_ENCODING): Define.
10033 (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
10034 (ARM_ENCODE_CALL_TYPE): Define.
10035 (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
10036 (ARM_DECLARE_FUNCTION_SIZE): Define.
10037 (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
10038
10039 * config/arm/arm.md (call): Call arm_is_longcall_p to decide
10040 if a long call is needed.
10041 (call_value): Ditto.
10042 (call_symbol): Ditto.
10043
10044 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
10045 ARM_DECLARE_FUNCTION_SIZE.
10046
10047 * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
10048 (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
10049 (ARM_STRIP_NAME_ENCODING): Undefine.
10050 (STRIP_NAME_ENCODING): Undefine.
10051 (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
10052 (ASM_DECLARE_FUNCTION_NAME): Ditto.
10053 (ASM_OUTPUT_COMMON): Ditto.
10054 (ASM_DECLARE_OBJECT_NAME): Ditto.
10055
10056 * config/arm/pe.c (arm_dllexport_name_p): Check for
10057 ARM_PE_FLAG_CHAR.
10058 (arm_dllimport_name_p): Ditto.
10059 (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
10060 (arm_mark_dllimport): Ditto.
10061
10062 Mon Feb 28 22:11:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10063
10064 * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
10065
10066 2000-02-28 Mark Mitchell <mark@codesourcery.com>
10067
10068 * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
10069
10070 2000-02-28 Zack Weinberg <zack@wolery.cumb.org>
10071
10072 * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
10073 * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
10074 NO_BUILTIN_WCHAR_TYPE is not defined.
10075 (CPP_WCHAR_TYPE): Delete.
10076 * cccp.c (main): Don't change wchar_type if cplusplus.
10077 (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
10078
10079 2000-02-28 Nick Clifton <nickc@cygnus.com>
10080
10081 * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
10082
10083 Mon Feb 28 14:21:15 2000 Catherine Moore <clm@cygnus.com>
10084
10085 * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
10086 (ASM_WEAKEN_LABEL): Define.
10087
10088 Mon Feb 28 13:07:19 MET 2000 Jan Hubicka <jh@suse.cz>
10089
10090 * expr.c (store_constructor): Do not emit USE.
10091 * rtl.h (stupid_life_analysis): Remove.
10092
10093 Mon Feb 28 07:03:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10094
10095 * function.c (number_blocks): Reset next_block_index based on
10096 what debugging format is used, not what is defined.
10097
10098 * lcm.c: Minor reformatting throughout.
10099 (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
10100
10101 * toplev.c (rest_of_compilation): Account for time in
10102 optimize_mode_switching.
10103
10104 * jump.c (jump_optimize_1): Don't call delete_barrier_successors
10105 if only marking labels.
10106
10107 Mon Feb 28 12:53:57 MET 2000 Jan Hubicka <jh@suse.cz>
10108
10109 * calls.c (expand_call): Attempt to combine stack adjustments with
10110 pending stack adjustments.
10111
10112 Mon Feb 28 11:34:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10113
10114 * loop.c (reg_in_basic_block_p): Don't abort when falling through
10115 to the end of the function.
10116
10117 2000-02-27 Mark Mitchell <mark@codesourcery.com>
10118
10119 * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
10120 blocks.
10121 * final.c (next_block_index): Remove.
10122 (max_block_depth): Likewise.
10123 (pending_blocks): Likewise.
10124 (init_final): Don't initialize them.
10125 (final_start_function): Don't set next_block_index. Set up
10126 BLOCK_NUMBER.
10127 (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
10128 * function.h (number_blocks): New function.
10129 * function.c (get_block_vector): New function.
10130 (identify_blocks): Use it.
10131 (reorder_blocks): Set NOTE_BLOCK.
10132 (number_blocks): New function.
10133 * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
10134 * tree.h (BLOCK_NUMBER): New macro.
10135 (tree_block): Add block_num field.
10136 * dbxout.c (next_block_number): Remove.
10137 (dbxout_init): Don't set it.
10138 (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
10139 set. Use BLOCK_NUMBER, rather than next_block_num, to determine
10140 block numbers.
10141 * toplev.c (rest_of_compilation): Always call
10142 find_loop_tree_blocks. Fix indentation.
10143 * dwarf2out.c (next_block_number): Remove.
10144 (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10145 to determine block numbers.
10146 (gen_inlined_subroutine_die): Likewise.
10147 (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
10148 (decls_for_scope): Don't increment next_block_number.
10149 * dwarfout.c (next_block_number): Remove.
10150 (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10151 to determine block numbers.
10152 (output_inlined_subroutine_die): Likewise.
10153 (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
10154 (output_decls_for_scope): Don't increment next_block_number.
10155 * sdbout.c (next_block_number): Remove.
10156 (sdbout_block): Use BLOCK_NUMBER.
10157 (sdbout_begin_block): Simplify.
10158 * xcoffout.c (next_block_number): Remove.
10159 (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
10160 (xcoffout_begin_block): Don't set next_block_number.
10161 (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
10162 next_block_number.
10163
10164 Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10165
10166 * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
10167 (expand_builtin_strcpy): Pass correct type to size_binop.
10168 (expand_builtin_strcmp): Likewise.
10169 Clean up conditional structure.
10170 * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
10171 (complete_array_type): Don't use size_binop for MAXINDEX.
10172 * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
10173 (c_sizeof_nowarn, c_size_in_bytes): Likewise.
10174 (c_alignof): Use size_one_node.
10175 (build_unary_op): Pass arg of proper type to size_binop.
10176 (really_start_incremental_init, push_init_level): Use sizetype for
10177 constructor{,_bit,_unfilled}_index.
10178 (pop_init_label, output_init_element): Likewise.
10179 (output_pending_init_elements, process_init_element): Likewise.
10180 * calls.c (compute_argument_block_size): Field VAR is ssizetype.
10181 * expr.c (store_expr): Use size_int.
10182 (store_constructor): Use proper types for size_binop args.
10183 (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
10184 (expand_expr_unaligned): Likewise.
10185 (string_contant): Return object of sizetype.
10186 * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
10187 (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
10188 (ARGS_SIZE_TREE): Pass proper types to size_binop.
10189 * fold-const.c (int_const_binop): Refine when size_int is called.
10190 (fold_convert): Likewise.
10191 (size_int_wide): Rework to take KIND as arg, only take low order
10192 bits, handle new sizetype_tab datatype, and chain entries in
10193 size_table.
10194 (size_int_type_wide): New function.
10195 (size_binop): Validate types of arguments.
10196 (ssize_binop): Deleted.
10197 (size_diffop): New function.
10198 (extract_muldiv): Only fold division into multiplication for sizetypes.
10199 * function.c (assign_parms): Use size_diffop and make sure
10200 VAR field is of ssizetype; also pass proper type to size_binop.
10201 (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
10202 (round_down): Deleted from here.
10203 * store-layout.c (sizetype_tab): Now an array.
10204 (sizetype_set, early_root_list): New variables.
10205 (variable_size): Use size_one_node.
10206 (round_up): Pass proper type to size_binop.
10207 (round_down): Moved to here and corrected as above.
10208 (layout_record): Pass proper arg types to size_binop.
10209 (layout_type): Likewise.
10210 If sizetype_set is zero, record the type just laid out.
10211 (make_unsigned_type): Don't call set_sizetype;
10212 (make_signed_type): Likewise; also, call fixup_signed_type.
10213 (initialize_sizetypes): New function.
10214 (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
10215 set name of bitsizetype to "bit_size_type".
10216 Fix up type of sizes of all types made before call.
10217 * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
10218 * tree.c (fix_sizetype): Deleted.
10219 (build_common_tree_nodes): Call initialize_sizetypes.
10220 (build_common_tree_nodes_2): Don't call fix_sizetype.
10221 * tree.h (TYPE_IS_SIZETYPE): New macro.
10222 (initialize_sizetype): New declaration.
10223 (enum size_type_kind): New type.
10224 (struct sizetype_tab): Deleted.
10225 (sizetype_tab): Now array; adjust sizetype macros.
10226 (size_diffop, size_int_type_wide): New functions.
10227 (size_int_wide): Change number of args and type; access macros changed.
10228 (ssize_int, sbitsize_int): New macros.
10229 * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
10230 (ROUND_TYPE_SIZE_UNIT): New macro.
10231
10232 2000-02-27 Zack Weinberg <zack@wolery.cumb.org>
10233
10234 * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
10235
10236 Sun Feb 27 07:44:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10237
10238 * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
10239 Mark as possibly unused.
10240
10241 * cse.c (cse_insn): Delete dead code involving tablejump.
10242 Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
10243
10244 * Makefile.in (libcpp.a): Start by deleting it.
10245
10246 2000-02-27 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10247
10248 * cpplib.h (enum file_change_code): Added rename_file.
10249 * cpplib.c (do_line): If a filename is given, set file_change to
10250 rename_file.
10251 (output_line_command): If file_change is rename_file, always
10252 output a # directive with the file name.
10253
10254 * cpplib.c (do_pragma): Accept #pragma without consecutive token.
10255
10256 2000-02-26 Mark Mitchell <mark@codesourcery.com>
10257
10258 * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
10259 when copying a PARM_DECL or RESULT_DECL.
10260
10261 2000-02-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10262
10263 * fix-header.c (recognized_function): Also fix prototypes for
10264 functions taking "void".
10265
10266 2000-02-26 Geoff Keating <geoffk@cygnus.com>
10267
10268 * reload1.c (do_output_reload): Check reg_reloaded_valid before
10269 looking at reg_reloaded_contents.
10270
10271 2000-02-26 Zack Weinberg <zack@wolery.cumb.org>
10272
10273 * Makefile.in (STMP_FIXINC): New toggle.
10274 (LIBGCC2_DEPS): Delete all references.
10275 (stmp-headers): Delete target. All references either deleted
10276 or changed to stmp-int-headers.
10277 (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
10278 (LIBCPP_OBJS): Take out cppalloc.o.
10279 (cppalloc.o): Delete target.
10280 (stmp-int-hdrs): Depend on $(STMP_FIXINC).
10281 (gen-protos, fix-header): Link with libiberty.a.
10282 * build-make: Don't change FIXINCLUDES. Override STMP_FIXINC
10283 to empty.
10284
10285 * configure.in: Remove refs to strerror.
10286 * acconfig.h: Take out NEED_DECLARATION_STRERROR.
10287 * system.h: Take out strerror stanza.
10288
10289 * cpperror.c (my_strerror): Delete function.
10290 (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
10291 * cppmain.c (main): Call xmalloc_set_program_name first thing.
10292 * cppalloc.c: Delete file.
10293 * gen-protos.c: Don't provide xrealloc.
10294
10295 * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
10296 xstrerror throughout.
10297
10298 2000-02-26 Bruce Korb <bkorb@gnu.org>
10299
10300 * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
10301 match for DOS headers, too.
10302 * fixinc/inclhack.sh,fixincl.x: Regenerate.
10303
10304 2000-02-26 Geoff Keating <geoffk@cygnus.com>
10305
10306 * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default
10307 is right for most ELF targets.
10308 * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
10309 Let the default file use %U properly.
10310 * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the
10311 default.
10312
10313 * config/fp-bit.c (pack_d): Properly handle rounding of denormal
10314 numbers.
10315
10316 Sat Feb 26 09:39:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10317
10318 * toplev.c (documented_lang_options): Correct spelling error.
10319 (decode_d_option, decode_f_option, main): Likewise.
10320
10321 * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
10322
10323 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
10324 to tell assembler it is permitted to expand large constants.
10325
10326 2000-02-25 Mumit Khan <khan@xraylith.wisc.edu>
10327
10328 * protoize.c: (AUX_INFO_SUFFIX): New macro.
10329 (aux_info_suffix): Use.
10330 (SAVE_SUFFIX): New macro.
10331 (save_suffix): Use.
10332 (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
10333 (gen_aux_info_file): Use aux_info_suffix instead of ".X".
10334 (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
10335
10336 * invoke.texi (Running Protoize): Update documentation.
10337
10338 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
10339
10340 * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
10341
10342 2000-02-25 John Wehle (john@feith.com)
10343
10344 * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
10345
10346 2000-02-25 Anthony Green <green@cygnus.com>
10347
10348 * toplev.c (rest_of_compilation): Rebuild jump labels if
10349 combine_instructions has created a new direct jump.
10350 * combine.c (try_combine): Add new_direct_jump_p argument. Set it
10351 when appropriate.
10352 (combine_instructions): Call try_combine with new argument.
10353 Return non-null value when new direct jump instruction is created.
10354 * rtl.h: combine_instructions returns an int.
10355
10356 Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com)
10357
10358 * cse.c (cse_insn): Replace the PATTERN of the insn with an new
10359 jump when changing a computed jump into a jump to a known
10360 target.
10361
10362 Fri Feb 25 19:22:44 2000 Graham Stott <grahams@rcp.co.uk>
10363
10364 * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
10365 to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
10366
10367 * i386.md (define_expand "clrstrsi"): Fix typo.
10368
10369 Fri Feb 25 18:49:39 2000 "K. Richard Pixley" <rich@microunity.com>
10370
10371 * rtl.texi: Fix typo.
10372
10373 Fri Feb 25 20:02:35 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10374
10375 * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
10376 UNITS_PER_WORD. Change caller initial_elimination_offset.
10377 (rounded_frame_size): Take into account that argument pushed has
10378 changed. Fix TARGET_ALIGN_DOUBLE problem.
10379
10380 2000-02-25 Geoff Keating <geoffk@cygnus.com>
10381
10382 * haifa-sched.c (schedule_block): Explain the real reason
10383 we delete REG_SAVE_NOTEs on the first insn of a block.
10384 Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
10385
10386 2000-02-24 Mark Mitchell <mark@codesourcery.com>
10387
10388 * input.h (push_srcloc): New function.
10389 (pop_srcloc): Likewise.
10390 * toplev.c (push_srcloc): Define it.
10391 (pop_srcloc): Likewise.
10392
10393 2000-02-24 Richard Henderson <rth@cygnus.com>
10394
10395 * flow.c (life_analysis): When collecting reg info, clear
10396 regs_ever_live.
10397
10398 Thu Feb 24 22:06:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10399
10400 Fix bug exposed by reload.c no longer rounding the frame
10401 size to BIGGEST_ALIGNMENT:
10402 * sh.c (rounded_frame_size): New function.
10403 (sh_expand_prologue, sh_expand_epilogue): Use it.
10404 (initial_elimination_offset): Likewise.
10405
10406 Thu Feb 24 20:04:11 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10407
10408 Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
10409 * sh-protos.h (sh_need_epilogue): Declare.
10410 * sh.c (sh_need_epilogue_known): New static variable.
10411 (sh_need_epilogue): New function.
10412 (function_epilogue): Clear need_epilogue_known.
10413 * sh.md (return): Split into expander / insn pattern.
10414 Make the expander conditional on ! sh_need_epilogue ().
10415
10416 2000-02-24 Nathan Sidwell <nathan@codesourcery.com>
10417
10418 * machmode.h (get_mode_alignment): Declare.
10419 (GET_MODE_ALIGNMENT): Call it.
10420 * stor-layout.c (get_mode_alignment): New function. Make
10421 sure alignment is always power of 2.
10422
10423 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
10424
10425 * i386.h: Remove useless definition of "I386" and misleading
10426 comment above it.
10427
10428 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
10429
10430 * tree.h (TREE_SET_PERMANENT): New macro. Document conditions
10431 under which TREE_PERMANENT will be set.
10432 * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
10433 build1): Use TREE_SET_PERMANENT.
10434 * print-tree.c (print_node): Don't report value of
10435 TREE_PERMANENT if ggc_p is true.
10436
10437 * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
10438 decide whether to give a type a new alias set.
10439 * objc/objc-act.c (build_objc_string_object): Never copy the string.
10440 * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
10441 of value of 'obstack'.
10442
10443
10444 2000-02-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10445
10446 * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
10447
10448 2000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10449
10450 * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
10451 * cpplib.c (cpp_get_token): Produce them.
10452 * cppexp.c (cpp_lex): Handle them.
10453
10454 2000-02-23 Nick Clifton <nickc@cygnus.com>
10455
10456 * config/arm/arm.c (arm_comp_type_attributes): Simply and
10457 comment tests on type attributes.
10458
10459 Wed Feb 23 16:42:21 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10460
10461 * final.c (shorten_branches): Make value passed to LOOP_ALIGN
10462 conform to documentation.
10463 * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
10464 to check for special cases.
10465 * sh-protos.h (sh_loop_align): Declare.
10466 * sh.c (sh_loop_align): Define.
10467
10468 2000-02-22 Andrew Haley <aph@cygnus.com>
10469
10470 * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
10471 (SIZE_TYPE): Is 32 bits when using -mgp32.
10472 (PTRDIFF_TYPE): Ditto.
10473
10474 Wed Feb 23 07:26:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10475
10476 * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
10477
10478 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
10479
10480 * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
10481 BIGGEST_FIELD_ALIGNMENT a constant.
10482
10483 2000-02-21 Jason Merrill <jason@casey.cygnus.com>
10484
10485 * dwarf2out.c (output_line_info): Put the marker for the end of
10486 the line number info at the actual end.
10487 (gen_struct_or_union_type_die): Use decl_function_context
10488 to check for local classes.
10489 * dwarfout.c (output_type): Likewise.
10490
10491 Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com)
10492
10493 * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
10494 for arguments with a mode, but no type.
10495 (FUNCTION_ARG_CALLEE_COPIES): Similarly.
10496 * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
10497 * pa/long_double.h: New file.
10498 * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
10499 both have 128bit wide long doubles.
10500 * configure: Rebuilt.
10501
10502 2000-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10503
10504 * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
10505
10506 * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
10507 fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
10508 (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
10509
10510 * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
10511
10512 * integrate.c (compare_blocks, find_block): Likewise.
10513
10514 * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
10515
10516 * rtl.h (set_file_and_line_for_stmt): Constify a char*.
10517
10518 * stmt.c (stmt_status, set_file_and_line_for_stmt,
10519 expand_asm_operands): Likewise.
10520
10521 Mon Feb 21 17:06:27 2000 Jason Eckhardt <jle@cygnus.com>
10522
10523 * predict.c (estimate_probability): Added the pointer heuristic to
10524 the collection of static branch predictors.
10525
10526 2000-02-21 Catherine Moore <clm@cygnus.com>
10527
10528 * config/mips/mips.h (ASM_SPEC): Add -mfix700.
10529 * invoke.texi (-mfix7000): Document.
10530
10531 2000-02-21 Gabriel Dos Reis <gdr@codesourcery.com>
10532
10533 * diagnostic.c (init_output_buffer): Make it possible to output at
10534 least 32 characters if we're given a too long prefix.
10535
10536 2000-02-20 Mark Mitchell <mark@codesourcery.com>
10537
10538 * varasm.c (initializer_constant_valid_p): Call
10539 lang_expand_constant to simplify the constant.
10540
10541 2000-02-20 Bruce Korb <bkorb@gnu.org>
10542
10543 * fixinc/inclhack.def(stdio_va_list):
10544 typedef needs to be disabled.
10545 * fixinc/inclhack.sh: regen
10546 * fixinc/fixincl.x: regen
10547
10548 2000-02-20 Geoff Keating <geoffk@cygnus.com>
10549
10550 * print-rtl.c (print_rtx): Don't print addresses when
10551 flag_dump_unnumbered.
10552
10553 2000-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10554
10555 * sparc.c (sparc_output_scratch_registers): Mark parameter with
10556 ATTRIBUTE_UNUSED.
10557 (sparc_va_arg, sparc_flat_output_function_prologue,
10558 sparc_flat_output_function_epilogue): Cast value to unsigned in
10559 comparison.
10560 (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
10561
10562 * sparc.md: Add default case in switch.
10563
10564 2000-02-19 Richard Henderson <rth@cygnus.com>
10565
10566 * c-typeck.c (add_pending_init): Don't abort for multiple
10567 fields at the same offset.
10568 (pending_init_member): Test the correct member.
10569
10570 2000-02-19 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10571
10572 * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
10573 instead of SImode.
10574 (start_catch_handler) : Same.
10575
10576 2000-02-19 Brad Lucier (lucier@math.purdue.edu)
10577
10578 * Makefile.in: Have flow.o depend on $(EXPR_H)
10579
10580 Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10581
10582 * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
10583 * c-decl.c (duplicate_decls, finish_enum): Likewise.
10584 (finish_decl): Remove -Wlarger-than code from here.
10585 * flags.h (id_clash_len): Now int.
10586 (larger_than_size): Now HOST_WIDE_INT.
10587 * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
10588 Clean up checking to see if in table.
10589 (make_bit_field_ref): Remove extra parm to bitsize_int.
10590 * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
10591 * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
10592 * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
10593 and for computing size of decl.
10594 * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
10595 Move -Wlarger-than code to here.
10596 (layout_record): Remove extra arg to bitsize_int.
10597 Set TYPE_BINFO_SIZE_UNIT.
10598 (layout_union): Remove extra arg to bitsize_int.
10599 Use proper type for size of QUAL_UNION.
10600 (layout_type): Remove extra arg to bitsize_int.
10601 * toplev.c (id_clash_len): Now int.
10602 (larger_than_size): Now HOST_WIDE_INT.
10603 (decode_W_option): Clean up id-clash and larger-than- cases.
10604 * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
10605 (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
10606 * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
10607 (struct tree_decl): New field size_unit.
10608 (size_int_wide): No HIGH operand; NUMBER is now signed.
10609 (size_int_2): Deleted.
10610 (size_int, bitsize_int): Don't use it and rework args.
10611 * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
10612
10613 Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com)
10614
10615 * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
10616
10617 2000-02-18 Geoff Keating <geoffk@cygnus.com>
10618
10619 * invoke.texi (Warning Options): Add an explanation of why
10620 you might want the -Wfloat-equal flag.
10621
10622 Fri Feb 18 20:08:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10623
10624 * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
10625 * cppinit.c (new_pending_define): Add cast to avoid warning.
10626 * expmed.c (extract_bit_field): Likewise.
10627 * flow.c (enum reorder_skip_type): New type.
10628 (skip_insns_between_blcok): New it.
10629 Rework to avoid warning about possibly undefined variable.
10630 * function.c (assign_parms): Make thisparm_boundary unsigned.
10631 * genrecog.c (write_switch): Cast XWINT result to int.
10632 * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
10633 * mips-tfile.c (init_file): Make two versions of FDR intializer:
10634 one for MIPS and one for Alpha.
10635 (get_tag, copy_object): Add casts to avoid warnings.
10636 * optabs.c (init_one_libfunc): Cast NAME to (char *).
10637 * reload.c (find_reloads): Make TYPE enum reload_type.
10638 * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
10639 * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
10640 * varasm.c (compare_constant_1): Add cast to avoid warning.
10641 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
10642 to (char *).
10643 (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
10644 Cast switch operand of size to int.
10645 (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
10646 * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
10647 in unhandled case.
10648
10649 2000-02-18 Nick Clifton <nickc@cygnus.com>
10650
10651 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
10652 anything for an alignment of zero.
10653
10654 * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
10655 anything for an alignment of zero.
10656
10657 2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de>
10658
10659 * gcc.texi (Bug Reporting): Refer to bugs.html.
10660 (Bug Lists): Likewise.
10661 * system.h (GCCBUGURL): New preprocessor define.
10662 * rtl.c (fancy_abort): Use it.
10663 * gcc.c (main): Likewise.
10664
10665 2000-02-18 Richard Henderson <rth@cygnus.com>
10666
10667 * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
10668 (life_analysis_1): Subsume into ...
10669 (life_analysis): ... here. Force PROP_REG_INFO off after reload.
10670 Use update_life_info for the relaxation.
10671 (update_life_info): Update REG_BASIC_BLOCK for registers live on
10672 entry and regs_live_at_setjmp.
10673 (set_noop_p): Simplify.
10674 (notice_stack_pointer_modification_1): Renamed from s/_1//.
10675 (record_volatile_insns): Split into ...
10676 (delete_noop_moves): ... here,
10677 (notice_stack_pointer_modification): ... here,
10678 (insn_dead_p): ... and here.
10679 (propagate_block): Don't query INSN_VOLATILE.
10680 (mark_used_regs): Mind !PROP_REG_INFO.
10681 * toplev.c (rest_of_compilation): Call mark_constant_function here,
10682 not in life_analysis.
10683
10684 Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com)
10685
10686 * loop.c (canonicalize_condition): New function,
10687 broken out of get_condition.
10688 (get_condition): Use it.
10689 * expr.h (canonicalize_condition): Prototype it.
10690
10691 * tree.h (tree_int_cst_msb): Declare.
10692 * tree.c (tree_int_cst_msb): New function.
10693
10694 2000-02-17 Mark Mitchell <mark@codesourcery.com>
10695
10696 * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
10697 isn't set.
10698
10699 * invoke.texi (-fmessage-length=n): Document.
10700
10701 2000-02-17 Jason Merrill <jason@casey.cygnus.com>
10702
10703 * bitmap.c (bitmap_operation): Don't leak bitmap elements.
10704
10705 2000-02-17 Mark Mitchell <mark@codesourcery.com>
10706
10707 * function.c (thread_prologue_and_epilogue_insns): Put a line note
10708 after the prologue.
10709
10710 2000-02-17 Nick Clifton <nickc@cygnus.com>
10711
10712 * config/arm/thumb.c: Replace includes of system headers with
10713 #include "system.h".
10714
10715 2000-02-16 Richard Henderson <rth@cygnus.com>
10716
10717 * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
10718 Add crtbeginS.o and crtendS.o.
10719 * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
10720 (ENDFILE_SPEC): Use crtendS.o.
10721 * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
10722
10723 * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
10724 (__do_global_dtors_aux): ... here. Call __cxa_finalize if
10725 shared and present.
10726 (__dso_handle): New variable.
10727 * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
10728 bias to __CTOR_END__.
10729
10730 2000-02-16 Richard Henderson <rth@cygnus.com>
10731
10732 * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
10733
10734 Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson <hp@bitrange.com>
10735
10736 * longlong.h (__clz_tab): Declare as static to match definition.
10737
10738 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
10739
10740 * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
10741 (XREF_FILE_NAME): Define.
10742
10743 * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
10744 (EH_FRAME_SECTION_ASM_OP): Define.
10745 (IDENT_ASM_OP): Define.
10746 (TEXT_SECTION_ASM_OP): Define.
10747 (CPP_SPEC): Define.
10748 (CTORS_SECTION_ASM_OP): Define.
10749 (CTOR_SECTION_FUNCTION): Use it.
10750 (DTORS_SECTION_ASM_OP): Define.
10751 (DTOR_SECTION_FUNCTION): Use it.
10752
10753 2000-02-16 Zack Weinberg <zack@wolery.cumb.org>
10754
10755 * reg-stack.c (emit_swap_insn): Do not put a new insn before a
10756 NOTE_BASIC_BLOCK.
10757
10758 * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
10759 debug_bb_n): New functions.
10760 (dump_flow_info, print_rtl_with_bb): Use dump_regset.
10761 * basic-block.h: Prototype new functions.
10762
10763 Wed Feb 16 21:07:53 2000 Denis Chertykov <denisc@overta.ru>
10764
10765 * configure.in: Add support for avr target.
10766 * configure: Rebuilt.
10767
10768 * invoke.texi: Add AVR invocation docs.
10769 * install.texi: Add information about AVR.
10770 * md.texi: Add AVR constraint letters description.
10771 * extend.texi: Add description for AVR specific attributes.
10772
10773 2000-02-16 Jason Merrill <jason@casey.cygnus.com>
10774
10775 * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
10776
10777 2000-02-16 Nick Clifton <nickc@cygnus.com>
10778
10779 * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
10780 (make_insn_raw): Move RTL check here.
10781
10782 2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10783
10784 * version.c: Include gansidecl.h and version.h.
10785
10786 * version.h: Wrap entire file in macro __GCC_VERSION_H__.
10787
10788 * configure.in (gcc_version): When setting, narrow search to
10789 lines containing `version_string'.
10790
10791 * Makefile.in (mainversion): Likewise.
10792 (GCC_H): New variable.
10793 (gcc.h): Delete target.
10794 (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
10795 (version.o): Depend on version.h.
10796 (dbxout.o): Don't depend on gcc.h.
10797
10798 Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson <hp@bitrange.com>
10799 Michael Meissner <meissner@cygnus.com>
10800
10801 * md.texi (Simple Constraints): Add item about whitespace.
10802 * genoutput.c (strip_whitespace): New.
10803 (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
10804 strip_whitespace for constraints.
10805 Test pointer using NULL, not 0.
10806
10807 2000-02-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10808
10809 * cpplib.c (do_line): Pedwarn for #line > 32767.
10810
10811 * c-lex.c (readescape): Warn about '\x', but do not reject it.
10812
10813 2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk>
10814
10815 * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
10816 to default cpp spec.
10817 (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
10818 * cpp.texi: Document __GNUC_PATCHLEVEL__.
10819 * cpp.1: Likewise.
10820
10821 * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
10822 default spec.
10823
10824 2000-02-15 Denis Chertykov <denisc@overta.ru>
10825
10826 * configure.in: Add support for avr target.
10827
10828 Wed Feb 16 03:21:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10829
10830 * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
10831 (sh_addr_diff_vec_mode): Don't declare.
10832 * sh.c (sh_addr_diff_vec_mode): Delete.
10833
10834 Wed Feb 16 01:27:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10835
10836 * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
10837
10838 Wed Feb 16 00:58:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10839
10840 * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
10841 (smulsi3_highpart_i): Name.
10842 (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
10843 (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
10844 (smulsi3_highpart, umulsi3_highpart): Likewise.
10845
10846 (mulsidi3_i, umulsidi3_i): Make rtl describe operation
10847 correctly independent of endianness.
10848 (mulsidi3, umulsidi3): Now define_insn. Hide details that
10849 confuse the optimizers.
10850 (mulsidi3+1, umulsidi3+1): New define_split.
10851
10852 Tue Feb 15 23:22:26 2000 Andrew Haley <aph@cygnus.com>
10853
10854 * config/sh/sh.md: Guard insn splits against illegal registers.
10855 * config/sh/sh.h: Correct comment about macros.
10856
10857 Tue Feb 15 22:30:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10858 Andrew MacLeod <amacleod@cygnus.com>
10859
10860 * Makefile.in (lcm.o): Depend on insn-attr.h.
10861 * basic-block.h (optimize_mode_switching): Declare.
10862 * lcm.c (tm_p.h, insn-attr.h): #include.
10863 (seginfo, bb_info): New structs.
10864 (antic, transp, comp, delete, insert) : New file-scope static variables.
10865 (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
10866 (reg_becomes_live, optimize_mode_switching): Likewise.
10867 * tm.texi: Add description of mode switching macros.
10868 * toplev.c (rest_of_compilation): Call optimize_mode_switching.
10869
10870 * sh-protos.h (remove_dead_before_cse): Remove prototype.
10871 (fldi_ok, fpscr_set_from_mem): New prototypes.
10872 * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
10873 (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
10874 Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
10875 (sh_flag_remove_dead_before_cse): Remove declaration.
10876 (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
10877 (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
10878 (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
10879 * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
10880 (barrier_align): Allow for JUMP_INSNS containing a parallel.
10881 (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
10882 (fldi_ok): New function.
10883 (get_fpscr_rtx): Add fpscr_rtx as GC root.
10884 (emit_sf_insn): Only generate fpu switches when optimize < 1.
10885 (emit_df_insn): Likewise.
10886 (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
10887 (sh_flag_remove_dead_before_cse): Delete.
10888 (get_free_reg, fpscr_set_from_mem): New functions.
10889 * sh.md (movdf, movsf): Remove no_new_pseudos code.
10890 (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
10891
10892 2000-02-15 Loren Rittle <ljrittle@acm.org>
10893
10894 * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
10895
10896 2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10897
10898 * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
10899 cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
10900
10901 * cccp.c: Include version.h and/or don't declare `version_string'.
10902 * collect2.c: Likewise.
10903 * alpha.c: Likewise.
10904 * arm/aof.h: Likewise.
10905 * arm/coff.h: Likewise.
10906 * arm/elf.h: Likewise.
10907 * arm/pe.h: Likewise.
10908 * arm/tcoff.h: Likewise.
10909 * arm/telf.h: Likewise.
10910 * arm/tpe.h: Likewise.
10911 * arm/vxarm.h: Likewise.
10912 * convex/convex.c: Likewise.
10913 * i386/dgux.c: Likewise.
10914 * i386/sun386.h: Likewise.
10915 * m88k/m88k.c: Likewise.
10916 * mcore/mcore-pe.h: Likewise.
10917 * mips/mips.h: Likewise.
10918 * romp/romp.h: Likewise.
10919 * sh/sh.c: Likewise.
10920 * cpphash.c: Likewise.
10921 * cppinit.c: Likewise.
10922 * dwarf2out.c: Likewise.
10923 * dwarfout.c: Likewise.
10924 * gcc.c: Likewise.
10925 * gcc.h: Likewise.
10926 * mips-tfile.c: Likewise.
10927 * protoize.c: Likewise.
10928 * toplev.c: Likewise.
10929 * tree.h: Likewise.
10930
10931 * version.c (version_string): Constify a char*.
10932
10933 * version.h: New file.
10934
10935 2000-02-14 Nick Clifton <nickc@cygnus.com>
10936
10937 * configure.in: Add mcore-elf and mcore-pe targets.
10938 * configure: Regenerate.
10939
10940 * NEWS: Add note that MCore port has been contributed.
10941
10942 * invoke.texi: Document command line switches for MCore port.
10943 * install.texi: Add MCore to list of supported targets.
10944
10945 2000-02-14 Geoff Keating <geoffk@cygnus.com>
10946
10947 * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
10948 then we will need to import the frame handling functions.
10949 (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
10950 to import the frames themselves.
10951
10952 Mon Feb 14 13:31:01 2000 Stan Cox <scox@cygnus.com>
10953 Jason Eckhardt <jle@cygnus.com>
10954
10955 * basic_block.h: Added prototype for reorder_basic_blocks.
10956 * toplev.c: Changes to add -freorder-blocks and graph dump after
10957 block reordering is done.
10958 * flow.c (reorder_block_def): New structure for use during block
10959 reordering.
10960 (REORDER_BLOCK_*): New macros to access members of above structure.
10961 (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
10962 make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
10963 functions for block reordering.
10964
10965 Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson <hp@bitrange.com>
10966
10967 * gcc.texi (Passes): Fix typo.
10968 * md.texi (Standard Names): Ditto.
10969 * tm.texi (Storage Layout): Ditto.
10970
10971 2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
10972
10973 * cpplib.c (do_define): Only free the old definition if it
10974 actually had one.
10975
10976 2000-02-13 Neil Booth <NeilB@earthling.net>
10977
10978 * cppfiles.c (read_and_prescan): When emitting deferred
10979 newlines, test speccase[] again instead of checking each
10980 possible whitespace character in turn. When we encounter \r,
10981 look behind for \n first, then ahead.
10982
10983 2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
10984
10985 * cse.c (cse_altered): New internal flag.
10986 (cse_insn): Set it if we changed an insn.
10987 (cse_main): Clear cse_altered before each basic block.
10988 Only garbage collect if cse_altered is true afterward.
10989
10990 Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10991
10992 * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
10993
10994 Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com)
10995
10996 * combine.c (simplify_comparison): Fix typo.
10997
10998 Sun Feb 13 12:57:52 2000 Neil Booth <NeilB@earthling.net>
10999
11000 * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
11001 consistently.
11002
11003 2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11004
11005 * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
11006 previously inserted node instead of root node. Caller changed.
11007
11008 2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11009
11010 * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
11011
11012 2000-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11013
11014 * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
11015 __dereg_frame_dtor): Add prototype argument.
11016
11017 * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
11018
11019 * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
11020
11021 * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
11022
11023 * gthr-vxworks.h (__gthread_once): Likewise.
11024
11025 * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
11026
11027 Sat Feb 12 01:44:26 MET 2000 Jan Hubicka <jh@suse.cz>
11028
11029 * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
11030 (ix86_expand_epilogue): ... here. Use mov instead of add to restore
11031 stack pointer in functions w/o saved registers, output LEAVE more often
11032 on TARGET_USE_LEAVE machines.
11033
11034 2000-02-07 Dmitri Makarov <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
11035
11036 * config/arm/arm.c (arm_init_cumulative_args); New function:
11037 Initlaise the CUMULATIE_ARGS strcuture for a function
11038 defintion.
11039 (arm_function_arg): New function: Determine where to place a
11040 function's argument. Also handles deciding the function's
11041 call cookie.
11042 (current_file_function_operand): New function: Return true if
11043 the symbol is a function which has already been compiled.
11044 (arm_is_long_call_p): New function: Return true if the
11045 indicated function should be called via a long call.
11046 (arm_valid_type_attribute_p): New function: Return true if the
11047 attribute is a valid, arm specific, attribute.
11048 (arm_comp_type_attribute): New function: Return true if the
11049 two types have compatable, arm specific, attributes.
11050
11051 * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
11052 structure.
11053 (FUNCTION_ARG): Redefine to call arm_function_arg.
11054 (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
11055 structure field.
11056 (INIT_CUMULATIVE_ARGS): Redefine to call
11057 arm_init_cumulative_args.
11058 (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
11059 field.
11060 (SETUP_INCOMING_VARARGS): Redefine to use correct structure
11061 field.
11062 (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
11063 functions.
11064 (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
11065 (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
11066 (COMP_TYPE_ATTRIBUTES): Define.
11067
11068 * config/arm/arm.md (call): Call arm_is_long_call_p to decide
11069 if a long call is needed.
11070 (call_value): Call arm_is_long_call_p to decide if a long call
11071 is needed.
11072 (call_symbol): Call arm_is_long_call_p to decide if a long call
11073 is needed.
11074
11075 * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
11076
11077 2000-02-11 Denis Chertykov <denisc@overta.ru>
11078
11079 * README.AVR: New file with information about the avr ports.
11080 * config/avr: New directory with avr port files.
11081
11082 2000-02-11 Andreas Jaeger <aj@suse.de>
11083
11084 * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
11085
11086 2000-02-11 Zack Weinberg <zack@wolery.cumb.org>
11087
11088 * cpphash.c: Fix formatting, update commentary.
11089 (dump_definition): Take three separate arguments instead of a
11090 MACRODEF structure argument.
11091 * cpphash.h: Update prototype of dump_definition.
11092 * cppinit.c (cpp_finish): Update call of dump_definition.
11093
11094 * cpplib.c (do_define): Always create new hash entry with
11095 T_MACRO type. Remove redundant check for redefinition of
11096 poisoned identifier. Update call of dump_definition.
11097 (do_undef): Don't call check_macro_name. Rename sym_length to
11098 len.
11099 (do_error, do_warning): Don't use copy_rest_of_line or
11100 SKIP_WHITE_SPACE.
11101 (do_warning): Don't use pedwarn for the actual warning,
11102 only the notice about its not being in the standard. (Fixes
11103 bug with #warning in system headers.)
11104 (do_ident): Stricter argument checking - accept only a single
11105 string after #ident. Also, macro-expand the line.
11106 (do_xifdef): Use cpp_defined. De-obfuscate.
11107
11108 (do_pragma): Split out specific pragma handling to separate
11109 functions. Use get_directive_token. Update commentary. Do
11110 not pass on #pragma once or #pragma poison to the front end.
11111 (do_pragma_once, do_pragma_implementation, do_pragma_poison,
11112 do_pragma_default): New.
11113
11114 Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com)
11115
11116 * jump.c (jump_optimize_1): The first operand in a relational
11117 can be a CONST_INT.
11118 * optabs.c (emit_conditional_move): Handle relationals which
11119 have a known true/false result.
11120
11121 2000-02-11 Geoff Keating <geoffk@cygnus.com>
11122
11123 * function.c (thread_prologue_and_epilogue_insns): Don't insert
11124 a RETURN insn into a block which already ends with a jump.
11125
11126 2000-02-11 Geoff Keating <geoffk@cygnus.com>
11127
11128 * haifa-sched.c (BUF_LEN): Increase a lot.
11129
11130 2000-02-11 Nick Clifton <nickc@cygnus.com>
11131
11132 * configure.in: Add tm_p_file specification for thumb targets.
11133 * configure: Regenerate.
11134
11135 * config/arm/thumb-protos.h: New file: Prototypes for exported
11136 functions defined in thumb.c.
11137
11138 2000-02-11 Robert Lipe <robertl@sco.com>
11139
11140 * Makefile.in (bootstrap-lean): Remove additional files.
11141 (bootstrap2-lean): Likewise.
11142 (VOL_FILES): List of files for above.
11143
11144 2000-02-11 Nathan Sidwell <nathan@acm.org>
11145
11146 * cpphash.c (special_symbol): Remove spurious argument to
11147 cpp_lookup.
11148
11149 2000-02-11 Joel Sherrill (joel@OARcorp.com>
11150
11151 * configure.in: (i*86-*-rtems*): Swapped elf and coff
11152 stanzas.
11153 * configure: Rebuilt.
11154
11155 2000-02-11 Rodney Brown <RodneyBrown@pmsc.com>
11156
11157 * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
11158
11159 Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com)
11160
11161 * pa.c, pa.h: Remove trigraph sequences within comments.
11162
11163 Fri Feb 11 02:51:56 2000 Pavel Roskin <pavel_roskin@geocities.com>
11164
11165 * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
11166
11167 Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu)
11168
11169 * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
11170
11171 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11172
11173 * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
11174
11175 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11176
11177 * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
11178 (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
11179 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11180 (ASM_FILE_END): Use c4x_file_end.
11181 * config/c4x/c4x.c (c4x_global_label): New function.
11182 (c4x_external_ref, c4x_file_end): Likewise.
11183
11184 * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
11185 (c4x_external_ref, c4x_end_file): Likewise.
11186
11187 2000-02-10 Zack Weinberg <zack@wolery.cumb.org>
11188
11189 * cppexp.c: Don't include cpphash.h.
11190 (parse_charconst, cpp_lex): Use cpp_defined.
11191 (cpp_lex): Use get_directive_token throughout. Remove
11192 unnecessary cases from switch. Move assertion-handling code
11193 down to OTHER case.
11194 (cpp_parse_expr): If we see '+' or '-', check the context to
11195 determine if they are unary or binary operators. Streamline
11196 the jumps a bit. Do not call skip_rest_of_line.
11197
11198 * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
11199 static. Export get_directive_token. Update commentary.
11200 (cpp_defined): New function.
11201 (do_define): Remove reference to T_PCSTRING. Call
11202 free_definition to release memory for old definition, when
11203 redefining a macro.
11204 (eval_if_expression): Set only_seen_white to 0 before calling
11205 cpp_parse_expr. Call skip_rest_of_line after it returns.
11206 (cpp_read_check_assertion): Don't preserve a pointer into the
11207 token buffer across a call to cpp_get_token.
11208
11209 * Makefile.in (cppexp.o): Don't depend on cpphash.h.
11210 * cppfiles.c (redundant_include_p): Use cpp_defined.
11211 * cpphash.c (free_definition): New function.
11212 (delete_macro): Use it. Update commentary.
11213 * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and
11214 free_definition.
11215 * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
11216 from enum node_type. Prototype cpp_defined and get_directive_token.
11217 Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
11218
11219 * fix-header.c (check_macro_names): Use cpp_defined.
11220 (read_scan_file): Set inhibit_warnings and inhibit_errors in
11221 the options structure.
11222
11223 2000-02-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11224
11225 * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
11226
11227 2000-02-10 Jason Merrill <jason@casey.cygnus.com>
11228
11229 * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
11230 rather than die->die_tag.
11231
11232 Thu Feb 10 16:26:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11233
11234 * combine.c (make_extraction, force_to_mode): Avoid warning on
11235 mixed-signedness conditionals.
11236 (make_field_assignment, nonzero_bits): Likewise.
11237 * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
11238 (store_split_bit_field, extract_split_bit_field): Likewise.
11239 (extract_fixed_bit_field, store_bit_field,
11240 * expr.c: Change alignment to be unsigned everywhere.
11241 (move_by_pieces, store_constructor_field, store_constructor):
11242 Alignment parm is unsigned.
11243 (emit_block_move, emit_group_load, emit_group_store): Likewise.
11244 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11245 (do_compare_rtx_and_jump): Likewise.
11246 (move_by_pieces_ninsns, clear_by_pieces): Likewise.
11247 Compare align with GET_MODE_ALIGNMENT.
11248 (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
11249 (get_inner_reference): Likewise.
11250 (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
11251 (expand_assignment): Local vars for alignment now unsigned.
11252 (store_constructor, store_field, expand_expr, do_jump): Likewise.
11253 (do_compare_and_jump): Likewise.
11254 (store_field): Call new function expr_align.
11255 * expr.h (emit_block_move, emit_group_load, emit_group_store):
11256 Alignment arg now unsigned.
11257 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11258 (do_compare_rtx_and_jump, store_bit_field): Likewise.
11259 (extract_bit_field): Likewise.
11260 * fold-const.c (add_double): Add cast to eliminate signedness warning.
11261 * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
11262 (get_best_mode): Alignment arg is unsigned.
11263 * rtl.h (move_by_pieces): Likewise.
11264 * store-layout.c (maximum_field_alignment, set_alignment):
11265 Now unsigned.
11266 (layout_decl): Alignment arg is now unsigned.
11267 Remove unneeded casts.
11268 (layout_record, layout_union, layout_type): Remove unneeded casts.
11269 Local alignment variables now unsigned.
11270 (get_best_mode): Alignment arg now unsigned.
11271 * tree.c (expr_align): New function.
11272 * tree.h (expr_align): Likewise.
11273 (maximum_field_alignment, set_alignment): Now unsigned.
11274 (get_inner_reference): Alignment argument is now pointer to unsigned.
11275 * varasm.c (assemble_variable): Add cast to eliminate warning.
11276
11277 Thu Feb 10 12:56:47 2000 Jim Wilson <wilson@cygnus.com>
11278
11279 * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
11280 then store directly into op0.
11281
11282 * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
11283 the CALL_INSN, and emit the note immediately after it.
11284
11285 2000-02-10 Nick Clifton <nickc@cygnus.com>
11286
11287 * config/arm/thumb.md (epilogue): Include a (return) in the
11288 generated insn, and emit it using emit_jump_insn not
11289 emit_insn.
11290
11291 Thu Feb 10 18:28:59 MET 2000 Jan Hubicka <jh@suse.cz>
11292
11293 * function.c (assign_temp): Change zero-sized arrays to size 1.
11294 * integrate.c (expand_inline_function): Do not update
11295 stack_alignment_needed
11296 * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
11297 add some sanity checking, remove optimization for function with
11298 zero frame size.
11299
11300 2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11301
11302 * flow.c (mark_regs_live_at_end): Delete unused variables.
11303
11304 * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
11305
11306 * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
11307 in macro FRAME_GROWS_DOWNWARD.
11308
11309 * stmt.c (expand_end_bindings): Delete unused variable.
11310
11311 * unroll.c (iteration_info): Mark parameter `loop' with
11312 ATTRIBUTE_UNUSED.
11313
11314 2000-02-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
11315
11316 * fixinc/server.c (load_data): Return NULL if the marker line is
11317 not found.
11318 (run_shell): If load_data returns NULL, retry the command once, in
11319 a new shell.
11320
11321 * configure: Rebuilt.
11322
11323 2000-02-09 Bruce Korb <bkorb@gnu.org>
11324
11325 * gcc/fixincludes: ** DELETED **
11326 * gcc/fixcpp: ** DELETED **
11327 * gcc/fixinc-nt.sed: ** DELETED **
11328 * gcc/just-fixinc: ** DELETED **
11329 * gcc/Makefile.in: Removed out-dated commentary
11330 * gcc/configure.in: Removed fast-fixincludes disablement.
11331 * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
11332
11333 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
11334 * function.c (thread_prologue_and_epilogue_insns): Uncomment
11335 last change.
11336
11337 2000-02-09 Richard Henderson <rth@cygnus.com>
11338
11339 * jump.c (delete_insn): Don't delete user labels at -O0.
11340
11341 2000-02-09 Robert Lipe <robertl@sco.com>
11342
11343 * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
11344 Don't link with HOST_LIBS.
11345
11346 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
11347
11348 * configure.in: Correct --help text for --with-dwarf2.
11349 Put tm-dwarf2.h after other tm files, if it's requested.
11350 * configure: Regenerate.
11351 * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
11352 defining it.
11353
11354 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
11355
11356 * cpplib.h: Provide HASHNODE typedef and forward decl of
11357 struct hashnode only. Kill cpp_hashnode typedef. MACRODEF,
11358 DEFINITION, struct hashnode, struct macrodef, struct
11359 definition, scan_decls prototype, default defn of
11360 INCLUDE_LEN_FUDGE moved elsewhere.
11361
11362 * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
11363 definition, and struct hashnode moved here. Remove the unused
11364 'predefined' field from struct definition. Replace the 'args'
11365 union with its sole member. All users updated (cpphash.c).
11366 Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add
11367 multiple include guard.
11368
11369 * cpphash.c (hashf): Make static; use better algorithm; drop
11370 HASHSIZE parameter; return an unsigned int.
11371 (cpp_lookup): Drop HASH parameter. PFILE parameter is
11372 used. Calculate HASHSIZE modulus here.
11373 (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
11374 here.
11375 (create_definition): Drop PREDEFINITION parameter.
11376 * cpplib.c (do_define): Don't calculate a hash value here.
11377 Don't pass (keyword == NULL) to create_definition.
11378
11379 * scan.h: Prototype scan_decls here.
11380 * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
11381 * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
11382 callers of cpp_lookup and cpp_install updated.
11383
11384 * cpphash.c (macarg): Hoist all the flag diddling out of the
11385 function...
11386 (macroexpand): ... and out of the loop that calls macarg.
11387 Skip over the initial paren before macro arguments with
11388 cpp_get_non_space_token; point may be some distance before
11389 that paren. Abort if it's not there.
11390
11391 * cpplib.c (parse_clear_mark): Delete function.
11392 (parse_set_mark, parse_goto_mark): Make static.
11393 (ACTIVE_MARK_P): New macro.
11394 (skip_block_comment, skip_line_comment): Do not bump the line
11395 if ACTIVE_MARK_P is true.
11396 (cpp_pop_buffer): The buffer to be popped may not have an
11397 active mark.
11398 (cpp_get_token): When looking for the initial paren before
11399 macro arguments, only set a mark in a file buffer, Always
11400 return to that mark before proceeding to call macroexpand or
11401 return a NAME token.
11402
11403 * cpplib.h: Remove prototypes of parse_set_mark,
11404 parse_clear_mark, parse_goto_mark.
11405 (struct cpp_options): Rename 'put_out_comments' to
11406 'discard_comments' and invert its sense.
11407 * cppinit.c, cpphash.c, cpplib.c: All users of
11408 put_out_comments changed to use discard_comments, with
11409 opposite sense.
11410
11411 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
11412
11413 * function.c (thread_prologue_and_epilogue_insns): Don't delete
11414 the edge from a block that both jumps and falls through to the
11415 fallthru block.
11416
11417 2000-02-09 Scott Bambrough <scottb@netwinder.org>
11418
11419 * config/arm/arm.md (movsi): In PIC mode, make sure that a
11420 constant source address is legitimate.
11421
11422 2000-02-09 Philip Blundell <pb@futuretv.com>
11423
11424 * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
11425 correctly.
11426
11427 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
11428 generating PIC.
11429 (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
11430
11431 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
11432
11433 * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
11434 ends with a newline and a NUL. Don't be so clever manipulating
11435 strings.
11436
11437 Wed Feb 9 14:18:08 MET 2000 Jan Hubicka <jh@suse.cz>
11438
11439 * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
11440 not to BIGGEST_ALIGNMENT.
11441
11442 2000-02-08 Geoff Keating <geoffk@cygnus.com>
11443
11444 * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
11445 * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
11446 (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
11447 (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
11448 * frame.c (execute_cfa_insn): Handle
11449 DW_CFA_GNU_negative_offset_extended.
11450
11451 2000-02-08 Richard Henderson <rth@cygnus.com>
11452
11453 * flow.c (tidy_fallthru_edges): Split out from ...
11454 (delete_unreachable_blocks): ... here.
11455 (find_basic_blocks): Use it.
11456
11457 Tue Feb 8 15:51:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11458
11459 * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
11460
11461 2000-02-08 Zack Weinberg <zack@wolery.cumb.org>
11462
11463 * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
11464 (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
11465 (fix-header.o): Don't depend on cpphash.h.
11466
11467 * scan.c (hashstr): New function.
11468 * scan.h: Prototype it.
11469 * fix-header.c: Don't include cpphash.h. Use hashstr.
11470 * gen-protos.c: Don't include cpphash.h or cpplib.h. Use
11471 hashstr. Report hash table statistics. Add private
11472 definition of xrealloc.
11473
11474 2000-02-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11475
11476 * i386.h (TARGET_SWITCHES): Fix typo in option name.
11477
11478 2000-02-08 Clinton Popetz <cpopetz@cygnus.com>
11479
11480 * function.c (thread_prologue_and_epilogue_insns): Don't replace
11481 jumps with returns unless they are jumps to the fallthru block.
11482
11483 Tue Feb 8 07:53:55 2000 Jan Hubicka <jh@suse.cz>
11484
11485 * i386.md (addqi3_cc): Fix contraints.
11486
11487 Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
11488
11489 * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
11490
11491 2000-02-07 Mark Mitchell <mark@codesourcery.com>
11492
11493 * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
11494 carriage return after a macro name.
11495
11496 2000-02-07 Fred Fish <fnf@be.com>
11497
11498 * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
11499 so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
11500
11501 2000-02-07 Zack Weinberg <zack@wolery.cumb.org>
11502
11503 * cppfiles.c (deps_output): Count spacers in deps_column.
11504
11505 2000-02-07 Neil Booth <NeilB@earthling.net>
11506
11507 * cppinit.c (initialize_dependency_output): If there is no
11508 suffix, don't try to look for known suffixes. Use strrchr.
11509 (cpp_start_read): Remove duplicate initialization.
11510
11511 Mon Feb 7 18:36:41 MET 2000 Jan Hubicka <jh@suse.cz>
11512
11513 * calls.c (compute_argument_block_size): New argument
11514 preferred_stack_boundary.
11515 (expand_call): update cfun->preferred_stack_boundary, update call of
11516 compute_argument_block_size
11517 (emit_library_call): Increate cfun->preferred_stack_boundary
11518 to PREFERRED_STACK_BOUNDARY
11519 (emit_library_call_value): Likewise.
11520 * explow.c (allocate_dynamic_stack_spave): Likewise.
11521 * function.c (prepare_function_start): Set
11522 cfun->preferred_stack_boundary
11523 * function.h (struct function): Add preferred_stack_boundary field.
11524 * integrate.c (expand_inline_function): Update
11525 cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
11526 (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
11527 * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
11528
11529 2000-02-06 Zack Weinberg <zack@wolery.cumb.org>
11530
11531 * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
11532 cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
11533 cpp_pedwarn, cpp_pedwarn_with_line,
11534 cpp_pedwarn_with_file_and_line): Move to cpperror.c.
11535 (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
11536 v_cpp_error_with_line, v_cpp_warning_with_line,
11537 cpp_message_from_errno, cpp_perror_with_name): Delete.
11538
11539 * cpperror.c (cpp_print_containing_files): Take starting
11540 buffer as argument.
11541 (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
11542 (v_cpp_message): Now called directly by all entry points.
11543 Remove -1 case.
11544 (cpp_pfatal_with_name, cpp_message): Delete.
11545 (cpp_notice_from_errno, cpp_ice): New functions.
11546 (cpp_notice): Is now for reporting error conditions, just
11547 without an associated file.
11548 (cpp_error, cpp_error_with_line): Don't do anything if
11549 opts->inhibit_errors is on.
11550 (cpp_pedwarn_with_file_and_line): Take column argument also.
11551
11552 * cpplib.h: Update prototypes of exported functions.
11553 (struct cpp_options): Add inhibit_errors.
11554
11555 * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
11556 non-error messages. Include intl.h.
11557
11558 * cppinit.c, cppmain.c: Likewise. Also, use
11559 cpp_notice_from_errno instead of cpp_perror_with_name or
11560 cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
11561
11562 * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
11563 report internal errors.
11564
11565 * cpplib.c (do_define): Switch bcopy to memcpy.
11566 Give cpp_pedwarn_with_file_and_line a dummy column argument.
11567
11568 * cpplib.c (copy_rest_of_line): Revert previous change: don't
11569 bail out early if we hit a line comment.
11570
11571 2000-02-06 Richard Henderson <rth@cygnus.com>
11572
11573 * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
11574 * basic-block.h: Declare them.
11575 * emit-rtl.h (active_insn_p): New.
11576 (next_active_insn, prev_active_insn): Use it.
11577 * rtl.h: Declare it.
11578 * function.c (emit_return_into_block): New.
11579 (thread_prologue_and_epilogue_insns): Insert return insns instead
11580 of epilogues when possible.
11581 * jump.c (jump_optimize_1): Remove code to insert a return insn
11582 on the fallthru to the exit block.
11583
11584 * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
11585 and for non-empty stack frames.
11586 * i386.md (return): Expand to return-pop as needed.
11587
11588 2000-02-06 Richard Henderson <rth@cygnus.com>
11589
11590 * simplify-rtx.c (simplify_relational_operation): Canonicalize
11591 constant to op1 for testing.
11592
11593 2000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11594
11595 * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
11596 (fixuns_truncqfqi2): Use it.
11597
11598 2000-02-06 Richard Henderson <rth@cygnus.com>
11599
11600 * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
11601 as a TYPE_LEA insn.
11602
11603 * i386.md (widening and peepholes): Mask the constant instead of
11604 using gen_lowpart.
11605
11606 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
11607
11608 * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
11609 input pointer before possibly branching off to the backslash
11610 code.
11611 * cpphash.c (macroexpand): Correctly delete \r escapes when
11612 stringifying parameters.
11613 * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
11614 if we can; bail out early if we hit a line comment.
11615 (handle_directive): Treat '# 123' in an .S file just like
11616 '# <punctuation>'. Discard the shifted '#' if we hit '#\n'.
11617 Return 1 for '# not_a_directive'.
11618 (get_directive_token): Pop macro buffers here, so that
11619 cpp_get_token can't sneakily move past a newline.
11620 Add sanity checks.
11621 (cpp_get_token): goto randomchar if handle_directive returns 0.
11622
11623 * cppalloc.c: Update copyright.
11624 * cpplib.c: Merge all the static function prototypes into one
11625 block.
11626 * cpplib.h: Remove #if 0 block.
11627
11628 * cpperror.c: Remove #ifdef EMACS block.
11629 * cppmain.c: Likewise.
11630 * cpphash.c: Remove #if 0 blocks.
11631 * cppinit.c: Remove #if 0 blocks, and the -lint option.
11632 * cpplib.c: Remove #if 0 blocks and code referencing
11633 pcp_inside_if or for_lint. Remove duplicate error message.
11634 Fix error messages for #else after #else or #elif. Reformat.
11635 Remove archaic TODO list.
11636 * cpplib.h: Remove pcp_inside_if and for_lint flags.
11637
11638 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
11639
11640 * i386/osf1elf.h: Add missing backslash to multiline string.
11641
11642 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11643
11644 * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
11645
11646 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11647
11648 * Makefile.in (c-common.o): Depend on $(EXPR_H).
11649
11650 * c-common.c: Include expr.h.
11651
11652 * c-pragma.c (mark_align_stack): Add prototype.
11653
11654 * caller-save.c (add_stored_regs): Likewise.
11655
11656 * combine.c (record_promoted_value): Likewise.
11657
11658 * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
11659 Likewise.
11660
11661 * cppinit.c (new_pending_define): Likewise.
11662
11663 * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
11664
11665 * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
11666 AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
11667 AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
11668 class_scope_p): Likewise.
11669
11670 * dwarf2out.h (dwarf2out_set_demangle_name_func,
11671 dwarf2out_add_library_unit_info): Likewise.
11672
11673 * ggc.h (ggc_page_print_statistics): Likewise.
11674
11675 * haifa-sched.c (propagate_deps): Likewise.
11676
11677 * reg-stack.c (next_flags_user, record_label_references): Likewise.
11678
11679 * rtl.h (set_stack_check_libfunc): Likewise.
11680
11681 * toplev.h (set_fatal_function): Likewise.
11682
11683 * toplev.c (set_fatal_function): Delete prototype.
11684
11685 * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
11686
11687 2000-02-05 Geoff Keating <geoffk@cygnus.com>
11688
11689 * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
11690 (FUNC_END): Likewise.
11691
11692 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11693
11694 * caller-save.c: Include tm_p.h.
11695
11696 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11697
11698 * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
11699
11700 2000-02-04 Neil Booth <NeilB@earthling.net>
11701
11702 * cccp.c (main): Check 'dir' for a NULL pointer before passing
11703 it to strcmp.
11704
11705 2000-02-04 Zack Weinberg <zack@wolery.cumb.org>
11706
11707 * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
11708 * genflags.c: Use the max_operand_1 logic from genemit.c to
11709 calculate how many arguments gen_insn prototypes have. Remove
11710 NO_MD_PROTOTYPES ifdefs from the generated file.
11711 * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
11712 file. Cast gen_insn initializers to insn_gen_fn.
11713 * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
11714 * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
11715
11716 2000-02-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11717
11718 * fixinc/Makefile.in (HDR): Add machname.h.
11719 (clean): Likewise.
11720
11721 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11722
11723 * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
11724 (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
11725 (c4x_cpu_version): Ditto.
11726 * config/c4x/c4x-protos.h: ... here.
11727
11728 2000-02-04 Jason Merrill <jason@casey.cygnus.com>
11729
11730 * dwarf2out.c (add_abstract_origin_attribute): Don't call
11731 gen_abstract_function on our context if we're a nested function.
11732
11733 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11734
11735 * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
11736 * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
11737
11738 2000-02-04 Bruce Korb <bkorb@gnu.org>
11739
11740 * fixinc/genfixes(machname.h):
11741 Move the functionality from gen-machine.h into this file.
11742 UNdef MN_NAME_PAT if there are no names to change.
11743 Also, be a little kinder when AutoGen is not present.
11744
11745 * fixinc/Makefile.in(machname.h):
11746 Change the generation rule to use genfixes.
11747
11748 * fixinc/fixfixes.c(machine_name):
11749 machine_name_fix's functionality now dependent upon whether
11750 MN_NAME_PAT is defined.
11751
11752 * fixinc/fixtests.c(machine_name):
11753 ditto.
11754
11755 * fixinc/fixlib.c(mn_get_regexps): conditional on definition
11756 of MN_NAME_PAT.
11757
11758 * fixinc/fixlib.h(mn_get_regexps):
11759 ditto
11760
11761 * fixinc/gen-machine.h: DELETED
11762
11763 2000-02-04 Jan Hubicka <jh@suse.cz>
11764 Richard Henderson <rth@cygnus.com>
11765
11766 * i386.c (SAVE_REGS_FIRST): Remove.
11767 (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
11768 (ix86_compute_frame_size): Likewise.
11769 (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack.
11770 (ix86_emit_restore_regs): Remove.
11771 (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
11772 when a frame pointer is in use.
11773 (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov
11774 instead of pop to restore a register when profitable; emit leave
11775 when profitable.
11776 (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
11777 as a TYPE_LEA insn.
11778 (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
11779 * i386.md (prologue_allocate_stack): Remove.
11780 (epilogue_deallocate_stack): Remove.
11781 (pro_epilogue_adjust_stack): New.
11782
11783 2000-02-04 Richard Henderson <rth@cygnus.com>
11784
11785 * function.c (diddle_return_value): Rework to use a callback function.
11786 Use current_function_return_rtx if it's been set up.
11787 (do_clobber_return_reg, clobber_return_register): New.
11788 (do_use_return_reg, use_return_register): New.
11789 (expand_function_end): Use them.
11790 * stmt.c (expand_null_return): Likewise.
11791 * function.h: Declare them.
11792 * flow.c (mark_regs_live_at_end): Use diddle_return_value.
11793 (mark_reg): Change arguments as appropriate for callback.
11794 * integrate.c (expand_inline_function): Revert 19 Jan change.
11795
11796 Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson <hp@bitrange.com>
11797
11798 * tm.texi (Values in Registers): Fix typo: "fo" "for".
11799 (Misc): Say the scheduler, not the Haifa scheduler.
11800
11801 2000-02-04 Clinton Popetz <cpopetz@cygnus.com>
11802
11803 * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
11804 when in_mem is set. Update all callers.
11805
11806 2000-02-04 Richard Henderson <rth@cygnus.com>
11807
11808 * i386/openbsd.h (INT_ASM_OP): Define.
11809
11810 Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson <hp@bitrange.com>
11811
11812 * tm.texi: Fix various typos.
11813
11814 Thu Feb 3 17:17:32 2000 Steve Ellcey <sje@cup.hp.com>
11815
11816 * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
11817 (MD_STARTFILE_PREFIX_1): New macro.
11818
11819 Thu Feb 3 15:08:13 MET 2000 Jan Hubicka <jh@suse.cz>
11820
11821 * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
11822 destination when needed.
11823 (strmovsi, strsetsi): New expander.
11824 (strmovsi_1, strsetsi_1): New pattern.
11825 * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
11826 TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
11827 (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
11828 * invoke.texi (align-stringops, inline-all-stringops): Document.
11829
11830 Wed Feb 2 23:04:47 2000 Krister Walfridsson <cato@df.lth.se>
11831
11832 * i386/netbsd.h (INT_ASM_OP): Define.
11833
11834 2000-02-02 Zack Weinberg <zack@wolery.cumb.org>
11835
11836 * cpplib.h (cpp_reader): Add new flag, no_directives.
11837 * cpphash.c (macarg): Set it.
11838 * cpplib.c (handle_directive): If no_directives is on and we
11839 find a directive, issue an error and discard the line.
11840
11841 Wed Feb 2 13:07:10 2000 Jim Wilson <wilson@cygnus.com>
11842
11843 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
11844 FP constants. Add ! TARGET_FPU check for FP constants.
11845
11846 2000-02-02 Clinton Popetz <cpopetz@cygnus.com>
11847
11848 * flow.c (find_basic_blocks): Don't kill label_value_list
11849 here.
11850 (cleanup_cfg): Kill it here.
11851
11852 Wed Feb 2 08:12:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11853
11854 * expr.c (store_field): Ensure ALIGN is no stricter than the
11855 alignment of EXP.
11856
11857 2000-02-02 Richard Henderson <rth@cygnus.com>
11858
11859 * jump.c (delete_insn): Partially revert 19 Jan change;
11860 don't convert unused code labels to notes at -O0.
11861
11862 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11863
11864 * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
11865 split_all_insns to recreate REG_LABEL notes for flow2 pass.
11866
11867 2000-02-01 Richard Henderson <rth@cygnus.com>
11868
11869 * i386.c (general_no_elim_operand): New.
11870 (nonmemory_no_elim_operand): New.
11871 (ix86_expand_move): Copy eliminable operands before a push.
11872 * i386-protos.h: Declare new functions.
11873 * i386.h (CAN_ELIMINATE): Simplify.
11874 (PREDICATE_CODES): Update.
11875 * i386.md (push insns): Don't allow eliminable register operands.
11876
11877 2000-02-01 Richard Henderson <rth@cygnus.com>
11878
11879 * flow.c (mark_regs_live_at_end): Follow expand_function_end and
11880 replace BLKmode with DECL_RTL's mode.
11881
11882 2000-02-01 Zack Weinberg <zack@wolery.cumb.org>
11883
11884 * frame.c (find_fde): Convert for loop to do-while so compiler
11885 sees it's always executed at least once.
11886 * libgcc2.c (BBINBUFSIZE): Kill.
11887 (__bb_init_prg): Use fgets.
11888 (__bb_exit_trace_func): Don't paste strings.
11889 * unroll.c (unroll_loop): Initialize unroll_type, not
11890 unroll_number, and tweak logic to match.
11891
11892 * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
11893 all failure paths.
11894 (ix86_flags_dependant): Likewise. Disentangle control flow.
11895 (ix86_sched_reorder): Break guts out to
11896 ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
11897 (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
11898 any possible use.
11899
11900 * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
11901 use string concatenation. Don't save and restore esi.
11902
11903 * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
11904 (machname.h): Remove script to separate file. Use two-step
11905 sequence so target is not created if script fails.
11906 * fixinc/gen-machname.h: New file. Handle case where no non-reserved
11907 identifiers are defined.
11908 * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
11909 an empty string, machine_name doesn't need to do anything at
11910 all.
11911 (is_cxx_header): Add more cases to regexp.
11912 * fixinc/fixlib.h: Update prototype.
11913 * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
11914 mn_get_regexps.
11915 * fixinc/fixincl.c: Define NO_BOGOSITY.
11916
11917 * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
11918 (hp_sysfile): Add missing comma.
11919 (math_exception): Put the wrapper ifdefs at the beginning and
11920 the end of the file.
11921 * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
11922
11923 2000-02-01 Richard Henderson <rth@cygnus.com>
11924
11925 * sparc.c (fp_zero_operand): Turn into a normal predicate.
11926 Use CONST0_RTX. Update all callers.
11927 * sparc.h, sparc-protos.h: Update accordingly.
11928 * sparc.md (fp mov insns): Use fp_zero_operand directly
11929 where applicable.
11930
11931 Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
11932
11933 * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
11934 example.
11935
11936 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11937
11938 * Makefile.in (specs.ready): New target.
11939 (fixinc.sh): Depend on `specs.ready' instead of `specs'.
11940
11941 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11942
11943 * fixinc.irix: Use unique filenames for writing into /tmp,
11944 * fixinc.ptx: Likewise.
11945 * fixinc.sco: Likewise.
11946 * fixinc.svr4: Likewise.
11947 * fixinc.winnt: Likewise.
11948
11949 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11950
11951 * tsystem.h: New file.
11952
11953 * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
11954 s-crtS): Depend on tsystem.h.
11955
11956 * crtstuff.c: Include tsystem.h.
11957 * frame.c: Likewise.
11958 * libgcc2.c: Likewise.
11959
11960 Tue Feb 1 19:53:27 CET 2000 Jan Hubicka <jh@suse.cz>
11961
11962 * builtins.c (expand_builtin_memset): Expand for variable sized
11963 lengths too.
11964
11965 2000-02-01 David Billinghurst <David.Billinghurst@riotinto.com.au>
11966
11967 * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
11968 on ABI.
11969
11970 Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
11971
11972 * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
11973
11974 * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
11975
11976 2000-01-31 Chandra Chavva <cchavva@cygnus.com>
11977
11978 * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
11979 case 3->2 combining (combining with splitting) in which 2 is CC0
11980 setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
11981 checked at the begining of the function with the aid of calling
11982 function 'can_combine_p'.
11983
11984 2000-01-31 Dave Brolley <brolley@redhat.com>
11985
11986 * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
11987
11988 2000-01-31 Jason Merrill <jason@casey.cygnus.com>
11989
11990 * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
11991 new label.
11992
11993 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11994
11995 * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
11996
11997 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
11998 PROTO -> PARAMS.
11999
12000 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
12001
12002 * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
12003 i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
12004 i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
12005 i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
12006 i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
12007 i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
12008 i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
12009 i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
12010 i386/vxi386.h, i386/win-nt.h, i386/win32.h:
12011 Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
12012
12013 * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
12014 Add %(cpp_cpu) to CPP_SPEC.
12015
12016 * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
12017 Add %(cc1_cpu) to CC1_SPEC.
12018
12019 2000-01-28 Ulrich Drepper <drepper@redhat.com>
12020
12021 * c-decl.c (c_decode_option): Accept optional numeric argument to
12022 -Wformat and set warn_format.
12023 * c-common.c: Don't emit warning about non-constant printf format
12024 string unless warn_format > 1.
12025
12026 2000-01-30 Richard Henderson <rth@cygnus.com>
12027
12028 * alpha.md (return_internal): Allow after reload only.
12029
12030 2000-01-30 Richard Henderson <rth@cygnus.com>
12031
12032 * i386.c (ix86_compute_frame_size): Omit padding1 if the
12033 local frame size is zero.
12034
12035 2000-01-30 Richard Henderson <rth@cygnus.com>
12036
12037 * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
12038 * alpha.h (EPILOGUE_USES): New. Mark $26 live.
12039 * alpha.md (return): Turn into an expander.
12040 (return_internal): Don't use $26.
12041 (epilogue): Emit the return insn.
12042
12043 2000-01-30 Richard Henderson <rth@cygnus.com>
12044
12045 * alpha.md (negtf2, abstf2): Fix word order thinko.
12046 (extendsftf2): New.
12047 (trunctfsf2): Avoid intermediate rounding errors.
12048
12049 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
12050
12051 * cppfiles.c (find_position): Drop 'colp' argument, return the
12052 new line base.
12053 (read_and_prescan): Adjust to match. Don't ever manipulate
12054 line or line_base except via find_position.
12055
12056 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
12057
12058 * c-parse.in: Apply Ulrich's changes from c-parse.y.
12059 * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
12060 Regenerate.
12061
12062 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
12063
12064 * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
12065 just print "<command line>". If 'filename' is null or an
12066 empty string, print "<stdin>" for the filename.
12067 * cpplib.c (do_define): Don't print the 'location of the
12068 previous definition' message if we're still parsing the
12069 command line.
12070 (cpp_pedwarn_with_file_and_line): Always call
12071 cpp_file_line_for_message.
12072
12073 2000-01-29 Mark Mitchell <mark@codesourcery.com>
12074
12075 * flow.c (mark_regs_live_at_end): Fix typo.
12076
12077 2000-01-28 Ulrich Drepper <drepper@redhat.com>
12078
12079 * c-common.c: Adjust variable names, comments, help strings to c99.
12080 * c-lex.c: Likewise.
12081 * c-parse.y: Likewise.
12082 * c-tree.h: Likewise.
12083 * cccp.c: Likewise.
12084 * cpplib.h: Likewise.
12085 * c-decl.c: Likewise. Recognize options with names "*99" as well.
12086 * cppinit.c: Likewise.
12087
12088 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12089
12090 * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
12091 * c4x.c: Define the optab rtx values.
12092 (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
12093 (c4x_emit_libcall): Use new optab rtx values.
12094 (c4x_emit_libcall3): Likewise.
12095 (c4x_emit_libcall_mulhi): Likewise.
12096 * c4x-protos.h: Add prototypes for optab rtx values and change
12097 prototypes for above c4x_emit_libcall functions.
12098
12099 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12100
12101 * c4x.c (c4x_output_ascii): Restrict line length of output when TI
12102 syntax is used.
12103 (c4x_function_prologue): Use regnames intead of float_reg_names when
12104 TI syntax is used.
12105 (c4x_function_epilogue): Likewise.
12106 (c4x_print_operand): Likewise.
12107 * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
12108 * c4x.md (set_high): Disable for TARGET_TI.
12109
12110 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12111
12112 * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
12113 of framepointer + constant to ADDR_REGS class.
12114 * c4x.md (addqi3, addqi3_noclobber_reload): Update.
12115 * c4x.c (std_or_reg_operand): New function.
12116 * c4x-protos.h (std_or_reg_operand): Prototype it.
12117
12118 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12119
12120 * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
12121 object names as libgcc2.c.
12122 * libgcc.S: Use newly defined names.
12123
12124 Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz>
12125 * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
12126 function.
12127 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
12128 * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
12129 (FLOW_LOOP_LAST_BLOCK): Likewise.
12130
12131 2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12132
12133 * basic-block.h (struct loop): New fields 'first' and 'last'.
12134 * flow.c (flow_loops_find): Compute loop->first and loop->last.
12135 (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
12136 and loop->last to check for NOTE_INSN_LOOP_END.
12137
12138 Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com>
12139
12140 * predict.c (estimate_probability): Use the new FIRST and LAST fields
12141 of the loop descriptor rather than HEADER and LATCH. Also added
12142 missing break statements as well making some coding style modifications
12143 as suggested by Michael Hayes.
12144
12145 2000-01-28 Richard Henderson <rth@cygnus.com>
12146
12147 * flow.c (find_basic_blocks): Remove do_cleanup argument.
12148 Break out that code ...
12149 (cleanup_cfg): ... here.
12150 (commit_one_edge_insertion): Detect a return instruction being
12151 emitted to an edge. Emit a barrier following; clear fallthru.
12152 (commit_edge_insertions): Verify CFG consistency.
12153 * function.c (expand_function_start): Kill unused variable.
12154 (expand_function_end): Likewise.
12155 (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
12156 to insert the epilogue.
12157
12158 * gcse.c (gcse_main): Adjust for find_basic_blocks change.
12159 (delete_null_pointer_checks): Likewise.
12160 * output.h: Likewise.
12161 * reg-stack.c (reg_to_stack): Likewise.
12162 * toplev.c (rest_of_compilation): Likewise. Run
12163 thread_prologue_and_epilogue_insns after rebuilding the CFG.
12164
12165 2000-01-28 Richard Henderson <rth@cygnus.com>
12166
12167 * Makefile.in (flow.o): Revert 24 Jan change.
12168 * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode
12169 FUNCTION_VALUE result to DECL_RESULT's mode.
12170
12171 * haifa-sched.c (schedule_insns): Don't recompute reg info
12172 after reload.
12173
12174 2000-01-28 Zack Weinberg <zack@wolery.cumb.org>
12175
12176 * configure.in: Make --enable-cpplib the default.
12177 * configure: Regenerate.
12178 * gcc.dg/990119-1.c: No longer expected to fail.
12179
12180 2000-01-28 Bernd Schmidt <bernds@cygnus.co.uk>
12181
12182 * jump.c (jump_optimize_1): Delete an optimization that is also done
12183 by merge_blocks in flow.
12184
12185 2000-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12186
12187 * diagnostic.c (build_message_string, output_printf,
12188 line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
12189 (build_location_prefix): Fix non-literal format string.
12190
12191 2000-01-27 Richard Henderson <rth@cygnus.com>
12192
12193 * alpha.md (trunctfsf2): New.
12194
12195 2000-01-27 Andrew Hobson <ahobson@eng.mindspring.net>
12196
12197 * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
12198
12199 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
12200
12201 * cppinit.c (cpp_handle_option): Recognize C++ comments under
12202 -std=gnu89.
12203 * cpplib.c (skip_block_comment, skip_line_comment): Split code
12204 out of...
12205 (skip_comment) ... here. Permit C++ comments in system
12206 headers always. Warn about C++ comments in user code under
12207 -std=gnu89 -pedantic.
12208 (copy_comment): Use skip_comment.
12209 (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
12210 return EOF.
12211 (consider_directive_while_skipping, do_else, do_endif): Call
12212 validate_else unconditionally.
12213 (validate_else): Check CPP_PEDANTIC here. Accept non-comment
12214 text after the conditional in a system header.
12215 * cpplib.h (struct cpp_buffer): Add flag
12216 warned_cplusplus_comments.
12217
12218 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
12219
12220 * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
12221 Use unshare_all_rtl_1.
12222 (unshare_all_rtl_again): New function.
12223 (unshare_all_rtl_1): New function split out of unshare_all_rtl.
12224
12225 * function.c (purge_addressof_1): Use unshare_all_rtl_again
12226 rather than resetting the 'used' flags ourself.
12227
12228 * toplev.c (rest_of_compilation): Add current_function_decl
12229 to the unshare_all_rtl call.
12230 * tree.h: Prototype unshare_all_rtl.
12231 * rtl.h: Prototype unshare_all_rtl_again here.
12232
12233 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
12234
12235 * genoutput.c (output_prologue): Include ggc.h in generated
12236 files.
12237 * Makefile.in (insn-output.o): Depends on ggc.h.
12238
12239 2000-01-27 Ian Dall <ian@sibyl.beware.dropbear.id.au>
12240 Hans-Peter Nilsson <hp@bitrange.com>
12241
12242 * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
12243 Remove redundant include of xm-ns32k.h.
12244 * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
12245 Remove redundant include of xm-ns32k.h.
12246 * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
12247 Remove redundant include of xm-ns32k.h.
12248 * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
12249
12250 * ns32k/ns32k.h: Update comment on multiply-add instructions.
12251 (TARGET_SWITCHES): Add documentation strings.
12252 (DWARF_FRAME_REGNUM): Override default definition.
12253 (REG_CLASS_CONTENTS): Add comments.
12254 (SUBSET_P): Format to reduce line length.
12255 (SMALL_REGISTER_CLASSES): Make a run time option.
12256 (GO_IF_NONINDEXED_ADDRESS): Reformat.
12257 (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
12258 dereferencing it. Braces to avoid "ambiguous else" were misplaced.
12259 (regclass_map): fix typo in comment.
12260 * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
12261 Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
12262 (trace, reg_or_mem_operand): Delete, unused function.
12263 (calc_address_cost): Small offsets are cheaper than large ones.
12264 (expand_block_move): Generate more efficient code when bytes is a
12265 known at compile time.
12266 * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
12267 (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
12268 instead of reg_or_mem_operand.
12269
12270 * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
12271 not general_operand. Similarly use "=rm" or stricter, not "=g".
12272 For input operands, use stricter constraints than "g" if not
12273 general_operand. Similarly use stricter predicate than
12274 "general_operand" when stricter constraints than "g" are present,
12275 except for matching constraints.
12276 (movstrsi): Use "memory_operand" for operands 0 and 1.
12277 (truncsiqi2, truncsihi2, trunchiqi2): Remove.
12278 (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
12279 not reg_or_mem_operand.
12280 (udivmoddisi4): Ditto.
12281 Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
12282 Use nonimmediate_operand for operand 3, not register_operand.
12283 (udivmoddiqi4_internal): Use register_operand for operand 1, not
12284 reg_or_mem_operand.
12285
12286 2000-01-27 Fred Fish <fnf@be.com>
12287
12288 * gthr-posix.h: Fix typo; compatibily -> compatibility.
12289 * gthr-single.h: Likewise.
12290 * gthr-solaris.h: Likewise.
12291 * gthr-vxworks.h: Likewise.
12292 * gthr-win32.h: Likewise.
12293 * gthr.h: Likewise.
12294
12295 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
12296
12297 * cppinit.c: Add " (cpplib)" to end of string printed by
12298 -v / --version.
12299
12300 2000-01-27 Richard Henderson <rth@cygnus.com>
12301
12302 * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
12303 testing for a signed comparison.
12304 (alpha_emit_floatuns): New.
12305 * alpha-protos.h: Declare it.
12306 * alpha.md (floatunsdisf2, floatunsdidf2): New.
12307 (extendsfdf2): Tidy.
12308
12309 2000-01-27 Jakub Jelinek <jakub@redhat.com>
12310
12311 * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
12312 no -g option specifying debugging format, default to -gstabs+.
12313
12314 Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
12315
12316 * calls.c (special_function_p): New argument fork_or_exec.
12317 (expand_call): When profile_arc_flag is set and the function
12318 is in the fork_or_exec group, call __bb_fork_func first.
12319 * libgcc2.c, _bb module (__bb_fork_func): New function.
12320 (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
12321 output file.
12322 * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
12323 * tree.h (special_function_p): Update prototype.
12324
12325 2000-01-26 Richard Henderson <rth@cygnus.com>
12326
12327 * alpha.c (alpha_split_tfmode_pair): New.
12328 * alpha-protos.h: Declare it.
12329 * alpha.md (abstf2, negtf2): New.
12330 (movtf insn): Add input G constraint.
12331 (movtf splitter): Use alpha_split_tfmode_pair.
12332
12333 2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12334
12335 * i386/cygwin.h: PROTO -> PARAMS.
12336
12337 2000-01-26 Jakub Jelinek <jakub@redhat.com>
12338
12339 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
12340 TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
12341 using _Qp_cmp/_Q_cmp and testing the return value.
12342 (print_operand): Call reverse_condition_maybe_unordered if
12343 we are handling CCFPmode or CCFPEmode.
12344 Handle ORDERED, UN* and LTGT comparisons.
12345 * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
12346 if not TARGET_HARD_QUAD.
12347 (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
12348 bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
12349 Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
12350 Adjust gen_b* calls so that they reflect return comparison of
12351 sparc_emit_float_lib_cmp.
12352
12353 2000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12354
12355 * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
12356 incoming operands array is large enough for one more operand.
12357 (alpha_emit_xfloating_arith): Likewise.
12358
12359 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
12360
12361 * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
12362 file with one line and no trailing newline.
12363 Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
12364 * fixinc/fixtests.c (machine_name_test): Fix fencepost error
12365 checking if the match is on the line.
12366 * fixinc/gnu-regex.c: Provide regerror not __regerror.
12367
12368 2000-01-25 Richard Henderson <rth@cygnus.com>
12369
12370 * sparc.c (output_cbranch): Fix accidental squashing of the
12371 fp branch pre-delay nop.
12372
12373 2000-01-25 Richard Henderson <rth@cygnus.com>
12374
12375 * tree.def (UNNE_EXPR): Remove.
12376 * c-typeck.c (build_binary_op): Don't handle it.
12377 * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
12378
12379 * rtl.def (UNNE): Remove.
12380 (LTGT): Add.
12381 * jump.c (reverse_condition): Update accordingly.
12382 (swap_condition): Likewise.
12383 (comparison_dominates_p): Handle unordered comparisons.
12384 (reverse_condition_maybe_unordered): New.
12385 * rtl.h (reverse_condition_maybe_unordered): Declare.
12386
12387 * sparc.c (select_cc_mode): Update for UNNE/LTGT.
12388 (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
12389 * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs.
12390 * sparc.md (bltgt): New.
12391
12392 2000-01-25 Nick Clifton <nickc@redhat.com>
12393
12394 * emit-rtl.c (emit_insn): Only check machine class insns for
12395 improper emission of a RETURN.
12396
12397 2000-01-25 Richard Henderson <rth@cygnus.com>
12398
12399 * Makefile.in (flow.o): Depend on $(EXPR_H).
12400 * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
12401 duplicate the structure of diddle_return_value for keeping regs live.
12402
12403 2000-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12404
12405 * loop.c (current_loop_info): Delete.
12406 (consec_sets_invariant_p): Add loop argument, update callers.
12407 (get_condition_for_loop): Likewise.
12408 (count_nonfixed_reads, update_giv_derive): Likewise.
12409 (simplify_giv_expr, general_induction_var): Likewise.
12410 (consec_sets_giv, recombine_givs): Likewise.
12411 (move_movables): Delete loop_start and loop_end arguments,
12412 add loop argument, and update callers.
12413 (find_mem_givs, check_final_value): Likewise.
12414 (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
12415 (loop_invariant_p): Rename from invariant_p, add loop argument, and
12416 update callers.
12417 (basic_induction_var): Add loop argument, delete loop_level argument,
12418 and update callers.
12419 * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
12420 add loop argument, and update callers.
12421 (find_splittable_regs, find_splittable_givs): Likewise.
12422 (reg_dead_after_loop, loop_find_equiv_value): Likewise.
12423 (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
12424 (biv_total_increment): Delete loop_start and loop_end arguments;
12425 update callers.
12426 (precondition_loop_p): Delete loop_start and loop_info arguments;
12427 update callers.
12428 * loop.h (get_condition_for_loop): Add loop argument.
12429 (biv_total_increment): Delete loop_start and loop_end arguments.
12430 (precondition_loop_p): Delete loop_start and loop_info arguments;
12431 add loop argument.
12432 (final_biv_value): Delete loop_start and loop_end arguments;
12433 add loop argument.
12434 (final_giv_value, back_branch_in_range_p): Likewise.
12435
12436 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
12437
12438 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
12439
12440 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
12441
12442 * Makefile.in (c-gperf.h) : Change the "See" pointer to
12443 point to the new "generated_files" doc.
12444
12445 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
12446
12447 * config/fp-bit.c (_unord_f2): Fix typo.
12448
12449 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
12450
12451 * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
12452 c-typeck.c, objc/objc-act.c: Remove all references to obstack
12453 functions obsoleted by GC, such as push_obstacks_nochange,
12454 end_temporary_allocation, savealloc, saveable_tree_cons, etc.
12455 and code which existed only to decide whether or not to call
12456 them. Remove now-unused NESTED argument from start_function;
12457 all callers changed. Do not change behavior based on ggc_p.
12458 The use of the ixp_obstack in c-iterate.c and the util_obstack
12459 in objc/objc-act.c remain; these are not obsoleted by garbage
12460 collection.
12461 * c-tree.h: Update prototype for start_function.
12462
12463 * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
12464
12465 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
12466
12467 * config/mips/mips.md (zero_extendsidi2_internal): Disable for
12468 mips16.
12469
12470 2000-01-25 Richard Henderson <rth@cygnus.com>
12471
12472 * sparc-protos.h (select_cc_mode): Declare.
12473 * sparc.c (select_cc_mode): New. Handle unordered compares.
12474 (output_cbranch): Always reverse via code change. Handle
12475 unordered compares. Factor tests and string updates.
12476 * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
12477 (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
12478 * sparc.md (bunordered, bordered): New.
12479 (bungt, bunlt, buneq, bunge, bunle): New.
12480
12481 2000-01-25 Richard Henderson <rth@cygnus.com>
12482
12483 * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
12484 * ggc-common.c (ggc_add_rtx_varray_root): New.
12485 (ggc_mark_rtx_varray): New.
12486 (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr
12487 functions down below ggc_mark_foo.
12488 * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
12489
12490 2000-01-25 Richard Henderson <rth@cygnus.com>
12491
12492 * alpha.c (secondary_reload_class): Don't allocate a secondary
12493 for integral mode memories into FLOAT_REGS. Rearrange the more
12494 complicated memory expression inward.
12495
12496 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
12497
12498 * inclhack.def: Fixes to play nicer with FreeBSD, and
12499 corrections to comments.
12500 (cxx_unready): Add select expression.
12501 (irix_sockaddr): Add bypass expression.
12502 (machine_ansi_h_va_list): New fix.
12503 (stdio_va_list): No need to edit _BSD_VA_LIST_.
12504 Split out addition of "#include <stdarg.h>" to...
12505 (stdio_stdarg_h): ... here.
12506 (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply
12507 to stdlib.h also. Do not munge _BSD_SIZE_T_.
12508 (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
12509 size_t.
12510 (ultrix_ifdef): Tighten up select expression.
12511
12512 * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of
12513 re_ct and max_mach to avoid use of shell. Make printed names
12514 match names in inclhack.def. Use static copyright date.
12515 Don't count c_test and test expressions as requiring regex_t
12516 slots. Add some commentary.
12517 * inclhack.tpl: Do not include the 'This script contains N
12518 fixup scripts' line if PROGRAM is defined. Use static
12519 copyright date.
12520
12521 2000-01-24 Jason Merrill <jason@casey.cygnus.com>
12522
12523 * dwarf2out.c: include "varray.h", not dyn-string.h.
12524 (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
12525 (addr_const_to_string, addr_to_string): Lose.
12526 (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
12527 (struct dw_val_struct): val_addr is now an rtx.
12528 (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
12529 (used_rtx_varray): New varray.
12530 (dwarf2out_init): Initialize it.
12531 (save_rtx): New fn.
12532 (mem_loc_descriptor, add_const_value_attribute): Call it instead of
12533 addr_to_string.
12534 * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
12535 sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
12536 * Makefile.in (dwarf2out.o): Update dependencies.
12537
12538 2000-01-24 Richard Henderson <rth@cygnus.com>
12539
12540 * i386.c (i386_dwarf_output_addr_const): New.
12541 * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
12542
12543 * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
12544 if defined.
12545 * dwarfout.c (output_mem_loc_descriptor): Likewise.
12546 * i386.c (i386_simplify_dwarf_addr): New.
12547 * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
12548
12549 Mon Jan 24 16:56:10 2000 Jim Wilson <wilson@cygnus.com>
12550
12551 * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
12552 TYPE_STUB_DECL is NULL.
12553
12554 2000-01-24 Richard Henderson <rth@cygnus.com>
12555
12556 * builtins.c (expand_tree_builtin): Move ...
12557 * c-common.c (expand_tree_builtin): ... here.
12558
12559 2000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12560
12561 * loop.h (LOOP_INFO): New accessor macro.
12562 * basic-block.h (struct loop): Rename field `info' to `aux'.
12563 * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
12564 (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
12565 * unroll.c (loop_iterations, unroll_loop): Likewise.
12566
12567 2000-01-24 Christopher Faylor <cgf@cygnus.com>
12568
12569 * config/i386/t-cygwin: Accomodate new winsup directory layout
12570 when searching for include files.
12571
12572 2000-01-24 Richard Henderson <rth@cygnus.com>
12573
12574 * rtl.def: Add unordered fp comparisions.
12575 * tree.def: Likewise.
12576 * tree.h: Add ISO C 9x unordered fp comparision builtins.
12577
12578 * builtins.c (expand_tree_builtin): New function.
12579 * c-typeck.c (build_function_call): Use it.
12580 (build_binary_op): Support unordered compares.
12581 * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
12582
12583 * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
12584 (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
12585 * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
12586 (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
12587 * jump.c (reverse_condition): Don't abort for UNLE etc, but
12588 return UNKNOWN.
12589 (swap_condition): Handle unordered compares.
12590 (thread_jumps): Check can_reverse before reversing.
12591 * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be
12592 reversed for FP.
12593
12594 * optabs.c (can_compare_p): New argument CODE. Verify branch or
12595 setcc is present before acking for cmp_optab. Update all callers.
12596 (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
12597 * expmed.c (do_cmp_and_jump): Update for can_compare_p.
12598 * expr.c (expand_expr): Likewise. Support unordered compares.
12599 (do_jump, do_store_flag): Likewise.
12600 * expr.h (enum libfunc_index): Add unordered compares.
12601
12602 * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
12603 (DPBIT_FUNCS): Add _unord_df.
12604 * config/fp-bit.c (_unord_f2): New.
12605 * fp-test.c (main): Try unordered compare builtins.
12606
12607 * alpha-protos.h (alpha_fp_comparison_operator): Declare.
12608 * alpha.c (alpha_comparison_operator): Check mode properly.
12609 (alpha_swapped_comparison_operator): Likewise.
12610 (signed_comparison_operator): Likewise.
12611 (alpha_fp_comparison_operator): New.
12612 (alpha_emit_conditional_branch): Handle unordered compares.
12613 * alpha.h (PREDICATE_CODES): Update.
12614 * alpha.md (fp compares): Use alpha_fp_comparison_operator.
12615 (bunordered, bordered): New.
12616
12617 2000-01-24 Richard Henderson <rth@cygnus.com>
12618
12619 * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
12620 * alpha.md (movtf): New expander, insn, and splitter.
12621
12622 Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz>
12623
12624 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
12625 dead registers.
12626
12627 Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz>
12628
12629 * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
12630 (FIXED_REGISTERS, CALL_USED_REGISTERS,
12631 REG_ALLOC_ORDER): Add frame pointer
12632 (FRAME_POINTER_REGNUM): Set to 20
12633 (HARD_FRAME_POINTER_REGNUM): New macro.
12634 (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
12635 to HARD_FRAME_POINTER.
12636 (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
12637 (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
12638 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
12639 (HI_REGISTER_NAMES): Add "frame".
12640 (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
12641 (debug_reg): Handle FRAME_POINTER_REGNUM.
12642 (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
12643 GENERAL_REGS and INDEX_REGS.
12644 * i386.c (SAVED_REGS_FIRST): new macro.
12645 (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
12646 (ix86_decompose_address, memory_address_length): Likewise.
12647 (regclass_map): Add frame pointer.
12648 (call_insn_operand): Handle frame_pointer_rtx.
12649 (reg_no_sp_operand): Likewise.
12650 (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
12651 (print_operand, legitimize_pic_address): Fix formating.
12652 (ix86_compute_frame_size): Make static, update prototype, new
12653 parameters padding1, padding2, use ix86_nsaved_regs, use
12654 stack_alignment_needed.
12655 (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
12656 to HARD_FRAME_POINTER_REGNUM conversions.
12657 (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
12658 (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
12659 (print_reg): Abort on FRAME_POINTER_REGNUM
12660
12661 Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz>
12662
12663 * i386.h (PREDICATE_CODES): Add aligned_operand.
12664 * i386.c (aligned_operand): New function.
12665 (ix86_aligned_p): Kill.
12666 * i386.md (movhi_1): Emit mov for aligned operands.
12667 (promoting peep2s): Use aligned_operand.
12668
12669 2000-01-23 Zack Weinberg <zack@wolery.cumb.org>
12670
12671 * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
12672 expression to allow underscores in macro names.
12673 (fix_char_macro_defines): Increment scanning pointer.
12674
12675 2000-01-23 Richard Henderson <rth@cygnus.com>
12676
12677 * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
12678 * alpha/osf5.h: New file.
12679 * configure.in (alpha-*-osf5): Add it to tm_file.
12680
12681 * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
12682
12683 * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
12684 (alpha_emit_xfloating_cvt, function_arg): Declare.
12685 * alpha.c (alpha_emit_conditional_branch): Call
12686 alpha_emit_xfloating_compare for TFmode compares.
12687 (alpha_lookup_xfloating_lib_func): New.
12688 (alpha_compute_xfloating_mode_arg): New.
12689 (alpha_emit_xfloating_libcall): New.
12690 (alpha_emit_xfloating_arith): New.
12691 (alpha_emit_xfloating_compare): New.
12692 (alpha_emit_xfloating_cvt): New.
12693 (print_operand): Add default abort case.
12694 (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
12695 * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
12696 (BIGGEST_ALIGNMENT): Increase to 128 bits.
12697 (RETURN_IN_MEMORY): True for TF/TCmode.
12698 (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
12699 (FUNCTION_ARG): Move to function_arg.
12700 (FUNCTION_ARG_PASS_BY_REFERENCE): New.
12701 (ASM_OUTPUT_LONG_DOUBLE): New.
12702 (ASM_OUTPUT_DOUBLE): Always output bits.
12703 * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
12704 (fix_trunctfdi2, floatditf2, floatunsditf2): New.
12705 (extenddftf2, trunctfdf2): New.
12706
12707 2000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12708
12709 * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
12710 * config/sparc/sol2.h: ... here.
12711
12712 2000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12713
12714 * basic-block.h (struct loops): New field `levels'.
12715 * flow.c (flow_loops_level_compute): Traverse all outer loops.
12716 (flow_loop_level_compute): Initialise level to 1.
12717 (flow_loops_find): Set loops->levels.
12718 (flow_loops_dump): Print loops->levels.
12719
12720 2000-01-23 Richard Henderson <rth@cygnus.com>
12721
12722 * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
12723 (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
12724
12725 2000-01-23 Richard Henderson <rth@cygnus.com>
12726
12727 * i386.c (dbx_register_map, svr4_dbx_register_map): New.
12728 * i386.h (DBX_REGISTER_NUMBER): Use them.
12729 * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
12730 * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
12731 * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
12732 * i386/sequent.h: Kill incorrect comment.
12733
12734 2000-01-23 Mark Mitchell <mark@codesourcery.com>
12735
12736 * ggc-page.c (struct page_entry): Make `context_depth' an
12737 `unsigned short'.
12738 (struct globals): Likewise.
12739
12740 2000-01-23 Clinton Popetz <cpopetz@cygnus.com>
12741
12742 * loop.c (check_dbra_loop): When checking a loop for
12743 reversability, check the source of any stores to ensure
12744 they don't depend on an initial value.
12745
12746 2000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12747
12748 * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
12749
12750 2000-01-22 Zack Weinberg <zack@wolery.cumb.org>
12751
12752 * fixinc/fixincl.c: Move declarations of 'pz_fname' and
12753 'pz_scan' into scope of entire function. Only affects
12754 compiles with -DDEBUG.
12755
12756 2000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
12757
12758 * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
12759 section naming to that prior to 2000-01-07 patch.
12760 * config/mips/elf.h (UNIQUE_SECTION): Ditto.
12761 * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
12762 * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
12763 * config/i386/interix.c (UNIQUE_SECTION): Ditto.
12764 * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
12765
12766 2000-01-22 Bernd Schmidt <bernds@cygnus.co.uk>
12767
12768 * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
12769 constant.
12770
12771 2000-01-21 Jim Wilson <wilson@cygnus.com>
12772
12773 * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
12774 * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
12775
12776 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
12777
12778 * cpphash.c (change_newlines): Delete function.
12779 (struct argdata): Delete 'newlines' and 'use_count' fields.
12780 (macroexpand): Remove code referencing those fields.
12781
12782 2000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12783
12784 * loop.c (loops_info): New variable.
12785 (loop_optimize): Allocate loops->array and free it on exit.
12786 Allocate memory for loops_info and assign to each loop,
12787 replacing alloca.
12788 (find_and_verify_loops): Do not allocate loops->array.
12789
12790 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
12791
12792 * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
12793
12794 2000-01-21 Jakub Jelinek <jakub@redhat.com>
12795
12796 * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
12797 pseudos if expanded after first flow.
12798 (movdi_pic_label_ref): Likewise.
12799
12800 2000-01-20 Richard Henderson <rth@cygnus.com>
12801
12802 * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
12803
12804 2000-01-20 Zack Weinberg <zack@wolery.cumb.org>
12805
12806 * Makefile.in (fixinc.sh): Depend on specs.
12807 * fixinc/Makefile.in: Add rule to create machname.h.
12808 (fixlib.o): Depend on machname.h.
12809 * fixinc/fixtests.c (machine_name): New test.
12810 * fixinc/fixfixes.c (machine_name): New fix.
12811 * fixinc/fixlib.c (mn_get_regexps): New helper function for
12812 the machine_name test and fix.
12813 * fixinc/fixlib.h: Prototype it.
12814 * fixinc/inclhack.def (machine_name): Use the C test and fix.
12815 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
12816
12817 * gcc.c (do_spec_1) [case P]: Take care not to create
12818 identifiers with three leading or trailing underscores.
12819
12820 * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
12821 (fixincl): Don't specify libraries twice on link line.
12822 (gnu-regex.o): Remove special rule.
12823 * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
12824 defined by config.h. Do not define _REGEX_RE_COMP.
12825 (regcomp): Allocate and initialize a fastmap.
12826 * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
12827
12828 2000-01-20 Brad Lucier <lucier@math.purdue.edu>
12829
12830 * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
12831
12832 2000-01-19 Richard Henderson <rth@cygnus.com>
12833
12834 * flow.c (propagate_block): Replace FIRST, LAST and BNUM
12835 arguments with BB. Update all callers. Tidy line wrapping.
12836
12837 2000-01-19 Clinton Popetz <cpopetz@cygnus.com>
12838
12839 * emit-rtl.c (try_split): Return last_insn if we split the
12840 last_insn.
12841
12842 Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz>
12843
12844 * i386-protos.h (ix86_compute_frame_size): Remove prototype.
12845 (ix86_initial_elimination_offset): Declare.
12846 * i386.c (ix86_nsaved_regs): Break out from ...
12847 (ix86_can_use_return_insn_p): ... here.
12848 (ix86_emit_save_regs): Break out from ...
12849 (ix86_expand_prologue): ... here.
12850 (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
12851 out from ...
12852 (ix86_expand_epilogue): ... here.
12853 (ix86_compute_frame_size): Make static, add prototype.
12854 (ix86_initial_elimination_offset): Break out from ...
12855 * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
12856
12857 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12858
12859 * recog.h (OUT_FCN): Delete.
12860
12861 * vax.md: Call `get_insn_template' instead of OUT_FCN.
12862
12863 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12864
12865 * cppalloc.c: PROTO -> PARAMS.
12866 * cpperror.c: Likewise.
12867 * cppfiles.c: Likewise.
12868 * cpplib.c: Likewise.
12869 * cpplib.h: Likewise.
12870
12871 * config/arm/arm-protos.h: PROTO -> PARAMS.
12872 * config/arm/arm.c: Likewise.
12873 * config/c4x/c4x.c: Likewise.
12874 * config/fr30/fr30-protos.h: Likewise.
12875 * config/nextstep.c: Likewise.
12876 * config/pa/pa.c: Likewise.
12877 * config/pj/pj.c: Likewise.
12878 * config/rs6000/rs6000.c: Likewise.
12879 * config/v850/v850-protos.h: Likewise.
12880 * config/v850/v850.c: Likewise.
12881
12882 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12883
12884 * i370-protos.h: New file.
12885
12886 * i370.c: Include tm_p.h. Fix compile time warnings.
12887
12888 * i370.h: Move prototypes to i370-protos.h. Fix compile time
12889 warnings.
12890
12891 * i370.md: Likewise.
12892
12893 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12894
12895 * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
12896 (target_isinf, target_isnan, eisnan): Mark parameter with
12897 ATTRIBUTE_UNUSED.
12898 (eiisinf): Wrap in INFINITY.
12899 (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
12900 (ibmtoe): Remove unused variable `rndsav'.
12901
12902 Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12903
12904 * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
12905 (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
12906
12907 2000-01-19 Zack Weinberg <zack@wolery.cumb.org>
12908
12909 * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
12910 * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
12911 (fix_char_macro_defines, fix_char_macro_uses): New functions.
12912
12913 * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
12914 Recognize Emacs mode markers also.
12915 * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
12916 C++ comments in C++ headers. Call is_cxx_header only if
12917 necessary.
12918
12919 * fixinc/inclhack.def (avoid_bool): Add select for the problem and
12920 bypass for ncurses.
12921 (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
12922 (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
12923 ... these, which use the new C fixes.
12924 (math_exception): Escape literal '+' in bypass expression.
12925
12926 * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
12927 Regenerate.
12928
12929 2000-01-19 Geoff Keating <geoffk@cygnus.com>
12930
12931 * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
12932 inside the MEM.
12933
12934 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12935
12936 * loop.c (loop_optimize): Allocate loop_info structure for each loop
12937 prior to calling scan_loop.
12938
12939 Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12940
12941 * sh.c (find_barrier, gen_block_redirect): Fix indentation.
12942 (split_branches, calc_live_regs): Likewise.
12943
12944 Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12945
12946 * sh.md (fpu_single, fp_mode): New attributes.
12947
12948 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12949
12950 * loop.c (current_loop_info): Renamed from loop_info_data
12951 and changed to a pointer.
12952 (loop_optimize): Allocate loop_info structure for each loop
12953 and initialise to zero.
12954 (scan_loop): Set current_loop_info.
12955
12956 * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
12957 on iteration_var.
12958
12959 2000-01-19 Richard Henderson <rth@cygnus.com>
12960
12961 * stupid.c: Die die die.
12962 * Makefile.in (OBJS): Remove stupid.o.
12963 (stupid.o): Likewise.
12964
12965 * except.c (emit_eh_context): Don't emit USEs for stupid.
12966 * explow.c (probe_stack_range): Likewise.
12967 * flags.h (obey_regdecls): Remove.
12968 * flow.c (find_basic_blocks): Don't run try_merge_blocks
12969 when not optimizing.
12970 (life_analysis): Limit data collection when not optimizing.
12971 (mark_regs_live_at_end): Always mark the return value registers.
12972 (mark_used_regs): Remove dummy RETURN case.
12973 (print_rtl_with_bb): Don't consult obey_regdecls.
12974 * function.c (use_variable, use_variable_after): Remove.
12975 (assign_parms): Consult optimize not obey_regdecls.
12976 (expand_function_start): Don't emit USEs for stupid.
12977 (expand_function_end): Likewise.
12978 * global.c (build_insn_chain): Export.
12979 * integrate.c (expand_inline_function): Kill return-value USE
12980 handling code.
12981 * jump.c (jump_optimize_1): Do simple jump optimizations and
12982 dead code elimination.
12983 (calculate_can_reach_end): Remove check_deleted argument.
12984 (delete_insn): Patch out insns even when not optimizing.
12985 * local-alloc.c (block_alloc): Don't do tying when not optimizing.
12986 * rtl.h (use_variable, use_variable_after): Remove declarations.
12987 (build_insn_chain): Declare.
12988 * stmt.c (expand_value_return): Don't emit USEs for stupid.
12989 (expand_end_bindings): Likewise.
12990 (expand_decl): Likewise. Consult optimize not obey_regdecls.
12991 * toplev.c (obey_regdecls): Remove.
12992 (rest_of_compilation): Don't set it. Kill stupid in favour of
12993 flow1, local-alloc, and reload.
12994 (main): Don't set obey_regdecls.
12995
12996 * config/nextstep.c (handle_pragma): Likewise.
12997
12998 * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
12999
13000 * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
13001
13002 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13003
13004 * alpha-protos.h: PROTO -> PARAMS.
13005 * alpha.c: Likewise.
13006 * elf.h: Likewise.
13007 * h8300.c: Likewise.
13008 * i386-protos.h: Likewise.
13009 * i386.c: Likewise.
13010 * m32r-protos.h: Likewise.
13011 * m32r.c: Likewise.
13012 * mips.c: Likewise.
13013 * mips.md: Likewise.
13014 * gmon-sol2.c: Likewise.
13015 * sparc.c: Likewise.
13016
13017 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13018
13019 * ns32k-protos.h: New file.
13020
13021 * ns32k.c: Fix compile time warnings.
13022
13023 * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time
13024 warnings.
13025
13026 * ns32k.md: Likewise.
13027
13028 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13029
13030 * vax-protos.h: New file.
13031
13032 * vax.c: Fix compile time warnings.
13033
13034 * vax.h: Move prototypes to vax-protos.h. Fix compile time
13035 warnings.
13036
13037 * vax.md: Likewise.
13038
13039 * vaxv.md: Likewise.
13040
13041 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13042
13043 * romp-protos.h: New file.
13044
13045 * romp.c: Fix compile time warnings.
13046
13047 * romp.h: Move prototypes to romp-protos.h. Fix compile time
13048 warnings.
13049
13050 * romp.md: Likewise.
13051
13052 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13053
13054 * we32k-protos.h: New file.
13055
13056 * we32k.c: Fix compile time warnings.
13057
13058 * we32k.h: Move prototypes to we32k-protos.h. Fix compile time
13059 warnings.
13060
13061 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13062
13063 * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
13064
13065 * except.c (eh_regs): Likewise.
13066
13067 * final.c (output_operand): Likewise.
13068
13069 * fold-const.c (target_isinf, target_isnan): Likewise.
13070
13071 Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
13072
13073 * i386.h (BIGGEST_ALIGNMENT): Set to 128.
13074 (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
13075
13076 * i386.md (memstr): Do not use rep stosb for counts divisible by 4
13077 when optimize_size.
13078 (clrstrsi): Rewrite.
13079 (strsethi, strsetqi): New expanders.
13080 (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
13081 (cmpstrsi): Emit compare insn before cmpstrsi_1
13082 (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
13083 (strlensi_1): Likewise.
13084 (cmpstrsi_1): Likewise; do not output compare.
13085 (strlen expander): Do not unroll when optimizing for size.
13086 (*subsi3_carry): Rename to subsi3_carry
13087 (addqi3_cc): New pattern.
13088 * i386.h (processor_costs): Add move_ratio field.
13089 (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
13090 * i386.c (*_cost): Set move_ratio.
13091 (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
13092 (x86_expand_strlensi_1): Rewrite the main loop.
13093
13094 2000-01-17 Richard Henderson <rth@cygnus.com>
13095
13096 * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
13097 * cse.c (find_comparison_args, fold_rtx): Likewise.
13098 * integrate.c (subst_constants): Likewise.
13099 * loop.c (get_condition): Likewise.
13100
13101 * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
13102
13103 * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
13104
13105 2000-01-18 Martin v. Löwis <loewis@informatik.hu-berlin.de>
13106
13107 * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
13108 (RESTORE_WARN_FLAGS): Unpack it.
13109 Change semantic type of extension to ttype.
13110 * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
13111 * c-parse.y, c-parse.c, objc/objc-parse.y,
13112 objc/objc-parse.c: Regenerate.
13113
13114 2000-01-17 Zack Weinberg <zack@wolery.cumb.org>
13115
13116 * fixinc/fixlib.c: Add copyright notice.
13117 (compile_re): New function.
13118 * fixinc/fixlib.h: Prototype compile_re.
13119
13120 * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
13121 Use compile_re to compile regular expressions.
13122
13123 * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
13124 where the pattern matched.
13125
13126 * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
13127 use 'replace'.
13128 (ultrix_ansi_compat): Likewise.
13129 (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
13130 add egrep test.
13131 (interactv_add2, interactv_add3): Delete.
13132 (x11_sprintf): Don't use filename glob.
13133 * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
13134 Regenerate.
13135
13136 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13137
13138 * print-rtl.c: PROTO -> PARAMS.
13139 * real.c: Likewise.
13140 * reg-stack.c: Likewise.
13141 * resource.c: Likewise.
13142 * sdbout.h: Likewise.
13143 * simplify-rtx.c: Likewise.
13144 * stor-layout.c: Likewise.
13145 * stupid.c: Likewise.
13146 * xcoffout.c: Likewise.
13147 * xcoffout.h: Likewise.
13148
13149 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13150
13151 * toplev.c: PROTO -> PARAMS.
13152 * toplev.h: Likewise.
13153 * tree.c: Likewise.
13154 * tree.h: Likewise.
13155 * unroll.c: Likewise.
13156 * varasm.c: Likewise.
13157 * varray.c: Likewise.
13158 * varray.h: Likewise.
13159
13160 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13161
13162 * reload.c: PROTO -> PARAMS.
13163 * reload.h: Likewise.
13164 * reload1.c: Likewise.
13165 * reorg.c: Likewise.
13166 * resource.h: Likewise.
13167 * rtl.c: Likewise.
13168 * rtl.h: Likewise.
13169 * rtlanal.c: Likewise.
13170 * sbitmap.h: Likewise.
13171 * sdbout.c: Likewise.
13172 * stack.h: Likewise.
13173 * stmt.c: Likewise.
13174 * system.h: Likewise.
13175
13176 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13177
13178 * machmode.h: PROTO -> PARAMS.
13179 * mbchar.h: Likewise.
13180 * mips-tdump.c: Likewise.
13181 * mips-tfile.c: Likewise.
13182 * optabs.c: Likewise.
13183 * output.h: Likewise.
13184 * prefix.c: Likewise.
13185 * profile.c: Likewise.
13186 * protoize.c: Likewise.
13187 * real.h: Likewise.
13188 * recog.c: Likewise.
13189 * recog.h: Likewise.
13190 * regclass.c: Likewise.
13191 * regmove.c: Likewise.
13192 * regs.h: Likewise.
13193
13194 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13195
13196 * ggc-common.c: PROTO -> PARAMS.
13197 * ggc-page.c: Likewise.
13198 * ggc-simple.c: Likewise.
13199 * ggc.h: Likewise.
13200 * global.c: Likewise.
13201 * graph.c: Likewise.
13202 * gthr-win32.h: Likewise.
13203 * haifa-sched.c: Likewise.
13204 * halfpic.h: Likewise.
13205 * integrate.c: Likewise.
13206 * integrate.h: Likewise.
13207 * jump.c: Likewise.
13208 * lcm.c: Likewise.
13209 * local-alloc.c: Likewise.
13210 * loop.c: Likewise.
13211 * loop.h: Likewise.
13212
13213 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13214
13215 * genattr.c: PROTO -> PARAMS.
13216 * genattrtab.c: Likewise.
13217 * gencheck.c: Likewise.
13218 * gencodes.c: Likewise.
13219 * genconfig.c: Likewise.
13220 * genemit.c: Likewise.
13221 * genextract.c: Likewise.
13222 * genflags.c: Likewise.
13223 * gengenrtl.c: Likewise.
13224 * genopinit.c: Likewise.
13225 * genoutput.c: Likewise.
13226 * genpeep.c: Likewise.
13227 * genrecog.c: Likewise.
13228
13229 2000-01-16 Mark Mitchell <mark@codesourcery.com>
13230
13231 * tree.h (BINFO_VPTR_FIELD): Augment documentation.
13232
13233 2000-01-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13234
13235 * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
13236 * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
13237 * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
13238 * configure, config.in: Rebuilt.
13239
13240 2000-01-16 Zack Weinberg <zack@wolery.cumb.org>
13241
13242 * config/i386/i386.md: Add peephole to merge successive stack
13243 adjusts.
13244
13245 Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com)
13246
13247 * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
13248 instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK
13249 when walking backwards to find all the parameter loads when
13250 the basic block ends in a call.
13251
13252 2000-01-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13253
13254 * loop.c (this_loop_info): Delete.
13255 (uid_loop): Add in place of uid_loop_num. All uses updated.
13256 (loop_number_exit_count): Delete and replace with entry in loop
13257 structure. All uses updated.
13258 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13259 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13260 (loop_outer_loop): Likewise.
13261 (loop_invalid, loop_number_exit_labels): Likewise.
13262 (loop_used_count_register): Delete and replace with entry in
13263 loop_info structure.
13264 (find_and_verify_loops): Add loops argument.
13265 (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
13266 loop_end, etc. arguments with loop structure pointer. All callers
13267 changed.
13268 (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
13269 (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
13270 (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
13271 (insert_bct): Likewise.
13272 (basic_induction_var): New argument level.
13273 * loop.h (struct loop_info): Delete fields num, loops_enclosed,
13274 vtop, and cont. Add used_count_register.
13275 (uid_loop): Delete declaration.
13276 (loop_number_exit_count): Likewise.
13277 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13278 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13279 (loop_outer_loop, loop_used_count_register): Likewise.
13280 (loop_invalid, loop_number_exit_labels): Likewise.
13281 (unroll_loop): Replace loop_start and loop_end arguments
13282 with loop structure pointer.
13283 (loop_precondition_p, loop_iterations): Likewise.
13284 Include basic-block.h.
13285 * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
13286 with loop structure pointer.
13287 (loop_precondition_p, loop_iterations): Likewise.
13288 * basic-block.h (struct loop): New entries vtop, cont,
13289 cont_dominator, start, end, top, scan_start, exit_labels,
13290 exit_count.
13291 * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
13292
13293 2000-01-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
13294
13295 * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
13296
13297 2000-01-14 Nathan Sidwell <sidwell@codesourcery.com>
13298
13299 * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
13300
13301 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13302
13303 * pdp11-protos.h: New file.
13304
13305 * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile
13306 time warnings.
13307
13308 * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time
13309 warnings.
13310
13311 * pdp11.md: Likewise.
13312
13313 * 2bsd.h: Likewise.
13314
13315 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13316
13317 * mn10300-protos.h: New file.
13318
13319 * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile
13320 time warnings.
13321
13322 * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time
13323 warnings.
13324
13325 * mn10300.md: Likewise.
13326
13327 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13328
13329 * mn10200-protos.h: New file.
13330
13331 * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile
13332 time warnings.
13333
13334 * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time
13335 warnings.
13336
13337 * mn10200.md: Likewise.
13338
13339 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13340
13341 * h8300-protos.h: New file.
13342
13343 * h8300.c: Include tm_p.h. Add static prototypes. Fix compile
13344 time warnings.
13345
13346 * h8300.h: Move prototypes to h8300-protos.h. Fix compile time
13347 warnings.
13348
13349 * h8300.md: Likewise.
13350
13351 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13352
13353 * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
13354 (asm_emit_uninitialised): Likewise.
13355
13356 2000-01-13 Gavin Romig-Koch <gavin@cygnus.com>
13357
13358 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
13359 * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
13360
13361 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
13362
13363 * config/mips/mips.c (override_options): Don't turn on extra
13364 alignment for mips16.
13365
13366 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
13367
13368 * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
13369 eabi, and make sure queued POSTINCREMENT rtl is emitted at
13370 the right point.
13371
13372 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
13373
13374 * builtins.c (PAD_VARARGS_DOWN): Define.
13375 (std_expand_builtin_va_arg): Use the above macro.
13376 * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
13377 * tm.texi (Register Arguments): Document the above macro.
13378
13379 2000-01-14 Nick Clifton <nickc@cygnus.com>
13380
13381 * emit-rtl.c (emit_insn): If checking is enabled, make sure
13382 that this function has not been used to emit a jump
13383 instruction.
13384
13385 * jump.c (return_jump_1): Cope with being passed a null rtx.
13386
13387 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13388
13389 * eh-common.h: PROTO -> PARAMS.
13390 * emit-rtl.c: Likewise.
13391 * errors.c: Likewise.
13392 * errors.h: Likewise.
13393 * except.c: Likewise.
13394 * except.h: Likewise.
13395 * explow.c: Likewise.
13396 * expmed.c: Likewise.
13397 * expr.c: Likewise.
13398 * expr.h: Likewise.
13399 * final.c: Likewise.
13400 * fix-header.c: Likewise.
13401 * flow.c: Likewise.
13402 * fold-const.c: Likewise.
13403 * function.c: Likewise.
13404 * function.h: Likewise.
13405 * gcc.c: Likewise.
13406 * gcov-io.h: Likewise.
13407 * gcov.c: Likewise.
13408 * gcse.c: Likewise.
13409
13410 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13411
13412 * sh-protos.h: New file.
13413
13414 * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
13415 Add static prototypes. Fix compile time warnings.
13416
13417 * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings.
13418 * sh.md: Likewise.
13419 * elf.h: Likewise.
13420
13421 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13422
13423 * arc-protos.h: New file.
13424
13425 * arc.c: Include tm_p.h. Add static prototypes. Fix compile
13426 time warnings.
13427
13428 * arc.h: Move prototypes to arc-protos.h. Fix compile time
13429 warnings.
13430
13431 * arc.md: Likewise.
13432
13433 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13434
13435 * dsp16xx-protos.h: New file.
13436
13437 * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile
13438 time warnings.
13439
13440 * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time
13441 warnings.
13442
13443 * dsp16xx.md: Likewise.
13444
13445 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13446
13447 * convex-protos.h: New file.
13448
13449 * convex.c: Include tm_p.h. Add static prototypes. Fix compile
13450 time warnings.
13451
13452 * convex.h: Move prototypes to convex-protos.h. Fix compile time
13453 warnings.
13454
13455 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13456
13457 * elxsi-protos.h: New file.
13458
13459 * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile
13460 time warnings.
13461
13462 * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time
13463 warnings.
13464
13465 * elxsi.md: Likewise.
13466
13467 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
13468
13469 * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
13470 case for moving from HI/LO/HI_LO_REG. This makes the behavior
13471 match the comment for MIPS16.
13472
13473 Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com)
13474
13475 * flow.c (split_edge): Do not call set_block_for_insn if we
13476 do not have a basic_block_for_insn structure.
13477
13478 * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
13479 and destination functions are 32bit aligned within the trampoline.
13480 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
13481 (TRAMPOLINE_ALIGNMENT): Define.
13482
13483 * cse.c (cse_insn): When changing (set (pc) (reg)) to
13484 (set (pc) (label_ref)), verify the change creates a valid insn.
13485
13486 * fr30.c (call_operand): Tighten and rework to match rules for
13487 call RTL expressions.
13488 * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
13489 * fr30.md (call patterns): Improve constraints.
13490
13491 Thu Jan 13 23:44:03 2000 Richard Henderson <rth@cygnus.com>
13492
13493 * fr30.c (fr30_expand_epilogue): Revert last change.
13494 Use emit_jump_insn for the return insn.
13495
13496 Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com>
13497 Stan Cox <scox@cygnus.com>
13498
13499 * predict.c: New file. Preliminary infrastructure work for static
13500 branch prediction and basic block reordering.
13501 * basic-block.h: Add prototype for estimate_probability.
13502 * Makefile.in: Add rules for predict.o.
13503
13504 2000-01-13 Jason Merrill <jason@yorick.cygnus.com>
13505
13506 * fixincludes (va_list): Use __not_va_list__ for the dummy.
13507 * fixinc/*: Likewise.
13508
13509 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13510
13511 * cccp.c: PROTO -> PARAMS.
13512 * cexp.y: Likewise.
13513 * collect2.c: Likewise.
13514 * combine.c: Likewise.
13515 * convert.h: Likewise.
13516 * cse.c: Likewise.
13517 * dbxout.c: Likewise.
13518 * dbxout.h: Likewise.
13519 * diagnostic.c: Likewise.
13520 * doprint.c: Likewise.
13521 * dwarf2out.c: Likewise.
13522 * dwarf2out.h: Likewise.
13523 * dwarfout.c: Likewise.
13524 * dwarfout.h: Likewise.
13525 * dyn-string.h: Likewise.
13526
13527 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13528
13529 * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
13530 macro conditionals guarding use.
13531
13532 * dwarf2out.c: Include "tm_p.h".
13533
13534 * function.c (locate_and_pad_parm): Mark parameter with
13535 ATTRIBUTE_UNUSED.
13536 (expand_function_end): Likewise for variable `context'.
13537
13538 * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
13539
13540 2000-01-13 Nick Clifton <nickc@cygnus.com>
13541
13542 * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
13543 register to prevent compile time warnings.
13544
13545 2000-01-13 Zack Weinberg <zack@wolery.cumb.org>
13546
13547 * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
13548 to avoid -Wtraditional warning.
13549
13550 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13551
13552 * 1750a-protos.h: New file.
13553
13554 * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile
13555 time warnings.
13556
13557 * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time
13558 warnings.
13559
13560 * 1750a.md: Likewise.
13561
13562 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13563
13564 * a29k-protos.h: New file.
13565
13566 * a29k.c: Include tm_p.h. Add static prototypes. Fix compile
13567 time warnings.
13568
13569 * a29k.h: Move prototypes to a29k-protos.h. Fix compile time
13570 warnings.
13571
13572 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13573
13574 * clipper-protos.h: New file.
13575
13576 * clipper.c: Include tm_p.h. Add static prototypes. Fix compile
13577 time warnings.
13578
13579 * clipper.h: Move prototypes to clipper-protos.h. Fix compile time
13580 warnings.
13581
13582 Thu Jan 13 16:03:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
13583
13584 * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
13585
13586 2000-01-13 Nathan Sidwell <sidwell@codesourcery.com>
13587
13588 * configure.in (--enable-new-gxx-abi): New option.
13589 * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
13590 * Makefile.in (GXX_ABI_FLAG): New variable.
13591 * configure: Regenerate.
13592
13593 2000-01-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13594
13595 * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
13596 * tm.texi (FORCE_STRUCT_BLK): Document.
13597 * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
13598
13599 Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson <hp@axis.com>
13600
13601 * config/ns32k/ns32k.md: Revert Jan 9 change.
13602
13603 * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
13604 to a mode-test, if the predicate is address_operand.
13605
13606 Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com)
13607
13608 * combine.c (if_then_else_cond): Be careful about what kinds
13609 of RTL expressions are passed to operand_subword.
13610
13611 * flow.c (split_edge): If we have to insert a new jump, make
13612 sure to associate it with a basic block.
13613
13614 * flow.c (commit_one_edge_insertion): A block with one successor
13615 can end in a JUMP_INSN that is not a simplejump.
13616
13617 2000-01-12 Robert Lipe <robertl@sco.com>
13618
13619 * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
13620 (BUILD_VA_LIST_TYPE): Define.
13621 (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
13622 with crtstuff.c.
13623
13624 2000-01-12 Jason Merrill <jason@casey.cygnus.com>
13625
13626 * cccp.c (do_pragma): Add cast to (char *).
13627
13628 2000-01-12 Richard Henderson <rth@cygnus.com>
13629 Fred Fish <fnf@be.com>
13630 Jason Merrill <jason@cygnus.com>
13631
13632 * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
13633 * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
13634 * i386/beos-elf.h, i386/beos-pe.h: New files.
13635
13636 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
13637 * cross-make (SYSTEM_HEADER_DIR): Define using
13638 CROSS_SYSTEM_HEADER_DIR.
13639
13640 * gcc.c (LIBRARY_PATH_ENV): Provide default.
13641 (process_command): Use it.
13642 (main): Likewise. Kill trailing = from env vars.
13643 (build_search_list): Put it back.
13644 * collect2.c (main): Use LIBRARY_PATH_ENV.
13645
13646 * configure.in (GCC_NEED_DECLARATIONS): Add environ.
13647 * toplev.c: Use NEED_DECLARATION_ENVIRON.
13648
13649 * tm.texi (Frame Layout): Document SMALL_STACK.
13650 * c-common.c (c_common_nodes_and_builtins): Check it.
13651
13652 * system.h: Undef alloca after including glibc's <stdlib.h>,
13653 if USE_C_ALLOCA is defined.
13654
13655 * gcc.c (set_input): New fn.
13656 (main): After all input files are compiled, reset the input file
13657 info to the first.
13658
13659 * aclocal.m4 (rindex, index): If already defined, don't attempt
13660 to redefine.
13661
13662 * ginclude/varargs.h: (__va_list__): Define ifndef.
13663 * ginclude/stdarg.h: Likewise.
13664
13665 * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
13666 instead of unsigned char.
13667
13668 * hash.h (true, false, boolean): Undef before enum.
13669
13670 * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
13671 proper type of "HOST_WIDE_INT *", rather than their natural type of
13672 "unsigned HOST_WIDE_INT *".
13673
13674 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13675
13676 * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
13677
13678 * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
13679
13680 * regclass.c (choose_hard_reg_mode): Likewise.
13681
13682 * reload.c (find_valid_class, strict_memory_address_p): Likewise.
13683
13684 * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
13685
13686 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13687
13688 * c-common.c: PROTO -> PARAMS.
13689 * c-common.h: Likewise.
13690 * c-decl.c: Likewise.
13691 * c-iterate.c: Likewise.
13692 * c-lang.c: Likewise.
13693 * c-lex.c: Likewise.
13694 * c-lex.h: Likewise.
13695 * c-parse.in: Likewise.
13696 * c-pragma.c: Likewise.
13697 * c-pragma.h: Likewise.
13698 * c-tree.h: Likewise.
13699 * c-typeck.c: Likewise.
13700 * objc/objc-act.c: Likewise.
13701 * objc/objc-act.h: Likewise.
13702
13703 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13704
13705 * m88k-protos.h: New file.
13706
13707 * m88k.c: Include tm_p.h. Add static prototypes. Fix compile
13708 time warnings.
13709
13710 * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings.
13711
13712 * m88k.md: Likewise.
13713
13714 * tekXD88.h: Likewise.
13715
13716 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13717
13718 * m68k-protos.h: New file.
13719
13720 * m68k.c: Include tm_p.h. Add static prototypes. Fix compile
13721 time warnings.
13722
13723 * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings.
13724
13725 * mot3300.h: Likewise.
13726
13727 2000-01-12 Richard Earnshaw <rearnsha@arm.com>
13728
13729 * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
13730 extract_bitlst.
13731 (extract_bitlist): Declare bitlen.
13732
13733 2000-01-12 Zack Weinberg <zack@wolery.cumb.org
13734
13735 * cccp.c: Accept and ignore -lang-fortran.
13736
13737 * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
13738 qualifiers don't match at any level of pointerness.
13739
13740 2000-01-12 Robert Lipe <robertl@sco.com>
13741
13742 * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
13743
13744 2000-01-12 Bernd Schmidt <bernds@cygnus.co.uk>
13745
13746 * reload1.c (reload_reg_unavailable): New static variable.
13747 (reload_reg_free_p): Test it.
13748 (reload_reg_free_for_value_p): Test it instead of
13749 reload_reg_used.
13750 (choose_reload_regs_init): Compute it.
13751
13752 Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com)
13753
13754 * reorg.c (fill_slots_from_thread): Check modified_in_p
13755 before replacing.
13756
13757 Wed Jan 12 03:20:31 2000 John Marshall <john_w_marshall@palm.com>
13758
13759 * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
13760 these nodes even if INTERNALS is not set.
13761
13762 Wed Jan 12 09:39:22 2000 Nick Burrett <nick.burrett@btinternet.com>
13763
13764 * gcse.c (delete_null_pointer_checks_1): Cope when
13765 get_condition cannot determine the condition.
13766
13767 2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com>
13768
13769 * toplev.h (set_message_length): Declare.
13770
13771 * diagnostic.c (obstack_chunk_alloc): Define macro.
13772 (obstack_chunk_free): Likewise.
13773 (struct output_buffer): New data structure.
13774 (vmessage): Remove.
13775 (output_maximum_width): New variable.
13776 (doing_line_wrapping, set_message_length, init_output_buffer,
13777 get_output_prefix, output_space_left, emit_output_prefix,
13778 output_newline, output_append, output_puts, dump_output,
13779 vbuild_message_string, build_message_string, build_location_prefix,
13780 voutput_notice, output_printf, line_wrapper_printf,
13781 vline_wrapper_message_with_location): New functions. Implement
13782 automatic line wrapping.
13783 (v_message_with_decl): Make it handle automatic line wrapping.
13784 (v_error_with_file_and_line): Likewise.
13785 (v_warning_with_file_and_line): Likewise.
13786 (announce_function): Likewise.
13787 (default_print_error_function): Likewise.
13788
13789 2000-01-11 16:24 -0800 Zack Weinberg <zack@wolery.cumb.org>
13790
13791 * cpplib.h (struct cpp_options): Change lang_asm to char.
13792 Add lang_fortran.
13793 * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
13794 done in cpp_handle_option now.
13795 (initialize_builtins): Take out special case code used only by
13796 __STDC_VERSION__.
13797 (cpp_handle_option): Turn off trigraphs and trigraph warnings
13798 if -traditional. Recognize -lang-fortran and set
13799 lang_fortran, also turn off cplusplus_comments.
13800 (print_help): Document -lang-fortran.
13801 * cpplib.c (handle_directive): Ignore `# 123 "file"' if
13802 lang_asm. Ignore all directives other than `# 123 "file"' if
13803 CPP_PREPROCESSED.
13804 (cpp_get_token): If -traditional, don't recognize directives
13805 unless the # is in column 1.
13806 (parse_string): If lang_fortran or lang_asm, silently
13807 terminate strings ('' or "") at end of line.
13808 Remove unnecessary braces.
13809
13810 2000-01-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13811 Richard Henderson <rth@cygnus.com>
13812
13813 * resource.c (mark_referenced_resources): Mark a set strict_low_part
13814 as used.
13815 * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
13816 strict_low_part when possible.
13817
13818 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13819
13820 * alias.c: PROTO -> PARAMS.
13821 * basic-block.h: Likewise.
13822 * bitmap.c: Likewise.
13823 * bitmap.h: Likewise.
13824 * builtins.c: Likewise.
13825 * c-aux-info.c: Likewise.
13826 * caller-save.c: Likewise.
13827 * calls.c: Likewise.
13828
13829 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13830
13831 * Makefile.in (toplev.o): Depend on regs.h.
13832
13833 * output.h (tdesc_section): Prototype.
13834
13835 * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
13836
13837 * sdbout.c: Include "tm_p.h".
13838
13839 * toplev.c: Include "regs.h".
13840
13841 Tue Jan 11 11:37:58 2000 Mike Stump <mrs@wrs.com>
13842
13843 * unroll.c (unroll_loop): Add EH support.
13844
13845 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13846
13847 * pa-protos.h: New file.
13848
13849 * pa.c: Include recog.h and tm_p.h.
13850 (compute_zdepwi_operands, compute_movstrsi_length,
13851 remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
13852 find_addr_reg, import_milli): Add static prototypes.
13853 (pa_cpu_string, pa_arch_string): Constify a char*.
13854 (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
13855 (read_only_operand): Add argument `mode'.
13856 (singlemove_string, output_move_double, output_fp_move_double,
13857 output_block_move, output_and, output_ior, output_ascii,
13858 remove_useless_addtr_insns, milli_names, output_mul_insn,
13859 output_div_insn, output_mod_insn, output_arg_descriptor,
13860 output_cbranch, output_bb, output_bvb, output_dbra, ,
13861 output_millicode_call, output_call, hppa_encode_label,
13862 output_parallel_movb, output_parallel_addb): Constify a char*.
13863 (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
13864 (output_parallel_addb): Remove extra arg to `constrain_operands'
13865
13866 * pa.h: Move all prototypes to pa-protos.h.
13867 (pa_cpu_string, pa_arch_string): Constify a char*.
13868 (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
13869
13870 * pa.md: Call `function_label_operand' with mode argument.
13871 Likewise for `read_only_operand'.
13872 Fix nesting of parens in call to `symbolic_operand'.
13873
13874 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13875
13876 * i860-protos.h: New file.
13877
13878 * i860.c: Include tm_p.h. Add static prototypes. Fix compile
13879 time warnings.
13880
13881 * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings.
13882
13883 * i860.md: Likewise.
13884
13885 Tue Jan 11 18:59:35 MET 2000 Jan Hubicka <jh@suse.cz>
13886
13887 * i386.md (movstrsi expander): Rewrite.
13888 (movstrsi_1 insn): Deleted.
13889 (strmovhi, strmovqi expander): New expanders.
13890 (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
13891 * i386.c (x86_single_stringop): New global variable.
13892 * i386.h (x86_single_stringop): Declare.
13893 (TARGET_SINGLE_STRINGOP): New macro.
13894
13895 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
13896
13897 * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
13898 integer vararg POSTINCREMENT before the destination of the jump
13899 for the hard fp case.
13900 (function_arg_pass_by_reference): Pass a copy of CUM to
13901 FUNCTION_ARG.
13902
13903 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
13904 for CONSTANT_ADDRESS_P above while loop for subreg.
13905
13906 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
13907
13908 * flow.c (propagate_block): When a prologue/epilogue insn
13909 is marked dead, unconditionally clear libcall_is_dead and
13910 insn_is_dead, and only dump rtl if warnings aren't being
13911 suppressed.
13912
13913 Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz>
13914
13915 * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
13916 * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
13917 (FIXED_REGISTERS): Set dirflag as fixed.
13918 (CALL_USED_REGISTERS): Set dirflag as used.
13919 (REG_ALLOC_ORDER): Set dirflag as last one.
13920 (DIRFLAG_REG): New macro.
13921 (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
13922 (HI_REGISTER_NAMES): Add dirflag.
13923 (DEBUF_PRINT_REG): Handle dirflag.
13924 * i386.md (type attribute): New cld and str types.
13925 (length_opcode attribute): Set cld and str to 1.
13926 (memory attribute): Set str to unknown - it is not clear from the
13927 patterns.
13928 (pent_np function unit): Prefixed string operations takes 12 cycles
13929 minimally; cld takes 2 cycles.
13930 (ppro_uops attribute): Str is "many" and cld is "few".
13931 (ppro_p0 unit): Handle cld here.
13932 (k6_alux unit): Handle cld and str types.
13933 (k6_load unit): It is ocupied by str opcodes.
13934 (k6_store unit): It is ocupied by str opcodes.
13935 (athlon_decode): Str is vector decoded.
13936 (athlon_ieu): Handle str and cld.
13937 (cld pattern): New.
13938 (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
13939 (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
13940 cmpstrsi_nz_1 insn): Do not output cld instruction
13941
13942 Tue Jan 11 06:14:39 2000 David Starner <dstarner98@aasaa.ofe.org>
13943
13944 * gcc.texi (G++ and GCC): Add Java and Chill.
13945 (Bug Critera): Don't list languages.
13946
13947 * gcc.texi (Incompatibilities): No longer claim most C compilers
13948 are K&R.
13949
13950 * gcc.texi (G++ and GCC): Update other front-ends list.
13951
13952 Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com)
13953
13954 * i386.c (ix86_expand_setcc): Fix typo.
13955 (ix86_expand_movcc): Similarly.
13956
13957 * Band-aid until haifa's bitset implementation is nuked.
13958 * haifa-sched.c (extract_bitlst): New parameter for size of the
13959 bitset in bits. All callers changed. Avoid looking at undefined
13960 bits in the bitset.
13961 (edgeset_bitsize): New variable.
13962 (schedule_region): Initialize edgeset_bitsize.
13963
13964 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13965
13966 * Makefile.in (optabs.o): Depend on real.h
13967 (resource.o): Depend on insn-attr.h
13968
13969 * builtins.c (result_vector): Wrap prototype in macro conditions
13970 governing definition and use.
13971
13972 * c-common.c: Include tm_p.h.
13973
13974 * c-lex.c: Likewise.
13975
13976 * elfos.h: Constify a char*.
13977
13978 * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
13979 (get_attr_length, shorten_branches, profile_after_prologue): Mark
13980 parameter with ATTRIBUTE_UNUSED.
13981
13982 * fold-const.c (exact_real_inverse): Wrap variable `i' in
13983 CHECK_FLOAT_VALUE.
13984
13985 * haifa-sched.c (schedule_insns): Mark parameter with
13986 ATTRIBUTE_UNUSED.
13987
13988 * optabs.c: Include real.h.
13989
13990 * real.h (ereal_atof): Add prototype arguments.
13991
13992 * resource.c: Include insn-attr.h.
13993
13994 * sdbout.c (sdbout_queue_anonymous_type,
13995 sdbout_dequeue_anonymous_types): Wrap in macro
13996 SDB_ALLOW_FORWARD_REFERENCES.
13997 (sdbout_init, sdbout_start_new_source_file): Mark parameter with
13998 ATTRIBUTE_UNUSED.
13999
14000 * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
14001
14002 * stupid.c: Include tm_p.h.
14003
14004 * tree.c (real_value_from_int_cst): Mark parameter with
14005 ATTRIBUTE_UNUSED.
14006
14007 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14008
14009 * i960-protos.h: New file.
14010
14011 * i960.c: Include tm_p.h. Add static prototypes. Fix compile
14012 time warnings.
14013
14014 * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings.
14015
14016 2000-01-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
14017
14018 * combine.c (expand_field_assignment): Do not discard SUBREGs
14019 while computing nonzero_bits.
14020
14021 2000-01-09 Nick Clifton <nickc@cygnus.com>
14022
14023 * config/arm/arm.c: Fix compile time warnings about signed vs
14024 unsigned constants.
14025 * config/arm/arm.h: Fix compile time warnings about signed vs
14026 unsigned constants.
14027
14028 2000-01-09 Philip Blundell <philb@gnu.org>
14029
14030 * config/arm/arm.c (output_return_instruction): Use `ldr' rather
14031 than `ldm' with only one register.
14032 * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
14033 only one register.
14034
14035 * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
14036 clobbered.
14037
14038 Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson <hp@axis.com>
14039
14040 * config/ns32k/ns32k.md (load or push effective address): Operand 1
14041 must have SImode.
14042
14043 2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14044
14045 * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
14046 assignment used as truth value.
14047
14048 * function.c (assign_temp): Mark parameter `dont_promote' with
14049 ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro
14050 PROMOTE_FOR_CALL_ONLY.
14051
14052 * genrecog.c (write_subroutine): Mark variable `operands' with
14053 ATTRIBUTE_UNUSED.
14054
14055 * optabs.c (prepare_cmp_insn): Mark parameter `align' with
14056 ATTRIBUTE_UNUSED.
14057
14058 * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
14059 (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
14060
14061 * toplev.c (note_deferral_of_defined_inline_function): Likewise
14062 for `decl'.
14063
14064 2000-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14065
14066 * config/c4x.h: Tidy up comments.
14067 * config/c4x.c: Likewise.
14068
14069 Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com)
14070
14071 * fold-const.c (lshift_double, rshift_double): Handle
14072 shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
14073
14074 2000-01-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
14075
14076 * toplev.c (rest_of_compilation): Initialize cse_not_expected as
14077 in prepare_function_start().
14078
14079 Sat Jan 8 12:12:46 2000 Nick Clifton <nickc@cygnus.com>
14080
14081 * config/v850/v850.c (expand_epilogue): Interrupt functions no
14082 longer allocate extra stack for function calls.
14083
14084 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14085
14086 * config/c4x/c4x.md (*subqf3_set): Fix typo.
14087
14088 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14089
14090 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
14091
14092 2000-01-07 David Edelsohn <edelsohn@gnu.org>
14093
14094 * rs6000.c (processor_target_table): Add power3 as alias for 630.
14095 * aix43.h: Revert Aug 2 change.
14096 (HAS_INIT_SECTION): Define, not visible yet.
14097 (LD_INIT_SWITCH): Define, not visible yet.
14098 * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
14099
14100 * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
14101
14102 * collect2.c (main): Expand ld2 size further.
14103 (export_object_lst): Cast assignment to avoid warning.
14104 (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
14105 (scan_prog_file, COFF): Do not collect initialization or
14106 finalization functions generated for entire shared object if
14107 init/fini support present.
14108
14109 2000-01-07 Nick Clifton <nickc@cygnus.com>
14110
14111 * config/elfos.h: Tidy up formatting of marcos. Make sure
14112 that .section directives are always prefixed by a tab.
14113
14114 * config/svr4.h: Add #include "elfos.h" and remove duplicate
14115 definitions.
14116
14117 2000-01-07 Matt Austern <austern@sgi.com>
14118
14119 * fold-const.c (real_hex_to_f): Remove duplicate declaration of
14120 expon.
14121
14122 Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com)
14123
14124 * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
14125 crtstuff.c.
14126 (crtbegin.o, s-crtS): Likewise.
14127
14128 2000-01-06 Richard Henderson <rth@cygnus.com>
14129
14130 * alpha.md (adddi_2+1): Limit offset such that it will be
14131 loadable with a single ldah+lda pair.
14132 (adddi_2+2): Explicitly fail split if we can't make it work.
14133
14134 2000-01-06 Mumit Khan <khan@xraylith.wisc.edu>
14135
14136 * protoize.c: Conditionally include unistd.h.
14137 (IS_SAME_PATH_CHAR): New macro.
14138 (IS_SAME_PATH): New macro.
14139 (CPLUS_FILE_SUFFIX): New macro.
14140 (cplus_suffix): New static variable.
14141 (is_abspath): New static function.
14142 (in_system_include_dir): Handle DOS style pathnames.
14143 (file_could_be_converted): Likewise.
14144 (file_normally_convertible): Likewise.
14145 (directory_specified_p): Likewise.
14146 (file_excluded_p): Likewise.
14147 (abspath): Likewise.
14148 (shortpath): Likewise.
14149 (referenced_file_is_newer): Likewise.
14150 (save_def_or_dec): Likewise.
14151 (do_processing): Likewise.
14152 (main): Likewise.
14153 (edit_file): Likewise. Use rename instead of link.
14154 (rename_c_file): Likewise. Don't rename syscalls file.
14155 (munge_compile_params): Define null device for DOS based systems.
14156 (process_aux_info_file): Use binary mode if appliable.
14157 (edit_file): Likewise.
14158 * invoke.texi (Running Protoize): Document C++ suffixes used.
14159
14160 * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
14161 IS_DIR_SEPARATOR macros.
14162 * collect2.c: Likewise.
14163 * cppinit.c: Likewise.
14164 * dwarf2out.c: Likewise.
14165 * gcc.c: Likewise.
14166 * gcov.c: Likewise.
14167 * prefix.c: Likewise.
14168 * rtl.c: Likewise.
14169 * toplev.c: Likewise.
14170 * system.h: And move to here.
14171
14172 * prefix.c (update_path): Fix typo in variable name.
14173
14174 2000-01-06 Richard Henderson <rth@cygnus.com>
14175
14176 * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
14177 (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
14178 (count_reg_sets_1, count_reg_references): Likewise.
14179 (flow_loops_level_compute): Start counting actual loop depth at 1.
14180 (flow_loops_find): Likewise.
14181 * local-alloc.c (update_equiv_regs): Likewise.
14182 * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
14183
14184 2000-01-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
14185
14186 * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
14187 FIRST_PSEUDO_REGISTER
14188 * dwarf2out.c: Don't include frame.h
14189 * dwarfout.c: Likewise
14190 * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
14191 frame.h
14192
14193 Thu Jan 6 13:44:59 CET 2000 Jan Hubicka <jh@suse.cz>
14194
14195 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
14196 dead registers.
14197
14198 * i386.c (movsf splitter): Fix typo in my last checkin.
14199
14200 2000-01-05 Nick Clifton <nickc@cygnus.com>
14201
14202 * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
14203 own definition of this macro.
14204 (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
14205 flag_data_sections or UNIQUE_SECTION_P are true.
14206
14207 * tm.texi (UNIQUE_SECTION): Document that it can be called for
14208 unitialised data decls.
14209
14210 * config/i386/winnt.c (i386_pe_unique_section): Cope with
14211 being called for uninitialised data.
14212
14213 * config/i386/interix.c (i386_pe_unique_section): Cope with
14214 being called for uninitialised data.
14215
14216 * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
14217 for uninitialised data.
14218
14219 * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
14220 for uninitialised data.
14221
14222 * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
14223 for uninitialised data.
14224
14225 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
14226 (UNIQUE_SECTION_P): Always generate a unique section if
14227 flag_data_sections is true.
14228 (UNIQUE_SECTION): Also generate unique sections for
14229 uninitialised data.
14230 (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
14231 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
14232 named_section().
14233
14234 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14235
14236 * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
14237 SI, or DI.
14238
14239 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14240
14241 * config/c4x/c4x.md (udivqi3, divqi3): Delete.
14242 (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
14243 (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
14244 (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
14245 (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
14246
14247 * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
14248
14249 2000-01-05 11:25 -0800 Zack Weinberg <zack@rabi.columbia.edu>
14250
14251 * c-decl.c (finish_enum): Simplify code to determine minimum and
14252 maximum values of the enum, and calculate the type. Remove check
14253 for FUNCTION_DECLs in the values list, which cannot happen. Replace
14254 the DECL_INITIAL of each enumeration constant with a copy converted
14255 to the enumeration type. When updating variant types, don't bother
14256 updating the type itself.
14257
14258 * c-typeck.c (build_binary_op): Simplify conditional expressions
14259 when weeding out spurious signed-unsigned warnings. Add new
14260 spurious warning category: if the unsigned quantity is an enum
14261 and its maximum value fits in signed_type(result_type). Update
14262 commentary.
14263 (build_conditional_expr): Warn here if one alternative is signed
14264 and the other is unsigned.
14265
14266 2000-01-05 Nick Clifton <nickc@cygnus.com>
14267
14268 * config/fr30/fr30.h: Remove extraneous comments.
14269
14270 2000-01-05 Bernd Schmidt <bernds@cygnus.co.uk>
14271
14272 * reload1.c (choose_reload_regs): When disabling a reload, also
14273 set reload_spill_index to -1.
14274
14275 2000-01-04 Joel Sherrill (joel@OARcorp.com>
14276
14277 * configure.in (m68*-*-rtemscoff*): New target, formal name for
14278 old m68*-*-rtems*.
14279 (m68*-*-rtemself*): New target.
14280 (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
14281 (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
14282 (sparc*-*-rtemself*): New target.
14283 (sparc*-*-rtems*): Now elf not a.out.
14284 * config/i386/rtems.h: Include config/rtems.h.
14285 * config/i386/rtemself.h: Include config/rtems.h.
14286 * config/i960/rtems.h: Include config/rtems.h.
14287 * config/m68k/rtems.h: Include config/rtems.h.
14288 * config/m68k/rtemself.h: Include config/rtems.h.
14289 * config/mips/rtems64.h: Include config/rtems.h.
14290 * config/pa/rtems.h: Include config/rtems.h.
14291 * config/rs6000/rtems.h: Include config/rtems.h.
14292 * config/sh/rtems.h: Include config/rtems.h.
14293 * config/sh/rtemself.h: Include config/rtems.h.
14294 * config/sparc/rtems.h: Include config/rtems.h.
14295 * config/sparc/rtemself.h: Include config/rtems.h
14296
14297 Tue Jan 4 23:59:26 2000 Denis Chertykov <denisc@overta.ru>
14298
14299 * final.c (shorten_branches): Correctly compute length of
14300 asms without operands.
14301
14302 Tue Jan 4 22:55:41 2000 Steve Chamberlain <sac@pobox.com>
14303
14304 * configure.in: Add pj target.
14305 * configure: Regenerate.
14306 * config/pj: New directory.
14307 * config/pj/lib1funcs.S: New file.
14308 * config/pj/linux.h: New file.
14309 * config/pj/pj.c: New file.
14310 * config/pj/pj.md: New file.
14311 * config/pj/pjl.h: New file.
14312 * config/pj/t-pj: New file.
14313 * config/pj/xm-pj.h: New file
14314
14315 Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com)
14316
14317 * toplev.c (rest_of_compilation): Run shorten-branches before
14318 reg-stack for now.
14319
14320 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14321
14322 * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
14323 macros so that they're consistent with their names.
14324 * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14325 * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14326
14327 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14328
14329 * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
14330 modified inadvertently.
14331
14332 2000-01-04 Joel Sherrill <joel@OARcorp.com>
14333
14334 * configure.in (v850*-*-rtems*): New target.
14335 * configure: Regenerate.
14336 * config/v850/rtems.h: New file.
14337
14338 2000-01-04 Mumit Khan <khan@xraylith.wisc.edu>
14339
14340 * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
14341 (__gthread_key_create): Likewise.
14342 (__gthread_key_dtor): Likewise.
14343 (__gthread_once): Fix logic.
14344 (__gthread_key_delete): Cast away constness.
14345
14346 * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
14347 * invoke.texi: Document.
14348 * i386/mingw32.h (CPP_SPEC): Use.
14349 (LIBGCC_SPEC): Likewise.
14350 * i386/crtdll.h (LIBGCC_SPEC): Likewise.
14351
14352 2000-01-04 David Edelsohn <edelsohn@gnu.org>
14353
14354 * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
14355 (HANDLE_PRAGMA_PACK): Undefine.
14356 (SLOW_UNALIGNED_ACCESS): Define.
14357
14358 2000-01-04 David Edelsohn <edelsohn@gnu.org>
14359
14360 * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14361 to default definition.
14362 (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
14363 (store_fixed_bit_field): Call macro with word_mode and alignment.
14364 (extract_bit_field): Call macro with relevant mode and alignment.
14365 * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14366 to default definition.
14367 (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
14368 and alignment.
14369 (move_by_pieces_ninsns): Likewise.
14370 (clear_by_pieces): Likewise.
14371 (emit_push_insn): Likewise.
14372 (store_field): Call macro with relevant mode and alignment.
14373 (expand_expr): Likewise.
14374 (expand_expr_unaligned): Likewise.
14375
14376 * rs6000.h (HANDLE_PRAGMA_PACK): Define.
14377 (SLOW_UNALIGNED_ACCESS): Define.
14378 (CASE_VECTOR_MODE): Always use 32-bit offsets.
14379 (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
14380 (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
14381 (toc_section): Likewise and .toc pseudo-op.
14382 (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
14383 64-bit mode.
14384 (TEXT_SECTION_ASM_OP): Likewise.
14385 (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
14386 32-bit offsets.
14387
14388 * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
14389 * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
14390 * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
14391 * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
14392 * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
14393
14394 Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com)
14395
14396 * regclass.c: Revert my Jan 4 change to loop cost computation.
14397
14398 Tue Jan 4 19:22:39 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
14399
14400 * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
14401 compilation.
14402
14403 2000-01-04 Stan Cox <scox@cygnus.com>
14404
14405 * haifa-sched.c (build_control_flow): Change unreachable simple
14406 loop test to check if current block has only one predecessor.
14407 (find_rgns): Initialize degree. Use dest as degree index, not src.
14408
14409 2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14410
14411 * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
14412
14413 * calls.c (expand_call): Likewise for
14414 `old_stack_arg_under_construction'.
14415
14416 * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
14417
14418 * function.c (pad_to_arg_alignment): Likewise for `save_var' and
14419 `save_constant'.
14420
14421 * gcc.c (execute): Likewise for `ut' and `st'.
14422
14423 * genattrtab.c (attr_rtx): Likewise for `rt_val'.
14424
14425 * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
14426
14427 * jump.c (jump_optimize_1): Likewise for `temp2'.
14428
14429 * local-alloc.c (block_alloc): Likewise for `r1'.
14430
14431 * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
14432
14433 * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
14434 (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
14435
14436 * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
14437 and `set2'.
14438
14439 * reload.c (find_reloads): Likewise for `goal_alternative_number'
14440 and `goal_earlyclobber'.
14441
14442 * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
14443
14444 * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
14445
14446 * stupid.c (stupid_life_analysis): Likewise for `chain'.
14447
14448 * unroll.c (copy_loop_body): Likewise for `copy'.
14449
14450 * varasm.c (output_constructor): Likewise for `byte'.
14451
14452 Tue Jan 4 15:34:34 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
14453
14454 * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
14455 all FP constants for constant->reg moves.
14456 (ix86_split_to_parts): Try to convert memory address into immediate
14457 when available in the constant pool.
14458 * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
14459 moves.
14460 (LEGITIMATE_CONSTANT_P): Return 1.
14461 * i386.md (pushsf): New splitter to convert constant pool memory
14462 reference to immediate.
14463 (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
14464 reload.
14465
14466 2000-01-04 Bernd Schmidt <bernds@cygnus.co.uk>
14467
14468 * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
14469 (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
14470 ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
14471 (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
14472 rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
14473
14474 2000-01-04 Martin von Löwis <loewis@informatik.hu-berlin.de>
14475
14476 * ginclude/stdbool.h: Support compilation as C++.
14477
14478 Tue Jan 4 01:35:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
14479
14480 * fold-const.c (make_range): Don't try to reverse an unbounded range.
14481
14482 Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com)
14483
14484 * regclass.c (regclass): Properly compute loop_cost. Adjust
14485 comments.
14486
14487 * regclass.c: Fix minor whitespace problems.
14488
14489 2000-01-03 Anthony Green <green@cygnus.com>
14490
14491 * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
14492 Restore the pic register if required.
14493
14494 2000-01-03 Ulrich Drepper <drepper@cygnus.com>
14495
14496 * c-common.c (format_char_info): Update comment.
14497 (check_format_info): Recognize 'z' modifier in the same way 'Z'
14498 was recognized. Emit warning for formats new in ISO C99 only
14499 if flag_isoc9x is not set.
14500
14501 Mon Jan 3 12:59:54 2000 Mark P. Mitchell <mark@codesourcery.com>
14502
14503 * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
14504
14505 Mon Jan 3 15:33:37 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
14506
14507 * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
14508 SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
14509 (make_compound_operation): Choose cheaper alternative between
14510 ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
14511
14512 * regclass.c (op_costs): Remove global variable.
14513 (record_reg_classes): New parameter "op_costs" and "reg_pref".
14514 (record_operand_costs): Break out from ...
14515 (scan_one_insn): ... here.
14516 (dump_regclass): Make dumps nicer.
14517 (regclass): Dump preferrences choosed and changes done during passes.
14518
14519 2000-01-03 Jakub Jelinek <jakub@redhat.com>
14520
14521 * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
14522
14523 2000-01-03 Jakub Jelinek <jakub@redhat.com>
14524
14525 * config/sparc/sparc.c (gen_df_reg): New function.
14526 * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
14527 * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
14528 movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
14529 movtf_cc_reg_sp64+1): Use it.
14530
14531 2000-01-02 Mark Mitchell <mark@codesourcery.com>
14532
14533 * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
14534 copied LABEL_DECLs.
14535
14536 Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
14537
14538 * config/i386/i386.c (ix86_expand_unary_operator): Function
14539 definition made void.
14540 (ix86_expand_binary_operator): Update outdated preceding comment.
14541 * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
14542 prototype.
14543
14544 * config/i386/i386.c (override_options): Fix option-name typo.
14545
14546 2000-01-02 Mark Mitchell <mark@codesourcery.com>
14547
14548 * system.h (CEIL): Define.
14549 * builtins.c (CEIL): Remove.
14550 * expmed.c (CEIL): Likewise.
14551 * expr.c (CEIL): Likewise.
14552 * stor-layout.c (CEIL): Likewise.
14553
14554 2000-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
14555
14556 * expr.c (store_constructor_field): Fix typo introduced with last
14557 gcc2 merge.
14558
14559 2000-01-01 Mark Mitchell <mark@codesourcery.com>
14560
14561 * tree.h (BINFO_N_BASETYPES): New macro.
14562
14563 2000-01-01 Bernd Schmidt <bernds@cygnus.co.uk>
14564
14565 * expmed.c (emit_store_flag): Prevent losing a pending stack
14566 adjust the same way we prevent losing queued increments.
14567
14568 Fri Dec 31 19:10:31 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14569
14570 * function.c (update_temp_slot_address): Handle case where sum of
14571 temporary address plus offset in register is a valid address.
14572
14573 1999-12-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14574
14575 * genrecog.c (change_state) Corrected typo.
14576
14577 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14578
14579 * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
14580 getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
14581 strerror, getrlimit, setrlimit, abort): Add prototype arguments.
14582
14583 1999-12-30 Bernd Schmidt <bernds@cygnus.co.uk>
14584
14585 * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
14586 case, expand GT comparisons correctly. Fix a comment before this
14587 part of the code.
14588
14589 1999-12-30 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
14590
14591 * dwarfout.c: Include "frame.h"
14592 * dwarf2out.c: Likewise.
14593 * Makefile.in (dwarfout.o): Depend on frame.h
14594 (dwarf2out.o): Likewise.
14595
14596 1999-12-29 "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
14597
14598 Restore i386 binary compatibility in Dwarf EH info.
14599 * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
14600 value of FIRST_PSEUDO_REGISTER.
14601 * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
14602 (struct frame_state): Use DWARF_FRAME_REGISTERS.
14603 * dwarfout.c (output_reg_number): Ditto.
14604 * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
14605 (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
14606
14607 1999-12-29 Bruce Korb <autogen@linuxbox.com>
14608
14609 * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
14610 * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
14611 (<hack>_RE_CT): not needed
14612 * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
14613 rewritten to scan the file text once only
14614 "template<..." test added
14615 * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
14616 (is_cxx_header): declaration added
14617 * fixinc/fixtests.c(is_cxx_header): removed
14618 (apply_fix_p_t): removed
14619 (double_slash_test): is_cxx_header is only called once now
14620 * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
14621 * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
14622 within the templates.
14623 The borken spelling of "broken" was fixed.
14624 * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
14625 The default level depends on FIXINC_DEBUG.
14626
14627 1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14628
14629 * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
14630 Otherwise provide a declaration for atexit.
14631 (init_dummy): Make sure dummy call to atexit is nevertheless
14632 called with correct number of args.
14633
14634 * frame.c: Update comments referring to other files.
14635
14636 * libgcc2.c: Likewise.
14637
14638 1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14639
14640 * cse.c (free_element, get_element): Remove unused prototypes.
14641
14642 * fold-const.c (extract_muldiv): Initialize variables `op0' and
14643 `op1'.
14644
14645 * jump.c (invert_exp): Add explicit braces to avoid ambiguous
14646 `else' clauses.
14647
14648 Wed Dec 29 12:44:54 1999 Donald Lindsay <dlindsay@cygnus.com>
14649
14650 * configure.in,configure: case arm for mn10200-*-* now sets
14651 float_format=i32 so that float.h will correctly claim "double"
14652 to be 32 bits. Ran autoconf to generate configure from .in file.
14653
14654 Wed Dec 29 10:53:21 1999 Jeffrey A Law (law@cygnus.com)
14655
14656 * pa.md (conditional zero): If op1 is a register, force it into
14657 the same register as op0.
14658
14659 1999-12-28 Mark Mitchell <mark@codesourcery.com>
14660
14661 * tree.h (BINFO_BASETYPES): Improve documentation.
14662
14663 1999-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14664
14665 * configure.in (--enable-checking): Use a more portable `for'
14666 loop syntax.
14667
14668 1999-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14669
14670 * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
14671 arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
14672
14673 * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
14674 Delete files.
14675
14676 * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
14677 Delete descriptions.
14678
14679 * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
14680 m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
14681 m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
14682 pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
14683 xm-svr4.h: Remove all instances of sys_siglist handling.
14684
14685 1999-12-27 Jakub Jelinek <jakub@redhat.com>
14686
14687 * config/sparc/sparc.md (cmp_zero_qi,
14688 cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
14689 cmp_zero_extendqidi2_andcc_set): New patterns.
14690
14691 1999-12-28 Manfred Hollstein <mhollstein@cygnus.com>
14692
14693 * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
14694 (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
14695 (fpgnulib.c, xfgnulib.c): Add rules.
14696 * m68k/t-mot3300-gas: Likewise.
14697
14698 1999-12-27 Ian Lance Taylor <ian@zembu.com>
14699
14700 * configure.in: Avoid [[ by using test and changequote. Add
14701 changequote required by 1999-12-14 change.
14702 * configure: Rebuild.
14703
14704 1999-12-27 Clinton Popetz <cpopetz@cygnus.com>
14705
14706 * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
14707
14708 1999-12-27 Christophe Jaillet <jaillet.christophe@caramail.com>
14709
14710 * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
14711 * flow.c (find_use_as_address): Likewise.
14712 * function.c (fixup_var_refs_1): Likewise.
14713 (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
14714 * jump.c (invert_exp, redirect_exp): Likewise.
14715 * loop.c (replace_call_address): Likewise.
14716 (count_nonfixed_reads): Likewise.
14717 * rtlanal.c (modified_between_p): Likewise.
14718 (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
14719 (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
14720 * unroll.c (remap_split_bivs): Likewise.
14721
14722 1999-12-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14723
14724 * diagnostic.c (v_message_with_decl): Use .* format specifier
14725 instead of building the format specifier width manually.
14726
14727 * system.h (strsignal): Don't check HAVE_STRSIGNAL when
14728 determining whether to provide a prototype. Remove the
14729 sys_siglist clause in the conditional.
14730
14731 1999-12-23 Martin v. Löwis <loewis@informatik.hu-berlin.de>
14732
14733 * fold-const.c (operand_equal_p): Use memcmp to compare string
14734 constants.
14735 Suggested by D. J. Bernstein
14736
14737 1999-12-17 Jakub Jelinek <jakub@redhat.com>
14738
14739 * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
14740 UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
14741 compiling libgcc2.
14742 * config/mips/mips.h (TARGET_64BIT): Likewise.
14743 * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
14744 * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
14745 of {SI,DI}type and DIunion. Define these types to QI/HI modes on
14746 dsps. Give routines proper names if SI/DI modes are not used.
14747 * longlong.h: Use DWunion instead of DIunion.
14748
14749 1999-12-26 Zack Weinberg <zack@wolery.cumb.org>
14750
14751 * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
14752 GC_CHECKING, GC_ALWAYS_COLLECT.
14753 * configure.in: Allow --enable-checking with an argument
14754 listing check modes to enable.
14755 * config.in, configure: Rebuilt.
14756 * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
14757 GGC_ALWAYS_VERIFY for ggc-simple.c) only if
14758 ENABLE_GC_CHECKING. Define GGC_ALWAYS_COLLECT only if
14759 ENABLE_GC_ALWAYS_COLLECT.
14760 * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
14761 throughout.
14762 * tree.h, tree.c: Change ENABLE_CHECKING to
14763 ENABLE_TREE_CHECKING throughout.
14764
14765 Sun Dec 26 07:48:20 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14766
14767 * fold-const.c (fold_truthop): Properly check for FP RHS.
14768
14769 1999-12-24 Mark Mitchell <mark@codesourcery.com>
14770
14771 * toplev.h (note_deferall_of_defined_inline_function): Declare.
14772 * toplev.c (note_deferral_of_defined_inline_function): New
14773 function, split out from ...
14774 (rest_of_compilation): ... here. Use it.
14775
14776 Fri Dec 24 12:34:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14777
14778 * expr.c (store_constructor): Don't call clear_storage if size is
14779 variable.
14780
14781 1999-12-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14782
14783 * Makefile.in (toplev.o): Depend on loop.h.
14784
14785 * dwarfout.c: Include tm_p.h.
14786
14787 * emit-rtl.c (restore_emit_status): Mark parameter with
14788 ATTRIBUTE_UNUSED.
14789
14790 * final.c (final_scan_insn): Likewise.
14791
14792 * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
14793 flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
14794 flow_depth_first_order_compute, flow_loop_pre_header_find,
14795 flow_loop_tree_node_add, flow_loops_tree_build,
14796 flow_loop_level_compute, flow_loops_level_compute,
14797 flow_loop_outside_edge_p): Add prototypes.
14798 (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
14799
14800 * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
14801 Mark with ATTRIBUTE_NORETURN.
14802
14803 * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
14804
14805 * local-alloc.c (no_conflict_p): Likewise.
14806
14807 * loop.c (insert_bct): Hide definitions of variables with hidden
14808 usage.
14809 (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
14810
14811 * regclass.c (memory_move_secondary_cost): Mark variable `mem'
14812 with ATTRIBUTE_UNUSED.
14813 (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
14814 (reg_scan): Likewise.
14815
14816 * reload.c (find_reloads): Remove unused variables `changed'.
14817
14818 * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
14819 away const-ness.
14820 (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
14821 Remove unused variable `insn'.
14822
14823 * toplev.c: Include loop.h.
14824 (report_file_and_line): Remove unnecessary prototype.
14825
14826 * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
14827
14828 * unroll.c (biv_total_increment): Likewise.
14829
14830 Thu Dec 23 23:15:22 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
14831
14832 * reload1.c (emit_input_reload_insns): Restore old behaviour
14833 wrt. 'special' reloads.
14834
14835 1999-12-23 Zack Weinberg <zack@wolery.cumb.org>
14836
14837 * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
14838 hash.h. (cse.c): Don't depend on hashtab.h.
14839
14840 * cse.c: Don't include hashtab.h.
14841 (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
14842 of dead functions.
14843 * ggc-simple.c: Don't include hash.h.
14844
14845 1999-12-22 Jason Merrill <jason@casey.cygnus.com>
14846
14847 * dwarf2out.c (add_abstract_origin_attribute): Call
14848 gen_abstract_function on our function context.
14849
14850 Thu Dec 23 03:57:10 1999 Hans-Peter Nilsson <hp@bitrange.com>
14851
14852 * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
14853
14854 1999-12-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14855
14856 * config/c4x/c4x.c (c4x_address_cost): Add statement to default
14857 case in switch.
14858
14859 1999-12-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14860
14861 * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
14862 constraints to "a!r".
14863
14864 1999-12-21 Mark Mitchell <mark@codesourcery.com>
14865
14866 * Makefile.in (calls.o): Depend on function.h.
14867 (alias.o): Likewise.
14868
14869 1999-12-21 Bernd Schmidt <bernds@cygnus.co.uk>
14870
14871 * reload1.c (emit_reload_insns): Break out code and variables into...
14872 (input_reload_insns, other_input_address_reload_insns,
14873 other_input_reload_insns, input_address_reload_insns,
14874 inpaddr_address_reload_insns, output_reload_insns,
14875 output_address_reload_insns, outaddr_address_reload_insns,
14876 operand_reload_insns, other_operand_reload_insns,
14877 other_output_reload_insns): ... new static variables, and...
14878 (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
14879 do_output_reload): ... new functions.
14880
14881 Tue Dec 21 07:06:36 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14882
14883 * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
14884
14885 1999-12-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14886
14887 * md.texi: Add c4x constraints documentation.
14888
14889 1999-12-21 Martin v. Löwis <loewis@informatik.hu-berlin.de>
14890
14891 * config/i386/dgux.c (struct option): Rename to
14892 lang_independent_option.
14893 (struct m_options): Add description field.
14894 (output_options): Rename option type, add sep declaration, output
14895 ix86_cpu_string and ix86_arch_string only if set.
14896 (output_file_start): Rename option type.
14897
14898 Mon Dec 20 23:15:36 1999 Mike Stump <mrs@wrs.com>
14899
14900 * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
14901 stmp-int-hdrs.
14902 (libgcc2.a): Similarly.
14903
14904 Mon Dec 20 23:06:47 1999 David Edelsohn <edelsohn@gnu.org>
14905
14906 * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
14907 with W_TYPE_SIZE == 32. Do not fall through to POWER architecture
14908 for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
14909
14910 Mon Dec 20 23:02:03 1999 Jeffrey A Law (law@cygnus.com)
14911
14912 * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
14913 Remove redundant initialization of "frexpon" and "expon".
14914
14915 Mon Dec 20 15:00:04 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14916
14917 * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
14918
14919 * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
14920 (store_constructor_field, expand_expr): Pass new arg.
14921
14922 1999-12-20 Mark Mitchell <mark@codesourcery.com>
14923
14924 * Makefile.in (explow.o): Depend on function.h.
14925
14926 * stor-layout.c (set_sizetype): Fix typo.
14927
14928 1999-12-20 Bernd Schmidt <bernds@cygnus.co.uk>
14929
14930 * function.c (cfun): Renamed from current_function. All users
14931 changed.
14932 * function.h (cfun): Rename declaration as well.
14933
14934 * reload.h (struct insn_chain): Change live_throughout and dead_or_set
14935 to be of type regset_head, not regset. All users changed by adding
14936 address operator.
14937 * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
14938
14939 1999-12-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14940
14941 * config/c4x/rtems.h: New file.
14942
14943 1999-12-19 Bernd Schmidt <bernds@cygnus.co.uk>
14944
14945 * reload1.c (spill_failure): Take class of failed reload as argument
14946 and print it. Caller changed.
14947
14948 Sun Dec 19 07:50:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14949
14950 * rs6000.h (SUBTARGET_DEFAULT): New macro.
14951 (TARGET_SWITCHES): Allow subtargets to default switches.
14952 * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
14953
14954 1999-12-18 Mark Mitchell <mark@codesourcery.com>
14955
14956 * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
14957 in a main program.
14958
14959 Sat Dec 18 20:42:43 1999 Richard Henderson <rth@cygnus.com>
14960
14961 * cccp.c (main): Define __STDC_VERSION__ as necessary.
14962 * cppinit.c (cpp_handle_option): Likewise.
14963
14964 * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
14965 determine when to define.
14966
14967 Sat Dec 18 20:34:00 1999 Richard Henderson <rth@cygnus.com>
14968
14969 * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
14970 cmove with mismatched test and data modes.
14971
14972 Sat Dec 18 20:30:15 1999 Richard Henderson <rth@cygnus.com>
14973
14974 * c-typeck.c (c_expand_start_case): Don't warn for long switch
14975 in system headers.
14976
14977 Sat Dec 18 16:28:43 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14978
14979 * alias.c: Minor reformatting.
14980 * flow.c: Likewise.
14981 * regs.h: Likewise.
14982 * stor-layout.c: Likewise.
14983 * fold-const.c: Likewise.
14984 (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
14985 (struct cb_args, const_binop_1, const_binop): Pass type of arg,
14986 not arg itself.
14987 (size_int_wide): Cache nodes even if garbage collecting.
14988 (twoval_comparison_p): Reenable SAVE_EXPR case if operand
14989 of SAVE_EXPR has no side effects.
14990 * cse.c: Move a comment.
14991 * tree.c: Minor reformatting.
14992 (int_size_in_bytes): Return -1 if constant overflows.
14993
14994 Sat Dec 18 18:30:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
14995
14996 * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
14997
14998 1999-12-18 10:42 -0800 Zack Weinberg <zack@wolery.cumb.org>
14999
15000 * objc/objc-parse.c: Regenerate. This file must be rebuilt
15001 after any change to c-parse.in, even if objc-parse.y didn't
15002 change. Oops.
15003
15004 1999-12-18 David S. Miller <davem@redhat.com>
15005
15006 * toplev.c (rest_of_compilation): Restore BLOCK tree
15007 reconstruction and branch shortening changes lost in
15008 December 18th change.
15009
15010 Sat Dec 18 05:29:29 1999 Scott Bambrough <scottb@netwinder.org>
15011
15012 * config/arm/linux-elf.h: Change all instances of
15013 ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
15014 * config/arm/uclinux-elf.h: Likewise.
15015
15016 1999-12-18 Gabriel Dos Reis <gdr@codesourcery.com>
15017
15018 * toplev.c (notice, vmessage, v_message_with_file_and_line,
15019 v_message_with_decl, file_and_line_for_asm,
15020 v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
15021 verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
15022 v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
15023 v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
15024 pfatal_with_name, fatal_io_error, need_error_newline,
15025 last_error_function, last_error_tick, announce_function,
15026 default_print_error_function, print_error_function,
15027 report_error_function, fnotice, error_with_file_and_line,
15028 error_with_decl, error_for_asm, error, set_fatal_function, fatal,
15029 _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
15030 warning_with_decl, warning_for_asm, warning, pedwarn,
15031 pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
15032 diagnostic.c
15033 (compile_file): Use fnotice instead of notice. Adjust call.
15034
15035 * diagnostic.c: New file.
15036
15037 * Makefile.in (OBJS): Include diagnostic.o
15038 (diagnostic.o): Define dependence.
15039
15040 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15041
15042 * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
15043 Tweak formatting.
15044
15045 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15046
15047 * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
15048
15049 1999-12-17 13:21 -0800 Zack Weinberg <zack@rabi.columbia.edu>
15050
15051 * fixtests.c (is_cxx_header): New fn, split out of
15052 double_slash_test.
15053 (else_endif_label): Allow "#endif // comment" in C++ headers,
15054 as determined by is_cxx_header.
15055 * fixfixes.c (else_endif_label_fix): Update comment.
15056 * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
15057 a tty.
15058 * genfixes: Correct double thinko in commandline parsing.
15059 * hackshell.tpl: Generate correct sh syntax for bypass
15060 entries.
15061
15062 * inclhack.def (all): Whenever an inserted preprocessor
15063 conditional is split over multiple lines, use double
15064 backslashes in this file so the fixed header will be readable.
15065
15066 (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
15067 and add bypass entry for correct version of this header.
15068 (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
15069 (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
15070
15071 (hpux8_bogus_inlines): New fix, split from...
15072 (ultrix_atof_param) ... here.
15073 (math_expression): Add bypass entry keyed to glibc comment
15074 indicating the problem has been dealt with; disable
15075 unnecessary sed operations; update commentary.
15076 (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
15077 add select and bypass entries, simplify shell operation.
15078 (math_huge_val_ifndef): Split from math_gcc_ifndefs.
15079
15080 (ip_missing_semi, rs6000_param, tinfo_cplusplus,
15081 ultrix_atof_param): Add select entry.
15082 (stdio_va_list, sunos_mather_decl): Add bypass entry.
15083 (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
15084 comments with the fixes they describe.
15085
15086 * c-parse.in (string action): Do not warn about ANSI string
15087 concatenation in system headers. Affects C parser only.
15088 * c-parse.y, c-parse.c, c-parse.h: Rebuild.
15089
15090 1999-12-16 Jakub Jelinek <jakub@redhat.com>
15091
15092 * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
15093 compiling libgcc2 the macro depends always on arch cpp defines.
15094
15095 Fri Dec 17 10:34:16 1999 Richard Earnshaw <rearnsha@arm.com>
15096
15097 * loop.c (insert_loop_mem): Don't record MEMs from inside
15098 EXPR_LISTs.
15099
15100 Fri Dec 17 12:08:11 MET 1999 Jan Hubicka <hubicka@freesoftr.cz>
15101
15102 * regclass.c (regclass): Do not use flowgraph when not optimizing.
15103
15104 * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
15105 notes too, create one when replacement failed, attempt to simplify
15106 resulting notes.
15107 (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
15108 or REG_EQUIV notes.
15109
15110 1999-12-16 Mark Mitchell <mark@codesourcery.com>
15111
15112 * crtstuff.c (__dso_handle): Declare.
15113 (__cxa_finalize): Likewise.
15114 (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
15115 non-NULL.
15116
15117 * invoke.texi: Document -fuse-cxa-atexit.
15118
15119 * tree.h (ptr_type_node): Document.
15120 (const_ptr_type_node): Likewise.
15121
15122 Fri Dec 17 01:32:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15123
15124 * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
15125 (optimize_reg_copy_2): Likewise.
15126 (optimize_reg_copy_3): Likewise.
15127 (fixup_match_2): Likewise.
15128 (regmove_optimize): Likewise.
15129 (fixup_match_1): Liekwise.
15130
15131 * i386.md (HI to SImode promoting splitters): Rewrite.
15132 (pushsf mem peep2): New.
15133 (testhi to andhi peep2): Remove.
15134 * i386.h (x86_promote_QImode): New.
15135 (TARGET_PROMOTE_QImode): New.
15136 (PREDICATE_CODES): Add promotable_binary_operator.
15137 * i386.c (x86_promote_QImode0: New.
15138 (promotable_binary_operator): New.
15139 * i386-protos.h (promotable_binary_operator): New.
15140
15141 * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
15142 condition.
15143 (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
15144
15145 1999-12-16 Mark Mitchell <mark@codesourcery.com>
15146
15147 * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
15148 * function.c (insert_block_after_note): Remove.
15149 (retrofit_block): Likewise.
15150 (identify_blocks): Fix indentation.
15151 (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
15152 NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
15153 * function.h (insert_block_after_note): Remove prototype.
15154 (retrofit_block): Likewise.
15155 * integrate.c (expand_inline_function): Don't call
15156 find_loop_tree_blocks. Use expand_start_bindings_and_block, not
15157 just expand_start_bindings. Use the block_map to remap old
15158 NOTE_BLOCKs to new ones.
15159 (integrate_decl_tree): Keep track of remapped blocks.
15160 * integrate.h (struct inline_remap): Add block_map.
15161 * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set
15162 NOTE_BLOCK on the notes.
15163 (expand_start_bindings): Rename to ...
15164 (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK.
15165 (expand_end_bindings): Set NOTE_BLOCK.
15166 * toplev.c (rest_of_compilation): In function-at-a-time-mode,
15167 reconstruct the BLOCK tree.
15168 * tree.h (expand_start_bindings): Macroize. Call ...
15169 (expand_start_bindings_and_block): New function.
15170
15171 1999-12-16 Jakub Jelinek <jakub@redhat.com>
15172
15173 * config/sparc/sparc.c (print_operand): Cast fprintf arguments
15174 to match the format.
15175
15176 1999-12-16 David S. Miller <davem@redhat.com>
15177
15178 * expr.c (emit_move_insn_1): Only emit clobbers if one of
15179 the outputs is a SUBREG.
15180 * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
15181 change.
15182
15183 * config/sparc/sparc.c (epilogue_renumber): Add default case
15184 to switch stmt.
15185
15186 Thu Dec 16 11:33:57 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15187
15188 * toplev.c (rest_of_compilation): Run branch shortening after
15189 reg-stack.
15190
15191 * regclass.c (loop_depth): Remove
15192 (scan_one_insn): Do not handle LOOP_NOTE insns.
15193 (regclass): Go through basic blocks and set loop_cost
15194
15195 Thu Dec 16 02:56:25 1999 Zack Weinberg <zack@bitmover.com>
15196
15197 * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
15198
15199 Thu Dec 16 10:43:35 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15200
15201 * i386.md (movqi): Use "nonimmediate_operand" for output operand.
15202 (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
15203 (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
15204
15205 Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com)
15206
15207 * loop.c (insert_loop_mem): Ignore memory clobbers.
15208
15209 * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
15210 to (OP A B).
15211
15212 Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com)
15213
15214 * profile.c: Remove redundant #include "output.h".
15215
15216 * h8300.md (HImode preinc peephole): Fix typo.
15217
15218 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
15219
15220 * function.c (retrofit_block): Abort if we don't find a suitable insn.
15221 (insert_block_after_note): Abort if we don't have a previous block.
15222 Remove FN parameter.
15223 * function.h: Adjust.
15224
15225 1999-12-15 Mark Mitchell <mark@codesourcery.com>
15226
15227 * builtins.c (expand_builtin_mathfn): Make sure not to expand the
15228 argument more than once.
15229
15230 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
15231
15232 * stmt.c (expand_decl): Expand upper bound of a dynamic array.
15233
15234 1999-12-15 Jakub Jelinek <jakub@redhat.com>
15235
15236 * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
15237
15238 Wed Dec 15 16:11:55 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15239
15240 * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
15241 (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
15242 update stack_alignment_needed.
15243 (prepare_function_start): Initialize stack_alignment_needed
15244 * function.h (struct function): Add field stack_alignment_needed.
15245
15246 Wed Dec 15 14:55:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15247
15248 * caller-save.c (insert_one_insn): Returns struct insn_chain *.
15249 Handle live_throughout / dead_or_set instead of live_before /
15250 live_after.
15251 (save_call_clobbered_regs): Get register livenessinformation from
15252 chain->live_throughout.
15253 (add_stored_regs): New function.
15254 (insert_restore, insert_save): Add restored / saved registers to
15255 dead_or_set.
15256 * global.c (reg_dies): New parameter chain.
15257 (reg_becomes_live): Third parameter is regs_set now.
15258 Changed all callers.
15259 (reg_dies): New parameter chain. Changed all callers.
15260 (build_insn_chain): Set live_throughout instead of
15261 live_before / live_after.
15262 * reload.h (struct insn_chain): Replace members live_before /
15263 live_after with live_throughout / dead_or_set.
15264 * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
15265 instead of live_before / live_after.
15266 (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
15267 (order_regs_for_reload, find_reg, finish_spills): Likewise.
15268 (choose_reload_regs_init): Likewise.
15269 * stupid.c (current_chain, find_clobbered_regs): Delete.
15270 (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
15271 instead of chain->live_before / chain->live_after.
15272 (mark_hard_ref): New function.
15273 (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
15274
15275 1999-12-15 David S. Miller <davem@redhat.com>
15276
15277 * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
15278
15279 Wed Dec 15 15:05:30 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15280
15281 * flow.c (calculate_loop_depth): Make global, remove prototype,
15282 rewrite to use new loop infrastructure.
15283 (find_basic_block): Remove calculate_loop_depth call.
15284 * toplev.c (rest_of_compilation): Call find_basic_block.
15285 * output.h (calculate_loop_depth): Declare.
15286
15287 * flow.c (dump_flow_info): Dump loop_depth.
15288 (flow_loops_nodes_find): Increase loop_depth for basic block in the
15289 body.
15290 (flow_loops_find): Initialize the loop_depth for each basic block.
15291
15292 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
15293
15294 * tree.c (decl_function_context): Handle virtual functions.
15295
15296 * tlink.c (scan_linker_output): Don't look in demangled name when
15297 looking for linker output keywords.
15298
15299 * dwarfout.c (output_type): We can defer namespace-scope classes.
15300
15301 Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com)
15302
15303 * regclass.c (record_reg_classes): Update comment for merging
15304 register class preferences in reg->reg copies. Tighten conditions
15305 for merging register class preferences in reg->reg copies.
15306
15307 Wed Dec 15 02:19:32 1999 David Edelsohn <edelsohn@gnu.org>
15308
15309 * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
15310
15311 1999-12-14 Geoff Keating <geoffk@cygnus.com>
15312
15313 * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
15314 (INIT_SECTION_ASM_OP): Delete.
15315 (FINI_SECTION_ASM_OP): Delete.
15316 (STARTFILE_SPEC): Define to hold just crtbegin.o.
15317
15318 1999-12-14 Jason Merrill <jason@casey.cygnus.com>
15319
15320 * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
15321 the abstract origin wasn't emitted.
15322
15323 * dwarf2out.c (class_scope_p): New fn.
15324 (gen_subprogram_die): Use it.
15325 (gen_variable_die): Use it. Tweak logic.
15326 (gen_struct_or_union_type_die): Check context_die to determine
15327 if we're function-local.
15328 (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
15329
15330 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
15331
15332 * loop.c (check_dbra_loop): Can't reverse a biv that has
15333 maybe_multiple set.
15334
15335 1999-12-14 Nick Clifton <nickc@cygnus.com>
15336
15337 * config/arm/arm.c: Add support for -mcpu=arm720 command line
15338 switch.
15339
15340 Tue Dec 14 18:13:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15341
15342 * loop.c (strength_reduce): Fix sign of giv lifetime calculation
15343 for givs made from biv increments.
15344
15345 Tue Dec 14 08:11:27 1999 Richard Henderson <rth@cygnus.com>
15346
15347 * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
15348 * alpha.c (override_options): Recognize -mcpu=ev67.
15349 * alpha.h (CPP_CPU_EV67_SPEC): New.
15350 (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
15351 (EXTRA_SPECS): Update.
15352
15353 Tue Dec 14 08:04:28 1999 Richard Henderson <rth@cygnus.com>
15354
15355 * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
15356 appropriate for -lang-c89 and -std=*.
15357 * cppinit.c (cpp_handle_option): Likewise.
15358 (new_pending_define): New, split out from cpp_handle_option.
15359 * gcc.c (default_compilers): Don't define __STRICT_ANSI__
15360 or enable trigraphs for -ansi/-std=*.
15361
15362 * ginclude/stdarg.h (__va_copy): New.
15363 (va_copy): Don't define for C89.
15364
15365 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz <cpopetz@cygnus.com>
15366
15367 * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
15368 for long long multiply-accumulate.
15369
15370 Tue Dec 14 13:51:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15371
15372 * regclass.c (scan_one_insn): Set loop_cost to 1 when
15373 optimizing for size.
15374
15375 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
15376
15377 * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
15378 if something changed. Back out that part of yesterday's changes.
15379
15380 * loop.c (loop_max_reg): New static variable.
15381 (loop_optimize): Initialize it. Eliminate one unnecessary call to
15382 max_reg_num.
15383 (scan_loop): Call reg_scan_update whenever we may have added new
15384 registers, and update loop_max_reg.
15385
15386 Tue Dec 14 12:07:29 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15387
15388 * regclass.c (record_reg_classes): Do not do the copying preferrencing
15389 when source does not die.
15390
15391 * regclass.c (record_reg_classes): Handle INOUT operands propertly.
15392
15393 1999-12-14 Jakub Jelinek <jakub@redhat.com>
15394
15395 * config/sparc/linux64.h (TARGET_LIVE_G0,
15396 TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
15397 variants on Linux.
15398 * config/sparc/linux.h (TARGET_LIVE_G0,
15399 TARGET_BROKEN_SAVERESTORE): Likewise.
15400 * config/sparc/linux-aout.h (TARGET_LIVE_G0,
15401 TARGET_BROKEN_SAVERESTORE): Likewise.
15402
15403 * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
15404 (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
15405 not %g2.
15406 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
15407 as sparc64 block profiling register.
15408 * config/sparc/sparc.c (sparc_override_options): Allow block
15409 profiling with -m32.
15410 (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
15411 profiling register.
15412 * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
15413 macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
15414 * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
15415
15416 * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
15417 for sparc64.
15418 * config/sparc/sparc.h: Likewise.
15419 * config/sparc/xm-sysv4-64.h: Likewise.
15420 * config/float-sparc.h: Likewise.
15421 * glimits.h: Likewise.
15422 * longlong.h: Likewise.
15423
15424 * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
15425 (ASM_IDENTIFY_GCC): Remove.
15426
15427 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
15428
15429 * combine.c (combine_simplify_rtx): Don't make shared rtl.
15430 (simplify_logical): Likewise.
15431
15432 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
15433
15434 * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
15435 * cppfiles.c (INO_T_EQ): Likewise.
15436
15437 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
15438
15439 * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
15440 * i386/mingw32.h (LIB_SPEC): Likewise.
15441 (STARTFILE_SPEC): Likewise.
15442 * i386/uwin.h (LIB_SPEC): Likewise.
15443 (STARTFILE_SPEC): Likewise.
15444
15445 * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
15446 * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
15447
15448 Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com)
15449
15450 * combine.c (combine_simplify_rtx): Fix order of checks for
15451 (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
15452
15453 1999-12-13 Clinton Popetz <cpopetz@cygnus.com>
15454
15455 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out
15456 12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
15457
15458 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
15459
15460 * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
15461 defined.
15462 * regclass.c (inv_reg_alloc_order): New array.
15463 (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
15464
15465 * reload.h (struct insn_chain): Delete fields group_size, group_mode,
15466 counted_for_groups, counted_for_nongroups. Add fields rld and
15467 n_reloads.
15468 * reload.c (push_secondary_reload): Don't set nongroup field of
15469 new reloads.
15470 (push_reload): Likewise.
15471 (find_reloads): Delete code to compute nongroup fields.
15472 * reload1.c (reload_insn_firstobj): New static variable.
15473 (pseudos_counted, spilled_pseudos): Now of type regset_head. All
15474 users changed.
15475 (calculate_needs, find_tworeg_group, find_group, possible_group_p,
15476 count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
15477 dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
15478 functions.
15479 (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
15480 functions.
15481 (struct hard_reg_n_uses): Deleted.
15482 (potential_reload_regs): Deleted.
15483 (init_reload): Initialize spilled_pseudos and pseudos_counted.
15484 (reload): Don't try to allocate reload registers if we already know
15485 we have to make another pass. Call select_reload_regs. Free memory
15486 starting with reload_firstobj when starting another pass.
15487 Don't allocate spilled_pseudos.
15488 (calculate_needs_all_insns): Call copy_reloads for an insn that
15489 needs reloads; don't call calculate_needs.
15490 (spill_cost): New static array.
15491 (used_spill_regs_local): New static variable.
15492 (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
15493 to compute potential_reload_regs.
15494 (find_reload_regs): Completely rewritten to use find_reg.
15495 (allocate_reload_reg): Don't test counted_for_groups or
15496 counted_for_nongroups. Lose NOERROR arg and code to give an error;
15497 all cllers changed.
15498 (choose_reload_regs): Add fallback code that uses the existing
15499 register allocation from find_reload_regs.
15500
15501 Mon Dec 13 00:54:14 1999 Philippe De Muyter <phdm@macqel.be>
15502
15503 * flow.c (create_edge_list): Cast xmalloc return value.
15504
15505 Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com)
15506
15507 * doprnt.c: Remove incorrect comment closure.
15508
15509 * cse.c: Fix a few minor whitespace goofs.
15510
15511 1999-12-13 Don Bowman <don@pixstream.com>
15512
15513 * mips/vxworks.h: Fix problem with comment termination.
15514 (EXTRA_SECTIONS): Add in_sbss.
15515 (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
15516
15517 1999-12-12 David S. Miller <davem@redhat.com>
15518
15519 * cse.c (struct cse_reg_info): Add hash_next member,
15520 reorder rest of struct for better packing on 64-bit
15521 hosts.
15522 (cse_reg_info_tree): Kill.
15523 (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
15524 REGHASH_FN): New custom pow2 hash mechanism.
15525 (NBUCKETS): Kill.
15526 (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
15527 use a pow2 hash table.
15528 (get_cse_reg_info): Rework to use new REGHASH.
15529 (new_basic_block): Likewise, use HASH_SIZE, and inline
15530 free_element call.
15531 (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
15532 and inline free_element call.
15533 (lookup_as_function, insert, flush_hash_table, invalidate,
15534 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
15535 invalidate_for_call, use_related_value, find_comparison_args,
15536 fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
15537 (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
15538 get_element): Kill.
15539
15540 Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com)
15541
15542 * cse.c (cse_basic_block): Free qty_table consistently.
15543
15544 1999-12-12 David S. Miller <davem@redhat.com>
15545 Jakub Jelinek <jakub@redhat.com>
15546
15547 * config/sparc/sparc.md (movtf reg/reg split): Don't generate
15548 SUBREGs by hand, gen the appropriate hard reg directly.
15549 (movtf reg/mem split): Likewise and alter_subreg on destination
15550 if necessary.
15551 (movtf mem/reg split): Similarly.
15552 (movdf_cc_sp64): Rename from hidden pattern.
15553 (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
15554 (movtf_cc_sp64, following split): New pattern and splitter.
15555 (movdf_cc_reg_sp64): Rename from hidden pattern.
15556 (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
15557 TARGET_HARD_QUAD.
15558 (movtf_cc_reg_sp64, following split): New pattern and splitter.
15559
15560 1999-12-12 Stephen L Moshier <moshier@mediaone.net>
15561
15562 * loop.c (load_mems): Don't hoist written floating point mem
15563 if -ffloat-store.
15564
15565 1999-12-12 Mark Mitchell <mark@codesourcery.com>
15566
15567 * except.h (struct eh_queue): Add `next' pointer.
15568 (struct eh_status): Make x_ehqueue a pointer.
15569 (push_ehqueue): Declare.
15570 (pop_ehqueue): Likewise.
15571 * except.c (expand_eh_region_end): Adjust now that ehqueue is a
15572 pointer.
15573 (expand_fixup_region_end): Likewise.
15574 (expand_leftover_cleanups): Likewise.
15575 (push_ehqueue): Define.
15576 (pop_ehqueue): Likewise.
15577 (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
15578 than doing it inline.
15579 (expand_start_all_catch): Adjust now that ehqueue is a
15580 pointer.
15581 (mark_eh_queue): Mark all level of the queue.
15582 (mark_eh_status): Adjust now that ehqueue is a
15583 pointer.
15584 (init_eh_for_function): Allocate ehqueue.
15585 (free_eh_status): Free it.
15586 * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
15587 expansion for a fixup.
15588
15589 1999-12-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15590
15591 * gthr-single.h (__gthread_active_p): Add prototype arguments.
15592
15593 * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
15594 (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
15595 __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
15596 function_ptr, getpagesize, __enable_execute_stack,
15597 __enable_execute_stack, __clear_insn_cache,
15598 __enable_execute_stack, __do_global_dtors, __do_global_ctors,
15599 _cleanup, _exit, __default_terminate, __terminate_func,
15600 __terminate, __empty, __throw, new_eh_context,
15601 eh_context_initialize, eh_context_static, eh_context_specific,
15602 get_eh_context, __get_eh_context, __get_eh_info,
15603 init_reg_size_table, eh_threads_initialize,
15604 __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
15605 __unwinding_cleanup, throw_helper, __throw, __rethrow,
15606 __pure_virtual): Add prototype arguments.
15607 (__bb_exit_func): Cast a sizeof to long when comparing against one.
15608 Cast a signed value to unsigned long when comparing against one.
15609 (new_eh_context): Wrap in _GTHREADS macro.
15610 (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
15611 declaration.
15612 (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
15613 (throw_helper): Initialize variables `handler_p' and `pc_p'.
15614
15615 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15616
15617 * combine.c (record_promoted_value): Remove unused variable
15618 `links2'.
15619
15620 * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
15621
15622 * global.c (record_conflicts): Likewise for `j'.
15623
15624 * genoutput.c (output_insn_data): Don't unnecessarily cast away
15625 const-ness.
15626
15627 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15628
15629 * i386-protos.h (output_387_binary_op, output_fix_trunc,
15630 output_fp_compare): Constify a char*.
15631
15632 * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
15633 static prototypes.
15634 (override_options, ix86_comp_type_attributes, print_operand,
15635 output_387_binary_op, output_fix_trunc, output_fp_compare):
15636 Constify a char*.
15637 (ix86_sched_reorder): Mark parameter `clock_var' with
15638 ATTRIBUTE_UNUSED.
15639
15640 * i386.h (DEBUG_PRINT_REG): Constify a char*.
15641
15642 Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
15643
15644 * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
15645 operand, for use in the Java front-end.
15646
15647 1999-12-10 Ben Collins <bcollins@debian.org>
15648
15649 * configure.in: Fix typo for "-64" in 64bit as check.
15650 * configure: Rebuilt.
15651
15652 1999-12-10 Jakub Jelinek <jakub@redhat.com>
15653
15654 * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
15655 appropriate.
15656
15657 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15658
15659 * c-parse.in (string): With -Wtraditional, warn if ANSI string
15660 concatenation is utilized.
15661
15662 * invoke.texi (-Wtraditional): Document it.
15663
15664 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15665
15666 * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
15667 Cast a ptrdiff_t to long and pass it to printf with %ld.
15668
15669 1999-12-10 Geoff Keating <geoffk@cygnus.com>
15670
15671 * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
15672 68881, we have no 68881 registers at all.
15673 (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
15674 value in a 68881 register if it is available.
15675
15676 1999-12-10 Clinton Popetz <cpopetz@cygnus.com>
15677
15678 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
15679 for long long multiply-accumulate.
15680
15681 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
15682
15683 * loop.c (insert_loop_mem): Undo last change.
15684
15685 1999-12-10 David S. Miller <davem@redhat.com>
15686
15687 * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
15688 New functions.
15689 * config/sparc/sparc-protos.h: Add them.
15690 * config/sparc/sparc.h: Add them to PREDICATE_CODES.
15691 (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
15692 constraints which use those helpers.
15693 (EXTRA_CONSTRAINT): Use this new macro.
15694 * md.texi: Update sparc target constraints documentation.
15695 * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
15696 movsf_const_high, movsf_const_lo, movsf_insn): Delete.
15697 (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
15698 movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
15699 (movsf high/lo_sum split): Rework for new patterns.
15700 (movsf expander): Allow storing fp_zero to memory if ! live_g0.
15701
15702 1999-12-09 Gavin Romig-Koch <gavin@cetus.cygnus.com>
15703
15704 * c-common.c (c_common_nodes_and_builtins):
15705 Create __builtin_ptrdiff_t and __builtin_size_t.
15706
15707 Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com)
15708
15709 * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
15710
15711 Fri Dec 10 00:53:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15712
15713 * regclass.c (globalize_reg): Re-instate test that allows
15714 fixed registers to be declared as a variable even after functions
15715 are defined.
15716
15717 Fri Dec 10 00:52:13 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15718
15719 * i386.md (cpu attribute): Add "athlon".
15720 (athlon_decode): New attribute.
15721 (Athlon scheduling units definitions): New.
15722 (fcmp and shld patterns): Set athlon_decode to "vector".
15723 * i386.c (athlon_cost): New.
15724 (m_ATHLON): New.
15725 (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
15726 x86_use_sahf): Set for Athlon.
15727 (x86_use_fiop): Unset for Athlon.
15728 (override_options): Define Athlon alignments and "athlon" name.
15729 (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
15730 * i386.h (TARGET_ATHLON): New.
15731 (enum processor_type): Add PROCESSOR_ATHLON.
15732 (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
15733 for CPU_DEFAULT==5
15734 (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
15735
15736 1999-12-09 Andreas Jaeger <aj@suse.de>
15737
15738 * loop.c (record_biv): Declare parameter as int.
15739
15740 * config/i386/i386-protos.h: Declare long_memory_operand.
15741
15742 1999-12-09 Mark Mitchell <mark@codesourcery.com>
15743
15744 * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
15745 EXPR_WITH_FILE_LOCATION.
15746
15747 Thu Dec 9 11:36:24 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15748
15749 * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
15750 in expander.
15751
15752 * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
15753
15754 * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
15755 updating code.
15756
15757 1999-12-09 Jakub Jelinek <jakub@redhat.com>
15758
15759 * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
15760 default on linux64 again.
15761 * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
15762 models for multilibing.
15763 * genmultilib: Accept | as alternative separator within a set in
15764 MULTILIB_OPTIONS.
15765
15766 * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
15767
15768 * calls.c (precompute_arguments): Make sure initial_value contains
15769 value pseudo which CSE expects.
15770 * cse.c (struct set): New entry orig_src.
15771 (cse_insn): Set it early on entry, use it for libcall EQUIV note
15772 replacement.
15773
15774 Wed Dec 8 22:24:15 1999 Richard Henderson <rth@cygnus.com>
15775
15776 * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
15777
15778 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
15779
15780 * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
15781
15782 1999-12-08 Jakub Jelinek <jakub@redhat.com>
15783
15784 * config/sparc/sparc.c (ultra_cmove_results_ready_p,
15785 ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
15786
15787 * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
15788 if TARGET_ARCH32.
15789
15790 * longlong.h: Merge in changes from glibc.
15791 Also don't clobber %g2 register in 32bit SPARC assembly, so that
15792 -mno-app-regs libgcc can be compiled.
15793 * libgcc2.c: Add defines so that the updated longlong.h
15794 can be used in libgcc2.a. Also, make sure on most architectures
15795 (at least on all which have optimized code in longlong.h defined
15796 for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
15797
15798 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
15799
15800 * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
15801 `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
15802 * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
15803 is GNU ld.
15804 * configure: Rebuilt.
15805
15806 Wed Dec 8 03:45:40 1999 Richard Henderson <rth@cygnus.com>
15807
15808 * alpha.c (secondary_reload_class): For !BWX, sub-simode
15809 outputs require a register.
15810
15811 1999-12-08 Brendan Kehoe <brendan@cygnus.com>
15812
15813 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
15814 _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to
15815 functions like dptoul will be resolved.
15816 (libgcc2.a): Make sure that the object files from DPBIT are named
15817 differently (prefix `_dp') from those that would be coming from
15818 FPBIT.
15819
15820 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>, Jakub Jelinek <jakub@redhat.com>
15821
15822 * configure.in: When target is sparc* and tm_file contains 64,
15823 test for 64bit support in assembler. If not supported, remove
15824 sparc/t-sol2-64 from target-dependent Makefile fragments.
15825 (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
15826 (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
15827 (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
15828 * acconfig.h (AS_SPARC64_FLAG): Added.
15829 * configure, config.in: Rebuilt.
15830 * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
15831 support. Use AS_SPARC64_FLAG.
15832
15833 1999-12-07 Jakub Jelinek <jakub@redhat.com>
15834
15835 * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
15836 suitable for holding OFmode values so that gcc works with complex
15837 quad long doubles.
15838 (hard_64bit_mode_classes): Likewise.
15839
15840 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
15841 so that it is actually matched.
15842 (sethi_di_medlow): Likewise.
15843
15844 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
15845 as legitimate constant if -mvis.
15846 * config/sparc/sparc.md (movtf): Likewise.
15847 (clear_sf): Use const_double_operand.
15848 (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
15849
15850 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
15851 * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
15852 * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
15853 routines, _Qp_* cannot be handled like that now.
15854 (INIT_TARGET_OPTABS): Likewise.
15855 * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
15856 (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
15857 sparc_emit_float_lib_cmp if ARCH64 and soft float.
15858 (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
15859 floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
15860 divtf3, sqrttf3): New expanders.
15861 (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
15862 floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
15863 addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
15864 non-_hq patterns.
15865
15866 * configure.in (sparc64-*-linux*): Use posix threads if enabled.
15867 * configure: Rebuilt.
15868 * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
15869 -mcpu is given and we're doing 64bit compiles.
15870
15871 Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
15872
15873 * loop.h (struct induction): Add multi_insn_incr.
15874 * loop.c (basic_induction_var): New multi_insn_incr argument.
15875 Set it if we search back through previous insns for the biv.
15876 (record_biv): New multi_insn_incr argument; fill in struct induction.
15877 (strength_reduce): Discard an iv with multiple bivs, any of
15878 which require multiple insns to increment.
15879
15880 1999-12-07 Martin v. Löwis <loewis@informatik.hu-berlin.de>
15881
15882 * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
15883 documentation.
15884
15885 1999-12-06 David S. Miller <davem@redhat.com>
15886
15887 * combine.c (check_promoted_subreg): Do not conditionalize this upon
15888 PROMOTE_FUNCTION_RETURN.
15889
15890 Mon Dec 6 15:12:14 1999 Jim Wilson <wilson@cygnus.com>
15891
15892 * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
15893 and handle REG_UNUSED note on insn.
15894
15895 * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask. Set
15896 inner_mask instead of mask.
15897
15898 1999-12-06 Brendan Kehoe <brendan@cygnus.com>
15899
15900 * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
15901 zero if there was an error.
15902
15903 1999-12-06 Jakub Jelinek <jakub@redhat.com>
15904
15905 * config/sparc/sparc.md (return_losum_di): Fix typo in asm
15906 output string.
15907
15908 * longlong.h: Fix clobbers in SPARC asm statements.
15909
15910 * config/sparc/sparc.c (input_operand): Allow HImode and QImode
15911 valid sethi operations when TARGET_ARCH64.
15912
15913 * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
15914 always use move_by_pieces to avoid infinite recursion.
15915 (restore_fixed_argument_area): Likewise.
15916
15917 * combine.c (check_promoted_subreg, record_promoted_value): New
15918 functions.
15919 (combine_instructions): Use them to retain nonzero and sign bit
15920 information after SUBREGs are eliminated by optimizations in
15921 this pass if PROMOTE_FUNCTION_RETURN.
15922
15923 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
15924 .register declaration. Don't use variables with __ prefixes.
15925
15926 Mon Dec 6 12:24:52 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15927
15928 * fold-const.c (optimize_bit_field_compare): Only use one mode
15929 for both RHS and LHS in non-constant case.
15930
15931 1999-12-06 Nathan Sidwell <nathan@acm.org>
15932
15933 * frame.c (start_fde_sort): Only allocate erratic array, if
15934 linear one was allocated. Return allocated flag.
15935 (fde_insert): Only insert, if there's a valid array.
15936 (fde_end_sort): Split, sort and merge if linear and erratic
15937 arrays exist, else just sort linear one.
15938 (search_fdes): New function. Linear search through original fde
15939 structure.
15940 (frame_init): Permit multiple initializations. Cope with
15941 memory shortages.
15942 (find_fde): Fallback on linear search, if failed to sort array.
15943 (__deregister_frame_info): Only free sorted array, if we
15944 allocated it.
15945
15946 1999-12-06 Jakub Jelinek <jakub@redhat.com>
15947
15948 * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
15949
15950 1999-12-05 Jakub Jelinek <jakub@redhat.com>
15951
15952 * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
15953
15954 1999-12-05 Mark Mitchell <mark@codesourcery.com>
15955
15956 * tree.h (special_function_p): Declare.
15957 * calls.c (special_function_p): Make it global. Don't take `name'
15958 as a parameter. Fix typo in 1999-11-28 change.
15959 (expand_cal): Adjust.
15960
15961 1999-12-04 Mark Mitchell <mark@codesourcery.com>
15962
15963 * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
15964 * tree.h (EXPR_WFL_FILENAME): Define in terms of
15965 EXPR_WFL_FILENAME_NODE.
15966 (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
15967 the TREE_CHAIN.
15968 * print-tree.c (print_note): Print TREE_PRIVATE and
15969 TREE_PROTECTED.
15970
15971 * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
15972 the original die cannot be found.
15973
15974 * varray.h (varray_head_tag): Add elements_used.
15975 (VARRAY_PUSH): New macro.
15976 (VARRAY_POP): Likewise.
15977 (VARRAY_TOP): Likewise.
15978 Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
15979 types.
15980 * varray.c (varray_init): Initialize elements_used.
15981 * Makefile.in (BASIC_BLOCK_H): Add varray.h.
15982 (INTEGRATE_H): New variable.
15983 (integrate.o): Depend on INTEGRATE_H.
15984 (unroll.o): Likewise.
15985
15986 * function.h (insert_block_after_note): Declare.
15987 * function.c (insert_block_after_note): Split out from ...
15988 (retrofit_block): ... here.
15989
15990 * stmt.c (expand_fixup): Fix typo in comment.
15991
15992 Sat Dec 4 14:13:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
15993
15994 * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
15995 (optimize_reg_copy_1): Remove REG_N_REFS updating code.
15996 (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
15997 (regmove_optimize, fixup_match_1): Likewise.
15998
15999 1999-12-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16000
16001 * flow.c (flow_loops_dump): Add missing argument when calling
16002 flow_loop_nested_p.
16003
16004 1999-12-04 Geoffrey Keating <geoffk@cygnus.com>
16005 Greg McGary <gkm@gnu.org>
16006
16007 * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
16008 (init_attributes): Add A_NO_LIMIT_STACK.
16009 (decl_attributes): Handle A_NO_LIMIT_STACK.
16010 * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
16011 * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
16012 Handle stack bounds checking.
16013 * flags.h (flag_stack_check): Use the word 'probe' rather than
16014 'check', because the flag doesn't actually cause any checking to
16015 be done.
16016 * function.c (expand_function_start): Set
16017 current_function_limit_stack.
16018 * function.h (struct function): Add limit_stack.
16019 (current_function_limit_stack): Define.
16020 * invoke.texi (Code Gen Options): Document new options.
16021 * rtl.h: Declare stack_limit_rtx.
16022 * toplev.c (stack_limit_rtx): New variable.
16023 (decode_f_option): Handle new options -fstack-limit-register=REG,
16024 -fstack-limit-symbol=IDENT, -fno-stack-limit.
16025 (main): Add stack_limit_rtx as GC root.
16026 * tree.h (DECL_NO_LIMIT_STACK): New macro.
16027 (struct tree_decl): New member no_limit_stack.
16028
16029 * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
16030 stack_limit_rtx.
16031 * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
16032 (conditional_trap+1): Get new mnemonic correct.
16033 (conditional_trap+2): New pattern for DImode traps.
16034
16035 * config/m68k/m68k.c (output_function_prologue): Handle
16036 stack_limit_rtx.
16037 * config/m68k/m68k.md (trap): New insn.
16038 (conditional_trap): New insn.
16039 * md.texi (Standard Names): Document `trap' and
16040 `conditional_trap'.
16041 * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
16042 so a cc0 setter doesn't get emitted at some random place in the
16043 function.
16044
16045 * config/i960/i960.md (trap): New insn.
16046 (conditional_trap): New expander.
16047 (conditional_trap+1, conditional_trap+2): New insns for signed
16048 and unsigned cases.
16049 * config/i960/i960.c (i960_function_prologue): Use
16050 STARTING_FRAME_OFFSET. Handle stack_limit_rtx.
16051
16052 Thu Dec 2 21:22:45 1999 Greg McGary <gkm@gnu.org>
16053 Geoffrey Keating <geoffk@cygnus.com>
16054
16055 * flags.h (warn_padded, warn_packed): Add global var decls.
16056 * toplev.c (warn_padded, warn_packed): Add global var defns.
16057 (W_options): Add warnings `-Wpacked' and `-Wpadded'.
16058 * stor-layout.c (layout_record): Add local variable `type'
16059 to hold often-used TREE_TYPE (field). Add local variable
16060 `unpacked_align' to hold alignment that would be in force
16061 if no `packed' attribute were present. Warn if `packed' attribute
16062 is unnecessary, or even harmful. Warn when gcc inserts padding
16063 to satisfy alignment requirements of members. Use NULL_TREE
16064 when checking whether var_size is set.
16065 * invoke.texi: Document new flags.
16066
16067 1999-12-03 Nathan Sidwell <nathan@acm.org>
16068
16069 * frame.c (fde_split): Reimplement to avoid variable sized array.
16070
16071 Thu Dec 2 18:59:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16072
16073 * combine.c (try_combine): Before fixing up LOG_LINKS for the
16074 i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
16075
16076 1999-12-02 Gavin Romig-Koch <gavin@cygnus.com>
16077
16078 * invoke.texi: Document the mips option -mno-crt0
16079
16080 1999-12-02 Mike Karr <mkarr@mathworks.com>
16081
16082 * cccp.c (argdata): Added free_ptr member.
16083 (macroexpand): Initialize free_ptr of each argument. When an
16084 argument's buffers are freed, if the argument's free_ptr corresponds
16085 to a buffer on the input stack, then return the free_ptr to that stack
16086 frame, otherwise, free it.
16087 (macarg): If an argument begins and ends on the same input stack level,
16088 then transfer the free_ptr of that buffer to the argument in case
16089 the stack is popped during the processing of a subsequent argument.
16090
16091 1999-12-02 Bernd Schmidt <bernds@cygnus.co.uk>
16092
16093 * loop.c (note_reg_stored): New function.
16094 (struct note_reg_stored_arg): New structure.
16095 (try_copy_prop): Change to be more conservative; only replace within
16096 one extended basic block and stop replacing if a store to the
16097 replacement reg is seen.
16098
16099 1999-12-02 Nick Clifton <nickc@cygnus.com>
16100
16101 * config/fp-bit.c: Initialise all fields of the NAN
16102 constants.
16103
16104 * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
16105 to HANDLE_PRAGMA.
16106
16107 Wed Dec 1 18:16:38 1999 Jan Hubicka <hubicka@freesoft.cz>
16108
16109 * i386.md (extend?f?f2): Force the input into a register, not
16110 the output.
16111
16112 1999-12-01 Jakub Jelinek <jakub@redhat.com>
16113
16114 * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
16115 regclass' sake.
16116 (movdf_const_intreg_sp32): Likewise. Prefer the memory load
16117 alternative because setting up 64bit constant is usually costly,
16118 especially when reload is in progress or completed.
16119 (movdf_const_intreg_sp64): Likewise.
16120 (movdf_const_intreg split): Fix building up constants when
16121 HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
16122
16123 Wed Dec 1 16:51:22 1999 Jeffrey A Law (law@cygnus.com)
16124
16125 * combine.c (if_then_else_cond): Use const_true_rtx instead of
16126 const1_rtx for return values in EQ/NE comparison against (const_int 0)
16127 case.
16128
16129 * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
16130 (asm_file_start): Emit .am33 into assembly file when compiling for
16131 the AM33.
16132 (print_operand_address): Handle POST_INC addresses.
16133 (can_use_return_insn, initial_offset): Check AM33 registers too.
16134 (expand_prologue): Check & save AM33 registers too.
16135 (expand_epilogue): Similarly.
16136 (secondary_reload_class): Handle AM33 specific secondary reloads.
16137 (output_tst): Emit efficient code for the AM33 too.
16138 * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
16139 (TARGET_SWITCHES): Add -mam33 switch.
16140 (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
16141 (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
16142 (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
16143 (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
16144 (enum reg_class, REG_CLASS_NAMES): Likewise.
16145 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
16146 (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
16147 (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
16148 (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
16149 (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
16150 (HAVE_POST_INCREMENT): Define.
16151 (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
16152 (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
16153 * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
16154 (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
16155 (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
16156 (zero_extend to SI from QI/HI): Likewise.
16157 (sign_extend to SI from QI/HI): Likewise.
16158 (mulsidi3, umulsidi3): New patterns for the AM33.
16159 (tstsi with zero extension from QI/HI): Add AM33 variants.
16160 (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
16161 (return_internal_regs, store_movm): Handle new AM33 registers.
16162 * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
16163 (LIBGCC, INSTALL_LIBGCC): Likewise.
16164 * invoke.texi: Document new flags.
16165
16166 Fri Nov 26 10:59:12 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
16167
16168 * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
16169 (addsi3_carry): Likewise.
16170 (sbbsi3_cc): Add "binary_operator_ok" to the condition.
16171 (sbbsi3_carry): Likewise.
16172 (mulsi3): Rewrite to expander, ensure that only one operand is memory.
16173 (mulhi3): Likewise.
16174 (test?i_1): Ensure that only one operand is memory.
16175 (conditional move patterns): likewise.
16176 (shift and rotate patterns): Rewrite to expander, add
16177 "binary_operator_ok" to the condition.
16178
16179 * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
16180 * i386.h (procesor_costs): Add movzbl_load field.
16181 (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
16182 non-Q registers, accept DImode registers anywhere.
16183 (Q_CLASS_P): New.
16184 (MEMORY_MOVE_COST): Calculate QImode moves correctly.
16185 * i386.c (*_cost): Set value for movxbl_load field.
16186
16187 * (addsi): New add to lea splitter.
16188 (ashlsi): Likewise.
16189 (lea to add/shift peep2): New.
16190
16191 1999-12-01 Mark Salter <msalter@cygnus.com>
16192
16193 * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
16194 * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
16195 * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
16196
16197 Tue Nov 30 15:20:52 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
16198
16199 * i386.c (ix86_expand_move): Never add clobbers to move patterns.
16200 * i386.md (movsi_xor): New.
16201 (movsi_or): New.
16202 (movsi_1, movhi_1, movqi_1): Remove.
16203 (movsi_2): Rename to movsi_1.
16204 (movhi_2): Rename to movhi_1.
16205 (movqi_2): Rename to movqi_1.
16206 (movdi_1): Remove; remove splitter.
16207 (movdi_2): Rename to movdi_1.
16208 (divmodsi4 splitter): Do not emit clobbers for move patterns.
16209 (long move peep2): Do not create QI or HI mode mov0s
16210 (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
16211
16212 * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
16213 rewrite splitters.
16214
16215 * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
16216 (abs?f2_if): Likewise.
16217
16218 1999-11-30 Alex Samuel <samuel@codesourcery.com>
16219
16220 * ggc.h (ggc_test_and_set_mark): New macro.
16221 (ggc_mark_rtx): Use ggc_test_and_set_mark.
16222 (ggc_mark_tree): Likewise.
16223 (ggc_mark_rtvec): Likewise.
16224 * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
16225
16226 1999-11-30 Jason Merrill <jason@casey.cygnus.com>
16227
16228 * dwarf2out.c (scope_die_for): Only handle types. Only search for
16229 containing types.
16230 (decl_scope_table): Just an array of trees now.
16231 (push_decl_scope): Simplify.
16232 (dwarf2out_init): Adjust.
16233 (local_scope_p): New fn.
16234 (gen_inlined_enumeration_type_die): Don't call scope_die_for.
16235 (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
16236 (gen_typedef_die): Likewise.
16237 (gen_lexical_block_die): Don't call push/pop_decl_scope.
16238 (gen_inlined_subroutine_die): Likewise.
16239 (gen_abstract_function): Set current_function_decl temporarily.
16240 (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
16241 Handle block extern declarations. Don't call push/pop_decl_scope.
16242 (gen_decl_die): Fix logic for block externs.
16243
16244 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16245
16246 * calls.c (special_function_p): Remove `realloc' and add `strdup'
16247 to the list of functions which have attribute malloc by default.
16248
16249 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16250
16251 * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
16252 integer constant does not match the traditional type, limit the
16253 warnings to cases where the base of the type is ten.
16254
16255 * invoke.texi (-Wtraditional): Document it.
16256
16257 Tue Nov 30 15:18:35 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
16258
16259 * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
16260 * rs6000.md: Only access a CONST_INT with INTVAL
16261
16262 Tue Nov 30 14:21:00 1999 Richard Henderson <rth@cygnus.com>
16263
16264 * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
16265 (compute_nearerout): Likewise.
16266 * ggc-page.c (ggc_page_print_statistics): Explicitly cast
16267 size_t to unsigned long for formatting.
16268
16269 1999-11-30 Jakub Jelinek <jakub@redhat.com>
16270
16271 * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
16272 Allow the user to override call-used/fixed state of %g2-5
16273 registers from the command line (with the exception of %g4 for
16274 embedded model).
16275 (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
16276 there is a higher chance of having a leaf function.
16277 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
16278 for ARCH64 which has %ccr register.
16279 * config/sparc/sparc.md (return_losum_si, return_losum_di): New
16280 patterns.
16281 * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
16282 insn accept into delay slot any insn which does not use %[ol]
16283 registers. Accept some LO_SUM and shift left by 1 for the normal
16284 restore case.
16285 (output_function_epilogue): Likewise.
16286 (epilogue_renumber): Added argument which inhibits any renumbering
16287 and just tests if the rtx does not use any %[ol] registers.
16288 (output_return): Reflect above change.
16289
16290 1999-11-30 Jakub Jelinek <jakub@redhat.com>
16291
16292 * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
16293 aggregate passing for sizes <= 16 bytes.
16294
16295 1999-11-30 Bernd Schmidt <bernds@cygnus.co.uk>
16296
16297 * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
16298 * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
16299 * reload.c (find_dummy_reload): Likewise.
16300 (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
16301 * reload1.c (reload_as_needed): Likewise.
16302 * stupid.c (stupid_find_reg): Likewise.
16303 * tm.texi (Obsolete Register Macros): Delete section.
16304 * gmicro.h: Remove all traces of the two macros.
16305 * i386.h: Likewise.
16306 * m88k.h: Likewise.
16307 * mips.h: Likewise.
16308
16309 1999-11-30 Brendan Kehoe <brendan@cygnus.com>
16310
16311 * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
16312 (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
16313 (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
16314 * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
16315 units for the sparclite86x chip.
16316 (flush): Revert October 14th change; add SImode specifically.
16317 (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
16318 * invoke.texi: Document it.
16319
16320 Tue Nov 30 14:58:14 1999 Nick Clifton <nickc@cygnus.com>
16321
16322 * config/mn10200/mn10200.h (PREDICATE_CODES): Add
16323 psimode_truncation_operand.
16324
16325 * config/mn10200/mn10200.c (psimode_truncation_operand): New
16326 function. Return true if the operand is either a MEM valid
16327 for a PSImode address or not a MEM at all.
16328
16329 * config/mn10200/mn10200.md (truncsipsi2): Use
16330 psimode_truncation_operand.
16331
16332 1999-11-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16333
16334 * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
16335 (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
16336 (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
16337 (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
16338 (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
16339 (flow_loop_level_compute, low_loops_level_compute): Likewise.
16340 (flow_loops_find, flow_loop_outside_edge_p): Likewise.
16341 * basic-block.h: Protect from multiple inclusion.
16342 (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
16343 (struct loops, struct loop): Define structures.
16344 * sbitmap.c (sbitmap_a_subset_b_p): New function.
16345 * sbitmap.h: Protect from multiple inclusion.
16346 (sbitmap_a_subset_b_p): Add prototype.
16347 * Makefile.in (LOOP_H): New macro.
16348 (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
16349
16350 Tue Nov 30 01:34:47 1999 Philippe De Muyter <phdm@macqel.be>
16351
16352 * cppinit.c (CAT): The argument list of this macro may not contain
16353 spaces !
16354
16355 1999-11-29 David S. Miller <davem@redhat.com>
16356
16357 Move quantity tables and register equivalence chains into
16358 per-qty and per-register structure arrays respectively.
16359 * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
16360 qty_const_insn, qty_comparison_code, qty_comparison_const,
16361 qty_comparison_qty): Delete, replace with...
16362 (qty_table): this structure table.
16363 (reg_next_eqv, reg_prev_eqv): Delete, replace with...
16364 (reg_eqv_table): this structure table.
16365 (make_new_qty): Add argument MODE. Caller updated.
16366 Update to use qty_table and reg_eqv_table.
16367 (make_regs_eqv, delete_reg_equiv, insert_regs,
16368 insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
16369 fold_rtx, equiv_constant, record_jump_cond, cse_insn,
16370 cse_process_notes, cse_main, cse_basic_block): Likewise.
16371
16372 Mon Nov 29 16:56:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
16373
16374 * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
16375 operation if C is negative.
16376 (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
16377 (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
16378 law for some divisions if constant is negative and change other
16379 divisions to the opposite rounding.
16380
16381 * expr.c (store_constructor_field): If bit position is not multiple
16382 of alignment of TARGET's mode, use BLKmode.
16383
16384 * expr.c (expand_expr_unaligned): Add more code from full case
16385 that is needed when OP0 is in a register.
16386
16387 Mon Nov 29 18:09:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16388
16389 * dwarfout.c (field_byte_offset): Size can be zero if there was
16390 an error.
16391
16392 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
16393
16394 * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
16395 (associate_trees): Delete unused var TEM.
16396 (extract_muldiv): Delete unused var CANCEL_P.
16397
16398 * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
16399 (target_isinf, target_isnan, target_negative): Add return types to
16400 function definitions.
16401
16402 1999-11-29 Bruce Korb <autogen@linuxbox.com>
16403
16404 * fixinc/fixincl.c(process): don't skip GLIBC files any more.
16405 * fixinc/hackshell.tpl: ditto
16406 * fixinc/fixtests.c(double_slash_test): more C++ header testing
16407 * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
16408
16409 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
16410
16411 * reload.c (push_reload): When looking for a register to put into
16412 reg_rtx, make sure all hard regs in a multi-reg register are in the
16413 right class and nonfixed.
16414
16415 * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
16416 pending_read_insns, pending_write_insns, pending_read_mems,
16417 pending_write_mems, pending_list_length, last_pending_memory_flush,
16418 last_function_call, sched_before_next_call): Move static variables
16419 into a structure.
16420 (bb_ prefixed versions): Replace with single array bb_deps.
16421 (struct deps): New structure.
16422 (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
16423 sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
16424 argument of type "struct deps *"; use that instead of global
16425 variables. All callers changed.
16426 (init_rgn_data_dependencies): Delete function.
16427 (init_rtx_vector): Delete function.
16428 (init_deps): New function.
16429
16430 (free_pending_lists): Simplify, we always use the bb_deps array even
16431 if only one basic block.
16432 (compute_block_backward_dependences): Likewise.
16433 (schedule_region): Likewise.
16434
16435 (propagate_deps): New function, broken out of
16436 compute_block_backward_dependences.
16437 (compute_block_backward_dependences): Use it.
16438
16439 * alpha.md: Delete useless patterns that tried to work around
16440 register elimination problems.
16441
16442 * unroll.c (loop_iterations): Don't abort if iteration variable
16443 was made by loop.
16444
16445 From Joern Rennecke:
16446 * reload1.c (reloads_conflict): Reverse test comparing operand
16447 numbers when testing for conflict between output/outaddr reloads.
16448
16449 1999-11-29 David S. Miller <davem@redhat.com>
16450
16451 * config/sparc/sparc.c (init_cumulative_args): Fix type of third
16452 arg.
16453 * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
16454
16455 1999-11-28 Robert Lipe <robertl@cygnus.com>
16456
16457 * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
16458 table from .fini into .dtor.
16459
16460 1999-11-28 Anthony Green <green@cygnus.com>
16461
16462 * tree.h (struct tree_decl): Add malloc_flag.
16463 (DECL_IS_MALLOC): Define.
16464 * c-common.c (attrs): Add A_MALLOC attribute.
16465 (init_attributes): Add this attribute to the table.
16466 (decl_attributes): Handle malloc attribute.
16467 * calls.c (special_function_p): Check for the malloc attribute.
16468 * extend.texi (Function Attributes): Document malloc attribute.
16469
16470 Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com)
16471
16472 * pa.md (reload shift-add patterns): Remove.
16473
16474 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16475
16476 * reorg.c (dbr_schedule) Print more statistics. Corrected
16477 problem when printing info when 3 delay slots are filled.
16478
16479 1999-11-28 Jakub Jelinek <jakub@redhat.com>
16480
16481 * combine.c (setup_incoming_promotions): Pass an outgoing
16482 regno to FUNCTION_ARG_REGNO_P which it expects.
16483
16484 1999-11-28 Andreas Jaeger <aj@suse.de>
16485
16486 * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
16487
16488 Sun Nov 28 00:48:15 1999 Philippe De Muyter <phdm@macqel.be>
16489
16490 * cccp.c (do_include): Avoid initialization of automatic variable.
16491
16492 * integrate.c (mark_stores): Function definition made void, to match
16493 previous declaration.
16494 * regclass.c (dump_regclass): Ditto.
16495 * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
16496
16497 Sat Nov 27 08:38:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
16498
16499 * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
16500 known to be multiple of divisor.
16501
16502 * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
16503
16504 * combine.c (try_combine): Add code to try to merge a set of a
16505 two-word pseudo to a constant with a setting of one of those words
16506 to a constant.
16507
16508 * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
16509 (split_tree): Completely rework to make more general.
16510 (make_range, fold): Call negate_expr.
16511 (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
16512 (fold, associate): Call new split_tree and associate_trees.
16513 (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
16514
16515 1999-11-26 Bernd Schmidt <bernds@cygnus.co.uk>
16516
16517 * loop.c (try_copy_prop): Avoid GNU C extension.
16518
16519 1999-11-25 Mark Mitchell <mark@codesourcery.com>
16520
16521 * except.c (init_eh_for_function): Still zero eh_return_context,
16522 eh_return_stack_adjust, and eh_return_handler.
16523
16524 * except.h (eh_status): Adjust documentation for x_protect_list.
16525 (begin_protect_partials): New function.
16526 * except.c (enqueue_eh_entry): Fix formatting.
16527 (get_first_handler): Add consistency check.
16528 (add_partial_entry): Adjust usage of protect_list.
16529 (emit_cleanup_handler): Save and restore ehqueue.
16530 (expand_start_all_catch): Add comment.
16531 (begin_protect_partials): New function.
16532 (end_protect_partials): Adjust usage of protect_list.
16533 (init_eh_for_function): Use xcalloc.
16534
16535 1999-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16536
16537 * c-common.c (check_format_info): Don't call a variadic function
16538 with a non-literal format string.
16539
16540 * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
16541
16542 * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
16543 pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
16544 Likewise.
16545
16546 * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
16547 Likewise.
16548
16549 * collect2.c (collect_wait): Likewise.
16550
16551 * dbxout.c (dbxout_type): Likewise.
16552
16553 * gcc.c (do_spec_1): Likewise.
16554
16555 * genemit.c (gen_insn, gen_expand): Likewise.
16556
16557 * genrecog.c (write_switch, write_subroutine): Likewise.
16558
16559 * mips-tfile.c (catch_signal, botch): Likewise.
16560
16561 * print-rtl.c (print_rtx): Likewise.
16562
16563 * toplev.c (default_print_error_function, report_error_function,
16564 _fatal_insn): Likewise.
16565
16566 1999-11-25 Mark Mitchell <mark@codesourcery.com>
16567
16568 * tree.c (unsave_expr_now): Handle NULL_TREE as input.
16569
16570 Wed Nov 24 17:08:09 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
16571
16572 * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
16573 operations when needed.
16574 * i386.md (fop_?f_comm): New.
16575 (fop_?f_1): Do not accept commutative operands.
16576
16577 1999-11-25 Andreas Jaeger <aj@suse.de>
16578
16579 * config/mips/mips.md (casesi_internal): Add missing brace.
16580
16581 1999-11-25 Jason Merrill <jason@casey.cygnus.com>
16582
16583 * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
16584 (splice_child_die): Handle moving a child DIE from the declaration
16585 DIE of a class to its specification.
16586 (gen_struct_or_union_type_die): Use 'complete' consistently.
16587 (gen_decl_die): Generate the virtual context DIE first.
16588 Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
16589
16590 1999-11-24 Gavin Romig-Koch <gavin@cygnus.com>
16591
16592 * config/mips/mips.md (call_value_multiple_interanal1): New.
16593
16594 1999-11-24 Jason Merrill <jason@casey.cygnus.com>
16595
16596 * dwarf2out.c (free_AT, free_die): New fns.
16597 (remove_children): Call them.
16598 (output_line_info): Disable removal of duplicate notes.
16599
16600 Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
16601 * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
16602 means pretend the type isn't defined.
16603 Don't defer emitting types.
16604 (gen_type_die_for_member): New fn.
16605 (gen_decl_die): Call it.
16606 (splice_child_die): New fn.
16607 (gen_member_die): Call it rather than generate duplicate dies.
16608
16609 Defer emitting information for the abstract instance of an inline
16610 until we either inline it or emit an out-of-line copy.
16611 * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
16612 from output_inline_function if DECL_ABSTRACT is also set.
16613 (block_ultimate_origin): Likewise.
16614 (gen_abstract_function): New fn.
16615 (gen_decl_die, gen_inlined_subroutine_die): Call it.
16616 (gen_subprogram_die): An abstract instance is not a declaration
16617 just because it doesn't match current_function_decl. Don't abort
16618 because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration
16619 has an abstract origin.
16620 * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
16621 abstract instance here.
16622
16623 Wed Nov 24 18:39:18 1999 Andrew Haley <aph@cygnus.com>
16624
16625 * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
16626 where we need to reload fpul from a system register.
16627
16628 1999-11-24 Andreas Jaeger <aj@suse.de>
16629
16630 * config/mips/linux.h (CPP_PREDEFINES): Added.
16631 (LINK_SPEC): Remove -Y since this is only needed on sparc.
16632
16633 1999-11-24 Andreas Jaeger <aj@suse.de>
16634
16635 * config/mips/linux.h (TARGET_VERSION): Added.
16636 (HANDLE_SYSV_PRAGMA): Added.
16637 (DEFAULT_VTABLE_THUNKS): Added.
16638
16639 Wed Nov 24 14:12:15 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
16640
16641 * local-alloc.c (qty): New structure and static variable.
16642 (qty_phys_reg): Remove, all references changed to qty.
16643 (qty_n_refs): Likewise.
16644 (qty_min_class): Likewise.
16645 (qty_birth): Likewise.
16646 (qty_death): Likewise.
16647 (qty_size): Likewise.
16648 (qty_mode): Likewise.
16649 (qty_n_calls_crossed): Likewise.
16650 (qty_alternate_class): Likewise.
16651 (qty_changes_size): Likewise.
16652 (qty_first_reg): Likewise.
16653 (alloc_qty): Rename variable QTY to QTYNO.
16654 (finf_free_reg): Likewise.
16655 (local_alloc): Allocate qty, do not allocate the removed variables.
16656
16657 Wed Nov 24 17:26:05 1999 Geoffrey Keating <geoffk@cygnus.com>
16658
16659 * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
16660 when -membedded-pic is passed.
16661
16662 * config/mips/mips.md (casesi): Handle 64-bit case too.
16663 (casesi_internal_di): New insn.
16664
16665 * config/mips/mips.c (embedded_pic_offset): Always make the
16666 embedded-pic subtractions relative to the name of the current
16667 function by use of the magic string "..CURRENT_FUNCTION".
16668 * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
16669
16670 1999-11-24 Geoffrey Keating <geoffk@cygnus.com>
16671
16672 * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
16673 of (const_int 0), when what we really care about is
16674 whether it's a zero constant anyway.
16675 (div_trap_mips16): Likewise.
16676
16677 1999-11-23 Mark Mitchell <mark@codesourcery.com>
16678
16679 * loop.c (loop_optimize): Always find_loop_tree_blocks and
16680 unroll_block_trees when generating debuggable code.
16681
16682 * tree.h (unsave_expr_1): New function.
16683 (lang_unsave): New variable.
16684 (get_callee_fndecl): New function.
16685 * tree.c (unsave_expr_now_r): New function.
16686 (lang_unsave): Define.
16687 (unsave_expr_1): Likewise.
16688 (unsave_expr_now_r): Split out from unsave_expr_now.
16689 (unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise,
16690 call unsave_expr_now_r.
16691 (get_callee_fndecl): Define.
16692
16693 * Makefile.in (gencheck): Don't depend on lang_tree_files.
16694 (gencheck.o): Do depend on lang_tree_files.
16695
16696 * integrate.h (copy_decl_for_inlining): New declaration.
16697 * integrate.c (copy_and_set_decl_abstract_origin): Remove.
16698 (copy_decl_for_inlining): New function.
16699 (integrate_parm_decls): Use it.
16700 (integrate_decl_tree): Likewise.
16701
16702 1999-11-23 Gavin Romig-Koch <gavin@cygnus.com>
16703
16704 * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
16705 the second two from the first.
16706 (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
16707 * config/mips/mips.md (movcc,reload_incc,reload_outcc,
16708 conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
16709 ISA_HAS_FP4.
16710 * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
16711 override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
16712 ISA_HAS_FP4.
16713
16714 Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com)
16715
16716 * pa.md (call_internal_symref, call_value_internal_symref): No mode
16717 needed on the address operand.
16718 * pa.c (call_operand_address): Check for the correct mode.
16719
16720 1999-11-23 Bernd Schmidt <bernds@cygnus.co.uk>
16721
16722 * loop.c: Include "basic-block.h".
16723 (try_copy_prop, replace_loop_reg): New functions.
16724 (load_mems): Detect registers that just hold copies of the hoisted
16725 mem, and call try_copy_prop to eliminate them.
16726 * Makefile.in (loop.o): Update dependencies.
16727
16728 Tue Nov 23 01:03:29 1999 Hans-Peter Nilsson <hp@axis.com>
16729
16730 * Makefile.in (gencheck.o): Depend on gencheck.h.
16731 (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
16732 (insn-peep.o): Depend on except.h and function.h.
16733 (insn-attrtab.o): Depend on RECOG_H.
16734 (insn-output.o): Depend on toplev.h and flags.h.
16735 (gengenrtl.o): Depend on real.h.
16736 (gen-protos.o): Depend on cpplib.h and cpphash.h.
16737 Unify all dependencies to be on RECOG_H rather than recog.h.
16738
16739 Tue Nov 23 00:57:10 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16740
16741 From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
16742 * configure.in: Try building a bi-arch 32/64-bit compiler on
16743 sparc-*-solaris2.7 and higher.
16744 * configure: Rebuild.
16745
16746 Mon Nov 22 23:09:44 1999 David O'Brien <obrien@FreeBSD.org>
16747
16748 * config/freebsd.h: New, FreeBSD architecture independent file.
16749 * config/i386/freebsd-elf.h: removed FreeBSD architecturally
16750 independent pieces.
16751 * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
16752 directly by i386/freebsd.h.
16753 * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
16754 independent configuration file.
16755 (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
16756 directly by i386/freebsd.h.
16757 * configure: Rebuilt.
16758
16759 * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
16760 which is in the user's namespace.
16761 * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
16762 `i386' which is not in our namespace.
16763
16764 Mon Nov 22 22:58:01 1999 "R. Kelley Cook" <KelleyCook@attglobal.net>
16765
16766 * invoke.texi (ARM Options): Add in -mno-alignment-traps
16767
16768 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
16769
16770 * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
16771 (add_dwarf_attr, add_child_die): Just push onto the front.
16772 (reverse_die_lists): New fn.
16773 (add_sibling_attributes): Use it.
16774 (push_decl_scope): Reorganize.
16775 (add_name_and_src_coords_attributes): Don't set file and line for
16776 an artificial decl.
16777 (gen_subprogram_die): An artificial function doesn't need to match
16778 file and line.
16779 (gen_compile_unit_die): Return the generated die. Only add
16780 AT_comp_dir if the filename is relative.
16781 (remove_AT): Simplify loop. Also free string values.
16782 (output_die): A DIE ref can't be null.
16783 (output_value_format, value_format): Take a dw_attr_ref.
16784 (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
16785 (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
16786 AT_addr, AT_lbl): New fns.
16787 (various): Use them.
16788 (various): Constify.
16789
16790 Mon Nov 22 23:53:50 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16791
16792 * combine.c (combine_simplify_rtx): When handling a SUBREG,
16793 take SUBREG_WORD into account.
16794 (if_then_else_cond): Likewise.
16795
16796 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
16797
16798 * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
16799 clause from BSD license, pursuant with
16800
16801 ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
16802
16803 1999-11-22 Bernd Schmidt <bernds@cygnus.co.uk>
16804
16805 * loop.c (load_mems): Reformat slightly.
16806 * basic-block.h (regset_head): New typedef.
16807 (INIT_REG_SET): New macro.
16808
16809 1999-11-22 Bruce Korb <autogen@linuxbox.com
16810
16811 * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
16812 (mips-dec-bsd*): non-functional code
16813 (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
16814
16815 * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
16816 added three replacement fixes
16817 (no_double_slash): removed comments that are not (any longer) pertinent
16818 (bad_lval): this fix currently runs against many files.
16819 The comment seems to indicate that we should select for files
16820 containing 'pragma extern_prefix'.
16821
16822 * fixinc/fixinc.x86-linux-gnu: deleted
16823 * fixinc/inclhack.sh: regen
16824 * fixinc/fixincl.x: regen
16825 * fixinc/fixincl.sh: regen
16826
16827 Fri Nov 12 14:08:40 1999 Andrew Haley <aph@cygnus.com>
16828
16829 * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
16830 its code is INSN and it has no notes.
16831
16832 1999-11-22 Andrew Haley <aph@cygnus.com>
16833
16834 * varasm.c (function_defined): Remove.
16835 (make_function_rtl): Don't set function_defined.
16836 (make_decl_rtl): Remove global register warning.
16837 * regclass.c (no_global_reg_vars): New variable.
16838 (globalize_reg): Warn if function has already been defined.
16839 (regclass_init): Set no_global_reg_vars.
16840
16841 Mon Nov 22 14:42:22 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
16842
16843 * regclass.c (reg_pref): New structure and static variable
16844 (prefclass): Delete.
16845 (altclass): Delete.
16846 (all uses of prefclass and altclass): Use reg_pref instead.
16847
16848 1999-11-21 Nick Clifton <nickc@cygnus.com>
16849
16850 * invoke.texi (ARM Options): Replace -mshort-load-bytes with
16851 -malignment-traps.
16852 (arm.h): Replace -mshort-load-bytes with -malignment-traps.
16853 (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
16854 (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
16855
16856 Sun Nov 21 17:11:13 1999 Geoffrey Keating <geoffk@cygnus.com>
16857
16858 * varasm.c (output_constructor): Solve problem with long long
16859 bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
16860
16861 Fri Nov 19 05:48:45 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
16862
16863 * global.c (allocno): New structure and static variable.
16864 (allocno_reg): Remove, all references replaced by allocno.
16865 (allocno_size): Likewise.
16866 (hard_reg_conflicts): Likewise.
16867 (hard_reg_preferences): Likewise.
16868 (hard_reg_copy_preferences): Likewise.
16869 (hard_reg_full_preferences): Likewise.
16870 (regs_someone_prefers): Likewise.
16871 (allocno_calls_crossed): Likewise.
16872 (allocno_n_refs): Likewise.
16873 (allocno_live_length): Likewise.
16874 (find_reg): Rename ALLOCNO to NUM.
16875
16876 * regclass.c (may_move_in_cost): Rename from may_move_cost, all
16877 references updated.
16878 (may_move_out_cost): New variable.
16879 (init_reg_sets_1): Initialize may_move_out_cost.
16880 (record_reg_classes): Use may_move_out_cost.
16881
16882 * regclass.c (dump_regclass): New function.
16883 (regclass): New parameter DUMP, call DUMP_REGCLASS.
16884 * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
16885 pass rtl_dump_file to regclass.
16886 * rtl.h (regclass): Update prototype.
16887
16888 Fri Nov 19 06:32:19 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
16889
16890 * i386.md (neg, not and abs patterns): Revmap to use
16891 ix86_expand_unary_operator and ix86_unary_operator_ok.
16892 (add?f and sub?f expanders): Force operand 1 to register.
16893 * i386.c (ix86_expand_unary_operator): Rewrite.
16894 (ix86_unary_operator_ok): Ensure that memory operands
16895 match real opcode.
16896 (ix86_binary_operator_ok): Do not allow operand 1 to
16897 come into memory and operand 0 not.
16898 (ix86_expand_binary_operator): Ensure that
16899 src1 is not non-matching memory.
16900
16901 * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
16902 to support integer registers and memory.
16903 (abss?2_integer): Likewise.
16904
16905 * i386.h (enum reg_class): Add FLOAT_INT_REGS.
16906 (REG_CLASS_NAMES): Likewise.
16907 (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
16908 and GENERAL_REGS.
16909 * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
16910 (movsf): Likewise; unify 4th and 5th alternative.
16911 (pushdf): Likewise.
16912 (movdf_1): Likewise; rename to movdf_integer.
16913 (pushxf): Likewise; rename to pushxf_integer; fix output template;
16914 remove redundant splitter.
16915 (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
16916 (movdf_nointeger): New.
16917 (movxf_nointeger): New.
16918 (pushxf_nointeger): New.
16919
16920 * i386.md (extend?f?f): Split to expander and pattern, refuse two
16921 memory operands in patterns.
16922 (fop*): Refuse two memory operands.
16923
16924 * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
16925 on !TARGET_USE_CLTD CPUs.
16926
16927 Fri Nov 19 10:41:15 GMT 1999 Nathan Sidwell <nathan@acm.org>
16928
16929 * extend.texi: Document C++ restricted pointers and references.
16930
16931 1999-11-19 Bernd Schmidt <bernds@cygnus.co.uk>
16932
16933 * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
16934 (invalidate_skipped_set): Call it unconditionally.
16935 (cse_set_around_loop): Likewise.
16936
16937 Thu Nov 18 17:29:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
16938
16939 * rtl.texi (mem): Add documentation for alias-set argument
16940 to RTX `mem'.
16941
16942 Fri Nov 18 13:39:22 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
16943
16944 * i386.h (struct_processor_costs): New fields int_load, int_store,
16945 fp_move, fp_load and fp_store
16946 (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
16947 fp->int moves
16948 (MEMORY_MOVE_COST): New macro.
16949 * i386.c (386_cost): Define new fields.
16950 (i486_cost): Likewise.
16951 (pentium_cost): Likewise.
16952 (pentiumpro_cost): Likewise.
16953 (k6_cost): Likewise.
16954
16955 Fri Nov 19 11:11:55 1999 Greg McGary <gkm@gnu.org>
16956 Geoffrey Keating <geoffk@cygnus.com>
16957
16958 * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
16959
16960 * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
16961 MASK_ALIGN_INT.
16962
16963 * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
16964 (TARGET_STRICT_ALIGNMENT): New macro.
16965 (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
16966 (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
16967 * invoke.texi (M680x0 Options): Document -mstrict-align.
16968
16969 Thu Nov 18 11:10:03 1999 Jan Hubicka <hubicka@freesoft.cz>
16970 Richard Henderson <rth@cygnus.com>
16971
16972 * i386-protos.h (split_xf, ix86_split_movdi): Remove.
16973 (ix86_split_long_move): Declare.
16974 * i386.c (split_xf, ix86_split_movdi): Remove.
16975 (ix86_split_to_parts, ix86_split_long_move): New.
16976 * i386.md (dimode move splitters): Use ix86_split_long_move.
16977 (dfmode move splitters): Likewise.
16978 (xfmode move splitters): Likewise.
16979 (movsf_1): Allow F->r.
16980 (movdf_1, movxf_1): Allow F->ro.
16981
16982 1999-11-17 Mark Mitchell <mark@codesourcery.com>
16983
16984 * except.h (struct eh_entry): Add goto_entry_p.
16985 (eh_region_from_symbol): Remove prototype.
16986 * except.c (find_func_region_from_symbol): New function.
16987 (emit_cleanup_handler): Likewise.
16988 (eh_region_from_symbol): Make it static.
16989 (add_new_handler): Verify the argument.
16990 (find_func_region): Update comment.
16991 (expand_eh_region_end): Expand handlers here, rater than waiting
16992 until expand_leftover_cleanups or start_all_catch.
16993 (expand_leftover_cleanups): Don't expand here.
16994 (expand_start_all_catch): Or here.
16995 (expand_rethrow): Check the return value from find_func_region.
16996 * function.c (expand_function_end): Emit the catch_clauses.
16997
16998 1999-11-18 Gavin Romig-Koch <gavin@cygnus.com>
16999
17000 * integrate.c (expand_inline_function): Add necessary check for NULL.
17001
17002 1999-11-18 Nick Clifton <nickc@cygnus.com>
17003
17004 * toplev.c (main): Correctly detect an unrecognised option.
17005
17006 * cppinit.c (cpp_handle_option): Do not claim to have consumed
17007 a -f option if it has not been recognised.
17008
17009 Thu Nov 18 00:59:11 1999 Michael Gschwind <mikeg@alagoas.watson.ibm.com>
17010
17011 * basic-block.h (update_life_extent): Remove trailing comma on
17012 enumeration type list.
17013
17014 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17015
17016 * varasm.c (output_constructor) Solved problem with long long
17017 bitfields. Corrected calculating this_time and shift. Also
17018 corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
17019
17020 Wed Nov 17 23:46:14 1999 Jeffrey A Law (law@cygnus.com)
17021
17022 * flow.c (split_edge): Take looping structure into account when
17023 determining where to put the new block note.
17024
17025 Wed Nov 17 20:42:43 1999 Jeff Holcomb <jeffh@cygnus.com>
17026
17027 * Makefile.in (ggc-none.o): Provide host specific version if
17028 needed.
17029
17030 Wed Nov 17 16:51:23 1999 Richard Henderson <rth@cygnus.com>
17031
17032 * cse.c (delete_trivially_dead_insns): Identify no-op insns
17033 containing subregs too.
17034
17035 Wed Nov 17 17:39:48 MST 1999 Diego Novillo <dnovillo@cygnus.com>
17036
17037 * invoke.texi: Add documentation for -muninit-const-in-rodata.
17038 * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
17039 (TARGET_UNINIT_CONST_IN_RODATA): Define.
17040 (text_section): Add switches -munint-const-in-rodata and
17041 -mno-uninit-const-in-rodata.
17042 (ASM_OUTPUT_COMMON): Remove.
17043 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
17044 const objects should be placed in read-only data. Otherwise declare
17045 them in common.
17046
17047 Wed Nov 17 16:38:32 1999 Richard Henderson <rth@cygnus.com>
17048
17049 * jump.c (jump_optimize_1): Revert last change.
17050
17051 Wed Nov 17 15:18:30 1999 Richard Henderson <rth@cygnus.com>
17052
17053 * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
17054 test if optimizing for size.
17055
17056 1999-11-17 Mark Mitchell <mark@codesourcery.com>
17057
17058 * Makefile.in (toplev.o): Depend on except.h.
17059 (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
17060
17061 Mon Nov 15 22:45:39 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
17062
17063 * i386.md (divmodsi4): Rewrite to expander.
17064 (*divmodsi4_nocltd): New.
17065 (*divmodsi4_cltd): New.
17066 (divmodsi4 splitter): Handle the case when input comes in edx.
17067 (udivmodhi4): Do not use constraints in exander.
17068 (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
17069
17070 1999-11-17 Jason Merrill <jason@yorick.cygnus.com>
17071
17072 * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
17073 for the common case.
17074
17075 1999-11-16 Jakub Jelinek <jakub@redhat.com>
17076
17077 * explow.c (hard_function_value): Add outgoing argument.
17078 * expr.h (hard_function_value): Declare it.
17079 * calls.c (expand_call, emit_library_call_value): Update callers.
17080 * function.c (aggregate_value_p): Ditto.
17081 (diddle_return_value): Must look at the outgoing registers
17082 on archs with register windows.
17083
17084 Mon Nov 15 20:46:45 1999 Richard Henderson <rth@cygnus.com>
17085
17086 * alpha.c (alpha_build_va_list): Use make_lang_type and
17087 initialize TYPE_NAME for the va_list record.
17088
17089 * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
17090
17091 * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
17092 for printing.
17093 * ggc.h (struct ggc_statistics): Rearrange elements for better
17094 packing on 64-bit hosts.
17095 * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
17096 (compute_nearerout): Likewise.
17097
17098 Tue Nov 16 14:37:52 1999 Geoffrey Keating <geoffk@cygnus.com>
17099
17100 * config/rs6000/rs6000.c (first_reg_to_save): Save
17101 PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
17102
17103 1999-11-15 Jason Merrill <jason@casey.cygnus.com>
17104
17105 * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
17106 notion of nesting to find the DIE for a type or function.
17107 DIEs can go in limbo even if we got a context_die.
17108 (push_decl_scope): Our context doesn't need to be in decl_scope_table.
17109 (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
17110 for local type.
17111 (gen_decl_die): Ignore NAMESPACE_DECLs for now.
17112 (gen_type_die): Writing out the context doesn't cause member class
17113 template instantiations to be written out as well.
17114
17115 Mon Nov 15 15:33:18 1999 Richard Henderson <rth@cygnus.com>
17116
17117 * rs6000.h (ASM_OUTPUT_DEF): New.
17118 Based on proposed addition from David Edelsohn.
17119
17120 1999-11-15 Robert Lipe <RobertLipe@usa.net>
17121 Bruce Korb <autogen@linuxbox.com>
17122
17123 * fixinc/inclhack.def
17124 (AAB_svr4_replace_byteorder): added. Takes advantage of GCC features
17125 (unixware7_byteorder_fix): added. Removes conflicts for new defs
17126 in net/inet.h.
17127 (svr5_mach_defines): added. Like svr4_mach_defines, with new syntax
17128 (svr4_endian): enabled with SVR5
17129 (svr4_mkdev): simplified syntax and enabled with SVR5
17130
17131 Sun Nov 14 18:49:37 1999 David O'Brien <obrien@FreeBSD.org>
17132
17133 * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
17134 * configure: Rebuilt.
17135 * config/t-freebsd-thread: New file.
17136
17137 Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com)
17138
17139 * i386.c (ix86_decompose_address): Verify the base is a REG
17140 before trying to examine its register number.
17141
17142 * basic-block.h: Remove all #defines and prototypes related to
17143 integer lists.
17144 (free_bb_mem, compute_preds_succs): Remove prototype.
17145 * rtl.h (free_bb_mem): Remove prototype.
17146 * flow.c (alloc_int_list_node); Remove function.
17147 (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
17148 (compute_preds_succs, free_bb_mem): Likewise.
17149 * gcse.c (gcse_main): Do not call free_bb_mem anymore.
17150 * toplev.c (rest_of_compilation): Likewise.
17151 * haifa-sched.c (build_control_flow): Use flow generated edge
17152 list to build the haifa specific edge list.
17153 (find_rgns): Use new CFG data structures instead of pred/succ lists.
17154 (schedule_insns): Do not build pred/succ lists anymore. Instead
17155 build the edge table.
17156
17157 * basic-block.h (dump_bb_data): Remove declaration.
17158 * flow.c (dump_bb_data): Remove function.
17159 * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
17160 (sbitmap_union_of_predsucc): Likewise.
17161
17162 * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
17163 argument. All callers changed.
17164 (delete_null_pointer_checks_1): No longer need to compute the
17165 pred/succ lists.
17166
17167 * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
17168 All callers changed.
17169 (pre_expr_reaches_here_p_work): Likewise.
17170 (pre_edge_insert): No longer call pre_expr_reaches_here_p.
17171 * lcm.c (compute_laterin): Fix initialization of LATER.
17172 (compute_nearerout): Similarly for NEARER.
17173
17174 Sun Nov 14 12:41:57 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17175
17176 * cse.c (set_nonvarying_address_components): Delete unused function.
17177 (refers_to_p): Likewise.
17178
17179 Fri Nov 12 20:53:22 1999 Jeffrey A Law (law@cygnus.com)
17180
17181 * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
17182 needed.
17183
17184 Sat Nov 13 16:20:09 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
17185
17186 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
17187 definition in do while (0).
17188
17189 Fri Nov 12 16:26:25 1999 Jim Wilson <wilson@cygnus.com>
17190
17191 * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
17192
17193 Fri Nov 12 12:43:49 1999 Richard Henderson <rth@cygnus.com>
17194
17195 * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
17196
17197 Fri Nov 12 15:14:19 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
17198
17199 * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
17200 (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
17201 (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
17202 (INITIAL_FRAME_POINTER_OFFSET): Remove it.
17203
17204 * i960.c (i960_function_prologue): Don't allocate space for g8-g11
17205 saved on the stack. Output more accurate stack frame statistics
17206 into assembler file.
17207
17208 1999-11-12 11:47 -0800 Zack Weinberg <zack@bitmover.com>
17209
17210 * genextract.c (record_insn_name): New function.
17211 (get_insn_name): No longer a stub.
17212 (main): Call record_insn_name for each insn. After each label
17213 written, print the insn name in a comment.
17214
17215 Fri Nov 12 13:45:02 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17216
17217 * output.h (const_section, init_section, fini_section): Add
17218 prototypes.
17219
17220 * alpha/elf.h (const_section): Delete declaration.
17221
17222 * svr4.h (const_section): Likewise.
17223
17224 Fri Nov 12 08:54:22 1999 Mark Mitchell <mark@codesourcery.com>
17225
17226 * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
17227 * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
17228 (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
17229 expressions.
17230 * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
17231 variable-sized array bounds.
17232
17233 Fri Nov 12 08:04:45 1999 Catherine Moore <clm@cygnus.com>
17234
17235 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Use
17236 ASM_OUTPUT_LABEL.
17237
17238 Fri Nov 12 13:31:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17239
17240 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
17241 addresses the same way GO_IF_LEGITIMATE_INDEX does.
17242
17243 Fri Nov 12 12:36:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17244
17245 * cse.c (hash_arg_in_struct): Delete.
17246 (struct table_elt): Delete elt in_struct.
17247 (struct set): Delete elt src_in_struct.
17248 (merge_equiv_classes): Don't set either hash_arg_in_struct or
17249 the corresponding in_struct elts.
17250 (canon_hash): Likewise.
17251 (safe_hash): Likewise.
17252 (find_best_addr): Likewise.
17253 (record_jump_cond): Likewise.
17254 (cse_insn): Likewise.
17255
17256 Thu Nov 11 19:45:24 1999 Jim Wilson <wilson@cygnus.com>
17257
17258 * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
17259
17260 * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
17261 unsigned types.
17262
17263 Thu Nov 11 18:54:24 1999 Jeffrey A Law (law@cygnus.com)
17264
17265 * function.c (diddle_return_value): Put back check that the DECL_RTL
17266 for the function is a register.
17267
17268 * function.c (diddle_return_value): Use hard_function_value to
17269 get an rtx suitable for use in the USE/CLOBBER insn.
17270
17271 * global.c (global_conflicts): Update comments.
17272 (record_conflicts): No need to record conflicts between pseudos here.
17273
17274 1999-11-11 Bruce Korb <autogen@linuxbox.com>
17275
17276 * fixinc/fixincl.c: Added verbose levels for status messages
17277
17278 Thu Nov 11 13:23:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17279
17280 * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
17281 operand as argument to expand_and or expand_binop.
17282
17283 Thu Nov 11 02:21:16 1999 Rodney Brown <RodneyBrown@pmsc.com>
17284
17285 * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
17286 gcc_add_string_root.
17287
17288 Wed Nov 10 21:24:19 1999 Jason Eckhardt <jle@cygnus.com>
17289
17290 * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
17291
17292 Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com)
17293
17294 * flow.c (compute_flow_dominators): Initially put all blocks on
17295 the worklist.
17296 * lcm.c (compute_antinout_edge, compute_available): Similarly.
17297 * gcse.c (compute_cprop_avinout): Remove.
17298 (compute_cprop_data): Use compute_available.
17299 (delete_null_pointer_checks_1): Use compute_available.
17300
17301 * basic-block.h (compute_available): Returns a void now.
17302 * gcse.c (one_classic_gcse_pass): Do not expect compute_available
17303 to return a value anymore.
17304 * lcm.c (compute_available, compute_antinout_edge): Revamp to use
17305 worklists. Fix boundary cases. Compute maximal solutions.
17306 (compute_laterin, compute_nearerout): Similarly.
17307
17308 * dwarf2out.c (add_AT_location_description): Allow
17309 (mem (plus (pseudo) (...)) too.
17310
17311 Wed Nov 10 10:52:42 1999 Tom Tromey <tromey@cygnus.com>
17312
17313 * gcc.c (do_spec_1): Support text between `%u' and `%O'.
17314
17315 Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
17316 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17317
17318 * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
17319
17320 * gansidecl.h: Likewise.
17321
17322 * rtl.c: Likewise.
17323
17324 * rtl.h: Likewise.
17325
17326 * toplev.h: Likewise.
17327
17328 * tree.c: Likewise.
17329
17330 * tree.h: Likewise.
17331
17332 * varray.c: Likewise.
17333
17334 * varray.h: Likewise.
17335
17336 Wed Nov 10 10:57:22 1999 Clinton Popetz <cpopetz@cygnus.com>
17337
17338 * gcov.c (struct arcdata): Add hits and total, remove prob.
17339 (output_branch_counts): New.
17340 (process_args): Set output_branch_counts if -c.
17341 (calculate_branch_probs): Store hits and total instead of
17342 percentage.
17343 (output_data): Emit counts if output_branch_counts is true.
17344 * gcov.texi (Invoking Gcov): Document -c switch..
17345
17346 Wed Nov 10 01:10:41 1999 Philippe De Muyter <phdm@macqel.be>
17347
17348 * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
17349 `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
17350
17351 Wed Nov 10 00:51:41 1999 Hans-Peter Nilsson <hp@axis.se>
17352
17353 * invoke.texi (C Dialect Options): Add missing builtins from
17354 c-common.c to list.
17355 * extend.texi (Other Builtins): Copy to this list.
17356
17357 Wed Nov 10 04:58:09 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
17358
17359 * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
17360 (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise. Remove
17361 redundant bitmap.h.
17362
17363 Wed Nov 10 00:02:53 1999 Jeffrey A Law (law@cygnus.com)
17364
17365 * flow.c (compute_flow_dominators): No longer treat basic block 0
17366 or (n_basic_blocks - 1) specially. Clear the AUX field before
17367 starting computation of doms/pdoms. Fix initial state for pdoms.
17368
17369 Wed Nov 10 03:58:08 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
17370
17371 * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
17372 match rtl.o's: added ggc.h and toplev.h
17373 ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
17374 ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
17375 ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
17376
17377 Tue Nov 9 10:30:08 1999 Tom Tromey <tromey@cygnus.com>
17378
17379 * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
17380 from HAVE_DOS_BASED_FILESYSTEM.
17381 * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
17382 HAVE_DOS_BASED_FILESYSTEM.
17383 (main): Likewise.
17384 (split_directories): Only special-case DOS file names if
17385 HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR
17386 instead of explicit tests. Conditionalize on !VMS.
17387 (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
17388 tests. Conditionalize on !VMS.
17389 (process_command): Only use make_relative_prefix if !VMS.
17390 (free_split_directories): Conditionalize on !VMS.
17391 (DIR_UP): Conditionalize on !VMS.
17392
17393 Wed Jun 9 16:57:11 1999 Mumit Khan <khan@xraylith.wisc.edu>
17394
17395 * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
17396
17397 Fri Feb 5 14:22:01 1999 Mumit Khan <khan@xraylith.wisc.edu>
17398
17399 * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
17400 case.
17401
17402 Mon Nov 8 14:16:57 1999 Michael Meissner <meissner@cygnus.com>
17403
17404 * invoke.texi (Environment Variables): Document relative path
17405 lookup.
17406 * gcc.c (DIR_UP): If not defined, define as "..".
17407 (standard_bindir_prefix): New static, holds target location to
17408 install binaries.
17409 (split_directories): New function to split a filename into
17410 component directories.
17411 (free_split_directories): New function, release memory allocated
17412 by split_directories.
17413 (make_relative_prefix): New function, make a relative pathname if
17414 the compiler is not in the expected location.
17415 (process_command): If GCC_EXEC_PREFIX was not specified, see if we
17416 can figure out an appropriate prefix from argv[0].
17417 * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
17418 STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define
17419 STANDARD_BINDIR_PREFIX.
17420
17421 Wed Nov 10 11:47:54 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
17422
17423 * config/c4x/c4x-protos.h: New file. Prototypes for functions defined
17424 in c4x.c.
17425 * config/c4x/c4x.h: Moved prototypes to c4x.h.
17426 * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
17427 c4x_secondary_memory_needed) Delete.
17428 (fp_zero_operand): Add mode argument.
17429
17430 Thu Nov 4 15:52:35 1999 Andrew Haley <aph@cygnus.com>
17431
17432 * reload1.c (reload_reg_free_for_value_p): Don't use a register
17433 that is in reload_reg_used.
17434
17435 Tue Nov 9 16:43:00 1999 Nick Clifton <nickc@cygnus.com>
17436
17437 * config/arm/arm-protos.h: New file: Prototypes for functions
17438 defined in arm.c and pe.c.
17439 * config/arm/arm.h: Fix compile time warnings.
17440 * config/arm/arm.c: Fix compile time warnings.
17441 * config/arm/pe.h: Fix compile time warnings.
17442 * config/arm/aout.h: Fix compile time warnings.
17443
17444 Tue Nov 9 14:55:44 1999 Nick Clifton <nickc@cygnus.com>
17445
17446 * config/m32r/m32r-protos.h: New file: Prototypes for functions
17447 defined in m32r.c
17448
17449 * config/m32r/m32r.h: Move prototypes to m32r-protos.h
17450 Add support for subtargets.
17451 Add prototypes for new predicates.
17452 Add scheduling macros.
17453
17454 * config/m32r/m32r.c: Fix compile time warnings.
17455 (int8_operand): New predicate function.
17456 (reg_or_cmp_int16_operand): New predicate function.
17457 (extend_operand): New predicate function.
17458 (m32r_adjust_code): New scheduling function.
17459 (m32r_adjust_priorty): New scheduling function.
17460 (m32r_sched_init): New scheduling function.
17461 (m32r_sched_reorder): New scheduling function.
17462 (m32r_sched_variable_issue): New scheduling function.
17463 (direct_return): New codegen function.
17464 (m32r_not_same_reg): New rtl testsing function.
17465
17466 * config/m32r/m32r.md: Fix compile time warnings.
17467 Add support for pre decrement and post increment memory
17468 references.
17469 Add S<cc> patterns.
17470 Add fabs patterns.
17471
17472 Mon Nov 8 22:20:13 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17473
17474 * global.c (EXECUTE_IF_CONFLICT): Don't define.
17475 (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
17476 (find_reg): Likewise.
17477
17478 Mon Nov 8 13:16:46 1999 Jason Eckhardt <jle@cygnus.com>
17479
17480 * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
17481 to avoid assembler errors.
17482
17483 Mon Nov 8 15:38:41 1999 Nick Clifton <nickc@cygnus.com>
17484
17485 * config/v850/v850-protos.h: New file: Prototypes for functions
17486 defined in v850.c
17487 * config/v850/v850.h: Move prototypes to v850-protos.h
17488 * config/v850/v850.c: Move prototypes to v850-protos.h
17489 * config/v850/v850.md: Fix compile time warnings.
17490
17491 * config/fr30/fr30-protos.h: New file: Prototypes for functions
17492 defined in fr30.c
17493 * config/fr30/fr30.h: Move prototypes to fr30-protos.h
17494 * config/fr30/fr30.c: Fix compile time warnings.
17495 * config/fr30/fr30.md: Fix compile time warnings.
17496
17497 Mon Nov 8 07:25:37 1999 Mark Mitchell <mark@codesourcery.com>
17498
17499 * tree.h (get_containing_scope): Declare it.
17500 * tree.c (get_containing_scope): New fucntion.
17501 (decl_function_context): Use it.
17502 * toplev.c (rest_of_compilation): Use get_containing_scope.
17503
17504 aMon Nov 8 03:03:07 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
17505
17506 * Makefile.in (rtl.o): Depend on toplev.h.
17507
17508 Sun Nov 7 20:55:14 1999 Mark Mitchell <mark@codesourcery.com>
17509
17510 * cse.c (delete_trivially_dead_insns): Replace alloca with
17511 xmalloc/xcalloc.
17512 * except.c (update_rethrow_references): Likewise.
17513 (init_eh_nesting_info): Likewise.
17514 * function.c (identify_blocks): Likewise.
17515 * gcse.c (dump_hash_table): Likewise.
17516 * graph.c (print_rtl_graph_with_bb): Likewise.
17517 * loop.c (combine_movables): Likewise.
17518 (move_movables): Likewise.
17519 (count_loop_regs_set): Likewise.
17520 (strength_reduce): Likewise.
17521 * profile.c (compute_branch_probabilities): New function, split
17522 out from ...
17523 (branch_prob): Here. Replace alloca with xmalloc/xcalloc.
17524 * regclass.c (regclass): Likewise.
17525 * regmove.c (regmove_optimize): Likewise.
17526 * toplev.c (compile_file): Likewise.
17527 (main): Don't mess with the stack rlimit.
17528
17529 Sun Nov 7 19:41:17 1999 Catherine Moore <clm@cygnus.com>
17530
17531 * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
17532 (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
17533
17534 Sun Nov 7 10:23:28 1999 Mark P. Mitchell <mark@codesourcery.com>
17535
17536 * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
17537
17538 Sun Nov 7 02:58:48 1999 Jeffrey A Law (law@cygnus.com)
17539
17540 * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
17541 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
17542 macro expansion.
17543
17544 Sat Nov 6 23:48:30 1999 Robert Lipe (robertlipe@usa.net)
17545
17546 * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
17547
17548 Sat Nov 6 17:34:39 1999 Jeffrey A Law (law@cygnus.com)
17549
17550 * gcse.c (post_dominators): Kill.
17551 (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
17552 (compute_code_hoist_data): Use compute_flow_dominators. Do not
17553 pass in a pdom array since we do not need pdoms.
17554 * haifa-sched.c (schedule_insns): Similarly.
17555 * flow.c (compute_dominators): Remove dead function.
17556 (compute_flow_dominators): Do not compute doms or pdoms if the
17557 caller does not request them. Split up loop to build doms and
17558 pdoms. Use a worklist to compute doms and pdoms.
17559 * basic-block.h (compute_dominators): Remove prototype.
17560
17561 Sat Nov 6 11:38:39 1999 Richard Henderson <rth@cygnus.com>
17562
17563 * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
17564 (insn_luid, insn_priority, insn_costs, insn_units): Remove.
17565 (insn_reg_weight, insn_depend, insn_dep_count): Remove.
17566 (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
17567 (cant_move, fed_by_spec_load, is_load_insn): Remove.
17568 (schedule_region): Remove unused variable.
17569 (schedule_insns): Allocate h_i_d, and not all the separate arrays.
17570
17571 Sat Nov 6 10:00:34 1999 Mark Mitchell <mark@codesourcery.com>
17572
17573 * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
17574 (update_equiv_regs): Likewise.
17575 (block_alloc): Likewise.
17576 * reg-stack.c (reg_to_stack): Likewise.
17577 (convert_regs_2): Likewise.
17578 * reload1.c (reload_as_needed): Likewise.
17579
17580 Sat Nov 6 09:57:59 1999 Mark Mitchell <mark@codesourcery.com>
17581
17582 * Makefile.in (dbxout.o): Depend on ggc.h.
17583 (dwarf2out.o): Likewise.
17584 (xcoffout.o): Likewise.
17585 * dbxout.c: Include ggc.h.
17586 (dbxout_init): Register lastfile as a root.
17587 * dwarf2out.c: Include ggc.h.
17588 (dwarf2out_line): Register lastfile as a root.
17589 * xcoffout.c: Include ggc.h.
17590 (xcoffout_source_line): Register xcoff_lastfile as a root.
17591
17592 Sat Nov 6 09:52:09 1999 Richard Henderson <rth@cygnus.com>
17593
17594 * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
17595
17596 Sat Nov 6 07:48:59 1999 Catherine Moore <clm@cygnus.com>
17597
17598 * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
17599 defined.
17600 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
17601
17602 Fri Nov 5 18:33:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17603
17604 * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
17605 (EXECUTE_IF_CONFLICT): Likewise.
17606 (ALLOCNO_LIVE_P): Avoid signed division.
17607 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
17608 (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
17609 (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
17610
17611 Fri Nov 5 12:04:02 1999 Richard Henderson <rth@cygnus.com>
17612
17613 * haifa-sched.c (schedule_block): Don't crash if there's no
17614 next insn for an interblock movement.
17615 (add_branch_dependences): Don't allow clobber insns to move either.
17616
17617 Fri Nov 5 10:18:11 1999 Richard Henderson <rth@cygnus.com>
17618
17619 * i386.c (split_xf): New.
17620 * i386-protos.h: Declare it.
17621 * i386.md (movxf_1): Add general regs alternatives.
17622 (movxf_1+1): New splitter for same.
17623
17624 Fri Nov 5 12:05:52 1999 Nick Clifton <nickc@cygnus.com>
17625
17626 * function.c (purge_addressof_1): Add missing return values.
17627
17628 Fri Nov 5 10:07:25 1999 Nick Clifton <nickc@cygnus.com>
17629
17630 * function.c (is_addressof): New function. Returns true if
17631 the given piece of RTL is an ADDRESSOF.
17632 (purge_addressof_1): Make boolean. Return false if the
17633 ADDRESSOFs could not be purged.
17634 (purge_addressof): If ADDRESSOFs could not be purged from the
17635 notes attached to an insn, remove the offending note(s),
17636 unless they are attached to a libcall.
17637
17638 1999-11-05 Andreas Jaeger <aj@suse.de>
17639
17640 * genoutput.c (null_operand =): Initialize all fields.
17641
17642 * errors.h: Add extern to prototypes.
17643
17644 Fri Nov 5 01:44:09 1999 Jeffrey A Law (law@cygnus.com)
17645
17646 * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
17647 * configure: Rebuilt.
17648
17649 Fri Nov 5 01:24:37 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17650
17651 * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
17652 (mirror_conflicts): New function.
17653 (global_alloc): Call it.
17654 (expand_preferences): Remove redundant CONFLICTP test.
17655 (find_reg, dump_conflicts): Likewise.
17656 (prune_preferences): Process conflicts one word at a time.
17657
17658 Fri Nov 5 01:05:21 1999 Richard Henderson <rth@cygnus.com>
17659
17660 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
17661 instead of an explicit loop.
17662
17663 Thu Nov 4 23:07:14 1999 Jim Wilson <wilson@cygnus.com>
17664
17665 * cse.c (cse_insn): Revert Oct 31 change. When computing src_elt,
17666 if REG_RETVAL check succeeds, then put classp in src_elt.
17667
17668 Thu Nov 4 23:48:14 1999 Jeffrey A Law (law@cygnus.com)
17669
17670 * function.c (pad_to_arg_alignment): Only update argument_pad
17671 if the argument's alignment is greater than STACK_BOUNDARY.
17672
17673 Thu Nov 4 16:44:53 1999 Richard Henderson <rth@cygnus.com>
17674
17675 * bitmap.h (BITMAP_XFREE): New.
17676 * flow.c (life_analysis): Use it.
17677 (life_analysis_1): Free blocks.
17678
17679 * combine.c (undo_commit): New.
17680 (try_combine): Use it. Don't zap undobuf.undos.
17681 (combine_instructions): Don't zap undobuf.undos; free the
17682 undobuf.frees list.
17683
17684 * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
17685
17686 * stmt.c (cost_table_): New.
17687 (estimate_case_costs): Use it instead of xmalloc.
17688
17689 * toplev.c (compile_file): Reuse dumpname memory instead
17690 of strdup'ing it.
17691
17692 Thu Nov 4 16:36:44 1999 Richard Henderson <rth@cygnus.com>
17693
17694 * reg-stack.c (convert_regs_1): Initialize target_stack->top
17695 after verifying an EH edge.
17696
17697 * haifa-sched.c (init_rgn_data_dependences): Correctly
17698 size bb_pending_lists_length when zeroing.
17699
17700 Thu Nov 4 16:36:36 1999 Richard Henderson <rth@cygnus.com>
17701
17702 * function.c (diddle_return_value): New.
17703 (expand_function_end): Use it.
17704 * stmt.c (expand_null_return): Likewise.
17705 (expand_value_return): Likewise.
17706
17707 * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
17708
17709 * reload1.c (reload): Don't remove return value clobbers.
17710
17711 Thu Nov 4 13:33:46 1999 Richard Henderson <rth@cygnus.com>
17712
17713 * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
17714
17715 Thu Nov 4 12:49:52 1999 Richard Henderson <rth@cygnus.com>
17716
17717 * cse.c (cse_main): Use xmalloc, not alloca.
17718 (cse_basic_block): Likewise.
17719 * local-alloc.c (local_alloc): Likewise.
17720
17721 Thu Nov 4 14:22:12 1999 David Billinghurst <David.Billinghurst@riotinto.com.au>
17722 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
17723
17724 * rtl.c: Include toplev.h.
17725 (fatal): Remove declaration.
17726
17727 Thu Nov 4 06:39:47 1999 Jeffrey A Law (law@cygnus.com)
17728
17729 * haifa-sched.c (schedule_block): Fix thinko.
17730
17731 1999-11-03 James McKelvey <mckelvey@fafnir.com>
17732
17733 * fixinc/fixincl.c(create_file): Allow for systems that do not have
17734 S_IR* defined values
17735
17736 1999-11-03 Philippe De Muyter <phdm@macqel.be>
17737
17738 * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
17739 call `malloc' instead.
17740
17741 Wed Nov 3 23:05:14 1999 Mark Mitchell <mark@codesourcery.com>
17742
17743 * flags.h (flag_renumber_insns): Declare.
17744 * emit-rtl.c (renumber_insns): Check flag_renumber_insns. Print
17745 renumbering table.
17746 * rtl.h (renumber_insns): Change prototype.
17747 * toplev.c (flag_renumber_insns): Define.
17748 (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
17749
17750 Wed Nov 3 15:11:27 1999 David S. Miller <davem@redhat.com>
17751
17752 * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
17753 and fpsqrtd. Use them and create fdiv function unit to more
17754 accurately represent fpu sqrt pipeline semantics on UltraSparc.
17755 * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
17756
17757 Wed Nov 3 15:11:27 1999 Matteo Frigo <athena@fftw.org>
17758
17759 * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
17760 3 on UltraSparc.
17761 * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
17762 insn into ready list, do not use just a raw swap.
17763
17764 Wed Nov 3 14:51:59 1999 Mark P. Mitchell <mark@codesourcery.com>
17765
17766 * rtl.h (renumber_insns): New function.
17767 (remove_unnecessary_notes): Likewise.
17768 * emit-rtl.c (renumber_insns): Define.
17769 (remove_unncessary_notes): Likewise.
17770 * toplev.c (rest_of_compilation): Remove dead code.
17771 Use renumber_insns and remove_unncessary_notes.
17772
17773 * gcse.c (struct null_pointer_info): New type.
17774 (get_bitmap_width): New function.
17775 (current_block): Remove.
17776 (nonnull_local): Likewise.
17777 (nonnull_killed): Likewise.
17778 (invalidate_nonnull_info): Take a null_pointer_info as input.
17779 (delete_null_pointer_checks_1): New function.
17780 (delete_null_pointer_checks): Use it.
17781
17782 * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
17783 (split_edges): Likewise.
17784 (schedule_block): Likewise.
17785 (compute_block_backward_dependencies): Likewise.
17786 (schedule_region): Likewise.
17787 (schedule_insns): Likewise.
17788
17789 Wed Nov 3 15:40:23 1999 Catherine Moore <clm@cygnus.com>
17790
17791 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
17792 * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
17793 * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
17794 * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
17795 * jump.c (delete_unreferenced_labels): Don't delete if
17796 LABEL_ALTERNATE_NAME is set.
17797 * print-rtl.c (print_rtx): Dump alternate name.
17798 * rtl.def (CODE_LABEL): Change format to "iuuis00s".
17799 * rtl.h (LABEL_ALTERNATE_NAME): Define.
17800 * rtl.texi (LABEL_ALTERNATE_NAME): Document.
17801 * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
17802
17803 Wed Nov 3 15:39:19 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17804
17805 * fix-header.c (recognized_extern, recognized_function): Constify
17806 a char*.
17807
17808 * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
17809 (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
17810 (compute_available): Remove unused variable `last'.
17811 (compute_nearerout): Remove unused variable `temp_bitmap'.
17812 (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
17813 Remove unused variable `x'.
17814
17815 * scan.h (recognized_function, recognized_extern): Constify a
17816 char*.
17817
17818 * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
17819
17820 Wed Nov 3 10:40:53 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
17821
17822 * varasm.c (decode_rtx_const): Use XSTR to access the string
17823 of a SYMBOL_REF.
17824
17825 Wed Nov 3 10:10:58 1999 Richard Henderson <rth@cygnus.com>
17826
17827 * c-decl.c (duplicate_decls): Copy DECL_MODE too.
17828
17829 Wed Nov 3 12:12:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17830
17831 * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
17832
17833 Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com)
17834
17835 * pa.c (ireg_operand): New function.
17836 * pa.h (PREDICATE_CODES): Handle ireg_operand.
17837 * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
17838 Fix out of date comment.
17839
17840 * pa.md (negdi2): Turn into expander + anonymous pattern.
17841
17842 * reload.c (find_reloads): Fix typos in recent change.
17843
17844 * dwarf2out.c: Do not include ctype.h.
17845
17846 Tue Nov 2 21:53:44 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17847
17848 * regclass.c (record_reg_classes): Always use may_move_cost when
17849 seeing how operand fits with various register classes.
17850
17851 Tue Nov 2 15:38:17 1999 Richard Henderson <rth@cygnus.com>
17852
17853 * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
17854 * toplev.c: Revert Nov 1 13:22 change.
17855
17856 Tue Nov 2 14:21:37 1999 Jason Eckhardt <jle@cygnus.com>
17857
17858 * config/pa/pa.md (height reduction patterns): Add checks for
17859 overlapping operands to avoid semantic-destroying splits for
17860 height reduction patterns.
17861
17862 Tue Nov 2 15:27:31 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
17863
17864 * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
17865 have been an hyphen, fixed.
17866 * configure: Rebuilt.
17867
17868 Tue Nov 2 17:04:36 1999 Nick Clifton <nickc@cygnus.com>
17869
17870 * config/arm/tpe.h: Add prototypes for exported functions.
17871 * config/arm/pe.c: Fix compile time warnings.
17872 * config/arm/semi.h: Fix compile time warnings.
17873 * config/arm/arm.c: Fix compile time warnings.
17874 * config/arm/arm.h: Fix compile time warnings.
17875 * config/arm/arm.md: Fix compile time warnings.
17876 * config/arm/thumb.c: Fix compile time warnings.
17877 * config/arm/thumb.h: Fix compile time warnings.
17878 * config/arm/thumb.md: Fix compile time warnings.
17879
17880 Tue Nov 2 04:10:24 1999 Jan Hubicka <hubicka@freesoft.cz>
17881
17882 * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
17883 detection code
17884
17885 * unroll.c (unroll_loop): Remove LOOP notes when loop is
17886 completely unrolled.
17887
17888 Tue Nov 2 16:57:22 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17889
17890 * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
17891
17892 Tue Nov 2 09:43:00 1999 Catherine Moore <clm@cygnus.com>
17893
17894 * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
17895 * rtl.h (rtx_equal_p): Move prototype.
17896 * rtl.c (rtx_equal_function_value_matters): Move from
17897 rtlanal.c
17898 (rtx_equal_p): Likewise.
17899 * rtlanal.c (rtx_equal_function_value_matters): Delete.
17900 (rtx_equal_p): Likewise.
17901
17902 Mon Nov 1 23:21:17 1999 Jason Merrill <jason@yorick.cygnus.com>
17903
17904 * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
17905 ! HAS_INIT_SECTION.
17906
17907 Mon Nov 1 23:37:38 1999 Jeffrey A Law (law@cygnus.com)
17908
17909 * gcc.1 (PA options): Remove obsolete -mshared-libs options.
17910
17911 * pa.h (ADDR_VEC_ALIGN): Define.
17912
17913 * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
17914 notes when presented with "if (foo) break; end_of_loop" and
17915 the break sequence gets moved out of the loop.
17916
17917 * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
17918 Remove explicit zero initializations of entries within MAP.
17919
17920 Mon Nov 1 18:09:14 1999 Richard Henderson <rth@cygnus.com>
17921
17922 * reg-stack.c (convert_regs_1): Handle EH edges specially.
17923
17924 Mon Nov 1 15:41:01 1999 Mark P. Mitchell <mark@codesourcery.com>
17925
17926 * bitmap.h (BITMAP_XMALLOC): New macro.
17927 * flow.c (CLEAN_ALLOCA): Remove.
17928 (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
17929 (life_analysis): Likewise.
17930 (update_life_info): Don't use CLEAN_ALLOCA.
17931 (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
17932 (calculate_global_regs_live): Likewise.
17933 (print_rtl_with_bb): Likewise.
17934 (verify_flow_info): Likewise.
17935 * global.c (global_alloc): Likewise.
17936 (global_conflicts): Likewise.
17937 * integrate.c (save_for_inline_nocopy): Likewise.
17938 (expand_inline_function): Likewise.
17939 * jump.c (jump_optimize_1): Likewise.
17940 (duplicate_loop_exit_test): Likewise.
17941 (thread_jumps): Likewise.
17942 * loop.c (loop_optimize): Likewise.
17943 (combine_givs): Likewise.
17944 (recombine_givs): Likewise.
17945 * reorg.c (dbr_schedule): Likewise.
17946 * unroll.c (unroll_loop): Likewise.
17947
17948 * combine.c (combine_instructions): Use xmalloc instead of alloca.
17949
17950 Mon Nov 1 13:22:30 1999 Richard Henderson <rth@cygnus.com>
17951
17952 * toplev.c (rest_of_compilation): Don't optimize the CFG
17953 when rebuilding, just before dbr.
17954
17955 Mon Nov 1 14:35:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17956
17957 * output.h (assemble_end_function, assemble_destructor,
17958 assemble_constructor, assemble_gc_entry, assemble_global,
17959 assemble_label, output_constant_pool) Constify a char*.
17960
17961 * varasm.c (assemble_destructor, assemble_constructor,
17962 assemble_gc_entry, assemble_end_function, assemble_global,
17963 assemble_label, output_constant_pool): Likewise.
17964
17965 Mon Nov 1 14:22:51 1999 Nick Clifton <nickc@cygnus.com>
17966
17967 * config/arm/thumb.c (thumb_expand_prologue): Add comments
17968 explaining what is goin on in this function.
17969
17970 Mon Nov 1 08:03:15 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17971
17972 * regclass.c (record_reg_classes): In matching case, recompute
17973 costs since the direction of movement is different.
17974
17975 Sun Oct 31 21:59:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
17976
17977 * resource.c (mark_target_live_regs): For unconditional branches,
17978 the resources found at the branch target should be added to the
17979 resources found so far, not intersected.
17980
17981 Sun Oct 31 15:48:49 1999 Philippe De Muyter <phdm@macqel.be>
17982
17983 * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
17984 old cpp's.
17985 * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
17986 (sys/mman.h): Include this file only if #HAVE_MMAP.
17987 (run_compiles): Initialize `esac_fmt' with one old KR string, not
17988 with automatically concatenated ANSI strings.
17989
17990 Sun Oct 31 23:57:07 1999 Mark Mitchell <mark@codesourcery.com>
17991
17992 * ggc-page.c (struct page_entry): Remove save_num_free_objects.
17993 (DIV_ROUND_UP): Robustify.
17994 (ggc_recalculate_in_use_p): New function.
17995 (release_pages): Don't inline it.
17996 (ggc_alloc_obj): Don't refuse to allocate objects on pages for
17997 outer contexts.
17998 (ggc_pop_context): Use ggc_recalculate_in_use_p.
17999 (clear_marks): Always save in_use_p.
18000 (sweep_pages): Use ggc_recalculate_in_use_p.
18001 (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
18002 Release pages before counting statistics.
18003
18004 Sun Oct 31 23:42:37 1999 Mark Mitchell <mark@codesourcery.com>
18005
18006 * toplev.c (rest_of_compilation): Fix thinko in this change:
18007
18008 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
18009
18010 (rest_of_compilation): If inside an inlined external function,
18011 pretend we are just being declared.
18012
18013 Sun Oct 31 23:03:25 1999 Jeffrey A Law (law@cygnus.com)
18014
18015 * flow.c (calculate_global_regs_live): Fix thinko.
18016
18017 * integrate.c (expand_inline_function): Fix bugs in previous
18018 change from Oct 28, 1999.
18019
18020 Sun Oct 31 20:27:45 1999 Mark Mitchell <mark@codesourcery.com>
18021
18022 * stmt.c (expand_value_return): Fix typo in this change:
18023
18024 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18025 (expand_value_return): Correctly convert VAL when promoting function
18026 return; support RETURN_REG being a PARALLEL.
18027
18028 Sun Oct 31 20:25:42 1999 Mark P. Mitchell <mark@codesourcery.com>
18029
18030 * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
18031
18032 Sun Oct 31 20:42:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18033
18034 * hard-reg-set.h (reg_names): Constify a char*.
18035
18036 * regclass.c (reg_names): Likewise.
18037
18038 * regs.h (reg_names): Likewise
18039
18040 * a29k/a29k.c (reg_names): Delete declaration.
18041
18042 * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
18043
18044 * arc/arc.c (arc_save_restore, arc_output_function_prologue,
18045 arc_output_function_epilogue): Likewise.
18046
18047 * elxsi/elxsi.c (reg_names): Likewise.
18048
18049 * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
18050
18051 * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
18052 Likewise.
18053
18054 * m88k/m88k.c (output_function_profiler): Likewise.
18055
18056 * sparc/sparc.c (sparc_flat_output_function_prologue,
18057 sparc_flat_output_function_epilogue): Likewise.
18058
18059 Sun Oct 31 13:32:15 CET 1999 Marc Lehmann <pcg@goof.com>
18060
18061 * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
18062 warning from -Wuninitialized and put it under -W.
18063 * function.c (uninitialized_vars_warning): Warn only when the
18064 corresponding flag is set.
18065
18066 Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com)
18067
18068 * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
18069 is nonzero and the single set does not have an elt, then assign
18070 it an elt.
18071
18072 * simplify-rtx.c: New file.
18073 * Makefile.in (OBJS): Add simplify-rtx.o
18074 (simplify-rtx.o): Add dependencies.
18075 * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
18076 * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
18077 (cse_gen_binary, simplify_unary_operation): Delete.
18078 (simplify_binary_operation, simplify_plus_minus): Likewise.
18079 (check_fold_consts, simplify_relation_operation): Likewise.
18080 (simplify_ternary_operation): Likewise.
18081 (delete_trivially_dead_insns): Simplify the contents of the
18082 REG_EQUAL note before trying to substitute it into the source
18083 of the reg-reg copy at the end of a libcall sequence.
18084
18085 * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All
18086 references/callers changed.
18087
18088 * mn10200.c (mn10200_va_arg): Force the return value into a
18089 register.
18090
18091 * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
18092
18093 * cccp.c (macroexpand): Avoid out of range accesses for omitted
18094 arguments.
18095
18096 Sat Oct 30 22:42:50 1999 Stephen L Moshier <moshier@mediaone.net>
18097
18098 * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
18099
18100 Sat Oct 30 22:19:26 1999 Jeffrey A Law (law@cygnus.com)
18101
18102 * fold-const.c (fold): Fix thinko when optimizing comparisons
18103 against -0.0.
18104
18105 Sat Oct 30 21:32:17 1999 David Starner <dstarner98@aasaa.ofe.org>
18106
18107 * gcc.texi (Passes): Update front-end files to their current
18108 location.
18109
18110 Sat Oct 30 14:41:40 1999 Richard Henderson <rth@cygnus.com>
18111
18112 * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
18113 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
18114 (PREDICATE_CODES): Add addition_operation.
18115 * alpha-protos.h (addition_operation): Declare.
18116 (secondary_reload_class): Likewise.
18117 * alpha.c (addition_operation): New.
18118 (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
18119 * alpha.md (adddi3): Turn into expander.
18120 (*lda, *adddi_2): New.
18121 (movsf, movdf patterns): Don't preference integer regs.
18122 (movsi, movdi patterns): Don't preference fp regs.
18123
18124 Sat Oct 30 14:38:22 1999 Richard Henderson <rth@cygnus.com>
18125
18126 * genrecog.c (write_switch): Check for duplicate CODE cases.
18127
18128 Sat Oct 30 14:31:48 1999 Richard Henderson <rth@cygnus.com>
18129
18130 * ggc-common.c: Update pre-function commentary.
18131 * ggc-page.c: Likewise.
18132 (poison): Remove.
18133 (poison_pages): Use memset directly.
18134 (ggc_alloc_obj): Likewise. Use a different pattern than poison_pages.
18135 (ggc_collect): Poison before sweeping.
18136 * ggc-simple.c: Update pre-function commentary.
18137 (ggc_alloc_obj): Poison non-zeroed memory.
18138
18139 Sat Oct 30 14:28:52 1999 Mark Mitchell <mark@codesourcery.com>
18140
18141 * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
18142 match format string, even on 64-bit hosts.
18143 * gcc-page.c (ggc_page_print_statistics): Likewise.
18144
18145 Sat Oct 30 14:38:04 1999 Catherine Moore <clm@cygnus.com>
18146
18147 * config/i386/i386.c (ix86_cpu): Revert last patch.
18148 * config/i386/i386.h (ix86_cpu): Ditto.
18149
18150 Fri Oct 29 17:00:42 1999 Jim Wilson <wilson@cygnus.com>
18151
18152 * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
18153 TYPE_SIZE, convert type of result to sizetype.
18154
18155 Fri Oct 29 14:34:17 1999 Richard Henderson <rth@cygnus.com>
18156
18157 * flow.c (count_or_remove_death_notes): Equate NULL with the
18158 universal set.
18159
18160 * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
18161 * toplev.c (rest_of_compilation): Rebuild CFG immediately before
18162 dbr_schedule.
18163
18164 * i386.c (pic_label_no): Delete.
18165 (ix86_attr_length_default): Don't use single_set to peek
18166 inside a parallel.
18167
18168 * recog.c (peephole2_optimize): Allow recog_next_insn to index
18169 the first insn after bb->end.
18170 * i386.md (push mem peeps): Scratch is live after evaluation
18171 of the memory.
18172 (cmp mem peep): Similarly.
18173
18174 Fri Oct 29 11:50:11 1999 Catherine Moore <clm@cygnus.com>
18175
18176 * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
18177 * function.c (pad_to_arg_alignment): Add missing braces.
18178
18179 Fri Oct 29 13:53:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18180
18181 * alpha/alpha-protos.h (literal_section): Add prototype.
18182 (alpha_need_linkage, alpha_start_function,alpha_end_function):
18183 Constify a char*.
18184
18185 * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
18186 prototype.
18187 (alpha_start_function, alpha_end_function, float_strings,
18188 alpha_need_linkage): Constify a char*
18189
18190 * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
18191
18192 * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
18193
18194 * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
18195
18196 * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
18197
18198 Fri Oct 29 13:49:39 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18199
18200 * flow.c (debug_flow_info): Add prototype.
18201
18202 * gcc.c (main): Likewise.
18203
18204 * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
18205 Likewise.
18206
18207 * reload1.c (failed_reload, set_reload_reg): Likewise.
18208
18209 * mips-tfile.c (main): Likewise.
18210 (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
18211 with ATTRIBUTE_NORETURN.
18212
18213 Fri Oct 29 18:16:03 1999 Andrew Haley <aph@cygnus.com>
18214
18215 * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
18216 DECL is not a memory ref.
18217
18218 Fri Oct 29 09:05:34 1999 Catherine Moore <clm@cygnus.com>
18219
18220 * config/i386/i386.h (ix86_cpu): Remove extern attribute.
18221 * config/i386/i386.c (ix86_cpu): Add extern attribute.
18222
18223 Fri Oct 29 16:30:04 1999 Andrew Haley <aph@cygnus.com>
18224
18225 * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
18226 * config/mips/elf64.h: ditto.
18227
18228 Fri Oct 29 08:03:57 1999 Catherine Moore <clm@cygnus.com>
18229
18230 * expr.c (emit_push_insn): New argument alignment_pad.
18231 Update all callers. Adjust stack pointer based on alignment pad.
18232 * function.c (pad_to_arg_alignment): New argument alignment_pad.
18233 Update all callers. Track alignment_pad if boundary > PARM_BOUNDARY.
18234 (locate_and_pad_parm): New argument alignment_pad. Update all
18235 callers.
18236 * expr.h (emit_push_insn): Update prototype.
18237 (locate_and_pad_parm): Update prototype.
18238 * calls.c (arg_data): Add new field alignment_pad.
18239 (initialize_argument_information): Initialize alignment_pad.
18240
18241 Fri Oct 29 02:51:35 1999 Mark Mitchell <mark@codesourcery.com>
18242
18243 * except.c (free_eh_nesting_info): Free the info itself.
18244 * function.c (free_after_compilation): Don't free NULL.
18245 * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
18246 (pre_edge_insert): Free inserted.
18247 * stmt.c (free_stmt_status): Don't free NULL.
18248
18249 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
18250
18251 * gcov.c (DIR_SEPARATOR): Provide default.
18252 (output_data): Add test for MS-DOS format absolute filename.
18253 (fancy_abort): Correct program name.
18254 (open_files): Open all files in binary mode.
18255 * libgcc2.c (__bb_exit_func): Likewise.
18256
18257 * profile.c (init_branch_prob): Specify binary when opening files.
18258
18259 * flags.h (flag_unwind_tables): New decl.
18260 * toplev.c (flag_unwind_table): New definition.
18261 (f_options): Add -funwind-tables.
18262 (decode_g_option): Clarify warning when unknown -g option is given.
18263 (rest_of_compilation): If inside an inlined external function,
18264 pretend we are just being declared.
18265
18266 * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
18267 (dwarf2out_frame_finish): Likewise.
18268
18269 Fri Oct 29 07:44:26 1999 Vasco Pedro <vp@di.fct.unl.pt>
18270
18271 * fold-const.c (merge_ranges): If not in0, but in1, handle
18272 upper bounds equal like subset case.
18273
18274 Thu Oct 28 19:22:24 1999 Douglas Rupp <rupp@gnat.com>
18275
18276 * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
18277 passed in a register but moved to the stack.
18278
18279 Thu Oct 28 19:12:57 1999 Sam Tardieu <tardieu@act-europe.fr>
18280
18281 * gcc.c (pass_exit_codes, greatest_status): New variables.
18282 (struct option_map): Add entry for "--pass-exit-codes".
18283 (execute): Update greatest_status if error.
18284 (display_help): Add documentation for -pass-exit-codes.
18285 (process_command): Handle -pass-exit-codes.
18286 (main): Look at pass_exit_codes and greatest_status on call to exit.
18287
18288 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18289
18290 * reload.c (find_reloads): Refine test for no input reload
18291 case to not includes reloads emitted after insn.
18292
18293 * function.c (find_temp_slots_from_address): Handle sum involving
18294 a register that points to a temp slot.
18295 (update_temp_slot_address): Make recursive call if both old and
18296 new are PLUS with a common operand.
18297 * calls.c (expand_call): Mark temp slot for result as having
18298 address taken.
18299
18300 * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
18301
18302 * gcc.c (process_command): Add standard_exec_prefix with "GCC"
18303 component as well as "BINUTILS".
18304
18305 * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
18306 * integrate.c (copy_rtx_and_substitute): Likewise.
18307 (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
18308 All callers changed.
18309 * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
18310
18311 * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
18312 gdb extensions, write size of type; also be more consistent
18313 in using references when this is a subtype.
18314
18315 * pa.md (extv, extzv, insv): Use define_expand to reject constant
18316 that is out of range.
18317
18318 * loop.c (unknown_constant_address_altered): New variable.
18319 (prescan_loop): Initialize it.
18320 (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
18321 (invariant_p, case MEM): Remove handling for volatile and readonly;
18322 check new variable if readonly.
18323 (check_dbra_loop): Chdeck unknown_constant_address_altered.
18324
18325 * cse.c (canon_hash, case MEM): Do not record if BLKmode.
18326 (addr_affects_sp_p): Removed from note_mem_written and only
18327 define #ifdef AUTO_INC_DEC.
18328
18329 * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
18330
18331 * regclass.c (record_reg_classes): Properly handle register move
18332 directions.
18333
18334 * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
18335 Don't think valid if both operands are invalid.
18336 (struct constant_descriptor): New field RTL.
18337 (mark_const_hash_entry): Mark it.
18338 (record_constant{,_rtx}): Initialize it.
18339 (output_constant_def): Allocate RTL in permanent obstack and
18340 save in table.
18341 ({record,compare}_constant_1): Modes must match for
18342 CONSTRUCTOR of ARRAY_TYPE.
18343
18344 * c-common.h (initializer_constant_valid_p): Delete decl from here.
18345 * output.h (initializer_constant_valid_p): Move decl to here.
18346 * c-common.c (initializer_constant_valid_p): Delete function from here.
18347 * varasm.c (initializer_constant_valid_p): Move function to here.
18348
18349 * tree.h (STRIP_SIGN_NOPS): New macro.
18350 * fold-const.c (optimize_minmax_comparison): New function.
18351 (invert_truthvalue, case WITH_RECORD_EXPR): New case.
18352 (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
18353 (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
18354 cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
18355 widening conversions.
18356 (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
18357 to look at size of mode, not precision of type; also add missing cases.
18358 (optimize_bit_field_compare, decode_field_reference): Don't try to
18359 optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
18360
18361 * dwarf2out.c (ctype.h): Include.
18362 (dwarf2out_set_demangle_name_func): New function.
18363 (size_of_line_info): Deleted.
18364 (output_line_info): Compute size of line info table from difference
18365 of labels.
18366 (base_type_die, add_name_attribute): Call demangle function, if any.
18367 (field_byte_offset): Use bits per word for variable length fields.
18368 (gen_array_type_die): Add array name.
18369 (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
18370 (dwarf2out_add_library_unit_info): New function.
18371
18372 * explow.c (set_stack_check_libfunc): New function.
18373 (stack_check_libfunc): New static variable.
18374 (probe_stack_range): Allow front-end to set up a libfunc to call.
18375
18376 * combine.c (simplify_comparison): When making comparison in wider
18377 mode, check for having commuted an AND and a SUBREG.
18378 (contains_muldiv): New function.
18379 (try_combine): Call it when dividing a PARALLEL.
18380 (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
18381 (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
18382 a PLUS.
18383 (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
18384 use one of the CLOBBERs instead.
18385 (if_then_else_cond): If comparing against zero, just return thing
18386 being compared.
18387
18388 * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
18389 Don't generate shifts and subtract if have conditional arithmetic.
18390
18391 * rtl.h (delete_barrier): New declaration.
18392 * jump.c (jump_optimize): Set up to handle conditional call.
18393 In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
18394 (delete_barrier): New function.
18395
18396 * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
18397
18398 * recog.c (nonmemory_operand): Accept ADDRESSOF.
18399
18400 * tree.c (build_type_attribute_variant): Push to obstack of
18401 ttype around type_hash_canon call.
18402
18403 * expr.c (placeholder_list): Move decl to file scope.
18404 (expand_expr): Don't force access to volatile just because its
18405 address is taken.
18406 If ignoring reference operations, just expand the operands.
18407 (expand_expr, case COMPONENT_REF): Propagate
18408 EXPAND_CONST_ADDRESS to recursive call when expanding inner.
18409 Refine test for using bitfield operations vs pointer punning.
18410 (expand_expr, case CONVERT_EXPR): If converting to
18411 BLKmode UNION_TYPE from BLKmode, just return inner object.
18412 Use proper mode in store_field call.
18413 Properly set sizes of object to store and total size in store_field
18414 call for convert to union.
18415 (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
18416 memory (like for ADDR_EXPR). Also, don't put constant in register if
18417 we'll want it in memory.
18418 (readonly_fields_p): New function.
18419 (expand_expr, case INDIRECT_REF): Call it if LHS.
18420 (expand_assignment): Handle a RESULT_DECL where
18421 DECL_RTL is a PARALLEL.
18422 (do_jump, case WITH_RECORD_EXPR): New case.
18423 (get_inner_reference): Always go inside a CONVERT_EXPR
18424 and NOP_EXPR if both modes are the same.
18425 (store_field): Use bitfield operations if size of bitsize is not same
18426 as size of RHS's type.
18427 Check for bitpos not a multiple of alignment in BLKmode case.
18428 Do block move in largest possible alignment.
18429 (store_constructor): Set BITSIZE to -1 for variable size and properly
18430 in case of array of BLKmode.
18431 (expand_expr_unaligned): New function.
18432 (do_compare_and_jump): Call it.
18433
18434 * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
18435 * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
18436 does not include 'o'.
18437
18438 * function.c (instantiate_virtual_regs_1, case SET): Handle case where
18439 both SET_DEST and SET_SRC reference a virtual register.
18440 (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
18441
18442 * integrate.c (expand_inline_function): Handle case of setting
18443 virtual stack vars register (from built in setjmp); when parameter
18444 lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
18445 (subst_constant): Add new parm, MEMONLY.
18446 (expand_inline_function, integrate_parm_decls): Pass new parm.
18447 (integrate_decl_tree): Likewise.
18448 (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
18449 (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
18450 (copy_rtx_and_substitute, case SET): Add explicit calls to
18451 copy_rtx_and_substitute for both sides.
18452
18453 * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
18454 constraints.
18455 (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
18456 within INDEX_TYPE, instead of before.
18457 (fixup_gotos): Use f->target_rtl, not the next insn,
18458 since latter may be from a later fixup.
18459 (expand_value_return): Correctly convert VAL when promoting function
18460 return; support RETURN_REG being a PARALLEL.
18461 (expand_return): When checking for result in regs and having
18462 cleanup, consider PARALLEL in DECL_RTL as being in regs.
18463
18464 1999-10-28 21:27 -0700 Zack Weinberg <zack@bitmover.com>
18465
18466 * cpplib.h (struct cpp_buffer: fname, nominal_fname,
18467 last_nominal_fname): Mark const.
18468 (struct include_hash: name, nshort, control_macro): Mark
18469 const.
18470 (struct macrodef: symnam): Mark const.
18471 (struct if_stack: fname): Mark const.
18472 (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
18473 (IStable): New character-syntax array which encompasses all
18474 the old is_foo arrays.
18475 (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
18476 is_space): New macros for interrogating IStable.
18477 (check_macro_name): Kill last argument. All callers changed.
18478
18479 * cppinit.c (initialize_char_syntax): Delete.
18480 (is_idchar, is_idstart, is_hor_space, is_space,
18481 trigraph_table): Delete.
18482 (IStable): New. Initialize with clever macros to avoid
18483 information duplication.
18484 (builtin_array): Table of builtins to get rid of explicit list
18485 in initialize_builtins.
18486 (initialize_builtins): Use builtins_array.
18487 (cpp_start_read): Call init_IStable, and set IStable['$'] if
18488 opts->dollars_in_ident.
18489
18490 * cppexp.c: Change all refs to is_xyz[] arrays to use new
18491 is_xyz() macros.
18492 (cpp_parse_expr): Avoid 'format string is not constant'
18493 warning. Use ISGRAPH to identify printable chars.
18494 * cppfiles.c: Change all refs to is_xyz[] arrays to use new
18495 is_xyz() macros.
18496 (read_and_prescan): Map trigraphs to chars with open-coded
18497 if-else-if-... sequence, not a lookup table.
18498 * cpphash.c: Change all refs to is_xyz[] arrays to use new
18499 is_xyz() macros.
18500 * cpplib.c: Change all refs to is_xyz[] arrays to use new
18501 is_xyz() macros. Kill SKIP_ALL_WHITE_SPACE (unused).
18502 (check_macro_name): Remove ability to report an invalid
18503 assertion name, which is never used.
18504 (do_line): Constify a couple of char *'s.
18505 * cppmain.c (main): Call cpp_cleanup before returning.
18506
18507 Thu Oct 28 21:16:35 1999 Mark Mitchell <mark@codesourcery.com>
18508
18509 * ggc.h (struct ggc_statistics): New type.
18510 (ggc_get_size): New function.
18511 (ggc_print_statistics): Likewise.
18512 * ggc-common.c (ggc_stats): New variable.
18513 (ggc_mark_rtx_children): Keep statistics.
18514 (ggc_mark_tree_children): Likewise.
18515 (ggc_print_statistics): New function.
18516 * ggc-page.c (struct globals): Add bytes_mapped field.
18517 (alloc_anon): Update it.
18518 (release_pages): Likewise.
18519 (ggc_get_size): New function.
18520 (ggc_page_print_statistics): New function.
18521 * ggc-simple.c (ggc_get_size): New function.
18522
18523 Fri Oct 29 06:32:44 1999 Geoffrey Keating <geoffk@cygnus.com>
18524
18525 * flow.c (propagate_block): When the last reference to a label
18526 before an ADDR_VEC is deleted because the reference is a dead
18527 store, delete the ADDR_VEC.
18528
18529 Thu Oct 28 12:28:50 1999 Richard Henderson <rth@cygnus.com>
18530
18531 * resource.c (find_free_register): Don't use the frame pointer
18532 if frame_pointer_needed.
18533
18534 Thu Oct 28 10:02:00 1999 Jim Wilson <wilson@cygnus.com>
18535
18536 * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
18537 (function_arg_pass_by_reference): Check for a NULL pointer in cum.
18538
18539 * config/i960/i960.c (i960_va_start): New locals base, num.
18540 Use INDIRECT_REF instead of ARRAY_REF on valist.
18541 (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
18542
18543 Thu Oct 28 09:45:48 1999 Mark Mitchell <mark@codesourcery.com>
18544
18545 * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
18546
18547 Thu Oct 28 03:37:50 1999 Peter Gerwinski <peter@gerwinski.de>
18548
18549 * tree.def (PLACEHOLDER_EXPR): Update comments.
18550
18551 Thu Oct 28 06:47:32 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18552
18553 * c-common.c (check_format_info): Avoid non-literal format string
18554 warnings when `first_arg_num' is zero.
18555
18556 Thu Oct 28 12:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18557
18558 * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
18559
18560 Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com>
18561
18562 * arm.md (casesi_insn): Add a clobber of the condition code
18563 register.
18564
18565 Mon Oct 18 21:16:06 1999 Fred Fish <fnf@be.com>
18566
18567 * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
18568 used by both cc1 and cc1plus.
18569
18570 Thu Oct 28 10:00:48 1999 Nick Clifton <nickc@cygnus.com>
18571
18572 * config/arm/arm.c: Initialise arm_structure_size_boundary to
18573 DEFAULT_STRUCTURE_SIZE_BOUNDARY.
18574 * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
18575 to the value 32 if it has not already been defined.
18576 * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
18577 Override definition in arm.h with a value of 8.
18578
18579 Thu Oct 28 03:12:02 1999 David Starner <dstarner98@aasaa.ofe.org>
18580
18581 * c-pragma.c (push_alignment): Don't check the return value
18582 of xmalloc.
18583
18584 Thu Oct 28 03:08:38 1999 Matteo Frigo <athena@fftw.org>
18585
18586 * sparc.h (ADJUST_COST): Fix thinko.
18587
18588 Thu Oct 28 02:44:03 1999 Glen Nakamura <glen.nakamura@usa.net>
18589
18590 * cccp.c (rescan): Fixed obp pointer handling around call to
18591 check_expand subroutine.
18592
18593 Thu Oct 28 02:15:22 1999 Jeffrey A Law (law@cygnus.com)
18594
18595 * gcse.c (delete_null_pointer_checks): Only record non-null info
18596 for pseudos when examining stores.
18597
18598 * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
18599 splitters for these patterns. Use "#" for output templates.
18600 (addsi3_carryin_shift): New pattern.
18601
18602 Thu Oct 28 10:20:02 1999 Geoffrey Keating <geoffk@cygnus.com>
18603
18604 * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
18605 of the function return register into a plain REG until
18606 after function inlining is done.
18607
18608 Wed Oct 27 15:21:46 1999 Richard Henderson <rth@cygnus.com>
18609
18610 * jump.c (jump_optimize_1): If we did cross-jumping, and
18611 the data will matter, rebuild the CFG.
18612 * reg-stack.c (reg_to_stack): Only (re)build the CFG if
18613 not optimizing. Don't run shorten_branches.
18614 * toplev.c (rest_of_compilation): Run shorten_branches after
18615 reg_to_stack.
18616
18617 Wed Oct 27 12:33:40 1999 Mark Mitchell <mark@codesourcery.com>
18618
18619 * rtl.h (note_stores): Add additional paramter.
18620 * rtlanal.c (reg_set_p_1): Take additional paramter.
18621 (reg_set_last_1): Likewise.
18622 (reg_set_p): Adjust call to note_stores.
18623 (reg_set_last): Likewise.
18624 (note_stores): Pass data parameter to worker function.
18625 * alias.c (record_set): Take additional parameter.
18626 (init_alias_analysis): Pass it.
18627 * caller-save.c (mark_set_regs): Take additional parameter.
18628 (save_call_clobbered_regs): Pass NULL to note_stores.
18629 * combine.c (set_nonzero_bits_and_sign_copies): Take additional
18630 parameter.
18631 (record_dead_and_set_regs_1): Likewise.
18632 (reg_dead_at_p_1): Likewise.
18633 (combine_instructions): Adjust calls to note_stores.
18634 (try_combine): Likewise.
18635 (record_dead_insn): Remove.
18636 (record_dead_and_set_regs): Adjust calls to note_stores.
18637 (reg_dead_at_p): Likewise.
18638 * cse.c (invalidate_skipped_set): Take additional parameter.
18639 (cse_check_loop_start): Likewise.
18640 (cse_check_loop_start_value): Remove.
18641 (cse_set_around_loop): Adjust calls to note_stores.
18642 * flow.c (notice_stack_pointer_modification): Take additional
18643 parameter. Remove duplicate declaration.
18644 (record_volatile_insns): Adjust calls to note_stores.
18645 * gcse.c (record_set_info): Take additional parameter.
18646 (record_last_set_info): Likewise.
18647 (invalidate_nonnull_info): Likewise.
18648 (record_set_insn): Remove.
18649 (compute_sets): Adjust calls to note_stores.
18650 (last_set_insn): Remove.
18651 (compute_hash_table): Adjust calls to note_stores.
18652 (insert_insn_end_bb): Likewise.
18653 (delete_null_pointer_checks): Likewise.
18654 * global.c (mark_reg_store): Take additional parameter.
18655 (mark_reg_clobber): Likewise.
18656 (reg_becomes_live): Likewise.
18657 (global_conflicts): Adjust calls to note_stores.
18658 (build_insn_chain): Likewise.
18659 * integrate.c (note_modified_parmregs): Take additional parameter.
18660 (mark_stores): Likewise. Make it static.
18661 (save_for_inline_nocopy): Adjust calls to note_stores.
18662 (try_constants): Likewise.
18663 * integrate.h (mark_stores): Remove declaration.
18664 * jump.c (mark_modified_reg): Take additional parameter.
18665 (thread_jumps): Adjust calls to note_stores.
18666 * local-alloc.c (validate_equiv_mem_from_store): Take additional
18667 parameter.
18668 (no_equiv): Likewise.
18669 (reg_is_set): Likewise.
18670 (validate_equiv_mem): Adjust calls to note_stores.
18671 (update_equiv_regs): Likewise.
18672 (block_alloc): Likewise.
18673 * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
18674 (note_addr_stored): Take additional parameter.
18675 (note_set_pseudo_multiple_uses): Likewise.
18676 (record_initial): Likewise.
18677 (prescan_loop): Adjust calls to note_stores.
18678 (strength_reduce): Likewise.
18679 (check_dbra_loop): Likewise.
18680 * regmove.c (flags_set_1): Take additional paramter.
18681 (mark_flags_life_zones): Adjust calls to note_stores.
18682 * reload1.c (mark_not_eliminable): Take additional parameter.
18683 (forget_old_reloads_1): Likewise.
18684 (reload_cse_invalidate_rtx): Likewise.
18685 (reload_cse_check_clobber): Likewise.
18686 (reload_combine_note_store): Likewise.
18687 (move2add_note_store): Likewise.
18688 (reload): Adjust calls to note_stores.
18689 (reload_as_needed): Likewise.
18690 (emit_reload_insns): Likewise.
18691 (reload_cse_regs_1): Likewise.
18692 (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
18693 (reload_combine): Adjust calls to note_stores.
18694 * resource.c (update_live_status): Take additional paramter.
18695 (mark_target_live_regs): Adjust calls to note_stores.
18696 * stupid.c (find_clobbered_regs): Take additional parameter.
18697 (stupid_life_analysis): Adjust calls to note_stores.
18698
18699 Wed Oct 27 19:26:12 1999 Nick Clifton <nickc@cygnus.com>
18700
18701 * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
18702 definition.
18703
18704 * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
18705 definition.
18706
18707 * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
18708 of the variable arm_structure_size_boundary.
18709
18710 Wed Oct 27 02:05:58 1999 Mark P. Mitchell <mark@codesourcery.com>
18711
18712 * alias.c (init_alias_analysis): Allocate reg_known_value and
18713 reg_known_equiv_p on the heap. Likewise for new_reg_base_value
18714 and reg_seen.
18715 (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
18716 * cse.c (cse_main): Call end_alias_analysis.
18717 * haifa-sched.c (schedule_insns): Likewise.
18718 * local-alloc. (update_equiv_regs): Likewise.
18719 * reload1.c (reload_cse_regs): Likewise.
18720
18721 Wed Oct 27 01:49:17 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
18722
18723 * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
18724 * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
18725 mapping from MASK_FPU.
18726
18727 Wed Oct 27 01:42:26 1999 Scott Christley <scottc@net-community.com>
18728
18729 * sparc.md (call): Don't bound structure return size to 0xfff.
18730
18731 Wed Oct 27 00:56:59 1999 Richard Henderson <rth@cygnus.com>
18732
18733 * resource.c (mark_target_live_regs): Check that the target
18734 insn wasn't created after compute_bb_for_insn.
18735
18736 Tue Oct 26 23:15:03 1999 Mark Mitchell <mark@codesourcery.com>
18737
18738 * ggc-page.c (poison_pages): Don't be overzealous.
18739
18740 Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com)
18741
18742 * alias.c: Update comments for ADDRESS.
18743 (nonlocal_reference_p): Look inside the ADDRESS to determine if
18744 it is a local memory reference.
18745
18746 * c-typeck.c (build_function_call): Check that the built-in
18747 function is of class BUILT_IN_NORMAL before trying to recongize
18748 it as BUILT_IN_ABS.
18749 * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
18750 * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
18751
18752 Wed Oct 27 00:14:13 1999 Robert Lipe <robertlipe@usa.net>
18753
18754 * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
18755 of alloca.
18756 (pre_gcse): Likewise.
18757 (hoist_expr_reaches_here_p): Likewise.
18758 (hoist_code): Likewise.
18759 (pre_expr_reaches_here_p): Replace alloca with xcalloc. Move core
18760 code to ...
18761 (pre_expr_reaches_here_p_work): ... here.
18762 (expr_reaches_here_p): Replace alloca with xcalloc. Move core
18763 code to ...
18764 (expr_reaches_here_p_work): ... here.
18765
18766 Tue Oct 26 20:42:45 1999 Richard Henderson <rth@cygnus.com>
18767
18768 * resource.c (find_basic_block): Delete.
18769 (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
18770 (init_resource_info): Call compute_bb_for_insn.
18771
18772 Tue Oct 26 20:21:02 1999 Richard Henderson <rth@cygnus.com>
18773
18774 * flow.c (merge_blocks_move_predecessor_nojumps): Cope
18775 with already adjacent blocks, but no fallthru.
18776 (merge_blocks_move_successor_nojumps): Simplify.
18777 (debug_flow_info): New.
18778
18779 * toplev.c (rest_of_compilation): Open jump1 dump file before
18780 jump and close after, as opposed to just using dump_rtl.
18781
18782 Wed Oct 27 03:09:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18783
18784 * reload.h (earlyclobber_operand_p): Declare.
18785 * reload.c (earlyclobber_operand_p): Don't declare. No longer static.
18786 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
18787 an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
18788 case where the RELOAD_OTHER reload is new. Use earlyclobber_operand_p.
18789
18790 Tue Oct 26 18:23:38 1999 Jan Hubicka <hubicka@freesoft.cz>
18791 Richard Henderson <rth@cygnus.com>
18792
18793 * emit-rtl.c (emit_block_insn_before): New.
18794 (emit_block_insn_after): New.
18795 * basic-block.h: Declare them.
18796
18797 * bitmap.h: Protect from multiple inclusion.
18798
18799 * recog.c (scratch_operand): Handle VOIDmode correctly.
18800
18801 * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
18802
18803 * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
18804 * function.c (assign_parms): Likewise.
18805 * global.c (global_conflicts): Clarify STACK_REGS commentary.
18806
18807 * reg-stack.c (max_uid): Remove.
18808 (blocks, block_begin, block_end, block_drops_in): Remove.
18809 (block_stack_in, block_out_reg_set, block_number): Remove.
18810 (struct block_info_def, BLOCK_INFO): New.
18811 (enum emit_where): New.
18812 (current_block): New.
18813 (BLOCK_NUM): Remove.
18814 (mark_regs_pat, record_label_references): Remove.
18815 (record_reg_life_pat, record_reg_life, find_blocks): Remove.
18816 (nan): New.
18817 (goto_block_pat, print_blocks, dump_stack_info): Remove.
18818 (reg_to_stack): Simplified test for existance of fp code. Use
18819 flow.c code. Call shorten_branches after cross-jump opt.
18820 (check_asm_stack_operands): Renamed from record_asm_reg_life.
18821 Return false if the asm doesn't use stack regs. Don't do life
18822 analysis on the asm.
18823 (emit_pop_insn): Replace function pointer arg `when' with
18824 enum `where'. Update all callers.
18825 (change_stack): Likewise. Update basic block end.
18826 (emit_swap_insn): Use current_block->head to limit reverse search
18827 for start of block. Use emit_block_insn_after.
18828 (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
18829 (subst_asm_stack_regs): Use check_asm_stack_operands. Use direct
18830 structure assignment instead of bcopy.
18831 (print_stack): New.
18832 (convert_regs_entry, convert_regs_exit): New.
18833 (convert_regs_1, convert_regs_2): Split out from convert_regs.
18834 Work on basic blocks and the CFG.
18835 (convert_regs): Use them.
18836
18837 * i386.c (output_fix_trunc): Remove code for DImode input operand
18838 not at top-of-stack.
18839 * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
18840 appropriate mode.
18841 (fix_truncdi_1): Allow any mode scratch.
18842
18843 Tue Oct 26 13:30:35 1999 Richard Henderson <rth@cygnus.com>
18844
18845 * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
18846 * linux.h, netbsd.h, vms.h: Not here.
18847
18848 1999-10-26 Gavin Romig-Koch <gavin@cygnus.com>
18849
18850 * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
18851 ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
18852 (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
18853 CONDITIONAL_REGISTER_USEAGE): Use them.
18854 * config/mips/mips.c (mips_move_1word,mips_move_2words,
18855 gen_conditional_branch,override_options) : Use them.
18856 * config/mips/mips.md : Use them.
18857
18858 Tue Oct 26 13:09:23 1999 Richard Henderson <rth@cygnus.com>
18859
18860 * i386.md (zero_extendqihi2): Use SImode register name with andl.
18861
18862 Tue Oct 26 12:35:38 1999 Richard Henderson <rth@cygnus.com>
18863
18864 * integrate.c (function_cannot_inline_p): Don't allow inlining
18865 if setjmp is used.
18866
18867 Tue Oct 26 14:10:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18868
18869 * c-parse.in (cast_expr): Constify.
18870
18871 * cccp.c (special_symbol): Likewise.
18872
18873 * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
18874
18875 * dwarf2out.c (base_type_die): Likewise.
18876
18877 * global.c (allocno_compare): Likewise.
18878
18879 * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
18880
18881 * regclass.c (fix_register): Likewise.
18882
18883 * rtl.h (fix_register): Likewise.
18884
18885 * stupid.c (stupid_reg_compare): Likewise.
18886
18887 * toplev.c (decode_f_option): Likewise.
18888
18889 * tree.c (build_complex_type): Likewise.
18890
18891 Tue Oct 26 18:35:25 1999 Richard Earnshaw <rearnsha@arm.com>
18892
18893 * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
18894
18895 Tue Oct 26 15:42:56 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18896
18897 * reload.c (find_reloads): Compute mode and nregs fields of all
18898 reloads.
18899 * reload1.c (calculate_needs_all_insns): Simplify a bit.
18900 (calculate_needs): Use precomputed mode/nregs values.
18901 (allocate_reload_reg): Likewise.
18902 Break out two...
18903 (failed_reload, set_reload_reg): ... new functions.
18904 (choose_reload_regs_init): New function, mostly broken out from...
18905 (choose_reload_regs): ... here. Lose all the save_xxx nonsense.
18906 Also lose one #if 0 block.
18907
18908 Tue Oct 26 02:48:32 1999 Marc Espie <espie@cvs.openbsd.org>
18909
18910 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET): Fix target name
18911 substitution.
18912
18913 Tue Oct 26 01:27:32 1999 Mark Mitchell <mark@codesourcery.com>
18914
18915 * tree.h (BLOCK_TYPE_TAGS): Remove.
18916 (BLOCK_END_NOTE): Likewise.
18917 (BLOCK_LIVE_RANGE_FLAG): Likewise.
18918 (BLOCK_LIVE_RANGE_START): Likewise.
18919 (BLOCK_LIVE_RANGE_END): Likewise.
18920 (tree_block): Remove live_range_flag, live_range_var_flag, and
18921 type_tags. Remove end_note, live_range_start, and live_range_end.
18922 (remember_end_note): Remove prototype.
18923 * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
18924 * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
18925 remember_end_note.
18926 * ggc-common.c (ggc_mark_tree_children): Don't mark
18927 BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
18928 * integrate.c (adjust_copied_decl_tree): Remove.
18929 * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
18930 * stmt.c (last_block_end_note): Remove.
18931 (init_stmt): Don't add a GC root for it.
18932 (expand_fixup): Don't set it.
18933 (remember_end_note): Remove.
18934 (expand_end_bindings): Don't set last_block_end_note.
18935
18936 Tue Oct 26 00:41:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18937
18938 * reload1.c (reload_reg_free_for_value_p): Show
18939 RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
18940 reloads.
18941
18942 Mon Oct 25 23:54:45 1999 Geoff Keating <geoffk@cygnus.com>
18943
18944 * expmed.c (extract_bit_field): Allow for the case of non-integer
18945 objects that are smaller than a word (like SFmode on a 64-bit
18946 machine).
18947
18948 * loop.c (basic_induction_var): A non-integer variable which is
18949 being set by a paradoxical subreg is probably not a biv.
18950
18951 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18952
18953 * prefix.c (translate_name) Check for empty prefix string.
18954
18955 Mon Oct 25 23:10:45 1999 Andreas Schwab <schwab@suse.de>
18956
18957 * Makefile.in (CPP_CROSS_NAME): New variable.
18958 (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
18959 xcpp.
18960 (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
18961 names of the files to be uninstalled.
18962
18963 Mon Oct 25 23:03:09 1999 Jeffrey A Law (law@cygnus.com)
18964
18965 * collect2.c (IS_DIR_SEPARATOR): Define.
18966 (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
18967
18968 * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
18969 functions too.
18970
18971 * haifa-sched.c (add_dependence): Update the true dependency
18972 cache the first time we add a true dependence to the LOG_LINKS chain.
18973
18974 Mon Oct 25 22:27:40 1999 Jim Kingdon <http://developer.redhat.com/>
18975
18976 * fold-const.c (fold): Fix comment.
18977
18978 Mon Oct 25 22:49:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18979
18980 * dbxout.c (lastfile, cwd, dbxout_type_method_1,
18981 dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
18982 dbxout_start_new_source_file, dbxout_source_file,
18983 dbxout_source_line, dbxout_finish, dbxout_type_fields,
18984 dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
18985 Constify a char*.
18986 (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
18987 (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
18988 (dbxout_block): Initialize variable `blocknum'.
18989
18990 * dbxout.h (dbxout_init, dbxout_finish,
18991 dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
18992 dbxout_args, dbxout_source_line): Constify a char*.
18993
18994 * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
18995 dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
18996 dwarf_fund_type_name, name_attribute, stmt_list_attribute,
18997 low_pc_attribute, high_pc_attribute, body_begin_attribute,
18998 body_end_attribute, comp_dir_attribute, sf_names_attribute,
18999 src_info_attribute, mac_info_attribute, producer_attribute,
19000 lookup_filename, generate_macinfo_entry, fundamental_type_code,
19001 dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
19002 dwarfout_undef): Constify a char*.
19003 (add_incomplete_type, retry_incomplete_types): Add prototypes.
19004
19005 * dwarfout.h (dwarfout_define, dwarfout_undef,
19006 dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
19007
19008 1999-10-25 Gavin Romig-Koch <gavin@cygnus.com>
19009
19010 * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
19011 (MULTILIB_ISA_DEFAULT): New.
19012 (MULTILIB_DEFAULTS): Use it.
19013 * config/mips/mips.c (): Remove the now unnecessary definition
19014 of MIPS_ISA_DEFAULT.
19015 * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
19016 unnecessary definition.
19017
19018 Mon Oct 25 22:08:35 1999 Richard Earnshaw (rearnsha@arm.com)
19019
19020 * arm.md (pic_load_addr): Add constraints to operand 1.
19021
19022 1999-10-25 Bruce Korb <autogen@linuxbox.com>
19023
19024 * fixinc/genfixes: Provide a means for specifying -D options to
19025 AutoGen
19026
19027 Mon Oct 25 00:42:35 1999 Jeffrey A Law (law@cygnus.com)
19028
19029 * arm.c (arm_override_options): Correct initialization of
19030 arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
19031 arm_is_strong, and arm_is_6_or_7.
19032
19033 * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
19034 (note_set_pseudo_multiple_uses): New function.
19035 (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
19036 if a pseudo set in the loop exit is used elsewhere.
19037
19038 Sun Oct 24 20:52:40 1999 Mark Mitchell <mark@codesourcery.com>
19039
19040 * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
19041
19042 Sun Oct 24 21:02:46 1999 Richard Henderson <rth@cygnus.com>
19043
19044 * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
19045 a single load-address pattern.
19046
19047 Sun Oct 24 19:33:24 1999 Mark P. Mitchell <mark@codesourcery.com>
19048
19049 * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
19050 depending on whether or not line-number notes are present.
19051
19052 Sun Oct 24 20:29:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19053
19054 * cccp.c (progname, file_buf, default_include, include_file,
19055 macrodef, definition, hashval, wchar_type, user_label_prefix,
19056 directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
19057 expand_to_temp_buffer, is_system_include, base_name,
19058 absolute_filename, read_name_map, open_include_file,
19059 record_control_macro, check_precompiled, check_preconditions,
19060 pcfinclude, pass_thru_directive, create_definition,
19061 check_macro_name, comp_def_part, collect_expansion,
19062 check_assertion, read_token_list, assertion_install,
19063 assertion_lookup, eval_if_expression, conditional_skip,
19064 validate_else, skip_quoted_string, quote_string, macarg1,
19065 error_from_errno, install, lookup, hashf, dump_defn_1,
19066 perror_with_name, pfatal_with_name, main, trigraph_pcp,
19067 check_white_space, rescan, handle_directive, monthnames,
19068 special_symbol, do_include, remap_include_file, write_output,
19069 arglist, do_assert, do_unassert, do_line, do_error, do_once,
19070 do_ident, do_sccs, do_xifdef, skip_if_group,
19071 output_line_directive, macroexpand, macarg, change_newlines,
19072 initialize_builtins, make_definition): Constify a char*.
19073
19074 * pcp.h (stringdef): Likewise.
19075
19076 Sun Oct 24 13:29:28 1999 Richard Henderson <rth@cygnus.com>
19077
19078 * unroll.c (copy_loop_body): Examine SET_DEST of single_set
19079 not of pattern.
19080
19081 Sun Oct 24 13:14:20 1999 Graham <grahams@rcp.co.uk>
19082 Richard Henderson <rth@cygnus.com>
19083
19084 * alias.c: Include ggc.h.
19085 (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
19086 (record_set): Verify enough room in reg_base_value.
19087 (init_alias_analysis): Allocate reg_base_value with xcalloc.
19088 Register it as a GC root.
19089 (end_alias_analysis): Free reg_base_value. Remove it as a GC root.
19090 * Makefile.in (alias.o): Depend on ggc.h.
19091
19092 * unroll.c (unroll_loop): Verify the insn before a barrier
19093 is a JUMP_INSN before checking JUMP_LABEL.
19094
19095 Sun Oct 24 15:46:44 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19096
19097 * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
19098 * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
19099 * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
19100 * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
19101 * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
19102 * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
19103
19104 Sun Oct 24 15:35:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19105
19106 * output.h (ctors_section, dtors_section, bss_section): Prototype.
19107
19108 * alpha/alpha-interix.h (text_section): Delete prototype.
19109 * alpha/elf.h (text_section): Likewise.
19110 * arm/linux-elf.h (text_section): Likewise.
19111 * arm/linux-telf.h (text_section): Likewise.
19112 * c4x/c4x.h (text_section): Likewise.
19113 * dsp16xx/dsp16xx.h (bss_section): Likewise.
19114 * elfos.h (text_section): Likewise.
19115 * i386/aix386ng.h (text_section): Likewise.
19116 * i386/i386-interix.h (text_section): Likewise.
19117 * i386/sco5.h (text_section): Likewise.
19118 * i386/svr3gas.h (text_section): Likewise.
19119 * nextstep.h (text_section): Likewise.
19120 * psos.h (text_section): Likewise.
19121 * ptx4.h (text_section): Likewise.
19122 * svr3.h (text_section): Likewise.
19123 * svr4.h (text_section, ctors_section, dtors_section): Likewise.
19124
19125 Sun Oct 24 15:20:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19126
19127 * final.c (peephole): Delete prototype.
19128
19129 * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
19130 (pre_insert_copies): Remove unused variable `bb'.
19131
19132 * genrecog.c (debug_decision_0, debug_decision_list, main): Add
19133 prototypes.
19134
19135 * output.h (peephole): Add prototype.
19136
19137 Sun Oct 24 11:35:30 1999 Mark P. Mitchell <mark@codesourcery.com>
19138
19139 * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
19140 -O0.
19141
19142 Sat Oct 23 21:13:00 1999 Mark Mitchell <mark@codesourcery.com>
19143
19144 * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
19145 for inlined declarations.
19146
19147 Fri Oct 22 18:05:43 1999 Jeffrey A Law (law@cygnus.com)
19148
19149 * arm.c (logical_binary_operator): New fucntion.
19150 * arm.h (logical_binary_operator): Declare it.
19151 (PREDICATE_CODES): Handle logical_binary_operator.
19152 * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
19153 output constraints. Add appropriate splitters.
19154 (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
19155 (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
19156 (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
19157
19158 Fri Oct 22 23:46:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
19159
19160 * genoutput.c (struct operand_data): New elt eliminable.
19161 (output_operand_data): Write it.
19162 (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
19163 (compare_operands): Take it into account.
19164 * recog.h (struct insn_operand_data): New elt eliminable.
19165 * reload1.c (check_eliminable_occurrences, elimination_effects): New
19166 functions.
19167 (old_asm_operands_vec, new_asm_operands_vec): Delete.
19168 (eliminate_regs): Move code that detects changes to elimination
19169 target regs into new function elimination_effects.
19170 Delete one #if 0 block.
19171 Abort for USE, CLOBBER, ASM_OPERANDS and SET.
19172 (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
19173 ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
19174 Only call eliminate_regs for real operands of the insn, not for parts
19175 of its structure or parts matched by things like match_operator.
19176 Use elimination_effects and check_eliminable_occurrences. Use
19177 copy_insn to duplicate the pattern when not in the final pass.
19178
19179 Fri Oct 22 09:03:44 1999 Mark Mitchell <mark@codesourcery.com>
19180
19181 * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
19182 and fld.
19183
19184 1999-10-22 Bruce Korb <autogen@linuxbox.com>
19185
19186 * fixinc/README: document the "mach" machine matching test
19187 * fixinc/fixfixes.c: Implement the #else/#endif label fix
19188 * fixinc/fixtests.c: Implement the #else/#endif label test
19189 * fixinc/inclhack.def: utilize these tests and fixes
19190 * fixinc/inclhack.sh: regen
19191 * fixinc/fixincl.x: regen
19192 * fixinc/fixincl.sh: regen
19193
19194 Thu Oct 21 20:37:19 1999 Jeffrey A Law (law@cygnus.com)
19195
19196 * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h. Also
19197 depend on ggc.h.
19198
19199 Thu Oct 21 20:30:19 1999 Matthias Klose <doko@debian.org>
19200
19201 * gcc.1: Document exit codes.
19202
19203 Thu Oct 21 12:49:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19204
19205 * calls.c: Include tm_p.h later, so everything we need is defined.
19206 * expr.c: Likewise.
19207 * function.c: Likewise.
19208
19209 * except.c: Include tm_p.h.
19210
19211 * sparc.c: Likewise.
19212 (dwarf2out_cfi_label): Don't prototype.
19213 (check_return_regs, epilogue_renumber,
19214 ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
19215 ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
19216 ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
19217 ultra_schedule_insn): Add static prototype.
19218 (data_segment_operand, text_segment_operand): Call itself with the
19219 proper number of arguments.
19220 (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
19221
19222 * sparc.h: Move all declarations to sparc-protos.h.
19223 (SELECT_RTX_SECTION): Pass a missing MODE argument to
19224 symbolic_operand.
19225
19226 * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
19227
19228 * config/svr4.h (text_section, ctors_section, dtors_section): Add
19229 Prototypes.
19230 (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
19231 ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
19232 ASM_OUTPUT_ASCII): Constify a char*.
19233
19234 * sparc-protos.h: New file for sparc prototypes.
19235
19236 Thu Oct 21 12:23:40 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19237
19238 * function.c (record_insns, contains): Always declare and define.
19239 (record_insns): Mark with ATTRIBUTE_UNUSED.
19240
19241 Thu Oct 21 13:03:49 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
19242
19243 * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
19244 to .section when outputting a .bss section to deal with multiple
19245 .bss input sections (as happens with -fdata-sections)
19246 Also output %progbits, not @progbits so the assembler doesn't treat as
19247 a comment.
19248 * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
19249
19250 * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
19251 thumb parts even when building with non-thumb CPUs, by forcing
19252 thumb mode.
19253
19254 Wed Oct 20 22:57:58 1999 Jeffrey A Law (law@cygnus.com)
19255
19256 * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
19257 (movdf_const_intreg_sp64): Similarly.
19258
19259 * local-alloc.c (update_equiv_regs): Check the correct insn
19260 for pre-existing REG_EQUIV notes.
19261
19262 Wed Oct 20 20:41:46 1999 Mark Mitchell <mark@codesourcery.com>
19263
19264 * cse.c (cse_end_of_basic_block): Don't return the end of a basic
19265 block reached by a branch if we're not going to actually process
19266 this block.
19267
19268 Wed Oct 20 15:18:42 1999 Jim Wilson <wilson@cygnus.com>
19269
19270 * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
19271 a local extern function declaration.
19272
19273 Wed Oct 20 13:56:01 1999 Richard Henderson <rth@cygnus.com>
19274
19275 * i386.c (ix86_expand_prologue): Properly wrap USE around
19276 reg for CALL_INSN_FUNCTION_USAGE.
19277
19278 Thu Oct 14 18:51:37 1999 Andrew Haley <aph@cygnus.com>
19279
19280 * config/mips/mips.md (movdf_internal1a): Allow floating-point
19281 move between GP_REGs.
19282
19283 Wed Oct 20 15:36:11 1999 Andrew Haley <aph@cygnus.com>
19284
19285 * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
19286 the mode size when finding out if an offset is legal.
19287
19288 Wed Oct 20 06:26:58 1999 Richard Henderson <rth@cygnus.com>
19289
19290 * basic-block.h (PROP_*): Move constants from ...
19291 * flow.c: ... here.
19292 (compute_bb_for_insn): Free the array before reallocating.
19293 (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
19294 (allocate_reg_life_data): Reset all reg variables collected by
19295 propagate_block.
19296 (get_block_head_tail): Don't convert from bb to block.
19297 (get_bb_head_tail): New. Update all callers of get_block_head_tail.
19298 (find_insn_reg_weight): Take block not bb.
19299 (schedule_block): Don't set block num for moved insns.
19300 (schedule_region): Don't update_life_info or find_insn_reg_weight.
19301 (schedule_insns): Do it here instead.
19302 * combine.c (combine_instructions): Invoke compute_bb_for_insn
19303 before update_life_info.
19304 * recog.c (split_all_insns, peephole2_optimize): Update for
19305 new arg to update_life_info.
19306 * rtlanal.c (remove_note): Cope with NULL note.
19307 * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
19308 if we did sched1.
19309
19310 Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com)
19311
19312 * jump.c (jump_optimize_1): More accurately detect casesi insns.
19313
19314 * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
19315 block records so that merge_blocks_nomove will clean up correctly.
19316 (split_edge): Handle casesi insns.
19317
19318 * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
19319
19320 Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com)
19321
19322 * pa.md (call, call_value): Do not emit a blockage after restoring
19323 the PIC register.
19324
19325 Tue Oct 19 17:22:39 1999 Mark Mitchell <mark@codesourcery.com>
19326
19327 * c-typeck.c (c_expand_asm_operands): Fix typo.
19328
19329 Tue Oct 19 18:42:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
19330
19331 * arm.c (fpu_rhs_operand): Verify modes.
19332 (fpu_add_operand): Likewise.
19333 (di_operand): Likewise.
19334 (soft_df_operand): Likewise.
19335
19336 Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com)
19337
19338 * arm.c (arm_return_in_memory): APCS rules state that the elements
19339 of a structure returned in a register must be 'integer-like'.
19340
19341 1999-10-19 Bruce Korb <autogen@linuxbox.com>
19342
19343 * fixinc/Makefile.in: Change the generation rules to run `genfixes'
19344 in the source tree when the generated targets are out of date
19345 * fixinc/genfixes: Alter it to run individual fixes for make.
19346 * fixinc/README: rewrite
19347 * fixinc/inclhack.def: moved initial comments to README
19348
19349 Tue Oct 19 14:01:34 1999 Nick Clifton <nickc@cygnus.com>
19350
19351 * toplev.c (main): Do not generate an error message if an
19352 unrecognised command line switch is recognisable by another
19353 language. If extra_warnings are enabled, then generate a
19354 warning message instead.
19355
19356 Tue Oct 19 11:41:12 1999 Mumit Khan <khan@xraylith.wisc.edu>
19357
19358 * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
19359 (insert_pack_attributes): Delete prototype.
19360
19361 * c-pragma.c (default_alignment): New static variable.
19362 (push_alignment): Initialize to current effective alignment.
19363 (pop_alignment): Use to set new alignment.
19364 (insert_pack_attributes): Delete function.
19365 (handle_pragma_token): Set default_alignment as well each time
19366 a #pragma pack(<n>) is encountered.
19367
19368 Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com)
19369
19370 * reg-stack.c (stack_result): Aggregates are not returned in
19371 stack registers.
19372
19373 Tue Oct 19 01:26:48 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
19374
19375 * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
19376
19377 Mon Oct 18 15:19:41 1999 Richard Henderson <rth@cygnus.com>
19378
19379 * basic-block.h (set_block_num): Declare.
19380 * flow.c (update_life_info): Don't call compute_bb_for_insn
19381 or free_basic_block_vars.
19382 * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
19383 (insn_orig_block): Remove.
19384 (INSN_BLOCK): Remove. Update all callers to use BLOCK_NUM.
19385 (schedule_block): Keep BLOCK_NUM up-to-date.
19386 (schedule_insns): Use compute_bb_for_insn.
19387 * recog.c (split_all_insns): Likewise.
19388 (peephole2_optimize): Likewise.
19389
19390 Mon Oct 18 18:50:51 1999 Andreas Schwab <schwab@suse.de>
19391
19392 * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
19393 if the pic register is used.
19394
19395 Mon Oct 18 02:38:46 1999 Bernd Schmidt <bernds@cygnus.co.uk>
19396
19397 * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
19398 (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
19399 if that tests TREE_PERMANENT.
19400
19401 Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com)
19402
19403 * cse.c (invalidate_for_call): Do not remove memory references from
19404 the table here. It's handled elsewhere.
19405
19406 * haifa-sched.c (add_dependence): Protect references to the
19407 true dependency cache with #ifdef INSN_SCHEDULING.
19408 (remove_dependence): Similarly.
19409
19410 * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
19411 to the cfg code that this is a return instruction.
19412 * mn10300.md (return_internal): Similarly.
19413
19414 * combine.c (get_last_value): If the last set of a register
19415 is after subst_low_cuid, then we can not use it to determine
19416 the register's last value.
19417
19418 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
19419
19420 * Makefile.in: Back out previous change.
19421
19422 Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com)
19423
19424 * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
19425
19426 * haifa-sched.c (add_dependence): Only check/update the cache
19427 if it exists.
19428 (remove_dependence): Likewise.
19429 (schedule_insns): Only create the true_dependency_cache if the
19430 average number of instructions in a basic block is very large.
19431
19432 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
19433
19434 * Makefile.in (ggc-common.o): Depend on genrtl.h.
19435 (ggc-simple.o): Likewise.
19436 (ggc-page.o): Likewise.
19437
19438 Sun Oct 17 02:09:50 1999 Andrew MacLeod <amacleod@cygnus.com>
19439
19440 * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
19441 Prototype for exported functions.
19442 (pre_lcm, pre_rev_lcm): Remove prototypes.
19443 * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
19444 (compute_available): Move to lcm.c, and change parameter order.
19445 (one_classic_gcse_pass): Call compute_ae_kill with parameters.
19446 (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
19447 (gcse_main): No longer call compute_preds_succs. Rebuild the
19448 set table after reach pre pass.
19449 (pre_insert_map, pre_delete_map, edge_list): New.
19450 (alloc_pre_mem): Allocate edge vectors.
19451 (free_pre_mem): Delete edge vectors.
19452 (compute_pre_data): Call new edge based lcm routines.
19453 (process_insert_insn): New function.
19454 (insert_insn_end_bb): Use it.
19455 (pre_edge_insert): New function.
19456 (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as
19457 needed.
19458 (pre_insert_copies): Revamp using new edge based lcm outputs.
19459 (pre_delete): Likewise.
19460 (one_pre_gcse_pass): Insert & remove fake edges to the exit
19461 block.
19462 (compute_code_hoist_vbeinout): New new edge based routines.
19463 * lcm.c: Remove all the old LCM functions. Replace with new ones
19464 that work with the new cfg datastructures and work with edges
19465 instead of blocks.
19466
19467 Sun Oct 17 00:44:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
19468
19469 * reload.h (struct reload): Add new fields "mode" and "nregs".
19470 * reload1.c: Change all occurrences of reload_mode and reload_nregs
19471 to reference the "mode" and "nregs" field within struct reload.
19472
19473 Sat Oct 16 21:50:28 1999 Jeffrey A Law (law@cygnus.com)
19474
19475 * haifa-sched.c (true_dependency_cache): New.
19476 (add_dependence): Use the true dependency cache to avoid expensive
19477 walks down the LOG_LINKS dependency list. Add entries to the
19478 cache as necessary.
19479 (remove_dependence): Remove entries from the true dependency cache
19480 as needed.
19481 (schedule_insns): Allocate and initialize and free the true
19482 dependency cache.
19483
19484 * haifa-sched.c (schedule_insns): Do not remove inter-block
19485 dependencies anymore.
19486
19487 Sat Oct 16 11:19:52 1999 Richard Henderson <rth@cygnus.com>
19488
19489 * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
19490 * i386/t-winnt: Likewise.
19491
19492 Sat Oct 16 11:11:54 1999 Richard Henderson <rth@cygnus.com>
19493
19494 * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
19495
19496 1999-10-16 Manfred Hollstein <mhollstein@cygnus.com>
19497
19498 * Makefile.in (LANGUAGES): Omit "proto".
19499 (clean): Remove stale comment about removing unprotoize.c.
19500
19501 Sat Oct 16 11:29:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19502
19503 * protoize.c (safe_read, safe_write): Avoid the gcc extension of
19504 using arithmetic on void pointers.
19505
19506 Sat Oct 16 02:48:22 1999 Jeffrey A Law (law@cygnus.com)
19507
19508 * haifa-sched.c (compute_block_forward_dependencies): Only check
19509 for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
19510
19511 Sat Oct 16 00:07:01 1999 Richard Henderson <rth@cygnus.com>
19512
19513 * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
19514 (expr_equiv_p): Reject memories with different alias sets.
19515
19516 Fri Oct 15 15:17:29 1999 Greg McGary <gkm@gnu.org>
19517
19518 * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
19519 * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
19520 (f_options): Add "bounded-pointers" and "bounds-check" entries.
19521 * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
19522 (lang_init): Set default for flag_bounds_check if still "unspecified".
19523
19524 Sat Oct 16 13:42:29 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19525
19526 * config/c4x/c4x.md (HF mode patterns): Add missing modes.
19527
19528 Sat Oct 16 13:37:46 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19529
19530 * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
19531 instructions.
19532
19533 Sat Oct 16 13:26:47 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19534
19535 * config/c4x/c4x.md (*db_noclobber,
19536 *decrement_and_branch_until_zero_noclobber): New patterns and
19537 associated splitters.
19538
19539 Sat Oct 16 13:13:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19540
19541 * config/c4x/c4x.md (parallel instruction patterns): Rework
19542 constraints to keep reload happy.
19543
19544 Sat Oct 16 13:03:16 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19545
19546 * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
19547 *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
19548 *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
19549 Add new patterns and associated post-reload splitters.
19550
19551 Sat Oct 16 12:42:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19552
19553 * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
19554
19555 Sat Oct 16 12:34:44 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19556
19557 * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
19558 if appropriate.
19559 * config/c4x/c4x.md (rpts_top): New pattern and splitter.
19560
19561 Sat Oct 16 12:26:30 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19562
19563 * config/c4x/c4x.c (src_operand): Check SYMBOL_REF and LABEL_REF
19564 memory mode.
19565
19566 Fri Oct 15 17:02:09 1999 Jeffrey A Law (law@cygnus.com)
19567
19568 * pa.c (move_operand): Rely on memory_address_p to determine the
19569 validity of non-indexed memory addresses.
19570 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
19571 operand in DFmode and SFmode when generating PA2.0 code.
19572
19573 Fri Oct 15 14:25:19 1999 Richard Henderson <rth@cygnus.com>
19574
19575 * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
19576
19577 Fri Oct 15 13:48:45 1999 Richard Henderson <rth@cygnus.com>
19578
19579 * mips.c (function_prologue): Fix argument types.
19580 * mips.md (casesi): Use emit_jump_insn for casesi_internal.
19581 (casesi_internal): Write to the scratch register.
19582
19583 1999-10-15 11:16 -0700 Zack Weinberg <zack@bitmover.com>
19584
19585 * cppexp.c (cpp_parse_escape): Make static. Change second arg
19586 to U_CHAR **.
19587 (parse_charconst): Delete unnecessary cast when calling
19588 cpp_parse_escape.
19589 (cpplib.h): Kill prototype of cpp_parse_escape.
19590
19591 Fri Oct 15 11:02:46 1999 Richard Henderson <rth@cygnus.com>
19592
19593 Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
19594 * unroll.c (unroll_loop): Cast return value of alloca.
19595 * i370/i370.c: Include function.h and toplev.h.
19596 (i370_label_scan): Remove c++ commented abort.
19597 * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
19598 (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
19599 * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
19600 * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
19601
19602 Fri Oct 15 03:01:01 1999 Loren Rittle <ljrittle@acm.org>
19603
19604 * config/t-freebsd: Do not override USER_H.
19605 * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
19606
19607 Fri Oct 15 02:37:28 1999 Alastair J. Houghton <ajh8@doc.ic.ac.uk>
19608 Mumit Khan <khan@xraylith.wisc.edu>
19609
19610 * c-parse.in (component_decl): Support anonymous struct/union.
19611 (%expect): Update.
19612 * c-parse.y: Regenerate.
19613 * c-parse.c: Likewise.
19614 * objc/objc-parse.y: Likewise.
19615 * objc/objc-parse.c: Likewise.
19616 * c-decl.c (finish_struct): Don't sort the fields.
19617 (field_decl_cmp): Delete unused function.
19618
19619 Fri Oct 15 01:20:52 1999 Richard Henderson <rth@cygnus.com>
19620
19621 * sparc.md (movsf_const_intreg): Revert last constraint change.
19622 (movdf_const_intreg_sp32): Likewise.
19623
19624 Fri Oct 15 01:47:51 1999 Vladimir Makarov <vmakarov@loony.cygnus.com>
19625
19626 * cse.c: Include hashtab.h instead of splay-tree.h
19627 (struct cse_reg_info): No longer use variant union. Add new
19628 field "regno". All references changed to avoid union.
19629 (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
19630 (free_cse_reg_info): Remove.
19631 (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
19632 (get_cse_reg_info): Revamp to use expandable hash tables instead
19633 of splay trees. Initialize new fields in cse_reg_info structure.
19634 (new_basic_block): Similarly.
19635
19636 Thu Oct 14 23:51:56 1999 Richard Henderson <rth@cygnus.com>
19637
19638 * genrecog.c (message_with_line): Prototype.
19639 (validate_pattern): Pass along the set for the dest, not a flag.
19640 Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL.
19641 Check for PC/CC0 as sources.
19642 (nodes_identical): Check for children position match before
19643 allowing the combination.
19644
19645 * rtl.c (read_rtx): Track line number across \\\n.
19646
19647 Thu Oct 14 23:50:25 1999 Richard Henderson <rth@cygnus.com>
19648
19649 * mips.h (SPECIAL_MODE_PREDICATES): New.
19650 * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
19651 (movdi+1, movsi+1): Add output reload constraint.
19652 (casesi_internal): Likewise. Fix commentary.
19653 (return_internal): Use pmode_register_operand.
19654
19655 Thu Oct 14 23:19:34 1999 Richard Henderson <rth@cygnus.com>
19656
19657 * 1750a.md (movstrqi): Add missing output reload constraint.
19658 (call_value): Likewise.
19659 * a29k.md (cpxxx patterns): Add missing match_operator mode.
19660 (jmpfdec): Add missing inout reload constraint.
19661 * elxsi.md (addsi patterns): Add missing output reload constraint.
19662 (move from sp): Use @ alternates.
19663 (call_value): No constraint on output.
19664 * fr30.md (movsi_pop): Add missing output reload constraint.
19665 (movsf_constant_store): Likewise.
19666 (splits): Remove constraints.
19667 (subsi3): Add missing mode.
19668 * i370.md (cmpstrsi+1): Add missing output reload constraint.
19669 (call_value): Likewise.
19670 * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
19671 * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
19672 * m32r.md (movsicc_internal): Add output reload constraint.
19673 (movstrsi_internal): Add inout reload constraints.
19674 * m88k.h (reg_names): Don't declare.
19675 (SPECIAL_MODE_PREDICATES): New.
19676 * m88k.md (*): Use register_operand not reg_or_0_operand
19677 on destinations.
19678 * mn10200.h (PREDICATE_CODES): New.
19679 * ns32k.md (ffs pattern): Add output reload constraint.
19680 * pdp11.md (sob pattern): Add inout reload constraint.
19681 * sh.md (splits): Remove constraints.
19682 (indirect_jump_scratch, fpu_switch): Add output reload constraint.
19683 * v850.md (pattern_is_ok_for_epilogue): Likewise.
19684 * vax.md (jgequ pattern): Add inout reload constraint.
19685
19686 Fri Oct 15 00:05:00 1999 Jeffrey A Law (law@cygnus.com)
19687
19688 * configure.in (djgpp): Revert previous patch.
19689 * configure: Rebuit.
19690 * config/i386/djgpp.h: Revert previous patch.
19691
19692 Fri Oct 15 00:00:24 1999 Loren J. Rittle <ljrittle@acm.org>
19693
19694 * fixinc/inclhack.def: Restore patch lost during last merge of
19695 "no_bogosity" branch.
19696 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
19697
19698 Thu Oct 14 23:57:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
19699
19700 * fixincludes: Add a HPUX 11 fix for inttypes.h.
19701 * fixinc/inclhack.def: Same.
19702 * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
19703
19704 Thu Oct 14 22:51:55 1999 Richard Henderson <rth@cygnus.com>
19705
19706 * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
19707 as the base of a PLUS.
19708
19709 Fri Oct 15 18:36:07 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19710
19711 * config/c4x/c4x.md: Define mode for remaining unspec operators.
19712 * config/c4x/c4x.c (dst_operand): Use nonimmediate_operand.
19713
19714 Thu Oct 14 22:14:23 1999 Richard Henderson <rth@cygnus.com>
19715
19716 * pa.md (post_stw+1): Use pmode_register_operand.
19717 (dcacheflush, icacheflush): Likewise.
19718
19719 * i386.md (movstricthi_1): Allow r/r.
19720
19721 Thu Oct 14 19:44:08 1999 Jan Hubicka <hubicka@freesoft.cz>
19722
19723 * fold-const.c (fold): Convert (or (not arg0) (not arg1))
19724 to (not (and (arg0) (arg1))). Similary for and.
19725
19726 * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
19727 fallthrough to associate code.
19728 Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
19729 bits in common.
19730
19731 * combine.c (simplify_logical): Convert XOR to IOR if operands have
19732 no bits in common; remove XOR to ROTATE conversion.
19733
19734 Fri Oct 15 17:40:11 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19735
19736 * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
19737
19738 Fri Oct 15 17:27:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
19739
19740 * config/c4x/c4x.c (dst_operand): New.
19741 (PREDICATE_CODES): Update.
19742 * config/c4x/c4x.h (dst_operand): Declare it.
19743 * config/c4x/c4x.md: Define mode for each unspec usage.
19744 (move patterns): Use dst_operand predicate instead of src_operand.
19745 (movqi_update, movqf_update): Delete.
19746
19747 Thu Oct 14 18:48:54 1999 Richard Henderson <rth@cygnus.com>
19748
19749 * recog.c (pmode_register_operand): New.
19750 * recog.h: Declare it.
19751 * genrecog.c (pred_codes): Likewise.
19752 (special_mode_pred_table): Likewise.
19753 (validate_pattern): Don't warn no mode for address_operand.
19754
19755 * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
19756 if the operand is not insn-like.
19757
19758 Thu Oct 14 19:38:42 1999 Jeffrey A Law (law@cygnus.com)
19759 Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
19760
19761 * fold-const.c (fold): Handle more simplifications allowed by IEEE.
19762
19763 Thu Oct 14 17:30:14 1999 Richard Henderson <rth@cygnus.com>
19764
19765 * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
19766 instead of general_operand in a SET_DEST. Use const_double_operand
19767 instead of an explicit test against CONST_DOUBLE.
19768 (movsf_const_lo): Add missing register mode.
19769 (goto_handler_and_restore): Add auxiliary test for Pmode.
19770 (flush): Adjust to use address_operand.
19771 (return_sf_no_fpu): Add missing output constraint.
19772
19773 Thu Oct 14 17:21:26 1999 Richard Henderson <rth@cygnus.com>
19774
19775 * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
19776 for call return value.
19777 (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
19778
19779 Thu Oct 14 13:54:25 1999 Jason Merrill <jason@yorick.cygnus.com>
19780
19781 * toplev.c (main): Only warn about options for other languages.
19782 * collect2.c (main): Pass -w to sub-gcc.
19783
19784 Thu Oct 14 16:27:50 1999 Richard Henderson <rth@cygnus.com>
19785
19786 * flow.c (propagate_block): Add call-clobbered registers to
19787 significant too.
19788
19789 * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
19790 zapping mem_set_list.
19791 (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
19792 (mark_set_1, mark_used_regs): Likewise.
19793
19794 Thu Oct 14 10:51:49 1999 Richard Henderson <rth@cygnus.com>
19795
19796 * m68k.md (zero_extendsidi2): Add missing output reload constraint.
19797
19798 Wed Oct 13 00:09:18 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
19799
19800 * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
19801 -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
19802 options. Also add a new item "C-only Warning Options" to the
19803 option summary.
19804
19805 1999-10-14 Gavin Romig-Koch <gavin@cygnus.com>
19806
19807 * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
19808 from multiple calls.
19809
19810 Thu Oct 14 04:54:54 1999 Richard Henderson <rth@cygnus.com>
19811
19812 * i386.md (call value patterns): Move to the end of the file.
19813 (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
19814
19815 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
19816
19817 * configure.in (djgpp configuration): Define extra_objects..
19818 * configure: Rebuilt.
19819 * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
19820 (DTORS_SECTION_ASM_OP): Define.
19821 (INIT_SECTION_ASM_OP): Define.
19822 (FINI_SECTION_ASM_OP): Define.
19823 (DATA_SECTION_ASM_OP): Define.
19824 (TEXT_SECTION_ASM_OP): Define.
19825 (EH_FRAME_SECTION_ASM_OP): Define.
19826 (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
19827 (STARTFILE_SPEC): Add crtbegin.o.
19828 (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
19829 to here from LINK_COMMAND_SPEC.
19830 (DO_GLOBAL_CTORS_BODY): Define.
19831 (CRTSTUFF_USE_FINI_SECTION): Define
19832 (HAS_INIT_SECTION): Delete.
19833
19834 Thu Oct 14 05:08:14 1999 Andreas Schwab <schwab@suse.de>
19835
19836 * Makefile.in (all.cross): Depend on xcpp$(exeext).
19837
19838 Thu Oct 14 04:00:40 1999 Richard Henderson <rth@cygnus.com>
19839
19840 * pa.h (PREDICATE_CODES): New.
19841
19842 * genrecog.c (validate_pattern): Condense the destination
19843 non-lvalue message.
19844
19845 Thu Oct 14 03:23:08 1999 Richard Henderson <rth@cygnus.com>
19846
19847 * alpha.md (call-1): Supply missing mode for operator.
19848 (*): Add missing output reload constraints. Remove constraints
19849 from define_splits.
19850
19851 * i386.h (SPECIAL_MODE_PREDICATES): New.
19852 * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
19853 (movqi_1, movdi_1, movdi_2, some splits): Likewise.
19854 (addsi_lea_3): Add missing mode for op 3.
19855 (prologue_set_got, prologue_get_pc): Add missing modes.
19856 (*) Add missing output reload constraints.
19857
19858 Thu Oct 14 03:59:57 1999 Stephane Carrez <stcarrez@worldnet.fr>
19859
19860 * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
19861 check for member bit-size overflow and use var_size if it occurs.
19862 (layout_record): Use bitsize_int() to define the type size in bits.
19863 Likewise for computation and assignment to DECL_FIELD_BITPOS.
19864 (layout_decl): Likewise when assigning to DECL_SIZE.
19865
19866 Thu Oct 14 02:57:05 1999 Richard Henderson <rth@cygnus.com>
19867
19868 * genrecog.c (validate_pattern): Typo last change. Verify
19869 that output operands have output reloads.
19870
19871 Thu Oct 14 01:49:54 1999 Richard Henderson <rth@cygnus.com>
19872
19873 * genrecog.c (special_mode_pred_table): New.
19874 (NUM_SPECIAL_MODE_PREDS): New.
19875 (find_operand): New.
19876 (validate_pattern): New argument `insn'. Warn for assignment to
19877 any predicate accepting non-lvalues. Conditionaly warn for
19878 match_operand without a mode. Try much harder to match source
19879 and destination modes on a set.
19880 * tm.texi (SPECIAL_MODE_PREDICATES): Document.
19881
19882 Thu Oct 14 02:54:13 1999 Jeffrey A Law (law@cygnus.com)
19883
19884 * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
19885
19886 Thu Oct 14 02:18:19 1999 Marc Espie <espie@cvs.openbsd.org>
19887
19888 * combine.c (simplify_logical): Recognize xor pattern that encodes
19889 rotation.
19890
19891 Wed Oct 13 23:23:45 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
19892
19893 * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
19894 alignment.
19895
19896 Wed Oct 13 21:47:18 1999 Richard Henderson <rth@cygnus.com>
19897
19898 * ggc-page.c (MAP_FAILED): Provide default.
19899
19900 Wed Oct 13 21:41:59 1999 Richard Henderson <rth@cygnus.com>
19901
19902 * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
19903 * sparc.h (PREDICATE_CODES): Update.
19904
19905 Wed Oct 13 21:18:17 1999 Richard Henderson <rth@cygnus.com>
19906
19907 * alpha.c (some_ni_operand): New.
19908 * alpha-protos.h: Declare it.
19909 * alpha.h (PREDICATE_CODES): Update.
19910 * alpha.md (sXaddq reload insns): Use some_ni_operand
19911 for SET_DEST instead of some_operand.
19912
19913 Wed Oct 13 21:04:45 1999 Richard Henderson <rth@cygnus.com>
19914 Jim Wilson <wilson@cygnus.com>
19915
19916 * genrecog.c (maybe_both_true_2): Don't compare modes of
19917 two DT_pred tests.
19918 (process_tree): Elide peephole2_insns. Invoke simplify_tests
19919 after find_afterward.
19920 (debug_decision_1): Dump next and afterward codes.
19921
19922 Wed Oct 13 20:35:16 1999 Richard Henderson <rth@cygnus.com>
19923
19924 * rtl.c (dump_and_abort): Remove.
19925 (fatal_with_file_and_line): New.
19926 (fatal_expected_char): New.
19927 (read_rtx_lineno, read_rtx_filename): New.
19928 (read_skip_spaces): Track line number.
19929 (read_name): Use fatal_with_file_and_line.
19930 (read_rtx): Use fatal_expected_char. Track line number.
19931 * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
19932
19933 * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
19934 if it isn't a CODE_LABEL.
19935
19936 * genattr.c (main): Set read_rtx_filename.
19937 * genattrtab.c (main): Likewise.
19938 * gencodes.c (main): Likewise.
19939 * genconfig.c (main): Likewise.
19940 * genemit.c (main): Likewise.
19941 * genextract.c (main): Likewise.
19942 * genflags.c (main): Likewise.
19943 * genopinit.c (main): Likewise.
19944 * genoutput.c (main): Likewise.
19945 * genpeep.c (main): Likewise.
19946
19947 * genrecog.c (decision_test.u.insn): Add `lineno'.
19948 (pattern_lineno, error_count): New variables.
19949 (message_with_line): New.
19950 (add_to_sequence): Break out checking code to ...
19951 (validate_pattern): ... here. Detect SET_DEST matching CONST_INT.
19952 (merge_insn): Use message_with_line.
19953 (make_insn_sequence): Use validate_pattern. Record insn lineno.
19954 (main): Set read_rtx_filename, pattern_lineno. Exit early on error.
19955
19956 Wed Oct 13 22:01:35 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19957
19958 * expr.c (store_constructor): Clear union if constructor is empty.
19959
19960 Wed Oct 13 15:19:04 1999 Jim Wilson <wilson@cygnus.com>
19961
19962 * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
19963 Add !endian checks. Change %{...} to %(...).
19964
19965 Wed Oct 13 13:30:34 1999 Richard Henderson <rth@cygnus.com>
19966
19967 * i386.md (*addsi3_cc): Renamed from addcsi3.
19968 (*addsi3_carry): Renamed from addxsi3.
19969 (*subsi3_cc): Renamed from subcsi3.
19970 (*subsi3_carry): Renamed from subxsi3.
19971 (*xorqi_cc_1): Renamed from xorcqi_1.
19972 (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
19973 * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
19974
19975 Wed Oct 13 13:10:46 1999 Richard Henderson <rth@cygnus.com>
19976
19977 * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
19978 (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
19979
19980 1999-10-13 Brendan Kehoe <brendan@cygnus.com>
19981
19982 * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
19983 climb up the chain of insns.
19984
19985 Wed Oct 13 10:20:58 1999 Richard Henderson <rth@cygnus.com>
19986
19987 * genrecog.c (write_subroutine): Careful for null trees.
19988 (process_tree): Don't elide empty functions.
19989
19990 Wed Oct 13 10:07:54 1999 Richard Henderson <rth@cygnus.com>
19991
19992 * Makefile.in (genrtl.o): Depend on ggc.h.
19993 * configure.in (valloc): Probe for it.
19994 (with-gc): Use ggc-page if valloc present.
19995 * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
19996 (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
19997 (ggc_alloc_string): Moved from ggc-page.c.
19998 * ggc-none.c (ggc_alloc_obj): New.
19999 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
20000 * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
20001 (struct globals): Likewise for dev_zero_fd.
20002 (init_ggc): Likewise for it's initialization.
20003 (ggc_allocated_p): Move careful dereference from ...
20004 (ggc_lookup_page_table): ... here. Delete.
20005 (lookup_page_table_entry): Don't use ggc_lookup_page_table.
20006 (alloc_anon): Use valloc if no mmap.
20007 (release_pages): Use free if using valloc.
20008 (ggc_alloc_obj): Renamed from alloc_obj.
20009 (ggc_set_mark): Renamed from mark_obj.
20010 (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
20011 (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
20012 (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
20013 (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
20014 (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
20015 (ggc_collect): Use fp printing instead of our own rounding.
20016 * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
20017 (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
20018 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
20019 (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
20020 (struct ggc_string, struct ggc_any): Delete.
20021 (offsetof): Provide default definition.
20022 (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
20023 (PTR_KEY): New.
20024 (struct ggc_mem): New, from corpse of ggc_any.
20025 (struct ggc_status): Delete.
20026 (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
20027 (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
20028 (n_strings_collected, n_anys_collected): Delete.
20029 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
20030 (ggc_alloc_string, ggc_alloc): Delete.
20031 (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
20032 (ggc_free_string, ggc_free_any): Delete.
20033 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
20034 (ggc_compare_addresses, ggc_mark_string): Delete.
20035 (ggc_mark_string_if_gcable, ggc_mark): Delete.
20036 (search_data): Delete.
20037 (struct globals): New.
20038 (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
20039 (tree_insert, tree_lookup): New.
20040 (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
20041 (clear_marks, sweep_objs): New.
20042 (ggc_collect): Gut. Use clear_marks, sweep_objs.
20043 (init_ggc): Set allocated_last_gc.
20044 (ggc_push_context): Gut. Use G.context.
20045 (ggc_pop_context): Likewise.
20046 (ggc_pop_context_1): New.
20047 (debug_ggc_tree): New.
20048 (debug_ggc_balance, tally_leaves): New.
20049 * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
20050 (ggc_mark_string_if_gcable): Remove decl.
20051 (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
20052 (ggc_mark_rtvec_children): New.
20053 (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
20054 (ggc_mark_if_gcable): New decl.
20055 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
20056 (ggc_alloc_tree, ggc_alloc): Likewise.
20057 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
20058 (ggc_alloc_obj): New decl.
20059 (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
20060 (ggc_alloc_tree, ggc_alloc): Likewise.
20061 (ggc_set_mark): New decl.
20062 * rtl.h (struct rtx_def): Remove gc_mark.
20063 (struct rtvec_def): Likewise.
20064 * tree.h (struct tree_common): Likewise.
20065
20066 Wed Oct 13 01:44:29 1999 Carol LePage <carolo@hal.com>
20067
20068 * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
20069 float_format and thread_file definitions.
20070 * configure: Rebuilt.
20071
20072 Wed Oct 13 09:25:03 1999 Niels Möller <nisse@lysator.liu.se>
20073
20074 * extend.texi (Function Names): Document types of function names.
20075
20076 Wed Oct 13 00:45:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20077
20078 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
20079 an earlyclobbered output conflict with RELOAD_INPUT reloads.
20080
20081 Tue Oct 12 23:28:28 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20082
20083 * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
20084
20085 Tue Oct 12 23:19:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20086
20087 * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
20088
20089 Tue Oct 12 17:09:38 1999 David Edelsohn <edelsohn@gnu.org>
20090
20091 * collect2.c (main): Do prelimnary link on AIX if rflag.
20092
20093 Tue Oct 12 09:45:19 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
20094
20095 * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
20096 __CTOR_LIST__ in opposite order, which is the correct order for sorted
20097 constructors.
20098 (__do_global_dtors): similarly for __DTOR_LIST__.
20099
20100 Fri Oct 8 19:46:03 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20101 Diego Novillo <dnovillo@cygnus.com>
20102
20103 * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
20104 FPUL_REGS.
20105
20106 Tue Oct 12 07:38:41 1999 Bruce Korb <autogen@linuxbox.com>
20107
20108 * fixincl/*: Merged "no_bogosity" branch
20109 * fixincl/fixlib.h: protect against doubly defining t_bool
20110 * fixincl/server.h: protect against doubly defining t_bool
20111
20112 Mon Oct 11 20:18:41 1999 Jim Wilson <wilson@cygnus.com>
20113
20114 * genoutput.c: Include toplev.h.
20115
20116 Mon Oct 11 18:56:14 1999 Jim Wilson <wilson@cygnus.com>
20117
20118 * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
20119 Undef.
20120 * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
20121 * configure: Regenerate.
20122
20123 Mon Oct 11 16:07:49 1999 Richard Henderson <rth@cygnus.com>
20124
20125 * gcse.c (delete_null_pointer_checks): Returns void.
20126
20127 Mon Oct 11 20:31:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20128
20129 * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
20130 * emit-rtl.c (copy_insn_1): Likewise.
20131
20132 Mon Oct 11 13:29:06 1999 Geoffrey Keating <geoffk@cygnus.com>
20133
20134 * config/mips/mips.c (mips_build_va_list): Correct
20135 TREE_CHAIN setting when hard-float.
20136 (mips_va_start): Use corrected setting.
20137 (mips_va_arg): Likewise. Also pass a tree to build of
20138 POSTINCREMENT_EXPR rather than a naked 'int'.
20139
20140 Sun Oct 10 18:27:27 1999 Mark Mitchell <mark@codesourcery.com>
20141
20142 * ggc.h (ggc_push_context): Fix comment.
20143 (ggc_pop_context): Likewise.
20144 (mark_string_if_gcable): Likewise.
20145 * ggc-common.c (ggc_mark_rtx_children): Use
20146 ggc_mark_string_if_gcable.
20147 * ggc-page.c (ggc_lookup_page_table): New function.
20148 (ggc_allocated_p): Likewise.
20149 (mark_obj): Fix formatting.
20150 (ggc_mark_string_if_gcable): New function.
20151 * ggc-simple.c (ggc_allocated_strings): New variable.
20152 (ggc_strings_used): Likewise.
20153 (ggc_compare_addresses): New function.
20154 (ggc_pop_context): Pop the `any' memory too.
20155 (ggc_mark_string_if_gcable): New function.
20156 (ggc_collect): Initialize and tear down ggc_allocated_strings.
20157
20158 Sun Oct 10 20:05:21 1999 David Edelsohn <edelsohn@gnu.org>
20159
20160 * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
20161 (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
20162 * rs6000.c (expand_block_move): Match movstrsi_?reg register
20163 changes.
20164
20165 Sun Oct 10 16:37:01 1999 Richard Henderson <rth@cygnus.com>
20166
20167 * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
20168 (sched_reg_live_length, sched_reg_basic_block): Delete.
20169 (current_block_num, bb_live_regs, old_live_regs): Delete.
20170 (dead_notes, struct sometimes): Delete.
20171 (sched_note_set, birthing_insn_p): Delete.
20172 (adjust_priority): Gut useless reg lifetime code.
20173 (create_reg_dead_note, attach_deaths): Delete.
20174 (attach_deaths_insn, new_sometimes_live): Delete.
20175 (finish_sometimes_live): Delete.
20176 (find_pre_sched_live, find_post_sched_live): Delete.
20177 (update_reg_usage): Delete.
20178 (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
20179 (schedule_insns): Delete reg lifetime code.
20180 (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
20181 (unlink_other_notes): Adjust REG_NOTE commentary.
20182 (reemit_notes): Use REG_SAVE_NOTE.
20183 (schedule_block): Likewise.
20184 (schedule_region): Allocate bitmap of blocks in region. Use
20185 count_or_remove_death_notes. Use update_life_info.
20186
20187 * rtl.h (REG_SAVE_NOTE): New.
20188 * rtl.c (reg_note_name): Update.
20189
20190 Sun Oct 10 16:14:16 1999 Richard Henderson <rth@cygnus.com>
20191
20192 * combine.c (refresh_blocks, need_refresh): New.
20193 (combine_instructions): Allocate refresh_blocks. Invoke
20194 update_life_info if needed.
20195 (distribute_notes): Mark refresh_blocks instead of installing
20196 USE insns.
20197 * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
20198 * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
20199
20200 * Makefile.in (recog.o): Depend on basic-block.h.
20201
20202 Sun Oct 10 12:03:21 1999 Richard Henderson <rth@cygnus.com>
20203
20204 * genrecog.c (add_to_sequence): Thinko last change: delete
20205 shadowing allow_const_int variable.
20206
20207 Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20208
20209 * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
20210 __GNUC__ and __GNUC_MINOR__.
20211
20212 * gansidecl.h: Likewise.
20213
20214 * rtl.c: Likewise.
20215
20216 * rtl.h: Likewise.
20217
20218 * toplev.h: Likewise.
20219
20220 * tree.c: Likewise.
20221
20222 * tree.h: Likewise.
20223
20224 * varray.c: Likewise.
20225
20226 * varray.h: Likewise.
20227
20228 Sun Oct 10 13:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20229
20230 * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
20231 use one before a jump table.
20232
20233 * rtl.def (ADDRESS): Change documentation to match reality.
20234 * md.texi: Don't document it.
20235 * gmicro.md (load address pattern): Use 'p' constraint, delete use
20236 of ADDRESS rtx.
20237
20238 * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
20239
20240 Sun Oct 10 02:41:41 1999 Richard Henderson <rth@cygnus.com>
20241
20242 * genrecog.c (add_to_sequence): Move allow_const_int test outside
20243 known predicate block; default allow_const_int true.
20244 (debug_decision_list): New.
20245
20246 Sun Oct 10 00:43:08 1999 Richard Henderson <rth@cygnus.com>
20247
20248 * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
20249
20250 Sat Oct 9 23:26:55 1999 Jeffrey A Law (law@cygnus.com)
20251
20252 * gcse.c (gcse_main): Avoid global optimizations if we have a
20253 large number of basic blocks and the ratio of edges to blocks
20254 is high.
20255 (delete_null_pointer_checks): Likewise.
20256
20257 Sat Oct 9 23:16:01 1999 Ken Raeburn <raeburn@mit.edu>
20258
20259 * c-common.c (check_format_info): Warn if format string isn't a
20260 string literal.
20261
20262 Sat Oct 9 23:04:02 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
20263
20264 * configure.in (arm*-*-*): Don't let autoconf remove brackets
20265 * configure: regenerate
20266
20267 Sat Oct 9 13:15:53 1999 Richard Henderson <rth@cygnus.com>
20268
20269 * alpha.md (extendsidi2): Turn into a splitter. Allow f/f.
20270 If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern.
20271 (peepholes): Re-enable.
20272
20273 Sat Oct 9 12:18:16 1999 Richard Henderson <rth@cygnus.com>
20274
20275 * Makefile.in (flow.o): Depend on TREE_H.
20276 * basic-block.h (REG_SET_EQUAL_P): New.
20277 (XOR_REG_SET): New.
20278 (n_edges): Declare.
20279 (free_regset_vector): Remove declaration.
20280 (flow_delete_insn_chain): Declare.
20281 (enum update_life_extent): New.
20282 (update_life_info, count_or_remove_death_notes): Declare.
20283 * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
20284 Verify register live at bb->global_live_at_start before adding USE.
20285 * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
20286 (CLEAN_ALLOCA): New.
20287 (n_edges): New.
20288 (PROP_*): New flags.
20289 (find_basic_blocks_1): Use alloc_EXPR_LIST.
20290 (clear_edges): Zero n_edges.
20291 (make_edge): Increment n_edges.
20292 (split_edge): Don't allocate bb->local_set. Increment n_edges.
20293 (flow_delete_insn_chain): Export.
20294 (delete_block): Decrement n_edges.
20295 (merge_blocks_nomove): Likewise.
20296 (life_analysis): Give life_analysis_1 PROP flags.
20297 (verify_wide_reg_1, verify_wide_reg): New.
20298 (verify_local_live_at_start): New.
20299 (update_life_info): Rewrite to call into propogate_block.
20300 (mark_reg): New.
20301 (mark_regs_live_at_end): After reload, if epilogue as rtl,
20302 always mark stack pointer. Conditionally mark PIC register.
20303 After reload, mark call-saved registers, return regsiters.
20304 (life_analysis_1): Accept PROP flags not remove_dead_code.
20305 Call mark_regs_live_at_end before zeroing regs_ever_live.
20306 Use calculate_global_regs_live. Copy global_live_at_end before
20307 calling final propagate_block. Zero reg_next_use on exit.
20308 (calculate_global_regs_live): New.
20309 (allocate_bb_life_data): Don't allocate bb->local_set.
20310 (init_regset_vector, free_regset_vector): Remove.
20311 (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
20312 Test flags before every operation. Warn if prologue/epilogue insn
20313 would have been deleted.
20314 (mark_set_regs, mark_set_1): Accept and use FLAGS.
20315 Use alloc_EXPR_LIST.
20316 (mark_used_regs): Accept and use FLAGS, not FINAL.
20317 Remove special handling for RETURN.
20318 (try_pre_increment): Use alloc_EXPR_LIST.
20319 (dump_flow_info): Dump n_edges.
20320 (unlink_insn_chain, split_hard_reg_notes): Remove.
20321 (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
20322 (find_insn_with_note, new_insn_dead_notes): Remove.
20323 (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
20324 (maybe_remove_dead_notes, prepend_reg_notes): Remove.
20325 (replace_insns): Remove.
20326 (count_or_remove_death_notes): New.
20327 (verify_flow_info): Abort on error after all checks.
20328 (remove_edge): Decrement n_edges.
20329 (remove_fake_edges): Tweak format.
20330 * haifa-sched.c (schedule_insns): Use split_all_insns.
20331 * output.h (update_life_info): Remove declaration.
20332 * recog.c (split_all_insns): From the corpse of split_block_insns,
20333 do the whole function block by block. Use update_life_info.
20334 (recog_last_allowed_insn): New.
20335 (recog_next_insn): Mind it.
20336 (peephole2_optimize): Set it. Walk backwards through blocks.
20337 Use update_life_info.
20338 * rtl.h (update_flow_info, replace_insns): Remove declarations.
20339 (split_all_insns): Declare.
20340 * toplev.c (rest_of_compilation): Thread prologue before flow2.
20341 Use split_all_insns.
20342
20343 * i386.md (or -1 peep2s): Disable.
20344
20345 Fri Oct 8 17:49:08 1999 Richard Henderson <rth@cygnus.com>
20346
20347 * config/mips/mips.md (movstrsi+[123]) : Combine these into
20348 a single pattern. Scrap the 'd' versions as unnecessary.
20349
20350 * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
20351 tablejump_mips162,tablejump_internal4): The operands to a
20352 label_ref must be VOIDmode.
20353
20354 Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20355
20356 * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
20357
20358 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
20359
20360 * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
20361
20362 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
20363
20364 * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
20365 cache every function if ggc_p.
20366
20367 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20368
20369 * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
20370 instead of copy_rtx. Accept sequences that contain asm statements.
20371 * emit-rtl.c (copy_insn_1, copy_insn): New functions.
20372 (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
20373 orig_asm_operands_vector, copy_asm_operands_vector,
20374 orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
20375 variables.
20376 * rtl.h (copy_insn, copy_insn_1): Declare.
20377
20378 Fri Oct 8 13:08:12 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20379
20380 * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
20381
20382 * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
20383 arguments to `current_file_function_operand'.
20384
20385 * genrecog.c: Include hard-reg-set.h and resource.h in the
20386 generated output file.
20387
20388 * real.c: Include tm_p.h.
20389
20390 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20391
20392 * i386.md (prologue_allocate_stack): Add '=' constraint letter on
20393 output operand.
20394
20395 Thu Oct 7 23:06:50 1999 Richard Henderson <rth@cygnus.com>
20396
20397 * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
20398 before the fctiwz insn.
20399
20400 Thu Oct 7 22:53:00 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
20401 Mark Mitchell <mark@codesourcery.com>
20402
20403 * tree.c (make_lang_type_fn): New funtion pointer.
20404 (make_lang_type): Call it.
20405 * tree.h (make_lang_type): Declare.
20406 (make_lang_type_fn): Likewise.
20407 * rs6000.c (rs6000_build_va_list): Use make_lang_type.
20408
20409 Thu Oct 7 00:36:17 1999 Diego Novillo <dnovillo@cygnus.com>
20410
20411 * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
20412 make sure that HIGH instructions are copied into BASE_REGS.
20413
20414 Thu Oct 7 17:02:34 1999 Jason Merrill <jason@yorick.cygnus.com>
20415
20416 * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
20417
20418 Thu Oct 7 17:01:58 1999 Greg McGary <gkm@gnu.org>
20419
20420 * c-decl.c (finish_struct): Use simpler method of
20421 removing elements of a singly-linked list.
20422
20423 Thu Oct 7 15:23:28 1999 Michael Meissner <meissner@cygnus.com>
20424
20425 * alpha.md (peephole2's): Comment out peephole2's that generate
20426 buggy code.
20427
20428 Thu Oct 7 12:00:53 1999 Richard Henderson <rth@cygnus.com>
20429
20430 * genrecog.c (add_to_sequence): Disable mode check for
20431 wildcard matches.
20432
20433 Thu Oct 7 20:14:16 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20434
20435 * ggc-simple.c (init_ggc): Set empty_string.
20436
20437 Thu Oct 7 01:13:15 1999 Richard Henderson <rth@cygnus.com>
20438
20439 * configure.in: Detect mmap. Add --with-gc=foo to select
20440 garbage collector; default to page if mmap available.
20441 * Makefile.in (GGC): Substitute.
20442
20443 Wed Oct 6 23:56:30 1999 Richard Henderson <rth@cygnus.com>
20444
20445 * c-decl.c (ggc_p): Enable.
20446
20447 Wed Oct 6 17:17:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20448
20449 * flow.c (verify_flow_info): Make it extern & unconditionally define.
20450
20451 1999-10-06 Brendan Kehoe <brendan@cygnus.com>
20452
20453 * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
20454 string for little-endian-data.
20455
20456 Wed Oct 6 16:10:35 1999 Michael Meissner <meissner@cygnus.com>
20457
20458 * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
20459 case somebody tries to compile --enable-checking code with gcc
20460 1.34 or such.
20461
20462 Wed Oct 6 12:22:50 1999 Richard Henderson <rth@cygnus.com>
20463
20464 * genrecog.c (add_to_sequence): Verify operand to label_ref is
20465 VOIDmode.
20466
20467 Wed Oct 6 10:21:15 1999 Richard Henderson <rth@cygnus.com>
20468
20469 * genconfig.c (main): Disable HAVE_conditional_arithmetic.
20470 * jump.c (jump_optimize_1): Document why.
20471
20472 Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20473
20474 * collect2.c (scan_prog_file, scan_libraries): Prototype function
20475 pointers and casts for `int_handler' and `quit_handler'.
20476
20477 * flow.c (verify_flow_info, split_hard_reg_notes,
20478 find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
20479 remove_edge, remove_fake_successors): Add static prototypes.
20480 (verify_flow_info): Wrap with macro ENABLE_CHECKING.
20481 (mark_set_1): Initialize variable `regno'.
20482 (unlink_insn_chain): Likewise for variable `curr'.
20483 (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
20484
20485 * loop.c (strength_reduce): Initialize variable
20486 `unrolled_insn_copies'.
20487 (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
20488 prototypes. Change these functions to take const PTR parameters
20489 to avoid prototype conflict when used as the comparson argument
20490 for qsort.
20491 (check_dbra_loop): Initialize variable `comparison_val'.
20492
20493 * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
20494 (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
20495 (find_valid_class): Initialize variable `best_class'.
20496 (find_reloads): Call memcpy, not bcopy.
20497
20498 * reload1.c (gen_mode_int, dump_needs): Add prototypes.
20499 (hard_reg_use_compare): Don't needlessly cast away const.
20500 (reload_reg_class_lower): Likewise.
20501 (choose_reload_regs): Initialize variable `regno'.
20502
20503 Tue Oct 5 16:34:12 1999 Paul Burchard <burchard@pobox.com>
20504
20505 * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
20506
20507 Tue Oct 5 16:14:40 1999 Michael Meissner <meissner@cygnus.com>
20508
20509 * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
20510 ({,d}discard): Add forward declarations. Declare parameter as
20511 unused.
20512 (main_without_main): Explicitly declare return type to be int.
20513 (memcpy): Properly declare.
20514
20515 * libgcc2.c (toplevel): If inhibit_libc is defined and not
20516 building the trampoline support, declare malloc, free, and
20517 atexit.
20518 (__clear_cache): Mark arguments as potentially unused.
20519
20520 * frame.c (toplevel): If inhibit_libc is defined, declare
20521 malloc and free.
20522
20523 Tue Oct 5 12:00:32 1999 Richard Henderson <rth@cygnus.com>
20524
20525 * flow.c (make_edge): Accept an optional 2D bitmap in which
20526 to cache edge existence. Update all callers.
20527 (make_label_edge, make_eh_edge): Pass through the edge cache.
20528 (make_edges): Provide the cache.
20529
20530 Tue Oct 5 12:16:49 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20531
20532 * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
20533 a char*.
20534 (local_mbtowc): Change the type of variable `i' from int to size_t.
20535
20536 * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
20537 (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
20538
20539 Tue Oct 5 11:34:52 1999 Michael Meissner <meissner@cygnus.com>
20540
20541 * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
20542 after other includes that define the appropriate types. Include
20543 tm_p.h for getting user prototypes.
20544 * ggc-callbacks.c (toplevel): Ditto.
20545 * ggc-none.c (toplevel): Ditto.
20546 * gcc-page.c (toplevel): Ditto.
20547 * ggc-simple.c (toplevel): Ditto.
20548
20549 Mon Oct 4 16:48:16 1999 Diego Novillo <dnovillo@cygnus.com>
20550 Jonathan Larmour <jlarmour@cygnus.co.uk>
20551
20552 * config/mips/mips.c (mips_move_2words): Split doubles if
20553 ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
20554
20555 Mon Oct 4 21:47:31 1999 Richard Henderson <rth@cygnus.com>
20556
20557 * genrecog.c (struct decision_test): New.
20558 (struct decision): Remove test-related members, sort the rest by size.
20559 (IS_SPLIT): Simplify.
20560 (new_decision, new_decision_test): New.
20561 (add_to_sequence): Use them. No special handling for args of
20562 non-MATCH codes.
20563 (maybe_both_true): Renamed from not_both_true; return sense changed.
20564 (maybe_both_true_1, maybe_both_true_2): New. Broken out
20565 of maybe_both_true and adjusted for decision_test.
20566 (position_merit): Remove.
20567 (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
20568 (merge_accept_insn): New, broken out of merge_trees.
20569 (merge_trees): Use them. No special case for c_test; no node
20570 splitting; use test type instead of position_merit.
20571 (factor_tests): New.
20572 (simplify_tests): New.
20573 (break_out_subroutines): Don't write code now.
20574 (find_afterward): New.
20575 (write_afterward, write_switch, write_cond): New.
20576 (write_action, is_unconditional): New.
20577 (write_node): New. Use them.
20578 (write_tree_1): Rewrite. Use the new functions above.
20579 (write_tree): Remove afterward processing.
20580 (write_subroutine): Simplify function variant emission.
20581 (write_subroutines): New.
20582 (same_codes, clear_codes): Remove.
20583 (same_modes, clear_modes): Remove.
20584 (write_header): New, broken out of main.
20585 (make_insn_sequence): Use new_decision and new_decision_test.
20586 (process_tree): New, broken out of main.
20587 (main): Adjust for merge_trees interface change.
20588 Don't #define operands in the output file.
20589 (record_insn_name): New, broken out of make_insn_sequence.
20590 (debug_decision_2, debug_decision_1, debug_decision_0): New.
20591 (debug_decision): New.
20592
20593 1999-10-04 21:58 -0700 Zack Weinberg <zack@bitmover.com>
20594
20595 * resource.c (find_free_register): Mark class_str argument const.
20596 * resource.h: Update prototype to match.
20597
20598 * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
20599 * i386.md: Give all anonymous insns names.
20600
20601 Mon Oct 4 21:12:02 1999 Jeffrey A Law (law@cygnus.com)
20602
20603 * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
20604 blocks.
20605
20606 Mon Oct 4 21:01:39 1999 Richard Henderson <rth@cygnus.com>
20607
20608 * toplev.c (dbr_sched_time): Unconditional.
20609 (peephole2_time): New.
20610 (compile_file): Add pass numbers to all of the dump file suffixes.
20611 Dump peephole2_time. Don't dump times for non-applicable passes.
20612 (rest_of_compilation): Add pass numbers to dump file suffixes.
20613 Conditionalize calls to the scheduler.
20614 * invoke.texi: Update.
20615
20616 Mon Oct 4 20:25:13 1999 Anthony Green <green@cygnus.com>
20617
20618 * flow.c (make_edges): Fix insn iteration.
20619 (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
20620 (find_basic_blocks_1): Fix spelling mistake.
20621
20622 Mon Oct 4 16:56:11 1999 Richard Henderson <rth@cygnus.com>
20623
20624 * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
20625 always have side-effects. Use memset not bzero.
20626 (make_node): Likewise.
20627
20628 Mon Oct 4 16:22:20 1999 Mark Mitchell <mark@codesourcery.com>
20629
20630 * stmt.c (expand_anon_union_decl): When any of the elements of the
20631 union is addressable, so is the entire union.
20632
20633 Mon Oct 4 11:38:33 1999 Richard Henderson <rth@cygnus.com>
20634
20635 * sbitmap.c (sbitmap_ones): Don't set too many bits.
20636
20637 * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
20638 * bitmap.c (bitmap_operation): Return true iff TO changed.
20639 (bitmap_equal_p): New.
20640 (bitmap_bit_p): Tidy arithmetic.
20641 (debug_bitmap_file): Likewise.
20642
20643 Mon Oct 4 11:28:37 1999 Richard Henderson <rth@cygnus.com>
20644
20645 * toplev.c (rest_of_compilation): Turn on cse_not_expected
20646 before cse2 instead of after.
20647
20648 Mon Oct 4 09:55:17 1999 Stan Cox <scox@cygnus.com>
20649
20650 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
20651 register offsets.
20652
20653 Mon Oct 4 08:54:12 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
20654
20655 * cppinit.c (is_idchar initializer): Loosen tests to accept
20656 gcc 2.>6 and >2.
20657
20658 Mon Oct 4 02:31:20 1999 Mark Mitchell <mark@codesourcery.com>
20659
20660 * mips.md: Define conditional move patterns for floating point
20661 operands and DI mode conditions.
20662
20663 Mon Oct 4 02:12:41 1999 Mark Mitchell <mark@codesourcery.com>
20664
20665 * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
20666 always have side-effects.
20667
20668 Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com)
20669
20670 * mn10200.c (asm_file_start): Fix typo.
20671
20672 * cppinit.c (is_idchar initializer): Tighten tests for when
20673 to put the table into initialized memory.
20674
20675 * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
20676 not an array of rtunion.
20677 * gcc-page.c (ggc_alloc_rtvec): Similarly.
20678 * gcc-simple (ggc_free_rtvec): Similarly.
20679
20680 * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
20681 of rtunions.
20682
20683 * mbchar.h: Add missing #endif.
20684
20685 * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
20686 (FPBIT, DPBIT): Define.
20687
20688 Sun Oct 3 12:44:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20689
20690 * print-tree.c (print_node, indent_to): Remove redundant prototypes.
20691
20692 * profile.c (instrument_arcs, output_gcov_string,
20693 tablejump_entry_p): Add static prototypes.
20694 (output_gcov_string): Constify a char*.
20695
20696 * regmove.c (replacement_quality, fixup_match_2): Add static
20697 prototypes.
20698
20699 * resource.h (reg_dead_p): Add extern prototype.
20700
20701 * rtl.c (trim_filename): Add static prototype.
20702
20703 * scan-decls.c (skip_to_closing_brace): Likewise.
20704
20705 * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
20706 (expand_end_case): Initialize variable `range'.
20707 (emit_case_nodes): Remove unused prototype `rtx_fn'.
20708
20709 * varasm.c (asm_emit_uninitialised): Add static prototype.
20710 (asm_emit_uninitialised, assemble_variable): Mark parameter with
20711 ATTRIBUTE_UNUSED.
20712
20713 Sun Oct 3 12:24:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20714
20715 * cpplib.c (if_directive_nameo): Add static prototype.
20716
20717 * cse.c (cse_insn): Remove unused variable `p'.
20718
20719 * except.c (create_rethrow_ref, push_entry,
20720 receive_exception_label, new_eh_region_entry, find_func_region,
20721 clear_function_eh_region, process_nestinfo): Add static prototypes.
20722 (get_reg_for_handler): Hide definition.
20723 (process_nestinfo): Initialize variable `extra_handlers'.
20724
20725 * expr.h (expand_builtin_longjmp): Add extern prototype.
20726
20727 * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
20728
20729 * function.c (prepare_function_start): Likewise.
20730 (pop_function_context_from): Mark parameter `context' with
20731 ATTRIBUTE_UNUSED.
20732 (push_temp_slots_for_block, flush_addressof): Hide definition.
20733
20734 * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
20735 solve_program_flow_graph, calculate_branch_probs,
20736 function_summary, main, fancy_abort): Add prototypes.
20737
20738 * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
20739 (add_hash): Constify a char*.
20740
20741 * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
20742 ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
20743 ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
20744
20745 * integrate.c (expand_inline_function_eh_labelmap): Likewise.
20746
20747 * lists.c (free_list, zap_lists): Likewise.
20748
20749 Sun Oct 3 12:05:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20750
20751 * alias.c (nonlocal_reference_p): Add static prototype.
20752
20753 * bitmap.c (bitmap_element_allocate): Prototype args in function
20754 pointer cast.
20755
20756 * builtins.c (stabilize_va_list): Add static prototype.
20757 (expand_builtin_va_arg): Constify a char*.
20758
20759 * c-lex.c (getch, put_back, extend_token_buffer_to,
20760 read_line_number, token_getch, token_put_back): Add static
20761 prototypes.
20762
20763 * c-parse.gperf (hash, is_reserved_word): Likewise.
20764
20765 * cccp.c (is_dir_separator): Likewise.
20766
20767 Sat Oct 2 16:07:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20768
20769 * graph.h: New file to prototype functions exported by graph.c.
20770
20771 * Makefile.in (graph.o, toplev.o): Depend on graph.h.
20772
20773 * graph.c: Include graph.h.
20774
20775 * toplev.c: Likewise. Remove redundant prototypes.
20776
20777 Sat Oct 2 11:28:33 1999 Krister Walfridsson <cato@df.lth.se>
20778
20779 * invoke.texi: Removed duplicated description for -Q.
20780
20781 Sat Oct 2 11:16:00 1999 Jim Kingdon <http://developer.redhat.com>
20782
20783 * extend.texi: Grammar fix in __extension__ text.
20784
20785 Sat Oct 2 11:06:31 1999 Richard Henderson <rth@cygnus.com>
20786
20787 * md.texi (define_peephole2): New section.
20788
20789 Sat Oct 2 10:57:56 1999 Jan Hubicka <hubicka@freesoft.cz>
20790
20791 * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
20792 (mov $-1 to or peepholer): Enable for pentium when optimizing for
20793 speed.
20794
20795 Sat Oct 2 10:55:25 1999 Jan Hubicka <hubicka@freesoft.cz>
20796
20797 * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
20798
20799 Sat Oct 2 10:53:22 1999 Jan Hubicka <hubicka@freesoft.cz>
20800
20801 * i386.md (ffs expander): Emit Pentium friendly code for
20802 TARGET_PENTIUM.
20803
20804 Sat Oct 2 02:48:21 1999 Mark P. Mitchell <mark@codesourcery.com>
20805
20806 * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
20807 for non-trees.
20808 (build1): Likewise.
20809
20810 Fri Oct 1 18:01:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20811
20812 * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
20813
20814 Fri Oct 1 12:42:53 1999 Andreas Schwab <schwab@suse.de>
20815
20816 * config/m68k/m68k.c (use_return_insn): Return false if the pic
20817 register is in use.
20818
20819 Fri Oct 1 10:56:06 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20820
20821 * md.texi (No Constraints): Delete section.
20822 * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
20823 * final.c (final_scan_insn): We always have register constraints.
20824 * genattrtab.c: Don't include "insn-config.h".
20825 (write_attr_case): We always have register constraints.
20826 * genconfig.c (register_constraint_flag): Delete.
20827 (walk_insn_part): Don't check whether we have register constraints.
20828 (main): Don't write out "#define REGISTER_CONSTRAINTS".
20829 * genoutput.c (have_constraints): Delete.
20830 (main): Don't set it.
20831 (output_operand_data): We always have constraints.
20832 (scan_operands): Likewise.
20833 (compare_operands): Likewise.
20834 * local-alloc.c (block_alloc): We always have constraints.
20835 (requires_inout): Always compile this function.
20836 * recog.c (extract_insn): We always have constraints.
20837 (constrain_operands, reg_fits_class_p): Always compile these
20838 functions.
20839 * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
20840 fields.
20841 (struct insn_operand_data): Likewise.
20842 * regclass.c (regclass): We always have constraints.
20843 (record_reg_classes, copy_cost, record_address_regs,
20844 auto_inc_dec_reg_p): Always compile these functions.
20845 * regmove.c (regmove_optimize): We always have constraints.
20846 * reload.c (find_reloads): Likewise.
20847 * reload1.c (reload): Likewise.
20848 (reload_cse_simplify_operands): Likewise.
20849 * i860.c (output_delay_insn): Likewise.
20850
20851 Thu Sep 30 23:04:41 1999 Mark P. Mitchell <mark@codesourcery.com>
20852
20853 * iris6.h (BUILD_VA_LIST_TYPE): Define.
20854
20855 Thu Sep 30 18:44:50 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
20856
20857 * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
20858 for the va_list record.
20859
20860 Thu Sep 30 18:34:54 1999 Jan Hubicka <hubicka@freesoft.cz>
20861
20862 * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
20863 prologues.
20864
20865 Thu Sep 30 18:31:36 1999 Jan Hubicka <hubicka@freesoft.cz>
20866
20867 * alias.c: Include insn-flags.h.
20868 * Makefile.in (alias.o): Update.
20869
20870 Thu Sep 30 18:21:30 1999 Jan Hubicka <hubicka@freesoft.cz>
20871
20872 * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
20873 to LTU and GEU. Handle more cases using sbb.
20874
20875 Thu Sep 30 18:18:39 1999 Jan Hubicka <hubicka@freesoft.cz>
20876
20877 * i386.md (truncatexfdf splitters): Do not use subreg.
20878 (fop XFmode patterns): Fix mode in operand testing.
20879
20880 Thu Sep 30 18:04:13 1999 Richard Henderson <rth@cygnus.com>
20881
20882 * jump.c (jump_optimize_1): Amend last change to test only the
20883 form of the operand, not the insn.
20884
20885 * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
20886 not register_operand to determine when B may need preloading.
20887
20888 Thu Sep 30 17:39:16 1999 Richard Henderson <rth@cygnus.com>
20889
20890 * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
20891 (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
20892 (call-value patterns): Move to end of file.
20893 (*): Remove mode from label_ref in (pc) context.
20894 (movstrqi): Use memory not general_operand for BLKmode operands.
20895 (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
20896 to register_operand operands.
20897 (peep2 patterns): Convert from commented-out peephole patterns.
20898
20899 Thu Sep 30 14:39:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20900
20901 * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
20902 to BUILT_IN_INIT_DWARF_REG_SIZES.
20903 * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
20904 Renamed from BUILT_IN_DWARF_REG_SIZE; call
20905 expand_builtin_init_dwarf_reg_sizes.
20906 * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
20907 with __builtin_init_dwarf_reg_size_table.
20908 * dwarf2out.c (struct reg_size_range): Delete.
20909 (expand_builtin_init_dwarf_reg_sizes): New function.
20910 (expand_builtin_dwarf_reg_size): Delete.
20911 * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
20912 (expand_builtin_dwarf_reg_size): Don't declare.
20913 * libgcc2.c (dwarf_reg_size_table_initialized): New.
20914 (dwarf_reg_size_table): New.
20915 (init_reg_size_table): New function.
20916 (copy_reg): Use dwarf_reg_size_table.
20917 (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
20918 before use.
20919
20920 Thu Sep 30 05:40:34 1999 Richard Earnshaw <rearnsha@arm.com>
20921
20922 * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
20923 Correctly build argument list to constructor and destructor functions.
20924
20925 Thu Sep 30 00:13:27 1999 Dirk Zoller <duz@rtsffm.com>
20926
20927 * c-tree.h (warn_float_equal): Declare.
20928 * c-decl.c (warn_float_equal): Define.
20929 (c_decode_option): Recognize -W[no-]float-equal.
20930 * c-typeck.c (build_binary_op): Conditionally warn
20931 about equality tests of floating point types.
20932 * toplev.c (documented_lan_options): Add -W[no-]float-equal.
20933 * invoke.texi: Add docs for -Wfloat-equal warning.
20934
20935 Wed Sep 29 23:43:39 1999 Jeffrey A Law (law@cygnus.com)
20936
20937 * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
20938 generating RTL directly.
20939 * mips.h (INIT_TARGET_OPTABS): Likewise.
20940 * mn10200.h (INIT_TARGET_OPTABS): Likewise.
20941
20942 * expr.h (init_mov_optab): Delete declaration
20943
20944 * h8300.c (WORD_REG_USED): Update to avoid useless register
20945 saves in interrupt functions and functions which never return.
20946
20947 * cse.c (struct set): Delete inner_dest_loc field.
20948 (cse_insn): Remove assignments to inner_dest_loc field.
20949
20950 Wed Sep 29 16:06:20 1999 Richard Henderson <rth@cygnus.com>
20951
20952 * ggc-page.c: Don't include <unistd.h> etc taken care of
20953 by "system.h". Include <sys/mman.h> afterward.
20954
20955 Wed Sep 29 16:05:18 1999 Richard Henderson <rth@cygnus.com>
20956
20957 * rs6000.c (rs6000_encode_section_info): If ggc_p, use
20958 ggc_alloc_string.
20959
20960 Tue Sep 28 16:45:40 1999 David Edelsohn <edelsohn@gnu.org>
20961
20962 * xcoffout.c (xcoffout_declare_function): Add documentation.
20963 * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
20964 TARGET_64BIT. Compare constant to -1, not bit pattern.
20965 (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
20966 (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix
20967 gen_movsi typos.
20968
20969 Tue Sep 28 16:43:14 1999 Nick Clifton <nickc@cygnus.com>
20970
20971 * dwarf2out.c (add_abstract_origin_attribute): Abort if
20972 origin_die is NULL.
20973 (gen_inlined_enumeration_type_die): Do not abort if the type has
20974 not been writeen out.
20975 (gen_inlined_structure_type_die): Do not abort if the type has
20976 not been writeen out.
20977 (gen_inlined_union_type_die): Do not abort if the type has
20978 not been writeen out.
20979 (gen_tagged_type_instantiation_die): Do not abort if the type
20980 has not been written out.
20981
20982 Tue Sep 28 14:33:47 1999 Bernd Schmidt <bernds@cygnus.co.uk>
20983
20984 * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
20985 call it.
20986 * reg-stack.c (straighten_stack): Copy hard reg set with
20987 COPY_HARD_REG_SET.
20988
20989 Tue Sep 28 01:11:05 1999 Richard Henderson <rth@cygnus.com>
20990
20991 * builtins.c (stabilize_va_list): Stabilize array type va_list
20992 to a pointer type, not the base record type.
20993 (expand_builtin_va_copy): Dereference the pointers explicitly;
20994 use the correct size for the copy.
20995
20996 * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
20997 (rs6000_va_arg): Likewise.
20998
20999 Mon Sep 27 23:27:21 1999 Richard Henderson <rth@cygnus.com>
21000
21001 * rtl.h (struct rtx_def): Move gc_mark to align mode field.
21002
21003 Mon Sep 27 23:20:29 1999 Mark Mitchell <mark@codesourcery.com>
21004
21005 * tree.h (struct tree_decl): Use `bclass', not `class', in name of
21006 field.
21007 (DECL_BUILT_IN_CLASS): Adjust accordingly.
21008
21009 Mon Sep 27 23:03:16 1999 Richard Henderson <rth@cygnus.com>
21010
21011 * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
21012 (init_ggc): Use it instead of a constant.
21013 (ggc_collect): Bound allocated_last_gc by it.
21014
21015 Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com)
21016
21017 * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
21018 with va_list.
21019
21020 Mon Sep 27 19:40:17 CEST 1999 Marc Espie <espie@cvs.openbsd.org>
21021
21022 * configure.in (mips*el-*-openbsd*): Don't duplicate default settings.
21023 (mips*-*-openbsd*): Let big endian configuration be a fragment.
21024 * configure: Regen.
21025 * config/mips/openbsd.h: New, OpenBSD little endian target.
21026 * config/mips/openbsd-be.h: New, OpenBSD big endian target fragment.
21027 * config/mips/xm-openbsd.h: New, OpenBSD host.
21028
21029 Mon Sep 27 10:28:48 1999 Andreas Schwab <schwab@suse.de>
21030
21031 * config/m68k/m68k.c (output_function_prologue,
21032 output_function_epilogue): Use
21033 current_function_uses_pic_offset_table instead of regs_ever_live
21034 to decide whether to save/restore pic register.
21035 (legitimize_pic_address): Don't modify regs_ever_live any more.
21036
21037 Sun Sep 26 10:55:36 1999 Mark Mitchell <mark@codesourcery.com>
21038
21039 * function.h (struct function): Add x_dont_save_pending_sizes_p.
21040 * stor-layout.c (variable_size): Don't add sizes to the pending
21041 sizes list if x_dont_save_pending_sizes_p is set.
21042
21043 Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net)
21044
21045 * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
21046 for symbolic_operand().
21047 * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
21048
21049 Sun Sep 26 07:37:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21050
21051 * combine.c (gen_rtx_combine): Add missing call to va_end().
21052
21053 * final.c (asm_fprintf): Likewise.
21054
21055 * genattrtab.c (attr_rtx): Likewise.
21056
21057 Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com)
21058
21059 * cse.c: Update comments.
21060 (cse_insn): When converting a conditional/computed jump into
21061 an unconditional jump, always make sure a BARRIER immediately
21062 follows the converted jump. Do not delete unreachable code.
21063 (cse_basic_block): Do not delete unreachable code.
21064 * toplev.c (rest_of_compilation): Move call to
21065 delete_trivially_dead_insns after the conditional call to
21066 jump_optimize.
21067
21068 Sat Sep 25 09:03:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21069
21070 * collect2.c (make_temp_file): Don't prototype.
21071
21072 * gcc.c (make_temp_file): Likewise.
21073
21074 * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
21075
21076 Sat Sep 25 13:42:15 1999 Nick Clifton <nickc@cygnus.com>
21077
21078 * varasm.c (asm_emit_uninitialised): New function: Generate
21079 the assembler statements necessary to declare an uninitialised
21080 variable.
21081 (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
21082 variable.
21083 (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
21084 (ASM_EMIT_COMMON): New macro: Emit an entry in the common
21085 section.
21086 (assemble_variable): Use asm_emit_uninitialised to emit an
21087 uninitialised variable.
21088
21089 Fri Sep 24 17:10:56 1999 Nick Clifton <nickc@cygnus.com>
21090
21091 * combine.c (simplify_comparison): Cope with downshifting a 32 bit
21092 constant on a 64 bit host. Patch supplied by Geoffrey Keating
21093 <geoffk@cygnus.com>.
21094
21095 Fri Sep 24 10:48:10 1999 Bernd Schmidt <bernds@cygnus.co.uk>
21096
21097 * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
21098 * c-common.h (builtin_function): Don't declare.
21099
21100 * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
21101 DECL_BUILT_IN.
21102 (pushdecl): Likewise.
21103 (finish_decl): Likewise.
21104 (builtin_function): New arg CLASS. Arg FUNCTION_CODE now of type
21105 int. All callers changed.
21106 Set the builtin's DECL_BUILT_IN_CLASS.
21107 * tree.h (enum built_in_class): New.
21108 (enum built_in_function): Delete NOT_BUILT_IN.
21109 (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
21110 in a union.
21111 (DECL_SET_FUNCTION_CODE): Likewise.
21112 (DECL_BUILT_IN_CLASS): New macro.
21113 (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
21114 (struct tree_decl): Split builtin function code field into a
21115 struct.
21116 (builtin_function): Declare.
21117
21118 Fri Sep 24 01:45:05 1999 Mark Mitchell <mark@codesourcery.com>
21119
21120 * optabs.c (init_traps): Fix typo in last change.
21121
21122 Fri Sep 24 01:10:11 1999 Mark Mitchell <mark@codesourcery.com>
21123
21124 * toplev.c (rest_of_decl_compilation): Update comment.
21125
21126 Fri Sep 24 11:57:06 1999 Geoffrey Keating <geoffk@cygnus.com>
21127
21128 * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
21129 in .sbss if appropriate.
21130 (EXTRA_SECTION_FUNCTIONS): Add sbss.
21131 (SBSS_SECTION_ASM_OP): New macro.
21132 * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
21133 (EXTRA_SECTIONS): Add in_sbss.
21134 * config/mips/mips.h: Prototype sbss_section.
21135
21136 Thu Sep 23 18:18:55 1999 Mark Mitchell <mark@codesourcery.com>
21137
21138 * stmt.c (expand_start_bindings): Don't allow cleanup instructions
21139 to disappear.
21140
21141 Thu Sep 23 18:07:01 1999 Mark Mitchell <mark@codesourcery.com>
21142
21143 * optabs.c (init_traps): Register trap_rtx as a GC root.
21144
21145 Thu Sep 23 17:41:47 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
21146
21147 * config/mips/mips.c (function_arg_pass_by_reference): Define
21148 unconditionally, since it's called unconditionally.
21149
21150 Thu Sep 23 13:40:02 1999 Jason Merrill <jason@yorick.cygnus.com>
21151
21152 * toplev.c (documented_lang_options): Add -fshort-wchar.
21153 * c-decl.c (c_decode_option): Likewise.
21154 (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
21155 for wchar_t.
21156 * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
21157 * gcc.c (default_compilers): If -fshort-wchar,
21158 override __WCHAR_TYPE__.
21159 * tm.texi (C Dialect Options): Add -fshort-wchar.
21160
21161 * dwarf2out.c (output_aranges): Use DW_AT_location to find the
21162 symbol for a variable.
21163
21164 * cpplib.h (CPP_PREPROCESSED): New macro.
21165 * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
21166 we're seeing this input for a second time.
21167
21168 Thu Sep 23 12:54:49 1999 Alex Samuel <samuel@codesourcery.com>
21169
21170 * emit-rtl.c (init_emit_once): Initialize modes first.
21171
21172 Sun Sep 19 01:23:23 1999 Alex Samuel <samuel@codesourcery.com>
21173
21174 * config/i386/i386.c (pic_label_name): Change to char pointer.
21175 (global_offset_table): New variable.
21176 (load_pic_register): Fill global_offset_table if it hasn't
21177 already been done. Allocate pic_label_name dynamically.
21178 * ggc.h (empty_string): New variable.
21179 * ggc-simple.c (empty_string): Likewise.
21180 (init_ggc): Allocate empty_string and add as root.
21181 * stmt.c (digit_strings): New variable.
21182 (init_stmt): Add last_block_end_note as root. Allocate and
21183 initialize digit_strings.
21184 (expand_asm_operands): Use empty_string instead of string
21185 constant. Use digit_strings instead of string constants.
21186 * profile.c (init_arc_profiler): Allocate string with
21187 ggc_alloc_string instead of xmalloc.
21188 (output_func_start_profiler): Likewise.
21189 * c-typeck.c (digest_init): Check if init is error_mark_node.
21190
21191 Thu Sep 23 12:59:14 1999 Alex Samuel <samuel@codesourcery.com>
21192 Richard Henderson <rth@cygnus.com>
21193
21194 * ggc-page.c: New file.
21195 * Makefile.in (ggc-page.o): New.
21196
21197 Thu Sep 23 13:55:21 1999 Jeffrey A Law (law@cygnus.com)
21198
21199 * invoke.texi: Document -fdelete-null-pointer-checks
21200 * toplev.c (flag_delete_null_pointer_checks): New.
21201 (f_options): Add entry for -fdelete-null-pointer-checks.
21202 (rest_of_compilation): Conditionalize null pointer check
21203 elimination on flag_delete_null_pointer_checks.
21204 (main): If -O2 or greater, enable -fdelete-null-pointer-checks
21205
21206 1999-09-23 10:56 -0700 Zack Weinberg <zack@bitmover.com>
21207
21208 * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
21209 copyright notice and special exception to GPL.
21210
21211 Thu Sep 23 13:40:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21212
21213 * abi64.h (mips_function_value): Add prototype arguments.
21214
21215 * mips-protos.h: New file with mips prototypes.
21216
21217 * mips.c: Include "tm_p.h".
21218 (mktemp, lookup_name): Add prototype arguments.
21219 (extern_list, string_constant, mips_fill_delay_slot,
21220 mips_output_external, mips_output_external_libcall,
21221 mips_output_filename, mips_declare_object, function_prologue,
21222 mips_expand_prologue, function_epilogue, mips16_constant,
21223 build_mips16_function_stub, mips_output_conditional_branch):
21224 Constify a char*.
21225 (mips_va_start): Remove unused variable `u'.
21226 (mips_va_arg): Cast value to unsigned when comparing against one.
21227 (trace): Delete.
21228 (save_restore_insns, mips_expand_prologue): Add missing arg in
21229 call to `large_int'.
21230
21231 * mips.h: Move prototypes to mips-protos.h.
21232 (data_section, memory_address_p, rdata_section,
21233 readonly_data_section, simple_epilogue_p, text_section): Delete
21234 prototypes delcared elsewhere.
21235 (mips_epilogue_delay_slots, print_options): Delete unused decls.
21236 (trace): Delete.
21237 (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
21238
21239 * mips.md: Delete extra args in call to `mips_move_2words'.
21240
21241 * xm-iris6.h (alloca): Add prototype argument.
21242
21243 * genpeep.c: Include "tm_p.h" in generated output file.
21244
21245 Thu Sep 23 10:36:55 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
21246
21247 * basic-block.h (find_edge_index): Change parameters.
21248 * flow.c (verify_edge_list): Pass basic_block parameters to
21249 find_edge_index instead of integers.
21250
21251 Thu Sep 23 15:54:12 1999 Nick Clifton <nickc@cygnus.com>
21252
21253 * combine.c (simplify_comparison): Use an unsigned shift to adjust
21254 the constant.
21255
21256 Thu Sep 23 08:46:21 1999 Guy Harris <guy@netapp.com>
21257
21258 * gcc.1: Fix a formatting error.
21259
21260 Wed Sep 22 16:10:21 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
21261
21262 * install.texi (Configurations): Remove pyramid. Add fr30, i686,
21263 i786, mn10200, mn10300, pdp11, v850.
21264
21265 Thu Sep 23 07:37:13 1999 Dan Nicolaescu <dann@ics.uci.edu>
21266
21267 * libgcc2.c (num_digits): Add prototype with
21268 __attribute__((const)).
21269 (__terminate): Add prototype.
21270
21271 Thu Sep 23 05:32:06 1999 Richard Henderson <rth@cygnus.com>
21272
21273 * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
21274
21275 * alpha/alpha.c (print_operand): Fix type of `code'.
21276 (alpha_output_filename): Constify.
21277 * alpha/alpha.h: Move all function declarations ...
21278 * alpha/alpha-protos.h: ... here. New file.
21279 * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
21280 (SECTION_FUNCTION_TEMPLATE): Likewise.
21281
21282 Thu Sep 23 11:15:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
21283
21284 * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
21285 * expr.c (expand_expr): Likewise.
21286 (do_jump): Likewise.
21287 (do_store_flag): Pass ccp_store_flag to can_compare_p.
21288 * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
21289 accessor macros.
21290 (enum can_compare_purpose): New.
21291 (can_compare_p): Adjust prototype.
21292 (prepare_cmp_insn, prepare_operand): Declare.
21293 * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
21294 * optabs.c (cmp_available_p): Deleted.
21295 (expand_abs): Pass ccp_jump to can_compare_p.
21296 (can_compare_p): New arg PURPOSE. Check for combined optabs.
21297 (prepare_cmp_insn): No longer static. Add arg PURPOSE.
21298 Call can_compare_p rather than cmp_available_p.
21299 (prepare_operand): No longer static.
21300 (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
21301 (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
21302 (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
21303 sequence to use emit_cmp_and_jump_insns.
21304 (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
21305
21306 Wed Sep 22 17:58:01 1999 Stan Cox <scox@cygnus.com>
21307
21308 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
21309 register offsets; let LEGITIMIZE_ADDRESS load it into a register.
21310 (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
21311 (plus (reg) (const_int 0))
21312 * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
21313
21314 Wed Sep 22 17:55:31 1999 David Edelsohn <edelsohn@gnu.org>
21315
21316 * rs6000.c (expand_block_move): DImode loads and stores require
21317 word-aligned displacements. Increment address registers with
21318 adddi3 on 64-bit platform. Use TARGET_POWERPC64 not TARGET_64BIT.
21319
21320 Wed Sep 22 17:35:55 1999 Michael Meissner <meissner@cygnus.com>
21321
21322 * dwarf2out.c (base_type_die): Use the name __unknown__ if there
21323 is no name for the base type, rather than segfault. If we are
21324 writing out a complex integer type, use DW_ATE_lo_user.
21325
21326 * expr.c (emit_move_insn_1): If we are copying a complex that fits
21327 in one word or less (complex char, complex short, or on 64 bit
21328 systems complex float) to/from a hard register, copy it through
21329 memory instead of dying in gen_{real,imag}part. If we have a
21330 short complex type, prevent inlining since it allocates stack
21331 memory.
21332
21333 * tree.c (build_complex_type): If we are writing dwarf2 output,
21334 generate a name for complex integer types.
21335
21336 Wed Sep 22 11:34:08 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
21337
21338 * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
21339 * flow.c (remove_edge): Remove extra whitespace.
21340 (remove_fake_edges): Fix comment.
21341 (add_noreturn_fake_exit_edges): Use the correct name.
21342
21343 Wed Sep 22 16:12:40 BST 1999 Nathan Sidwell <nathan@acm.org>
21344
21345 * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
21346 (mostlyclean): Depend on INTL_MOSTLYCLEAN.
21347 (clean): Depend on INTL_CLEAN.
21348 (maintainer-clean): Adjust.
21349
21350 Wed Sep 22 10:18:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21351
21352 * configure.in (AC_PREREQ): Bump to 2.13.
21353 (AC_C_STRINGIZE): Call this instead of using a custom macro.
21354
21355 * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
21356
21357 * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
21358
21359 * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
21360
21361 * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
21362 (HAVE_STRINGIZE): Define.
21363
21364 Wed Sep 22 06:25:15 1999 Jim Kingdon <http://developer.redhat.com>
21365
21366 * c-parse.in: save and restore warn_pointer_arith on __extension__
21367 along with pedantic.
21368 (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
21369 Set the type of extension to itype rather than $<itype>1 kludge.
21370 * extend.texi (Alternate Keywords): Adjust documentation.
21371 * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
21372
21373 Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com)
21374
21375 * pa.c, pa.h, pa.md: Support multiple assembler dialects in
21376 most assembler templates.
21377
21378 * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
21379 FP loads and stores.
21380 (following_call): Always return zero for the PA8000.
21381 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
21382 FP loads and stores.
21383 (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
21384
21385 * pa.h (BRANCH_COST): Define.
21386
21387 * pa.md (return, return_internal): Use bve for PA2.0.
21388
21389 * pa.md (fused multiply): Add variants which reduce height for the
21390 fused multiply, but which still generate 2 insns.
21391 (fnegabs): Similarly.
21392
21393 * pa.md (subsi3): Turn into an expander. Create two anonymous
21394 patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0.
21395 * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
21396
21397 * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
21398 for TARGET_PA_20.
21399 (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
21400 code generation.
21401 (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
21402 (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
21403
21404 * regclass.c (init_regs): Add "top_of_stack" as a garbage
21405 collection root.
21406
21407 * flow.c (record_active_eh_regions): Terminate loop after finding
21408 the last insn in the last basic block.
21409
21410 Wed Sep 22 20:25:00 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
21411
21412 * config/c4x/c4x.md: Delete parallel instruction peepholes.
21413
21414 Wed Sep 22 19:59:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
21415
21416 * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
21417
21418 Wed Sep 22 19:56:25 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
21419
21420 * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
21421 splitting to not use output template.
21422
21423 Wed Sep 22 19:50:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
21424
21425 * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
21426 * config/c4x/c4x.c (c4x_va_start): New function.
21427
21428 Tue Sep 21 18:40:01 1999 Jan Hubicka <hubicka@freesoft.cz>
21429
21430 * genrecog.c (not_both_true): Handle correctly cases when called for
21431 tests with different positions in the insn.
21432
21433 Tue Sep 21 18:29:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21434
21435 * machmode.h (HOST_PTR_PRINTF): Move from here ...
21436
21437 * system.h (HOST_PTR_PRINTF): ... to here.
21438
21439 * mips-tfile.c: Don't include machmode.h.
21440
21441 * Makefile.in (MACHMODE_H): New variable. Update to use it.
21442 (mips-tfile.o): Don't depend on machmode.h.
21443
21444 Tue Sep 21 18:27:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21445
21446 * haifa-sched.c (sched_analyze): Rename local variable `region' to
21447 avoid conflicts with typedef struct `region' at the top level scope.
21448
21449 Tue Sep 21 14:14:50 1999 Richard Henderson <rth@cygnus.com>
21450
21451 * basic-block.h (basic_block): Add eh_beg, eh_end.
21452 * flow.c (entry_exit_blocks): Update.
21453 (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
21454 Call new functions.
21455 (find_basic_blocks_1): Don't record eh_list at each bb. Use
21456 lists.c functions to allocate insn lists.
21457 (make_edges): Use eh_beg+eh_end, not the lists. Split out EH
21458 edge creation ...
21459 (make_eh_edge): ... here. New.
21460 (move_stray_eh_region_notes): New.
21461 (record_active_eh_regions): New.
21462 (delete_unreachable_blocks): Split out block merging ...
21463 (try_merge_blocks): ... here. New.
21464 (merge_blocks_move_predecessor_nojumps): Remove edge arg.
21465 Dump debugging data.
21466 (merge_blocks_move_successor_nojumps): Likewise.
21467 (merge_blocks): Use eh_beg+eh_end to validate block movement.
21468
21469 Tue Sep 21 11:15:03 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
21470
21471 * extend.texi (Bound member functions): Document unbound pmf
21472 conversion.
21473
21474 Tue Sep 21 14:55:11 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
21475
21476 * flow.c (split_edge): Handle insertion on a fallthrough edge which
21477 has the EXIT_BLOCK as a dest.
21478
21479 Tue Sep 21 14:51:23 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
21480
21481 * flow.c (remove_edge): New function to remove an edge from the
21482 flow graph.
21483 (remove_fake_successors): New function to remove fake successor edges.
21484 (remove_fake_edges): New function to remove all fake edges from the
21485 flow graph.
21486 (add_fake_exit_edges): New function to add fake edges from all blocks
21487 with no successors to the exit block.
21488 * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
21489 prototypes for new functions.
21490
21491 Tue Sep 21 14:49:53 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
21492
21493 * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
21494 Use Pmode to determine whether to output .dword or .word.
21495
21496 Tue Sep 21 11:04:34 1999 Alex Samuel <samuel@codesourcery.com>
21497
21498 * tree.c (built_in_filename): New variable.
21499 (BUILT_IN_FILENAME): New macro.
21500 (init_tree_codes): Allocate built_in_filename.
21501 (make_node): Use built_in_filename instead of string constant.
21502
21503 Tue Sep 21 14:13:27 1999 Nick Clifton <nickc@cygnus.com>
21504
21505 * configure.in: Add fr30 target.
21506 * configure: Regenerate.
21507 * config/fr30: New directory.
21508 * config/fr30/crti.asm: New file.
21509 * config/fr30/fr30.c: New file.
21510 * config/fr30/crtn.asm: New file.
21511 * config/fr30/fr30.h: New file.
21512 * config/fr30/fr30.md: New file.
21513 * config/fr30/lib1funcs.asm: New file.
21514 * config/fr30/t-fr30: New file.
21515 * config/fr30/xm-fr30.h: New file.
21516
21517 Tue Sep 21 06:45:31 1999 Jeffrey A Law (law@cygnus.com)
21518
21519 * flow.c (merge_blocks_move_successor_nojumps): Delete the
21520 BARRIER at the end of the successor, not the BARRIER before
21521 the successor.
21522
21523 * pa.c (pa_add_gc_roots): Fix thinko in last change.
21524
21525 Tue Sep 21 05:29:17 1999 Richard Earnshaw (rearnsha@arm.com)
21526
21527 * stmt.c (any_pending_cleanups): Don't crash when
21528 current_function->stmt is unset.
21529
21530 Tue Sep 21 00:59:49 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
21531
21532 * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
21533 other initializations that may use it for relative offsets.
21534
21535 Mon Sep 20 21:43:25 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
21536
21537 * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
21538 (ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas.
21539 * config/i386/sol2dbg.h: Removed.
21540 * config/i386/sol2gas.h: New file, to enable gas work-around.
21541 * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
21542 Don't use sol2dbg.h.
21543 * configure: Rebuilt.
21544
21545 Mon Sep 20 13:29:41 1999 Mark Mitchell <mark@codesourcery.com>
21546
21547 * invoke.texi (-fthis-is-variable): Remove documentation.
21548
21549 Mon Sep 20 12:59:16 1999 Richard Henderson <rth@cygnus.com>
21550
21551 * basic-block.h (compute_bb_for_insn): Declare.
21552 * flow.c (compute_bb_for_insn): Export. Don't accept the varray
21553 to use; set size of basic_block_for_insn directly.
21554 (find_basic_blocks): Update.
21555
21556 Mon Sep 20 15:11:54 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21557
21558 * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
21559
21560 Mon Sep 20 14:56:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21561
21562 * crtstuff.c (ON_EXIT): Delete empty macro definition.
21563 (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
21564
21565 Mon Sep 20 15:25:35 1999 Nick Clifton <nickc@cygnus.com>
21566
21567 * c-decl.c (c_decode_option): Extend comment.
21568
21569 Mon Sep 20 14:43:37 1999 Nick Clifton <nickc@cygnus.com>
21570
21571 * toplev.c (progname): Make 'const char *'
21572 (flag_print_mem): Move out of main.
21573 (version_flag): Move out of main.
21574 (filename): Move out of main.
21575 (debug_args): Remove g prefix from options.
21576 (documented_lang_options): Remove cpplib specific options.
21577 (display_help): Add g prefix to debug options.
21578 (check_lang_option): Delete this function.
21579 (decode_d_option): New function: Decode -d... option.
21580 (decode_f_option): New function: Decode -f... option.
21581 (decode_W_option): New function: Decode -W... option.
21582 (decode_g_option): New function: Decode -g... option.
21583 (independent_decode_option): New function: Decode a language
21584 independent command line option.
21585 (main): Invoke lang_decode_option and then
21586 independent_decode_option on each command line option in
21587 turn.
21588
21589 Mon Sep 20 05:41:36 1999 Jeffrey A Law (law@cygnus.com)
21590
21591 Revert this change. Gavin's patch to operand_equal_p is a better fix.
21592 * fold-const.c (fold_range_test): Do not try to fold the range
21593 test if the rhs or lhs has side effects.
21594
21595 * basic-block.h (compute_flow_dominators): Declare.
21596
21597 * gcse.c (alloc_code_hoist_mem): New function.
21598 (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
21599 (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
21600 (hoist_code, one_code_hoisting_pass): Likewise.
21601 (gcse_main): If optimizing for size, then hoist expressions
21602 computed in multiple dominated basic blocks.
21603
21604 * gcse.c (invalid_nonnull_info): New function.
21605 (delete_null_pointer_checks): Likewise.
21606 * rtl.h (delete_null_pointer_checks): Declare.
21607 * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
21608
21609 * flow.c (merge_blocks_move_predecessor_nojumps): New function.
21610 (merge-blocks_move_successor_nojumps): Likewise.
21611 (merge_blocks): Allow merging of some blocks, even if it requires
21612 physical movement of the blocks, but not if it requires new jumps.
21613
21614 * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
21615 Callers and prototype changed.
21616 * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
21617
21618 Mon Sep 20 06:56:32 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
21619
21620 * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
21621 -YP when both -p and -pg are present. From i386/sol2.h.
21622
21623 Mon Sep 20 10:49:05 1999 Bernd Schmidt <bernds@cygnus.co.uk>
21624
21625 * Makefile.in (distclean): Delete tm_p.h.
21626 * configure.in: Create a new file, "tm_p.h", from a list in
21627 "tm_p_file". For ix86 systems, set up "tm_p_file" to include
21628 "i386/i386-protos.h".
21629
21630 * alias.c: Include "tm_p.h".
21631 * c-typeck.c: Likewise.
21632 * calls.c: Likewise.
21633 * cse.c: Likewise.
21634 * emit-rtl.c: Likewise.
21635 * explow.c: Likewise.
21636 * expmed.c: Likewise.
21637 * expr.c: Likewise.
21638 * final.c: Likewise.
21639 * flow.c: Likewise.
21640 * fold-const.c: Likewise.
21641 * function.c: Likewise.
21642 * gcse.c: Likewise.
21643 * global.c: Likewise.
21644 * haifa-sched.c: Likewise.
21645 * integrate.c: Likewise.
21646 * jump.c: Likewise.
21647 * local-alloc.c: Likewise.
21648 * loop.c: Likewise.
21649 * optabs.c: Likewise.
21650 * recog.c: Likewise.
21651 * reg-stack.c: Likewise.
21652 * regclass.c: Likewise.
21653 * regmove.c: Likewise.
21654 * reload.c: Likewise.
21655 * reload1.c: Likewise.
21656 * reorg.c: Likewise.
21657 * resource.c: Likewise.
21658 * stmt.c: Likewise.
21659 * stor-layout.c: Likewise.
21660 * toplev.c: Likewise.
21661 * tree.c: Likewise.
21662 * unroll.c: Likewise.
21663 * genattrtab.c (main): Make generated file include "tm_p.h".
21664 * genemit.c (main): Likewise.
21665 * genoutput.c (main): Likewise.
21666 * genrecog.c (main): Likewise.
21667
21668 * i386.h: Delete all prototypes.
21669 * i386.c: Include "tm_p.h".
21670 (ix86_attr_length_default): Call constant_call_address_operand
21671 with correct number of arguments.
21672 * i386-protos.h: New file.
21673 * i386.md (unnamed patterns): Call constant_call_address_operand
21674 with correct number of arguments.
21675 (exception_receiver): Call load_pic_register with correct number
21676 of arguments.
21677
21678 Sun Sep 19 14:18:39 1999 Richard Henderson <rth@cygnus.com>
21679
21680 * c-pragma.c (mark_align_stack): Dereference the void* properly.
21681
21682 Sun Sep 19 09:03:40 1999 Mark Mitchell <mark@codesourcery.com>
21683
21684 * rtl.h (insns_safe_to_move_p): New function.
21685 * loop.c (find_and_verify_loops): Use it.
21686 * rtlanal.c (insns_safe_to_move_p): Define it.
21687
21688 Sun Sep 19 02:54:33 1999 Richard Henderson <rth@cygnus.com>
21689
21690 * c-pragma.c: Include ggc.h.
21691 * Makefile.in (c-pragma.o): Update.
21692
21693 Sat Sep 18 16:01:18 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
21694
21695 * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
21696 (LIB_SPEC): Likewise.
21697 (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
21698 Reindent -YP/-p/-pg.
21699 Copied from config/sparc/sol2.h.
21700
21701 Sat Sep 18 11:52:43 1999 Richard Henderson <rth@cygnus.com>
21702
21703 * c-pragma.c (mark_align_stack): New.
21704 (init_pragma): New.
21705 * c-pragma.h (init_pragma): Declare it.
21706 * c-lex.c (init_parse): Call it.
21707
21708 Sat Sep 18 15:20:38 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
21709
21710 * configure.in: Pick up thread library on Solaris/x86 just
21711 like on Solaris/sparc.
21712 * configure: Rebuilt.
21713
21714 Sat Sep 18 11:15:58 1999 Alex Samuel <samuel@codesourcery.com>
21715
21716 * rtl.h (global_rtx_index): New enum.
21717 (global_rtl): Change to array of rtx.
21718 (pc_rtx, cc0_rtx): Redefine accordingly.
21719 (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
21720 (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
21721 (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
21722 (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
21723 (const_int_rtx): Change to array of rtx.
21724 (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
21725 accordingly.
21726 * emit-rtl.c (global_rtl): Change to array of rtx.
21727 (const_int_rtx): Change to aray of rtx.
21728 (gen_rtx_CONST_INT): Redefine accordingly.
21729 (init_emit_once): Allocate and initialize global_rtl. Likewise
21730 for const_int_rtx. Add both as GC roots.
21731 * genattrtab.c (global_rtl): Update declaration.
21732
21733 1999-09-17 Ulrich Drepper <drepper@cygnus.com>
21734
21735 * Makefile (USER_H): Add iso646.h back.
21736
21737 Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com)
21738
21739 * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
21740 zapping the LOG_LINKS of sched_before_next_call.
21741
21742 * pa.h (INSN_SETS_ARE_DELAYED): Delete.
21743 * pa.c (insn_refs_are_delayed): Renamed from
21744 insn_sets_and_refs_are_delayed.
21745
21746 Fri Sep 17 15:19:01 1999 Mark Mitchell <mark@codesourcery.com>
21747
21748 * functiion.h (struct function): Add x_whole_function_mode_p.
21749 (retrofit_block): Declare.
21750 * function.c (retrofit_block): New function.
21751 (identify_blocks): Add assertions. Allow an incomplete set of
21752 block notes if we're still generating code for the function.
21753 * integrate.c: Include loop.h.
21754 (expand_inline_function): Call find_loop_tree_blocks to map block
21755 notes to blocks when in whole-function mode. Use retrofit_block
21756 to insert new BLOCKs for the inlined function, rather than
21757 insert_block.
21758 * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel.
21759 * Makefile.in (integrate.o): Depend on loop.h.
21760
21761 Fri Sep 17 15:11:20 1999 Mark Mitchell <mark@codesourcery.com>
21762
21763 * tree.h (warn_about_unused_variables): Declare.
21764 * stmt.c (warn_about_unused_variables): New function, split out
21765 from ...
21766 (expand_end_bindings): Here.
21767
21768 Fri Sep 17 15:07:37 1999 Mark Mitchell <mark@codesourcery.com>
21769
21770 * stmt.c (preserve_subexpressions_p): Don't crash when
21771 current_function->stmt is unset.
21772
21773 Fri Sep 17 15:03:16 1999 Mark Mitchell <mark@codesourcery.com>
21774
21775 * stmt.c (expand_start_bindings): Allow callers to pass a flag
21776 indicating that no NOTE_INSN_BLOCK_BEG note is required.
21777 (expand_start_target_temps): Use it.
21778 * except.c (expand_eh_region_start_for_decl): Likewise.
21779 * expr.c (expand_expr): Likewise.
21780
21781 Fri Sep 17 15:05:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
21782
21783 * fold-const.c (operand_equal_p): Pay attention to side effects.
21784
21785 Fri Sep 17 11:14:17 1999 Jason Merrill <jason@yorick.cygnus.com>
21786
21787 * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
21788 * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
21789
21790 * tlink.c (scan_linker_output): Look for keywords before accepting
21791 a mangled name in quotes.
21792
21793 Thu Sep 16 16:47:08 1999 Richard Henderson <rth@cygnus.com>
21794
21795 * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
21796 * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
21797
21798 Thu Sep 16 16:35:41 1999 Richard Henderson <rth@cygnus.com>
21799
21800 * alpha.md: Revert Thu Nov 26 change that came in through the
21801 last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
21802 Avoid earlyclobber when possible.
21803
21804 Thu Sep 16 18:44:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21805
21806 * libgcc2.c (__do_global_ctors): Call atexit with one arg.
21807
21808 * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
21809 Define HAVE_ON_EXIT.
21810
21811 Thu Sep 16 18:06:35 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21812
21813 * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use
21814 CTYPE_CONV in all ctype macros.
21815
21816 * cccp.c (initialize_char_syntax): Use uppercase ctype macro
21817 from system.h.
21818
21819 * cexp.y (initialize_random_junk): Likewise.
21820
21821 * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
21822
21823 * i370.c (handle_pragma): Likewise.
21824
21825 * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
21826
21827 * v850.c (override_options): Likewise.
21828
21829 * doprint.c (_doprnt): Likewise.
21830
21831 * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
21832 Likewise.
21833
21834 * fixinc/server.c (load_data): Likewise.
21835
21836 * fold-const.c (real_hex_to_f): Likewise.
21837
21838 * genattr.c (write_upcase, gen_attr): Likewise.
21839
21840 * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
21841 write_upcase): Likewise.
21842
21843 * genemit.c (print_code): Likewise.
21844
21845 * genopinit.c (gen_insn): Likewise.
21846
21847 * genpeep.c (print_code): Likewise.
21848
21849 * genrecog.c (print_code): Likewise.
21850
21851 * optabs.c (init_libfuncs): Likewise.
21852
21853 Thu Sep 16 14:03:32 1999 Mark Mitchell <mark@codesourcery.com>
21854
21855 * haifa-sched.c (sched_analyze): Keep the list of notes organized
21856 in pairs.
21857 (reemit_notes): Likewise.
21858
21859 Thu Sep 16 11:50:52 1999 Alex Samuel <samuel@codesourcery.com>
21860
21861 * ggc.h (ggc_root): Move to ggc-common.c.
21862 (roots): Remove.
21863 (ggc_mark_rtx, ggc_mark_tree): Change to macro.
21864 (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
21865 (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
21866 (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
21867 * ggc-common.c (ggc_root): Move from ggc.h.
21868 (roots): Declare, static.
21869 (ggc_mark_rtx, ggc_mark_tree): Renamed to...
21870 (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
21871 null or check/set mark bit.
21872 (ggc_mark_roots): New.
21873 * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
21874
21875 Thu Sep 16 11:37:32 1999 Richard Henderson <rth@cygnus.com>
21876
21877 * m32r.c: Include toplev.h.
21878 (*): Add ATTRIBUTE_UNUSED as needed to arguments.
21879 (gen_compare): Rename swap_p to must_swap to match uses.
21880 Add default abort case.
21881 (m32r_output_function_epilogue): Remove unused variables.
21882 (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
21883 * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
21884 define to empty parameter list. Update all uses.
21885 (predicate decls): Use enum machine_mode not int.
21886 * m32r.md (movsi): Call abort, not fatal_insn.
21887 (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
21888
21889 1999-09-14 Andrew Haley <aph@cygnus.com>
21890
21891 * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
21892 use $0 instead of 0.
21893
21894 Thu Sep 16 10:53:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
21895
21896 * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
21897 computation out of loop over hard regs.
21898
21899 Wed Sep 15 21:37:06 1999 Mark Mitchell <mark@codesourcery.com>
21900
21901 * function.c (identify_blocks): Don't shadow a variable in an
21902 outer scope.
21903 * integrate.c (integrate_decl_tree): Don't use pushlevel,
21904 pushdecl, or poplevel to build up the new BLOCK tree.
21905 (expand_inline_function): Likewise.
21906 (integrate_parm_decls): Likewise.
21907
21908 Wed Sep 15 21:20:38 1999 Mark Mitchell <mark@codesourcery.com>
21909
21910 * c-typeck.c (qualify_type): Merge qualifiers from both types.
21911
21912 1999-09-15 Brad Lucier <lucier@math.purdue.edu>
21913
21914 * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
21915 * invoke.texi: Document this change.
21916
21917 Wed Sep 15 17:56:00 1999 Richard Henderson <rth@cygnus.com>
21918
21919 * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
21920 Free the struct.
21921 (mark_emit_status): Renamed from mark_emit_state.
21922 * except.c (mark_eh_status): Renamed from mark_eh_state.
21923 Check not null before marking.
21924 (free_eh_status): New.
21925 * expr.c (mark_expr_status, free_expr_status): New.
21926 * function.c (free_machine_status): New.
21927 (free_after_parsing): New.
21928 (free_after_compilation): Move bits to free_after_parsing; call
21929 free_eh_status, free_expr_status; zero the marked members of the
21930 function state.
21931 (prepare_function_start): No can_garbage_collect.
21932 Call init_eh_for_function.
21933 (expand_dummy_function_end): Free up current_function state.
21934 (mark_function_status): Renamed from mark_function_state.
21935 (mark_function_chain): No can_garbage_collect. Call mark_expr_status.
21936 * function.h (struct function): No can_garbage_collect.
21937 (free_machine_status, free_after_parsing): Declare.
21938 (free_eh_status, free_expr_status): Declare.
21939 * ggc.h (mark_expr_status): Declare.
21940 * stmt.c (free_stmt_status): Free the struct.
21941 (mark_stmt_status): Renamed from mark_stmt_state.
21942 (init_stmt): Don't call init_eh.
21943 (init_stmt_for_function): Don't call init_eh_for_function.
21944 * toplev.c (compile_file): Call init_eh.
21945 (rest_of_compilation): Free basic block info before ggc_collect.
21946 Call free_after_parsing; conditionally call free_after_compilation.
21947 * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
21948 Check not null before marking.
21949 (free_varasm_status): Don't check DECL_DEFER_OUTPUT. Free the struct.
21950
21951 Wed Sep 15 17:53:16 1999 Richard Henderson <rth@cygnus.com>
21952
21953 * c-lex.c (yylex): Initialize warn.
21954
21955 Wed Sep 15 18:35:38 1999 Jeffrey A Law (law@cygnus.com)
21956
21957 * pa.c (emit_move_sequence): Properly set the mode of the scratch
21958 register when performing secondary reloads for the SAR register.
21959
21960 Wed Sep 15 15:51:52 1999 Mark Mitchell <mark@codesourcery.com>
21961
21962 * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
21963 (NOTE_BLOCK): New macro.
21964 (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
21965 * function.h (identify_blocks): Change prototype.
21966 * function.c (identify_blocks): Simplify.
21967 (reorder_blocks): Likewise.
21968 * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
21969 NOTE_INSN_BLOCK_{BEG,END}.
21970 * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
21971 the list of saved notes if the note isn't a
21972 NOTE_INSN_BLOCK_{BEG,END}.
21973 (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
21974 NOTE_BLOCK_NUMBER.
21975 (reemit_notes): Adjust recreation of notes to reflect new saved
21976 note structure.
21977 * print-rtl.c (print_rtx): Print the address of the BLOCK when
21978 printing a block note.
21979 * stmt.c (block_vector): Remove.
21980 (find_loop_tree_blocks): Simplify.
21981 (unroll_block_trees): Likewise.
21982 * tree.h (reorder_block): Change prototype.
21983
21984 Wed Sep 15 14:39:35 1999 Jason Merrill <jason@yorick.cygnus.com>
21985
21986 * gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT.
21987 * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
21988 (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
21989 (__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl.
21990 (atexit, exit): Simplify.
21991 * tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT.
21992 * config/lots: Remove defns of HAVE_ATEXIT.
21993
21994 Wed Sep 15 10:25:12 1999 Mark Mitchell <mark@codesourcery.com>
21995
21996 * calls.c (precompute_arguments): Fix typo in comment.
21997 * expr.c (preexpand_calls): Don't preexpand the cleanup in a
21998 TARGET_EXPR.
21999
22000 Wed Sep 15 09:59:59 1999 Mark Mitchell <mark@codesourcery.com>
22001
22002 * dsp16xx.c (override_options): Fix typos in GC root registration.
22003
22004 Wed Sep 15 15:23:28 1999 Philip Blundell <pb@nexus.co.uk>
22005
22006 * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
22007 from config/svr4.h.
22008 (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
22009 (FUNCTION_PROFILER): Redefine appropriately for Linux.
22010 (CC1_SPEC): Likewise.
22011
22012 Wed Sep 15 10:09:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22013
22014 * genattr.c (main): Add extern prototype. Call return, not exit.
22015 * genattrtab.c (main): Likewise.
22016 * gencheck.c (main): Likewise.
22017 * gencodes.c (main): Likewise.
22018 * genconfig.c (main): Likewise.
22019 * genemit.c (main): Likewise.
22020 * genextract.c (main): Likewise.
22021 * genflags.c (main): Likewise.
22022 * gengenrtl.c (main): Likewise.
22023 * genopinit.c (main): Likewise.
22024 * genoutput.c (main): Likewise.
22025 * genpeep.c (main): Likewise.
22026 * genrecog.c (main): Likewise.
22027
22028 * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
22029 * genattrtab.c (get_insn_name): Likewise.
22030 * gencodes.c (get_insn_name): Likewise.
22031 * genconfig.c (get_insn_name): Likewise.
22032 * genemit.c (get_insn_name): Likewise.
22033 * genextract.c (get_insn_name): Likewise.
22034 * genflags.c (get_insn_name): Likewise.
22035 * genopinit.c (get_insn_name): Likewise.
22036 * genpeep.c (get_insn_name): Likewise.
22037
22038 * gencheck.c (usage): Add static prototype.
22039 * genextract.c (print_path): Constify a char*.
22040 * genopinit.c (optabs): Likewise.
22041 * genoutput.c (operand_data, data, output_predicate_decls,
22042 compare_operands): Likewise.
22043 * genrecog.c (write_tree): Add default case in switch.
22044
22045 Wed Sep 15 09:59:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22046
22047 * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
22048
22049 * print-rtl.c (get_insn_name): Remove prototype.
22050
22051 * toplev.h (progname): Declare const.
22052
22053 * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
22054 init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
22055 dump_sched_info, dump_local_alloc, regset_release_memory,
22056 print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
22057 error_with_file_and_line, error_with_decl, error_for_asm, error,
22058 fatal, warning_with_file_and_line, warning_with_decl, warning,
22059 pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
22060 Remove redundant prototypes.
22061
22062 (notice, check_lang_option, report_file_and_line, vnotice,
22063 mark_file_stack): Add static prototype.
22064 (set_fatal_function): Add prototype.
22065 (vnotice, report_file_and_line, set_fatal_function,
22066 check_lang_option): Constify a char*.
22067 (main): Prototype. Call return, not exit.
22068
22069 Wed Sep 15 09:50:18 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22070
22071 * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
22072
22073 * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
22074
22075 * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
22076
22077 * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
22078
22079 Wed Sep 15 11:04:43 1999 Bernd Schmidt <bernds@cygnus.co.uk>
22080
22081 * function.c (assign_parms): Delete arg SECOND_TIME. Don't test it,
22082 behave as if it's zero in all cases.
22083 (expand_function_start): Adjust call to assign_parms.
22084 * tree.h (assign_parms): Adjust prototype.
22085 * objc/objc-act.c (hack_method_prototype): Adjust call to
22086 assign_parms.
22087
22088 Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com)
22089
22090 * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
22091 arg_pointer_rtx fixed if the argument pointer register is
22092 not fixed.
22093 (NONZERO_BASE_PLUS_P): Likewise.
22094
22095 Tue Sep 14 20:26:02 1999 Richard Henderson <rth@cygnus.com>
22096
22097 * rtl.def (match_insn, match_insn2): Remove match_insn; rename
22098 match_insn2 to match_insn.
22099 * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
22100
22101 Tue Sep 14 20:10:29 1999 Richard Henderson <rth@cygnus.com>
22102
22103 * Makefile.in (USER_H): Remove va-foo.h.
22104
22105 * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
22106 va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
22107 va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
22108 va-spur.h,va-v850.h}: Remove.
22109
22110 Tue Sep 14 19:43:16 1999 Richard Henderson <rth@cygnus.com>
22111
22112 * sparc/sparc.md (eligible_for_return_delay): New attribute.
22113 (in_return_delay): Use it instead of match_insn.
22114
22115 Tue Sep 14 23:05:37 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
22116
22117 * config/alpha/va_list.h (va-alpha.h): Do not include.
22118 (__gnuc_va_list): Typedef as in varargs.h.
22119
22120 Tue Sep 14 18:14:03 1999 Richard Henderson <rth@cygnus.com>
22121
22122 * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
22123 DECL_LIVE_RANGE_RTL.
22124
22125 Tue Sep 14 16:47:08 1999 Mark Mitchell <mark@codesourcery.com>
22126
22127 * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
22128 not NOTE_BLOCK_NUMBER.
22129 (expand_eh_region_end): Likewise.
22130 (find_exception_handler_labels): Likewise.
22131 (scan_region): Likewise.
22132 (exception_optimize): Likewise.
22133 (update_rethrow_references): Likewise.
22134 (set_insn_eh_region): Likewise.
22135 * final.c (final_scan_insn): Likewise.
22136 * flow.c (make_edges): Likewise.
22137 * integrate.c (expand_inline_function): Likewise.
22138 * print-rtl.c (print_rtx): Likewise.
22139
22140 Tue Sep 14 16:30:16 1999 Richard Henderson <rth@cygnus.com>
22141
22142 * ginclude/stdarg.h, ginclude/varargs.h: Implement in
22143 terms of builtin functions and types.
22144
22145 * mips.c (mips_build_va_list): New.
22146 (mips_va_start, mips_va_arg): New.
22147 * mips.h (BUILD_VA_LIST_TYPE): New.
22148 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
22149
22150 * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
22151 (sh_build_va_list, sh_va_start, sh_va_arg): New.
22152 * sh.h (BUILD_VA_LIST_TYPE): New.
22153 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
22154
22155 Tue Sep 14 16:20:24 1999 Richard Henderson <rth@cygnus.com>
22156
22157 * recog.h (struct recog_data): Make dup_num, operand_address_p,
22158 n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
22159 (struct insn_data): Likewise with n_operands, n_dups,
22160 n_alternatives, output_format.
22161 * regclass.c (scan_one_insn): Cast n_operands to int before
22162 arithmetic inside comparison.
22163
22164 Tue Sep 14 15:13:36 1999 Richard Henderson <rth@cygnus.com>
22165
22166 * toplev.c (compile_function): Unconditionally emit nop.
22167
22168 Tue Sep 14 14:41:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22169
22170 * haifa-sched.c (actual_hazard): Move declaration of variable
22171 `this_cost' into the scope where it is used.
22172
22173 Tue Sep 14 14:14:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22174
22175 * c-pragma.c (handle_pragma_token): Wrap variables `name' and
22176 `value' in HANDLE_PRAGMA_WEAK. Wrap variable `align' in
22177 HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
22178
22179 * genrecog.c (make_insn_sequence): Call memset, not bzero.
22180
22181 * jump.c (find_insert_position): Don't declare or define unless
22182 !HAVE_conditional_arithmetic.
22183 (returnjump_p_1, delete_prior_computation): Add static prototypes.
22184
22185 * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
22186
22187 * recog.c (offsettable_address_p): Prototype function pointer.
22188 (preprocess_constraints): Call memset, not bzero.
22189
22190 * tree.c (tree_node_kind_names): Constify a char*. Make static.
22191 (gcc_obstack_init): Don't declare.
22192 (fix_sizetype): Add static prototype.
22193 (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
22194 (tree_cons): Call memset, not bzero.
22195
22196 * varasm.c (remove_from_pending_weak_list): Wrap declaration and
22197 definition in macro ASM_WEAKEN_LABEL.
22198 (mark_const_hash_entry): Add static prototype.
22199
22200 Tue Sep 14 12:22:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22201
22202 * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
22203
22204 * unroll.c (find_common_reg_term, subtract_reg_term,
22205 loop_find_equiv_value): Add static prototypes.
22206 (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
22207 (copy_loop_body): Remove unreachable break statement.
22208
22209 * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
22210
22211 * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
22212
22213 Tue Sep 14 15:28:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
22214
22215 Undo some changes from the gcc2 merge:
22216 * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
22217 * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
22218 pointers.
22219
22220 Undo this change:
22221 Sat Oct 3 07:20:28 1998 Stephen L Moshier <moshier@world.std.com>
22222 * emit-rtl.c (gen_lowpart_common): Disable optimization of
22223 initialized float-int union if the value is a NaN.
22224
22225 Tue Sep 14 04:03:44 1999 Mumit Khan <khan@xraylith.wisc.edu>
22226
22227 * gthr-win32.h: New file.
22228
22229 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
22230 shared as a valid attribute.
22231 * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
22232 * extend.texi: Document `shared' variable attribute.
22233
22234 Tue Sep 14 04:01:46 1999 Loren Rittle <ljrittle@acm.org>
22235
22236 * configure.in: Handle --enable-threads on FreeBSD.
22237 * configure: Rebuit.
22238
22239 Tue Sep 14 03:58:44 1999 Andreas Jaeger <aj@arthur.rhein-neckar.de>
22240
22241 * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
22242 thread support.
22243 * configure: Rebuilt.
22244
22245 Tue Sep 14 03:47:23 1999 Joel Sherrill <joel@OARcorp.com>
22246 Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
22247 Rosimildo DaSilva <rdasilva@connecttel.com>
22248
22249 * configure.in (m68k-*-rtemscoff*): Added.
22250 * configure.in (mips64orion-*-rtems*): Converted to ELF.
22251 * configure.in (sparc-*-rtemsaout*): Added as alias for old
22252 sparc-rtems configuration.
22253 * configure.in (sparc-*-rtemself*): Added.
22254 * configure.in (sparc-*-rtems*): Now ELF not a.out.
22255 * config/i386/rtems.h: Added comment.
22256 * config/sparc/rtemself.h: New file.
22257
22258 * configure.in (m68k-rtemself): Added.
22259 * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
22260 and DWARF_DEBUGGING_INFO.
22261 * config/m68k/crti.s: New file.
22262 * config/m68k/crtn.s: New file.
22263 * config/m68k/t-crtstuff: New file.
22264 * config/m68k/rtemself.h: New file.
22265
22266 * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
22267 global ctor/dtor and C++ exception handling.
22268 * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
22269 for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
22270 ENDFILE_SPEC.
22271 * config/i386/t-rtems-i386: New File.
22272
22273 Tue Sep 14 09:47:41 1999 Andreas Schwab <schwab@suse.de>
22274
22275 * stmt.c (expand_end_case): Return right away if the case stack is
22276 empty.
22277
22278 Tue Sep 14 01:47:19 1999 Jeffrey A Law (law@cygnus.com)
22279
22280 * Makefile.in (version.c): Remove rule incorrectly brought in from
22281 the gcc2 merge.
22282
22283 Tue Sep 14 01:42:27 1999 Marc Espie <espie@cvs.openbsd.org>
22284
22285 * Makefile.in: Prepend $(SHELL) to move-if-change calls.
22286 * msdos/top.sed: Take into account a prepended $(SHELL) to
22287 move-if-change.
22288 * winnt/config-nt.sed: Likewise. Kill bogus substitution.
22289
22290 * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
22291
22292 Tue Sep 14 01:38:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
22293
22294 * regmove.c (fixup_match_1): Don't change an unchanging register.
22295 (stable_but_for_p): Renamed to:
22296 (stable_and_no_regs_but_for_p). Reject unchanging registers too.
22297 Changed all callers.
22298
22299 Tue Sep 14 01:33:15 1999 Andreas Schwab <schwab@suse.de>
22300
22301 * loop.c (strength_reduce): Don't call reg_used_between_p if the
22302 insn from BL2 is after the insn from BL.
22303
22304 Mon Sep 13 21:06:01 1999 Richard Henderson <rth@cygnus.com>
22305
22306 * recog.h (INSN_OUTPUT_FORMAT_*): New.
22307 (struct insn_data): Merge `template' and `outfun' into `output'.
22308 Add `output_format'.
22309 * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
22310 (struct data): Remove `outfun'; add `output_format'.
22311 (name_for_index): Remove declaration.
22312 (output_insn_data): Handle output formats.
22313 (process_template): Emit the bare array for @.
22314 (gen_expand, gen_split): Set output_format to NONE.
22315 * output.h (get_insn_template): Declare.
22316 * final.c (get_insn_template): New.
22317 (final_scan_insn): Use it.
22318 * toplev.c (compile_file): Likewise.
22319
22320 * c4x/c4x.c (c4x_process_after_reload): Likewise.
22321 * i860/i860.c (output_delayed_branch): Likewise.
22322 (output_delay_insn): Likewise.
22323
22324 1999-09-13 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
22325
22326 * rtl.c (obstack_alloc_rtx): Removed.
22327
22328 1999-09-13 17:03 -0700 Zack Weinberg <zack@bitmover.com>
22329
22330 * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
22331
22332 Mon Sep 13 15:21:46 1999 Richard Henderson <rth@cygnus.com>
22333
22334 * i386.c (call_insn_operand): Reject const_int.
22335 (expander_call_insn_operand): Use call_insn_operand.
22336
22337 Mon Sep 13 17:44:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22338
22339 * gcc.c (getrusage): Wrap prototype arguments in PROTO().
22340
22341 1999-09-13 12:18 -0700 Zack Weinberg <zack@bitmover.com>
22342
22343 * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
22344 Use DImode operation.
22345
22346 1999-09-13 12:13 -0700 Zack Weinberg <zack@bitmover.com>
22347
22348 * gcc.c: Include sys/resource.h.
22349 (report_times): New flag.
22350 (execute): If report_times is set, calculate and report the
22351 CPU time consumed by each subprocess.
22352
22353 (rus, prus): New globals.
22354 (option_map): Add --time.
22355 (display_help): Document -time.
22356 (process_command): Set report_times if -time is given.
22357 Turn off -pipe if -time is given.
22358
22359 * invoke.texi: Document new option -time.
22360
22361 * configure.in: Check for getrusage. Check if we have to
22362 prototype getrusage.
22363 * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
22364 * configure: Regenerate.
22365 * config.in: Regenerate.
22366
22367 Mon Sep 13 12:57:06 1999 Dave Brolley <brolley@cygnus.com>
22368
22369 * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
22370 fields.
22371
22372 Mon Sep 13 10:01:33 1999 Nick Clifton <nickc@cygnus.com>
22373
22374 * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
22375 appropriate) if FINE_GRAINED_LIBRARIES is not defined.
22376 (nan): Return _thenan_sf or _thenan_df as appropriate.
22377 (L_thenan_sf): Define _thenan_sf.
22378 (L_thenan_df): Define _thenan_df.
22379
22380 * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
22381 (DPBIT_FUNCS): Add _thenan_df.
22382
22383 Mon Sep 13 09:38:53 1999 Andreas Schwab <schwab@suse.de>
22384
22385 * tree.c (fix_sizetype): Exchange the types for TYPE_SIZE and
22386 TYPE_SIZE_UNIT.
22387
22388 Sun Sep 12 23:28:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22389
22390 * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
22391
22392 * gcc.h: New file.
22393 (lang_specific_driver): Don't take a function pointer parameter.
22394 All callers changed.
22395
22396 * gcc.c: Include gcc.h.
22397 (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
22398 lang_specific_extra_outfiles, fatal): Don't declare.
22399 (multilib_defaults_raw): Constify.
22400 (read_specs): Call memset, rather than bzero.
22401 (main): Call return, not exit.
22402 (lookup_compiler): Call memcpy, not bcopy.
22403 (fatal): Make extern.
22404
22405 * cppspec.c: Include gcc.h.
22406 (lang_specific_driver): Initialize variable `quote'. Constify a
22407 char*. All calls to the function pointer parameter now
22408 explicitly call `fatal'.
22409
22410 * gccspec.c (lang_specific_driver): Include gcc.h.
22411
22412 Sun Sep 12 19:52:10 1999 Richard Earnshaw <rearnsha@arm.com>
22413
22414 * arm.c (note_invalid_constants): Use recog_data.operand_type
22415 for recog_op_type.
22416
22417 Sun Sep 12 15:53:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
22418
22419 * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
22420 Declare.
22421
22422 * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
22423 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
22424 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
22425 reload_secondary_in_reload, reload_secondary_out_reload,
22426 reload_secondary_in_icode, reload_secondary_out_icode,
22427 reload_reg_rtx, reload_when_needed): Delete declarations.
22428 (struct reload): New structure.
22429 (rld): Declare new array.
22430 * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
22431 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
22432 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
22433 reload_secondary_in_reload, reload_secondary_out_reload,
22434 reload_secondary_in_icode, reload_secondary_out_icode,
22435 reload_reg_rtx, reload_when_needed): Delete definitions.
22436 (rld): New array.
22437 (whole file): Replace uses of the deleted arrays with uses of rld.
22438 * reload1.c (whole file): Replace uses of the deleted arrays with
22439 uses of rld.
22440 (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
22441 explicit loops, not with bcopy.
22442
22443 Sun Sep 12 05:00:24 1999 Richard Henderson <rth@cygnus.com>
22444
22445 * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
22446 insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
22447 insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
22448 insn_name): Delete and consolidate into new structures.
22449 (insn_operand_predicate_fn): New.
22450 (insn_output_fn): New.
22451 (insn_gen_fn): New.
22452 (struct insn_operand_data): New.
22453 (struct insn_data): New.
22454 (insn_data): New.
22455 (OUT_FCN): Update for insn_data change.
22456 * builtins.c (expand_builtin_strlen): Likewise.
22457 (expand_builtin_memcmp): Likewise.
22458 * combine.c (make_extraction, simplify_comparison): Likewise.
22459 * cse.c (canon_reg, cse_insn): Likewise.
22460 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
22461 * expmed.c (store_bit_field, extract_bit_field): Likewise.
22462 (emit_store_flag): Likewise.
22463 * expr.c (convert_move, emit_block_move): Likewise.
22464 (clear_storage, emit_push_insn, expand_increment): Likewise.
22465 (do_store_flag): Likewise.
22466 * expr.h (GEN_FCN): Likewise.
22467 (insn_gen_function): Die.
22468 * final.c (final_scan_insn): Update for insn_data change.
22469 (output_asm_name): Likewise.
22470 * function.c (fixup_var_refs_1): Likewise.
22471 * loop.c (check_dbra_loop): Likewise.
22472 * optabs.c (expand_binop, expand_twoval_binop): Likewise.
22473 (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
22474 (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
22475 (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
22476 * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
22477 * regmove.c (gen_add3_insn): Likewise.
22478 * reload.c (push_secondary_reload, combine_reloads): Likewise.
22479 (find_reloads, find_reloads_address_1): Likewise.
22480 (debug_reload_to_stream): Likewise.
22481 * reload1.c (emit_reload_insns, gen_reload): Likewise.
22482 * stmt.c (expand_end_case): Likewise.
22483 * toplev.c (compile_file): Likewise.
22484
22485 * c4x/c4x.c (c4x_process_after_reload): Likewise.
22486 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
22487
22488 * print-rtl.c (insn_name_ptr): Remove declaration.
22489 (get_insn_name): Declare.
22490 (print_rtx): Use it.
22491 * genoutput.c (insn_name_ptr): Remove.
22492 (next_operand_number): New.
22493 (struct operand_data): New.
22494 (null_operand, odata, odata_end): New.
22495 (struct data): Use struct operand_data.
22496 (idata, idata_end): Renamed from insn_data and end_of_insn_data.
22497 (get_insn_name): Renamed from name_for_index.
22498 (output_prologue): Define NO_MD_PROTOTYPES.
22499 (output_predicate_decls): Break out from output_epilogue.
22500 Iterate over the operands list.
22501 (output_operand_data): Break out from output_epilogue. Emit
22502 just the operands list.
22503 (output_insn_data): Break out from output_epilogue. Emit just
22504 the insn data.
22505 (output_epilogue): Remove.
22506 (output_get_insn_name): New.
22507 (constraints, op_n_alternatives, predicates, address_p): Die.
22508 (modes, strict_low, seen): Die.
22509 (scan_operands): Take new param `d' instead of writing to
22510 seven global variables.
22511 (compare_operands): New.
22512 (place_operands): New.
22513 (validate_insn_alternatives): Update for struct data change.
22514 (gen_insn): Don't zero or copy 7 global arrays. Update for
22515 scan_operands; call place_operands.
22516 (gen_peephole, gen_expand, gen_split): Likewise.
22517 (main): Update for new output routines.
22518
22519 * genattr.c (insn_name_ptr): Remove.
22520 (get_insn_name): New function.
22521 * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
22522 * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
22523 * genrecog.c: Likewise.
22524
22525 * alpha.md (adddi3): Make `pattern' array static.
22526
22527 Sun Sep 12 22:05:21 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
22528
22529 * config/c4x/c4x.h (c4x_rpts_cycles_string,
22530 c4x_cpu_version_string): Constify char *.
22531 * config/c4x/c4x.c (c4x_rpts_cycles_string,
22532 c4x_cpu_version_string): Likewise.
22533
22534 Sat Sep 11 23:28:33 1999 Richard Henderson <rth@cygnus.com>
22535
22536 * tree.c (save_tree_status): Revert 10 Sep change.
22537 (restore_tree_status): Likewise. Call obstack_free with NULL
22538 before freeing the obstack proper.
22539
22540 Sat Sep 11 23:23:46 1999 Richard Henderson <rth@cygnus.com>
22541
22542 * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
22543
22544 * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
22545 surrounding context.
22546
22547 Sat Sep 11 19:52:43 1999 Mark Mitchell <mark@codesourcery.com>
22548
22549 * tree.c (type_hash_canon): Put all types in the hash-table, when
22550 GC'ing.
22551
22552 Sat Sep 11 18:37:04 1999 Richard Henderson <rth@cygnus.com>
22553
22554 * recog.h (struct recog_data, recog_data): New.
22555 (recog_foo variables): Kill.
22556 * recog.c (recog_operand, recog_operand_loc): Kill.
22557 (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
22558 (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
22559 (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
22560 (recog_data): Define.
22561 (extract_insn): Update all recog_foo references to use recog_data.
22562 (preprocess_constraints, constrain_operands): Likewise.
22563 * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
22564 * genattrtab.c (main): Likewise.
22565 * genextract.c (main): Likewise.
22566 * genoutput.c: Likewise.
22567 * genrecog.c (write_subroutine, main): Likewise.
22568 * local-alloc.c (block_alloc): Likewise.
22569 * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
22570 * regclass.c (scan_one_insn, record_reg_classes): Likewise.
22571 * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
22572 * reload.c (find_reloads, find_reloads_toplev): Likewise.
22573 * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
22574 (reload_cse_simplify_operands): Likewise.
22575
22576 * arc/arc.c (arc_final_prescan_insn): Likewise.
22577 * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
22578 * h8300/h8300.c (notice_update_cc): Likewise.
22579 * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
22580 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
22581 * mn10200/mn10200.c (notice_update_cc): Likewise.
22582 * mn10300/mn10300.c (notice_update_cc): Likewise.
22583 * romp/romp.c (update_cc): Likewise.
22584 * sparc/sparc.c (check_pic): Likewise.
22585 * v850/v850.c (notice_update_cc): Likewise.
22586
22587 * genemit.c (main): Don't declare recog_operand.
22588
22589 Sat Sep 11 12:41:55 1999 Alex Samuel <samuel@codesourcery.com>
22590
22591 * ggc.h (rtvec_def): Forward declare.
22592 (tree_node): Likewise.
22593 (ggc_root): Define.
22594 (roots): Declare.
22595 (ggc_set_mark_rtx): Add prototype.
22596 (ggc_set_mark_rtvec): Likewise.
22597 (ggc_set_mark_tree): Likewise.
22598 * ggc-simple.c (ggc_root): Don't define.
22599 (roots): Don't declare.
22600 (ggc_mark_rtx): Remove.
22601 (ggc_mark_rtvec): Likewise.
22602 (ggc_mark_tree): Likewise.
22603 (ggc_mark_varray): Likewise.
22604 (ggc_mark_tree_hash_table_entry): Likewise.
22605 (ggc_mark_tree_hash_table): Likewise.
22606 (ggc_set_mart_rtx): New function.
22607 (ggc_set_mark_rtvec): Likewise.
22608 (ggc_set_mark_tree): Likewise.
22609 (ggc_add_root): Remove.
22610 (ggc_add_rtx_root): Likewise.
22611 (ggc_remove_tree_root): Likewise.
22612 (ggc_add_string_root): Likewise.
22613 (ggc_add_tree_varray_root): Likewise.
22614 (ggc_add_tree_hash_table_root): Likewise.
22615 (ggc_del_root): Likewise.
22616 (ggc_mark_rtx_ptr): Likewise.
22617 (ggc_mark_tree_ptr): Likewise.
22618 (ggc_mark_string_ptr): Likewise.
22619 (ggc_mark_tree_varray_ptr): Likewise.
22620 (ggc_mark_tree_hash_table_ptr): Likewise.
22621 * ggc-common.c: New file.
22622 * Makefile.in (OBJS): Add ggc-common.o.
22623 (ggc-common.o): List dependencies.
22624
22625 1999-09-10 22:37 -0700 Zack Weinberg <zack@bitmover.com>
22626
22627 * cppalloc.c (xstrdup): Use memcpy.
22628 * cpperror.c (cpp_print_containing_files): Don't use
22629 cpp_notice.
22630 * cpplib.c (conditional_skip): Set temp->lineno.
22631 (do_endif): Make error message less obscure.
22632 (if_directive_name): New function.
22633 (cpp_get_token [case EOF]): Unwind the if stack and generate
22634 error messages for each unterminated conditional in this file.
22635 (parse_string): Do not behave differently if -traditional.
22636
22637 Fri Sep 10 14:04:07 1999 Richard Henderson <rth@cygnus.com>
22638
22639 * builtins.c (expand_builtin_va_arg): Cope with an array-type
22640 va_list decomposing to pointer-type.
22641 * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
22642 (rs6000_va_arg): Likewise.
22643
22644 Fri Sep 10 13:21:21 1999 Jim Wilson <wilson@cygnus.com>
22645
22646 * except.c (start_dynamic_handler): Compute size using
22647 STACK_SAVEAREA_MODE.
22648
22649 Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22650
22651 * protoize.c: Remove various __STDC__ and POSIX hacks. Don't
22652 include directory headers. Don't define strrchr. Don't provide
22653 my_* replacement functions. Prefer PTR over `pointer_type'.
22654 Don't prototype system functions. Don't redefine getopt.
22655
22656 (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
22657 safe_read, safe_write, save_pointers, restore_pointers,
22658 is_id_char, in_system_include_dir, directory_specified_p,
22659 file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
22660 find_corresponding_lparen, referenced_file_is_newer,
22661 save_def_or_dec, munge_compile_params, gen_aux_info_file,
22662 process_aux_info_file, identify_lineno, check_source,
22663 seek_to_line, forward_to_next_token_char, output_bytes,
22664 output_string, output_up_to, other_variable_style_function,
22665 find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
22666 do_processing, is_syscalls_file, rename_c_file, find_extern_def,
22667 find_static_definition, connect_defs_and_decs, add_local_decl,
22668 add_global_decls, needs_to_be_converted, visit_each_hash_node,
22669 add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
22670 edit_fn_declaration, edit_formals_lists, edit_fn_definition,
22671 scan_for_missed_items, edit_file, string_list_cons): Add static
22672 prototypes.
22673 (standard_exec_prefix, target_machine, target_version,
22674 default_syscalls_dir, string_list, string_list_cons, find_file,
22675 do_cleaning): Constify a char*.
22676 (safe_read, safe_write): Use PTR, not a char*.
22677 (is_id_char): Take an int, not a char.
22678 (main): Add prototype. Call return, not exit.
22679
22680 Fri Sep 10 16:48:26 1999 Andrew Haley <aph@cygnus.com>
22681
22682 * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
22683 when comparing types.
22684
22685 Fri Sep 10 08:43:32 1999 Richard Henderson <rth@cygnus.com>
22686
22687 * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
22688 (strength_reduce): Release the varrays from the no-bivs early exit.
22689
22690 * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
22691 the loop over the registers.
22692
22693 * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
22694 for a new obstack.
22695 (restore_tree_status): Check that instead when freeing the obstack.
22696
22697 Wed Sep 8 16:12:04 1999 Andrew Haley <aph@cygnus.com>
22698
22699 * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
22700 as pointers.
22701
22702 Fri Sep 10 11:58:55 1999 Bernd Schmidt <bernds@cygnus.co.uk>
22703
22704 * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall. Fix some
22705 operand size modifiers.
22706
22707 Fri Sep 10 10:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
22708
22709 * c-common.c (c_common_nodes_and_builtins): Don't build
22710 va_list_type_node.
22711 * c-common.h (enum c_tree_index and related accesor macros): Remove
22712 everything now declared in tree.h.
22713 * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
22714 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
22715 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
22716 (error_mark_node, void_type_node, char_type_node, integer_type_node,
22717 unsigned_type_node, ptr_type_node, va_list_type_node,
22718 integer_zero_node, null_pointer_node, integer_one_node): Delete.
22719 (init_decl_processing): Call build_common_tree_nodes and
22720 build_common_tree_nodes_2 instead of building their nodes here.
22721 Don't add roots for these nodes.
22722 * stor-layout.c (size_zero_node, size_one_node): Delete.
22723 (set_sizetype): Make a new node for bitsizetype each time.
22724 * tree.c (global_trees): New variable.
22725 (init_obstacks): Add a gc root for it.
22726 (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
22727 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
22728 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
22729 (build_common_tree_nodes): New function.
22730 (fix_sizetype): New function.
22731 (build_common_tree_nodes_2): New function.
22732 * tree.h (enum tree_index): New.
22733 (global_trees): Declare.
22734 Add accessor macros for all nodes now moved to global_trees.
22735 Delete their declarations.
22736
22737 Thu Sep 9 20:15:46 1999 Richard Henderson <rth@cygnus.com>
22738
22739 * c-decl.c (finish_function): When processing a nested function,
22740 push and pop GC context around rest_of_compilation.
22741
22742 Thu Sep 9 16:42:06 1999 Richard Henderson <rth@cygnus.com>
22743
22744 * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
22745 Default ix86_arch to PROCESSOR_I386.
22746 * i386.h (CC1_CPU_SPEC): Don't add -march=foo. Remove -mno-foo.
22747 (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
22748 (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
22749 (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
22750 __tune_foo__ if no -mcpu. Make -mcpu=bar define __tune_bar__.
22751 (EXTRA_SPECS): Remove deleted specs.
22752
22753 Thu Sep 9 16:03:06 1999 Richard Henderson <rth@cygnus.com>
22754
22755 * function.c (assign_stack_local_1): Allocate from
22756 function->x_frame_offset, not frame_offset.
22757
22758 Thu Sep 9 14:36:31 1999 Mark Mitchell <mark@codesourcery.com>
22759
22760 * ggc.h (lang_cleanup_tree): Remove.
22761 * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
22762 * ggc-callbacks.c (lang_cleanup_tree): Remove.
22763
22764 * c-decl.c (finish_struct): Use ggc_alloc to allocate
22765 TYPE_LANG_SPECIFIC when garbage collecting.
22766 (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
22767 (lang_cleanup_tree): Remove.
22768
22769 Thu Sep 9 14:23:02 1999 Jason Merrill <jason@yorick.cygnus.com>
22770
22771 * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
22772 * crtstuff.c: Not here.
22773 * dwarf2out.c: Or here.
22774 * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
22775 info.
22776
22777 Thu Sep 9 09:40:58 1999 Mark Mitchell <mark@codesourcery.com>
22778
22779 * function.h (free_after_compilation): Remove decl parameter.
22780 (free_varasm_status0: Likewise.
22781 (free_emit_status): Likewise.
22782 (free_stmt_status): Likewise.
22783 (free_after_compilation): Likewise.
22784 (init_lang_status): New variable.
22785 (free_lang_status): Likewise.
22786 * emit-rtl.c (free_emit_status): Make decl parameter implicit.
22787 * function.c (init_lang_status): New variable.
22788 (free_lang_status): Likewise.
22789 (push_function_context_to): Don't set function::decl here.
22790 (free_after_copmilation): Make decl parameter implicit. Call
22791 free_lang_status if defined.
22792 (prepare_function_start): Call init_lang_status if defined.
22793 (init_function_start): Set function::decl here.
22794 * profile.c (output_func_start_profiler): Don't call pushdecl
22795 until we've actually started the function.
22796 * stmt.c (free_stmt_status): Make decl parameter implicit.
22797 * toplev.c (rest_of_compilation): Don't pass decl to
22798 free_after_compilation.
22799 * varasm.c (free_varasm_status): Likewise.
22800
22801 Thu Sep 9 17:23:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
22802
22803 * except.c (call_get_eh_context): Add root when allocating static
22804 tree variable.
22805
22806 Thu Sep 9 15:24:59 BST 1999 Richard Earnshaw <rearnsha@arm.com>
22807
22808 * arm.c: Include "ggc.h".
22809 (arm_add_gc_roots): New function.
22810 (arm_override_options): Call it.
22811 (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
22812
22813 * arm.md (define_asm_attributes): Add a pool_range attribute.
22814
22815 Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell <nathan@acm.org>
22816
22817 * extend.texi (Volatiles): New node.
22818
22819 Thu Sep 9 03:37:31 1999 Richard Henderson <rth@cygnus.com>
22820
22821 * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
22822 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
22823 (struct ggc_any): Replace `mark' with `magic_mark'.
22824 (ggc_alloc_string): Use memcpy, not bcopy.
22825 (ggc_alloc_any): Set magic_mark. Update bytes_alloced_since_gc.
22826 (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
22827 (ggc_free_any): New.
22828 (ggc_mark_string): Use IGNORE_MARK. Calc back to struct gcc_string.
22829 (ggc_mark): Use IGNORE_MARK. Abort if magic doesn't match.
22830 (ggc_collect): Re-enable collection avoidance. Use GGC_ANY_MARK.
22831 Use IS_MARKED. Use ggc_free_any.
22832
22833 1999-09-09 Scott Bambrough <scottb@netwinder.org>
22834
22835 * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
22836
22837 Thu Sep 9 01:55:21 1999 Richard Henderson <rth@cygnus.com>
22838
22839 * toplev.c (main): Always init_ggc.
22840
22841 Wed Sep 8 23:53:22 1999 Richard Henderson <rth@cygnus.com>
22842
22843 * except.c (find_all_handler_type_matches): Free the list if
22844 we found no matches.
22845
22846 * combine.c (SUBST): Break out to a real function do_SUBST.
22847 (SUBST_INT): Likewise.
22848 * gcse.c (free_pre_mem): Free `temp_bitmap'.
22849 (pre_insert): Free `inserted'.
22850 * loop.c (basic_induction_var): Always set `location'.
22851
22852 * function.c (expand_function_end): Add initial_trampoline as a root.
22853 * rtl.h (init_varasm_once): Declare.
22854 * toplev.c (compile_file): Call it.
22855 * ggc-simple.c (ggc_mark_string_ptr): New.
22856 (ggc_add_string_root): New.
22857 (ggc_collect): Disable collection avoidance temporarily.
22858 * ggc.h (ggc_add_string_root): Declare.
22859 * except.c (create_rethrow_ref): Use ggc_alloc_string.
22860 * optabs.c (init_libfuncs): Likewise.
22861 * varasm.c (named_section): Use ggc_alloc_string.
22862 (make_function_rtl): Likewise.
22863 (make_decl_rtl): Likewise.
22864 (assemble_static_space): Likewise.
22865 (assemble_trampoline_template): Likewise.
22866 (output_constant_def): Likewise.
22867 (force_const_mem): Likewise.
22868 (mark_const_hash_entry): New.
22869 (mark_pool_sym_hash_table): New.
22870 (mark_varasm_state): Use it.
22871 (init_varasm_once): New.
22872
22873 * expr.h (init_one_libfunc): Declare.
22874 * optabs.c (init_one_libfunc): New.
22875 (init_optabs): Use it.
22876 * config/gofast.h: Likewise.
22877 * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
22878 * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
22879
22880 Thu Sep 9 13:46:06 1999 Geoffrey Keating <geoffk@cygnus.com>
22881
22882 * Makefile.in (cppexp.o): Depend on cpphash.h.
22883 * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
22884 Include cpphash.h.
22885 * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
22886 * cpplib.c (do_define): Generalise to handle poisoned definitions,
22887 redefining poisoned identifiers, etc.
22888 (do_undef): Don't allow poisoned identifiers to be undefined.
22889 (do_pragma): Add #pragma poison.
22890 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
22891
22892 * cccp.c: Add T_POISON node type.
22893 (special_symbol): Handle `defined(xxx)' and plain `xxx' for
22894 poisoned xxx.
22895 (do_define): Generalise to handle poisoned definitions,
22896 redefining poisoned identifiers, etc.
22897 (do_undef): Don't allow poisoned identifiers to be undefined.
22898 (do_pragma): Add #pragma poison.
22899 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
22900
22901 * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
22902 * c-pragma.h: Add ps_poison state. We now always have generic
22903 pragmas.
22904
22905 Wed Sep 8 20:30:42 1999 Mark Mitchell <mark@codesourcery.com>
22906
22907 * ggc.h (ggc_alloc): New function.
22908 (ggc_mark): Likewise.
22909 * ggc-simple.c (ggc_any): New structure.
22910 (ggc_status): Add anys.
22911 (n_anys_collected): New variable.
22912 (ggc_alloc): Define.
22913 (ggc_mark): Likewise.
22914 (ggc_collect): Collect the anys.
22915
22916 Wed Sep 8 20:15:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22917
22918 * c-decl.c (mark_binding_level): Make static to match prototype.
22919
22920 Wed Sep 8 16:41:27 1999 Richard Henderson <rth@cygnus.com>
22921
22922 * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
22923
22924 Wed Sep 8 16:07:52 1999 Richard Henderson <rth@cygnus.com>
22925
22926 * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
22927 will use into account. Expand the max width to 5.
22928 * rtl.c: Likewise.
22929
22930 Wed Sep 8 16:01:14 1999 Richard Henderson <rth@cygnus.com>
22931
22932 * ggc-simple.c (ggc_free_rtx): Poison the correct amount
22933 for the rtx length.
22934
22935 Wed Sep 8 15:23:54 1999 Richard Henderson <rth@cygnus.com>
22936
22937 * alpha.md (call value patterns): Remove the result predicates.
22938
22939 Wed Sep 8 13:35:38 1999 Richard Henderson <rth@cygnus.com>
22940
22941 * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
22942 last change.
22943
22944 Wed Sep 8 15:32:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22945
22946 * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
22947 changed from extern char *, to extern PTR. Also fix typo in
22948 NEED_DECLARATION_REALLOC test.
22949
22950 * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
22951
22952 Wed Sep 8 11:40:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22953
22954 * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
22955 ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
22956 ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
22957 ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
22958
22959 * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
22960
22961 * cccp.c (pcfinclude): Likewise.
22962
22963 * global.c (allocno_compare): Likewise.
22964
22965 * haifa-sched.c (rank_for_schedule): Likewise.
22966
22967 * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
22968
22969 * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
22970
22971 * stupid.c (stupid_reg_compare): Likewise.
22972
22973 * tree.c (_obstack_allocated_p): Likewise.
22974
22975 * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
22976
22977 1999-09-08 Bruce Korb autogen@linuxbox.com
22978
22979 * Makefile.in: Give the hapless gperf user a hint about
22980 why "gperf -F" fails.
22981
22982 Wed Sep 8 04:43:22 1999 Richard Henderson <rth@cygnus.com>
22983
22984 * lists.c: Include ggc.h.
22985 (zap_lists): New.
22986 (init_EXPR_INSN_LIST_cache): Install it.
22987
22988 * ggc-simple.c (init_ggc): Absorb the old init.
22989 (ggc_push_context): Use xcalloc.
22990 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
22991 (ggc_collect): Add [rvts] tags to the collection stats.
22992
22993 Wed Sep 8 11:14:25 1999 Andreas Schwab <schwab@suse.de>
22994
22995 * cccp.c (main): Fix handling of -include and -imacros options.
22996
22997 Wed Sep 8 02:23:08 1999 Jeffrey A Law (law@cygnus.com)
22998
22999 * cpplib.c (cpp_push_buffer): Fix order of arguments.
23000
23001 Wed Sep 8 04:44:09 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
23002
23003 * rtl.h (obstack_alloc_rtx): Removed, it's now static in
23004 genrtl.c.
23005
23006 Wed Sep 8 00:33:43 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
23007
23008 * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
23009 * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
23010 and SET_DEST. Update comment.
23011
23012 Wed Sep 8 18:55:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
23013
23014 * config/c4x/c4x.c: Include ggc.h.
23015 (c4x_add_gc_roots): New function.
23016 (c4x_override_options): Call c4x_add_gc_roots.
23017
23018 Wed Sep 8 00:00:16 1999 Richard Henderson <rth@cygnus.com>
23019
23020 * defaults.h (TARGET_ESC): Move ...
23021 * system.h: ... here, where Linas had it in the first place. Silly me.
23022
23023 Tue Sep 7 23:46:35 1999 Linas Vepstas <linas@linas.org>
23024
23025 * c-common.c: Use ISGRAPH, ISLOWER, toupper.
23026 * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
23027 genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
23028 * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
23029 * defaults.h (TARGET_ESC): Add default.
23030
23031 Tue Sep 7 23:36:59 1999 Linas Vepstas <linas@linas.org>
23032
23033 * configure.in: add i370-*-openedition, i370-*-mvs and
23034 i370-*-linux targets
23035
23036 Tue Sep 7 23:31:53 1999 Mark Mitchell <mark@codesourcery.com>
23037
23038 * dsp16xxx.c: Include ggc.h
23039 (override_options): Mark GC roots.
23040 * mn10200.c: Include ggc.h.
23041 (asm_file_start): Mark GC roots.
23042 * tahoe.c: Include ggc.h.
23043 (extensible_operand): Mark GC roots.
23044
23045 Tue Sep 7 23:23:15 1999 Linas Vepstas <linas@linas.org>
23046
23047 * README: Add section discussing status of ELF ABI.
23048 * i370.c: Fix misc spelling mistakes.
23049 (i370_label_scan): Updated notes, exception handling.
23050 (i370_function_prolog): Simplify ELF stack handling.
23051 * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
23052 (STACK_GROWS_DOWNWARD): ELF stack grows down.
23053 (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
23054 * i370.md: (movdi): Add notes.
23055 (floatsidf2): Use stack not rtca for scratch float area.
23056 (iorsi3): Correct operand constraints.
23057 * x-oe: Restore TAROUTOPTS which are used by pax.
23058
23059 Tue Sep 7 22:39:18 1999 Mark Mitchell <mark@codesourcery.com>
23060
23061 * rs6000.c: Include ggc.h.
23062 (rs6000_add_gc_roots): New function.
23063 (override_options): Call it.
23064
23065 Tue Sep 7 22:09:03 1999 Richard Henderson <rth@cygnus.com>
23066
23067 * alpha.h (alpha_compare): New.
23068 (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
23069 * alpha.c: Likewise for the definitions.
23070 (alpha_emit_conditional_branch): Update for alpha_compare.
23071 (alpha_emit_conditional_move): Likewise.
23072 * alpha.md (cmpdf, cmpdi): Likewise.
23073 (setcc patterns): Likewise. Zero alpha_compare after use.
23074 (sne): Optimize (x != 0) into (0U < x).
23075
23076 Tue Sep 7 21:55:02 1999 Richard Henderson <rth@cygnus.com>
23077
23078 * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
23079 (struct machine_function): Declare; add eh_epilogue_sp_ofs.
23080 (INIT_EXPANDERS): Remove.
23081 * alpha.c: Include ggc.h.
23082 (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
23083 (alpha_init_machine_status, alpha_mark_machine_status): New.
23084 (override_options): Install them.
23085 (struct machine_function): Moved to alpha.h.
23086 (alpha_save_machine_status, alpha_restore_machine_status): Remove.
23087 (alpha_init_expanders): Remove.
23088 (alpha_return_addr): Adjust to use current_function->machine.
23089 (alpha_ra_ever_killed): Likewise.
23090 (alpha_expand_epilogue): Likewise.
23091 * alpha.md (eh_epilogue): Likewise.
23092
23093 Wed Sep 8 14:34:42 1999 Ian Piumarta <piumarta@prof.inria.fr>
23094 Melissa O'Neill <oneill@cs.sfu.ca>
23095 Geoffrey Keating <geoffk@cygnus.com>
23096
23097 * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
23098 call-used registers (call-saved registers must still be contiguous
23099 and end with r31, of course).
23100
23101 Tue Sep 7 21:41:38 1999 Richard Henderson <rth@cygnus.com>
23102
23103 * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
23104 (self_promoting_type_p): Delete.
23105 (self_promoting_args_p): Move ...
23106 * c-common.c: ... here.
23107 (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
23108 (simple_type_promotes_to): New.
23109 * builtins.c (lang_type_promotes_to): New.
23110 (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
23111 * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
23112 * c-common.h: ... here.
23113 (self_promoting_args_p, simple_type_promotes_to): Declare.
23114 * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
23115 (grokdeclarator): Likewise.
23116 * tree.h (lang_type_promotes_to): Declare.
23117
23118 Tue Sep 7 17:15:21 1999 Mark Mitchell <mark@codesourcery.com>
23119
23120 Add some machine-dependent GC roots.
23121 * sparc.c: Include ggc.h.
23122 (sparc_add_gc_roots): New function.
23123 (mark_ultrasparc_pipeline_state): Likewise.
23124 (override_options): Call sparc_add_gc_roots.
23125 * pa.c: Include ggc.h.
23126 (pa_add_gc_roots): New function.
23127 (mark_deferred_plabels): Likewise.
23128 (override_options): Call pa_add_gc_roots.
23129 * mips.c: Include ggc.h.
23130 (mips_add_gc_roots): New function.
23131 (override_options): Use it.
23132
23133 Tue Sep 7 11:39:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23134
23135 * cpperror.c (cpp_file_line_for_message): Constify a char*.
23136
23137 * cppexp.c (parse_number, parse_charconst, cpp_lex,
23138 cpp_parse_expr): Add static prototypes.
23139 (parse_charconst): Don't cast away const-ness.
23140 (token): Constify a char*.
23141
23142 * cppfiles.c (file_name_list, include_hash, find_include_file,
23143 finclude, initialize_input_buffer): Constify a char*.
23144 (file_cleanup, find_position): Add static prototypes.
23145
23146 * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
23147 collect_expansion): Add static prototypes.
23148 (cpp_install, create_definition, monthnames): Constify a char*.
23149
23150 * cpphash.h (cpp_install): Likewise.
23151
23152 * cppinit.c (known_suffixes, default_include,
23153 dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
23154 (base_name, dump_special_to_buffer, initialize_dependency_output):
23155 Add static prototypes.
23156
23157 * cpplib.c (my_strerror): Constify a char*.
23158 (null_underflow, null_cleanup, skip_comment, copy_comment,
23159 copy_rest_of_line, handle_directive, pass_thru_directive,
23160 get_directive_token, read_line_number, cpp_print_file_and_line,
23161 v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
23162 v_cpp_warning_with_line, detect_if_not_defined,
23163 consider_directive_while_skipping): Add static prototypes.
23164 (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
23165 cpp_pedwarn_with_file_and_line): Constify a char*.
23166
23167 * cpplib.h (cpp_options, include_hash, progname, definition,
23168 cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
23169 check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
23170 find_include_file, deps_output, include_hash): Constify a char*.
23171
23172 * cppmain.c (progname): Constify.
23173 (main): Add prototype. Use return, not exit.
23174
23175 * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
23176 recognized_macro, check_macro_names, read_scan_file, write_rbrac,
23177 inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
23178 check_protection): Add static prototype.
23179 (xfree): Remove.
23180 (progname, recognized_macrom, recognized_extern): Constify a char*.
23181 (main): Add prototype.
23182
23183 * gen-protos.c (progname): Constify a char*.
23184
23185 Tue Sep 7 00:47:52 1999 Mark Mitchell <mark@codesourcery.com>
23186
23187 * emit-rtl.c (free_emit_status): Take decl as a parameter.
23188 (init_emit_once): Add more GC roots.
23189 * except.c (mark_func_eh_entry): New function.
23190 (mark_eh_node): Mark false_label and rethrow_label.
23191 (init_eh): Add more GC roots.
23192 * function.c (free_after_compilation): Take decl as a paramter.
23193 Call free_stmt_status.
23194 (mark_function_state): Don't assume x_parm_reg_stack_loc is
23195 non-NULL.
23196 * function.h (free_after_compilation): Change prototype.
23197 (free_varasm_status): Likewise.
23198 (free_emit_status): Likewise.
23199 (free_stmt_status): New function.
23200 * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
23201 Remove, replacing with ...
23202 (ggc_status): New structure.
23203 (ggc_chain): New variable.
23204 (init_gcc): Define.
23205 (ggc_push_context): New function.
23206 (ggc_pop_context): Likewise.
23207 (ggc_alloc_rtx): Adjust for use of ggc_chain.
23208 (ggc_alloc_rtvec): Likewise.
23209 (ggc_alloc_tree): Likewise.
23210 (ggc_alloc_string): Likewise.
23211 (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
23212 (ggc_mark_tree): Give language-dependent code a chance to mark
23213 `x' nodes.
23214 (ggc_mark_tree_varray): Handle empty arrays.
23215 (ggc_collect): Adjust for use of ggc_chain. Clear
23216 bytes_alloced_since_last_gc.
23217 * ggc.h (ggc_pop_context): New function.
23218 (ggc_push_context): Likewise.
23219 * print-tree.c (print_node): Don't print obstacks when GC'ing.
23220 * stmt.c (free_stmt_status): New function.
23221 (init_stmt_for_function): Clear last_expr_value.
23222 * toplev.c (rest_of_compilation): Always call free_after_compilation.
23223 Conditionalize call to ggc_collect.
23224 (main): Call init_ggc.
23225 * tree.c (push_obstacks): Do the push, even when GC'ing.
23226 (push_obstacks_nochange): Likewise.
23227 (pop_obstacks): Liekwise.
23228 * varasm.c (free_varasm_status): Take decl as a parameter.
23229
23230 Tue Sep 7 08:15:49 1999 Gavin Romig-Koch <gavin@cygnus.com>
23231
23232 * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
23233 (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
23234 * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
23235 * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
23236
23237 Tue Sep 7 03:42:45 1999 Mark Klein (mklein@dis.com)
23238
23239 * pa/x-pa-mpeix: New file for the MPE port.
23240
23241 * pa/quadlib.asm: New file for long double support.
23242
23243 * configure.in: Add hppa1.0-*-mpeix for MPE port.
23244 * configure: Rebuilt.
23245
23246 Tue Sep 7 10:08:40 1999 Andreas Schwab <schwab@suse.de>
23247
23248 * final.c (shorten_branches): Fix last change.
23249
23250 Tue Sep 7 00:30:32 1999 Jeffrey A Law (law@cygnus.com)
23251
23252 * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
23253
23254 Mon Sep 6 22:44:47 1999 Jeffrey A Law (law@cygnus.com)
23255
23256 * Merge from gcc2 snapshot Jan 9, 1999. See FSFChangeLog for
23257 details.
23258
23259 Mon Sep 6 22:31:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23260
23261 * c-aux-info.c (concat): Don't define.
23262
23263 * cccp.c (my_strerror): Likewise. All callers changed to use
23264 xstrerror instead.
23265 (do_include): Call xstrdup, not xmalloc/strcpy.
23266 (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
23267 (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
23268
23269 * collect2.c (my_strsignal): Likewise. All callers changed to use
23270 strsignal instead.
23271 (locatelib): Call xstrdup, not xmalloc/strcpy.
23272
23273 * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
23274
23275 * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
23276
23277 * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
23278
23279 * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
23280
23281 * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
23282
23283 * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
23284
23285 * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
23286 malloc/realloc.
23287 (find_all_handler_type_matches): Likewise. Don't check return
23288 value.
23289 (get_new_handler, init_insn_eh_region, process_nestinfo): Call
23290 xmalloc, not malloc.
23291 (init_eh_nesting_info): Likewise. Call xcalloc, not xmalloc/bzero.
23292
23293 * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
23294 (init_spec): Call xcalloc, not xmalloc/bzero.
23295 (set_spec): Call xstrdup, not save_string.
23296 (record_temp_file): Call xstrdup, not xmalloc/strcpy.
23297 (find_a_file): Call xstrdup, not xmalloc/strcpy.
23298 (process_command): Call xstrdup, not save_string.
23299 (main): Call xcalloc, not xmalloc/bzero.
23300
23301 * gcov.c (xmalloc): Don't define.
23302 (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
23303 (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
23304 (output_data): Call xcalloc, not xmalloc/bzero.
23305
23306 * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
23307
23308 * mips-tdump.c (xmalloc): Don't define.
23309 (print_symbol): Call xmalloc, not malloc.
23310 (read_tfile): Call xcalloc, not calloc.
23311
23312 * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
23313 Don't define. All callers of xfree/my_strsignal changed to use
23314 free/strsignal instead.
23315 (allocate_cluster): Call xcalloc, not calloc.
23316
23317 * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
23318 Fix memory leak, free allocated memory.
23319
23320 * prefix.c (translate_name): Call xstrdup, not save_string.
23321 (update_path): Likewise.
23322
23323 * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
23324
23325 * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
23326 Don't define. Callers of xfree/savestring2 changed to use
23327 free/concat instead.
23328
23329 * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
23330 (init_elim_table): Likewise.
23331
23332 * resource.c (init_resource_info): Likewise.
23333
23334 * stupid.c (stupid_life_analysis): Likewise.
23335
23336 * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
23337 (open_dump_file): Call concat, not xmalloc/strcpy/...
23338 (clean_dump_file): Likewise.
23339 (compile_file): Call xstrdup, not xmalloc/strcpy.
23340
23341 Mon Sep 6 15:04:55 1999 Richard Henderson <rth@cygnus.com>
23342
23343 * v850.h (EXPAND_BUILTIN_VA_ARG): New.
23344 * v850.c (v850_va_arg): New.
23345
23346 Tue Sep 7 09:36:01 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
23347
23348 * haifa-sched.c: Tidy comments.
23349
23350 Mon Sep 6 14:30:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
23351
23352 * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
23353 (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
23354 $(out_object_file)): Depend on ggc.h.
23355 * c-common.c: Include "ggc.h".
23356 (combine_strings): If doing GC, use ggc_alloc_string.
23357 * c-decl.c: Include "ggc.h".
23358 (ggc_p): Define with value 0.
23359 (mark_binding_level): New function.
23360 (init_decl_processing): Add GC roots.
23361 (mark_c_function_context): New function.
23362 (lang_mark_false_label_stack): New function.
23363 (lang_mark_tree): New function.
23364 (lang_cleanup_tree): New function.
23365 * c-lang.c: Include "ggc.h".
23366 (lang_init): Call c_parse_init.
23367 * c-lex.c: Include "ggc.h".
23368 (check_linenum): If doing GC, don't copy filenames to permanent
23369 obstack.
23370 * c-parse.in: Include "ggc.h".
23371 (c_parse_init): New function.
23372 * c-tree.h (c_parse_init, mark_c_function_context): Declare.
23373 * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
23374
23375 * except.c (mark_eh_state): Mark more state.
23376 * function.c (mark_function_state): Likewise.
23377 * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
23378 (ggc_alloc_string) [GGC_DUMP]: Fix typo.
23379 * toplev.c (mark_file_stack): New function.
23380 (compile_file): If doing GC, use ggc_alloc_string on input filename.
23381 (main): Add root for input_file_stack.
23382
23383 * i386.c: Include "ggc.h".
23384 (ix86_mark_machine_status): New function.
23385 (override_options): Set mark_machine_status.
23386
23387 Mon Sep 6 15:26:23 1999 Bernd Schmidt <bernds@cygnus.co.uk>
23388
23389 * tree.c (copy_node): Copy node contents also if doing GC.
23390
23391 Mon Sep 6 08:42:06 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
23392
23393 * collect2.c (scan_libraries): Fix double-thinko :-).
23394
23395 Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com)
23396
23397 * collect2.c (scan_libraries): Fix thinko.
23398
23399 * cse.c (delete_trivially_dead_insns): Do not skip the last
23400 insn if it is a real insn.
23401
23402 Sun Sep 5 18:57:42 1999 Mark Mitchell <mark@codesourcery.com>
23403
23404 * Makefile.in (ggc-simple.o): Depend on hash.h.
23405 * ggc.h (ggc_add_tree_hash_table_root): Declare.
23406 (ggc_mark_tree_varray): Likewise.
23407 (ggc_mark_tree_hash_table): Likewise.
23408 * ggc-simple.c: Include hash.h.
23409 (ggc_mark_tree_hash_table_ptr): New function.
23410 (ggc_mark_tree_hash_table_entry): Likewise.
23411 (ggc_mark_tree_hash_table): Likewise.
23412 (ggc_add_tree_hash_table_root): Likewise.
23413 * varray.h (const_equiv_data): Use struct rtx_def *, rather than
23414 rtx, when defining fields.
23415
23416 Sun Sep 5 18:57:42 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
23417
23418 * profile.c (output_func_start_profiler): Remove apparently
23419 nonsensical call to start_sequence.
23420
23421 Sun Sep 5 17:34:33 1999 Richard Henderson <rth@cygnus.com>
23422
23423 * clipper/clipper.c (clipper_va_start): Fix typos.
23424
23425 * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
23426 * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
23427 (spur_va_arg): New stub.
23428
23429 * configure.in: Comment out pyramid.
23430
23431 Sun Sep 5 19:11:01 1999 Michael Meissner <meissner@cygnus.com>
23432
23433 * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
23434 don't conflict with the bits that win32, cygwin, and dgux
23435 defines.
23436
23437 Sun Sep 5 09:31:56 1999 Richard Henderson <rth@cygnus.com>
23438 Bernd Schmidt <bernds@cygnus.co.uk>
23439
23440 * integrate.c (function_cannot_inline_p): Do not inline
23441 functions with forced labels.
23442
23443 Sun Sep 5 00:35:17 1999 Richard Henderson <rth@cygnus.com>
23444 Bernd Schmidt <bernds@cygnus.co.uk>
23445 Mark Mitchell <mark@codesourcery.com>
23446
23447 * Makefile.in (ggc-simple.o): Depend on varray.h.
23448 (rtl.o): Depend on ggc.h.
23449 (genattrtab.o): Depend on ggc.h.
23450 (print-tree.o): Likewise.
23451 (fold-const.o): Likewise.
23452 * emit-rtl.c (sequence_element_free_list): Remove, and all references.
23453 (make_insn_raw): Don't cache insns when GC'ing.
23454 (emit_insn_before): Likewise.
23455 (emit_insn_after): Likewise.
23456 (emit_insn): Likewise.
23457 (start_sequence): Use xmalloc to allocate the sequence_stack.
23458 (end_sequence): Add free to free it.
23459 (gen_sequence): Don't cache insns when GC'ing.
23460 (clear_emit_caches): Don't use sequence_element_free_list.
23461 (init_emit): Use xcalloc, not xmalloc+bzero.
23462 * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
23463 * function.c (pop_function_context_from): Use free to free the
23464 fixup_var_refs_queue.
23465 (put_reg_into_stack): Allocate it with xmalloc.
23466 * genattrtab.c: Include ggc.h.
23467 (operate_exp): Don't use obstack_free when GC'ing.
23468 (simplify_cond): Likewise.
23469 (simplify_text_exp): Likewise.
23470 (optimize_attrs): Likewise.
23471 * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
23472 GC'ing.
23473 (gencode): Generate a #include for ggc.h.
23474 * ggc-callbacks.c (ggc_p): Define it to zero.
23475 * ggc-none.c (ggc_p): Likewise.
23476 * ggc-simple.c: Include varray.h.
23477 (ggc_mark_tree_varray): New function.
23478 (ggc_add_tree_varray_root): Likewise.
23479 (ggc_mark_tree_varray_ptr): Likewise.
23480 * ggc.h (ggc_p): Declare.
23481 (varray_head_tag): Likewise.
23482 (ggc_add_tree_varray_root): Declare.
23483 * print-tree.c (print_node): Don't check for TREE_PERMANENT
23484 inconsistencies when GC'ing.
23485 * rtl.c: Include ggc.h.
23486 (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
23487 (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
23488 (rtx_free): Don't call obstack_free when GC'ing.
23489 * toplev.c (rest_of_compilation): Call ggc_collect after every
23490 pass, if GC'ing.
23491 * tree.c (push_obstacks): Do nothing, if GC'ing.
23492 (pop_obstacks_nochange): Likewise.
23493 (pop_obstacks): Likewise.
23494 (make_node): Use ggc_alloc_tree when GC'ing.
23495 (copy_node): Likewise.
23496 (get_identifier): Use ggc_alloc_string when GC'ing.
23497 (build_string): Likewise.
23498 (make_tree_vec): Use ggc_alloc_tree when GC'ing.
23499 (tree_cons): Likewise.
23500 (build1): Likewise.
23501 (type_hash_canon): Don't call obstack_free when GC'ing.
23502
23503 Sat Sep 4 21:52:32 1999 Richard Henderson <rth@cygnus.com>
23504
23505 * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
23506 of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
23507
23508 Sat Sep 4 20:40:19 1999 Richard Henderson <rth@cygnus.com>
23509 Bernd Schmidt <bernds@cygnus.co.uk>
23510 Mark Mitchell <mark@codesourcery.com>
23511
23512 * Makefile.in (stor-layout.o): Depend on ggc.h.
23513 (expr.o): Depend on ggc.h.
23514 (profile.o): Depend on ggc.h.
23515 (stor-layout.o): Depend on ggc.h.
23516 * emit-rtl.c (init_emit_once): Add gc roots.
23517 * expr.c: Include ggc.h.
23518 (emit_block_move): Add gc roots.
23519 (clear_storage): Likewise.
23520 * expr.h (init_stor_layout_once): New function.
23521 * profile.c: Include ggc.h.
23522 (init_arc_profiler): profiler_label is a root.
23523 * scan.c (make_sstring_space): Trust xrealloc to function
23524 correctly with first parameter NULL.
23525 * stor-layout.c: Include ggc.h.
23526 (set_sizetype): Add gc root.
23527 (init_stor_layout_once): New function.
23528 * toplev.c (compile_file): Call it.
23529
23530 Sat Sep 4 19:26:25 1999 Richard Henderson <rth@cygnus.com>
23531 Bernd Schmidt <bernds@cygnus.co.uk>
23532 Mark Mitchell <mark@codesourcery.com>
23533
23534 * Makefile.in (tree.o): Depend on ggc.h.
23535 (varasm.o): Likewise.
23536 (function.o): Likewise.
23537 (stmt.o): Likewise.
23538 (except.o): Likewise.
23539 (optabs.o): Likewise.
23540 (emit-rtl.o): Likewise.
23541 * emit-rtl.c: Include ggc.h.
23542 (sequence_element_free_list): Remove, and all references.
23543 (mark_sequence): New functions.
23544 (mark_emit_state): New function.
23545 * except.c: Include ggc.h.
23546 (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
23547 (mark_tree_label_node): New functions.
23548 (mark_eh_state): New function.
23549 * function.c: Include ggc.h.
23550 (mark_temp_slot, mark_function_chain): New functions.
23551 (mark_function_state): New function.
23552 (init_function_once): New function.
23553 * function.h (init_function_once): New function.
23554 * ggc-callbacks.c (lang_mark_false_label_stack): New function.
23555 * ggc.h (label_node): Declare.
23556 (eh_status, emit_status, stmt_status, varasm_status): Likewise.
23557 (lang_mark_false_label_stack): New function.
23558 (mark_temp_slot): Remove declaration.
23559 (mark_function_chain): Likewise.
23560 (mark_eh_state): Adjust prototype.
23561 (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
23562 Likewise.
23563 * optabs.c: Include ggc.h.
23564 (mark_optab): New function.
23565 (init_optabs): Add gc roots.
23566 * stmt.c: Include ggc.h.
23567 (mark_cond_nesting, mark_loop_nesting): New functions.
23568 (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
23569 (mark_stmt_state): New function.
23570 * toplev.c (compile_file): Call init_function_once.
23571 * tree.c: Include ggc.h.
23572 (type_hash): Move declaration earlier in file.
23573 (TYPE_HASH_SIZE, type_hash_table): Likewise.
23574 (init_obstacks): Add gc roots.
23575 (mark_type_hash): New function.
23576 * varasm.c: Include ggc.h.
23577 (mark_pool_constant): New function.
23578 (mark_varasm_state): New function.
23579
23580 Sat Sep 4 22:28:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23581
23582 * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
23583
23584 Sat Sep 4 18:01:45 1999 Bernd Schmidt <bernds@cygnus.co.uk>
23585
23586 * c-decl.c (struct language_function): Renamed from struct c_function.
23587 Delete elt NEXT.
23588 (c_function_chain): Delete.
23589 (push_c_function_context): New arg F. Don't warn about nested
23590 functions here. Fill LANGUAGE elt of F. Delete code to update
23591 c_function_chain. Don't call push_function_context.
23592 (pop_c_function_context): New arg F. Restore from there instead of
23593 from c_function_chain. Don't call pop_function_context. Clear out
23594 LANGUAGE field of F when done.
23595 * c-lang.c: Include "function.h"
23596 (lang_init): Initialize save_lang_status and restore_lang_status.
23597 * c-parse.in (nested_function, nested_function_notype): Warn about
23598 nested functions. Call push_function_context/pop_function_context
23599 instead of the _c_ variants.
23600 * c-tree.h (push_c_function_context, pop_c_function_context): Update
23601 prototype.
23602 * Makefile.in (c-lang.o): Update dependencies.
23603
23604 * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
23605 regno_pointer_flag, regno_pointer_align.
23606 (gen_reg_rtx): Use xrealloc to enlarge them.
23607 (free_emit_status): New function.
23608 * function.c (mark_machine_status, mark_lang_status): New variables.
23609 (assign_stack_local_1): Renamed from assign_outer_stack_local. Merge
23610 in some bits from assign_stack_local. All callers changed to use new
23611 name.
23612 (assign_stack_local): Just call assign_stack_local_1.
23613 (free_after_compilation): New function.
23614 (put_reg_into_stack): Simplify to always call assign_stack_local_1.
23615 (trampoline_address): Likewise.
23616 (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
23617 (prepare_function_start): Explicitly clear some more variables.
23618 * function.h (struct function): New elt can_garbage_collect.
23619 (mark_machine_status, mark_lang_status): Declare variables.
23620 (free_after_compilation, free_emit_status, free_varasm_status,
23621 init_varasm_status): Declare functions.
23622 * toplev.c (rest_of_compilation): Call free_after_compilation when
23623 done with the current function.
23624 * varasm.c (free_varasm_status): New function.
23625
23626 Sat Sep 4 17:15:13 1999 Richard Henderson <rth@cygnus.com>
23627
23628 * sparc.h (EXPAND_BUILTIN_VA_START): Define.
23629 (EXPAND_BUILTIN_VA_ARG): Define.
23630 * sparc.c (sparc_va_start): New.
23631 (sparc_va_arg): New.
23632
23633 Sun Sep 5 11:11:59 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
23634
23635 * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
23636
23637 Sun Sep 5 10:13:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
23638
23639 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
23640
23641 Sat Sep 4 13:44:01 1999 Mark Mitchell <mark@codesourcery.com>
23642
23643 * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
23644 (OBJS): Add $(GGC).
23645 (ggc-callbacks.o): New target.
23646 * ggc-callbacks.c: New file.
23647
23648 Sat Sep 4 22:53:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
23649
23650 * expr.h: Collapse individual optab and libfunc vars to arrays.
23651 (optab_index, libfunc_index): New enumerations.
23652 (optab_table, libfunc_table): New arrays.
23653 Add accessor macros for both.
23654
23655 * optabs.c (optab_table, libfunc_table): New.
23656 Delete declarations for individual optab and libfunc vars.
23657
23658 Sat Sep 4 12:57:17 1999 Richard Henderson <rth@cygnus.com>
23659
23660 * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
23661
23662 Sat Sep 4 11:19:52 1999 Richard Henderson <rth@cygnus.com>
23663
23664 * Makefile.in (GGC, GGC_LIB): New.
23665 (HOST_RTL): Include ggc-none.o.
23666 (ggc-simple.o): New target.
23667 (ggc-none.o): Likewise.
23668 * tree.h (tree_common): Add gc_mark.
23669 * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
23670 (struct rtvec_def): Add gc_mark.
23671 * emit-rtl.c (global_rtl): Update static initializers to contain
23672 enough initializers.
23673 * ggc.h, ggc-none.c, ggc-simple.c: New files.
23674 * toplev.c (gc_time): New variable.
23675 (all_time): New variable.
23676 (compile_file): Print gc time.
23677 (print_time): Calculate percentage of the whole.
23678
23679 Sat Sep 4 13:11:01 1999 Bernd Schmidt <bernds@cygnus.co.uk>
23680
23681 Change obstack memory management and varasm constant pool handling so
23682 that nested functions are treated like any other functions.
23683 * function.c (init_machine_status): New variable.
23684 (push_function_context_to): Set contains_functions for the outer
23685 function. Don't call save_varasm_status.
23686 (pop_function_context_from): Don't call restore_varasm_status. Don't
23687 set current_function_contains_functions.
23688 (prepare_function_start): Call init_varasm_status rather than
23689 init_const_rtx_hash_table. Call (*init_machine_status) if the pointer
23690 is non-null.
23691 * function.h (struct function) Add field varasm. Delete fields
23692 inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
23693 last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
23694 (init_machine_status): Declare.
23695 (save_varasm_status, restore_varasm_status): Delete declarations.
23696 (save_tree_status, restore_tree_status): Delete last argument.
23697 * integrate.c (initialize_for_inline): Lose arg COPY. Delete copying
23698 code. All callers changed.
23699 (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
23700 save_constants_in_decl_trees, restore_constants, save_constants,
23701 save_for_inline_eh_labelmap, save_for_inline_copying): Delete
23702 functions.
23703 (inlining): New variable.
23704 (reg_map, label_map, insn_map, orig_asm_operands_vector,
23705 copy_asm_operands_vector, copy_asm_constraints_vector): Delete
23706 variables.
23707 (save_for_inline_nocopy): Don't save constants.
23708 Don't set inl_emit field in current_function.
23709 (expand_inline_function): Use emit field, not inl_emit, of the inlined
23710 function. Set new variable inlining before
23711 calling copy_rtx_and_substitute.
23712 (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
23713 constant pool references if inlining is nonzero.
23714 Delete ADDRESS and (most of the) CONST cases.
23715 (output_inline_function): Save and restore current_function/
23716 current_function_decl. Delete restore_constants code. Don't call
23717 init_const_rtx_hash_table.
23718 * output.h (init_const_rtx_hash_table): Don't declare.
23719 * rtl.h (struct function): Declare.
23720 (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
23721 * toplev.c (rest_of_compilation): Don't treat nested functions or
23722 functions containing them specially. Delete all code to deal with
23723 save_for_inline_copying.
23724 * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
23725 inline_obstacks): Delete variables.
23726 (save_tree_status): Lose arg CONTEXT. All callers changed.
23727 Simply allocate a new function_maybepermanent_obstack for the new
23728 function, delete all the special cases.
23729 Don't save inline_obstacks.
23730 (restore_tree_status): Lose arg CONTEXT. All callers changed.
23731 Delete special handling for function_maybepermanent_obstack; simply
23732 free it if empty.
23733 Don't restore inline_obstacks.
23734 (permanent_allocation): Delete code that frees inline_obstacks.
23735 (print_inline_obstack_statistics): Delete function.
23736 (dump_tree_statistics): Don't call it.
23737 * varasm.c (struct varasm_status): New.
23738 (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
23739 last_pool, pool_offset, const_double_chain): Delete global
23740 variables, replace with accessor macros.
23741 (immed_double_const): Don't walk const_double_chain outside a
23742 function, but don't treat nested functions specially anymore.
23743 (immed_real_const_1): Likewise.
23744 (clear_const_double_mem): Don't treat nested functions specially.
23745 (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
23746 (save_varasm_status, restore_varasm_status): Delete functions.
23747 (init_varasm_status): New function.
23748 (force_const_mem): Don't treat nested functions specially.
23749 (find_pool_constant): Accept new arg F, search for constants in
23750 that function's pool rather than the current one. All callers
23751 changed.
23752 (get_pool_constant_for_function, get_pool_mode_for_function): New
23753 functions.
23754
23755 * i386.c (init_386_machine_status): New function, mostly from
23756 clear_386_stack_locals.
23757 (struct machine_functions): Rename element names to avoid name
23758 clashes.
23759 (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
23760 macros, replacing global variables.
23761 (clear_386_stack_locals, save_386_machine_status,
23762 restore_386_machine_status): Delete functions.
23763 (override_options): Initialize init_machine_status.
23764 * i386.h (INIT_EXPANDERS): Delete macro.
23765 (save_386_machine_status, restore_386_machine_status,
23766 clear_386_stack_locals): Delete declarations.
23767
23768 Sat Sep 4 16:56:28 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
23769
23770 * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
23771 (doloop_begin): Simplify pattern and use emit_jump_insn.
23772 (doloop_end): Simplify pattern, switch operand order,
23773 and use emit_jump_insn.
23774
23775 Fri Sep 3 19:02:38 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
23776
23777 * function.h (struct function): Add new element LANGUAGE.
23778 (save_lang_status): Declare new variable.
23779 (restore_lang_status): Likewise.
23780 * function.c (save_lang_status): Define.
23781 (restore_lang_status): Likewise.
23782 (push_function_context_to): Call language-specific save function.
23783 (pop_function_context_from): Call language-specific restore function.
23784
23785 Fri Sep 3 01:16:18 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
23786
23787 * i386.md (movsf_1): Check REG_P before use of REGNO.
23788 (movdf_1): Likewise.
23789 (movxf_1): Likewise.
23790 (extendsfdf2): Likewise.
23791 (extendsfxf2): Likewise.
23792 (extenddfxf2): Likewise.
23793
23794 Sat Sep 4 11:37:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
23795
23796 * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
23797 constants into memory.
23798 (c4x_shiftable_constant): New function.
23799 * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
23800 (c4x_shiftable_constant): Declare.
23801 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
23802 ashlqi3_noclobber): Add new patterns and associated splitters.
23803
23804 Fri Sep 3 16:22:17 1999 Richard Henderson <rth@cygnus.com>
23805
23806 * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
23807 * dwarf2out.c (dwarf2out_frame_init): Likewise.
23808 * final.c (shorten_branches): Likewise.
23809 * global.c (global_alloc): Likewise.
23810 * haifa-sched.c (build_control_flow): Likewise.
23811 * stmt.c (check_for_full_enumeration_handling): Likewise.
23812 (estimate_case_costs): Likewise.
23813
23814 Fri Sep 3 15:49:56 1999 Mark Mitchell <mark@codesourcery.com>
23815
23816 * rtl.h (RTL_CHECKC2): Fix typo in last change.
23817
23818 Fri Sep 3 15:13:34 1999 Richard Henderson <rth@cygnus.com>
23819
23820 * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
23821 (recompute_reg_usage): Likewise.
23822 * rtlanal.c (find_regno_fusage): Likewise.
23823
23824 * rtl.c (rtl_check_failed_code1): New function.
23825 (rtl_check_failed_code2): New.
23826 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
23827 (RTL_CHECKC1, RTL_CHECKC2): New.
23828 (XC*): New accessor macros.
23829 (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
23830 (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
23831 (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
23832 (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
23833 (TRAP_*, RANGE_INFO_*): Likewise.
23834
23835 Fri Sep 3 15:10:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23836
23837 * Makefile.in (tlink.o): Don't depend on toplev.h.
23838
23839 * collect2.c (c_file, o_file, export_file, import_file, ldout,
23840 output_file, nm_file_name, ldd_file_name, strip_file_name,
23841 c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
23842 add_prefix, prefix_from_env, prefix_from_string, do_wait,
23843 fork_execute, maybe_unlink, add_to_list,
23844 extract_init_priority, write_list, dump_list,
23845 dump_prefix_list, write_list_with_asm, write_c_file,
23846 write_c_file_stat, write_c_file_glob, scan_prog_file,
23847 scan_libraries, is_in_list, resolve_lib_name, use_import_list,
23848 ignore_library, extract_string, notice, dump_file, target_machine,
23849 collect_wait, collect_execute, libname, locatelib, aix_std_libs,
23850 read_file, print_load_command): Constify a char*.
23851 (fdopen, error, fatal, fatal_perror): Don't prototype.
23852 (my_strerror): Remove. All callers use xstrerror instead.
23853 (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
23854 (main): Add prototype. Constify lots of char* ptrs. Change calls
23855 to xcalloc/strcpy/strcat/... to one call to concat.
23856 (main, scan_prog_file, scan_libraries): Use an intermediate
23857 `const char **' to build an argv array.
23858 (mapfile, libselect, libcompare, locatelib): Add prototypes.
23859
23860 * collect2.h (collect_execute, collect_wait, dump_file,
23861 file_exists): Constify a char*.
23862 (ldout, c_file_name, temporary_obstack, permanent_obstack,
23863 temporary_firstobj, vflag, debug): Add extern declarations.
23864 (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
23865
23866 * tlink.c: Don't include toplev.h.
23867 (vflag, debug, ldout, c_file_name, temporary_obstack,
23868 permanent_obstack, temporary_firstobj): Don't declare.
23869 (tlink_execute, frob_extension, symbol_hash_lookup,
23870 file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
23871 recompile_files, read_repo_files, demangle_new_symbols,
23872 scan_linker_output): Constify a char*.
23873 (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
23874 do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
23875
23876 Fri Sep 3 18:09:24 1999 Andrew Haley <aph@cygnus.com>
23877
23878 * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
23879 (relative) rather than jsr (absolute) subroutine call insns.
23880 * config/m68k/m68k-coff.h: Ditto.
23881
23882 Fri Sep 3 17:24:31 1999 Richard Earnshaw <rearnsha@arm.com>
23883
23884 * arm.c (note_invalid_constants): No need to ignore ASMs, we can
23885 now rework these too.
23886 (arm_reorg): If an insn can't reach the end of the current pool,
23887 ensure that we emit that pool before the insn.
23888
23889 Fri Sep 3 09:14:32 1999 Marc Espie <espie@tetto.liafa.jussieu.fr>
23890
23891 * tlink.c (scan_linker_output): Skip the initial underscore in
23892 a mangled name if appropriate.
23893
23894 Fri Sep 3 01:28:33 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23895
23896 * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
23897 objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
23898 error_with_ivar, gen_declarator, create_builtin_decl,
23899 my_build_string, generate_descriptor_table, generate_ivars_list,
23900 generate_dispatch_table, check_protocols, TAG_GETCLASS,
23901 TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
23902 dump_base_name, lang_decode_option, build_encode_expr,
23903 start_class, finish_class, encode_pointer, really_start_method,
23904 gen_declaration, dump_interface, handle_class_ref, handle_impent):
23905 Constify.
23906 (objc_demangle, objc_printable_name, generate_struct_by_value_array):
23907 Add static prototypes.
23908 (build_objc_string_decl, build_selector_reference_decl,
23909 encode_bitfield, build_class_reference_decl): Remove unused
23910 parameter, all callers changed.
23911 (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
23912 (objc_printable_name): Likewise. Change second parameter to type int.
23913 (init_objc): Use memcpy, not bcopy, to avoid casts.
23914
23915 Thu Sep 2 21:49:52 1999 Richard Henderson <rth@cygnus.com>
23916
23917 * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
23918 reg notes on a deleted insn.
23919 * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
23920
23921 Thu Sep 2 20:18:12 1999 Jeffrey A Law (law@cygnus.com)
23922
23923 * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
23924
23925 Thu Sep 2 22:00:08 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
23926
23927 * stmt.c (expand_asm_operands): Fix index into inout_mode when
23928 reading it.
23929
23930 Thu Sep 2 13:00:48 1999 Richard Henderson <rth@cygnus.com>
23931
23932 * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
23933 * tm.texi (MD_ASM_CLOBBERS): Document it.
23934
23935 Thu Sep 2 10:22:40 1999 Richard Henderson <rth@cygnus.com>
23936
23937 * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
23938 * except.c (expand_rethrow): Remove unused variable.
23939 * expr.c (do_jump_by_parts_greater_rtx): Likewise.
23940 * flow.c (replace_insns): Likewise.
23941 (create_edge_list, verify_edge_list): Likewise.
23942 * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
23943
23944 * genemit.c (gen_expand): Only emit `operands[N]' decl if there
23945 is special code to run.
23946 (main): Don't define operands to emit_operand.
23947 * genrecog.c (main): Don't emit an empty peephole2_insn function.
23948
23949 * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
23950
23951 * alpha/alpha.h (normal_memory_operand): Declare.
23952 (reg_no_subreg_operand): Declare.
23953 * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
23954
23955 Thu Sep 2 10:19:20 1999 Richard Henderson <rth@cygnus.com>
23956
23957 * c-parse.in (compstmt_primary_start): New, broken out of first
23958 part of compstmt handling in primary.
23959 (primary): Use it. Add an error clause.
23960 (compstmt_nostart): Renamed from compstmt; remove all
23961 initial invocations of compstmt_start.
23962 (compstmt): New.
23963
23964 Thu Sep 2 01:35:50 1999 Marc Espie <espie@cvs.openbsd.org>
23965
23966 * protoize.c (gen_aux_info_file): Let pexecute call choose_temp_base if
23967 needed.
23968
23969 Thu Sep 2 00:43:59 1999 Finn Hakansson <finn@axis.com>
23970
23971 * combine.c (simplify_shift_const): Remove extra semicolon.
23972 * dwarf2out.c (remove_AT): Likewise.
23973 * expmed.c (expand_mult): Likewise.
23974 * gcov.c (create_program_flow_graph): Likewise.
23975 * reorg.c (mostly_true_jump): Likewise.
23976
23977 Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com)
23978
23979 * fold-const.c (fold_range_test): Do not try to fold the range
23980 test if the rhs or lhs has side effects.
23981
23982 * combine.c (simplify_rtx): Recognize another case of a synthesized
23983 sign extension.
23984
23985 * varasm.c (mark_constant_pool): When marking indirect references,
23986 only look at SYMBOL_REFs.
23987
23988 * except.c (expand_fixup_region_end): Do not peek at
23989 INSN_UID (node->entry->outer_context) for flag_new_exceptions.
23990
23991 Thu Sep 2 13:52:53 1999 Geoffrey Keating <geoffk@cygnus.com>
23992
23993 * flags.h: New variables align_loops, align_loops_log,
23994 align_jumps, align_jumps_log, align_labels, align_labels_log,
23995 align_functions, align_functions_log.
23996 * toplev.c: Define them.
23997 (f_options): Handle -falign-* when they have no argument.
23998 (main): Add logic to set variables for -falign-functions,
23999 -falign-jumps, -falign-labels, -falign-loops.
24000 Make it -fsched-verbose=<n> and -finline-limit=<n>.
24001 (display_help): Change help to match options.
24002 * final.c (LABEL_ALIGN): Default to align_labels_log.
24003 (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
24004 (LOOP_ALIGN): Default to align_loops_log.
24005 (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
24006 (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
24007 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
24008 * varasm.c (assemble_start_function): Handle align_functions.
24009
24010 * config/sparc/sparc.h: Don't declare sparc_align_*.
24011 Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
24012 (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
24013 sparc.c.
24014 (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
24015 it's a promise.
24016 * config/sparc/sparc.c: Delete sparc_align_loops,
24017 sparc_align_jumps, sparc_align_funcs and the corresponding string
24018 variables.
24019 (sparc_override_options): Default align_functions on ultrasparc.
24020 Delete -malign-* handling.
24021
24022 * config/mips/mips.c (override_options): On 64-bit targets,
24023 try to align code to 64-bit boundaries.
24024 (print_operand): New substitution, %~,
24025 which aligns labels to align_labels_log.
24026 * config/mips/mips.md (div_trap_normal): Use %~.
24027 (div_trap_mips16): Likewise.
24028 (abssi): Likewise.
24029 (absdi2): Likewise.
24030 (ffssi2): Likewise.
24031 (ffsdi2): Likewise.
24032 (ashldi3_internal): Likewise.
24033 (ashrdi3_internal): Likewise.
24034 (lshrdi3_internal): Likewise.
24035 (casesi_internal): Likewise.
24036
24037 Wed Sep 1 21:13:48 1999 Richard Henderson <rth@cygnus.com>
24038
24039 Merge new ia32 backend from the branch!
24040
24041 * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
24042 See ChangeLog.P2 on new_ia32_branch for details.
24043
24044 * rtl.h (stack_regs_mentioned_p): Delete prototype.
24045 * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
24046 * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
24047 * i386/gas.h (ASM_FILE_START): Define.
24048 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
24049 for name change of ix86_valid_decl_attribute_p.
24050 (i386_pe_valid_type_attribute_p): Similarly.
24051
24052 Wed Sep 1 18:21:23 1999 Richard Henderson <rth@cygnus.com>
24053
24054 * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
24055 to step through CC modes.
24056
24057 Wed Sep 1 20:18:06 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
24058
24059 * regmove.c (fixup_match_1): Don't move INSN in front of P if
24060 it would end up in the shadow of a live flags regsiter.
24061
24062 Wed Sep 1 11:32:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
24063
24064 * reload1.c: Fix many indentation problems.
24065 * reload.c: Likewise.
24066
24067 Tue Aug 31 22:08:03 1999 Marc Espie <espie@cvs.openbsd.org>
24068
24069 * alias.c (non_local_reference_p): Constify fmt.
24070
24071 Tue Aug 31 23:19:35 1999 Michael Meissner <meissner@cygnus.com>
24072
24073 * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
24074
24075 Tue Aug 31 16:44:52 1999 Jeffrey A Law (law@cygnus.com)
24076
24077 * cse.c (delete_trivially_dead_insns): Do not delete stores to
24078 the internal_arg_pointer.
24079
24080 Tue Aug 31 13:35:42 1999 Richard Henderson <rth@cygnus.com>
24081
24082 Merge peephole2 from new_ia32_branch:
24083 * Makefile.in (STAGESTUFF): Add *.peephole2.
24084 (mostlyclean): Likewise.
24085 (recog.o): Depend on resource.h.
24086
24087 * final.c (peephole): Conditionalize decl on HAVE_peephole.
24088 (final_scan_insn): Likewise for the invocation of peephole.
24089 * genconfig.c (main): Look for peephole and peephole2 patterns.
24090 Emit HAVE_peephole* accordingly.
24091 * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
24092 * flags.h (flag_peephole2): Declare.
24093 * toplev.c: New pass peephole2. New flag -fpeephole2.
24094
24095 * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
24096 * gencodes.c (main): Likewise.
24097 * genextract.c (main): Likewise.
24098 * genoutput.c (main): Likewise.
24099 * genemit.c (max_operand_1): Look for the max scratch operand.
24100 (gen_rtx_scratch): New.
24101 (gen_exp): Use it, and pass on new arg subroutine_type.
24102 (gen_expand): Take max scratch into account.
24103 (gen_split): Emit peephole2 functions.
24104 (output_peephole2_scratch): New.
24105 (main): Include hard-reg-set.h and resource.h. Handle peephole2.
24106 * genrecog.c (routine_type): Add PEEPHOLE2.
24107 (IS_SPLIT): New.
24108 (make_insn_sequence): Match outer parallel for peep2. Discard
24109 top level scratches and dups.
24110 (add_to_sequence): New args insn_type and top. Update all callers.
24111 Handle toplevel peep2 matching insns.
24112 (write_subroutine): Handle peep2.
24113 (write_tree_1): Likewise.
24114 (write_tree): Likewise.
24115 (main): Likewise.
24116 (change_state): New arg afterward. Update all callers.
24117 Handle matching separate insns.
24118 * recog.c (recog_next_insn): New.
24119 (peephole2_optimize): New.
24120 * rtl.def (DEFINE_PEEPHOLE2): New.
24121 * resource.c (find_free_register): New argument last_insn. Use it
24122 to find a register available through the entire span.
24123 * resource.h (find_free_register): Update prototype.
24124
24125 Tue Aug 31 11:51:06 1999 Jim Kingdon <http://developer.redhat.com>
24126
24127 * i386.c (output_strlen_unroll): Don't write xops[7]
24128 label if it wasn't set.
24129
24130 1999-08-31 12:44 -0700 Zack Weinberg <zack@bitmover.com>
24131
24132 * cpplib.c (struct directive): Const-ify name pointer and
24133 function pointer prototype.
24134 (validate_else, do_define, do_line, do_include, do_undef,
24135 do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
24136 do_elif, do_endif, do_sccs, do_assert, do_unassert,
24137 do_warning): Const-ify second arg.
24138 (directive_table): Mark const. Reorder entries by frequency
24139 of usage, record statistics.
24140
24141 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
24142
24143 * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
24144 bounds- check RTL accesses if --enable-checking.
24145 (RTVEC_ELT): Bounds check if --enable-checking.
24146 (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
24147 XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
24148 (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
24149 GET_NUM_ELEM.
24150 (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
24151 X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes.
24152
24153 (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
24154 (NOTE_SOURCE_FILE): Use X0STR.
24155 (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
24156 MEM_ALIAS_SET): Use X0INT.
24157 (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
24158 JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
24159 Use X0EXP.
24160 * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
24161 * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
24162 (rtl_check_failed_bounds, rtl_check_failed_type1,
24163 rtl_check_failed_type2, rtvec_check_failed_bounds): New
24164 functions.
24165 (fancy_abort): Fix comment.
24166
24167 * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
24168 (cse_insn): Decrement LABEL_NUSES for jump target before
24169 deleting jump insn.
24170 * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
24171 * final.c (alter_subreg): Compute regno before changing x to
24172 REG; set REGNO(x) after changing it.
24173 * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
24174 notes containing CONST_INTs.
24175 (delete_eh_regions): Use NOTE_EH_HANDLER.
24176 * function.c (put_reg_into_stack): Make reg a MEM before
24177 initializing it.
24178 (fixup_var_refs_insns): Save REG_NOTES (insn) in case we
24179 delete insn.
24180 (gen_mem_addressof): Make reg a MEM before initializing it.
24181 * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
24182 X0WINT.
24183 * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
24184 deleting an insn, not after.
24185 (block_alloc): Only look at PATTERN(insn) if we have to, and
24186 only if it's format class 'i'.
24187 * loop.c (check_dbra_loop): Check bl->biv->add_val is a
24188 CONST_INT before using its INTVAL.
24189 * print-rtl.c (print_rtx): Use X0STR.
24190 * regmove.c (fixup_match_1): Don't look at PATTERN of
24191 non-class-'i' insn chain elements.
24192 * reload.c (loc_mentioned_in_p): Take address of
24193 in->fld[1].rtx directly.
24194 * reload1.c (reload): Change reg to a MEM before initializing
24195 it.
24196 * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
24197 have no names.
24198 * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
24199
24200 Fri Aug 20 13:43:41 1999 Andrew Haley <aph@cygnus.com>
24201
24202 * config/mips/mips.c (machine_dependent_reorg): Force a
24203 barrier to output the local constant pool if a barrier hasn't
24204 been found at a natural point in the instruction stream.
24205
24206 Mon Aug 30 22:04:36 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24207
24208 * c-parse.in (language_string): Constify.
24209
24210 * dwarf2out.c (language_string): Remove declaration.
24211
24212 * dwarfout.c (language_string): Likewise.
24213
24214 * toplev.c (language_string, init_parse, finish_parse): Likewise.
24215
24216 * tree.h (language_string, init_parse, finish_parse): Declare.
24217
24218 * i386/sun386.h (language_string): Remove declaration.
24219
24220 * mips.h (language_string): Likewise.
24221
24222 * nextstep.h (language_string): Likewise.
24223
24224 * nextstep21.h (language_string): Likewise.
24225
24226 * rs6000.c (language_string): Likewise.
24227
24228 Mon Aug 30 20:56:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24229
24230 * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
24231 (getpwd.o): Remove target.
24232
24233 * getpwd.c: Delete file. Its in libiberty now.
24234
24235 * dbxout.c (getpwd): Don't prototype.
24236 * dwarf2out.c (getpwd): Likewise
24237 * dwarfout.c (getpwd): Likewise
24238 * final.c (getpwd): Likewise.
24239 * protoize.c (getpwd): Likewise.
24240
24241 Mon Aug 30 20:21:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24242
24243 * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
24244
24245 Mon Aug 30 16:07:49 1999 Richard Henderson <rth@cygnus.com>
24246
24247 * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
24248 mark_set_resources.
24249
24250 Mon Aug 30 12:23:53 1999 Jim Wilson <wilson@cygnus.com>
24251
24252 * fixinc/Makefile.in (subdir): New.
24253 (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
24254 (Makefile): New.
24255
24256 Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com)
24257
24258 * emit-rtl.c (copy_rtx_if_shared): A MEM which references
24259 virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
24260 be shared.
24261
24262 * invoke.texi: Fix typo.
24263
24264 * dwarf2out.c (mem_loc_descriptor): New argument MODE. All callers
24265 changed. Handle autoincrement addressing modes.
24266
24267 * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
24268 just like we would the virtual incoming args register when
24269 integrating.
24270
24271 Sun Aug 29 23:17:54 1999 David Edelsohn <edelsohn@gnu.org>
24272
24273 * rs6000.h (ASM_FILE_START): Specify complete filename, including
24274 path, in .file directive.
24275
24276 Sun Aug 29 05:06:43 1999 Russ Allbery <rra@stanford.edu>
24277
24278 * gcc.texi (External Bugs): Remove obsolete note about Perl on
24279 SunOS.
24280
24281 1999-08-29 08:38 -0700 Zack Weinberg <zack@bitmover.com>
24282
24283 * stdbool.h: Make the typedef name _Bool, with bool a #defined
24284 alias.
24285
24286 Sun Aug 29 09:36:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24287
24288 * tree.c (tree_code_name): Constify a char*.
24289
24290 * tree.h (tree_code_name, decl_printable_name): Likewise.
24291
24292 * function.h (struct function): Likewise.
24293
24294 * toplev.c (decl_name, decl_printable_name): Likewise.
24295
24296 * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
24297
24298 * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
24299 (init_objc): Remove function pointer cast.
24300
24301 Sun Aug 29 05:01:17 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
24302
24303 * pa.md (interspace_jump): New pattern.
24304 (builtin_longjmp): New expander.
24305
24306 1999-08-29 Bernd Schmidt <bernds@cygnus.co.uk>
24307
24308 * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
24309 _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
24310 sf_to_df, df_to_sf): Fix potential problem with alias analysis.
24311
24312 Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com)
24313
24314 * jump.c (delete_prior_computation): Also check calls
24315 to constant functions. Don't bother checking for a
24316 REG_UNUSED note before adding it.
24317 (delete_computation): Handle multi-word hard registers
24318 when synthesizing missing REG_DEAD notes for a register
24319 which is both set and used by an insn.
24320
24321 1999-08-29 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
24322
24323 * loop.c (this_loop_info): New variable.
24324 (loop_has_call, loop_has_volatile, loop_has_tablejump,
24325 loop_continue, loops_enclosed): Replace with fields in this_loop_info.
24326 All uses updated.
24327 (prescan_loop, strength_reduce): New argument loop_info. All callers
24328 updated.
24329 (scan_loop): New variable loop_info, initialise to address of
24330 this_loop_info.
24331 (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
24332 Delete variable loop_has_multiple_exit targets and replace with
24333 field in this_loop_info.
24334 (find_and_verify_loops): Rename this_loop to this_loop_num.
24335 (strength_reduce): Delete loop_iteration_info. Replace variable
24336 loop_info with function argument of same name.
24337 (insert_bct): Rework test for loop being completely unrolled.
24338
24339 * loop.h (struct loop_info): New fields num, loops_enclosed,
24340 has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
24341 has_indirect_jump, and cont. Redefine use of unroll_number.
24342 (loop_unroll_number): Delete.
24343
24344 * unroll.c (unroll_loop): Store loop unroll count in unroll_number
24345 field of loop_info.
24346 (loop_iterations): Delete variable vtop and instead use
24347 loop_info->vtop computed in prescan_loop.
24348
24349 Sun Aug 29 03:27:23 1999 Scott Weikart <scott@igc.apc.org>
24350
24351 * fix-header.c (main): Do not pass a null pointer to strcmp.
24352
24353 Sun Aug 29 03:18:48 1999 William Bader (william@nscs.fast.net)
24354
24355 * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
24356 filenames.
24357 * configure: Rebuilt.
24358
24359 Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com)
24360
24361 * jump.c (jump_optimize_1): Do not delete assignments to
24362 internal_arg_pointer.
24363 * cse.c (delete_trivially_dead_insns): Always consider a set of
24364 the internal_arg_pointer live.
24365
24366 Sat Aug 28 16:24:31 1999 Richard Henderson <rth@cygnus.com>
24367
24368 * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
24369 (update_life_info) [REG_WAS_0]: Search the original insns rather
24370 than the new insns for the note. Fix typos finding note_dest.
24371 If no dest found, discard the note rather than abort.
24372 [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
24373 (replace_insns): Remove the old insn list after update_life_info
24374 not before.
24375
24376 Sat Aug 28 16:20:12 1999 Richard Henderson <rth@cygnus.com>
24377
24378 * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
24379 sched_analyze_insn.
24380 (sched_analyze_1): Let add_dependence care for not adding dups.
24381 (sched_analyze_2): Likewise.
24382 (add_branch_dependences): Likewise.
24383
24384 Sat Aug 28 15:58:16 1999 Mumit Khan <khan@xraylith.wisc.edu>
24385
24386 * i386/winnt.c (export_list): New type.
24387 (exports_head): Rename to
24388 (export_head): this.
24389 (i386_pe_record_exported_symbol): Add is_data flag.
24390 (i386_pe_asm_file_end): Emit directive for exported variables.
24391 * i386/cygwin.h (i386_pe_record_exported_symbol): Update
24392 prototype.
24393 * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
24394 (ASM_DECLARE_OBJECT_NAME): Likewise.
24395 (ASM_DECLARE_FUNCTION_NAME): Likewise.
24396 * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
24397
24398 Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com)
24399
24400 * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
24401
24402 * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
24403 operand.
24404
24405 Fri Aug 27 14:01:19 1999 Marc Espie <espie@cvs.openbsd.org>
24406
24407 * config/openbsd.h: Define SET_ASM_OP.
24408 * tm.texi: cross-reference SET_ASM_OP in the index.
24409
24410 1999-08-27 13:27 -0700 Zack Weinberg <zack@bitmover.com>
24411
24412 * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
24413 for a CONST_DOUBLE, at compile time. Initialize rtx_length
24414 and class_narrowest_mode at compile time. Kill init_rtl.
24415 Mark rtx_length, mode_class, mode_size, mode_unit_size,
24416 mode_wider_mode, mode_mask_array, class_narrowest_mode, and
24417 rtx_format as const. Kill all references to EXTRA_CC_MODES or
24418 EXTRA_CC_NAMES.
24419 * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
24420 format.
24421 * rtl.h: Declare rtx_length and rtx_format as const.
24422 * machmode.def: Define CC(). Use CC() to define CCmode. If
24423 EXTRA_CC_MODES is defined, expand it here.
24424 * machmode.h: Declare mode_class, mode_size, mode_unit_size,
24425 mode_wider_mode, mode_mask_array, and class_narrowest_mode as
24426 const. Kill all references to EXTRA_CC_MODES.
24427
24428 * toplev.c: Don't prototype or call init_rtl.
24429 * optabs.c: Don't call init_mov_optab.
24430 * genemit.c: Don't generate init_mov_optab. Don't call
24431 init_rtl.
24432 * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
24433 here.
24434 * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
24435 genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
24436 genrecog.c: Don't call init_rtl.
24437
24438 * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
24439 rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES. Use CC() in
24440 definition of EXTRA_CC_MODES.
24441
24442 * md.texi: Kill ref to EXTRA_CC_NAMES.
24443 * tm.texi: Document new way to define EXTRA_CC_MODES.
24444
24445 * genrecog.c: Do not look up the name of a define_split.
24446 (Unrelated bugfix.)
24447
24448 Fri Aug 27 17:03:42 1999 Nick Clifton <nickc@cygnus.com>
24449
24450 * config/v850/v850.md: Fix typo introduced by previous delta.
24451
24452 Fri Aug 27 09:48:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24453
24454 * gcc.c (fatal): Make definition static to match prototype.
24455
24456 Fri Aug 27 10:33:35 1999 Bernd Schmidt <bernds@cygnus.co.uk>
24457
24458 * combine.c (get_last_value): Don't look for earlier sets if the last
24459 known set is somewhere in between the insns being combined.
24460
24461 Fri Aug 27 10:03:12 BST 1999 Nathan Sidwell <nathan@acm.org>
24462
24463 * configure.in: Don't use shell ! to negate exit codes
24464 * configure: Regenerate
24465
24466 Fri Aug 27 09:36:17 1999 Andreas Schwab <schwab@suse.de>
24467
24468 * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
24469 the fact that ALIGN is measured in bits, not bytes.
24470
24471 1999-08-27 00:27 -0700 Zack Weinberg <zack@bitmover.com>
24472
24473 * errors.c: New file; defines functions error, warning, and
24474 fatal, variables have_error and progname.
24475 * errors.h: New file; prototypes and decls for stuff in errors.c.
24476
24477 * Makefile: Add rules to build errors.o and
24478 $(HOST_PREFIX)errors.o. Link genconfig, gencodes, genemit,
24479 genopinit, genrecog, genextract, genpeep, genattr, and
24480 genoutput with errors.o. Add errors.h to deps of genconfig.o,
24481 gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
24482 genpeep.o, genattr.o, and genoutput.o.
24483
24484 * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
24485 genextract.c, genpeep.c, genattr.c: Include errors.h. Don't
24486 define or prototype fatal. Set progname at beginning of main.
24487 * genoutput.c: Likewise, and don't define or prototype error
24488 either.
24489
24490 * c-typeck.c (c_expand_start_case): Return immediately if exp
24491 is an ERROR_MARK.
24492 * fold-const.c (operand_equal_p): Return immediately if arg1
24493 or arg0 are ERROR_MARKs.
24494 * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
24495 fields of type ERROR_MARK when calculating if the record can
24496 go in a register.
24497
24498 Fri Aug 27 01:03:48 1999 Jim Kingdon <http://developer.redhat.com>
24499 with much help from Jeffrey A Law and Richard Henderson
24500
24501 * i386.md: In the 6 insns which call output_fix_trunc,
24502 earlyclobber operands[0].
24503
24504 Fri Aug 27 01:01:51 1999 Philip Blundell <pb@nexus.co.uk>
24505
24506 * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
24507 creating new registers.
24508
24509 1999-08-26 23:09 -0700 Zack Weinberg <zack@bitmover.com>
24510
24511 * i386.h: Declare ix86_cpu_string, ix86_arch_string,
24512 i386_reg_alloc_order, i386_regparm_string,
24513 i386_align_loops_string, i386_align_jumps_string,
24514 i386_align_funcs_string, i386_preferred_stack_boundary_string,
24515 and i386_branch_cost_string as type "const char *".
24516 * i386.c: Define all above strings as type "const char *".
24517
24518 Thu Aug 26 20:36:30 1999 Jim Wilson <wilson@cygnus.com>
24519
24520 * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
24521 when emitting alignment padding. Emit padding byte of 0 instead of 4.
24522
24523 Thu Aug 26 18:11:20 1999 Mark Mitchell <mark@codesourcery.com>
24524
24525 * tree.c (array_type_nelts): Don't create RTL_EXPRs from
24526 SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
24527
24528 Thu Aug 26 19:33:23 1999 Jim Wilson <wilson@cygnus.com>
24529
24530 * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
24531 (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
24532 (dwarf2out_line, dwarf2out_finish): Likewise.
24533 * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
24534
24535 Thu Aug 26 16:10:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
24536
24537 * tree.c (lang_unsave_expr_now) : Correct return type.
24538 * tree.h (lang_unsave_expr_now) : Same.
24539
24540 Thu Aug 26 13:12:29 1999 Jeffrey A Law (law@cygnus.com)
24541
24542 * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
24543 instead of duplicating code.
24544
24545 Thu Aug 26 18:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
24546
24547 * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
24548
24549 1999-08-26 09:42 -0700 Zack Weinberg <zack@bitmover.com>
24550
24551 * tree.h: fancy_abort always takes three args.
24552 * resource.c: Move include of system.h before toplev.h.
24553
24554 Thu Aug 26 09:46:16 1999 Nick Clifton <nickc@cygnus.com>
24555
24556 * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
24557 as SYMBOL_REFs.
24558
24559 1999-08-25 22:10 -0700 Zack Weinberg <zack@bitmover.com>
24560
24561 * system.h: Don't redefine abort or trim_filename.
24562 * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
24563 or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
24564 whether or not __FUNCTION__ is available.
24565 * tree.h: Duplicate rtl.h's definition of abort, for files
24566 that don't include rtl.h. Delete all code to perform type
24567 checking with a compiler other than GCC.
24568 * varray.h: Delete all code to perform type checking with a
24569 compiler other than GCC. Make VARRAY_CHECK() always evaluate
24570 its arguments exactly once, using a statement expression.
24571 Adjust the VARRAY_<type> accessor macros to match.
24572 * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
24573 (_fatal_insn, _fatal_insn_not_found): New fns, take info on
24574 caller's location. Define fatal_insn and fatal_insn_not_found
24575 as macros that use _fatal_insn and _fatal_insn_not_found.
24576 (fancy_abort, trim_filename): Kill prototypes.
24577
24578 * rtl.c (trim_filename): Move here from toplev.c.
24579 (fancy_abort): New function.
24580 (DIR_SEPARATOR): Provide default definition.
24581 * tree.c (tree_check_failed, tree_class_check_failed): Go
24582 through fancy_abort.
24583 (tree_check, tree_class_check, cst_or_constructor_check,
24584 expr_check): Delete.
24585 * varray.c (varray_check_failed): New function.
24586 * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
24587 _fatal_insn and _fatal_insn_not_found. Go through
24588 fancy_abort.
24589 (trim_filename, fancy_abort): Delete.
24590
24591 * builtins.c (expand_builtin_args_info): Report ICE with abort.
24592 * except.c (start_catch_handler): Report ICE with error/abort
24593 combo.
24594 * final.c (output_operand_lossage): Likewise.
24595 * flow.c (verify_flow_info): Likewise.
24596
24597 * gcc.c: Prototype fatal.
24598 * gengenrtl.c: Undef abort after including rtl.h not system.h.
24599 * genattr.c, genattrtab.c, genemit.c, genextract.c,
24600 genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
24601 Don't define fancy_abort.
24602
24603 Wed Aug 25 17:56:59 1999 Richard Henderson <rth@cygnus.com>
24604
24605 * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
24606 canonization.
24607
24608 Wed Aug 25 15:35:55 1999 Richard Henderson <rth@cygnus.com>
24609
24610 * m88k.h (VERSION_INFO2): Kill.
24611 (VERSION_STRING): Kill.
24612 (TM_RCS_ID): Kill.
24613 (VERSION_INFO1): Tidy.
24614 (TARGET_VERSION): Update.
24615 * m88k/dgux.h (VERSION_INFO2): Kill.
24616 (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
24617 * m88k/luna.h (VERSION_INFO1): Tidy.
24618 * m88k/sysv4.h (VERSION_INFO1): Likewise.
24619 * m88k.c (out_rcs_id, tm_rcs_id): Kill.
24620 (output_file_start): Adjust for death of VERSION_STRING.
24621
24622 1999-08-25 13:51 -0700 Jim Meyering <meyering@ascend.com>
24623
24624 * cpplib.c (detect_if_not_defined): New function.
24625 (do_if): Use it to detect potential once-only headers.
24626
24627 Wed Aug 25 14:00:18 1999 Jason Merrill <jason@yorick.cygnus.com>
24628
24629 * c-common.c (combine_strings): Always set TREE_CONSTANT.
24630
24631 Wed Aug 25 15:27:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
24632
24633 * combine.c (nonzero_bits) : Allow single-ly set registers to be
24634 anywere in the function only if they are pseudos and set before
24635 being used (not live at the start of the function).
24636 (num_sign_bit_copies) : Same.
24637 (get_last_value_validate) : Same.
24638 (get_last_value) : Same.
24639
24640 Wed Aug 25 11:13:29 1999 Richard Henderson <rth@cygnus.com>
24641
24642 * loop.c (express_from): Try harder to unify (* c N) and (* c M)
24643 where N and M are constant and N is an integer multiple of M.
24644
24645 Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
24646
24647 * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
24648 (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
24649 sbitmap_union_of_preds): Add prototypes.
24650 * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
24651 the intersection of successors with the new flow graph structures.
24652 (sbitmap_intersection_of_preds): New function to compute the
24653 intersection of predecessors with the new flow graph structures.
24654 (sbitmap_union_of_succs): New function to compute the union of
24655 successors with the new flow graph structures.
24656 (sbitmap_union_of_preds): New function to compute the union of
24657 predecessors with the new flow graph structures.
24658 * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
24659 (expr_reaches_here_p): Use edge and basic_block structures instead
24660 of s_preds and s_succs.
24661 (compute_cprop_avinout): Use new sbitmap routines.
24662 (pre_expr_reaches_here_p): Use edge and basic_block structures instead
24663 of s_preds and s_succs.
24664 * flow.c (compute_flow_dominators): Compute dominators using
24665 edges and basic blocks instead of s_preds and s_succs.
24666
24667 Wed Aug 25 13:41:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
24668
24669 * lists.c (unused_insn_list, unused_expr_list): New file for
24670 maintaining various types of lists. New statics for maintaining a
24671 cache of available INSN_LIST and EXPR_LIST nodes.
24672 (free_list): Static function for freeing a list of INSN/EXPR nodes.
24673 (alloc_INSN_LIST): Function to get a free INSN_LIST node.
24674 (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
24675 (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
24676 (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
24677 (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
24678 (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
24679 (free_INSN_LIST_node): Free an individual INSN_LIST node.
24680 * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
24681 (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
24682 (remove_dependence, free_pending_lists): Use new global routines.
24683 (flush_pending_lists, sched_analyze_insn): Use new global routines.
24684 (sched_analyze, compute_block_backward_dependences): Use new routines.
24685 (sched_analyze_1, sched_analyze_2): Use new routines.
24686 (schedule_insns): Use new global routines.
24687 * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
24688 prototypes.
24689 (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
24690 (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
24691 prototypes.
24692 * toplev.c (rest_of_compilation): Initialize node cache.
24693 * Makefile.in (OBJS): Add lists.o to list of object files.
24694 (lists.o): Add dependancies.
24695
24696 Wed Aug 25 17:31:56 1999 Nick Clifton <nickc@cygnus.com>
24697
24698 * config/v850/v850.md: Fix compile time warning messages.
24699 * config/v850/v850.c: Fix compile time warning messages.
24700 * config/v850/v850.h: Fix compile time warning messages.
24701
24702 Wed Aug 25 09:44:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24703
24704 * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
24705 Remove unused prototype for `init_lengths'.
24706
24707 Wed Aug 25 09:32:31 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24708
24709 * calls.c (emit_call_1): Mark parameter `stack_size' with
24710 ATTRIBUTE_UNUSED.
24711 (expand_call): Initialize variable `insn'.
24712 (emit_library_call): Likewise for variable `high_to_save'.
24713 (emit_library_call_value): Likewise.
24714 (store_one_arg): Likewise for variables `lower_bound' and
24715 `upper_bound'.
24716
24717 * combine.c (try_combine): Likewise for variables `i2_code_number'
24718 and `other_code_number'.
24719 (find_split_point): Likewise for variables `pos', `unsignedp' and
24720 `inner'.
24721 (simplify_if_then_else): Likewise for variables `op' and `c1'.
24722 (simplify_and_const_int): Remove unused variable `width'.
24723 (merge_outer_ops): Likewise.
24724
24725 * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
24726 HOST_WIDE_INT' when comparing against one.
24727 (simplify_relational_operation): Likewise.
24728 (cse_insn): Initialize variables `src_eqv_volatile',
24729 `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
24730
24731 * final.c (init_final): Constify parameter `filename'.
24732 (final_start_function): Mark parameter `optimize' with
24733 ATTRIBUTE_UNUSED.
24734 (profile_function): Likewise for parameters `first' and `optimize'.
24735 (output_source_line): Likewise for parameter `file'.
24736
24737 * integrate.c (subst_constants): Cast a value to `size_t' when
24738 comparing against one.
24739 (mark_stores): Initialize variable `mode'. Cast a value to
24740 `size_t' when comparing against one.
24741
24742 * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
24743
24744 * loop.c (move_movables): Initialize variable `first'.
24745 (strength_reduce): Likewise for variable `increment'.
24746 (check_dbra_loop): Likewise for variable `comparison_val'. Cast a
24747 value to `size_t' when comparing against one.
24748 (load_mems): Initialize variable `end_label'.
24749
24750 * output.h (init_final): Constify parameter.
24751
24752 * reload.c (decompose): Initialize variable `base'.
24753
24754 * reload1.c (reload): Likewise for variable `is_scalar'.
24755 (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
24756 (choose_reload_regs): Initialize variable `mode'.
24757 (emit_reload_insns): Likewise for variable `store_insn'.
24758 (reload_cse_noop_set_p): Mark parameter `insn' with
24759 ATTRIBUTE_UNUSED.
24760 (reload_combine): Initialize variable `set'.
24761
24762 * unroll.c (unroll_loop): Likewise for variable `local_label'.
24763 (copy_loop_body): Cast a value to `size_t' when comparing against
24764 one.
24765
24766 * varasm.c (assemble_variable): Initialize variable `size_tree'.
24767 (const_hash): Add an `else abort()' in an if-else-if-else sequence.
24768 (remove_from_pending_weak_list): Mark parameter `name' with
24769 ATTRIBUTE_UNUSED.
24770
24771 Wed Aug 25 11:18:39 1999 Bernd Schmidt <bernds@cygnus.co.uk>
24772
24773 * toplev.c (rest_of_compilation): Use decl_printable_name when opening
24774 gcse dump file.
24775
24776 Wed Aug 25 10:57:12 1999 Nick Clifton <nickc@cygnus.com>
24777
24778 * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
24779 (ASM_DECLARE_FUNCTION_NAME): Define.
24780 (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
24781 ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
24782 ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
24783 not already defined.
24784
24785 Wed Aug 25 01:36:11 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
24786
24787 * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
24788 of n_popped when call/call_value are not defined.
24789
24790 Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com)
24791
24792 * tm.texi: GNU CC -> GCC conversion.
24793 (CC1_SPEC): Indicate it is used for all language front ends.
24794
24795 Tue Aug 24 23:43:03 1999 Mark Mitchell <mark@codesourcery.com>
24796
24797 * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
24798 NOTE_INSN_EH_REGION_END correctly.
24799
24800 Tue Aug 24 23:26:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
24801 Jeff Law <law@cygnus.com>
24802
24803 * loop.c (strength_reduce): Automatically unroll loops if the
24804 unrolled loop size is smaller than the rolled loop size.
24805
24806 * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
24807 and delete comment that code should be rewritten.
24808
24809 Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com)
24810
24811 * haifa-sched.c (find_rgns): Mark a block found during the DFS search
24812 as reachable.
24813
24814 * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
24815
24816 Tue Aug 24 22:41:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
24817
24818 * fixinc/mkfixinc.sh: Don't fix uwin headers.
24819 * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
24820 (LINK_SPEC): Add -u _main when building executables.
24821 (ASM_DECLARE_FUNCTION): Update from Cygwin.
24822 (ASM_FILE_END): Use the default for ix86-pe.
24823 * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
24824
24825 Tue Aug 24 20:49:47 1999 Art Haas <ahaas@neosoft.com>
24826
24827 * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
24828 and ASM_CLOSE_PAREN are empty strings.
24829
24830 Wed Aug 25 12:46:22 1999 Fred Fish <fnf@cygnus.com>
24831 Geoffrey Keating <geoffk@cygnus.com>
24832
24833 * Makefile.in (PREPROCESSOR_DEFINES): New macro.
24834 (protoize.o): Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
24835 (unprotoize.o): Ditto.
24836 (test-protoize-simple): Don't define STD_PROTO_DIR.
24837 * protoize.c: Use PARAMS rather than PROTO. Minor whitespace
24838 changes to make 'test-protoize-simple' pass.
24839 (STD_PROTO_DIR): Remove define.
24840 (STANDARD_EXEC_PREFIX): Supply default define.
24841 (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
24842 (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
24843 (target_version): New variable, init to DEFAULT_TARGET_VERSION.
24844 (GET_ENV_PATH_LIST): New macro.
24845 (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
24846 (do_processing): Initialize default_syscalls_dir using new
24847 macros. Use it to initialize syscalls_absolute_filename.
24848
24849 Tue Aug 24 16:58:15 1999 Richard Henderson <rth@cygnus.com>
24850
24851 * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
24852 B into a register before emit_conditional_move.
24853
24854 Tue Aug 24 15:37:03 1999 Richard Henderson <rth@cygnus.com>
24855
24856 * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
24857 as (+ (+ (* a b) (* d e)) c). Factor a common power-of-two
24858 multiplicand out of (+ (* a b) (* c d)).
24859
24860 Tue Aug 24 11:46:10 1999 Bob Manson <manson@cygnus.com>
24861 Richard Henderson <rth@cygnus.com>
24862
24863 * haifa-sched.c (split_hard_reg_notes): Move to flow.c
24864 (new_insn_dead_notes): Likewise.
24865 (update_n_sets): Likewise.
24866 (update_flow_info): Move to flow.c, renamed to update_life_info;
24867 extend to handle multiple source insns.
24868 * flow.c: Include resource.h
24869 (unlink_insn_chain): New.
24870 (split_hard_reg_notes): New.
24871 (maybe_add_dead_note): New.
24872 (maybe_add_dead_note_use): New.
24873 (find_insn_with_note): New.
24874 (new_insn_dead_notes): New.
24875 (update_n_sets): New.
24876 (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
24877 (maybe_remove_dead_notes): New.
24878 (update_life_info): New.
24879 (prepend_reg_notes): New.
24880 (replace_insns): New.
24881 * output.h (update_life_info): Declare.
24882 * recog.c (split_block_insns): Use update_life_info.
24883 * resource.c (find_free_register): Use reg_alloc_order, don't use
24884 fixed regs, make sure the mode is supported, don't use new regs.
24885 (reg_dead_p): New.
24886 * rtl.h (replace_insns): Declare.
24887
24888 Tue Aug 24 13:48:39 1999 Nathan Sidwell <nathan@acm.org>
24889
24890 * expr.c (expand_expr): Cope with COND_EXPRs with one
24891 non-returning branch.
24892
24893 Mon Aug 23 22:28:16 1999 Mark Mitchell <mark@codesourcery.com>
24894
24895 * expr.c (store_expr): Always pass down the target, even when not
24896 doing CSE.
24897
24898 1999-08-24 Nick Clifton <nickc@cygnus.com>
24899
24900 * configure.in: Define target_cpu_default for v850 targets.
24901 * configure: Regenerate
24902
24903 * config/v850/v850.h (TARGET_CPU_generic): Define.
24904 (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
24905 addresses are 4 byte aligned.
24906
24907 * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
24908 addresses.
24909
24910 Tue Aug 24 09:32:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24911
24912 * genattr.c (function_unit_desc): Constify a char*. Add prototype.
24913 (main): Add prototypes.
24914
24915 * genattrtab.c (substitute_address, write_const_num_delay_slots,
24916 attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
24917 (write_attr_get): Emit prototypes along with function definition.
24918 (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
24919 (write_complex_function): Emit static prototype along with
24920 function definition.
24921
24922 * genemit.c (gen_split): Emit prototypes along with function
24923 definition.
24924
24925 * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
24926 Likewise for predicates and `insn_operand_predicate'.
24927 (process_template): Emit static prototype along with function
24928 definition.
24929
24930 * genrecog.c (make_insn_sequence): Constify a char*. Add
24931 prototypes for get_split_*().
24932 (write_subroutine): Emit prototypes along with function
24933 definition.
24934
24935 Tue Aug 24 12:35:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
24936
24937 * gcse.c (find_avail_set): Follow chains of register-register copies.
24938 Use oprs_not_set_p to guarantee that the returned value can be
24939 substituted.
24940 (cprop_insn): Don't verify the return value of find_avail_set with
24941 oprs_not_set_p.
24942
24943 * gcse.c (cprop_jump): New function, broken out of cprop_insn.
24944 (cprop_cc0_jump): New function.
24945 (cprop_insn): Break out new function cprop_jump and use it.
24946 Also use cprop_cc0_jump for machines with CC0.
24947 (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
24948
24949 * tree.h (current_function_calls_setjmp,
24950 current_function_calls_longjmp): Delete declarations.
24951 * dsp16xx.c: Include "function.h".
24952 * elxsi.c: Likewise.
24953 * gmicro.c: Likewise.
24954 * h8300.c: Likewise.
24955 * i370.c: Likewise.
24956 * m32r.c: Likewise.
24957 * mn10200.c: Likewise.
24958 * mn10300.c: Likewise.
24959 * ns32k.c: Likewise.
24960 * spur.c: Likewise.
24961 * v850.c: Likewise.
24962
24963 * rtl.h (rtx_equal_function_value_matters): Declare.
24964 * toplev.c (rtx_equal_function_value_matters): Don't declare.
24965 * cse.c: Likewise.
24966 * function.c: Likewise.
24967 * emit-rtl.c: Likewise.
24968
24969 Tue Aug 24 02:47:44 1999 Jeffrey A Law (law@cygnus.com)
24970
24971 * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
24972 call.
24973
24974 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
24975
24976 * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
24977 exactly.
24978
24979 Mon Aug 23 23:35:52 1999 Matthias Klose <doko@cs.tu-berlin.de>
24980
24981 * cpp.texi: Add a node documenting macro varargs (copied
24982 from extend.texi).
24983
24984 1999-08-23 22:23 -0700 Zack Weinberg <zack@bitmover.com>
24985
24986 * cppspec.c: Put a null pointer at the end of the new argv.
24987
24988 Mon Aug 23 21:23:24 1999 Jeffrey A Law (law@cygnus.com)
24989
24990 * configure.in: Remove code to select/de-select the haifa
24991 scheduler. Every scheduled port gets haifa now.
24992 * configure: Rebuilt.
24993 * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
24994 * sched.c Deleted.
24995 * Makefile.in: Corresponding changes.
24996
24997 Mon Aug 23 16:04:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
24998
24999 * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
25000 All callers changed.
25001 (prepare_float_lib_cmp): Likewise.
25002 Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
25003 * expr.h (emit_float_lib_cmp): Delete declaration.
25004 * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
25005 * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
25006 * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
25007 specially.
25008 (cmptf): Now conditional on TARGET_HARD_QUAD.
25009
25010 Fri Aug 20 17:52:27 1999 Jim Wilson <wilson@cygnus.com>
25011
25012 * resource.c (mark_target_live_regs): Use
25013 PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
25014
25015 Fri Aug 20 19:07:55 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25016
25017 * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
25018
25019 * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
25020
25021 * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
25022
25023 Fri Aug 20 18:53:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25024
25025 * rtl.h (rtx_format): Constify a char*.
25026
25027 * rtl.c (rtx_format): Likewise.
25028 (copy_rtx, copy_most_rtx, read_rtx): Likewise.
25029 (init_rtl): Use accessor macro, not `rtx_format'.
25030
25031 * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
25032 char*.
25033
25034 * caller-save.c (mark_referenced_regs): Likewise.
25035
25036 * combine.c (subst, make_compound_operation, known_cond,
25037 gen_rtx_combine, update_table_tick, get_last_value_validate,
25038 use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
25039
25040 * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
25041 refers_to_p, canon_reg, fold_rtx, cse_process_notes,
25042 count_reg_usage): Likewise.
25043
25044 * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
25045 Likewise.
25046
25047 * final.c (leaf_renumber_regs_insn): Likewise.
25048
25049 * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
25050 dump_edge_info, count_reg_references): Likewise.
25051
25052 * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
25053 fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
25054 Likewise.
25055
25056 * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
25057 oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
25058 add_label_notes): Likewise.
25059
25060 * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
25061 clear_struct_flag, count_sub_rtxs, count_alternatives,
25062 compares_alternatives_p, contained_in_p, walk_attr_value,
25063 write_expr_attr_cache): Likewise.
25064
25065 * genconfig.c (walk_insn_part): Likewise.
25066
25067 * genemit.c (max_operand_1, gen_exp): Likewise.
25068
25069 * genextract.c (walk_rtx): Likewise.
25070
25071 * genflags.c (num_operands): Likewise.
25072
25073 * genoutput.c (scan_operands): Likewise.
25074
25075 * genpeep.c (match_rtx): Likewise.
25076
25077 * genrecog.c (add_to_sequence): Likewise.
25078
25079 * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
25080 Likewise.
25081
25082 * integrate.c (save_constants, copy_for_inline,
25083 copy_rtx_and_substitute, subst_constants, restore_constants):
25084 Likewise.
25085
25086 * jump.c (mark_jump_label, invert_exp, redirect_exp,
25087 rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
25088
25089 * local-alloc.c (contains_replace_regs, memref_referenced_p):
25090 Likewise.
25091
25092 * loop.c (record_excess_regs, rtx_equal_for_loop_p,
25093 add_label_notes, replace_call_address, count_nonfixed_reads,
25094 invariant_p, find_single_use_in_loop, find_mem_givs,
25095 find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
25096 Likewise.
25097
25098 * print-rtl.c (reg_names, print_rtx): Likewise.
25099
25100 * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
25101
25102 * reg-stack.c (stack_regs_mentioned_p, record_label_references,
25103 record_reg_life_pat, swap_rtx_condition, goto_block_pat,
25104 print_blocks): Likewise.
25105
25106 * regclass.c (fix_register, record_address_regs,
25107 reg_scan_mark_refs): Likewise.
25108
25109 * regmove.c (stable_but_for_p): Likewise.
25110
25111 * reload.c (loc_mentioned_in_p, operands_match_p,
25112 find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
25113 copy_replacements, refers_to_regno_for_reload_p,
25114 refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
25115 reload_when_needed_name, reg_class_names, debug_reload_to_stream):
25116 Likewise.
25117
25118 * reload1.c (eliminate_regs, scan_paradoxical_subregs,
25119 delete_address_reloads_1, count_occurrences,
25120 reload_cse_mem_conflict_p, reload_combine_note_use,
25121 add_auto_inc_notes): Likewise.
25122
25123 * resource.c (mark_referenced_resources, mark_set_resources):
25124 Likewise.
25125
25126 * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
25127 reg_mentioned_p, regs_set_between_p, modified_between_p,
25128 modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
25129 rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
25130 may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
25131 jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
25132
25133 * sched.c (sched_analyze_2, attach_deaths): Likewise.
25134
25135 * stupid.c (stupid_mark_refs): Likewise.
25136
25137 * unroll.c (remap_split_bivs): Likewise.
25138
25139 * varasm.c (mark_constants): Likewise.
25140
25141 * a29k/a29k.c (uses_local_reg_p): Likewise.
25142
25143 * alpha/alpha.c (summarize_insn): Likewise.
25144
25145 * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
25146 eliminate_lr2ip): Likewise.
25147
25148 * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
25149
25150 * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
25151 reg_mentioned_in_mem): Likewise.
25152
25153 * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
25154 symbolic_reference_mentioned_p): Likewise.
25155
25156 * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
25157
25158 * sh/sh.c (regs_used, mark_use): Likewise.
25159
25160 * vax/vax.c (vax_rtx_cost): Likewise.
25161
25162 Fri Aug 20 18:38:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25163
25164 * machmode.h (mode_name): Constify a char*.
25165
25166 * rtl.c (mode_name): Likewise.
25167
25168 * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
25169
25170 * optabs.c (init_libfuncs): Constify a char*.
25171
25172 * print-tree.c (mode_name): Remove redundant declaration.
25173 (print_node): Use accessor macro, not `mode_name'.
25174
25175 * reload1.c (dump_needs): Constify a char*. Use accessor macro,
25176 not `mode_name'.
25177 (new_spill_reg): Constify a char*.
25178
25179 * tree.c (mode_name): Remove redundant declaration.
25180
25181 Fri Aug 20 18:31:26 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25182
25183 * rtl.c (rtx_name): Constify a char*.
25184
25185 * rtl.h (rtx_name, fix_sched_param): Likewise.
25186
25187 * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
25188 (mypr): Use accessor macro, not `rtx_name'.
25189
25190 * genemit.c (print_code): Constify a char*.
25191
25192 * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
25193
25194 * genpeep.c (print_code): Constify a char*.
25195
25196 * genrecog.c (print_code): Likewise.
25197
25198 * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
25199 end_bb): Add static prototype.
25200 (draw_edge): Constify a char*.
25201 (end_bb): Remove unused parameter.
25202
25203 * haifa-sched.c (fix_sched_param, safe_concat, print_exp
25204 print_block_visualization): Constify a char*.
25205
25206 Fri Aug 20 15:02:10 1999 Mark Mitchell <mark@codesourcery.com>
25207
25208 * c-common.c (c_get_alias_set): Update comment.
25209
25210 1999-08-20 Andreas Jaeger <aj@arthur.rhein-neckar.de>
25211
25212 * linux.h (LIB_SPEC): Added.
25213
25214 Fri Aug 20 22:32:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
25215
25216 * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
25217
25218 1999-08-19 18:43 -0700 Zack Weinberg <zack@bitmover.com>
25219
25220 * tree.c (expr_check): Fix typo in last change.
25221
25222 1999-08-19 14:44 -0700 Zack Weinberg <zack@bitmover.com>
25223
25224 * rtl.def (NOTE): Change format to "iuu0n".
25225 (ADDR_DIFF_VEC): Change format to "eEee0".
25226 (ADDRESSOF): Change format to "eit".
25227
25228 * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
25229 (RTVEC_ELT): Change to match.
25230 (XVECEXP): Use XVEC and RTVEC_ELT.
25231 (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
25232 ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
25233 (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
25234 CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
25235 TRAP_CONDITION, TRAP_CODE): Use XEXP.
25236 (INTVAL): Use XWINT.
25237 (ADDRESSOF_DECL): Use XTREE.
25238 (SET_ADDRESSOF_DECL): Delete.
25239 (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
25240 NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been
25241 ifdefed out since 2.6 at least.
25242 (gen_rtvec_vv): Delete prototype.
25243
25244 * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
25245 not rtunion.
25246 (copy_most_rtx): Handle 't' format letter.
25247 * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
25248 (gen_rtvec_vv): Delete function. All callers changed to use
25249 gen_rtvec_v instead.
25250 * print-rtl.c (print_rtx): Move special casing of NOTEs to
25251 the '0' format letter.
25252
25253 * function.c (gen_mem_addressof): Don't use
25254 SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
25255 instead.
25256 * integrate.c (copy_rtx_and_substitute): Likewise.
25257 Copy 't' slots with XTREE.
25258 (subst_constants): Treat 't' slots like '[swi]' slots.
25259 * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
25260 * jump.c (rtx_equal_for_thread_p): Likewise.
25261 * rtlanal.c (rtx_equal_p): Likewise.
25262 * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
25263 only four arguments.
25264 * gengenrtl.c (type_from_format): Provide correct types for
25265 'b' and 't' slots.
25266
25267
25268 * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
25269 If a recent gcc is in use (always in stage2 and beyond), use
25270 statement expressions, so we don't make a function call unless
25271 the check fails. Evaluate arguments exactly once.
25272 (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
25273 TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
25274 Delete.
25275 (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
25276 they evaluate their arguments exactly once, irrespective of
25277 the compiler in use.
25278
25279 * tree.c [ENABLE_CHECKING]: Define whichever set of functions
25280 is used by the currently-enabled check macros. This is:
25281 (tree_check_failed, tree_class_check_failed): For gcc.
25282 (tree_check, tree_class_check, cst_or_constructor_check,
25283 expr_check): For other compilers.
25284
25285 * gencheck.c: Do not define any *_CHECK1 macros.
25286
25287 Thu Aug 19 14:42:38 1999 Mike Stump <mrs@wrs.com>
25288 Mark Mitchell <mark@codesourcery.com>
25289
25290 * c-common.c (c_get_alias_set): Fix support for poitners and
25291 references.
25292
25293 Thu Aug 19 11:51:22 EDT 1999 John Wehle (john@feith.com)
25294
25295 * alias.c: Include tree.h.
25296 (nonlocal_reference_p, mark_constant_function): New functions.
25297 * flow.c (life_analysis): Call mark_constant_function.
25298 * rtl.h (mark_constant_function): Declare it.
25299
25300 Thu Aug 19 15:02:01 1999 Nick Clifton <nickc@cygnus.com>
25301
25302 * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
25303 unrecognisable switches.
25304
25305 Wed Aug 18 23:31:57 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
25306
25307 * loop.c (recombine_givs): Set ix field after sorting.
25308 (recombine_givs): Remove bogus index / giv lockstep looping.
25309
25310 Wed Aug 18 18:20:40 1999 Bernd Schmidt <bernds@cygnus.co.uk>
25311
25312 * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
25313 on CODE.
25314 (emit_store_flag_force): Use do_compare_rtx_and_jump.
25315 (do_cmp_and_jump): Formatting fixes.
25316 * expr.c (do_compare_and_jump): Renamed from compare; changed to call
25317 do_compare_rtx_and_jump instead of compare_from_rtx.
25318 (do_compare_rtx_and_jump): New function; mostly copied from
25319 compare_from_rtx.
25320 (do_jump_for_compare): Delete.
25321 (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
25322 MIN_EXPR.
25323 (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
25324 of compare/do_jump_for_compare pairs.
25325 (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
25326 (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
25327 compare_from_rtx/do_jump_for_compare pairs.
25328 (do_jump_by_parts_equality): Likewise.
25329 (do_jump_by_parts_equality_rtx): Likewise.
25330 * expr.h (do_compare_rtx_and_jump): Declare.
25331 * optabs.c (prepare_cmp_insn): New function, contains most of the code
25332 that used to be in emit_cmp_insn.
25333 (cmp_available_p): New function.
25334 (prepare_operand): New function.
25335 (emit_cmp_and_jump_insn_1): New function, contains some code that used
25336 to be in emit_cmp_insn.
25337 (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
25338 parameters to be pointers; don't emit final compare but modify some of
25339 the values pointed to by the args so the caller can perform the
25340 correct comparison.
25341 (expand_binop): Call emit_store_flag_force with signed forms of
25342 comparison code.
25343 (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
25344 emit_jump_insn pair.
25345 (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
25346 emit_cmp_and_jump_insn_1. Call emit_queue.
25347 (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
25348 arg.
25349 * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
25350 jump sets cc0 before deleting it.
25351 * integrate.c (expand_inline_function): Likewise.
25352 * unroll.c (unroll_loop): Similar changes in several places.
25353 (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
25354 before deleting it.
25355
25356 Wed Aug 18 06:37:44 1999 Bernd Schmidt <bernds@cygnus.co.uk>
25357
25358 * Makefile.in (insn-recog.o): Update dependencies.
25359 * genrecog.c (main): Make generated file include "function.h".
25360
25361 Sat Aug 14 00:54:57 1999 Geoffrey Keating <geoffk@cygnus.com>
25362
25363 * cse.c (cse_insn): Call never_reached_warning when a jump is
25364 changed to be unconditional.
25365 * flags.h: Declare warn_notreached.
25366 * flow.c (delete_block): Call never_reached_warning when
25367 a block is deleted.
25368 * jump.c (delete_barrier_successors): Call never_reached_warning
25369 when we delete everything after a BARRIER.
25370 (never_reached_warning): New function.
25371 * rtl.h: Declare never_reached_warning.
25372 * toplev.c (warn_notreached): New variable.
25373 (lang_independent_options): Set warn_notreached
25374 when -Wunreachable-code.
25375 (compile_file): We need line numbers for -Wunreachable-code.
25376
25377 Tue Aug 17 22:06:11 1999 Jan Hubicka <hubicka@freesoft.cz>
25378
25379 * haifa-sched.c (insn_unit): Fix typo on out of range test.
25380 * sched.c (insn_unit): Likewise.
25381
25382 Tue Aug 17 21:57:23 1999 Andreas Schwab <schwab@suse.de>
25383
25384 * combine.c (distribute_notes): Handle REG_EH_RETHROW.
25385
25386 Tue Aug 17 17:39:43 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
25387
25388 * flow.c (create_edge_list): Use xmalloc, not malloc.
25389
25390 Tue Aug 17 01:40:54 1999 Loren Rittle <ljrittle@acm.org>
25391
25392 * fixinc/inclhack.def (no_double_slash): Do not trash single-line
25393 C-style comments. Do not lose the character before double slash.
25394
25395 Mon Aug 16 18:08:22 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
25396
25397 * basic-block.h (struct edge_list): Stucture to maintain a vector
25398 of edges.
25399 (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
25400 INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
25401 (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
25402 New function prototypes.
25403 * flow.c (create_edge_list): Function to create an edge list.
25404 (free_edge_list): Discards memory used by an edge list.
25405 (print_edge_list): Debug output showing an edge list.
25406 (verify_edge_list): Internal consistency check for an edge list.
25407 (find_edge_index): Function to find an edge index for a pred and succ.
25408
25409 Mon Aug 16 11:56:36 1999 Mark Mitchell <mark@codesourcery.com>
25410
25411 * tree.c (type_hash_add): Use permalloc to allocate nodes in the
25412 hashtable.
25413
25414 Mon Aug 16 17:04:15 1999 Jorn Rennecke <amylaar@cygnus.co.uk>
25415
25416 * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
25417
25418 Fri Aug 13 15:20:43 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
25419
25420 * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
25421
25422 Fri Aug 13 10:21:28 1999 Nick Clifton <nickc@cygnus.com>
25423
25424 * toplev.c (rest_of_compilation): Allow machine dependent
25425 reorganisation pass to place information into the RTL dump
25426 file if it so wishes.
25427
25428 Sun Aug 15 12:41:21 1999 Jim Wilson <wilson@cygnus.com>
25429
25430 * explow.c (hard_function_value): Use VOIDmode instead of
25431 MAX_MACHINE_MODE.
25432 * stmt.c (expand_return): Likewise.
25433 * stor-layout.c (get_best_mode): Likewise.
25434
25435 * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
25436 emit call instead of emit_insn call.
25437
25438 Sat Aug 14 15:04:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
25439
25440 * configure.in: Handle --disable/enable-win32-registry.
25441 * install.texi: Document --disable/enable-win32-registry.
25442 * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
25443 (WIN32_REGISTRY_KEY): New macro.
25444 * prefix.c: Use to enable/disable win32-specific code.
25445 (lookup_key): Use versioned key.
25446 * configure: Regenerate.
25447 * config.in: Likewise.
25448
25449 Fri Aug 13 17:41:55 1999 Jason Merrill <jason@yorick.cygnus.com>
25450
25451 * cpplib.c (read_line_number): New fn, split out of...
25452 (do_line): Here.
25453
25454 Fri Aug 13 14:18:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
25455
25456 tree.c (lang_unsave_expr_now) : New.
25457 (unsave_expr_now): Call lang_unsave_expr_now.
25458 tree.h (lang_unsave_expr_now) : New.
25459
25460 Fri Aug 13 00:49:46 1999 Jason Merrill <jason@yorick.cygnus.com>
25461
25462 * toplev.c (flag_new_exceptions): On by default.
25463
25464 1999-08-13 Michael Meissner <meissner@cygnus.com>
25465
25466 * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
25467
25468 Fri Aug 13 01:29:57 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
25469
25470 * dwarfout.c (fundamental_type_code): Return FT_boolean for
25471 INTEGER_TYPE with precision==1, it's __java_boolean.
25472
25473 Thu Aug 12 23:51:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
25474
25475 * global.c (prune_preferences): Move some invariants out of the
25476 inner loop.
25477
25478 Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com)
25479
25480 * configure.in (alpha*-dec-osf*): Add osf5.
25481
25482 Sun Aug 1 22:24:03 1999 Philip Blundell <philb@gnu.org>
25483
25484 * configure.in: Rework handling of ARM GNU/Linux slightly.
25485 (arm*-*-linux-gnuoldld): New target.
25486 * configure: Regenerate.
25487 * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
25488 arm-*-elf. Mention that arm-*-linux-gnuaout is obsolete.
25489 * config/arm/linux-oldld.h: New file.
25490 * config/arm/linux-elf26.h: Don't include linux-elf.h.
25491 (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
25492 Don't define.
25493 * config/arm/linux-elf.h (ASM_SPEC): Define.
25494 (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
25495 SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
25496 for 26-bit APCS and old linker.
25497 (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
25498 `arm_elf'.
25499 (FP_DEFAULT): Define to FP_SOFT3 for all machines.
25500 * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
25501 don't define `arm' or `arm_elf'.
25502 * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
25503 MULTILIB_DIRNAMES): Define. Fix typo in comment.
25504
25505 Thu Aug 12 10:14:47 1999 Andreas Schwab <schwab@suse.de>
25506
25507 * rtl.texi: Fix typo.
25508
25509 Wed Aug 11 23:50:57 1999 Jason Merrill <jason@yorick.cygnus.com>
25510
25511 * invoke.texi (C++ Dialect Options): Add -fms-extensions.
25512
25513 Wed Aug 11 12:59:37 1999 Mark Mitchell <mark@codesourcery.com>
25514
25515 * extend.texi (C++ Signatures): Remove node.
25516 * invoke.texi: Remove discussion of -fhandle-signatures,
25517 signature, sigof, __signature__, and __sigof__.
25518
25519 Wed Aug 11 03:38:25 1999 Jeffrey A Law (law@cygnus.com)
25520
25521 * Makefile.in (JAVAGC): Removed.
25522
25523 Wed Aug 11 02:13:26 1999 Mumit Khan <khan@xraylith.wisc.edu>
25524
25525 * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
25526
25527 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
25528
25529 * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
25530
25531 1999-08-11 Richard Earnshaw (rearnsha@arm.com)
25532
25533 * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
25534 a register that is already known to be a pointer.
25535
25536 1999-08-11 Bruce Korb <ddsinc09@ix.netcom.com>
25537
25538 * fixinc/inclhack.tpl: Only install assert.h conditionally.
25539 * fixinc/inclhack.sh: Regenerated.
25540 * fixinc/fixincl.sh: Regenerated.
25541
25542 Wed Aug 11 00:34:22 1999 Joe Buck <jbuck@synopsys.com>
25543
25544 * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
25545 Fix documentation of -ansi flag to describe its C++ behavior.
25546 Remove bogus reference to GCC 2.9.
25547
25548 Tue Aug 10 17:19:02 1999 Jim Wilson <wilson@cygnus.com>
25549
25550 * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
25551 note if it is non-NULL.
25552
25553 Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
25554
25555 * except.h (eh_nesting_info): Add new structure defintion.
25556 (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
25557 (reachable_handlers, update_rethrow_references): Add function
25558 prototypes.
25559 * rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes
25560 a rethrow symbol instead of an integer exception region number.
25561 * flow.c (Make_edges): Use new exception nesting routines to determine
25562 which handlers are reachable from a CALL or asynchronous insn.
25563 Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
25564 goto receivers.
25565 (delete_eh_regions): Update rethrow labels, and don't delete
25566 regions which are the target of a rethrow.
25567 * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
25568 avoid overloading the SYMBOL_REF_USED flag.
25569 (rethrow_symbol_map): Use new rethrow_ref field.
25570 (rethrow_used): Use new rethrow_ref field.
25571 (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
25572 of an integer. Fix formatting.
25573 (output_exception_table_entry): Use new rethrow_ref field.
25574 (can_throw): Check for EH_REGION_NOTE before deciding
25575 whether a CALL can throw or not.
25576 (scan_region): Call rethrow_used() instead of accessing data structure.
25577 (update_rethrow_references): New function to make sure only regions
25578 which are still targets of a rethrow are flagged as such.
25579 (process_nestinfo): New static function to initialize a handler
25580 list for a specific region.
25581 (init_eh_nesting_info): New function to allocate and initialize
25582 the list of all EH handlers reachable from all regions.
25583 (reachable_handlers): New function to retrieve the list of handlers
25584 reachable from a specific region and insn.
25585 (free_eh_nesting_info): New function to dispose of a list of
25586 reachable handlers.
25587
25588 Tue Aug 10 10:39:31 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
25589
25590 * flow.c (split_edge): Set JUMP_LABEL field.
25591 (commit_one_edge_insertion): Set head correctly for insert_before.
25592 When inserting insns, update insn block numbers if allocated.
25593
25594 Tue Aug 10 09:26:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25595
25596 * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
25597 retry_incomplete_types): Add static prototype.
25598 (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
25599 dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
25600 dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
25601 dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
25602 dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
25603 Constify a char*.
25604
25605 * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
25606 dwarf2out_start_source_file, dwarf2out_line): Likewise.
25607
25608 Tue Aug 10 09:21:46 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25609
25610 * output.h (assemble_name): Constify a char*.
25611
25612 * varasm.c (UNIQUE_SECTION, assemble_start_function,
25613 assemble_variable, assemble_name): Likewise.
25614
25615 * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
25616
25617 * arm/pe.c (arm_pe_unique_section): Likewise.
25618
25619 * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
25620
25621 * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
25622
25623 * i386/interix.c (i386_pe_unique_section): Likewise.
25624
25625 * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
25626
25627 * i386/winnt.c (i386_pe_unique_section): Likewise.
25628
25629 * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
25630
25631 * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
25632
25633 * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
25634
25635 * pa/pa.c (output_call): Likewise.
25636
25637 * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
25638
25639 * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
25640
25641 * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
25642 Likewise.
25643
25644 * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
25645 Likewise.
25646
25647 * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
25648
25649 * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
25650 STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
25651
25652 * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
25653
25654 Mon Aug 9 19:54:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25655
25656 * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
25657
25658 Mon Aug 9 19:36:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25659
25660 * tree.h (lang_identify): Constify a char*.
25661 (print_error_function): Add extern prototype. Constify a char*.
25662
25663 * c-lang.c (lang_identify): Constify a char*.
25664
25665 * objc/objc-act.c (lang_identify): Constify a char*.
25666
25667 Mon Aug 9 16:21:53 1999 Bernd Schmidt <bernds@cygnus.co.uk>
25668
25669 * genpeep.c (main): Make generated file include "function.h".
25670 * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
25671
25672 Mon Aug 9 10:08:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
25673
25674 * Makefile.in: Update dependencies.
25675 * alias.c: Include "function.h"
25676 * c-decl.c: Likewise.
25677 * caller-save.c: Likewise.
25678 * calls.c: Likewise.
25679 * combine.c: Likewise.
25680 * cse.c: Likewise.
25681 * explow.c: Likewise.
25682 * final.c: Likewise.
25683 * global.c: Likewise.
25684 * graph.c: Likewise.
25685 * local-alloc.c: Likewise.
25686 * loop.c: Likewise.
25687 * optabs.c: Likewise.
25688 * profile.c: Likewise.
25689 * recog.c: Likewise.
25690 * regclass.c: Likewise.
25691 * regmove.c: Likewise.
25692 * reload.c: Likewise.
25693 * reorg.c: Likewise.
25694 * resource.c: Likewise.
25695 * sched.c: Likewise.
25696 * stupid.c: Likewise.
25697 * config/1750a/1750a.c: Likewise.
25698 * config/a29k/a29k.c: Likewise.
25699 * config/arc/arc.c: Likewise.
25700 * config/arm/arm.c: Likewise.
25701 * config/arm/thumb.c: Likewise.
25702 * config/c4x/c4x.c: Likewise.
25703 * config/clipper/clipper.c: Likewise.
25704 * config/convex/convex.c: Likewise.
25705 * config/fx80/fx80.c: Likewise.
25706 * config/i860/i860.c: Likewise.
25707 * config/m68k/m68k.c: Likewise.
25708 * config/m88k/m88k.c: Likewise.
25709 * config/mips/mips.c: Likewise.
25710 * config/pdp11/pdp11.c: Likewise.
25711 * config/pyr/pyr.c: Likewise.
25712 * config/romp/romp.c: Likewise.
25713 * config/sh/sh.c: Likewise.
25714 * config/tahoe/tahoe.c: Likewise.
25715 * config/vax/vax.c: Likewise.
25716 * config/we32k/we32k.c: Likewise.
25717 * config/sparc/sparc.c: Include "function.h".
25718 (mem_min_alignment): Test current_function rather than
25719 regno_pointer_align.
25720 * config/pa/pa.c: Likewise.
25721 (compute_frame_size): Delete declaration of
25722 current_function_outgoing_args_size.
25723 * config/arc/arc.h (current_function_varargs): Delete declaration.
25724 * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
25725 declaration.
25726 * config/i370/i370.h (current_function_outgoing_args_size): Delete
25727 declaration.
25728 * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
25729 current_function_uses_pic_offset_table.
25730 * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
25731 of current_function_returns_pointer.
25732 * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25733 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25734 * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25735 * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25736 * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25737 * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25738 * config/m88k/m88k.c: Include "function.h"
25739 (call_used_regs, current_function_pretend_args_size,
25740 current_function_outgoing_args_size, frame_pointer_needed): Delete
25741 declarations.
25742 * config/m88k/m88k.h (current_function_pretend_args_size): Delete
25743 declaration.
25744 * config/mips/mips.h (current_function_calls_alloca): Delete
25745 declaration.
25746 * config/mn10200/mn10200.h (current_function_needs_context,
25747 rtx_equal_function_value_matters): Delete declarations.
25748 * config/ns32k/ns32k (current_function_uses_pic_offset_table,
25749 flag_pic): Delete declarations.
25750 * config/pa/pa.h (current_function_pretend_args_size,
25751 current_function_decl): Delete declarations.
25752 * config/pa/som.h (current_function_varargs): Delete declaration.
25753 * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
25754 declaration.
25755 * config/pyr/pyr.h (current_function_pretend_args_size,
25756 current_function_args_size, current_function_calls_alloca): Delete
25757 declarations.
25758 * config/sh/sh.h (current_function_varargs): Delete declaration.
25759 * config/sparc/sparc.h (current_function_outgoing_args_size,
25760 current_function_calls_alloca, current_function_decl): Delete
25761 declarations.
25762 * config/spur/spur.h (current_function_pretend_args_size,
25763 current_function_calls_alloca): Delete declarations.
25764 * config/v850/v850.c (current_function_outgoing_args_size): Delete
25765 declaration.
25766 * config/vax/vms.h (current_function_name): Delete declaration.
25767 * gcse.c: Include "function.h".
25768 (current_function_name, current_function_calls_setjmp): Delete
25769 declarations.
25770 * haifa-sched.c: Include "function.h".
25771 (forced_labels): Delete declaration.
25772 * jump.c: Likewise.
25773 * reg-stack.c: Likewise.
25774 * reload1.c: Likewise.
25775 * genemit.c (main): Make generated file include function.h.
25776 * genoutput.c (output_prologue): Likewise.
25777
25778 * builtins.c (saveregs_value, apply_args_value): Delete variables.
25779 * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
25780 sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
25781 regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
25782 regno_reg_rtx, sequence_stack): Delete variables. Add accessor
25783 macros for some of them.
25784 (emit_filename, emit_lineno): Delete declarations.
25785 (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy. Access
25786 regno_pointer_* variables through current_function.
25787 (gen_inline_header_rtx): Delete function.
25788 (save_emit_status): Delete function.
25789 (set_new_last_label_num): New function.
25790 (clear_emit_caches): New function.
25791 (restore_emit_status): Just clear last_labelnum and call
25792 clear_emit_caches.
25793 (get_last_insn_anywhere): Variable sequence_stack is now accessed
25794 through macro seq_stack.
25795 (add_insn_after): Likewise.
25796 (add_insn_before): Likewise.
25797 (remove_insn): Likewise.
25798 (pop_topmost_sequence): Likewise.
25799 (in_sequence_p): Likewise.
25800 (start_sequence_for_rtl_expr): Likewise.
25801 (start_sequence): Likewise, and likewise for
25802 sequence_rtl_expr/seq_rtl_expr.
25803 (push_topmost_sequence): Likewise.
25804 (end_sequence): Likewise.
25805 (init_virtual_regs): Now takes a "struct emit_status *" argument.
25806 All callers changed. Store into that pointer instead of globals.
25807 (init_emit): Allocate emit elt of current_function.
25808 Changes for sequence_rtl_expr/sequence_stack renaming.
25809 Call clear_emit_caches instead of doing it in-line.
25810 Access regno_pointer_* variables through current_function.
25811 (init_emit_once) Don't clear sequence_stack.
25812
25813 * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
25814 Delete variables.
25815 (arg_pointer_save_area): Delete declaration.
25816 (finish_expr_for_function): Renamed from init_queue; no longer static.
25817 (init_expr): Don't call init_queue.
25818 (save_expr_status, restore_expr_status): Delete functions.
25819 (expand_expr): Changes to reflect new layout of struct function.
25820 Don't access current_function_check_memory_usage when current_function
25821 is 0.
25822 * expr.h (forced_labels, save_expr_regs, saveregs_value,
25823 apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
25824 current_function_outgoing_args_size, current_function_arg_offset_rtx,
25825 current_function_uses_const_pool, function_call_count,
25826 current_function_uses_pic_offset_table, nonlocal_labels,
25827 current_function_internal_arg_pointer, nonlocal_goto_stack_level,
25828 current_function_check_memory_usage, nonlocal_goto_handler_slots,
25829 pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
25830 declarations.
25831 (finish_expr_for_function): Declare.
25832 * flags.h (current_function_has_nonlocal_label,
25833 current_function_has_nonlocal_goto, current_function_is_thunk,
25834 current_function_has_computed_jump): Delete declarations.
25835 * flow.c (forced_labels): Delete declaration.
25836 * function.c (current_function_pops_args,
25837 current_function_returns_struct, current_function_returns_pcc_struct,
25838 current_function_needs_context, current_function_calls_setjmp,
25839 current_function_calls_longjmp, current_function_has_nonlocal_label,
25840 current_function_has_nonlocal_goto, current_function_is_thunk,
25841 current_function_has_computed_jump, current_function_calls_alloca,
25842 current_function_contains_functions, current_function_returns_pointer,
25843 current_function_epilogue_delay_list, current_function_args_size,
25844 current_function_pretend_args_size, current_function_arg_offset_rtx,
25845 current_function_outgoing_args_size, current_function_varargs,
25846 current_function_stdarg, current_function_args_info, cleanup_label,
25847 current_function_name, current_function_uses_const_pool,
25848 current_function_instrument_entry_exit, current_function_return_rtx,
25849 current_function_uses_pic_offset_table, nonlocal_labels,
25850 current_function_internal_arg_pointer, current_function_cannot_inline,
25851 current_function_check_memory_usage, function_call_count,
25852 nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
25853 nonlocal_goto_stack_level, return_label, save_expr_regs,
25854 stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
25855 tail_recursion_reentry, arg_pointer_save_area, frame_offset,
25856 context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
25857 last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
25858 temp_slot_level, var_temp_slot_level, target_temp_slot_level):
25859 Delete variables.
25860 (push_function_context_to): Don't save them. Don't call
25861 save_storage_status, save_emit_status or save_expr_status.
25862 (pop_function_context_from): Don't restore them. Don't call
25863 restore_storage_status or restore_expr_status.
25864 (get_func_frame_size): New function.
25865 (get_frame_size): Use it.
25866 (assign_outer_stack_local): Reflect some member name changes in struct
25867 function.
25868 (put_reg_into_stack): Likewise.
25869 (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
25870 seq_rtl_expr.
25871 (fixup_var_refs): Likewise.
25872 (fix_lexical_addr): Likewise.
25873 (trampoline_address): Likewise.
25874 (prepare_function_start): Clear field inlinable of current_function.
25875 (init_function_for_compilation): New function.
25876 (expand_dummy_function_end): New function.
25877 (expand_function_end): Call finish_expr_for_function.
25878 * function.h (struct emit_status): New; fields moved here from struct
25879 function and from global variables. Add accessor macros for some of
25880 the fields.
25881 (struct expr_status): Likewise.
25882 (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
25883 (struct function): Add fields expr and emit, inlinable, inl_emit,
25884 original_arg_vector, original_decl_initial, inl_last_parm_insn,
25885 inl_max_label_num. Add many comments.
25886 Add accessor macros for all elts of struct function that no longer
25887 have a global variable.
25888 (cleanup_label, return_label, frame_offset, tail_recursion_label,
25889 tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
25890 stack_slot_list): Delete declarations.
25891 (get_func_frame_size): Declare.
25892 (save_expr_status, restore_expr_status, save_emit_status,
25893 save_storage_status, restore_storage_status): Delete declarations.
25894 (init_virtual_regs): Declare.
25895 * output.h (current_function_pops_args,
25896 current_function_returns_struct, current_function_returns_pcc_struct,
25897 current_function_needs_context, current_function_calls_setjmp,
25898 current_function_calls_longjmp, current_function_calls_alloca,
25899 current_function_has_nonlocal_label, current_function_varargs,
25900 current_function_has_computed_jump, current_function_returns_pointer,
25901 current_function_contains_functions, current_function_args_size,
25902 current_function_pretend_args_size, current_function_stdarg,
25903 current_function_outgoing_args_size, current_function_args_info,
25904 current_function_name, current_function_return_rtx,
25905 current_function_epilogue_delay_list,
25906 current_function_uses_const_pool, current_function_cannot_inline):
25907 Delete declarations.
25908 * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
25909 regno_reg_rtx): Delete declaration.
25910 (REGNO_POINTER_FLAG): Delete macro.
25911 * stmt.c (expand_goto): Changes to reflect that some fields in struct
25912 function were renamed.
25913 * stor-layout.c (save_storage_status, restore_storage_status): Delete
25914 functions.
25915 * toplev.c: Include "function.h".
25916 (current_function_decl): Delete declaration.
25917 (compile_file): Call init_dummy_function_start and
25918 expand_dummy_function_end around some initializations that need to
25919 emit rtl.
25920 (rest_of_compilation): Use DECL_SAVED_INSNS properly.
25921 Call init_function_for_compilation.
25922 * unroll.c: Include "function.h"
25923 (unroll_loop): Access regno_pointer_* variables through
25924 current_function.
25925
25926 * tree.h (struct tree_decl): Add elt f to saved_insns member.
25927 (DECL_SAVED_INSNS): use it.
25928 (expand_dummy_function_end): Declare.
25929 (init_function_for_compilation): Declare.
25930 * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
25931 that it's no longer an INLINE_HEADER.
25932 (expand_call): Likewise.
25933 * integrate.c (finish_inline): Delete function.
25934 (max_parm_reg, parm_reg_stack_loc): Delete declarations.
25935 (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
25936 args. Don't generate an INLINE_HEADER rtx, just return the arg
25937 vector. All callers changed.
25938 (save_for_inline_copying): Create a duplicate struct emit_status to
25939 hold the emit state for compiling the current function. Use this and
25940 the other new fields in struct function that are for integration
25941 instead of an INLINE_HEADER.
25942 Use memcpy instead of bcopy.
25943 Store the current struct function in DECL_SAVED_INSNS of fndecl.
25944 (save_for_inline_nocopy): Similar changes, except no new emit_status
25945 is needed here.
25946 (expand_inline_function): Get information from function structure,
25947 not from an inline header rtx.
25948 (output_inline_function): Lose code to extract the necessary
25949 information from an inline header; simply put back the function
25950 structure into current_function. Clear its inlinable elt.
25951 * rtl.def (INLINE_HEADER): Delete.
25952 * rtl.h: Delete all accessors for an INLINE_HEADER.
25953 (gen_inline_header_rtx): Delete declaration.
25954 (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
25955 Delete declarations.
25956 (REGNO_POINTER_ALIGN): Delete.
25957 (clear_emit_caches): Declare.
25958 (set_new_last_label_num): Declare.
25959
25960 Mon Aug 9 01:52:24 1999 Jason Merrill <jason@yorick.cygnus.com>
25961
25962 * print-tree.c (print_node): Print base for OFFSET_TYPEs.
25963
25964 * except.c (expand_eh_region_start_for_decl): Always start a new block.
25965 * stmt.c (is_eh_region): Make sure current_function is present, too.
25966
25967 Mon Aug 9 01:15:24 1999 Jeffrey A Law (law@cygnus.com)
25968
25969 * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
25970 for 64bit PA targets.
25971
25972 * pa.h (SELECT_SECTION): Define.
25973 * som.h (SELECT_SECTION): Delete.
25974
25975 Sun Aug 8 15:13:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25976
25977 * alias.c (init_alias_analysis): Wrap call to
25978 `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
25979
25980 1999-08-07 Bruce Korb <autogen@linuxbox.com>
25981
25982 * fixinc/inclhack.def(irix_asm_apostrophe): IRIX 5.2's
25983 <sys/asm.h> contains an asm comment with an apostrophe
25984 * fixinc/inclhack.sh: regen
25985 * fixinc/fixincl.x: regen
25986
25987 Sat Aug 7 19:37:07 1999 Richard Henderson <rth@cygnus.com>
25988
25989 * function.c (init_function_start): Clear prologue & epilogue.
25990 (prologue_epilogue_contains): New function.
25991 * alias.c (init_alias_analysis): Use it.
25992 * rtl.h (prologue_epilogue_contains): Declare it.
25993
25994 Sat Aug 7 19:32:16 1999 Richard Henderson <rth@cygnus.com>
25995
25996 * jump.c (onlyjump_p): New function.
25997 * rtl.h: Declare it.
25998 * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
25999 of condjump_p in calling tidy_fallthru_edge and merge_blocks.
26000
26001 Sat Aug 7 17:09:36 1999 Richard Henderson <rth@cygnus.com>
26002
26003 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
26004 to invert loops. Simplify block scanning.
26005
26006 Sat Aug 7 02:11:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
26007
26008 * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
26009 (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
26010
26011 1999-08-07 Jonathan Larmour <jlarmour@cygnus.co.uk>
26012
26013 * config/sparc/liteelf.h: New file to support sparclite-elf target
26014 * config/sparc/t-sp86x: New file to support sparc86x targets
26015 * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
26016 * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
26017 * configure.in: Support above target triplets
26018 * configure: Regenerated
26019
26020 Sat Aug 7 01:39:27 1999 Philippe De Muyter <phdm@macqel.be>
26021
26022 * fixinc/server.c (server_setup): Do not prefix function used as
26023 parameter with `&'.
26024
26025 Sat Aug 7 00:21:20 1999 Richard Henderson <rth@cygnus.com>
26026
26027 * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
26028 Remove fp reg alternatives.
26029
26030 Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com)
26031
26032 * Makefiin (TAROUTOPTS): Kill.
26033 (install-headers-tar): Use "xpf" for tar headerfile extraction
26034 * i370/x-oe (TAROUTOPTS): Delete.
26035 * m68k/x-apollo68 (TAROUTOPTS): Delete.
26036 * m68k/x-hp320 (TAROUTOPTS): Delete.
26037 * m68k/x-hp320g (TAROUTOPTS): Delete.
26038 * gcc.texi: Update bug reporting text.
26039
26040 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
26041
26042 * reg-stack.c (change_stack) Fixed problem with negative array index.
26043
26044 Fri Aug 6 23:08:44 1999 Jeffrey A Law (law@cygnus.com)
26045
26046 * extend.texi, install.texi: Fix spelling mistakes.
26047
26048 * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
26049 (s-attrtab); No longer try to use pre-made insn-attrtab file.
26050 * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
26051 PREMADE_ATTRTAB_MD.
26052 * mips/t-ecoff: Likewise.
26053 * mips/t-elf: Likewise.
26054 * mips/t-mips: Likewise.
26055 * mips/t-osfrose: Likewise.
26056 * mips/t-r3900: Likewise.
26057 * mips/t-svr3: Likewise.
26058 * mips/t-svr4: Likewise.
26059 * mips/t-ultrix: Likewise.
26060
26061 * gcc.texi: Document recommend means to provide software floating
26062 point libraries in libgcc.a
26063
26064 1999-08-06 Jason Merrill <jason@yorick.cygnus.com>
26065
26066 * c-lex.c (yylex): We can have a number with no digits.
26067
26068 Fri Aug 6 16:53:55 EDT 1999 John Wehle (john@feith.com)
26069
26070 * jump.c (delete_prior_computation): New function, broken
26071 out of delete_computation. Check for side effects with
26072 side_effects_p instead of FIND_REG_INC_NOTE. Handle
26073 multi-word hard registers.
26074 (delete_computation): Use it. Check for side effects with
26075 side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a
26076 missing REG_DEAD note for a register which is both set and
26077 used by an insn.
26078
26079 Fri Aug 6 11:05:29 1999 Jeffrey A Law (law@cygnus.com)
26080
26081 * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
26082 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
26083 (ASM_FILE_START): Import _mcount with the right type.
26084 (ASM_DECLARE_FUNCTION_NAME): Define.
26085 (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
26086 * pa.c (output_function_prologue): Always emit the function's label
26087 here.
26088 * pa.h (TEXT_SPACE_P): Define.
26089 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
26090 (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
26091 * som.h (TEXT_SPACE_P): Delete.
26092 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
26093 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
26094
26095 Thu Aug 5 19:29:39 1999 Jim Wilson <wilson@cygnus.com>
26096
26097 * expr.c (emit_group_load): Allow src to be a CONCAT.
26098
26099 Thu Aug 5 22:27:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
26100
26101 * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
26102 (___mulsi3): Use '!' comment character.
26103
26104 Thu Aug 5 13:34:14 1999 Bernd Schmidt <bernds@cygnus.co.uk>
26105
26106 * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
26107
26108 Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com)
26109
26110 * gcc.c: Update URLs and mail addresses.
26111 * gcc.texi: Likewise.
26112
26113 Thu Aug 5 01:14:13 1999 Daniel Jacobowitz <drow@false.org>
26114
26115 * rs6000.c (current_file_function_operand): Return zero for
26116 weak functions.
26117 (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
26118 weak symbols.
26119 * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
26120 for weak symbols.
26121
26122 Thu Aug 5 00:56:30 1999 Geoffrey Keating <geoffk@cygnus.com>
26123
26124 * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
26125 allocate space in the stack frame for the PIC register.
26126
26127 Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com)
26128
26129 * m68k.md (xordi3, anddi3): These patterns are not available on
26130 the coldfire.
26131
26132 Wed Aug 4 23:39:20 1999 Mark Mitchell <mark@codesourcery.com>
26133
26134 * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
26135 (PUT_REAL): Likewise.
26136
26137 Wed Aug 4 20:45:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
26138
26139 * final.c (shorten_branches): Don't add an alignment for loops
26140 that have no label inside.
26141
26142 Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26143
26144 * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
26145 prototypes in macro HAVE_cmpstrsi.
26146
26147 * cpplib.c (cpp_get_token): Remove unused label `op3'.
26148
26149 * emit-rtl.c (operand_subword): Remove unused variable
26150 `bits_per_word'.
26151
26152 * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
26153
26154 * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
26155
26156 Wed Aug 4 13:29:23 1999 Zack Weinberg <zack@bitmover.com>
26157
26158 * cpphash.c (macroexpand): Delete leading whitespace when arg
26159 is concatenated before.
26160 (unsafe_chars): Correct test for whether + and - can extend a
26161 token.
26162
26163 * cppinit.c (cpp_start_read): Do dependencies for
26164 -include/-imacros files also.
26165
26166 * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
26167 tokenizing non-directive lines.
26168 (cpp_expand_to_buffer): Temporarily disable no-output mode.
26169 * cppmain.c: In no-output mode, just call cpp_scan_buffer for
26170 the input file.
26171
26172 Wed Aug 4 12:53:44 1999 Jason Merrill <jason@yorick.cygnus.com>
26173
26174 * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
26175
26176 * c-lex.c: Sync with C++ frontend.
26177 (linemode): New variable.
26178 (parse_float): imag, conversion_errno, and type are output only.
26179 (yylex): Adjust. Move initial '.' case into main switch.
26180 Use linemode.
26181 (handle_generic_pragma): Just deal with tokens.
26182 (readescape): Use ISXDIGIT and ISGRAPH.
26183 * c-parse.in: Add END_OF_LINE token.
26184
26185 * c-lex.c (lang_init): Generalize.
26186 (nextchar): Remove. Replace uses with UNGETC.
26187 (skip_white_space): Handle linemode here. Optimize for cpplib.
26188 (skip_white_space_on_line): Remove.
26189 (extend_token_buffer_to): New fn.
26190 (extend_token_buffer): Use it.
26191 (read_line_number, check_newline): Just deal with tokens.
26192 (token_getch, token_put_back): New fns.
26193 (yylex): Use them. More cpplib optimizations. Simplify.
26194
26195 Wed Aug 4 12:53:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
26196 Jason Merrill <jason@yorick.cygnus.com>
26197
26198 * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
26199 (consume_string): Make this smart about USE_CPPLIB.
26200 (check_newline): Rewrite to be intelligent about USE_CPPLIB.
26201 (yylex): Rewrite to be intelligent about USE_CPPLIB.
26202 Also, clean up cases where we redundantly set token_buffer[0].
26203 (read_line_number): New fn.
26204 (ignore_escape_flag): New variable.
26205
26206 Wed Aug 4 13:12:17 1999 Jeffrey A Law (law@cygnus.com)
26207
26208 * a29k/t-a29kbare: Fix some comments.
26209 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
26210 (FPBIT, DPBIT): Define.
26211 * a29k/t-vx29k: Likewise.
26212 * arc/t-arc: Likewise.
26213 * arm/t-arm-elf: Likewise.
26214 * arm/t-bare: Likewise.
26215 * arm/t-pe: Likewise.
26216 * arm/t-pe-thumb: Likewise.
26217 * arm/t-semi: Likewise.
26218 * arm/t-thumb: Likewise.
26219 * arm/t-thumb-elf: Likewise.
26220 * arm/t-thumb-linux: Likewise.
26221 * h8300/t-h8300: Likewise.
26222 * i960/t-i960: Likewise.
26223 * i960/t-vxworks960: Likewise.
26224 * m32r/t-m32r: Likewise.
26225 * mips/t-ecoff: Likewise.
26226 * mips/t-elf: Likewise.
26227 * mips/t-r3900: Likewise.
26228 * pa/t-pro: Likewise.
26229 * rs6000/t-aix43: Likewise.
26230 * rs6000/t-beos: Likewise.
26231 * rs6000/t-newas: Likewise.
26232 * rs6000/t-ppccomm: Likewise.
26233 * rs6000/t-rs6000: Likewise.
26234 * rs6000/t-winnt: Likewise.
26235 * rs6000/t-xnewas: Likewise.
26236 * rs6000/t-xrs6000: Likewise.
26237 * sh/t-sh: Likewise.
26238 * sparc/t-elf: Likewise.
26239 * sparc/t-sparcbare: Likewise.
26240 * sparc/t-sparclite: Likewise.
26241 * sparc/t-splet: Likewise.
26242 * v850/t-v850: Likewise.
26243 * mn10200/t-mn10200: Fix comments.
26244 * mn10300/t-mn10300: Likewise.
26245
26246 * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
26247 dummy operand. Allocate a new pseudo for the dummy operand.
26248 (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
26249
26250 * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
26251
26252 Wed Aug 4 11:53:55 1999 Tom Tromey <tromey@cygnus.com>
26253
26254 * configure: Rebuilt.
26255 * configure.in: Removed --enable-java-gc option and JAVAGC subst.
26256
26257 Wed Aug 4 09:06:14 1999 Richard Earnshaw (rearnsha@arm.com)
26258
26259 * recog.c (preproces_constraints): Zero recog_op_alt before
26260 processing the constraints.
26261
26262 * arm.c (typedef minipool_node): Renamed from pool_node.
26263 (minipool_vector, minipool_size, minipool_vector_label): Similarly.
26264 (add_minipool_constant): New function.
26265 (dump_minipool): New function.
26266 (find_barrier): Remove special case for getting the insn size of
26267 an insn that references the constant pool.
26268 (minipool_fixup): New structure.
26269 (push_minipool_barrier): New function.
26270 (push_minipool_fix): New function.
26271 (note_invalid_constants): New function.
26272 (add_pool_constant, dump_table, fixit, broken_move): Delete.
26273 (arm_reorg): Rewrite code to fix up the constant pool into a
26274 series of mini-pools embedded in the insn stream.
26275 (arm_output_epilogue): New function, made mainly from the body
26276 of output_func_epilogue.
26277 (output_func_epilogue): Move insn generation part of epilogue code
26278 to arm_output_epilogue.
26279 * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
26280 * arm.md (pool_range): New attribute.
26281 (zero_extendqidi2): Add attribute pool_range.
26282 (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
26283 extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
26284 pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
26285 movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
26286 movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
26287 (epilogue): New expand.
26288 (epilogue_insn): New insn. Call arm_output_epilogue.
26289
26290 * arm.c (arm_poke_function_name): Undo change of July 17. Tidy up.
26291 * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
26292
26293 Mon Aug 2 19:18:44 1999 Jason Merrill <jason@yorick.cygnus.com>
26294
26295 * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
26296
26297 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
26298
26299 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Define.
26300
26301 Wed Aug 4 02:15:32 1999 Richard Henderson <rth@cygnus.com>
26302
26303 * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
26304
26305 Wed Aug 4 01:48:08 1999 Jim Kingdon <http://developer.redhat.com>
26306
26307 * global.c: Fix comment.
26308
26309 Wed Aug 4 01:43:01 1999 Ian Lance Taylor <ian@zembu.com>
26310
26311 * gcc.c (access_check): New static function.
26312 (find_a_file): Use it when searching a directory list.
26313 * collect2.c (find_a_file): Don't accept directories found when
26314 searching a directory list.
26315
26316 Wed Aug 4 01:40:43 1999 Philippe De Muyter <phdm@macqel.be>
26317
26318 * tlink.c (symbol_hash_lookup): Do not prefix functions used as
26319 function parameters with `&'.
26320 (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
26321
26322 Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com)
26323
26324 * flow.c (delete_unreachable_blocks): Do not call merge_blocks
26325 or tidy_fallthru_edge if the last insn in the block is not
26326 an unconditional jump or a simple conditional jump.
26327
26328 Tue Aug 3 20:21:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
26329
26330 * Makefile.in (c-decl.o): Depends on defaults.h.
26331
26332 Tue Aug 3 14:14:52 1999 Jeffrey A Law (law@cygnus.com)
26333
26334 * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
26335 PA1.1 and above.
26336 (CLASS_MAX_NREGS): Likewise.
26337
26338 Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com)
26339
26340 * cse.c (cse_insn): Fix dumb thinko in last change.
26341
26342 Tue Aug 3 10:36:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
26343
26344 * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
26345 "const char *".
26346
26347 Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson <hp@bitrange.com>
26348
26349 * dwarf2out.c (add_location_or_const_value_attribute): Correct
26350 test for sizes of passed and declared parameter types.
26351
26352 Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26353
26354 * fixincludes: Fix the return type of bsearch, char* -> void*.
26355
26356 * fixinc/inclhack.def: Likewise.
26357
26358 Mon Aug 2 18:29:32 1999 Mark Mitchell <mark@codesourcery.com>
26359
26360 * invoke.texi (-fdump-translation-unit): New option.
26361
26362 Mon Aug 2 17:54:19 1999 Richard Henderson <rth@cygnus.com>
26363
26364 * expr.h (PROMOTE_PROTOTYPES): Move ...
26365 * defaults.h: ... to here.
26366 * c-decl.c: Include defaults.h instead of expr.h.
26367 * c-typeck.c: Include defaults.h.
26368
26369 Mon Aug 2 17:10:24 1999 Mark Mitchell <mark@codesourcery.com>
26370
26371 * toplev.h (errorcount): Declare.
26372 (warningcount): Likewise.
26373 (sorrycount): Likewise.
26374 * c-lex.c (errorcount): Don't declare.
26375 * dwarf2out.c (errorcount): Don't declare.
26376
26377 Mon Aug 2 17:02:08 1999 Jason Merrill <jason@yorick.cygnus.com>
26378
26379 * config/libgloss.h: Add a note discouraging use with ELF.
26380 * configure.in: Don't use libgloss.h for ELF targets.
26381 Always use_collect2 on a.out targets.
26382
26383 Mon Aug 2 16:27:42 1999 Jim Wilson <wilson@cygnus.com>
26384
26385 * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
26386 (force_to_mode, case ASHIFTRT): Add shiftrt label.
26387
26388 Tue Aug 3 00:45:02 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
26389
26390 * loop.c (strength_reduce): When doing biv->giv conversion, update
26391 reg note of NEXT->insn.
26392
26393 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
26394
26395 * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
26396
26397 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
26398
26399 * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
26400 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
26401 Ensure expr.h is included.
26402 * c-typecheck.c (convert_arguments): Ditto.
26403
26404 * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
26405
26406 * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
26407 * config/convex/convex.h: Ditto.
26408 * config/dsp16xx/dsp16xx.h: Ditto.
26409 * config/fx80/fx80.h: Ditto.
26410 * config/gmicro/gmicro.h: Ditto.
26411 * config/i370/i370.h: Ditto.
26412 * config/i386/i386.h: Ditto.
26413 * config/m32r/m32r.h: Ditto.
26414 * config/m68k/m68k.h: Ditto.
26415 * config/m88k/m88k.h: Ditto.
26416 * config/mips/mips.h: Ditto.
26417 * config/pa/pa.h: Ditto.
26418 * config/pyr/pyr.h: Ditto.
26419 * config/tahoe/tahoe.h: Ditto.
26420 * config/we32k/we32k.h: Ditto.
26421
26422 * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
26423 based on arch size.
26424
26425 * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
26426
26427 * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
26428 from comment.
26429
26430 * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
26431
26432 1999-08-02 Richard Henderson <rth@cygnus.com>
26433
26434 * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
26435 for the register spill block.
26436 (m32r_va_arg): New.
26437 * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
26438 (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
26439
26440 * m32r.h (INT8_P): Don't short-cut test with (unsigned).
26441 (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
26442 (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
26443
26444 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
26445
26446 * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
26447 MAX_WCHAR_TYPE defined in sparc.h.
26448 * config/sparc/linuxaout.h: Likewise.
26449 * config/sparc/linux64.h: Likewise.
26450 Also default to -mvis if CPU is UltraSPARC.
26451
26452 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
26453
26454 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
26455 (RTX_OK_FOR_OLO10): Likewise.
26456 (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
26457 %lo(), allow it in addresses...
26458 (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
26459 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
26460 does not make sense.
26461 * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
26462 (sparc_output_scratch_registers): New function.
26463 (output_function_prologue, sparc_flat_output_function_prologue): Use
26464 it.
26465 * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
26466 defined.
26467 * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
26468 * configure.in: Add check for .register pseudo-op support in as and
26469 check for offsetable %lo().
26470 * acconfig.h: Add templates for the above checks.
26471 * configure: Regenerate.
26472
26473 1999-08-02 Richard Henderson <rth@cygnus.com>
26474
26475 * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
26476 * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
26477 * sparc/sol2.h (TARGET_DEFAULT): Likewise.
26478
26479 Mon Aug 2 23:46:45 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
26480
26481 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
26482 reg_biv_class.
26483
26484 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
26485
26486 * config/float-sparc.h: New file.
26487 * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
26488 sparc-*-linux-gnu and sparc64-*-linux*.
26489
26490 1999-08-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
26491
26492 * rs6000.c (rs6000_va_list): Type is an array.
26493 (rs6000_va_start): Don't doubly adjust for varargs.
26494 (rs6000_va_arg): Evaluate long long GPR adjustment.
26495
26496 Mon Aug 2 16:15:57 1999 David Edelsohn <edelsohn@gnu.org>
26497
26498 * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
26499 -maix64 and -maix32.
26500 (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
26501 LINK_SPEC): Change appropriately.
26502 * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
26503 (u_short_cint_operand): Likewise.
26504 * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
26505 for 64-bit hosts.
26506 * rs6000/t-aix43 (MULTILIB): Change to -m64.
26507
26508 * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
26509
26510 Mon Aug 2 16:15:57 1999 Geoff Keating <geoffk@cygnus.com>
26511
26512 * rs6000/rs6000.c (num_insns_constant_wide): Correct
26513 for type promotion.
26514 (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
26515 (non_add_cint_operand): Likewise.
26516 (logical_operand): Likewise.
26517 (non_logical_cint_operand): Likewise.
26518 (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
26519 (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
26520 (rs6000_select_rtx_section): Suppress warning.
26521 (small_data_operand): Suppress warning.
26522 (rs6000_got_register): Suppress warning.
26523 * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
26524 type, so `J' is generally the wrong constraint for a SImode value;
26525 use `L' instead.
26526 (andsi3_internal2): Likewise.
26527 (andsi3_internal3): Likewise.
26528 (iorsi3_internal1): Likewise.
26529 (xorsi3_internal1): Likewise.
26530 (movsi): Likewise.
26531 (movsf_softfloat): Likewise.
26532 (scc insns): Likewise.
26533 (movsi+2): Preserve sign bits of SImode constant.
26534 (floatsidf2_internal+1): Sign-extend SImode constant correctly.
26535 (movdf+1): Sign-extend properly.
26536 (movdi_32+1): Sign-extend properly.
26537 (scc insns): Sign-extend properly.
26538
26539 * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
26540 K, L, and T.
26541
26542 1999-08-02 Richard Henderson <rth@cygnus.com>
26543
26544 * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
26545 -mcpu parsing code.
26546 (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
26547 * alpha.md (all fp insns): Likewise.
26548
26549 1999-08-02 Nick Clifton <nickc@cygnus.com>
26550
26551 * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
26552 already defined.
26553
26554 Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com)
26555
26556 * pa.c (legitimize_pic_address): Clarify comments. Do not call the
26557 pic_load_label generator directly.
26558 * pa.md (pic_load_label): Clarify comments. Remove modes on operands.
26559 No longer a named pattern.
26560
26561 Mon Aug 2 09:38:10 1999 Nick Clifton <nickc@cygnus.com>
26562
26563 * explow.c (force_reg): Call force_operand if X does not
26564 satisfy general_operand.
26565
26566 Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com)
26567
26568 * fix-header.c (main): When testing for CONTINUED, use string
26569 equality, not pointer equality.
26570
26571 Mon Aug 2 01:27:24 1999 Dan Nicolaescu <dann@ics.uci.edu>
26572
26573 * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
26574
26575 Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com)
26576
26577 * cse.c (cse_insn): Fix loop which deletes insns after a jump
26578 that has become an unconditional jump.
26579
26580 * m68k.c (output_function_prologue): Fix typo in CPU32 case.
26581 (output_function_epilogue): Similarly.
26582
26583 Sun Aug 1 20:14:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
26584
26585 * tree.h (init_dummy_function_start): Declare.
26586
26587 Sun Aug 1 12:55:31 1999 Bernd Schmidt <bernds@cygnus.co.uk>
26588
26589 * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
26590 last_expr_type, last_expr_value, block_start_count, block_stack,
26591 stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
26592 nesting_depth, goto_fixup_chain): Delete global vars; now allocated
26593 dynamically in stmt elt of struct function for each function.
26594 (struct nesting): Rename function_call_count elt to n_function_calls,
26595 target_temp_slot_level to block_target_temp_slot_level. All users
26596 changed.
26597 (struct stmt_status): New structure definition.
26598 Add many accessor macros for stmt_status elements which previously
26599 were global variables.
26600 (init_stmt_for_function): Allocate stmt elt for current_function.
26601 Reflect that block_start_count was renamed to
26602 current_block_start_count.
26603 (save_stmt_status, restore_stmt_status): Delete functions.
26604 (preserve_subexpressions_p): Don't access loop_stack when outside
26605 a function.
26606 (expand_start_bindings): Reflect that block_start_count was renamed to
26607 current_block_start_count.
26608 (expand_fixup): Likewise.
26609 (expand_decl): Don't access block_stack when outside a function.
26610 (expand_decl_cleanup): Likewise.
26611 (expand_dcc_cleanup): Likewise.
26612 (expand_dhc_cleanup): Likewise.
26613 (expand_anon_union_decl): Likewise.
26614 (set_file_and_line_for_stmt): New function.
26615 (in_control_zone_p): New function.
26616
26617 * function.h (struct function): Add new elt stmt.
26618 Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
26619 case_stack, nesting_stack, nesting_depth, block_start_count,
26620 last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
26621 emit_lineno, goto_fixup_chain.
26622 (save_eh_status, restore_eh_status, save_stmt_status,
26623 restore_stmt_status): Delete declarations.
26624 * function.c (push_function_context_to): Don't call save_stmt_status.
26625 (pop_function_context_to): Don't call restore_stmt_status.
26626 * tree.h (in_control_zone_p): Declare.
26627 * rtl.h (set_file_and_line_for_stmt): Declare.
26628
26629 * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
26630 call set_file_and_line_for_stmt.
26631
26632 Thu Jul 31 12:34:45 1999 Joe Buck <jbuck@synopsys.com>
26633
26634 * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
26635 Also update copyright.
26636
26637 Sat Jul 31 11:10:07 1999 Bernd Schmidt <bernds@cygnus.co.uk>
26638
26639 * c-pragma.c: Don't include "except.h".
26640 * emit-rtl.c: Likewise.
26641 * stor-layout.c: Likewise.
26642 * tree.c: Likewise.
26643 * varasm.c: Likewise.
26644
26645 * flow.c: Include "function.h".
26646 * tree.h (init_dummy_function_start): Declare new function.
26647
26648 * except.h (struct eh_status): New structure.
26649 (struct label_node, struct eh_entry): Declare even if tree.h hasn't
26650 been included.
26651 (eh_return_stub_label, ehstack, catchstack, ehqueue,
26652 catch_clauses, false_label_stack, caught_return_label_stack,
26653 protect_list, current_function_ehc): Add accessor macros for the
26654 corresponding fields in current_function->eh; delete declarations
26655 for all items that used to be declared here.
26656 * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
26657 catch_clauses, false_label_stack, caught_return_label_stack,
26658 protect_list, current_function_ehc): Delete variables.
26659 (init_eh_for_function): Allocate current_function->eh.
26660 (save_eh_status, restore_eh_status): Delete functions.
26661
26662 * function.h (struct function): Add fields next_global and eh.
26663 Delete all exception handling related fields.
26664 * function.c (current_function): New variable.
26665 (all_functions): New variable.
26666 (push_function_context_to): Don't allocate a struct function,
26667 use current_function instead. Call init_dummy_function_start when
26668 outside a function. Clear current_function before returning.
26669 (pop_function_context_from): Restore current_function.
26670 Don't free the restored struct function.
26671 (prepare_function_start): New function.
26672 (init_dummy_function_start): New function.
26673 (init_function_start): Break out some code into prepare_function_start
26674 and call it here.
26675
26676 * stmt.c (save_stmt_status): Don't call save_eh_status.
26677 (restore_stmt_status): Don't call restore_eh_status.
26678
26679 * Makefile.in: Update dependencies.
26680
26681 Sat Jul 31 04:10:01 1999 Jeffrey A Law (law@cygnus.com)
26682
26683 * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
26684 of depending on a magic constant value. Update comments.
26685 (hppa_expand_prologue): Similarly.
26686
26687 * pa.md (reload_indi, reload_outdi): Allow any register for the
26688 original reload register.
26689
26690 Fri Jul 30 19:41:35 1999 Jim Wilson <wilson@cygnus.com>
26691
26692 * cccp.c (print_help): Change marcos to macros.
26693
26694 1999-07-30 Richard Henderson <rth@cygnus.com>
26695
26696 * c-typeck.c (initializer_constant_valid_p): Move ...
26697 * c-common.c (initializer_constant_valid_p): ... here. Use
26698 FOO_TYPE_P instead of tests against TREE_CODE. Allow subtraction
26699 of label addresses.
26700 * c-common.h (initializer_constant_valid_p): Declare.
26701 * c-tree.h (initializer_constant_valid_p): Remove.
26702
26703 Fri Jul 30 16:33:42 1999 Mathias Froehlich <frohlich@na.uni-tuebingen.de>
26704
26705 * config/i386/sol2-c1.asm: Align the stack.
26706 * config/i386/sol2-gc1.asm: Likewise.
26707
26708 1999-07-30 Vladimir Makarov <vmakarov@loony.cygnus.com>
26709
26710 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
26711 -Asparclite for sparc86x.
26712 (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
26713 sparc86x.
26714 (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
26715
26716 Fri Jul 30 14:53:56 1999 Jakub Jelinek <jj@ultra.linux.cz>
26717
26718 * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
26719 the user if using the non-default arch size in BI_ARCH configuration.
26720 * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
26721
26722 * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
26723 Fix patterns so that they actually match.
26724 (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
26725 (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
26726 (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
26727 TARGET_HARD_MUL32.
26728 (mulsidi3): Reflect this in the expand.
26729 (smulsi3_highpart): Only on TARGET_ARCH32.
26730 (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
26731 (const_umulsidi3_sp32): Renamed from const_umulsidi3.
26732 (umulsidi3): Reflect this in the expand.
26733 (umulsi3_highpart): Only on TARGET_ARCH32.
26734 (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
26735 don't require g0 to be zero.
26736 (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
26737 ({,u}divsi3): New expands.
26738 ({,u}divsi3_sp64): New patterns.
26739 (after lshrdi3_v8plus): Four new patterns to help combiner
26740 optimizing nested mixed mode shifts.
26741
26742 * config/sparc/sparc.c (sparc_override_options): Use deprecated
26743 v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
26744 speed things up. Don't use them by default on plain v9 in 64bit
26745 mode, according to what SPAMv9 sais.
26746
26747 * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
26748 top 32 bits of %[og][0-7] in signal handlers.
26749 Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
26750
26751 Fri Jul 30 03:00:41 1999 Jeffrey A Law (law@cygnus.com)
26752
26753 * pa.md (zvdep_imm32): Renamed from zvdep_imm.
26754 (ashlsi3): Corresponding changes.
26755
26756 * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
26757
26758 Thu Jul 29 18:37:13 1999 Jeffrey A Law (law@cygnus.com)
26759
26760 * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
26761
26762 Thu Jul 29 19:01:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
26763
26764 * arm.h (Hint): Delete macro.
26765 Substitute HOST_WIDE_INT for Hint in some prototypes.
26766 * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
26767
26768 Thu Jul 29 09:21:42 1999 Nick Clifton <nickc@cygnus.com>
26769
26770 * builtins.c (expand_builtin_setjmp): Use force_operand to
26771 make sure that the buffer address is in a suitable form to be
26772 passed to force_reg.
26773
26774 Wed Jul 28 12:50:48 1999 Geoff Keating <geoffk@cygnus.com>
26775
26776 * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
26777 them here.
26778
26779 Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com)
26780
26781 * pa.md (indirect_jump): Remove mode from match_operand. Verify
26782 proper mode in the condition string.
26783 (icacheflush, dcacheflush): Remove modes from match_operands.
26784
26785 * pa.c (emit_move_sequence): Always convert scratch_reg to the
26786 proper mode before using it.
26787
26788 * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
26789 pair.
26790
26791 * pa.c (store_reg): Do not call add_high_const generator directly.
26792 (load_reg, set_reg_plus_d): Likewise.
26793 * pa.md (add_high_const): No longer a named pattern.
26794
26795 * pa.c (legitimize_address): Consistently use Pmode rather than
26796 SImode. Do not call gen_pic2_highpart directly anymore.
26797 * pa.md (pic2_highpart): No longer a named pattern.
26798 (pic2_lo_sum): Similarly. Reformat to make more readable.
26799
26800 * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
26801 needed.
26802
26803 * README: Update.
26804
26805 Wed Jul 28 11:28:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
26806
26807 * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
26808
26809 Wed Jul 28 11:23:48 1999 Richard Henderson <rth@cygnus.com>
26810
26811 * pa.c (hppa_builtin_saveregs): Use get_varargs_alias_set
26812 and tag the spill mems.
26813 (hppa_va_start): New.
26814 (hppa_va_arg): New.
26815 * pa.h (EXPAND_BUILTIN_VA_START): New.
26816 (EXPAND_BUILTIN_VA_ARG): New.
26817
26818 Wed Jul 28 11:22:21 1999 Richard Henderson <rth@cygnus.com>
26819
26820 * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
26821 and tag the spill mems.
26822 (mn10300_va_start): New.
26823 (mn10300_va_arg): New.
26824 * mn10300.h (EXPAND_BUILTIN_VA_START): New.
26825 (EXPAND_BUILTIN_VA_ARG): New.
26826
26827 Wed Jul 28 11:20:19 1999 Richard Henderson <rth@cygnus.com>
26828
26829 * mn10200.c (mn10200_va_arg): New.
26830 * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
26831
26832 Wed Jul 28 11:19:06 1999 Richard Henderson <rth@cygnus.com>
26833
26834 * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
26835 rather than play with TREE_INT_CST_LOW.
26836
26837 1999-07-27 Philip Blundell <pb@nexus.co.uk>
26838
26839 * config/arm/telf.h: Include dbxelf.h.
26840 (CPP_PREDEFINES): Only define if not already defined.
26841 (ASM_IDENTIFY_GCC): Likewise.
26842 (SUBTARGET_EXTRA_SECTIONS): Likewise.
26843 (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
26844 * config/arm/thumb.h (LINK_SPEC): Only define if not already
26845 defined.
26846 (DBX_DEBUGGING_INFO): Don't define.
26847 * config/arm/linux-telf.h: New file.
26848 * config/arm/linux-tgas.h: New file.
26849 * config/arm/t-thumb-linux: New file.
26850 * config/arm/uclinux-elf.h: New file.
26851 * config/arm/uclinux-telf.h: New file.
26852 * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
26853 thumb-*-uclinux): New targets.
26854 * configure: Regenerate.
26855
26856 Tue Jul 27 23:20:21 1999 Jeffrey A Law (law@cygnus.com)
26857
26858 * pa.md (post_store, pre_load): New expanders.
26859 (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
26860 (post_ldwm, pre_stwm): Make these unnamed patterns since we never
26861 need to directly generate RTL for them.
26862 * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
26863 changes.
26864
26865 Tue Jul 27 16:05:52 1999 David Edelsohn <edelsohn@gnu.org>
26866
26867 * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
26868 * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
26869 (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
26870 (secndary_reload_class): Make TARGET_ELF conditional compile.
26871 (print_operand_address): Similar.
26872 (output_toc): Print all values as hex.
26873 (get_issue_rate): Rearrange and add RS64A and PPC630.
26874 * rs6000.h (processor_type): Add RS64A and PPC630.
26875 (PROCESSOR_POWERPC64): New.
26876 (PROMOTE_MODE): Use word_mode.
26877 (RTX_COSTS): Add RS64A and PPC630.
26878 * rs6000.md (scheduling information): Add lmul and ldiv
26879 representing 64-bit integer multiply and divide. Add rs64a and
26880 PPC630 information.
26881 (ashldi3): Add support for "rldic" instruction.
26882 * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
26883
26884 Tue Jul 27 15:31:53 1999 Vladimir Makarov <vmakarov@toad.to.cygnus.com>
26885
26886 * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
26887 instead of V8 for sparclite86x in cpu_table.
26888
26889 Tue Jul 27 17:49:42 1999 Bernd Schmidt <bernds@cygnus.co.uk>
26890
26891 * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
26892 output_file_directive.
26893
26894 Tue Jul 27 03:15:33 1999 Jason Merrill <jason@yorick.cygnus.com>
26895
26896 * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
26897 tree for op1, not the rtl.
26898
26899 Tue Jul 27 00:18:34 1999 Richard Henderson <rth@cygnus.com>
26900
26901 * m88k.c (m88k_builtin_saveregs): Break out the constructor code
26902 to m88k_va_start, leaving only the register spill.
26903 (m88k_build_va_list): New.
26904 (m88k_va_start): New.
26905 (m88k_va_arg): New.
26906 * m88k.h (BUILD_VA_LIST_TYPE): New.
26907 (EXPAND_BUILTIN_VA_START): New.
26908 (EXPAND_BUILTIN_VA_ARG): New.
26909
26910 Mon Jul 26 19:07:11 1999 Geoff Keating <geoffk@cygnus.com>
26911
26912 * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
26913 Rename from expand_builtin_saveregs.
26914 * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
26915
26916 Mon Jul 26 22:52:47 1999 Richard Henderson <rth@cygnus.com>
26917
26918 * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
26919 for the register spill block.
26920 (i960_build_va_list): New.
26921 (i960_va_start): New.
26922 (i960_va_arg): New.
26923 * i960.h (BUILD_VA_LIST_TYPE): New.
26924 (EXPAND_BUILTIN_VA_START): New.
26925 (EXPAND_BUILTIN_VA_ARG): New.
26926 * i960.md (store_multiple): Use change_address on individul mems.
26927
26928 Mon Jul 26 22:43:12 1999 Richard Henderson <rth@cygnus.com>
26929
26930 * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
26931 an ARRAY_TYPE.
26932 (std_expand_builtin_va_start): Back out one word if !stdarg_p.
26933 (expand_builtin_va_end): Evaluate arg for side effects.
26934 * c-common.c (c_common_nodes_and_builtins): Construct a
26935 va_list_arg_type_node to handle array decomposition to pointer.
26936
26937 Mon Jul 26 18:51:34 1999 Richard Henderson <rth@cygnus.com>
26938
26939 * except.c (st_dynamic_cleanup): Use force_operand on the
26940 buffer's address.
26941
26942 Mon Jul 26 16:43:26 1999 Richard Henderson <rth@cygnus.com>
26943
26944 * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
26945 * c4x.c (c4x_va_arg): New.
26946
26947 Mon Jul 26 12:30:09 1999 Jason Merrill <jason@yorick.cygnus.com>
26948
26949 * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
26950 has manual_pop set.
26951
26952 1999-07-26 Nathan Sidwell <nathan@acm.org>
26953
26954 * eh-common.h (__eh_matcher): Prototype correctly.
26955
26956 Mon Jul 26 17:24:51 1999 Philip Blundell <pb@nexus.co.uk>
26957
26958 * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
26959 (TARGET_SINGLE_PIC_BASE): Likewise.
26960 (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
26961 definitions.
26962 (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
26963 (TARGET_SWITCHES): Add -m{no-}single-pic-base.
26964 (TARGET_OPTIONS): Add -mpic-register=N.
26965 (OUTPUT_INT_ADDR_CONST): New macro.
26966 (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
26967 LEGITIMATE_PIC_OPERAND_P): Likewise.
26968 (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
26969 (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
26970 output_addr_const directly.
26971 (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
26972 ARM port.
26973 (thumb_pic_register, thumb_pic_register_string): Declare.
26974
26975 * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
26976 from arm.c.
26977 (label_mentioned_p): New function: Imported from arm.c.
26978 (legitimize_pic_address): New function: Imported from arm.c.
26979 (is_pic):New function: Imported from arm.c.
26980 (thumb_finalize_pic):New function: Imported from arm.c.
26981 (add_constant): Cope with PIC constants.
26982 (fixit): Cope with PIC constants.
26983 (output_return): Do not treat the PIC register as live if
26984 TARGET_SINGLE_PIC_BASE is true.
26985 (thumb_function_prologue): Do not treat the PIC register as live if
26986 TARGET_SINGLE_PIC_BASE is true.
26987 (thumb_expand_prologue): Do not treat the PIC register as live if
26988 TARGET_SINGLE_PIC_BASE is true.
26989 (thumb_unexpand_epilogue): Do not treat the PIC register as live if
26990 TARGET_SINGLE_PIC_BASE is true.
26991 (thumb_print_operand): Accept '|'.
26992 (thumb_override_options): Process PIC options.
26993
26994 * config/arm/thumb.md (movsi): Support PIC.
26995 (call_insn): Change "i" constraint to "X".
26996 (call_value_insn): Likewise.
26997 (consttable_4, consttable_8, consttable_end): Set and clear
26998 "making_const_table" as appropriate.
26999 (pic_load_addr, pic_add_dot_plus_four): New insns.
27000
27001 * invoke.texi (Thumb Options): Fix spelling. Document new
27002 options -msingle-pic-base and -mpic-register=.
27003
27004 1999-07-26 Andrew Haley <aph@cygnus.com>
27005
27006 * config/m32r/initfini.c (__init): Use a full word immediate for
27007 __fini: this allows it to be placed in any memory region.
27008
27009 * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
27010 -mmodel=medium. This is OK for all memory models.
27011
27012 Mon Jul 26 11:58:46 1999 Nick Clifton <nickc@cygnus.com>
27013
27014 * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
27015 * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
27016
27017 Mon Jul 26 10:23:36 1999 Nick Clifton <nickc@cygnus.com>
27018
27019 * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
27020 defined.
27021
27022 * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
27023
27024 Sun Jul 25 23:51:59 1999 Richard Henderson <rth@cygnus.com>
27025
27026 * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
27027 (BUILD_VA_LIST_TYPE): New.
27028 (EXPAND_BUILTIN_VA_START): New.
27029 (EXPAND_BUILTIN_VA_ARG): New.
27030 * i860.c (output_delayed_branch): Disable.
27031 (output_delay_insn): Likewise.
27032 (i860_saveregs): New.
27033 (i860_build_va_list): New.
27034 (i860_va_start): New.
27035 (i860_va_arg): New.
27036 * i860.md: Disable all peepholes using output_delayed_branch.
27037 * i860/sysv4.h (I860_SVR4_VA_LIST): New.
27038
27039 Sun Jul 25 23:44:13 1999 Richard Henderson <rth@cygnus.com>
27040
27041 * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
27042 (BUILD_VA_LIST_TYPE): New.
27043 (EXPAND_BUILTIN_VA_START): New.
27044 (EXPAND_BUILTIN_VA_ARG): New.
27045 * clipper.c (clipper_builtin_saveregs): Only dump registers.
27046 Return the address of the save area.
27047 (clipper_build_va_list): New.
27048 (clipper_va_start): New.
27049 (clipper_va_arg): New.
27050
27051 Sun Jul 25 22:56:47 1999 Richard Henderson <rth@cygnus.com>
27052
27053 * arc.h (EXPAND_BUILTIN_VA_START): New.
27054 (EXPAND_BUILTIN_VA_ARG): New.
27055 * arc.c (arc_setup_incoming_varargs): Set alias set of
27056 varargs save area.
27057 (arc_va_start): New.
27058 (arc_va_arg): New.
27059
27060 Sun Jul 25 22:45:55 1999 Richard Henderson <rth@cygnus.com>
27061
27062 * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
27063 (BUILD_VA_LIST_TYPE): New.
27064 (EXPAND_BUILTIN_VA_START): New.
27065 (EXPAND_BUILTIN_VA_ARG): New.
27066 * alpha.c (alpha_builtin_saveregs): Delete.
27067 (alpha_build_va_list): New.
27068 (alpha_va_start): New.
27069 (alpha_va_arg): New.
27070
27071 Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com)
27072
27073 * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
27074 column zero.
27075 (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
27076 (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
27077
27078 * gcc.texi: More changes related to list conversion.
27079 * invoke.texi: Likewise.
27080
27081 Sun Jul 25 18:15:39 1999 Richard Henderson <rth@cygnus.com>
27082
27083 * builtins.c (expand_builtin_saveregs): Remove static, remove exp
27084 and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
27085 (expand_builtin_next_arg): Accept ARGLIST not EXP.
27086 (stabilize_va_list): New function.
27087 (std_expand_builtin_va_start): New function.
27088 (expand_builtin_va_start): New function.
27089 (get_varargs_alias_set): New function.
27090 (std_expand_builtin_va_arg): New function.
27091 (expand_builtin_va_arg): New function.
27092 (expand_builtin_va_end): New function.
27093 (expand_builtin_va_copy): New function.
27094 (expand_builtin): Call them.
27095 * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
27096 __builtin_{varargs_start,stdarg_start,end,copy}.
27097 (build_va_arg): New function.
27098 * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
27099 (build_va_arg): Declare.
27100 * c-decl.c (ptr_type_node, va_list_type_node): New.
27101 * c-parse.gperf (__builtin_va_arg): New.
27102 * c-parse.in (VA_ARG): New token.
27103 (unary_expr): Recognize it.
27104 * expr.c (expand_expr): Expand VA_ARG_EXPR.
27105 * expr.h (std_expand_builtin_va_start): Declare.
27106 (std_expand_builtin_va_arg): Declare.
27107 (expand_builtin_va_arg): Declare.
27108 (get_varargs_alias_set): Declare.
27109 * tree.def (VA_ARG_EXPR): New.
27110 * tree.h (BUILT_IN_VARARGS_START): New.
27111 (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
27112 (ptr_type_node, va_list_type_node): Declare.
27113 * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
27114 * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
27115 * m88k.h, m88k.c: Likewise.
27116 * mn10300.h, mn10300.c: Likewise.
27117 * pa.h, pa.c: Likewise.
27118 * rs6000.h, rs6000.c: Likewise.
27119 * sh.h, sh.c: Likewise.
27120 * sparc.h, sparc.c: Likewise.
27121
27122 * emit-rtl.c (operand_subword): Copy alias set.
27123 (change_address): Likewise.
27124
27125 Sun Jul 25 15:04:37 1999 Jeffrey A Law (law@cygnus.com)
27126
27127 * pa.c (compute_frame_size): Scan all the used callee saved registers,
27128 not just the first one.
27129
27130 Fri Jul 23 14:09:58 1999 Philip Blundell <pb@nexus.co.uk>
27131
27132 * config/arm/arm.h (TARGET_SWITCHES): Add
27133 -m{no-}single-pic-base. Correct help string for -mshort-load-words.
27134 (TARGET_OPTIONS): Add -mpic-register=.
27135 (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
27136 (arm_pic_register_string): Declare.
27137 (NEED_PLT_GOT): Delete, replace with ...
27138 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. New macros.
27139 (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
27140 (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
27141 * config/arm/arm.c (arm_override_options): Add new option
27142 -mpic-register=N.
27143 (arm_pic_register_string): New variable.
27144 (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
27145 (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
27146 register as never live. Use NEED_PLT_RELOC not NEED_PLT_GOT.
27147 (output_return_instruction): Likewise.
27148 * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
27149 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. Define to flag_pic.
27150 * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
27151
27152 * invoke.texi (ARM Options): Fix spelling. Remove duplicate
27153 mention of -msched-prolog. Document new options -msingle-pic-base
27154 and -mpic-register=.
27155
27156 Thu Jul 22 18:23:56 1999 Richard Henderson <rth@cygnus.com>
27157
27158 * haifa-sched.c (reemit_notes): Tidy.
27159 * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
27160 haifa's routine.
27161
27162 Thu Jul 22 18:21:04 1999 Richard Henderson <rth@cygnus.com>
27163
27164 * explow.c (trunc_int_for_mode): New function.
27165 (plus_constant_wide): Use it.
27166 * combine.c (simplify_and_const_int): Likewise.
27167 (merge_outer_ops): Likewise.
27168 (simplify_shift_const): Likewise.
27169 * cse.c (simplify_unary_operation): Likewise.
27170 (simplify_binary_operation): Likewise.
27171 * emit-rtl.c (operand_subword): Likewise.
27172 * rtl.h: Declare it.
27173
27174 Thu Jul 22 14:34:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
27175
27176 * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
27177 (use NUM_REGS instead of NUM_INTS).
27178
27179 Thu Jul 22 11:25:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
27180
27181 * builtins.c: New file.
27182 * expr.c (saveregs_value, apply_args_value): Delete definition,
27183 moved into builtins.c.
27184 (string_constant): No longer static.
27185 (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
27186 apply_args_size, apply_result_size, result_vector,
27187 expand_builtin_apply_args, expand_builtin_apply,
27188 expand_builtin_return): Delete functions, moved into builtins.c.
27189 (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
27190 * expr.h (saveregs_value, apply_args_value): Declare variables.
27191 (expand_builtin, string_constant): Declare functions.
27192 * Makefile.in: Update to build builtin.o.
27193
27194 Wed Jul 21 00:46:58 1999 Mark P. Mitchell <mark@codesourcery.com>
27195
27196 * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
27197 * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
27198 * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
27199 start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
27200 false.
27201 * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
27202 Define to zero.
27203
27204 1999-07-21 Michael Meissner <meissner@cygnus.com>
27205
27206 * print-rtl.c (print_rtx): Print the names of the virtual
27207 registers.
27208
27209 Wed Jul 21 16:00:32 1999 Nick Clifton <nickc@cygnus.com>
27210
27211 * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
27212 introduced in previous delta.
27213
27214 Wed Jul 21 14:30:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
27215
27216 * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
27217 to avoid name clash.
27218
27219 Wed Jul 21 08:39:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
27220
27221 * c-lex.c (yylex) : Correct the test for overflow when lexing
27222 integer literals.
27223
27224 Tue Jul 20 18:02:42 1999 Richard Henderson <rth@cygnus.com>
27225
27226 * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
27227 (adjust_priority): Always call ADJUST_PRIORITY.
27228 (schedule_insn): Only put insns into the ready at cost 0.
27229 (schedule_block): Remove redundant initial sort. Give clock_var
27230 and can_issue_more to MD_SCHED_REORDER. Requeue if hazard cost
27231 is not 0.
27232 * tm.texi (MD_SCHED_REORDER): Update docs.
27233
27234 * sparc.h (MD_SCHED_REORDER): Update. Set CAN_ISSUE_MORE.
27235 * sparc.c (ultra_reorder_called_this_block): Delete.
27236 (ultrasparc_sched_init): Don't set it.
27237 (ultrasparc_sched_reorder): Don't check it.
27238
27239 Tue Jul 20 17:07:54 1999 Richard Henderson <rth@cygnus.com>
27240
27241 * rs6000.h (struct rs6000_args): Add sysv_gregno.
27242 * rs6000.c (init_cumulative_args): Init sysv_gregno.
27243 (function_arg_boundary): Align DFmode.
27244 (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
27245 to get fp reg and stack overflow correct.
27246 (function_arg): Likewise.
27247 (function_arg_pass_by_reference): True for TFmode for ABI_V4.
27248 (setup_incoming_varargs): Restructure for ABI_V4; use
27249 function_arg_advance to skip final named argument.
27250 (expand_builtin_saveregs): Properly unskip the last integer arg
27251 when doing varargs. Adjust overflow location calculation.
27252
27253 * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
27254 explicitly unsigned.
27255 (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
27256 (__VA_GP_REGSAVE): Similarly.
27257 (__va_longlong_p): Delete.
27258 (__va_arg_type_violation): New declaration.
27259 (va_arg): Restructure. Flag promotion errors. Align double.
27260 TFmode passed by reference.
27261
27262 * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
27263 in the HOST_BITS_PER_WIDE_INT > 32 case.
27264
27265 Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson <hp@bitrange.com>
27266
27267 * dwarf2out.c (output_abbrev_section): Terminate with a zero.
27268
27269 Tue Jul 20 12:12:27 1999 Jason Merrill <jason@yorick.cygnus.com>
27270
27271 * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
27272 * toplev.c (documented_lang_options): Add -fpreprocessed.
27273 * cpplib.h (struct cpp_buffer): Add preprocessed.
27274 * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
27275 (cpp_start_read): Don't expand macros or emit an initial #line
27276 directive if -fpreprocessed.
27277
27278 Tue Jul 20 12:12:09 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
27279
27280 * cpplib.h (struct cpp_buffer): Added manual_pop for
27281 better C++ tokenization.
27282 * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
27283 Also, support C++ tokenization for ->*, .*, <?, and >? operators.
27284 * c-common.c (cpp_token): Make non-static.
27285
27286 Tue Jul 20 11:24:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
27287
27288 * c-common.h: New file.
27289 * c-common.c (permanent_obstack): Delete unused declaration.
27290 (c_global_trees): New array.
27291 (c_common_nodes_and_builtins): New function; split off common code
27292 from init_decl_processing in both c-decl.c and cp/decl.c.
27293 * c-tree.h: Delete lots of declarations of tree nodes; replaced by
27294 c_global_trees and accessor macros defined in c-common.h.
27295 Include c-common.h.
27296 * c-decl.c: Delete definitions for tree nodes that were replaced by
27297 c_global_trees.
27298 (init_decl_processing): Build void_list_node.
27299 Call c_common_nodes_and_builtins; delete code to generate the common
27300 builtins here.
27301 * objc/objc-act.c (build_module_descriptor): Rename variable
27302 void_list_node to avoid clash with c-common.h.
27303
27304 * Makefile.in: Update dependencies.
27305 * objc/Make-lang.in: Likewise.
27306
27307 Mon Jul 19 14:22:18 1999 Mark P. Mitchell <mark@codesourcery.com>
27308
27309 * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
27310 (UNIQUE_SECTION_P): Likewise.
27311 (UNIQUE_SECTION): Likewise.
27312
27313 1999-07-19 Linas Vepstas <linas@linas.org>
27314
27315 * config/i370/README: New file.
27316 * config/i370/linux.h: New file.
27317 * config/i370/mvs.h: New file.
27318 * config/i370/oe.h: New file.
27319 * config/i370/t-linux: New file.
27320 * config/i370/t-mvs: New file.
27321 * config/i370/t-oe: New file.
27322 * config/i370/x-oe: New file.
27323 * config/i370/xm-linux.h: New file.
27324 * config/i370/xm-mvs.h: New file.
27325 * config/i370/xm-oe.h: New file.
27326
27327 * i370.c (label_node_t): Add first_ref_page, label_addr,
27328 label_first_ref, label_last_ref members.
27329 (mvs_need_base_reload): Renamed from mvs_label_emitted.
27330 (MAX_MVS_LABEL_SIZE): Define.
27331 (MAX_LONG_LABEL_SIZE): Define.
27332 (alias_node_t, alias_anchor, alias_number): New.
27333 (mvs_function_table): Reorder for EBCDIC.
27334 (ascebc, ebcasc): Unconditionally define.
27335 (i370_branch_dest, i370_branch_length): New functions.
27336 (i370_short_branch, i370_label_scan): New functions.
27337 (mvs_get_label): Renamed from mvs_add_label. Search for
27338 an existing label before creating a new one.
27339 (mvs_add_label): New function.
27340 (mvs_get_label_page): New function.
27341 (mvs_free_label_list): Renamed from mvs_free_label. Iterate
27342 over the entire list.
27343 (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
27344 (mvs_check_page) [TARGET_ELF_ABI]: New function.
27345 (mvs_add_alias, mvs_need_alias): New functions.
27346 (mvs_get_alias, mvs_check_alias): New functions.
27347 (handle_pragma): New function.
27348 (mvs_function_check): New function.
27349 (unsigned_jump_follows_p): Search harder.
27350 (i370_function_prolog) [TARGET_HLASM]: Handle LE370. Scan labels.
27351 (i370_function_prolog) [TARGET_ELF_ABI]: New function.
27352 * i370.h (TARGET_VERSION): Delete.
27353 (CPP_SPEC, CPP_PREDEFINES): Delete.
27354 (mvs_label_emitted): Delete.
27355 (TARGET_EBCDIC): Delete.
27356 (MAP_CHARACTER): Define only if TARGET_EBCDIC.
27357 (HANDLE_PRAGMA): Define.
27358 (HARD_REGNO_NREGS): Handle complex modes.
27359 (HARD_REGNO_MODE_OK): Likewise.
27360 (CLASS_MAX_NREGS): Likewise.
27361 (RET_REG): Likewise.
27362 (EXTRA_CONSTRAINT): Define.
27363 (RETURN_IN_MEMORY): True for DImode.
27364 (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
27365 (FUNCTION_PROFILER): Delete.
27366 (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
27367 (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
27368 (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
27369 (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
27370 (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
27371 (ASM_FILE_START): Add "RMODE ANY".
27372 (ASM_OUTPUT_EXTERNAL): Check for aliases.
27373 (ASM_GLOBALIZE_LABEL): Likewise.
27374 (ASM_OUTPUT_LABELREF): Likewise.
27375 (ASM_OUTPUT_COMMON): Likewise.
27376 (PRINT_OPERAND): Handle 'K', 'W', default.
27377 (PRINT_OPERAND_ADDRESS): New.
27378 (Lots of defines): Add support for TARGET_ELF_ABI.
27379 * i370.md (attr length): New. Define for all patterns.
27380 (*): Lots of tweeks to assembly output and constraints.
27381
27382 Mon Jul 19 15:09:29 1999 David Edelsohn <edelsohn@gnu.org>
27383
27384 * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
27385 Disable patterns performing SImode comparisons with SImode values
27386 if TARGET_POWERPC64 and instruction does not sign-extend or does
27387 not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
27388 differ for signed quantities.
27389 (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
27390 (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
27391 (decrement_and_branch_on_count): Add 64-bit variant.
27392
27393 Mon Jul 19 09:36:27 1999 Bernd Schmidt <bernds@cygnus.co.uk>
27394
27395 * final.c (output_asm_insn): When searching for the matching string
27396 for a given dialect, don't run past the end of the list of
27397 alternatives if there are fewer alternatives in the template than
27398 dialects.
27399
27400 1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br>
27401
27402 * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
27403 Removed paragraph about compression of files and size limitation,
27404 duplicated in the FAQ. Use gcc-patches for posting patches.
27405 * gcc.c (main): Updated URL with bug reporting instructions to
27406 gcc.gnu.org. Removed e-mail address.
27407 * system.h (abort): Likewise.
27408
27409 1999-07-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27410
27411 * Makefile.in (stmp-multilib-sub): Make the files extracted
27412 from $(LIBGCC1) writable.
27413
27414 Sat Jul 17 14:25:46 1999 Nick Clifton <nickc@cygnus.com>
27415
27416 * config/arm/aout.h: Reformat for improved readability.
27417
27418 * config/arm/arm.h: Reformat for improved readability.
27419 Replace uses of fprintf with asm_fprintf where appropriate.
27420 (ARM_DECLARE_FUNCTION_NAME): New macro: Perform any generic ARM
27421 function declaration assembler actions.
27422 (NUM_INTS): New macro: Convert from bytes to words.
27423 (NUM_REGS): New macro: Compute number of registers required to
27424 hold a quanitity of tyep MODE.
27425 (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
27426 types.
27427 (NUM_ARG_REGS): New macro: The number of argument registers
27428 available.
27429 (ARG_REGISTER): New macro: Compute the register number of the Nth
27430 argument register.
27431 (LAST_ARG_REGNUM): New macro: The number of the last argument
27432 register.
27433 (SP_REGNUM): New macro: Register number of the stack pointer.
27434 (FP_REGNUM): New macro: Register number of the frame pointer.
27435 (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
27436 FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
27437 CUMULATIVE_ARGS so that it counts registers not bytes.
27438
27439 * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
27440 TARGET_INTERWORK.
27441 Replace uses of fprintf with asm_fprintf where appropriate.
27442 (output_ascii_pseudo_op): Replace with version from thumb.c
27443
27444 * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
27445
27446 * config/arm/elf.h (CPP_PREDEFINES): Replace with
27447 SUBTARGET_CPP_SPEC.
27448 (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
27449 (ASM_FILE_START): Emit ASM_APP_OFF.
27450
27451 Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com)
27452
27453 * pa.c (compute_frame_size): Round frame according to
27454 STACK_BOUNDARY rather than a hardwired value.
27455
27456 * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
27457
27458 * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
27459 of "1".
27460 * configure: Rebuilt.
27461
27462 * configure.in (hppa*-*-linux*): New configuration.
27463 * configure: Rebuilt.
27464 * pa.h (MAX_OFILE_ALIGNMENT): Delete.
27465 * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
27466 * pa/pa-linux.h: New file.
27467 * pa/t-linux: New file.
27468 * pa/xm-linux.h: New file.
27469
27470 * pa.c (hppa_legitimize_address): Change references from SImode to
27471 either Pmode or word_mode as appropriate.
27472 (emit_move_sequence, store_reg, load_reg): Likewise.
27473 (set_reg_plus_d, hppa_expand_prologue): Likewise.
27474 (output_mul_insn): Likewise.
27475 * pa.h (PROMOTE_MODE): Likewise.
27476 (INITIALZE_TRAMPOLINE): Likewise.
27477 (Pmode): Define to word_mode.
27478
27479 * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
27480 value of 4. Allocate 8 bytes for each FP register save.
27481 (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
27482 value of 4.
27483 (hppa_expand_prologue): Likewise.
27484 * pa.h (PROMOTE_MODE): Likewise.
27485 (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
27486 (FUNCTION_ARG_BOUNDARY): Likewise.
27487
27488 * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
27489
27490 * pa.c (out_of_line_prologue_epilogue): Delete.
27491 (override_options): Remove -mspace related code.
27492 (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
27493 (compute_frame_size): Only allocate space for register that
27494 actually need to be saved.
27495 * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
27496 (TARGET_SWITCHES): Remove -mspace, -mno-space
27497 * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
27498 * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. Remove -mspace multilib.
27499 * pa/ee.asm, pa/ee_fp.asm: Delete.
27500
27501 * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
27502
27503 * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
27504 directive in column zero.
27505
27506 Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com)
27507
27508 * m68k.c (output_function_prologue): Fix computation of save mask
27509 when generating PIC code.
27510
27511 Thu Jul 15 15:40:09 1999 Jim Wilson <wilson@cygnus.com>
27512
27513 * tree.c (build_type_attribute_variant): Move current_obstack restore
27514 after build_qualified_type call.
27515
27516 1999-07-15 Mark Mitchell <mark@codesourcery.com>
27517
27518 * configure.in: Use t-iris6, even with GNU LD.
27519 * config/mips/iris6gld.h: Fix typo in linker spec.
27520 * config/mips/t-iris6gld: Remove.
27521
27522 Thu Jul 15 15:15:43 1999 David Edelsohn <edelsohn@gnu.org>
27523
27524 * rs6000.md (insv, extzv): Remove SImode dependence in named
27525 patterns. Explicitly generate DImode RTL if PowerPC64 and
27526 operand is DImode.
27527 (insvdi): Reverse start and size in instruction template.
27528
27529 1999-07-12 Joseph S. Myers <jsm28@cam.ac.uk>
27530
27531 * invoke.texi: Typo fixes.
27532
27533 Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com)
27534
27535 * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
27536 handle at this time instead of silently generating incorrect code.
27537 (gen_imagpart): Likewise.
27538
27539 * reload.c (find_reloads): Emit a USE for a pseudo register without
27540 a hard register if we could not create an optional reload for the
27541 pseudo.
27542
27543 Wed Jul 14 23:45:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
27544
27545 * c-typeck.c (output_init_element, process_init_element):
27546 When advancing constructor_unfilled_fields for a RECORD_TYPE,
27547 check for nameless bit fields.
27548
27549 Wed Jul 14 01:57:39 1999 Richard Henderson <rth@cygnus.com>
27550
27551 * regclass.c (scan_one_insn): Notice subregs that change the
27552 size of their operand.
27553 (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
27554
27555 Wed Jul 14 01:41:42 1999 Jeffrey A Law (law@cygnus.com)
27556
27557 * configure.in (alpha*-*-*): Include alpha/t-ieee.
27558 * configure: Rebuilt.
27559 * alpha/t-ieee: New file.
27560
27561 Tue Jul 13 10:45:58 1999 Jeffrey A Law (law@cygnus.com)
27562
27563 * rs6000.c (find_addr_reg): Do not select r0 as an address
27564 register.
27565
27566 Tue Jul 13 00:46:18 1999 Philippe De Muyter <phdm@macqel.be>
27567
27568 * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
27569
27570 Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com)
27571
27572 * rs6000.md (movsf): Do not force easy FP constants into memory.
27573
27574 * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
27575 immed_double_const to ensure they are properly truncated then
27576 sign extended.
27577
27578 Mon Jul 12 10:40:01 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
27579
27580 * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
27581 always unless NO_DEBUG is used. Compile this code
27582 unconditionally.
27583 (replace_symbols_in_block): Compile it unconditionally.
27584
27585 Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com)
27586
27587 * configure.in (i?86-*-elf*): New target.
27588 * configure: Rebuilt.
27589 * i386/i386elf.h, i386/t-i386elf: New files.
27590
27591 Fri Jul 9 22:39:44 1999 Jason Merrill <jason@yorick.cygnus.com>
27592
27593 * toplev.c (main): Don't complain about saying -gdwarf.
27594 (rest_of_compilation): Remove redundant code.
27595
27596 Fri Jul 9 19:08:55 1999 Jim Wilson <wilson@cygnus.com>
27597
27598 * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
27599
27600 Fri Jul 9 18:54:18 1999 Felix Lee <flee@cygnus.com>
27601
27602 * config/i960/i960.c (ret_label): Change asm label from "LR:" to
27603 "Li960R:", to avoid name clash.
27604
27605 Fri Jul 9 10:48:28 1999 Bernd Schmidt <bernds@cygnus.co.uk>
27606
27607 * loop.c (check_dbra_loop): When reversing a loop, delete all
27608 REG_EQUAL notes referencing the reversed biv except those which are
27609 for a giv based on it.
27610
27611 Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com)
27612
27613 * version.c: Drop "gcc-" prefix from version #.
27614
27615 Thu Jul 8 18:06:30 1999 Jason Merrill <jason@yorick.cygnus.com>
27616
27617 * dwarf2out.c (dwarf2out_line): Emit a line number comment after
27618 the label if we're being verbose.
27619
27620 Thu Jul 8 14:18:46 1999 Richard Henderson <rth@cygnus.com>
27621
27622 * m68k.c (output_function_prologue): Add pic register to mask
27623 if live and flag_pic.
27624 (output_function_epilogue): Likewise.
27625
27626 Thu Jul 8 12:55:12 1999 Jeffrey A Law (law@cygnus.com)
27627
27628 * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
27629 directives in column zero.
27630
27631 * pa/elf.h (ASM_FILE_START): Define.
27632 * pa/som.h (ASM_FILE_START): Include .level directives.
27633 * pa/hpux10.h (ASM_FILE_START): Delete.
27634 * pa/hpux11.h (ASM_FILE_START): Delete.
27635
27636 * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
27637
27638 Thu Jul 8 18:03:19 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
27639
27640 * reload1.c (choose_reload_regs): Never call remove_adress_replacements
27641 when reload_out equals reload_in.
27642
27643 Thu Jul 8 16:50:14 1999 Nick Clifton <nickc@cygnus.com>
27644
27645 * invoke.texi (Spec Files): New node: Describe the contents of
27646 spec files.
27647
27648 Thu Jul 8 10:28:25 1999 Craig Burley <craig@jcb-sc.com>
27649
27650 * invoke.texi (DEC Alpha Options): Put @end table at
27651 beginning of line, to avoid confusing texi2html.
27652
27653 Thu Jul 8 09:22:06 1999 Nick Clifton <nickc@cygnus.com>
27654
27655 * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
27656 introduced in previous delta.
27657
27658 Wed Jul 7 02:00:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
27659
27660 * reload1.c (gen_reload): When synthesizing a 3 operand add
27661 sequence, improve test for when to reload OP1 into the reload
27662 register instead of OP0.
27663
27664 Wed Jul 7 01:38:03 1999 Jim Wilson <wilson@cygnus.com>
27665
27666 * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
27667
27668 1999-07-07 Manfred Hollstein <mhollstein@cygnus.com>
27669
27670 * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
27671 string literal.
27672
27673 Wed Jul 7 01:16:43 1999 Richard Henderson <rth@cygnus.com>
27674
27675 * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
27676 (va_dcl): Use __builtin_va_alist_t.
27677
27678 Wed Jul 7 01:14:42 1999 Jason Merrill <jason@yorick.cygnus.com>
27679
27680 * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
27681 on the permanent_obstack.
27682 * dwarfout.c (output_type): Likewise.
27683
27684 Tue Jul 6 15:25:32 1999 Gavin Romig-Koch <gavin@cygnus.com>
27685
27686 * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
27687 Merged from c-typeck.c and cp/typeck.c.
27688 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
27689 Merged into c-common.
27690
27691 Tue Jul 6 13:06:01 1999 Dave Brolley <brolley@cygnus.com>
27692
27693 * c-lex.c (errorcount): Declare it.
27694 (finish_parse): Update errorcount when using CPPLIB.
27695
27696 1999-07-06 Bruce Korb <ddsinc09@ix.netcom.com>
27697
27698 * fixinc/inclhack.def(end_else_label): Double the backslash so
27699 sed gets a chance to see it.
27700 * fixinc/inclhack.sh: regen
27701 * fixinc/fixincl.x: regen
27702
27703 Fri Jul 2 18:49:51 1999 Nick Clifton <nickc@cygnus.com>
27704
27705 Add framework to support armv5 architecture when it becomes
27706 available:
27707
27708 * config/arm/arm.c (FL_ARCH5): New processor capability flag.
27709 (arm_arch5): New variable.
27710 (all_architectures): Add armv5 line.
27711 * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
27712 -march=armv5 is specified on the command line.
27713 (arm_arch5): Export this variable.
27714 * invoke.texi: Document new string accepted by -march= switch for
27715 ARM ports.
27716
27717 * config/arm/arm.h: Replace use of constant 12 as a register
27718 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
27719 * config/arm/arm.c: Replace use of constant 12 as a register
27720 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
27721
27722 * config/arm/elf.h: Tidy up.
27723 * config/arm/coff.h: Tidy up.
27724
27725 Thu Jul 1 19:08:13 1999 Mark P. Mitchell <mark@codesourcery.com>
27726
27727 * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
27728 * gcc/config/mips/t-iris6gld: New file.
27729 * gcc/config/mips/iris6gld.h: Likewise.
27730
27731 Fri Jul 2 13:23:39 1999 Gavin Romig-Koch <gavin@cygnus.com>
27732
27733 * c-decl.c (widest_integer_literal_type_node,
27734 widest_unsigned_literal_type) : New.
27735 (init_decl_processing): Handle/use the two new types.
27736 * c-common.c (type_for_size,type_for_mode) : Same.
27737 * c-lex.c (yylex) : Same.
27738 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
27739 Same.
27740 * c-tree.h (widest_integer_literal_type_node,
27741 widest_unsigned_literal_type) : New.
27742
27743 Fri Jul 2 03:05:44 1999 Jeffrey A Law (law@cygnus.com)
27744
27745 * dwarfout.c (field_byte_offset): Correctly compute the object's
27746 byte offset for the first bit of a field which crosses an alignment
27747 boundary on a !BYTES_BIG_ENDIAN target.
27748
27749 Fri Jul 2 01:36:36 1999 Robert Lipe <robertlipe@usa.net>
27750
27751 * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
27752 ntohs.
27753
27754 Fri Jul 2 00:46:47 1999 Richard Henderson <rth@cygnus.com>
27755 Jeff Law <law@cygnus.com>
27756
27757 * ginclude/varargs.h (va_dcl): Use word_mode for type of
27758 __builtin_va_list.
27759
27760 * except.c: Include intl.h.
27761 (expand_eh_return): Set current_function_cannot_inline.
27762 (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
27763 * function.h (struct function): Add eh_return_stub_label.
27764 * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
27765 * Makefile.in (except.o): Depend on intl.h.
27766
27767 Fri Jul 2 00:04:23 1999 David Edelsohn <edelsohn@gnu.org>
27768
27769 * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
27770 same as offsettable in cases 1 and 2.
27771
27772 Thu Jul 1 20:54:10 1999 Richard Henderson <rth@cygnus.com>
27773
27774 * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
27775 (extlh, extwh): Likewise.
27776
27777 Thu Jul 1 11:05:25 1999 Gavin Romig-Koch <gavin@cygnus.com>
27778
27779 * c-lex.c (yylex): Improve 'integer constant out of range' messages.
27780
27781 Wed Jun 30 16:51:41 1999 Nick Clifton <nickc@cygnus.com>
27782
27783 * configure.in: Add arm-pe and thumb-pe targets.
27784 * configure: Regenerate.
27785
27786 * thumb.c (arm_naked_function_p): New function: Determines if
27787 a function is naked (has no gcc generated prologue/epilogue).
27788 (is_called_in_ARM_mode): Return true if the func has the
27789 interfacearm attribute.
27790 (output_return): Do not generate a return for naked functions.
27791 (thumb_function_prologue): Do not generate a prologue for
27792 naked functions.
27793 (thumb_expand_prologue): Do not generate a prologue for naked
27794 functions.
27795 (thumb_expand_epilogue): Do not generate an epilogue for naked
27796 functions.
27797 (arm_valid_machine_decl_attribute): New function, copied from
27798 arm.c: Permit naked and interfacearm attributes.
27799
27800 * config/arm/pe.c: New file: Support code for arm-pe target.
27801 * config/arm/pe.h: New file: Header file for arm-pe target.
27802 * config/arm/tpe.h: New file: Header file for thumb-pe target.
27803 * config/arm/t-thumb-pe: New file: Makefile fragment for
27804 thumb-pe target.
27805
27806 1999-07-01 Mark Kettenis <kettenis@gnu.org>
27807
27808 * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
27809 -fPIC or -fpic is specified.
27810
27811 Wed Jun 30 03:31:54 1999 Jeffrey A Law (law@cygnus.com)
27812
27813 * expr.c (emit_block_move): Use copy_to_mode_reg for
27814 !TARGET_MEM_FUNCTIONS case too.
27815
27816 * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
27817 appropriate.
27818 * configure: Rebuilt.
27819 (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
27820 * pa.h: Include dbxelf.h. Delete various dbx/stabs related
27821 definitions made redundant by dbxelf.h inclusion. Delete
27822 lots of definitions related to assembly output that are
27823 specific to the SOM object format.
27824 * pa.c (output_function_prologue): Do not emit the function's
27825 name for OBJ_ELF.
27826 * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
27827 * pa-pro.h: Deleted.
27828 * som.h: New file with SOM specific definitions.
27829 * elf.h: New file with ELF specific definitions.
27830
27831 * elfos.h (const_section): Output a tab before assembler directives.
27832 (ctors_section, dtors_section): Likewise.
27833 (ASM_OUTPUT_SECTION_NAME): Likewise.
27834
27835 * pa/pa1.h: Delete unused file.
27836
27837 Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com)
27838
27839 * configure.in (hppa*-hp-hpux11*): New configuration.
27840 * configure: Rebuilt.
27841 * pa/pa-hpux11.h: New file.
27842 * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
27843 command line.
27844
27845 * mips.md (leasi, leadi): New patterns.
27846
27847 * expr.c (emit_block_move): Properly handle case where one of the
27848 block move arguments has a queued increment or decrement.
27849 (clear_storage): Similarly. Fix formatting goof.
27850
27851 1999-06-28 "David O'Brien" <obrien@NUXI.com>
27852
27853 * fixinc/inclhack.def(stdio_va_list): This patch Removes a
27854 semicolon from the BSD VA_LIST replacement expression.
27855
27856 * fixinc/inclhack.sh: regen
27857 * fixinc/fixincl.x: regen
27858
27859 * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
27860 now use the fixincl program.
27861
27862 Mon Jun 28 05:28:12 1999 Jeffrey A Law (law@cygnus.com)
27863
27864 * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
27865 case. Also make the PIC register call_used.
27866
27867 * m68k.h (FINALIZE_PIC): Delete.
27868 * m68k.c (finalize_pic): Delete.
27869
27870 Mon Jun 28 05:16:35 1999 Richard Henderson <rth@cygnus.com>
27871
27872 * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
27873 to memory.
27874
27875 Mon Jun 28 04:07:27 1999 David Edelsohn <edelsohn@gnu.org>
27876
27877 * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
27878
27879 Sun Jun 27 02:39:08 1999 Richard Henderson <rth@cygnus.com>
27880
27881 * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
27882
27883 Sat Jun 26 17:18:18 1999 David Edelsohn <edelsohn@gnu.org>
27884
27885 * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
27886
27887 Fri Jun 25 11:33:24 1999 Richard Henderson <rth@cygnus.com>
27888
27889 * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
27890
27891 Fri Jun 25 13:41:25 1999 David Edelsohn <edelsohn@gnu.org>
27892
27893 * rs6000.c (output_toc): Always use hex values for floating-point
27894 constants. Store single-precision values in upper-half of TOC
27895 entry in 64-bit mode.
27896 * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
27897 to final constraints.
27898 (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
27899 (fctiwz): Improve accuracy of RTL for pattern.
27900
27901 Fri Jun 25 11:26:38 1999 Gavin Romig-Koch <gavin@cygnus.com>
27902
27903 * expr.c (expand_expr): Allow RTL_EXPR's through the
27904 MAX_INTEGER_COMPUTATION_MODE checks.
27905
27906 Fri Jun 25 06:06:37 1999 Richard Henderson <rth@cygnus.com>
27907
27908 * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
27909 such that MASK_SUPPORT_ARCH is not negative.
27910
27911 Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com)
27912
27913 * loop.c (verify_dominator): Properly handle ADDR_VEC and
27914 ADDR_DIFF_VEC insns that appear inside loops.
27915
27916 Thu Jun 24 22:54:05 1999 David Edelsohn <edelsohn@gnu.org>
27917 Jeff Law <law@cygnus.com>
27918
27919 * rs6000.md (movdf_hardfloat32): Revert previous patch.
27920 Handle LO_SUM the same as offsettable in cases 1 and 2.
27921 * rs6000.c (find_addr_reg): Revert previous patch.
27922
27923 Thu Jun 24 22:43:12 1999 Philippe De Muyter <phdm@macqel.be>
27924
27925 * system.h (strstr): New external function declaration.
27926 * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
27927 * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
27928 * config.in, configure: Rebuilt.
27929
27930 1999-06-24 Tom Tromey <tromey@cygnus.com>
27931
27932 * gcc.c (main): Read user-specified specs files after computing
27933 additional startfile_prefixes.
27934
27935 Thu Jun 24 15:00:47 1999 Mark Mitchell <mark@codesourcery.com>
27936
27937 Revert these two patches:
27938
27939 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
27940 * loop.c (strength_reduce): When doing biv->giv conversion, update
27941 reg note of NEXT->insn.
27942
27943 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
27944 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
27945 reg_biv_class.
27946 (recombine_givs): Set ix field after sorting.
27947
27948 Wed Jun 23 21:26:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
27949
27950 * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
27951 for the parts of an UNSPEC / UNSPEC_VOLATILE.
27952
27953 1999-06-23 Bruce Korb <ddsinc09@ix.netcom.com>
27954
27955 *fixinc/inclhack.def: Add fix development commentary
27956 (read_ret_type): reactivate and add selection clause
27957 (zzz_*): tweak output file name to match what is used in hackshell.tpl
27958 *fixinc/{fixincl.x|inclhack.sh}: regen
27959
27960 Wed Jun 23 00:48:21 1999 Jason Merrill <jason@yorick.cygnus.com>
27961
27962 * expr.c (expand_expr): STRIP_NOPS before checking against
27963 MAX_INTEGER_COMPUTATION_MODE
27964 (check_max_integer_computation_mode): Likewise.
27965
27966 Tue Jun 22 20:23:43 1999 Jim Wilson <wilson@cygnus.com>
27967
27968 * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
27969
27970 1999-06-22 Jim Wilson <wilson@cygnus.com>
27971
27972 * expr.c (store_expr): When target is a promoted subreg, return a
27973 promoted subreg as a result.
27974
27975 Tue Jun 22 17:14:58 1999 Michael Meissner <meissner@cygnus.com>
27976
27977 * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
27978 coding standards.
27979 (dwarf2out_define): Mark unused parameters appropriately.
27980 (gen_unspecified_parameters_die): Ditto.
27981 (gen_subprogram_die): Fix signed/unsigned warnings.
27982 (gen_variable_die): Ditto.
27983
27984 1999-06-22 Bruce Korb <ddsinc09@ix.netcom.com>
27985
27986 * fixinc/inclhack.def(end_else_label): combined else_label
27987 and endif_label and fixed the sed expression.
27988 *fixinc/{fixincl.x|inclhack.sh}: regen
27989
27990 Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com)
27991
27992 * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
27993 'x' when handling non-offsettable addresses
27994
27995 Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com)
27996
27997 * final.c (shorten_branches): Don't try to split an insn that has
27998 been deleted.
27999
28000 Mon Jun 21 12:47:39 1999 Mark Mitchell <mark@codesourcery.com>
28001
28002 * config/mips/mips.c (symbolic_expression_p): New function.
28003 (mips_select_rtx_section): Put symbolic expressions in the
28004 data section, not the read-only data section.
28005
28006 Mon Jun 21 22:13:06 1999 Jeffrey A Law (law@cygnus.com)
28007
28008 * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
28009
28010 Mon Jun 21 20:10:42 1999 Richard Henderson <rth@cygnus.com>
28011
28012 * collect2.c (main): Log frame table count.
28013 (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
28014 (scan_prog_file) [COFF]: Handle frame tables.
28015
28016 * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
28017 (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
28018 * alpha/elf.h: Undef them again.
28019 * alpha/vms.h: Remove their definitions.
28020
28021 Tue Jun 22 03:17:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28022
28023 * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
28024 remove the clobber of r0 and change the REG_UNUSED note to
28025 REG_INC.
28026
28027 1999-06-21 Jakub Jelinek <jj@ultra.linux.cz>
28028
28029 * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
28030 * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
28031 fits in HOST_WIDE_INT and one uses union to access a long constant
28032 as double.
28033
28034 Mon Jun 21 17:18:25 1999 Richard Henderson <rth@cygnus.com>
28035
28036 * sparc.c (sparc_override_options): Don't allow profiling for
28037 code models other than medlow.
28038 (sparc_function_profiler): New function from old FUNCTION_PROFILER
28039 macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
28040 (sparc_function_block_profiler): Likewise. Use user_label_prefix.
28041 (sparc_block_profiler): Likewise.
28042 (sparc_function_block_profiler_exit): Likewise.
28043 * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
28044 (FUNCTION_BLOCK_PROFILER): Likewise.
28045 (BLOCK_PROFILER): Likewise.
28046 (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
28047 (MCOUNT_FUNCTION): New.
28048 * sparc/pbd.h (FUNCTION_PROFILER): Delete.
28049 (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
28050 * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
28051 (MCOUNT_FUNCTION): New.
28052 * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
28053 (BLOCK_PROFILER): Delete.
28054 (MCOUNT_FUNCTION): New.
28055
28056 Mon Jun 21 14:11:29 1999 David Edelsohn <edelsohn@gnu.org>
28057
28058 * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
28059
28060 Mon Jun 21 12:27:17 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
28061
28062 * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28063 Add the macros.
28064
28065 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28066 Ditto.
28067
28068 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28069 Ditto.
28070
28071 * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28072 Ditto.
28073
28074 Mon Jun 21 14:58:42 1999 Nick Clifton <nickc@cygnus.com>
28075
28076 * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
28077 types.
28078
28079 Mon Jun 21 06:22:21 1999 Mark Elbrecht <snowball3@bigfoot.com>
28080
28081 * i386/djgpp.h (LIB_SPEC): New.
28082 (STARTFILE_SPEC): New.
28083
28084 * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
28085
28086 Mon Jun 21 06:19:33 1999 Philippe De Muyter <phdm@macqel.be>
28087
28088 * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
28089 compiler flags.
28090
28091 * system.h (WSTOPSIG): New macro.
28092
28093 Mon Jun 21 05:33:15 1999 Mumit Khan <khan@xraylith.wisc.edu>
28094
28095 * c-pragma.c (push_alignment): Don't ignore alignments greater than
28096 4 bytes.
28097 (insert_pack_attributes): Take into account member natural
28098 alignment.
28099
28100 * i386/winnt.c (exports_head): New static variable.
28101 (i386_pe_record_exported_symbol): New function.
28102 (i386_pe_asm_file_end): Use.
28103 * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
28104 symbols to be emitted at end of assembly.
28105 (ASM_DECLARE_OBJECT_NAME): Likewise.
28106 (ASM_DECLARE_FUNCTION_NAME): Likewise.
28107
28108 * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
28109 -iwithprefix.
28110
28111 Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com)
28112
28113 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
28114 in last change.
28115
28116 Sun Jun 20 17:27:20 1999 Richard Henderson <rth@cygnus.com>
28117
28118 * haifa-sched.c (sched_analyze_1): Use free_list instead of
28119 zapping reg_last_uses directly.
28120 (sched_analyze_2, sched_analyze_insn): Likewise.
28121 (sched_analyze): Likewise. Don't clear reg_last_uses on calls.
28122
28123 Sun Jun 20 16:57:29 1999 David Edelsohn <edelsohn@gnu.org>
28124
28125 * rs6000.md (movdf_hardfloat32): Use worst case insn length
28126 attributes for cases 1 and 2.
28127
28128 Sat Jun 19 22:52:55 1999 Richard Henderson <rth@cygnus.com>
28129
28130 * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
28131 instead of set.
28132
28133 Sat Jun 19 05:40:07 1999 Philip Blundell <pb@nexus.co.uk>
28134
28135 * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
28136
28137 Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com)
28138
28139 * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
28140 PIC_OFFSET_TABLE_REGNUM for general alloaction.
28141 (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
28142 must be stacked if it is used for PIC accesses.
28143 * arm.c (use_return_insn): Handle PIC register specially.
28144 (output_return_instruction): Likewise.
28145 (output_func_{prologue,epilogue}): Likewise.
28146 (output_expand_prologue): Likewise.
28147
28148 * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
28149 (*strsi_predec): Renamed from *strqi_predec.
28150 (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
28151 (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
28152
28153 * arm.c (arm_override_options): Remove warning about PIC code
28154 not being supported.
28155
28156 Fri Jun 18 23:47:06 1999 David Edelsohn <edelsohn@gnu.org>
28157
28158 * rs6000.c (find_addr_reg): New function.
28159 * rs6000.h (find_addr_reg): Declare.
28160 (offsettable_addr_operand): Delete.
28161 * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
28162 from and stores to GPRs.
28163
28164 Fri Jun 18 15:44:18 1999 Richard Henderson <rth@cygnus.com>
28165
28166 * alpha.c (alpha_expand_block_move): Use get_insns rather than
28167 gen_sequence as argument to emit_no_conflict_block.
28168
28169 Fri Jun 18 07:02 1999 Bruce Korb <ddsinc09@ix.netcom.com>
28170
28171 * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
28172 * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
28173 *fixinc/fixincl.x: regen
28174 *fixinc/inclhack.sh: regen
28175
28176 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay <dlindsay@cygnus.com>
28177
28178 * added support for -mpcrel (PC relative addressing for m68k)
28179 based on code done by Michael Tiemann <tiemann@axon.cygnus.com>.
28180 * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
28181 * m68k.c (print_operand_address): Handle 32-bit PIC case.
28182 (comments for general_src_operand): Add some explanation
28183 about EXTRA_CONSTRAINTS.
28184 (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
28185 * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
28186 (LEGITIMATE_PIC_OPERAND_P): Fix typo.
28187 (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
28188 * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
28189 (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
28190 (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
28191 if not already set.
28192 (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
28193 * m68k.h (TARGET_PCREL): New target flag.
28194 (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
28195 (OVERRIDE_OPTIONS): Add checks for -mpcrel.
28196 (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
28197 contains a SYMBOL_REF. Relax this constraint during reload, since
28198 we want to use the predicates, not reload's built-in concept of a
28199 valid memory address, to control what insns need reloading.
28200 (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
28201 operands (essentially 'g', 'm', and 's' under normal circumstances).
28202 * m68k.c (print_operand): Cause printing of pc-relative addresses
28203 to include pc register.
28204 (print_operand_address): Ditto.
28205 (general_src_operand): Accept operands that are not only
28206 general_operands, but are also valid when used as a pc-relative
28207 source.
28208 (nonimmediate_src_operand): Similar, for nonimmediate_operands.
28209 (memory_src_operand): Similar, for memory_operands.
28210 (pcrel_address): New predicate to accept the special case of a
28211 pc-relative address.
28212 * m68k.md (many patterns): Rewrite common SImode, HImode, and
28213 QImode insns to accept *_src_operand instead of *_operand where
28214 pc-relative operands can fit. For example, a pc-relative operand
28215 can be used as a memory source operand for addsi3, but not as a
28216 memory destination.
28217 * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
28218
28219 Fri Jun 18 09:11:07 1999 Nick Clifton <nickc@cygnus.com>
28220
28221 * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
28222 .thumb_set pseudo op to mark aliases of thumb functions.
28223
28224 Wed Jun 16 18:19:13 1999 Nick Clifton <nickc@cygnus.com>
28225
28226 * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
28227 preference to ASM_OUTPUT_DEF, if it is defined.
28228
28229 * tm.texi: Document new, optional target macro
28230 ASM_OUTPUT_DEF_FROM_DECLS.
28231
28232 Thu Jun 17 15:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
28233
28234 * fixincludes: ISCNTL patch
28235 * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
28236 (dgux_int_varargs): new for DG/UX
28237 * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
28238
28239 Thu Jun 17 21:34:24 1999 Jeff Law <law@cygnus.com>
28240
28241 * invoke.texi (ia32 options): Fix typo.
28242
28243 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28244
28245 * loop.c (strength_reduce): When doing biv->giv conversion, update
28246 reg note of NEXT->insn.
28247
28248 Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com)
28249
28250 * loop.c (move_movables): Note issues with replacing REGs with
28251 SUBREGs.
28252 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
28253
28254 Thu Jun 17 13:28:30 1999 David O'Brien <obrien@FreeBSD.org>
28255
28256 * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
28257
28258 * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
28259 the reference to `mcount' was not correct for the ELF on FreeBSD.
28260
28261 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28262
28263 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
28264 reg_biv_class.
28265
28266 (recombine_givs): Set ix field after sorting.
28267
28268 Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com)
28269
28270 * emit-rtl.c (operand_subword): Tighten checks for when it is safe
28271 to safe to extract a subword out of a REG.
28272
28273 Thu Jun 17 01:45:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28274
28275 * sh.md (mulsi3): Don't add a no-op move at the end.
28276
28277 Wed Jun 16 20:29:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28278
28279 * cse.c (cse_insn): Don't put hard register source into tables for
28280 the last insn of a libcall.
28281
28282 Wed Jun 16 19:44:33 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28283
28284 * loop.c (strength_reduce): Insert sets of derived givs at every
28285 biv increment, even if it's the only one.
28286
28287 Wed Jun 16 10:33:02 1999 Jason Merrill <jason@yorick.cygnus.com>
28288
28289 * dwarfout.c (add_incomplete_type): New fn.
28290 (output_type): Call it.
28291 (retry_incomplete_types): New fn.
28292 (dwarfout_finish): Call it.
28293
28294 From Eric Raskin <ehr@listworks.com>:
28295 (output_type): Output types for bases.
28296
28297 Tue Jun 15 12:51:23 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
28298
28299 * mips.c (mips_output_conditional_branch): Add `break'
28300 between `default' label and `close braces'.
28301
28302 Tue Jun 15 01:55:20 1999 David O'Brien <obrien@FreeBSD.org>
28303
28304 * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
28305 specifications and make it realistic.
28306 (LIB_SPEC): Likewise.
28307
28308 Mon Jun 14 15:38:43 1999 Jim Wilson <wilson@cygnus.com>
28309
28310 * config/mips/mips.c (mips_secondary_reload_class): Check for
28311 (PLUS (SP) (REG)) and return appropriate register class.
28312 * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
28313 Handle (PLUS (SP) (REG)).
28314 (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
28315 (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
28316 of emit_insn for tablejump.
28317
28318 Mon Jun 14 17:26:40 1999 David Edelsohn <edelsohn@gnu.org>
28319
28320 * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
28321 asm_fprintf format string by itself.
28322 (output_function_profiler): Likewise.
28323
28324 Mon Jun 14 12:57:38 1999 David Mosberger <davidm@hpl.hp.com>
28325
28326 * combine.c (simplify_logical, case AND): Only call
28327 simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
28328 or the constant is positive.
28329
28330 Mon Jun 14 11:43:41 1999 Nick Clifton <nickc@cygnus.com>
28331
28332 * configure.in: Fix typo in rs6000-ibm-aix4 case.
28333 * configure: Regenerate.
28334
28335 Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com)
28336
28337 * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
28338 require a sub-version #.
28339 * configure: Rebuilt.
28340
28341 1999-06-14 Robert Lipe (robertlipe@usa.net)
28342
28343 * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
28344
28345 Mon Jun 14 10:30:52 BST 1999 Nathan Sidwell <nathan@acm.org>
28346
28347 * c-typeck.c (process_init_element): Detect excess elements in
28348 char array initializer.
28349
28350 1999-06-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
28351
28352 * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
28353
28354 Sat Jun 12 22:29:48 EDT 1999 Jerry Quinn <jquinn@nortelnetworks.com>
28355
28356 * invoke.texi (Option Summary): Add -fpermissive flag.
28357
28358 Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com)
28359
28360 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
28361 that require PIC code sequences.
28362
28363 Wed Jun 9 16:29:01 1999 Nick Clifton <nickc@cygnus.com>
28364
28365 * configure.in: Add new target: thumb-elf.
28366 * configure: Regenerate.
28367 * config/arm/t-thumb-elf: New file: Makefile fragment for
28368 thumb-elf build.
28369 * config/arm/telf.h: New file: Header file for thumb-elf
28370 build.
28371
28372 Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com)
28373
28374 * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
28375 * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
28376 initializers is some circumstances.
28377
28378 * fixinc/inclhack.def (endif_label): Add additional selector for
28379 more bogus stuff after #endif statements.
28380 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
28381
28382 Thu Jun 10 20:44:36 1999 Mumit Khan <khan@xraylith.wisc.edu>
28383
28384 * i386/cygwin.h (SET_ASM_OP): Define.
28385
28386 Thu Jun 10 20:37:57 1999 Mumit Khan <khan@xraylith.wisc.edu>
28387
28388 * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
28389
28390 Thu Jun 10 19:23:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28391
28392 * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
28393 latter.
28394
28395 * sh.md (ic_invalidate_line_i): Remove second alternative.
28396
28397 Thu Jun 10 06:55 1999 Bruce Korb <ddsinc09@ix.netcom.com>
28398
28399 *fixinc/inclhack.def(sun_auth_proto): We do not know how to
28400 test for the presence of valid prototypes. Delete bypass expr.
28401 (ioctl_fix_ctrl): Correct the selection expression.
28402 (no_double_slash): Correct quoting rules
28403 *fixinc/fixincl.x: regen
28404 *fixinc/inclhack.sh: regen
28405
28406 Thu Jun 10 15:08:15 1999 Nick Clifton <nickc@cygnus.com>
28407
28408 * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
28409
28410 Wed Jun 9 15:57:57 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
28411
28412 * rs6000.md (movsi_got_internal_mem): Delete.
28413 * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
28414 (GOT_TOC_REGNUM): Delete.
28415 (PIC_OFFSET_TABLE_REGNUM): Define.
28416 (FINALIZE_PIC): Disable.
28417 * rs6000.c (rs6000_got_register): New code for fixed pic register.
28418 (rs6000_replace_regno): Delete.
28419 (rs6000_finalize_pic): Likewise.
28420 (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
28421
28422 Wed Jun 9 19:44:26 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28423
28424 * loop.c (loop_insn_first_p): Don't compare LUIDs when P
28425 is a note; use <= for the compare; advance P while it is
28426 a NOTE.
28427
28428 Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com)
28429
28430 * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
28431 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
28432
28433 * varasm.c (remove_from_pending_weak_list): Verify t->name
28434 is non-NULL before passing it to strcmp.
28435
28436 Wed Jun 9 06:50 1999 Bruce Korb <ddsinc09@ix.netcom.com>
28437
28438 *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
28439 the typed arguments are not part of a comment
28440 (ioctl_fix_ctrl): Added a purpose comment
28441 *fixinc/fixincl.x: regenerate
28442 *fixinc/inclhack.sh: regenerate
28443
28444 Wed Jun 9 22:57:02 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
28445
28446 * invoke.texi: Add C4x invocation docs.
28447
28448 Wed Jun 9 22:34:38 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
28449
28450 * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
28451 Define new macros.
28452 * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
28453 TARGET_EXPOSE_LDP.
28454 (c4x_legitimize_reload_address): New function.
28455 * config/c4x/c4x.md: Update docs.
28456
28457 Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com)
28458
28459 * fixincludes: Avoid removing '.'.
28460 * fixinc/fixinc.svr4: Likewise.
28461 * fixinc/fixinc.winnt: Likewise.
28462 * fixinc/inclhack.tpl: Likewise.
28463 * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
28464
28465 1999-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
28466
28467 * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
28468 pattern.
28469 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
28470
28471 Wed Jun 9 03:10:34 1999 Mumit Khan <khan@xraylith.wisc.edu>
28472
28473 * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
28474 correctly.
28475
28476 Tue Jun 8 13:06:15 1999 Jim Wilson <wilson@cygnus.com>
28477
28478 * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
28479 * configure: Regenerate.
28480
28481 Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com)
28482
28483 * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
28484 values.
28485
28486 Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com)
28487
28488 * fixinc/inclhack.def (avoid_bool): Also catch
28489 "typedef [unsigned] int bool".
28490 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
28491
28492 * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
28493 * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
28494 * configure: Rebuilt.
28495
28496 Mon Jun 7 22:05:03 1999 Mark Kettenis <kettenis@gnu.org>
28497
28498 * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
28499 such that we can override its definitions if necessary.
28500 (CPP_SPEC): New define. Support processor specific predefines via
28501 %(cpp_cpu).
28502 (CC1_SPEC): New define. Support processor specific compiler
28503 options via %(cc1_cpu).
28504 (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for
28505 -static.
28506
28507 1999-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
28508
28509 * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
28510 between sed's -e flag, and the open-quote following it.
28511 * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
28512
28513 Mon Jun 7 20:34:20 1999 Robert Lipe <robertlipe@usa.net>
28514 Jeffrey A Law (law@cygnus.com)
28515
28516 * varasm.c (assemble_start_function): Remove the function
28517 from the pending weak decls list when we define a function.
28518 (assemble_variable): Similarly for variables.
28519 (weak_finish): Ignore items on the list with a NULL name.
28520 (remove_from_ending_weak_list); New function to "remove" an item
28521 from the pending weak declarations list.
28522
28523 Mon Jun 7 19:27:07 1999 Jerry Quinn <jquinn@nortelnetworks.com>
28524
28525 * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
28526
28527 Mon Jun 7 14:07:39 1999 Dave Brolley <brolley@cygnus.com>
28528
28529 * c-lex.c (GETC): Redefine to call getch.
28530 (UNGETC): Redefine to call put_back.
28531 (putback_buffer): New structure type.
28532 (putback): New static structure.
28533 (getch): New function.
28534 (put_back): New function.
28535 (yylex): Replace unused bytes from bad multibyte character.
28536
28537 Mon Jun 7 13:33:39 1999 Dave Brolley <brolley@cygnus.com>
28538
28539 * cpplib.c (do_define): Cast `alloca' return value.
28540 (do_include, do_undef, do_pragma): Likewise.
28541 * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
28542 values.
28543 * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
28544 * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
28545
28546 Sun Jun 6 11:58:34 1999 Jakub Jelinek <jj@ultra.linux.cz>
28547
28548 * sparc.md (abstf2): This should be an expand.
28549 (split after abstf2_notv9): Fix mode.
28550 (abstf2_hq_v9): New pattern.
28551 (abstf2_v9): Only use when no hard quad.
28552 (absdf2_v9): Fix if target is not the same as source.
28553 (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
28554 Add correct output constraints.
28555
28556 Sat Jun 5 17:04:16 1999 Craig Burley <craig@jcb-sc.com>
28557
28558 From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
28559 * invoke.texi: Clarify text vis-a-vis Intel CPUs.
28560
28561 Sat Jun 5 12:11:24 1999 Mark Mitchell <mark@codesourcery.com>
28562
28563 * mips.h (mips_output_conditional_branch): New function.
28564 (mips_adjust_insn_length): Likewise.
28565 (ASSEMBLER_SCRATCH_REGNUM): New macro.
28566 (ADJUST_INSN_LENGTH): Likewise.
28567 * mips.c (print_operand): Add `F' and `W' for floating-point
28568 comparison opcodes.
28569 (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
28570 are now in bytes.
28571 (mips_adjust_insn_length): New function.
28572 (mips_output_conditional_branch): New function.
28573 * mips.md (length): Adjust attribute definition to handle
28574 conditional branches. Change lengths to bytes, rather than
28575 instructions throughout. Remove length attribute from
28576 instructions whose length is four bytes, and rely on the default
28577 instead.
28578 (dslot): Fix typo in comment.
28579 Reword conditional branch patterns to use
28580 mips_output_conditional_branch.
28581
28582 Fri Jun 4 13:30:27 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
28583
28584 * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
28585 (LIB_SPEC): Likewise.
28586 Link with -lprof1_r for -g/-pg.
28587
28588 1999-06-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
28589
28590 * loop.c (check_dbra_loop): Fix change of Jan 19.
28591
28592 Fri Jun 4 00:12:40 1999 Marc Espie <espie@cvs.openbsd.org>
28593
28594 * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define.
28595 (STARTFILE_SPEC): Define, override the svr4.h version.
28596 (ENDFILE_SPEC): Likewise.
28597
28598 Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com)
28599
28600 * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
28601 * fixinc/fixincl.x: Regenerated.
28602 * fixinc/inclhack.sh: Regenerated.
28603
28604 Fri Jun 4 05:42:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28605
28606 * sh.c (barrier_align): Don't return early for normal branch/barrier
28607 when optimizing for SH2.
28608
28609 Thu Jun 3 22:27:50 1999 Robert Lipe <robertlipe@usa.net>
28610
28611 * i386/udk.h (LINK_SPEC): Correct linker search path for
28612 system libraries.
28613
28614 Fri Jun 4 03:20:40 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28615
28616 * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
28617 (braf_label_ref_operand): Delete.
28618 * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
28619 * sh.md (casesi_jump_2): Operand1 is now the inside of a
28620 label_ref, and has no predicate.
28621 The patten has a predicate to guard against invalid substitutions.
28622 (dummy_jump): Delete.
28623 (casesi): Update use of casesi_jump_2.
28624
28625 Thu Jun 3 07:48 1999 Bruce Korb <ddsinc09@ix.netcom.com>
28626
28627 *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
28628 *fixinc/fixincl.x: regenerate
28629 *fixinc/inclhack.sh: regenerate
28630
28631 Thu Jun 3 02:15:07 1999 Jason Merrill <jason@yorick.cygnus.com>
28632
28633 * dwarf2out.c (add_incomplete_type): New fn.
28634 (gen_struct_or_union_type_die): Call it.
28635 (retry_incomplete_types): New fn.
28636 (dwarf2out_finish): Call it.
28637
28638 Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com)
28639
28640 * gcse.c (insert_insn_end_bb): Correct placement of insns when the
28641 current block starts with a CODE_LABEL and ends with a CALL and
28642 we can not find all the argument setup instructions for the CALL.
28643
28644 Wed Jun 2 15:44:15 1999 Mark Mitchell <mark@codesourcery.com>
28645
28646 Revert this change:
28647 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
28648 something is a candidate for optimize_bit_field_compare.
28649
28650 Wed Jun 2 21:53:05 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28651
28652 * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
28653
28654 Wed Jun 2 12:25:55 1999 Richard Henderson <rth@cygnus.com>
28655
28656 * alpha.c (override_options): Thinko in last patch.
28657
28658 * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
28659 (LIB_SPEC): Recognize -pthread.
28660
28661 Wed Jun 2 08:42:55 1999 Nick Clifton <nickc@cygnus.com>
28662
28663 * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
28664 definition in config/arm/coff.h
28665 * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
28666
28667 Wed Jun 2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
28668
28669 * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
28670 fixes that need "file=xxx\n" prepended before invocation
28671 (start_fixer - new): starting the fixer process is complex enough
28672 to warrent its own routine. It prepends the "file=xxx\n" stuff.
28673 (process): uses the new routine; omit usage of putenv()
28674 * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
28675 * fixinc/fixincl.x: regenerate
28676
28677 Wed Jun 2 02:29:07 1999 Jeffrey A Law (law@cygnus.com)
28678
28679 * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
28680 and version #s (1.1 -> 2.96) as needed.
28681 * README.g77: Kill way out of date file in the toplevel directory.
28682
28683 Wed Jun 2 00:52:34 1999 David O'Brien <obrien@FreeBSD.org>
28684
28685 * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
28686 i386/freebsd-elf.h no longer requires it. Instead include svr4.h.
28687 * configure: Rebuilt.
28688 * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
28689 (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
28690 (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
28691 (SWITCH_TAKES_ARG): Likewise.
28692 * i386/freebsd.h: Remove FREEBSD_NATIVE support.
28693 * config/t-freebsd: Moved from config/i386/ so it can used for all
28694 FreeBSD targets.
28695
28696 Mon May 31 02:22:55 1999 Philippe De Muyter <phdm@macqel.be>
28697
28698 * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
28699
28700 Wed Jun 2 00:08:34 1999 Robert Lipe <robertlipe@usa.net>
28701
28702 * configure.in (i[34567]86-*-udk*): Install headers with cpio.
28703 * configure: Rebuilt.
28704
28705 Tue Jun 1 19:06:22 1999 David Edelsohn <edelsohn@gnu.org>
28706
28707 * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
28708 * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
28709 * rs6000/rs6000.c (rs6000_file_start): Use putc.
28710 (rs6000_output_load_toc_table): Same.
28711 (output_prolog, output_mi_thunk): Same.
28712 * rs6000/rs6000.h (SELECT_SECTION): Formatting.
28713 (ASM_GLOBALIZE_LABEL): Use putc.
28714
28715 Mon May 31 15:23:23 1999 Richard Henderson <rth@cygnus.com>
28716
28717 * alpha.md (reload_*_help): New patterns and splitters.
28718 (reload_*): Use them.
28719 (mov[qh]i): Likewise.
28720
28721 Mon May 31 11:48:07 1999 Mark Mitchell <mark@codesourcery.com>
28722
28723 * cccp.c (handle_directive): Handle backslash-newlines in quoted
28724 strings correctly.
28725
28726 Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu>
28727
28728 * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
28729
28730 Mon May 31 11:40:20 EDT 1999 John Wehle (john@feith.com)
28731
28732 * flow.c (mark_regs_live_at_end, insn_dead_p,
28733 mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
28734 and HARD_FRAME_POINTER_REGNUM special treatment if reload
28735 hasn't run or the frame pointer is needed.
28736 * haifa-sched.c (attach_deaths): Likewise.
28737 * sched.c (attach_deaths): Likewise.
28738
28739 Mon May 31 00:46:17 1999 Jeffrey A Law (law@cygnus.com)
28740
28741 * jump.c (jump_optimize_1): Only set CAN_REACH_END if
28742 calculate_can_reach_end returns nonzero.
28743
28744 * configure.in (native gas tests): Search for an assembler in the
28745 same manner that the installed compiler will.
28746 * configure: Rebuilt.
28747 * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
28748
28749 * alias.c (find_base_term): Improve handling of addresses
28750 constructed from binary operations.
28751
28752 Sun May 30 14:29:17 1999 Eric Raskin (ehr@listworks.com)
28753
28754 * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
28755
28756 Sun May 30 14:19:13 1999 Jeffrey A Law (law@cygnus.com)
28757
28758 * function.h (cleanup_label, frame_offset): Declare.
28759 (tail_recursion_label, tail_recursion_reentry): Likewise.
28760 (arg_pointer_save_area, rtl_expr_chain): Likewise.
28761 * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
28762 (tail_recursion_label, tail_recursion_reentry): Likewise.
28763 (arg_pointer_save_area, rtl_expr_chain): Likewise.
28764
28765 Sat May 29 19:08:10 1999 Philip Blundell <philb@gnu.org>
28766
28767 * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
28768 defined.
28769 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
28770 (MAX_OFILE_ALIGNMENT): Define.
28771
28772 Fri May 28 21:40 1999 Robert Lipe <robertlipe@usa.net>
28773
28774 * fixincl.c: Replace local include scheme with #includes of
28775 gansidecl.h and system.h.
28776 * procopen.c: Likewise.
28777 * server.c: Likewise.
28778
28779 Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com)
28780
28781 * i386/t-dgux (EXTRA_PARTS): Add crti.o
28782 (crti.o): Add build rule and dependencies.
28783 * fixinc/fixinc.dgux: Use modified _int_varargs.h
28784
28785 Fri May 28 03:41:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
28786
28787 * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
28788 (LIB_LINUX_SPEC): Likewise.
28789 (LIB_LINUX_SPEC): Add support for -pthread
28790 (CPP_OS_LINUX_SPEC): Likewise.
28791 (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
28792 specified.
28793
28794 Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org)
28795
28796 * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
28797 conditional move.
28798 (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
28799 (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
28800 for IEEE math and CC_FCOMI.
28801 (put_jump_code): No IEEE if CC_FCOMI is set.
28802
28803 1999-05-27 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
28804
28805 * fold-const.c (fold_truthop): Make the field reference unsigned
28806 when converting a single bit compare.
28807
28808 Thu May 27 02:40:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28809
28810 * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
28811
28812 Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com)
28813
28814 * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
28815 * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
28816 version did.
28817
28818 * reload.c (push_reload): Do not call remove_address_replacements
28819 when presented with identical optional reloads.
28820
28821 Wed May 26 14:18:05 1999 Richard Henderson <rth@cygnus.com>
28822
28823 * alpha.h (MASK_FIX, TARGET_FIX): New.
28824 (MASK_*): Reorganize constants.
28825 (CPP_AM_FIX_SPEC): New.
28826 (TARGET_SWITCHES): Add FIX.
28827 (EXTRA_SPECS): Likewise.
28828 (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
28829 (SECONDARY_MEMORY_NEEDED): Likewise.
28830 (REGISTER_MOVE_COST): Likewise.
28831 * alpha.c (override_options): Add FIX support. Always use
28832 ALPHA_TP_PROG for ev6.
28833 * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
28834 * alpha/elf.h (ASM_FILE_START): Look at FIX too.
28835 * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
28836
28837 Wed May 26 09:53:05 1999 Mark Mitchell <mark@codesourcery.com>
28838
28839 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
28840 something is a candidate for optimize_bit_field_compare.
28841
28842 Wed May 26 09:40:02 1999 Mark Mitchell <mark@codesourcery.com>
28843
28844 * gcc.texi (Passes): Document branch-shortening.
28845 * invoke.texi (Debugging Options): Document the fact that `-dp'
28846 outputs length information for instructions.
28847
28848 Wed May 26 08:49:31 1999 Nick Clifton <nickc@cygnus.com>
28849
28850 * flow.c: Revert previous delta.
28851
28852 Wed May 26 06:05:10 1999 Nick Clifton <nickc@cygnus.com>
28853
28854 * flow.c (insn_dead_p): Check against frame_pointer_rtx not
28855 FRAME_POINTER_REGNUM.
28856 (mark_set_1): Ditto.
28857 (mark_used_regs): Ditto.
28858
28859 Wed May 26 02:19:31 1999 Philip Blundell <pb@nexus.co.uk>
28860
28861 * arm.h (NEED_PLT_GOT): Fix mistake in last change.
28862 (GOT_PCREL): New macro. Define to 1 if not already defined.
28863 * arm/elf.h (GOT_PCREL): Define to 0.
28864 * arm.c (arm_finalize_pic): Take into account the setting of
28865 GOT_PCREL.
28866
28867 Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com)
28868
28869 * output.h (STRIP_NAME_ENCODING): Provide default definition.
28870 * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
28871
28872 * flow.c (mark_set_1): Do not record BLKmode stores as dead
28873 store elimination candidates.
28874
28875 Tue May 25 08:55:57 1999 Gavin Romig-Koch <gavin@cygnus.com>
28876
28877 * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
28878 TARGET_GAS.
28879
28880 Mon May 24 20:30:08 1999 Jim Wilson <wilson@cygnus.com>
28881
28882 * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
28883 Add use of x-aix41-gld.
28884
28885 Mon May 24 16:44:09 1999 Jakub Jelinek <jj@ultra.linux.cz>
28886
28887 * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
28888 (ASM_OUTPUT_DESTRUCTOR): Define.
28889
28890 Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com)
28891
28892 * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
28893 last CODE_LABEL in a loop if we have previously passed a jump
28894 to the top of the loop.
28895
28896 Mon May 24 07:56:29 1999 Nick Clifton <nickc@cygnus.com>
28897
28898 * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
28899 applying Philip's patch.
28900
28901 Mon May 24 01:02:12 1999 Mark Mitchell <mark@codesourcery.com>
28902
28903 * stmt.c (expand_end_bindings): Ignore any elements of VARS that
28904 are not VAR_DECLs.
28905
28906 Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com)
28907
28908 * loop.c (strength_reduce): Grow reg_single_usage as needed.
28909
28910 Sun May 23 10:13:20 1999 David O'Brien <obrien@FreeBSD.org>
28911
28912 * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
28913 Also remove a useless comment.
28914
28915 Sun May 23 10:05:23 1999 Jerry Quinn <jquinn@nortelnetworks.com>
28916
28917 * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0.
28918
28919 Sat May 22 21:02:06 1999 David Edelsohn <edelsohn@gnu.org>
28920
28921 * collect2.c (main): Only generate import or export file and add
28922 to link arguments if non-empty. Use xmalloc not alloca.
28923 (write_{export,import}_file): Delete.
28924 (write_aix_file): New function.
28925 (locatelib): Use xmalloc not malloc.
28926 (GCC_OK_SYMBOL): Do not check type if aix64.
28927
28928 Sat May 22 09:35:51 1999 Philip Blundell <pb@nexus.co.uk>
28929
28930 Based on patch by Scott Bambrough and Pat Beirne:
28931 * config/arm/arm.c (making_const_table): New variable.
28932 * config/arm/arm.h (making_const_table): Declare.
28933 (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
28934 appropriate.
28935 * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
28936 Keep track of when we are building the constant table.
28937
28938 Sat May 22 09:34:22 1999 Philip Blundell <pb@nexus.co.uk>
28939
28940 * config/arm/arm.c (arm_override_options): Fix erroneous warning
28941 message.
28942
28943 Sat May 22 09:06:33 1999 Nick Clifton <nickc@cygnus.com>
28944
28945 * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
28946 defined.
28947
28948 Sat May 22 07:17:05 1999 Nick Clifton <nickc@cygnus.com>
28949
28950 * tm.texi (FUNCTION_ARG): Correct description of a stack element
28951 in a PARALLEL.
28952
28953 Sat May 22 01:27:49 1999 Mark Mitchell <mark@codesourcery.com>
28954
28955 * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
28956
28957 Fri May 21 21:19:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
28958
28959 * rs6000.c (output_mi_thunk): Enable full support again.
28960
28961 Fri May 21 20:09:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
28962
28963 * sh.h (BRANCH_COST): Define.
28964
28965 Thu May 20 10:00:42 1999 Stephen L Moshier <moshier@world.std.com>
28966
28967 * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
28968
28969 Thu May 20 09:58:57 1999 Jan Hubicka <hubicka@freesoft.cz>
28970
28971 * function.c (assign_stack_local): Align stack slot propertly.
28972 (assign_outer_stack_local): Likewise.
28973
28974 Thu May 20 10:38:43 1999 Mark Mitchell <mark@codesourcery.com>
28975
28976 * expr.h (lang_expand_constant): Declare.
28977 * toplev.c (lang_expand_constant): Define it.
28978 * varasm.c (output_constant): Use it.
28979
28980 Thu May 20 11:28:53 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
28981
28982 * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
28983 Change function definitions to K&R style.
28984
28985 Thu May 20 08:16:39 1999 Bruce Korb <ddsinc09@ix.netcom.com>
28986
28987 * fixinc/fixincl.c: We must not ignore SIGCLD now.
28988
28989 Thu May 20 07:06:39 1999 Alexandre Oliva <aoliva@acm.org>
28990
28991 * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
28992 * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
28993 (several places): omit static initialization
28994 (process): use single fd, since only the read fd is used
28995 * fixinc/gnu-regex.c: define 'const' away, if not supported
28996 * fixinc/procopen.c(several places): omit static initialization
28997 * fixinc/server.c: define 'volitile' away, if not supported
28998
28999 1999-05-20 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
29000
29001 * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
29002 asm_fprintf and %L to generate the label name.
29003 * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
29004 (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
29005
29006 Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com)
29007
29008 * jump.c (can_reverse_comparison_p): Do not abort if the comparison
29009 insn for a conditional jump can not be found.
29010
29011 Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com)
29012
29013 * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
29014 on variables in specific sections other than .sbss and .sdata.
29015
29016 Wed May 19 03:56:56 1999 Mark Mitchell <mark@codesourcery.com>
29017
29018 * stmt.c (expand_return): Call start_cleanup_deferral and
29019 end_cleanup_deferral around conditional code.
29020
29021 Wed May 19 08:40:08 1999 Bruce Korb <ddsinc09@ix.netcom.com>
29022
29023 * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
29024 filename lists. Utilizes new "krstr" AutoGen function.
29025 * fixinc/fixincl.x: Rebuilt.
29026
29027 Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz)
29028
29029 * i386.c (output_float_compare): Avoid GNU-C extensions.
29030
29031 Wed May 19 00:34:40 1999 Jeffrey A Law (law@cygnus.com)
29032
29033 * version.c: Bump to distinguish mainline tree from the
29034 gcc-2.95 branch.
29035
29036 See ChangeLog.1 for earlier changes.
This page took 1.088867 seconds and 6 git commands to generate.