]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog.3
re PR c++/7919 (using declarations screw this pointer)
[thirdparty/gcc.git] / gcc / ChangeLog.3
CommitLineData
c30d43bf
JL
12000-06-30 Mark Mitchell <mark@codesourcery.com>
2
3 * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
4 * c-common.c (ridpointers): Declare.
5 * c-common.h (enum rid): Declare.
6 (NORID): Likewise.
7 (ridpointers): Likewise.
8 * c-lex.c (ridpointers): Don't declare.
9 (init_lex): Initialize ridpointers.
10 * c-lex.h (enum rid): Don't declare.
11 (NORID): Likewise.
12 (RID_FIRST_MODIFIER): Likewise.
13 (ridpointers): Likewise.
14
152000-06-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
16
17 * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
18 have global scope.
19
202000-06-30 Martin von Loewis <loewis@informatik.hu-berlin.de>
21
22 * invoke.texi (-Wreturn-type): In C++, a missing return type is
23 always an error.
24
252000-06-30 Catherine Moore <clm@cygnus.com>
26
27 * c-common.c (decl_attributes): Differentiate between
28 types and type decls for alignment.
29
302000-06-30 Nathan Sidwell <nathan@codesourcery.com>
31
32 * cpp.texi: Document #pragma GCC dependency
33 * cppfiles.c (open_include_file): Set date to unknown.
34 (_cpp_compare_file_date): New function.
35 (read_include_file): Set file date.
36 * cpphash.h (struct include_file): Add date member.
37 (_cpp_compare_file_date): Prototype.
38 * cpplib.c (parse_include): Add trail parameter. Adjust.
39 (do_include): Adjust parse_include call.
40 (do_import): Likewise.
41 (do_include_next): Likewise.
42 (gcc_pragmas): Add dependency pragma.
ff7cc307 43 (do_pragma_dependency): New pragma.
c30d43bf
JL
44
452000-06-29 Jason Merrill <jason@redhat.com>
46
47 * dwarf2out.c (output_loc_operands): Don't abort on codes that have
48 no operands.
49
502000-06-29 Jim Wilson <wilson@cygnus.com>
51
52 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
53 a volatile mem and FR_REGS.
54
552000-06-29 Mark Mitchell <mark@codesourcery.com>
56
57 * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
58 * c-common.h (flag_const_strings): Declare.
59 (warn_format): Likewise.
60 (flag_traditional): Likewise.
61 (flag_isoc99): Likewise.
62 (warn_parentheses): Likewise.
63 (warn_conversion): Likewise.
64 (C_TYPE_OBJECT_P): Likewise.
65 (C_TYPE_INCOMPLETE_P): Likewise.
66 (C_TYPE_FUNCTION_P): Likewise.
67 (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
68 (C_EXP_ORIGINAL_CODE): Likewise.
69 (build_unary_op): Likewise.
70 (build_binary_op): Likewise.
71 (lvalue_p): Likewise.
72 (default_conversion): Likewise.
73 (common_type): Likewise.
74 * c-tree.h (C_TYPE_OBJECT_P): Remove.
75 (C_TYPE_INCOMPLETE_P): Likewise.
76 (C_TYPE_FUNCTION_P): Likewise.
77 (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
78 (C_EXP_ORIGINAL_CODE): Likewise.
79 (common_type): Likewise.
80 (default_conversion): Likewise.
81 (build_binary_op): Likewise.
82 (build_unary_op): Likewise.
83 (lvalue_p): Likewise.
84 (flag_const_strings): Likewise.
85 (warn_format): Likewise.
86 (warn_conversion): Likewise.
87 (flag_traditional): Likewise.
88 (flag_isoc99): Likewise.
89 (warn_parentheses): Likewise.
90
912000-06-29 James E. Wilson <wilson@cygnus.com>
92
93 * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
94
95 * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
96 same. Only tie XFmode with XFmode.
97
982000-06-29 Zack Weinberg <zack@wolery.cumb.org>
99
100 * c-decl.c, timevar.c, tlink.c: Include intl.h.
101 * Makefile.in: Update deps.
102
1032000-06-29 Andrew Haley <aph@cygnus.com>
104
105 * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
106 to true.
107
1082000-06-29 Andrew Haley <aph@cygnus.com>
109
110 * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
111 bytes: remove the multiply by 8.
112
1132000-06-29 Philipp Thomas <pthomas@suse.de>
114
115 * rtl.c : Revert NLS changes.
116 * gcc.c : Fix bug in display_help introced by my last changes.
117
118Wed Jun 28 21:09:33 2000 Raja R Harinath <harinath@cs.umn.edu>
119
120 * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
121 DECL_CONTEXT, not DECL_FIELD_CONTEXT.
122
1232000-06-29 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
124
125 * flow.c (flow_depth_first_order_compute): Fix algorithm.
126
1272000-06-28 Philipp Thomas <pthomas@suse.de>
128
129 * c-decl.c : Mark strings for translation.
130 (parmlist_tags_warning): Use distinct messages instead
131 of conditional expressions.
132 * diagnostic.c (v_message_with_decl): Mark string for translation.
133 * gcc.c: Mark messages for translation.
134 (display_help): Combine messages into one string where necessary.
135 * mips-tfile: Add intl.h. Mark messages for translation.
136 * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
137 messages for translation.
138 * timevar.c: Mark messages for translation.
139 * tlink.c: Likewise.
140 * toplev.c: Likewise.
141
142Wed Jun 28 15:39:26 2000 Donn Terry (donnte@microsoft.com)
143
144 * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
145
146 * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
147 use -isystem instead of -idirafter.
148 * i386/i386-interix.h: Likewise.
149
1502000-06-28 Jason Merrill <jason@redhat.com>
151
152 * dwarf2out.c (output_loc_operands): Don't support >1 byte output
153 unless DWARF2_DEBUGGING_INFO is defined.
154 (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
155
1562000-06-28 Richard Henderson <rth@cygnus.com>
157
158 * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
159
1602000-06-28 Jakub Jelinek <jakub@redhat.com>
161
162 * cpplex.c (output_line_command): Output correct #line if a header
163 is including itself and is not protected against multiple inclusion.
164
1652000-06-28 Zack Weinberg <zack@wolery.cumb.org>
166
167 * cppfiles.c (open_include_file): If open(2) returns EMFILE or
168 ENFILE, close all cached file descriptors and try again.
169 (_cpp_execute_include): Keep a count of the number of times
170 each header is included.
171 (close_cached_fd): New function.
172 * cpphash.h (struct include_file): Rename before to
173 include_count; all users updated. Make include_count and sysp
174 unsigned short.
175 * cppinit.c (cpp_finish): If -H, report headers that could use
176 reinclude guards.
177 (report_missing_guard): New function.
178
179Wed Jun 28 14:46:58 MET DST 2000 Jan Hubicka <jh@suse.cz>
180
181 * i386.md (prologue_set_got): Set length_immediate field.
182 (testqi_ccno_1): Add missing '@' character.
183
1842000-06-27 Jason Merrill <jason@redhat.com>
185
186 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
187 DWARF_FRAME_REGNUM.
188
1892000-06-27 Andrew Macleod <amacleod@cygnus.com>
190
191 * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
192 unsigned macros available.
193
1942000-06-27 Richard Henderson <rth@cygnus.com>
195
196 * config/ia64/ia64.c (emit_insn_group_barriers): Special case
197 epilogue_deallocate_stack.
198
199 * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
200 completers for UNORDERED and ORDERED as well.
201 * config/ia64/ia64.md (bunordered, bordered): New.
202 (sunordered, sordered): New.
203
204Tue Jun 27 12:14:12 MET DST 2000 Jan Hubicka <jh@suse.cz>
205
206 * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
207 * i386.c (ix86_attr_length_default): Kill.
208 (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
209 New.
210 * i386-protos.h (ix86_attr_length_default): Kill
211 (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
212 Add prototype
213 * i386.md (attribute type): Add "test".
214 (attribute length_prefix): Kill.
215 (attribute length_opcode): Kill.
216 (attribute i387, mode, length_immediate, length_address, prefix_data16,
217 prefix_rep, prefix_0f, modrm): New.
218 (attribute length): Compute using the new attributes.
219 (attribute pent_prefix): New.
220 (attribute pent_pair): Compute using pent_prefix.
221 (all insn patterns): Set mode,modrm and immediate_length attributes where
222 needed.
a1f300c0
JM
223 (cmpsi patterns): Compute sizes properly for test instruction.
224 (movsi, movhi patterns): Compute sizes properly for eax shortcuts.
c30d43bf
JL
225 (movstricthi_xor, movstrictqi_xor): New patterns.
226 (andsi/andhi): Use splitters to generate xor instructions.
227 (xorqi_ext_1): New pattern.
228 (movstricthi->movstricthi_xor peep2): New.
229
230Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz>
231
232 * i386.md (addqi_low_1): Remove.
233
2342000-06-27 Philipp Thomas <pthomas@suse.de>
235
236 * 1750a.h: Mark help strings for options/switches for translation.
237 * a29k.h: Likewise.
238 * alpha.h: Likewise.
239 * arm.h: Likewise.
240 * pe.h: Likewise.
241 * riscix.h: Likewise.
242 * c4x.h: Likewise.
243 * clipper.h: Likewise.
244 * convex.h: Likewise.
245 * elxsi.h: Likewise.
246 * fr30.h: Likewise.
247 * fx80.h: Likewise.
248 * h8300.h: Likewise.
249 * i370.h: Likewise.
250 * cygwin.h: Likewise.
251 * dgux.h: Likewise.
252 * djgpp.h: Likewise.
253 * i386.h: Likewise.
254 * osf1elf.h: Likewise.
255 * osfrose.h: Likewise.
256 * sco5.h: Likewise.
257 * win32.h: Likewise.
258 * i860.h: Likewise.
259 * paragon.h: Likewise.
260 * i960.h: Likewise.
261 * ia64.h: Likewise.
262 * m32r.h: Likewise.
263 * mcore.h: Likewise.
264 * mips.h: Likewise.
265 * mn10300.h: Likewise.
266 * ns32k.h: Likewise.
267 * pdp11.h: Likewise.
268 * pj.h: Likewise.
269 * aix.h: Likewise.
270 * aix41.h: Likewise.
271 * aix43.h: Likewise.
272 * beos.h: Likewise.
273 * rs6000.h: Likewise.
274 * sysv4.h: Likewise.
275 * linux.h: Likewise.
276 * linux64.h: Likewise.
277 * sp64-elf.h: Likewise.
278 * sparc.h: Likewise.
279 * splet.h: Likewise.
280 * v850.h: Likewise.
281 * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
282 for translation.
283 * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
284 Properly document option and mark for translation.
285 * sp86x-elf.h: Likewise.
286
2872000-06-27 Bernd Schmidt <bernds@cygnus.co.uk>
288
289 Add MMX and SSE registers to i386 machine description.
290 * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
291 ix86_local_alignment): Declare.
292
293 * i386.h (TARGET_MMX, TARGET_SSE): New.
294 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
295 REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
296 REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
297 enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
298 (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
299 (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
300 (RETURN_IN_MEMORY): Handle MMX/SSE.
301 (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
302 also get stack space.
303 (MUST_PASS_IN_STACK): Added TImode to the default definition.
304 (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
305 (MMX_REGISTER_NAMES): New.
306 (ALIGN_MODE_128): New macro.
307 (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
308 (DATA_ALIGNMENT): Likewise.
309 (LOCAL_ALIGNMENT): Likewise.
310 (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
311 TARGET_MMX/TARGET_SSE.
312 (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
313 (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
314 (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
315 SSE/MMX regs and something else.
316 (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
317 (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
318 3 if moving between MMX regs and something else.
319
320 * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
321 (regclass_map): Add MMX/SSE registers.
322 (print_operand): Add code to print XMMWORD as appropriate.
323 (ix86_split_movdi): Abort for MMX regs.
324 (init_cumulative_args): Also allow SSE_REGS
325 (function_arg_advance, function_arg): Likewise
326 (print_reg): Support 'm'. Add case for TImode.
327 (override_options): TARGET_SSE implies TARGET_MMX.
328 (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
329 New functions.
330
331 * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
332 FIRST_SSE_REG.
333 * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
334 memory.
335 * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
336 * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
337
3382000-06-26 Geoff Keating <geoffk@cygnus.com>
339
340 * ssa.c (struct rename_set_data): Change the name of field
341 'set_dest' to 'old_reg'. Add comments.
342 (struct rename_context): Change the name of 'set_data' to
343 'new_renames'. Add new field 'done_renames'.
344 (create_delayed_rename): New function.
345 (apply_delayed_renames): New function.
346 (rename_insn_1): Use the new functions. Handle CLOBBERS. Handle
347 SUBREGs and similar by emitting a move.
348 (new_registers_for_updates): Delete, functionality moved to
349 apply_delayed_renames.
350 (rename_block): Handle moves emitted by rename_insn_1 by putting
351 them into a SEQUENCE with the original insn. Add sanity checks
352 and comments.
353 (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
354 (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
355
3562000-06-26 Andrew Macleod <amacleod@cygnus.com>
357 Jason Merrill <jason@redhat.com>
358
359 * dwarf2.h (enum dwarf_call_frame_info): Add
360 DW_CFA_def_cfa_expression.
361 * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
362 dw_loc_descr_struct entry.
363 (struct cfa_loc): New structure to track a CFA location.
364 (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
365 (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
366 offset, plus handle DW_CFA_def_cfa_expression.
367 (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
368 cfa_loc record.
f63d1bf7 369 (dwarf2out_def_cfa): Entry point maintained for compatibility.
c30d43bf
JL
370 (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
371 (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
372 (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
373 (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
374 cfa_reg.
375 (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
376 sequences for the new DW_CFA_def_cfa_expression record.
377 (dwarf2out_frame_debug): Use new variables/fields.A
378 (output_cfi): Handle DW_CFA_def_cfa_expression.
379 (output_cfa_loc): New function to generate a CFI record for
380 DW_CFA_def_cfa_expression.
381 (get_cfa_from_loc_descr): New function to get a cfa_loc record from
382 a dw_loc_descr sequeunce.
383 (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
384 (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
385 size_of_locs, output_loc_operands, output_loc_sequence): Move into
386 unwind info section.
387 * frame.h (frame_state): Add base_offset and indirect fields.
388 * frame-dwarf2.c (decode_stack_op): New function to interpret a
389 dw_loc_descr operation.
390 (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
391 (struct frame_state): Add base offset and indirect fields.
392 * libgcc2.c (next_stack_level): Support indirect loading for CFA.
393
3942000-06-26 Joseph S. Myers <jsm28@cam.ac.uk>
395
396 * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
397 Make warnings about implicit int be pedwarns in C99. Don't warn
398 about duplicate type qualifiers in C99.
399 (start_function): Make warning about implict int return type be a
400 pedwarn in C99.
401 * c-lex.c (yylex): Don't warn about `long long' in C99.
402 * c-typeck.c (c_expand_return): In C99, always pedwarn about
403 `return' with no value in function returning non-void.
404
4052000-06-26 Richard Henderson <rth@cygnus.com>
406
407 * c-typeck.c (pedwarn_c99): New.
408 * diagnostic.c (verror, vwarning, vpedwarn): Export.
409 * toplev.h: Prototype them.
410
4112000-06-26 J. David Anglin <dave@hiauly1.hia.nrc.ca>
412
413 * c-typeck.c (digest_init): Return error_mark_node node when
414 TREE_TYPE (init) == error_mark_node.
415
4162000-06-26 Philipp Thomas <pthomas@suse.de>
417
418 * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
419 test for msgfmt without path instead.
420 * configure: Rebuilt.
421
4222000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
423
424 * gengenrtl.c (special_rtx): Fix typo in comment.
425
4262000-06-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
427
428 * mklibgcc.in (LIB2FUNCS): Add missing space.
429
4302000-06-24 Bernd Schmidt <bernds@cygnus.co.uk>
431
432 * tree.h (enum tree_index): Add vector type nodes.
433 Add accessor macros for them.
434 (TYPE_REPRESENATION_TYPE): New macro.
435 * tree.c (build_common_tree_nodes_2): Build these nodes.
436 (finish_vector_type): New function.
437 * c-common.c (type_for_mode): Handle vector modes.
438 * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
439
440 * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
441 * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
442 * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
443 (gen_type_die): Likewise.
444 * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
445 (fundamental_type_code): Likewise.
446 (type_is_fundamental): VECTOR_TYPEs aren't.
447 (output_type): Handle VECTOR_TYPEs.
448
4492000-06-25 Kazu Hirata <kazu@hxi.com>
450
451 * config/arm.c: Fix a comment typo.
452 * config/arm.h: Likewise.
453
4542000-06-25 Philipp Thomas <pthomas@suse.de>
455
456 * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
457 compiler found.
458 AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
459 * configure: Rebuilt.
460
4612000-06-25 John David Anglin <dave.anglin@nrc.ca>
462
463 * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
464
4652000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
466
467 * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
468 libgcc.a.
469
4702000-06-24 Marc Espie <espie@cvs.openbsd.org>
471
472 * collect2.c (resolve_lib_name): Move '/' check out of loop.
473
4742000-06-24 Dirk Duellmann <Dirk.Duellmann@cern.ch>
475
476 * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
477
4782000-06-24 Jakub Jelinek <jakub@redhat.com>
479
480 * stmt.c (expand_decl_cleanup): Emit a dummy insn after
481 last_unconditional_cleanup.
482
4832000-06-24 Bernd Schmidt <bernds@cygnus.co.uk>
484
485 * tree.def (VECTOR_TYPE): New node type.
486 * tree.h: Adjust some comments to reflect addition of vector types.
487 (TYPE_VECTOR_SUBPARTS): New macro.
488 * stor-layout.c (layout_type): Handle VECTOR_TYPE.
489 * c-convert.c (convert): Likewise.
490 * convert.c (convert_to_integer): Handle vector modes.
491 (convert_to_vector): New function.
492 * convert.h (convert_to_vector): Declare.
493 * expr.c (convert_move): Handle vector modes.
494 * expmed.c (extract_bit_field): Don't abort for vector modes.
495
4962000-06-24 Marek Michalkiewicz <marekm@linux.org.pl>
497
498 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
499 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
500 New functions, common code moved from function_{prologue,epilogue}
501 and extended to support the -mtiny-stack option.
502 (function_prologue, function_epilogue): Use them.
503 Use lo8/hi8 consistently for asm output readability.
504 (avr_hard_regno_mode_ok): New function.
505 * config/avr/avr.h (TARGET_SWITCHES): Fix typo. Add -mtiny-stack.
506 (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
507 (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
508 * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
509 Write SPH before SPL.
510 (*movqi): No need to disable interrupts for just one "out"
511 in alternative 5. Change length attribute from 4 to 1.
512 * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
513 Write SPH before SPL.
514
5152000-06-24 Bernd Schmidt <bernds@cygnus.co.uk>
516
517 * rtl.texi (Vector Operations): New node.
518 (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
519 (Conversions): Add ss_truncate, us_truncate.
520 * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
521 VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
522 US_TRUNCATE): New rtx codes.
523 * machmode.def: Add vector modes.
524 * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
525 MODE_VECTOR_FLOAT.
526 (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
527 (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
528 (VECTOR_MODE_P): New.
529
5302000-06-24 Nathan Sidwell <nathan@codesourcery.com>
531
532 * cpp.texi: Clarify #pragma GCC namespace.
533
5342000-06-24 Philipp Thomas <pthomas@suse.de>
535
536 * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
537 all catalogs specified in ALL_LINGUAS.
538 * configure: Rebuilt.
539
5402000-06-23 Jakub Jelinek <jakub@redhat.com>
541
542 * config/sparc/sparc.md (reload_outdi+1): Handle
543 HOST_BITS_PER_WIDE_INT == 64 case correctly.
544 (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
545
5462000-06-23 Geoffrey Keating <geoffk@cygnus.com>
547
548 * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
549 struct vs. scalar-ness when -fno-strict-aliasing.
550
5512000-06-23 Nathan Sidwell <nathan@codesourcery.com>
552
553 * cpplib.c (struct pragma_entry): New structure.
554 (pragma_dispatch): Pragma dispatcher.
555 (top_pragmas, gcc_pragmas): New static variables.
556 (do_pragma): Use pragma_dispatch.
557 (do_pragma_gcc): New pragma handler.
558 * cpp.texi: Update.
559
5602000-06-23 Jakub Jelinek <jakub@redhat.com>
561
562 * calls.c (compute_argument_addresses): Force stack slots into
563 alias set 0.
564 * expr.c (emit_push_insn): Force pushes into alias set 0.
565
5662000-06-23 Richard Henderson <rth@cygnus.com>
567
568 * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
569 * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
570
5712000-06-22 Jason Merrill <jason@redhat.com>
572
573 * toplev.c (compile_file): Always call timevar_print.
574 * Makefile.in (calls.o): Depend on TIMEVAR_H.
575
5762000-06-22 Nathan Sidwell <nathan@codesourcery.com>
577
578 * varasm.c (constant_descriptor): Make contents unsigned char.
579 (mark_const_hash_entry): Adjust.
580 (const_hash): Just hash the code of unknown nodes.
581 (compare_constant_1): Adjust for unsigned char.
582 Use language specific expander on unknown nodes.
583 (record_constant_1): Likewise.
584
5852000-06-21 Zack Weinberg <zack@wolery.cumb.org>
586
587 * cppfiles.c (cpp_make_system_header): New function.
588 * cpplib.h: Prototype it.
589 * cpplib.c (do_line, do_pragma_system_header): Use it.
590 * fix-header.c (read_scan_file): Use it.
591
592 * fix-header.c (check_macro_names): Cast second arg of
593 cpp_defined to const unsigned char *.
594 (read_scan_file): Make getchar_call const unsigned char.
595
5962000-06-21 Zack Weinberg <zack@wolery.cumb.org>
597
598 * cppfiles.c: Include splay-tree.h, not hashtab.h.
599 (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
600 (destroy_include_file_node): New.
601 (_cpp_init_include_hash): Rename _cpp_init_include_table.
602 Create a splay tree, not a hash table.
603 (open_include_file): Look up the path in the include table,
604 do the multiple include optimization here, etc.
605 (cpp_included): Walk the path.
606 (find_include_file): Just walk the path calling
607 open_include_file, or call it directly for an absolute path.
608 (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
609 scheme.
610 (read_include_file): Update for new scheme. Don't close the
611 file unless reading fails.
612 (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
613
614 * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
615 (struct include_file): New.
616 (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
617 macros.
618 (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
619 Update prototypes.
620
621 * cppinit.c: Include splay-tree.h.
622 (cpp_reader_init, cpp_cleanup): Update.
623
624 * cpplib.h (struct cpp_buffer): Change ihash field to
625 'struct include_file *inc'. Remove system_header_p.
626 (struct cpp_reader): Change all_include_files to a
627 struct splay_tree_s *.
628
629 * cpplex.c: Update all references to cpp_buffer->ihash and/or
630 cpp_buffer->system_header_p.
631 (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
632
633 * Makefile.in (SPLAY_TREE_H): New macro.
634 (cppfiles.o, cppinit.o): Update dependencies.
635
636Wed Jun 21 11:05:48 2000 Martin Buchholz <martin@xemacs.org>
637
638 * invoke.texi (g++): "g++" is not a script anymore.
639
6402000-06-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
641
642 * function.c (round_down): Delete obsolete prototype.
643
644 * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
645
6462000-06-20 Zack Weinberg <zack@wolery.cumb.org>
647
648 * configure.in: Use 'test a = b' not 'test a == b'.
649 * configure: Regen.
650
651 * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
652
653 * Makefile.in: Remove all references to HOST_INTLLIBS.
654
655 * cpplex.c (parse_name): Don't warn about $ in identifiers if
656 skipping.
657
6582000-06-20 Philipp Thomas <pthomas@suse.de>
659
660 * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
661 for PA 2.0.
662
663Mon Jun 19 23:26:40 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
664
665 * Take REG_INC notes into account.
666
6672000-06-19 Zack Weinberg <zack@wolery.cumb.org>
668
669 * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
670 (primary: IDENTIFIER): Just call build_external_ref.
671 * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
672 Regenerate.
673 * c-lex.c (lastiddecl): Remove.
674 (yylex): Replace all instances of lastiddecl with local
675 variables.
676
677 * c-typeck.c (build_external_ref): New function. Treat decls
678 with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
679 Look up the decl from the id here. Call lookup_objc_ivar.
680 * c-lang.c (lookup_objc_ivar): Stub.
681 * objc/objc-act.c (lookup_objc_ivar): New function.
682
683 * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
684 * c-lex.h: Don't declare lastiddecl.
685
6862000-06-19 Benjamin Chelf <chelf@codesourcery.com>
687
688 * c-common.h (IF_COND): Added documentation.
689 (THEN_CLAUSE): Likewise.
690 (ELSE_CLAUSE): Likewise.
691 (WHILE_COND): Likewise.
692 (WHILE_BODY): Likewise.
693 (DO_COND): Likewise.
694 (DO_BODY): Likewise.
695 (RETURN_EXPR): Likewise.
696 (EXPR_STMT_EXPR): Likewise.
697 (FOR_INIT_STMT): Likewise.
698 (FOR_COND): Likewise.
699 (FOR_EXPR): Likewise.
700 (FOR_BODY): Likewise.
701 (SWITCH_COND): Likewise.
702 (SWITCH_BODY): Likewise.
703 (CASE_LOW): Likewise.
704 (CASE_HIGH): Likewise.
705 (GOTO_DESTINATION): Likewise.
706 (COMPOUND_BODY): Likewise.
707 (ASM_CV_QUAL): Likewise.
708 (ASM_STRING): Likewise.
709 (ASM_OUTPUTS): Likewise.
710 (ASM_INPUTS): Likewise.
711 (ASM_CLOBBERS): Likewise.
712 (DECL_STMT_DECL): Likewise.
713 (STMT_EXPR_STMT): Likewise.
714 (LABEL_STMT_LABEL): Likewise.
715
716 * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
717 COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
718 RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
719 LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
720
7212000-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
722
723 * configure.in (--enable-checking): Update --help doc to reflect
724 new defaults. Ensure $ac_save_IFS is set before $IFS is changed.
725
726Sun Jun 18 21:42:15 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
727
728 * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
729
730 * function.c (put_var_into_stack): Don't reference DECL_ fields
731 if input is a SAVE_EXPR.
732 Use set_mem_attributes in COMPLEX case.
733
7342000-06-18 Richard Henderson <rth@cygnus.com>
735
736 * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
737 (ia64_file_start): Declare.
738 * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
739 (GR_REGNO_P): Likewise.
740 * config/ia64/ia64.c: Many prototypes.
741 (ia64_reg_numbers): Constify.
742 (ia64_input_reg_names, ia64_local_reg_names): Likewise.
743 (ia64_section_threshold): Make unsigned.
744 (ia64_print_operand): Constify.
745 (fix_range): Constify.
746 (ia64_init_builtins): Don't compare signed vs unsigned.
747 (ia64_expand_builtin): Likewise.
748
749 * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
750 (CONSTRAINT_OK_FOR_Q): New.
751 * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
752 (movsf_internal, movdf_internal): Likewise.
753 (cmovdi_internal): Rewrite so that constraints and predicates match;
754 simplify splitters.
755 (cmovsi_internal): Likewise.
756
757 * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
758 (ASM_FILE_START): New.
759 * config/ia64/ia64.c (ia64_file_start): New.
760 (rtx_needs_barrier): Handle pred.rel.mutex.
761 (emit_predicate_relation_info): New.
762 * config/ia64/ia64.md (pred_rel_mutex): New.
763 * config/ia64/linux.h (ASM_SPEC): Define.
764 * config/ia64/sysv4.h (ASM_FILE_START): Define.
765
766 * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
767 filtering global register variables.
768
7692000-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
770
771 * c-common.c (add_c_tree_codes): Fix definition for traditional C.
772
7732000-06-17 Michael Meissner <meissner@redhat.com>
774
775 * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
776 not present and there is a field after a '-'.
777
7782000-06-17 Bruce Korb <bkorb@gnu.org>
779
780 * fixinc/check.tpl: finish the implementation of multiple tests
781 for a single fix
782 * fixinc/inclhack.def(ctrl_quotes_def): add a second test
783 (io_quotes_def): add a second test
784 (various): reorder `files' so that "limits.h" is never first
785 * fixinc/tests/base/*: update the testing output
786
787Sat Jun 17 10:33:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
788
789 * gcc.texi: Remove reference to stupid.c.
790
7912000-06-16 Benjamin Chelf <chelf@codesourcery.com>
792
793 * c-common.c (c_tree_code_type): New array.
794 (c_tree_code_length): Likewise.
795 (c_tree_code_name): Likewise.
796 (add_c_tree_codes): New function.
797
798 * c-common.h (add_c_tree_codes): Declare.
799 (enum c_tree_code): New enum.
800
801 * c-lex.c (init_parse): Added call to add_c_tree_codes.
802
8032000-06-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
804
805 * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
806 select pattern to also match macro defs with only one argument.
807
808Thu Jun 15 18:56:12 2000 Jeffrey A Law (law@cygnus.com)
809
810 * i386.md: Create new [right,left] rotate and right shift
811 patterns to optimize shift by 1 bit for certain ia32 processors.
812 Update patterns which perform left shifts to optimize shift by
813 1 bit for certain ia32 processors.
814 * i386.c (const_int_1_operand): New predicate.
815 * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
816 * i386-protos.h (const_int_1_operand): Prototype.
817
818Wed Jun 14 23:46:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
819
820 * mips.c (machine_dependent_reorg): Fix braces for nested if.
821
8222000-06-14 Geoff Keating <geoffk@cygnus.com>
823
824 * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
825 LABEL_REFs.
826
8272000-06-14 Richard Henderson <rth@cygnus.com>
828
829 * conflict.c (conflict_graph_compute): Don't look for REG_INC.
830
831 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
832 auto-inc code.
833
834 * print-rtl.c (print_rtx): Emit space before mem alias set.
835
8362000-06-14 David Edelsohn <edelsohn@gnu.org>
837
838 * rs6000.c (expand_block_move): Fix typo in earlier change.
839 (print_operand): Remove unused variables neg and op.
840 (toc_hash_mark_entry): Fix prototype.
841
8422000-06-14 Benjamin Chelf <chelf@codesourcery.com>
843
844 * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
845 (THEN_CLAUSE): Likewise.
846 (ELSE_CLAUSE): Likewise.
847 (WHILE_COND): Likewise.
848 (WHILE_BODY): Likewise.
849 (DO_COND): Likewise.
850 (DO_BODY): Likewise.
851 (RETURN_EXPR): Likewise.
852 (EXPR_STMT_EXPR): Likewise.
853 (FOR_INIT_STMT): Likewise.
854 (FOR_COND): Likewise.
855 (FOR_EXPR): Likewise.
856 (FOR_BODY): Likewise.
857 (SWITCH_COND): Likewise.
858 (SWITCH_BODY): Likewise.
859 (CASE_LOW): Likewise.
860 (CASE_HIGH): Likewise.
861 (GOTO_DESTINATION): Likewise.
862 (COMPOUND_BODY): Likewise.
863 (ASM_CV_QUAL): Likewise.
864 (ASM_STRING): Likewise.
865 (ASM_OUTPUTS): Likewise.
866 (ASM_INPUTS): Likewise.
867 (ASM_CLOBBERS): Likewise.
868 (DECL_STMT_DECL): Likewise.
869 (STMT_EXPR_STMT): Likewise.
870 (LABEL_STMT_LABEL): Likewise.
871 (SCOPE_BEGIN_P): Likewise.
872 (SCOPE_END_P): Likewise.
873 (SCOPE_STMT_BLOCK): Likewise.
874 (SCOPE_NULLIFIED_P): Likewise.
875 (SCOPE_NO_CLEANUPS_P): Likewise.
876 (SCOPE_PARTIAL_P): Likewise.
877 (ASM_VOLATILE_P): Likewise.
878 (STMT_LINENO): Likewise.
879 (STMT_LINENO_FOR_FN_P): Likewise.
880
881 * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
882 ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
883 FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
884 CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
885 SCOPE_STMT, CASE_LABEL, STMT_EXPR.
886
887 * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
888
8892000-06-14 David O'Brien <obrien@FreeBSD.org>
890
891 * gcc.c (main): Quiet compiler warnings. argv is assumed to be
892 writable in parts of the GCC code.
893
894 * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
895 specification match cast.
896
897Wed Jun 14 09:25:57 2000 Jeffrey A Law (law@cygnus.com)
898
899 * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
900 * configure, config.in: Rebuilt.
901 * sys-protos.h: Similarly.
902
903Wed Jun 14 03:39:58 EDT 2000 John Wehle (john@feith.com)
904
905 * ifcvt.c (EDGE_COMPLEX): Move definition ...
906 * basic-block.h (EDGE_COMPLEX): ... here.
907
908 * loop.c (check_dbra_loop): Specify the register when
909 generating REG_NONNEG notes and don't generate duplicates.
910
9112000-06-13 Jakub Jelinek <jakub@redhat.com>
912
913 * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
914 (struct tree_type, struct tree_decl): Add user_align member.
915 * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
916 (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
917 and DECL_USER_ALIGN 0, cap alignment to this value.
918 (place_field): Likewise.
919 (finalize_type_size): Set TYPE_USER_ALIGN.
920 (layout_type): Likewise.
921 (initialize_sizetypes): Likewise.
922 * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
923 DECL_USER_ALIGN to 1.
924 * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
925 (xfer_tag): Set TYPE_USER_ALIGN.
926 (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
927 (finish_enum): Likewise.
928 * stmt.c (expand_decl): Set DECL_USER_ALIGN.
929 (expand_anon_union_decl): Likewise.
930 * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
931 (build_index_type): Set TYPE_USER_ALIGN.
932 (build_range_type): Likewise.
933 (build_common_tree_nodes_2): Likewise.
934 * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
935
9362000-06-13 Andreas Jaeger <aj@suse.de>
937
938 * configure.in: Use --enable-checking=misc,tree,gc by default if
939 no --enable-checking option is given and for
940 --enable-checking=yes.
941 * configure: Rebuilt.
942
9432000-06-13 Richard Henderson <rth@cygnus.com>
944
945 * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
946 (__throw): Don't pass the address of a label.
947
948 * config/ia64/ia64.c (ia64_compute_frame_size): Use
949 current_function_is_leaf.
950 (ia64_expand_prologue): Likewise. Modify return_address_pointer_rtx
951 instead of reg_names[RETURN_ADDRESS_REGNUM].
952 (ia64_init_machine_status): Reset return_address_pointer_rtx.
953 * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
954 from RETURN_ADDRESS_REGNUM. Update all uses.
955 (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
956 zero instead of null on failure.
957 (ELIMINABLE_REGS): Add ra->b0 elimination.
958 (CAN_ELIMINATE): Update accordingly.
959 (INITIAL_ELIMINATION_OFFSET): Likewise.
960 (REGISTER_NAMES): Use an illegal assembler name for
961 RETURN_ADDRESS_POINTER_REGNUM.
962
9632000-06-13 Richard Henderson <rth@cygnus.com>
964
965 * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
966 GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
967 (REG_CLASS_NAMES): Likewise.
968 (REG_CLASS_CONTENTS): Likewise.
969 (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
970 (HARD_REGNO_MODE_OK): Remove references to them.
971 (REGNO_REG_CLASS): Likewise.
972 (REG_CLASS_FROM_LETTER): Likewise.
973 (CLASS_MAX_NREGS): Likewise.
974 (REGISTER_MOVE_COST): Likewise.
975 * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
976 * config/ia64/ia64.md (*): Replace "e" constraints with "f".
977 (movqi_internal): Special case moves from zero.
978 (movhi_internal, movsi_internal): Likewise.
979 (movdi_internal): Likewise. Fill out "f" constraints.
980 (movsf_internal): Fill out "r" constraints.
981 (movdf_internal): Likewise.
982
9832000-06-13 Richard Henderson <rth@cygnus.com>
984
985 * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
986 alive before reload.
987
988 * haifa-sched.c (struct deps): Add in_post_call_group_p.
989 (add_dependence): Handle notes between SCHED_GROUP_P insns.
990 (remove_dependence): Always define.
991 (set_sched_group_p): New.
992 (sched_analyze_2): Use it.
993 (sched_analyze_insn): Don't special-case naked uses. Look for
994 and extend in_post_call_group_p.
995 (sched_analyze): Clear stale SCHED_GROUP_P. Set in_post_call_group_p.
996 (init_deps): Clear in_post_call_group_p.
997
9982000-06-13 Richard Henderson <rth@cygnus.com>
999
1000 * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
1001 CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
1002 and hard-coded tests.
1003 (simplify_set): Likewise.
1004 (gen_lowpart_for_combine): Likewise.
1005 * emit-rtl.c (gen_lowpart_common): Likewise.
1006 * global.c (find_reg): Likewise.
1007 * local-alloc.c (find_free_reg): Likewise.
1008 * recog.c (register_operand): Likewise.
1009 * regclass.c (init_reg_sets_1): Likewise.
1010 (record_operand_costs, regclass): Likewise.
1011 * reload.c (push_reload): Likewise.
1012 * reload1.c (choose_reload_regs): Likewise.
1013 * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
1014 * local-alloc.c (struct qty): Rename changes_size to changes_mode.
1015 Update all references.
1016 * regs.h (struct reg_info_def): Likewise.
1017 (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
1018 * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
1019 (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
1020
1021 * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
1022 (CLASS_CANNOT_CHANGE_MODE_P): New.
1023 * config/mips/mips.h: Likewise.
1024 * config/pa/pa32-regs.h: Likewise.
1025 * config/pa/pa64-regs.h: Likewise.
1026 * config/rs6000/rs6000.h: Likewise.
1027 * config/sh/sh.h: Likewise.
1028 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
1029 (CLASS_CANNOT_CHANGE_MODE_P): New.
1030 * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
1031 * config/d30v/d30v.h: Likewise.
1032
10332000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1034
1035 * configure.in: Add AC_TYPE_GETGROUPS test.
1036 * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
1037 * configure: Rebuilt.
1038 * config.in: Rebuilt.
1039
10402000-06-13 Richard Henderson <rth@cygnus.com>
1041
1042 * explow.c (set_mem_attributes): Do nothing for NULL type.
1043
1044Tue Jun 13 14:45:10 2000 Jeffrey A Law (law@cygnus.com)
1045
1046 * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
1047 correctly.
1048
10492000-06-13 James E. Wilson <wilson@cygnus.com>
1050
1051 * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
1052
1053Tue Jun 13 14:05:35 2000 Jeffrey A Law (law@cygnus.com)
1054
1055 * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
1056
10572000-06-13 Philipp Thomas <pthomas@suse.de>
1058
1059 * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
1060 * configure: Rebuilt.
1061
10622000-06-07 David O'Brien <obrien@FreeBSD.org>
1063
1064 * configure.in: Adjust FreeBSD bits to match changes to config.guess.
1065 We now default to ELF for the i386, and a.out is the special case.
1066 * configure: Rebuilt.
1067
1068Tue Jun 13 10:05:30 2000 Hans-Peter Nilsson <hp@axis.com>
1069
1070 * final.c (final_scan_insn): Delete notes between cc0 setter and
1071 user when restarting from setter.
1072
10732000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1074
1075 * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
1076 cast to squelch signed/unsigned warnings.
1077
10782000-06-13 Zack Weinberg <zack@wolery.cumb.org>
1079
1080 * cpplib.c (handle_directive): Print non-NUL-terminated string
1081 with %.*s.
1082
10832000-06-12 Michael Meissner <meissner@redhat.com>
1084
1085 * ifcvt.c (dead_or_predicable): Don't do conditional execution
1086 path if the machine needs extra support to do conditional
1087 execution.
1088
1089Mon Jun 12 17:04:17 2000 Jeffrey A Law (law@cygnus.com)
1090
1091 * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
1092 to print the alias set.
1093 * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
1094
10952000-06-12 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1096
1097 * config/float-vax.h: Add GFLOAT defines.
1098
1099Mon Jun 12 9:44:00 2000 Mark Klein <mklein@dis.com>
1100
1101 * configure.in: Update tm dependencies for MPE.
1102 * configure: Rebuilt.
1103
11042000-06-12 H.J. Lu <hjl@gnu.org>
1105
1106 * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
1107
11082000-06-12 David Edelsohn <edelsohn@gnu.org>
1109
1110 * aix41.h (SUBTARGET_SWITCHES): Delete threads.
1111 (CPP_SPEC): Change mthreads to pthread.
1112 (LIB_SPEC): Likewise.
1113 (STARTFILE_SPEC): Likewise.
1114 * aix43.h (SUBTARGET_SWITCHES): Delete threads.
1115 (CPP_SPEC): Change mthreads to pthread.
1116 (LIB_SPEC): Likewise.
1117 (STARTFILE_SPEC): Likewise.
1118 * rs6000-protos.h (reg_or_arith_cint_operand): New.
1119 * rs6000.c (reg_or_arith_cint_operand): New.
1120 (num_insns_constant_wide): Decorate unsigned constant.
1121 * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
1122 * rs6000.md (addsi3): Use new predicate.
1123 (subsi3, adddi3, subdi3): Likewise.
1124
11252000-06-12 Mark Mitchell <mark@codesourcery.com>
1126
1127 * c-common.c (lang_get_alias_set): Fix typo.
1128
11292000-06-12 Richard Earnshaw <rearnsha@arm.com>
1130
1131 * flow.c (mark_used_regs): Revert last change.
1132 (life_analysis): Remove PROP_AUTOINC if running after reload.
1133 (propagate_one_insn): PROP_AUTOINC is always off after reload.
1134
11352000-06-11 Richard Earnshaw <rearnsha@arm.com>
1136
1137 * flow.c (mark_used_regs): Don't call find_auto_inc after reload
1138 has run.
1139
11402000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1141
1142 * bb-reorder.c (build_scope_forest): Initialize variable
1143 `curr_scope'.
1144
1145 * calls.c (expand_call): Likewise for variables
1146 `save_pending_stack_adjust' and `save_stack_pointer_delta'.
1147
1148 * i386.c (function_arg_advance, function_arg): Cast to avoid
1149 signed/unsigned warnings.
1150
1151 * i386.h (MEMORY_MOVE_COST): Likewise.
1152
1153 * ifcvt.c (cond_exec_process_if_block): Initialize variables
1154 `else_start' and `else_end'.
1155
1156 * libgcc2.h (__eh_alloc, __eh_free): Prototype.
1157
1158 * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
1159
11602000-06-10 Mark Mitchell <mark@codesourcery.com>
1161
1162 * Makefile.in (libintl.a): Depend on intl.all.
1163
11642000-06-09 H.J. Lu (hjl@gnu.org)
1165
1166 * Makefile.in (c-parse.o): Also depend on output.h.
1167
11682000-06-09 Rodney Brown <RodneyBrown@mynd.com>
1169
1170 * mcore-protos.h: discards const warning removal.
1171 * mcore.c: discards const warning removal.
1172
11732000-06-09 Kazu Hirata <kazu@hxi.com>
1174
1175 * config/h8300/lib1funcs.asm: Declare the machine architecture at
1176 the beginning of the file.
1177
11782000-06-09 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1179
1180 * real.h: Add prototype for ldexp.
1181
11822000-06-09 Zack Weinberg <zack@wolery.cumb.org>
1183
1184 * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
1185 it ggc_alloc, drop second argument, never clear returned memory.
1186 * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
1187 (ggc_alloc_cleared): New.
1188 * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
1189 ggc_alloc_obj. Remove ggc_alloc macro.
1190 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
1191
1192 * rtl.c (rtvec_alloc): Clear the vector always.
1193 (rtx_alloc): Clear the first word always. Remove dirty
1194 obstack tricks (this routine is no longer a bottleneck).
1195 * tree.c (make_node): Clear the new node always.
1196 (make_tree_vec): Likewise.
1197 (tree_cons): Clear the common structure always.
1198 (build1): Likewise; also, clear TREE_COMPLEXITY.
1199 * gengenrtl.c: Use puts wherever possible. Remove extra
1200 newlines.
1201 (gendef): Clear the first word of an RTX in the generator
1202 function, irrespective of ggc_p. Initialize '0' slots to
1203 NULL.
1204 (genlegend): Don't generate obstack_alloc_rtx routine, just a
1205 thin wrapper macro around obstack_alloc.
1206
1207 * stmt.c (expand_fixup): Use ggc_alloc.
1208 * c-typeck.c (add_pending_init): Use ggc_alloc.
1209 * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
1210 * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
1211 const0_rtx when it is created.
1212 (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
1213 we are not in a function.
1214
1215 * tree.c (tree_class_check_failed): Make second arg an int.
1216 * tree.h: Update prototype.
1217
12182000-06-09 Geoff Keating <geoffk@cygnus.com>
1219
1220 * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
1221 of an error_mark_node.
1222
1223Fri Jun 9 20:35:13 2000 Denis Chertykov <denisc@overta.ru>
1224
1225 * config/avr/avr.c (asm_output_section_name): bugfix.
1226
12272000-06-09 Jason Merrill <jason@casey.soma.redhat.com>
1228
1229 * timevar.def: Add TV_EXPAND.
1230 * timevar.c (timevar_print): Update timing information.
1231 * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
1232
1233 * stmt.c (expand_return): Check for error_mark_node.
1234
12352000-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1236
1237 * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
1238
1239 * scan-types.sh (VALUE) Wrap use with double quotes to protect
1240 variable against filename expansion when it contains "char *".
1241
1242 * system.h (SSIZE_MAX): Delete backup definition.
1243
1244 * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
1245 instead of SSIZE_MAX.
1246
12472000-06-09 Jakub Jelinek <jakub@redhat.com>
1248
1249 * configure.in: Check whether gas supports -relax.
1250 * configure, config.in: Rebuilt.
1251 * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
1252 (EXTRA_SPECS): Add asm_relax.
1253 (ASM_SPEC): Add %(asm_relax).
1254 (TARGET_SWITCHES): Add -mrelax and -mno-relax.
1255 * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
1256 (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
1257 (ASM_SPEC): Add %(asm_relax).
1258 * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
1259 * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
1260 never use sethi/jmpl for leaf tail calls. Use or with rs2 %g0
1261 instead of mov, so that gas can further optimize it.
1262
12632000-06-08 James E. Wilson <wilson@bletchleypark.cygnus.com>
1264
1265 * dwarf2out.c (size_of_die, case dw_val_class_const): Use
1266 size_of_sleb128.
1267 (value_format, case dw_val_class_const): Use sdata format.
1268 (output_die): Call output_sleb128.
1269
12702000-06-08 James E. Wilson <wilson@cygnus.com>
1271
1272 * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
1273 UNALIGNED_DOUBLE_INT_ASM_OP. Rename old macro to
1274 ASM_OUTPUT_DWARF_CONST_DOUBLE.
1275 (output_die, case dw_val_class_unsigned_const): Correct call to
1276 ASM_OUTPUT_DWARF_DATA8.
1277 (output_die, case dw_val_class_long_long): Use
1278 ASM_OUTPUT_DWARF_CONST_DOUBLE.
1279 * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
1280 pos is zero.
1281
1282 * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
1283 (output_function_prologue): Fix mispelling.
1284 (output_function_prologue, output_function_epilogue): Reorder to
1285 match ia64.c definition order.
1286 * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
1287 (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
1288 Use r3 instead of r2 for large stack restores.
1289 (ia64_output_end_prologue): New function.
1290 (process_set): Emit ".restore sp" for epilogue stack restores.
1291 * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
1292
12932000-06-08 Jakub Jelinek <jakub@redhat.com>
1294
1295 * dbxout.c (dbxout_type_fields): Don't segfault on fields with
1296 incomplete types.
1297
12982000-06-08 Nathan Sidwell <nathan@codesourcery.com>
1299
1300 * frame.c (end_fde_sort): Remove extraneous erratic array test.
1301
13022000-06-08 Denis Perchine <dyp@perchine.com>
1303
1304 * frame.c (start_fde_sort): Don't malloc (0).
1305
13062000-06-07 Zack Weinberg <zack@wolery.cumb.org>
1307
1308 * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
1309 error_mark_node.
1310 * print-tree.c (print_node): The transparent_union_flag means
1311 different things for unions and arrays. Do not inspect it
1312 with TYPE_TRANSPARENT_UNION.
1313
13142000-06-06 Jakub Jelinek <jakub@redhat.com>
1315
1316 * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
1317 returned NULL.
1318
1319Wed Jun 7 20:34:33 2000 Denis Chertykov <denisc@overta.ru>
1320
1321 * config/avr/avr.c (asm_output_section_name): output section
1322 attributes.
1323 * config/avr/libgcc.S (.text.libgcc): declare section attributes.
1324
13252000-06-06 James E. Wilson <wilson@cygnus.com>
1326
1327 * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
1328 fields into header field.
1329 (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
1330 macros to access length, flags, and version info from header field.
1331 * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
1332 * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
1333 (__do_global_ctors_aux): Fix caller.
1334 * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
1335 prologue_flag to header. Pass to read_P_record.
1336 (read_P_record): New argument header. Implement P4 format.
1337 Multiply P7_T_SIZE by 16.
1338 (execute_one_ia64_descriptor): New static local region_header. Pass to
1339 get_unwind_record. Copy r to region_header if r is a header record.
1340 (print_all_records): Likewise.
1341 (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
1342 (__get_personality, __get_except_table): Likewise.
1343 * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
1344
13452000-06-06 Philipp Thomas <pthomas@suse.de>
1346
1347 * configure.in (AC_C_INLINE): Added.
1348 * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
1349 * configure: Regenerate.
1350
13512000-06-06 Mark Mitchell <mark@codesourcery.com>
1352
1353 * c-common.h (c_language_kind): New type.
1354 (c_language): New variab.e
1355 * c-common.c (lang_get_alias_set): Don't put structures in
1356 non-zero alias sets in C++.
1357 * c-decl.c (c_language): Define it.
1358 * c-lex.c (doing_objc_thang): Remove.
1359 * c-tree.h (doing_objc_thang): Make it a macro.
1360 * objc/objc-act.c (lang_decode_option): Set c_language, not
1361 doing_objc_thang.
1362
13632000-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
1364
1365 * diagnostic.c (output_maximum_width): Remove.
1366 (doing_line_wrapping): Tweak.
1367 (diagnostic_buffer): New object.
1368 (global_output_buffer): New object.
1369 (output_destroy_prefix): New function.
1370 (default_initialize_buffer): Likewise.
1371 (reshape_diagnostic_buffer): Likewise.
1372 (initialize_diagnostics): Likewise.
1373 (output_clear): Tweak.
1374 (line_wrapper_printf): Adjust call to init_output_buffer.
1375 (vline_wrapper_message_with_location): Likewise. Use
1376 output_destroy_prefix.
1377 (v_message_with_decl): Likewise.
1378
1379 * diagnostic.h (struct output_buffer): Constify prefix.
1380 (init_output_buffer, output_get_prefix): Constify.
1381 (diagnostic_message_length_per_line): Likewise.
1382 (reshape_diagnostic_buffer): Declare.
1383 (default_initialize_buffer): Declare.
1384 (initialize_diagnostics): Declare.
1385 (diagnostic_buffer): Declare new obbject.
1386
1387 * toplev.c: #include diagnostic.h
1388 (display_help): Document diagnostic formatting options.
1389 (decode_f_option): Handle diagnostic formatting options.
1390 (main): Setup initialization for diagnostic messages outputter.
1391
1392 * toplev.h (set_message_length): Remove.
1393
1394 * Makefile.in (toplev.o): Depends upon diagnostic.h
1395
1396 * invoke.texi : Document diagnostics formatting options.
1397
1398Tue Jun 6 19:25:32 2000 Philippe De Muyter <phdm@macqel.be>
1399
1400 * configure.in (Make the links): Typo fix : the file that must be
1401 included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
1402 * configure: File rebuilt.
1403
14042000-06-06 Nathan Sidwell <nathan@codesourcery.com>
1405
20f9202d 1406 * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
c30d43bf
JL
1407 (eh_context): Add alloc_mask and alloc_buffer emergency fallback
1408 space.
1409 * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
1410 emergency eh_context buffer, if malloc fails.
1411 (__eh_free): Moved from cp/exception.cc. Release to emergency
1412 eh_context buffer, if appropriate.
1413
14142000-06-06 Jason Merrill <jason@casey.soma.redhat.com>
1415
1416 * expr.c (store_expr): Fix typo.
1417
14182000-06-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1419
1420 * m68k.c (legitimize_pic_address): Move prototype ...
1421
1422 * m68k-protos.h (legitimize_pic_address): ... here.
1423
1424 * m68k.md (legitimize_pic_address): Delete prototypes.
1425 (untyped_call): Invoke GEN_CALL(), not gen_call().
1426
1427 * nextstep.c: Include system.h and toplev.h.
1428 (get_directive_line): Don't prototype.
1429 (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
1430
1431 * nextstep.h (handle_pragma): Prototype.
1432 (SECTION_FUNCTION): Prototype FUNCTION(). Move prototype of
1433 objc_section_init ...
1434 (EXTRA_SECTION_FUNCTIONS): ... here.
1435
1436Tue Jun 6 08:17:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1437
1438 * sdbout.c (struct sdb_file): NAME now const.
1439 (sdbout_init): input_file_name now const.
1440 (sdbout_start_new_source_file): FILENAME now const.
1441 * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
1442
14432000-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
1444
1445 * c-typeck.c (build_conditional_expr): Handle complex data types.
1446
14472000-06-05 Jason Merrill <jason@casey.soma.redhat.com>
1448
1449 * explow.c (maybe_set_unchanging): New function, broken out from...
1450 (set_mem_attributes): Here.
1451 * expr.h: Declare it.
1452 * stmt.c (expand_decl): Call it.
1453
14542000-06-05 Richard Henderson <rth@cygnus.com>
1455
1456 * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
1457 while looking for a register to inherit from.
1458
14592000-06-05 Jason Merrill <jason@casey.soma.redhat.com>
1460
1461 * Makefile.in (libgcc.ready): Lose.
1462 (libgcc.mk): Just use mv, not move-if-change.
1463 (LIBGCC_DEPS): New macro.
1464 (libgcc.a): Use it.
1465 (stmp-multilib): Likewise.
1466 * mklibgcc.in (stmp-dirs): New target. Make everything depend on
1467 it rather than the directories themselves.
1468 (LIB2ADD): Depend on the list file rather than 'force'.
1469
1470 * fold-const.c (fold, case COND_EXPR): Elide conversion between
1471 cv-qualified versions of types.
1472
1473Mon Jun 5 14:06:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1474
1475 * config/sparc/sparc.c (short_branch): Correct error in range
1476 computation.
1477
14782000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1479
1480 * fixinc/inclhack.def: New include hacks for ultrix.
1481 * (nested_ultrix): Replaced by ultrix_nested_svc.
1482 * (ultrix_atof_param): test_text string added.
1483 * (ultrix_ifdef): Modified select string.
1484
14852000-06-05 Zack Weinberg <zack@wolery.cumb.org>
1486
1487 * objc/objc-act.c (generate_method_descriptors): Register
1488 objc_method_prototype_template as a GC root.
1489 (comp_method_with_proto): Register function_type as a GC root.
1490 (comp_proto_with_proto): Replace function_type1 and
1491 function_type2 with a two-element array; register it as a GC root.
1492
1493 (generate_protocols, build_protocol_initializer,
1494 generate_protocol_list, build_category_initializer,
1495 build_shared_structure_initializer): Do not cache cast_type
1496 and/or cast_type2.
1497
14982000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1499
1500 * function.c (assign_parms): Add missing argument to set_mem_attributes
1501 call.
1502
15032000-06-05 Nathan Sidwell <nathan@codesourcery.com>
1504
1505 * tree.h (VOID_TYPE_P): New macro.
1506 (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
1507 * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
1508 (get_parm_info): Likewise.
1509 (store_parm_decls): Likewise.
1510 (combine_parm_decls): Likewise.
1511 (finish_function): Likewise.
1512 * c-typeck.c (build_function_call): Likewise.
1513 (build_binary_op): Likewise.
1514 (build_conditional_expr): Likewise.
1515 (internal_build_compound_expr): Likewise.
1516 (convert_for_assignment): Likewise.
1517 * stmt.c (expend_expr_stmt): Likewise.
1518 (warn_if_unused_value): Likewise.
1519 (expand_return): Likewise.
1520 * c-parse.in (primary): Likewise.
1521 * c-parse.y, c-parse.c, c-parse.h: Regenerate.
1522 * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
1523
1524Mon Jun 5 06:46:28 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1525
1526 * alias.c (get_alias_set): If compnent is addressable, use alias
1527 set of component.
1528 * c-decl.c (init_decl_processing): Don't call record_component_aliases.
1529 (grokdeclarator): Likewise.
1530 * c-typeck.c (common_type): Likewise.
1531
15322000-06-04 Alex Samuel <samuel@codesourcery.com>
1533
1534 * Makefile.in (OBJS): Remove dyn_string.o
1535 (dyn-string.o): Delete rule.
1536 * dyn-string.c: Delete file
1537 * dyn-string.h: Likewise.
1538
15392000-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1540
1541 * Makefile.in (intl.*): Honor non-zero exit codes in the intl
1542 subdir.
1543
15442000-06-03 Geoff Keating <geoffk@cygnus.com>
1545
1546 * alias.c (record_component_aliases): Don't inspect
1547 DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
1548
1549Sat Jun 3 19:05:30 2000 Michael Meissner <meissner@redhat.com>
1550
1551 * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
1552 it with the pattern to do machine dependent work.
1553 (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
1554 use it to modify the true/false tests used in conditional
1555 execution. If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
1556 defined, invoke them if the conversion to conditional execution
1557 was successful or not.
1558
1559 * tm.texi (IFCVT_MODIFY_TESTS): Document.
1560 (IFCVT_MODIFY_INSN): Ditto.
1561 (IFCVT_MODIFY_FINAL): Ditto.
1562 (IFCVT_MODIFY_CANCEL): Ditto.
1563
1564Sat Jun 3 15:26:13 2000 Matt Kraai <kraai@alumni.carnegiemellon.edu>
1565
1566 * toplev.c (main): Fix misspellings of possibility and language.
1567
15682000-06-03 Richard Henderson <rth@cygnus.com>
1569
1570 * alias.c (record_alias_subset): Initialize has_zero_child in the
1571 superset.
1572
15732000-06-03 Richard Earnshaw (rearnsha@arm.com)
1574
1575 * arm.md (untyped_call): Use GEN_CALL macro.
1576
15772000-06-02 Pekka Nikander <pnr@teldanex.tcm.hut.fi>
1578
1579 * Makefile.in: Use $(MAKE) not "make"
1580
1581Fri Jun 2 19:31:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1582
1583 * alias.c (struct alias_set_entry): New field has_zero_child.
1584 (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
1585 (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
1586 do nothing.
1587 Call record_component_aliases for aggregate types.
1588 (record_alias_subset): Set has_zero_child.
1589 (record_component_aliases, case ARRAY_TYPE): Do nothing if
1590 TYPE_NONALIASES_COMPONENT.
1591 (record_component_aliases, case RECORD_TYPE): Test
1592 DECL_NONADDRESSABLE_P.
1593 * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
1594 of TREE_ADDRESSABLE.
1595 * calls.c (initialize_argument_information): Only test
1596 TYPE_TRANSPARENT_UNION for UNION_TYPE.
1597 * function.c (assign_parms): Likewise.
1598 * integrate.c (function_cannot_inline_p): Likewise.
1599 * stor-layout.c (finish_record_layout): Don't call
1600 record_component_aliases.
1601 * tree.h (struct tree_int_cst): Use struct tree_common.
1602 (struct tree_real_cst, struct tree_string): Likewise.
1603 (struct tree_complex, struct tree_identifier): Likewise.
1604 (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
1605 (struct tree_block, struct tree_type, struct tree_decl): Likewise.
1606 (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
1607 (TYPE_NONALIASES_COMPONENT): New macro.
1608 (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
1609 (DECL_NONADDRESSABLE_P): New macro.
1610 (struct tree_decl): Reorder bits for clarity of how many left;
1611 add non_adressable.
1612
16132000-06-02 Jason Merrill <jason@casey.soma.redhat.com>
1614
1615 * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
1616 * mklibgcc.in (force): New target.
1617 Make LIB2ADD stuff depend on it.
1618
16192000-06-02 Richard Henderson <rth@cygnus.com>
1620
1621 * alias.c (lang_get_alias_set): Remove.
1622 (get_alias_set): Call it directly, not indirectly.
1623 * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
1624 * c-common.h (c_get_alias_set): Don't declare.
1625 * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
1626 * expr.h (lang_get_alias_set): Declare as function, not pointer.
1627
16282000-06-02 Bruce Korb <bkorb@gnu.org>
1629
1630 * fixinc/server.c(sig_handler): resume closing server on SIGPIPE
1631 (server_setup): define the server's master pid
1632 (close_server): actually do the deed IFF we are the server's master
1633
16342000-06-02 Jakub Jelinek <jakub@redhat.com>
1635
1636 * c-common.c (c_get_alias_set): Check whether signed_type did not
1637 return its argument before calling get_alias_set on the result.
1638
16392000-06-02 Andrew MacLeod <amacleod@cygnus.com>
1640
1641 * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
1642
1643Fri Jun 2 00:22:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1644
1645 * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
1646 (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
1647 for TARGET_NOMACSAVE.
1648 (NOMACSAVE_BIT): Define.
1649 (TARGET_NOMACSAVE): Define.
1650 (TARGET_SWITCHES): Add "nomacsave".
1651
16522000-06-02 Toshiyasu Morita <toshi.morita@sega.com>
1653
1654 * sh.md (untyped_call): Remove excess parameters
1655
16562000-06-01 Loren J. Rittle <ljrittle@acm.org>
1657
1658 * fixinc/inclhack.def (osf_namespace_a): Relax expression to
1659 match that used before the conversion to c_fix style.
1660 * fixinc/fixincl.x: regenerate
1661
16622000-06-01 Stan Cox <scox@cygnus.com>
1663
1664 * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
1665 macro argument typo.
1666
16672000-06-01 Zack Weinberg <zack@wolery.cumb.org>
1668
1669 * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL. Improve
1670 error message.
1671 * cpplib.c (parse_include): Remove support for VAX-C
1672 "#include starlet" misfeature.
1673
16742000-05-31 Laurynas Biveinis <lauras@softhome.net>
1675
1676 * cppfiles.c: conditionally define O_BINARY.
1677 (open_include_file): pass O_BINARY to open().
1678
16792000-06-01 Richard Henderson <rth@cygnus.com>
1680
1681 * i960.c (i960_br_predict_opcode): Remove.
1682 (i960_print_operand) [+]: Emit branch prediction hints.
1683 (i960_function_arg): Return early for VOIDmode.
1684 (i960_round_align): Return early for incomplete types.
1685 * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
1686 * i960.md (all conditional branches): Add "%+".
1687
1688Thu Jun 1 12:24:21 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1689
1690 * alias.c (get_alias_set): Don't call language-specific routine more
1691 than is needed and clean up code a bit.
1692 * c-common.c (c_get_alias_set): All references whose type
1693 is char get alias set 0, but character types need not.
1694 * varasm.c (make_function_rtl): Don't call set_mem_attributes.
1695 (make_decl_rtl): Don't call it for FUNCTION_DECL.
1696
16972000-06-01 Bruce Korb <bkorb@gnu.org>
1698
1699 * fixinc/tests/base/...: new base result files
1700
1701Thu Jun 1 09:37:35 2000 Clinton Popetz <cpopetz@cygnus.com>
1702
1703 * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
1704 * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
1705 * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
1706 will use FCOMI.
1707
17082000-06-01 Richard Henderson <rth@cygnus.com>
1709
1710 * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
1711
1712 * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
1713
17142000-05-31 Richard Henderson <rth@cygnus.com>
1715
1716 * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
1717 CONSTANT_POOL_ADDRESS_P addresses for .sdata.
1718 * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
1719
17202000-05-31 Richard Henderson <rth@cygnus.com>
1721
1722 * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
1723 * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
1724 (ia64_print_operand) [+]: ... here. Use current_output_insn.
1725 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
1726 * config/ia64/ia64.md (all branch/call patterns): Use %+.
1727
17282000-05-31 Richard Henderson <rth@cygnus.com>
1729
1730 * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
1731
17322000-05-31 Richard Henderson <rth@cygnus.com>
1733
1734 * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
1735 remaining edges.
1736 (find_if_block): Allow THEN with no outgoing edges.
1737 * flow.c (merge_blocks_nomove): Remove a barrier not following
1738 a jump as well.
1739
17402000-05-31 Richard Henderson <rth@cygnus.com>
1741
1742 * flow.c (propagate_block): Move initialization of mem_set_list ...
1743 (init_propagate_block_info): ... here. Also track blocks with
1744 no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
1745
17462000-05-31 Richard Henderson <rth@cygnus.com>
1747
1748 * jump.c (jump_optimize_1): Revert 05-18 change.
1749
17502000-05-31 Mark Mitchell <mark@codesourcery.com>
1751
1752 * invoke.texi: Remove documentation for -fguiding-decls.
1753
17542000-05-31 Richard Henderson <rth@cygnus.com>
1755
1756 * configure.in: Fix typo last change.
1757
17582000-05-31 Philipp Thomas <pthomas@suse.de>
1759
1760 * configure.in (enable-nls): Enable if build == host, i.e. when
1761 not building a canadian cross compiler.
1762 (enable-maintainer-mode): Added for use with i18n.
1763 * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
1764 cross section of ALL_LINGUAS and LINGUAS.
1765 * configure: Rebuild.
1766
17672000-05-31 Bruce Korb <bkorb@gnu.org>
1768
1769 * fixinc/check.tpl: rework to use test result tree
1770 * fixinc/Makefile.in: change invocation of check script
1771 * fixinc/check.diff: No longer needed
1772 * fixinc/fixincl.x: regenerate
1773 * fixinc/inclhack.def: add new tests
1774 * fixinc/tests/base/arch/i960/archI960.h: New test result
1775 * fixinc/tests/base/curses.h: modified test result
1776 * fixinc/tests/base/stdio.h: ditto
1777 * fixinc/tests/base/time.h: ditto
1778 * fixinc/tests/base/sys/asm.h: ditto
1779 * fixinc/tests/base/sys/stat.h: ditto
1780 * fixinc/tests/base/sys/wait.h: ditto
1781
1782Wed May 31 13:17:20 2000 Philippe De Muyter <phdm@macqel.be>
1783
1784 * except.c (clear_function_eh_region): Do not free NULL.
1785
1786Wed May 31 08:07:52 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1787
1788 * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
1789 * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
1790 (REG_BASE_VALUE): Remove unneeded cast to unsigned.
1791 (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
1792 (find_base_decl): New function, from c_find_base_decl in c-common.c.
1793 (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
1794 (get_alias_set): Likewise.
1795 Major rework to do more things and allow language-specific code
1796 to just handle special-cases.
1797 (record_alias_subset): Args are HOST_WIDE_INT.
1798 (record_component_alias): Local vars are HOST_WIDE_INT.
1799 Don't handle COMPLEX_EXPR.
1800 (get_varargs_alias_set): Moved from builtins.c.
1801 (get_frame_alias_set): New function.
1802 * builtins.c (expand_builtin_return_address): Use frame alias set.
1803 (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
1804 for setjmp buffer.
1805 (get_memory_rtx): Rework to use set_mem_attributes.
1806 (get_varargs_alias_set): Deleted from here.
1807 * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
1808 (c_find_base_decl): Deleted from here.
1809 (c_get_alias_set): Remove many cases and rework to just handle
1810 C-specific cases.
1811 * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
1812 * c-decl.c (rtl.h, expr.h): Now included.
1813 (init_decl_processing): Call record_component_aliases on array types.
1814 (grokdeclarator): Likewise.
1815 Set TREE_ADDRESSABLE for all fields that are not bitfields.
1816 * c-typeck.c (common_type): Call record_component_aliases for array.
1817 * caller-save.c (setup_save_areas): Rework register loop for unsigned.
1818 Set all save areas to the frame alias set.
1819 * calls.c (initialie_argument_information): Call set_mem_attributes.
1820 (compute_argument_addresses, expand_call): Likewise.
1821 * explow.c (set_mem_attributes): New function.
1822 (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
1823 * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
1824 LEN and OFFSET now HOST_WIDE_INT.
1825 (clear_by_pieces): Similar changes.
1826 (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
1827 (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
1828 (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
1829 (clear_by_pieces_1): Likewise.
1830 (emit_push_insn): Call set_mem_attributes.
1831 (expand_expr, case INDIRECT_REF): Likewise.
1832 (expand_expr, case VAR_DECL): Call change_address.
1833 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
1834 tree_low_cst.
1835 (get_varargs_alias_set, get_frame_alias_set): New decls.
1836 (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
1837 (new_alias_set, set_mem_attributes): Likewse.
1838 * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
1839 (assign_stack_temp_for_type): Likewise.
1840 Can split slot even if alias set since can copy.
1841 Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
1842 (assign_temp): Use host_integerp and tree_low_cst.
1843 (put_var_into_stack): Properly handle SAVE_EXPR.
1844 (put_addressof_into_stack): Likewise.
1845 (assign_parms): Call set_mem_attributes.
1846 Delete #if 0 code.
1847 (fix_lexical_address): Put reference to chain into frame alias set.
1848 (expand_function_start): Call set_mem_attributes.
1849 * integrate.c (expand_inline_function): Likewise.
1850 * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
1851 * regmove.c (try_apply_stack_adjustment): Likewise.
1852 * reload.c (push_reload, make_memloc): Likewise.
1853 * reload1.c (alter_reg): Make alias sets for spilled pseudos.
1854 * rtl.def (MEM): Update comment.
1855 * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
1856 (move_by_pieces): Change length to HOST_WIDE_INT.
1857 (record_base_value, record_alias_subset): Delete from here.
1858 * stmt.c (expand_decl): Call set_mem_attributes.
1859 * stor-layout.c (finish_record_layout): Call record_component_aliases.i
1860 * toplev.c (compile_file): Call init_alias_once earlier.
1861 * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
1862 from here: now in alias.c.
1863 * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
1864 (struct tree_decl): Likewise.
1865 (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
1866 * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
1867 (output_constant_def, force_const_mem): Likewise.
1868
1869 * flow.c (propagate_block): If block has no successors, stores to
1870 frame are dead if not used.
1871
18722000-05-31 Nathan Sidwell <nathan@codesourcery.com>
1873
1874 * stmt (expand_end_case): Reorder conversion sequence for jump
1875 table to avoid extra truncations.
1876
1877Wed May 31 01:31:42 2000 Jeffrey A Law (law@cygnus.com)
1878
1879 * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
1880 in the block is more than just a simple conditional branch.
1881 (noce_process_if_block): Similarly.
1882
1883Tue May 30 22:25:57 2000 Alexandre Oliva <aoliva@cygnus.com>
1884
1885 * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
1886 queue.
1887
18882000-05-30 Michael Meissner <meissner@redhat.com>
1889
1890 * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
1891 instructions. Treat LO_SUM operations as loading the full integer
1892 constant.
1893
18942000-05-30 Richard Henderson <rth@cygnus.com>
1895
1896 * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
1897
18982000-05-30 Richard Henderson <rth@cygnus.com>
1899
1900 * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
1901
19022000-05-30 Bruce Korb <bkorb@gnu.org>
1903
1904 * fixinc/tests/*: Added expected result files for fixinc's make check
1905 * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
1906
19072000-05-30 Richard Henderson <rth@cygnus.com>
1908
1909 * config/alpha/alpha.md (*setne_internal): Use match_operator
1910 instead of working down from insn.
1911
19122000-05-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1913
1914 * invoke.texi (-Wtraditional): Update WRT function macros.
1915
1916Tue May 30 09:57:32 2000 Philippe De Muyter <phdm@macqel.be>
1917
1918 * except.c (free_exception_table): Do not free NULL.
1919
19202000-05-29 Zack Weinberg <zack@wolery.cumb.org>
1921
1922 * cpplib.c (do_if): Don't save and restore only_seen_white here.
1923 * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
1924 and skipping here.
1925
19262000-05-29 Richard Earnshaw (rearnsha@arm.com)
1927
1928 * flow.c (mark_used_reg): If a register is unconditionally live,
1929 remove any conditional death information.
1930
19312000-05-29 Richard Henderson <rth@cygnus.com>
1932
1933 * final.c (current_output_insn): New.
1934 (final_scan_insn): Set it.
1935 * output.h: Declare it.
1936
19372000-05-29 Richard Henderson <rth@cygnus.com>
1938
1939 * stor-layout.c (finalize_record_size): Fix typo.
1940
1941 * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
1942 if nlabel is null.
1943
19442000-05-29 Zack Weinberg <zack@wolery.cumb.org>
1945
1946 * cpplib.h (cpp_reader): Remove if_stack. Change
1947 potential_control_macro to a cpp_hashnode *. Add skipping flag.
1948 * cpphash.h (struct ihash): Change control_macro to a
1949 cpp_hashnode * and shorten name to cmacro.
1950 Add NEVER_REINCLUDE constant.
1951
1952 * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
1953 Examine the cmacro node directly, no need to call cpp_defined.
1954 (_cpp_execute_include, read_include_file): Set cmacro to
1955 NEVER_REINCLUDE, not U"".
1956 * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
1957 (cpp_get_token): If pfile->skipping is true, discard text and
1958 keep scanning until we hit a directive; don't expand macros.
1959
1960 * cpplib.c (struct if_stack): Remove if_succeeded, add
1961 was_skipping. Change control_macro to a cpp_hashnode * and
1962 shorten name to cmacro. Remove typedef IF_STACK.
1963 (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
1964 (conditional_skip, skip_if_group,
1965 consider_directive_while_skipping): Delete.
1966 (push_conditional): New.
1967 (_cpp_handle_directive): Don't process directives other than
1968 conditionals if we are skipping.
1969
1970 (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
1971 Update to new scheme.
1972 (validate_else): Skip rest of line here, unconditionally.
1973 (_cpp_unwind_if_stack): The stack is per-buffer. Force
1974 pfile->skipping off.
1975
1976 (all): Remove `scare quotes' from error messages.
1977
19782000-05-29 Richard Henderson <rth@cygnus.com>
1979
1980 * function.c (emit_return_into_block): New line_note arg; emit it.
1981 (thread_prologue_and_epilogue_insns): Attempt to locate a line note
1982 for the close brace to accompany HAVE_return. Move all line notes
1983 following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
1984
19852000-05-29 Richard Henderson <rth@cygnus.com>
1986
1987 * longlong.h [__alpha] (count_leading_zeros): New.
1988 (count_trailing_zeros): New.
1989 (COUNT_LEADING_ZEROS_0): New.
1990
1991 * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
1992 (alpha_split_conditional_move): New.
1993 * config/alpha/alpha-protos.h: Prototype them.
1994 * config/alpha/alpha.h (PREDICATE_CODES): Update.
1995 (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
1996 * config/alpha/alpha.md: Update ffs cix commentary.
1997 (*ze_and_ne): New.
1998 (*nabssf2, *nabsdf2): New.
1999 (*mov[qhsd]icc_internal): Use add_operand.
2000 (if_then_else constant splitters): New.
2001 (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
2002 (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
2003
20042000-05-29 Richard Henderson <rth@cygnus.com>
2005
2006 * combine.c (force_to_mode) [MINUS]: Convert subtraction from
2007 a constant to NEG or NOT when conditions allow.
2008
2009 * combine.c (combine_simplify_rtx): Don't create an if_then_else
2010 unless both args are general_operand. Don't canonicalize plus
2011 to ior unless it helps.
2012
2013 * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
2014 instead track register_life_up_to_date. Toggle no_new_pseudos
2015 around if_convert.
2016
20172000-05-28 Geoff Keating <geoffk@cygnus.com>
2018
2019 * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
2020 so output_operand doesn't see them.
2021
2022Sun May 28 18:37:07 2000 Clinton Popetz <cpopetz@cygnus.com>
2023
2024 * lcm.c (make_preds_opaque): Fix comment.
2025 (optimize_mode_switching): Use NORMAL_MODE instead of
2026 MODE_USES_IN_EXIT_BLOCK. Change leftover instance of
2027 FP_MODE_NONE to no_mode. Rename MODE_AT_ENTRY to NORMAL_MODE.
2028 Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
2029 * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
2030 (MODE_USES_IN_EXIT_BLOCK): Delete.
2031 (MODE_AT_ENTRY) Rename to NORMAL_MODE.
2032 * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
2033 (MODE_AT_ENTRY): Rename to NORMAL_MODE.
2034 (MODE_NEEDED): Don't look for USE.
2035 (EPILOGUE_USES): Define.
2036
2037Sun May 28 23:26:59 2000 Philippe De Muyter <phdm@macqel.be>
2038
4912a07c 2039 * mklibgcc.in (all): Variable initialized to `libgcc'.
c30d43bf
JL
2040
20412000-05-28 Gabriel Dos Reis <gdr@codesourcery.com>
2042
2043 * toplev.h (skip_leading_substring): New macro.
2044 * toplev.c (decode_f_option): Use skip_leading_substring instead
2045 of strncmp.
2046 (decode_W_option): Likewise.
2047
20482000-05-28 Nick Clifton <nickc@cygnus.com>
2049
2050 * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
2051 modify reg_names.
2052
20532000-05-28 Richard Henderson <rth@cygnus.com>
2054
2055 * regclass.c (record_operand_costs): Protect reg_changes_size
2056 with CLASS_CANNOT_CHANGE_SIZE.
2057
2058 * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
2059
20602000-05-28 Richard Henderson <rth@cygnus.com>
2061
2062 * function.c (diddle_return_value): A pcc-style struct return
2063 returns a pointer.
2064
20652000-05-27 Zack Weinberg <zack@wolery.cumb.org>
2066
2067 * cppfiles.c: Read files in, using mmap if possible, then
2068 prescan them separately.
2069 (read_file, read_with_read): New functions.
2070 * cpplex.c: Don't define UCHAR_MAX.
2071 (_cpp_read_and_prescan): Rename to _cpp_prescan. Don't read
2072 the file here.
2073
2074 * cppinit.c (handle_option): Automatically define __cplusplus,
2075 __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
2076 the respective -lang switch.
2077
2078 * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
2079 prototype): Move to...
2080 * cpplib.h: ... here. Rename struct hashnode to struct
2081 cpp_hashnode and give it a typedef. Rename _cpp_lookup to
2082 cpp_lookup. Add 'fe_value' slot, a union tree_node *.
2083
20842000-05-27 Geoffrey Keating <geoffk@cygnus.com>
2085
2086 * config/rs6000/rs6000.md (movsi): Constify 'name'.
2087
2088 * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
2089 (class_can_change_size): New variable.
2090 (reg_changes_size): New variable.
4912a07c 2091 (init_reg_sets_1): Initialize class_can_change_size.
c30d43bf
JL
2092 (record_operand_costs): Remove subreg_changes_size.
2093 Don't pass it around. Instead update reg_changes_size.
4912a07c 2094 (regclass): Initialize and free reg_changes_size. If a register
c30d43bf
JL
2095 changes size, don't preference it to a class that contains
2096 registers that can't change size.
2097 (record_reg_classes): Don't look at subreg_changes_size.
2098
20992000-05-27 Richard Henderson <rth@cygnus.com>
2100
2101 * print-rtl.c (reg_names): Remove const.
2102 * regclass.c (reg_names): Likewise.
2103 * regs.h (reg_names): Likewise.
2104 * hard-reg-set.h (reg_names): Likewise.
2105
21062000-05-27 Richard Henderson <rth@cygnus.com>
2107
2108 * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
2109
21102000-05-27 Richard Henderson <rth@cygnus.com>
2111
2112 * config/alpha/alpha.c (alpha_does_function_need_gp): Test
2113 TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
2114 (alpha_expand_prologue): Emit prologue_mcount if needed.
2115 * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
2116 * config/alpha/alpha.md (prologue_mcount): New.
2117 * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
2118 (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
2119 * config/alpha/netbsd.h: Likewise.
2120
21212000-05-27 Richard Henderson <rth@cygnus.com>
2122
2123 * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
2124 change to config/elfos.h.
2125
21262000-05-27 Richard Henderson <rth@cygnus.com>
2127
2128 * Makefile.in (resource.o): Depend on except.h.
2129 * except.h (output_exception_table_data): Prototype.
2130 * genconfig.c (gen_peephole2): Prototype.
2131 * genemit.c (main): Include ggc.h.
2132 * genoutput.c: Revert parts of last change: include errors.h
2133 (main): Set progname.
2134 * recog.c: Include hard-reg-set.h before recog.h.
2135 * resource.c: Include except.h.
2136
2137 * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
2138 with RTX_CODE.
2139 (alpha_write_linkage): Protect with BUFSIZ.
2140 (alpha_need_linkage): Update prototype.
2141 * config/alpha/alpha.c (function_arg): Move VMS code here.
2142 (alpha_links_base): Remove.
2143 (alpha_links): New.
2144 (mark_alpha_links_node, mark_alpha_links): New.
2145 (alpha_write_one_linkage): New.
2146 (alpha_need_linkage): Use a splay tree. Build the linkage symbol.
2147 (alpha_write_linkage): Use splay_tree_foreach.
2148 * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
2149 to get the linkage symbol.
2150 (call_value_vms): Likewise.
2151 * config/alpha/elf.h (output_file_directive): Remove decl.
2152 (ctors_section, dtors_section): Prototype.
2153 (sbss_section, sdata_section): Prototype.
2154 * config/alpha/vms.h (FUNCTION_ARG): Remove.
2155 (readonly_section, link_section, literals_section): Prototype.
2156 (ctors_section, dtors_section): Prototype.
2157 (vms_valid_decl_attribute_p): Remove decl.
2158 (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
2159
21602000-05-27 Geoff Keating <geoffk@cygnus.com>
2161
2162 * reload.c (get_secondary_mem): Don't widen floating-point modes.
2163
2164 * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
2165 substituting the REG in a (subreg:X (reg:Y ...)).
2166
21672000-05-28 Neil Booth <NeilB@earthling.net>
2168
2169 * cpplex.c (_cpp_lex_line): Merge vertical space. Flag
2170 first token of a line BOL. Update EOF code for this.
2171 Remove illegal directive check - it appears in the (not
2172 yet committed) caller.
2173 * cpplib.h (BOL): New flag.
2174
21752000-05-28 Neil Booth <NeilB@earthling.net>
2176
4912a07c 2177 * cpplex.c (_cpp_init_toklist): No comment space to initialize.
c30d43bf
JL
2178 (_cpp_free_toklist): No comment space to free.
2179 (expand_comment_space): Remove.
2180 (save_comment_space): Place the comment in the current token and
2181 not in a separate comment space.
2182 (_cpp_lex_line): Save comments during plain code and #define
2183 directives only.
2184 * cpplib.h (struct _cpp_toklist): Remove comment space.
2185
21862000-05-28 Neil Booth <NeilB@earthling.net>
2187
2188 * cppexp.c (parse_assertion): Supply extra argument to
2189 _cpp_init_toklist.
2190 * cpplib.c (do_assert, do_unassert): Similarly.
2191 * cpphash.h (_cpp_init_toklist) Update.
2192 (_cpp_expand_token_space): New.
2193 (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
2194 * cpplex.c (_cpp_init_toklist): New argument.
2195 (parse_string2): New argument multiline_ok.
2196 (spell_token): Take a const cpp_token *.
2197 (INIT_NAME): Replace with INIT_TOKEN_NAME. Update tokens_used.
2198 (SPELL_ macros): Replace with enum.
2199 (expand_token_space): Replace with _cpp_expand_token_space.
2200 Take COUNT argument.
2201 (IS_DIRECTIVE): Update.
2202 (_cpp_lex_line): Update token structure before parsing number.
2203 Don't assume start at beginning of token list.
2204 (save_comment): Use INIT_TOKEN_NAME.
2205
22062000-05-27 Zack Weinberg <zack@wolery.cumb.org>
2207
2208 * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
2209 -Wmissing-prototypes.
2210 * configure: Regenerate.
2211 * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
2212
2213 * builtins.c, calls.c: Change all instances of gen_call_* or
2214 gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
2215 * calls.c (struct_value_size_rtx): Separate definition from
2216 initialization to avoid unused variable warning.
2217
2218 * genflags.c (gen_macro): New function.
2219 (gen_proto): Call it for gen_call_* and gen_sibcall_*.
2220 (gen_nonproto): Delete.
2221 (gen_insn): Put all insns on the same obstack.
2222 (main): Generate prototypes for everything unconditionally.
2223
2224 * configure.in: Add AC_CHECK_TYPE(ssize_t). Remove commented
2225 out check for wchar_t.
2226 * acconfig.h: Add template for ssize_t. Remove @TOP@.
2227 * system.h: Add infrastructure for defining missing
2228 TYPE_MAX/TYPE_MIN macros. Use it to provide fallback
2229 definitions of UCHAR_MAX and SSIZE_MAX.
2230 * configure: Regenerate.
2231 * config.in: Regenerate.
2232
2233 * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
2234 Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
2235 headers.
2236 (clean): No need to delete libgcc1.a, libgcc1-asm.a,
2237 libgcc2.a, or libgcc1.null.
2238
22392000-05-27 Richard Henderson <rth@cygnus.com>
2240
2241 * Makefile.in (recog.o): Don't depend on resource.h.
2242 * recog.c: Don't include resource.h.
2243 (recog_last_allowed_insn): Remove.
2244 (recog_next_insn): Remove.
2245 (struct peep2_insn_data): New.
2246 (peep2_insn_data, peep2_current): New.
2247 (peep2_next_insn): New.
2248 (peep2_regno_dead_p, peep2_reg_dead_p): New.
2249 (peep2_find_free_register): New.
2250 (peephole2_optimize): Track life information by insn as we go.
2251 * recog.h: Update declarations.
2252 * resource.c (find_free_register, reg_dead_p): Remove.
2253 * resource.h: Remove their declarations.
2254 * toplev.c: Include hard-reg-set.h before recog.h.
2255
2256 * genconfig.c (max_insns_per_peep2): New.
2257 (gen_peephole2): New.
2258 (main): Call it.
2259 * genemit.c (output_peephole2_scratches): Generate calls to
2260 peep2_find_free_register; adjust surrounding code.
2261 (main): Have insn-emit.c include hard-reg-set.h before recog.h.
2262 * genrecog.c (change_state): Don't track last_insn.
2263 (write_action): Write into *_pmatch_len before accepting.
2264 (write_tree): Adjust peephole2_insns and subroutines to match.
2265
2266 * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
2267
2268 * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
2269 (hard_int_register_operand): New.
2270 * config/alpha/alpha-protos.h: Declare it.
2271 * config/alpha/alpha.h (PREDICATE_CODES): Update.
2272 * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
2273 as needed; use peep2_reg_dead_p instead of dead_or_set_p.
2274
22752000-05-27 Richard Henderson <rth@cygnus.com>
2276
2277 * function.c (thread_prologue_epilogue_insns): Don't move the
2278 line note at the head of the chain. Only force a lineno note
2279 before the end of block 0.
2280
22812000-05-27 Richard Henderson <rth@cygnus.com>
2282
2283 * gensupport.c (collect_insn_data): Record the maximum number
2284 of alternatives, not the last seen.
2285
2286 * genoutput.c: Don't include errors.h.
2287 (struct data): Add lineno member.
2288 (have_error): New.
2289 (scan_operands): Use message_with_line instead of error.
2290 (validate_insn_alternatives): Likewise.
2291 (gen_insn): Accept and store the pattern's line number.
2292 (gen_peephole, gen_expand, gen_split): Likewise.
2293 (main): Don't set progname. Pass line_no to gen_foo.
2294
22952000-05-27 Richard Henderson <rth@cygnus.com>
2296
2297 * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
2298 * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
2299 * config/d30v/d30v.md (attr predicable): New.
2300 (all insn patterns): Mark non-predicable patterns; use %: on the rest.
2301 (andsi3*): Unify into one pattern.
2302 (iorsi3*, xorsi3*): Likewise.
2303 (peephole2 patterns): Use peep2_reg_dead_p; verify not a
2304 conditional return.
2305 (old cond_exec patterns): Remove.
2306 (define_cond_exec): New.
2307
2308Sat May 27 11:01:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2309
2310 * tree.h (TREE_CODE_LENGTH): New macro.
2311 * c-common.c (c_find_base_decl): Use it.
2312 * expr.c (safe_from_p): Likewise.
2313 * print-tree.c (print_node): Likewise.
2314 * tree.c (make_node, copy_node, get_identifier): Likewie.
2315 (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
2316 (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
2317 * fold-const.c (make_range): Likewise.
2318 (fold): Likewise; also use first_rtl_op.
2319 * c-iterate.c (collect_iterators): Use first_rtl_op.
2320 * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
2321 Use IS_EXPR_CODE_CLASS.
2322 (preexpand_calls): Likewise.
2323 * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
2324 and TREE_CODE_LENGTH.
2325 * stmt.c (warn_if_unused_value): If no operands, no unused value.
2326
23272000-05-26 Geoffrey Keating <geoffk@cygnus.com>
2328
2329 * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
2330 than '%1(%*)'.
2331 (movdi_internal64): Likewise.
2332
2333 * config/rs6000/rs6000.md: Correct order of operands for DImode
2334 boolean patterns.
2335
2336 * config/rs6000/rs6000.c (boolean_or_operator): New function.
2337 * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
2338 * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
2339 * config/rs6000/rs6000.md: Use boolean_or_operator instead of
2340 boolean_operator for the boolean patterns without NOTs.
2341
2342 * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
2343 from reg_or_u_cint_operand. Change comment and behaviour.
2344 (logical_operand): Clean up, add assertion.
2345 (non_logical_cint_operand): Also check for
2346 reg_or_logical_cint_operand.
2347 * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
2348 * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
2349 in the expander.
2350 (xorsi3): Likewise.
2351 (iordi3): Likewise.
2352 (xordi3): Likewise.
2353
23542000-05-26 Mark Mitchell <mark@codesourcery.com>
2355
2356 * tree.h (struct record_layout_info): Rename to (struct
2357 record_layout_info_s).
2358 * stor-layout.c (start_record_layout): Replace
2359 `record_layout_info' with `record_layout_info_s'.
2360
23612000-05-26 Richard Earnshaw <rearnsha@arm.com>
2362
2363 * flow.c (find_label_refs): New function.
2364 (find_basic_blocks_1): Call it for each alternative of a call
2365 placeholder.
2366
23672000-05-26 Richard Earnshaw <rearnsha@arm.com>
2368
2369 * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
2370 of get_pc.
2371
23722000-05-25 Richard Henderson <rth@cygnus.com>
2373
2374 * config/alpha/alpha.c (alpha_comparison_operator): Don't be
2375 so strict about DImode.
2376 (alpha_swapped_comparison_operator): Likewise.
2377 * config/alpha/alpha.md (*setne_internal): Name it. Allow
2378 any integer output mode.
2379 (*setcc_internal): Likewise.
2380 (*setcc_swapped_internal): Likewise.
2381 (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
2382 (*mov[qhs]icc_internal): New.
2383 (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
2384
23852000-05-25 J. David Anglin <dave@hiauly1.hia.nrc.ca>
2386
2387 * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
2388
23892000-05-25 Richard Henderson <rth@cygnus.com>
2390
2391 * bb-reorder.c (reorder_block_def): Reorder elements for size.
2392 Remove add_jump; add next; replace flags with visited.
2393 (rbd_init): Remove.
2394 (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
2395 (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
2396 (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
2397 (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
2398 (RBI): New.
2399 (reorder_index, reorder_last_visited): Remove.
2400 (skip_insns_after_block): Rewrite to use a switch.
2401 (get_common_dest): Remove.
2402 (chain_reorder_blocks): Remove.
2403 (record_effective_endpoints): Split out from reorder_basic_blocks.
2404 (make_reorder_chain): Likewise. Loop until all blocks are placed.
2405 (make_reorder_chain_1): Renamed from old make_reorder_chain.
2406 Only construct the reorder chain, do not move insns. Try harder
2407 to tail recurse.
2408 (label_for_bb, emit_jump_to_block_after): New.
2409 (fixup_reorder_chain): Use them. Do bulk block movement. Examine
2410 and adjust the jump insns appropriately. Fixup basic_block_info.
2411 (verify_insn_chain): Always define.
2412 (relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko
2413 in allocation size.
2414 (make_new_scope): Don't write zeros to calloc'd space.
2415 (build_scope_forest): Rely on xrealloc to DTRT.
2416 (reorder_basic_blocks): Don't build loop nest. Don't fail if
2417 profile_arc_flag. Streamline EH test.
2418
2419 * flow.c (redirect_edge_succ, redirect_edge_pred): New.
2420 * basic-block.h: Declare them.
2421
24222000-05-25 Alexandre Oliva <aoliva@cygnus.com>
2423
2424 * emit-rtl.c (reset_used_decls): New function.
2425 (unshare_all_rtl_again): Call it.
2426
24272000-05-25 Zack Weinberg <zack@wolery.cumb.org>
2428
2429 * cpplex.c (maybe_macroexpand): Warn about function-like
2430 macros used in non-function context, if -Wtraditional.
2431
24322000-05-25 Mark Mitchell <mark@codesourcery.com>
2433
2434 * recog.c (peephole2_optimize): Use INSN_P.
2435
24362000-05-25 Richard Henderson <rth@cygnus.com>
2437
2438 * ifcvt.c (seq_contains_jump): New.
2439 (noce_try_store_flag_constants): Use it to fail conversion.
2440 (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
2441
24422000-05-25 Mark Mitchell <mark@codesourcery.com>
2443
2444 * except.h (can_throw): Declare it.
2445 * except.c (can_throw): Give it external linkage.
2446 * resource.c (find_dead_or_set_registers): Use can_throw.
2447
24482000-05-25 Richard Henderson <rth@cygnus.com>
2449
2450 * flow.c (mark_set_1): Don't record conditionally dead memory.
2451
24522000-05-25 Jan Hubicka <jh@suse.cz>
2453
2454 * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
2455 and pc_set at the place of simplejump_p and condjump_p.
2456 * cse.c (record_jump_equiv): Likewise.
2457 * emit-rtl.c (emit): Likewise.
2458 * explow.c (find_next_ref): Likewise.
2459 * flow.c (tidy_fallthru_edge): Likewise.
2460 (init_propagate_block_info): Likewise.
2461 * gcse.c (delete_null_pointer_checks): Likewise.
2462 * ifcvt.c (cond_exec_get_condition, noce_get_condition,
2463 dead_or_predicable): Likewise.
2464 * integrate.c (copy_insn_list): Likewise.
2465 * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
2466 for_each_insn_in_loop, check_dbra_loop, get_condition,
2467 insert_bct, load_mems): Likewise.
2468 * resource.c (find_dead_or_set_registers): Likewise.
2469 * sibcalls.c (simplejump_p): Likewise.
2470 * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
2471
24722000-05-25 David Edelsohn <edelsohn@gnu.org>
2473
2474 * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
2475 to STRING case. Use doubleword STRING move for TARGET_POWERPC64
2476 when unaligned.
2477 * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
2478 (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
2479 (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
2480 * rs6000.md: Name various internal patterns.
2481
24822000-05-25 Jan Hubicka <jh@suse.cz>
2483
2484 * jump.c (invert_exp_1): Remove first argument, use pc_set
2485 to get the expression.
2486 (redirect_exp): Make static; redirect only the pc_set expression,
2487 remove first argument.
2488 (invert_exp): Remove first argument, make static.
2489 (jump_optimize): Use any_condjump_p, any_uncondjump_p and
2490 any_onlyjump at most places where we originaly did condjump_p
2491 and simplejump_p.
2492 (jump_back_p, follow_jumps, thread_jumps): Likewise.
2493 (delete_barrier_succesors): Use pc_set.
2494 (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
2495 calls of invert_exp and redirect_exp.
2496 * rtl.h (redirect_exp, invert_exp): Remove.
2497 * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
2498
24992000-05-25 Richard Henderson <rth@cygnus.com>
2500
2501 * stmt.c (expand_end_bindings): Fix thinko last change.
2502
25032000-05-25 Andrew MacLeod <amacleod@cygnus.com>
2504 Andrew Haley <aph@cygnus.com>
2505
2506 * except.c (func_eh_entry): Add emitted field.
2507 (new_eh_region_entry): Set emitted field to 0;
2508 (output_exception_table_entry): Only emit previously un-emitted data,
2509 and send it to the eh_data section.
2510 (output_exception_table): Break out common parts. Output
2511 exception table for entire compilation unit to eh_data section.
2512 (output_exception_table_data): Common parts of output_exception_table.
2513 Send output to eh_data section.
2514 (output_function_exception_table): Output exception table data for
2515 a single function to eh_data section.
2516 (free_exception_table): New external to free the table.
2517 * except.h (free_exception_table): Add prototype.
2518 (output_function_exception_table): Add prototype.
2519 * final.c (final_end_function): Output function exception table
2520 for IA64_UNWIND_INFO.
2521 (final_scan_insn): Emit any unwind directives for an insn.
2522
2523 * frame-dwarf2.c: New file containing all DWARF 2 specific code
2524 from frame.c.
2525 * frame.c: Remove all DWARF 2 specific code.
2526 * config/ia64/frame-ia64.c: New file.
2527 (gthread_stuff): Make all gthread available with
2528 IA64_UNWIND_INFO.
2529 (dwarf_fde): Define an IA64 struct for dwarf_fde.
2530 (__register_frame_info, __register_frame): Move to common area of file.
2531 (__register_frame_info_table, __register_frame_table): Move to common i
2532 area.
2533 (__deregister_frame_info, __deregister_frame): Move to common area.
2534 (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
2535 (read_uleb128): New version for ia64.
2536 (get_unwind_record): Read the next IA-64 unwind record.
2537 (read_R_record): Read a region header record.
2538 (process_a_b_reg_code): X record helper.
2539 (read_X_record): Read an X format record.
2540 (read_B_record): Read a B format record.
2541 (P3_record_types): List of record types matching the P3 format.
2542 (P7_record_types): List of record types matching the P7 format.
2543 (P8_record_types): List of record types matching the P8 format.
2544 (read_P_record): Read a P format record.
2545 (init_ia64_reg_loc): Set default fields for a register.
2546 (init_ia64_unwind_frame): Set defaults for all register records.
2547 (execute_one_ia64_descriptor): Execute one descriptor record.
2548 (rse_address_add): Calculate the position of a local reg in memory.
2549 (normalize_reg_loc): Turn a location descriptor into a memory address.
2550 (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
2551 within a specified PC offset range.
2552 (get_real_reg_value): Given a register location, retrieve its value.
2553 (set_real_reg_value): Change the value of a register location.
2554 (copy_reg_value): Copy reg values, if needed.
2555 (copy_saved_reg_state): Copy all registers that need to be copied.
2556 (process_state_between): Normalize all frame register records that
2557 fall within the specified PC range.
2558 (frame_translate): Take a processed frame description, and turn
2559 everything into addresses.
2560 (build_ia64_frame_state ): Find and create frame state record for a PC.
2561 (get_personality): Get the personality routine for a given frame.
2562 (get_except_table): Get the exception table for a given frame.
2563 (record_name): Unwind record names for debugging.
2564 (print_record): Print and unwind record.
2565 (print_all_records): Print an entire unwind image.
2566 (__ia64_backtrace): Print a backtrace.
2567 (ia64_backtrace_helper): New function.
2568 (__register_frame_info_aux): New function.
2569 * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
2570
2571 * frame.h (enum unw_record_type): New unwind record types.
2572 (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
2573 (struct unw_r_record, unwind_record): New unwind record structs.
2574 (struct unwind_info_ptr): Unwind information layout.
2575 (IA64_UNW_LOC_TYPE_*): Macros for different types for location
2576 descriptors.
2577 (struct ia64_reg_loc): Register location description.
2578 (struct ia64_frame_state): Location of all registers in a frame.
2579 (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
2580 * libgcc2.c (__ia64_personality_v1): Personality routine.
2581 (__calc_caller_bsp): Calculate the bsp register for the caller's
2582 frame.
2583 (ia64_throw_helper): Figure out who to return to and set up the
2584 registers.
2585 (__throw): Throw routine.
2586
2587 * output.h (assemble_eh_align, assemble_eh_label): New functions
2588 to generate EH info where we want it.
2589 (assemble_eh_integer): New function.
2590 * toplev.c (compile_file): Output module level exception table for
2591 non-ia64 targets.
2592 (main): Set exceptions_via_longjump and flag_new_exceptions based
2593 on IA64_UNWIND_INFO too.
2594
2595 * varasm.c (assemble_eh_label): Generate a label via
2596 ASM_OUTPUT_EH_LABEL if it has been specified.
2597 (assemble_eh_align): Generate an alignment directive via
2598 ASM_OUTPUT_EH_ALIGN if it has been specified.
2599 (assemble_eh_label): Generate an integer value via
2600 ASM_OUTPUT_EH_type if they have been specified.
2601 * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
2602 (ia64_init_builtins): Add __builtin_ia64_bsp
2603 and __builtin_ia64_flushrs.
2604 (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
2605 IA64_BUILTIN_FLUSHRS.
2606 * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
2607 IA64_BUILTIN_FLUSHRS.
2608
2609 * config/ia64/ia64.md (flushrs): New insn to flush the register
2610 stack. Add to unspec list.
2611
2612 * config/ia64/crtbegin.asm (frame_object): Change size.
2613 (__do_frame_setup_aux): New function.
2614 * config/ia64/crtend.asm: call __do_frame_setup_aux.
2615 * config/ia64/t-ia64 (LIB2ADDEH): Add.
2616 * Makefile.in (LIB2ADDEH): Add.
2617 (LIB2ADD): Use LIB2ADDEH.
2618
26192000-05-24 Richard Henderson <rth@cygnus.com>
2620
2621 * recog.c (offsettable_address_p): If mode size is zero, assume
2622 BIGGEST_ALIGNMENT.
2623
26242000-05-24 J. David Anglin <dave@hiauly.hia.nrc.ca>
2625
2626 * configure.in: Check for -Wno-long-long option support and improve
2627 handling of warning CFLAGS for stages 1 and 2.
2628 * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
2629 * configure: Regenerate.
2630
2631Wed May 24 19:37:53 2000 Jeffrey A Law (law@cygnus.com)
2632
2633 * gcc.texi: Remove contributor list. Instead include contrib.texi.
2634 * contrib.texi: New file.
2635
2636Thu May 25 02:27:22 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2637
2638 * loop.c (basic_induction_var): Avoid double recording of an increment.
2639
2640Thu May 25 02:19:27 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2641
2642 * Back out this patch:
2643 Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
2644 * loop.h (struct induction): Add multi_insn_incr.
2645 * loop.c (basic_induction_var): New multi_insn_incr argument.
2646 Set it if we search back through previous insns for the biv.
2647 (record_biv): New multi_insn_incr argument; fill in struct induction.
2648 (strength_reduce): Discard an iv with multiple bivs, any of
2649 which require multiple insns to increment.
2650
2651 * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
2652
2653Thu May 25 02:09:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2654
2655 * rtl.h (loc_mentioned_in_p): Declare.
2656 * reload.c (loc_mentioned_in_p): Moved from here...
2657 * rtlanal.c (loc_mentioned_in_p): to here. No longer static.
2658 Fix loop increment for 'E' handling.
2659 * loop.c (strength_reduce): When doing biv->giv conversion,
2660 take multi-insn biv increments into account.
2661
26622000-05-24 Jason Merrill <jason@casey.soma.redhat.com>
2663
2664 * stmt.c (expand_end_bindings): Look through NOTEs to find a
2665 BARRIER.
2666
26672000-05-24 Mark Mitchell <mark@codesourcery.com>
2668
2669 * calls.c (expand_call): Handle cleanups in tail-recursion
d6a7951f 2670 arguments analogously to cleanups in sibling calls.
c30d43bf
JL
2671
26722000-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2673
2674 * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
2675 All callers changed.
2676
26772000-05-24 Alexandre Oliva <aoliva@cygnus.com>
2678
2679 * expr.c (expand_assignment, store_expr, expand_expr,
2680 expand_expr_unaligned): Set in_check_memory_usage while emitting
2681 chkr_check_addr libcall.
2682
26832000-05-24 Nick Clifton <nickc@cygnus.com>
2684
2685 * fold-const.c (extract_muldiv): When constructing a
2686 multiplier/divisor, do not expect const_binop to correctly
ff7cc307 2687 determine if overflow has occurred, so check explicitly.
c30d43bf
JL
2688
26892000-05-24 Alexandre Oliva <aoliva@cygnus.com>
2690
2691 * c-decl.c (build_enumerator): Don't modify the value's type,
2692 convert it.
2693
26942000-05-24 Andreas Jaeger <aj@suse.de>
2695
2696 * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
2697
26982000-05-24 Eric Christopher <echristo@cygnus.com>
2699
2700 * configure.in: Redefine inhibit_libc conditions.
2701 * libgcc2.c: Remove inhibit_libc conditional define.
2702 * configure: Regenerate.
2703
27042000-05-24 Phil Edwards <pme@sourceware.cygnus.com>
2705
2706 * configure.in: For --enable-languages=LIST, check for empty LIST.
2707 * configure: Regenerate.
2708
27092000-05-24 Lars Brinkhoff <lars@nocrew.org>
2710
2711 * pdp11.h (STACK_BOUNDARY): Define.
2712
27132000-05-24 Jakub Jelinek <jakub@redhat.com>
2714
2715 * ifcvt.c (if_convert): Update life info globally.
2716
27172000-05-24 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2718
2719 * emit-rtl.c (unshare_all_decls): New function.
2720 (unshare_all_rtl): Call it.
2721
27222000-05-23 Nick Clifton <nickc@cygnus.com>
2723
2724 * configure.in: Treat 'strongarm' as if it were 'arm' when
2725 determining cpu type.
2726
2727 * configure: Regenerate.
2728
2729 * config/arm/arm.c: Change 'char *' to 'const char *' for cases
2730 where constant strings are involved.
2731
2732 * config/arm/arm.h (arm_condition_codes): Change type to 'const
2733 char *'.
2734
2735 * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
2736 cases where constant strings are involved.
2737
2738Tue May 23 15:08:31 2000 Clinton Popetz <cpopetz@cygnus.com>
2739
2740 * config/sh/sh.c (gen_far_branch, split_branches): Update
2741 to reflect new prototypes for redirect_jump and invert_jump.
2742 (sh_insn_length_adjustment): Get rid of const warnings.
2743
27442000-05-23 Kazu Hirata <kazu@hxi.com>
2745
2746 * invoke.texi (Options for Debugging Your Program or GCC): Update
2747 the names of dump files.
2748
2749Tue May 23 13:58:52 2000 Philippe De Muyter <phdm@macqel.be>
2750
2751 * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
2752 * configure: Regenerated.
2753
27542000-05-23 Zack Weinberg <zack@wolery.cumb.org>
2755
2756 * simplify-rtx.c (SIGN_EXTEND): New macro.
2757 (simplify_unary_operation, simplify_binary_operation,
2758 simplify_relational_operation): Use SIGN_EXTEND. Make low
2759 halves of (low, high) pairs unsigned if they weren't already.
2760 (simplify_ternary_operation): Cast INTVAL to unsigned before
2761 comparing to a MODE_BITSIZE.
2762
27632000-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2764
2765 * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
2766 rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
2767
2768 * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
2769 gcc_AC_NEED_DECLARATIONS.
2770
2771 * dwarfout.c: Don't prototype time().
2772
2773 * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
2774
2775 * system.h: Likewise.
2776
2777 * toplev.c: Likewise.
2778
27792000-05-23 Zack Weinberg <zack@wolery.cumb.org>
2780
2781 * c-decl.c (pushdecl): Invert sense of test for non-global types.
2782
2783Tue May 23 18:11:42 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2784
2785 * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
2786
27872000-05-23 Jonathan Larmour <jlarmour@redhat.co.uk>
2788
2789 * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
2790
2791Tue May 23 06:50:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2792
2793 * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
2794 (alpha_start_function): Never write ..ng label if VMS or NT.
2795 (alpha_align_insns): Remove GP_IN_USE arg.
2796 Alignment now unsigned.
2797 (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
2798 * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
2799 and two define_insn's.
2800
28012000-05-22 Richard Henderson <rth@cygnus.com>
2802
2803 * combine.c (simplify_comparison): Use trunc_int_for_mode.
2804
28052000-05-22 Richard Henderson <rth@cygnus.com>
2806
2807 * stor-layout.c (place_field): Change rli->size to rli->offset.
2808
28092000-05-22 Richard Henderson <rth@cygnus.com>
2810
2811 * function.c (thread_prologue_and_epilogue_insns): Make sure
2812 existing line number notes appear after the prologue.
2813
2814Mon May 22 21:49:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2815
2816 * config/alpha/alpha.c (alpha_fnname): New static variable.
2817 (print_operand, case '~'): New case.
2818 (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
2819 (alpha_start_function): Set alpha_fnname.
2820 Write "ng" label if no ldgp; don't write ldgp insn.
2821 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
2822 * config/alpha/alpha.md (prologue_ldgp): New define_insn.
2823
2824Mon May 22 11:30:48 2000 Clinton Popetz <cpopetz@cygnus.com>
2825
2826 * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
2827 on deleted labels.
2828
28292000-05-22 Zack Weinberg <zack@wolery.cumb.org>
2830
2831 * varasm.c (eh_frame_section): Revert change to argument list.
2832
2833Mon May 22 13:14:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2834
2835 * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
2836 (gen_extend_insn, can_fix_p, can_float_p): Likewise.
2837
2838 * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
2839 dangling "else" that causes "break" to be conditional.
2840 Also remove unneeded code at start.
2841
2842Mon May 22 17:31:35 2000 Philippe De Muyter <phdm@macqel.be>
2843
2844 * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
2845 * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
2846 * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
2847
28482000-05-22 Jakub Jelinek <jakub@redhat.com>
2849
2850 * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
2851 just one argument.
2852
2853Mon May 22 06:57:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2854
2855 * alias.c (record_component_aliases): New function.
2856 * tree.h: Clean up some declarations and comments.
2857 (record_component_aliases): New declaration.
2858 * tree.c (get_alias_set): If type and has alias set, use it.
2859
28602000-05-22 Richard Henderson <rth@cygnus.com>
2861
2862 * simplify-rtx.c (simplify_ternary_operation): Try to simplify
2863 IF_THEN_ELSE to a setcc form.
2864 * jump.c (can_reverse_comparison_p): Be prepared for insn null.
2865
28662000-05-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2867
2868 * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
2869 (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
2870
2871Sun May 21 16:42:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2872
2873 * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
2874 not a PARALLEL.
2875
28762000-05-20 Alexandre Oliva <aoliva@cygnus.com>
2877
2878 * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
2879 * config/mn10300/mn10300.c (print_operand): Likewise.
2880
2881 * final.c (split_double): Right shift of negative values is not
2882 portable.
2883
2884 * ifcvt.c (if_convert): Scan and kill dead code.
2885
2886 * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
2887
28882000-05-20 Zack Weinberg <zack@wolery.cumb.org>
2889
2890 * diagnostic.c: Eliminate implicit int.
2891 * except.c, gcc.c: Add static prototypes.
2892 * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
2893 * gensupport.c (process_rtx): Use XVEC to initialize vector
2894 slot of 'split'.
2895
2896 * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
2897 debug_reg_names instead of static reg_names. If not, define
2898 global reg_names.
2899 * regclass.c: Don't define global reg_names unless
2900 DEBUG_REGISTER_NAMES is defined.
2901
2902 * reload1.c (order_regs_for_reload): Remove unused variable.
2903 * varasm.c: Include output.h after defaults.h. Define
2904 eh_frame_section as function of no args, not of unspecified args.
2905
2906 * gcc.c: Constify argbuf; arguments to store_arg,
2907 process_command, main; elements of struct command and struct
2908 switchstr; local variables in execute, process_command, main.
2909
29102000-05-20 Bruce Korb <bkorb@gnu.org>
2911
2912 * fixinc/inclhack.def: many applications of c_fix=format + tests
2913 * fixinc/check.diff: regenerated
2914 * fixinc/fixincl.x: regenerated
2915
2916Sat May 20 09:30:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2917
2918 * alias.c: Clarify some comments.
2919 (record_base_value): REGNO is unsigned.
2920 * rtl.h (record_base_value): Likewise.
2921
2922 * alias.c (aliases_everything_p): Don't special-case QImode here.
2923 * c-common.c (c_get_alias_set): Do it here.
2924 Handle BIT_FIELD_REF by getting alias info for arg.
2925 Use POINTER_TYPE_P.
2926
29272000-05-20 Alexandre Oliva <aoliva@cygnus.com>
2928
2929 * mklibgcc.in: Restore rule to create ${dir}.
2930
2931Sat May 20 08:45:41 2000 H.J. Lu <hjl@gnu.org>
2932
2933 * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
2934 GCC_FOR_TARGET used by MULTILIBS.
2935 * mklibgcc.in: Make sure each .o file depends on the
2936 directory it will be in.
2937 Make the multilib directory depends libgcc.
2938
2939Sat May 20 08:29:28 2000 H.J. Lu <hjl@gnu.org>
2940
2941 * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
2942
2943Sat May 20 07:27:35 2000 Alexandre Oliva <aoliva@cygnus.com>
2944
2945 * fold-const.c (make_range): Handle degenerated intervals.
2946 Fixes c-torture/execute/991221-1.c
2947
2948Fri May 19 18:16:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2949
2950 * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
2951 * reload.c (find_equiv_reg): Likewise.
2952 * alias.c (init_alias_analysis): Likewise.
2953 Only call prologue_epilogue_contains on insns.
2954 * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
2955 * bb-reorder.c (hard-reg-set.h): Include earlier.
2956 * haifa-sched.c (hard-reg-set.h): Likewise.
2957 * ifcvt.c (hard-reg-set.h): Likewise.
2958 * local-alloc.c (hard-reg-set.h): Likewise.
2959 * loop.c (hard-reg-set.h): Likewise.
2960 * predict.c (hard-reg-set.h): Likewise.
2961 * regrename.c (hard-reg-set.h): Likewise.
2962 * flow.c (hard-reg-set.h): Likewise.
2963 (reg_set_to_hard_reg_set): New function.
2964 * bitmap.c (regs.h, basic-block.h): No longer include.
2965 (bitmap.h): Now include.
2966 * conflict.c (hard-reg-set.h): Include.
2967 * profile.c (hard-reg-set.h): Likewise.
2968 * print-rtl.c (hard-reg-set.h): Likewise.
2969 * sbitmap.c (hard-reg-set.h): Likewise.
2970 * toplev.c (hard-reg-set.h): Likewise.
2971 * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
2972 * hard-reg-set.h (reg_names): Now constant.
2973 * regs.h (reg_names): Likewise.
2974 * regclass.c (reg_names): Likewise.
2975 * loop.h (basic-block.h): No longer include.
2976 (bitmap.h): Now include.
2977 * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
2978 * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
2979 (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
2980
29812000-05-19 Jan Hubicka <jh@suse.cz>
2982 Richard Henderson <rth@cygnus.com>
2983
2984 * basic-block.h (struct edge_def): New field "count".
2985 (struct basic_block_def): Likewise.
2986 * flow.c (entry_exit_blocks): Add count fileds.
2987 (split_edge): Keep count information up-to-date.
2988 (dump_edge_info, dump_flow_info): Dump count fields.
2989
2990 * final.c (count_instrumented_edges): Rename to edge from arc.
2991 (end_final): Update users.
2992 * profile.c: Include expr.h, basic-block.h.
2993 (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
2994 (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
2995 (ignore_next_note, return_label_execution_count): Kill.
2996 (bbg_file_name, da_file_name): Kill.
2997 (edge_info, bb_info): New structures.
2998 (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
2999 (count_instrumented_edges, total_num_edges): Rename to edge from arc.
3000 (total_num_edges_instrumented): Likewise.
3001 (init_arc, expand_spanning_tree): Kill.
3002 (fill_spanning_tree, tablejump_entry_p): Kill.
3003 (instrument_edges): Rewrite from instrument_arcs to use
3004 commit_edge_insertions infrastructure.
3005 (compute_branch_probabilities): Remove arguments; rewrite for
3006 CFG infrastructure; use rtl_dump_file directly.
3007 (branch_prob, find_spanning_tree): Likewise.
3008 (union_groups, find_group): New.
3009 (init_branch_prob): Make bbg_file_name and da_file_name local.
3010 (end_branch_prob): Use rtl_dump_file directly.
3011 (init_edge_profiler): Rename to edge from arc.
3012 (output_arc_profiler): Kill.
3013 (gen_edge_profiler): New.
3014 (output_func_start_profiler): Turn off profiling. Make the
3015 constructor static when we can.
3016 * rtl.h (branch_prob, end_branch_prob): Update prototypes.
3017
3018 * toplev.c (DFI_flow): Remove.
3019 (DFI_cfg, DFI_life): New.
3020 (dump_file): Update accordingly.
3021 (compile_file): Call end_branch_prob if profile_arc_flag too.
3022 (rest_of_compilation): Move flow1 cfg creation to DFI_cfg. Do edge
3023 profiling after the CFG is built. Move flow1 life analysis to
3024 DFI_life. Always estimate remaining probabilities.
3025
30262000-05-19 Richard Henderson <rth@cygnus.com>
3027
3028 * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
3029
3030 * flow.c (make_edges): The sibling call edge to exit is abnormal.
3031
30322000-05-19 Richard Henderson <rth@cygnus.com>
3033
3034 * jump.c (redirect_jump): Add delete_unused argument. Don't
3035 remove labels and code following when LABEL_NUSES goes to zero.
3036 (invert_jump): Likewise.
3037 (jump_optimize_1): Fix redirect/invert arguments.
3038 (do_cross_jump, thread_jumps): Likewise.
3039 * flow.c (split_edge): Likewise.
3040 * reorg.c (optimize_skip): Likewise.
3041 (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
3042 * profile.c (instrument_arcs): Likewise.
3043 * loop.c (find_and_verify_loops): Likewise. Fix indentation.
3044 * rtl.h: Update prototypes.
3045
3046Fri May 19 12:05:13 2000 Clinton Popetz <cpopetz@cygnus.com>
3047
3048 * ssa.c (convert_from_ssa): Tell life_analysis we need death
3049 notes.
3050 (make_regs_equivalent_over_bad_edges): Only look at abnormal
3051 critical edges.
3052
30532000-05-19 Zack Weinberg <zack@wolery.cumb.org>
3054
3055 * cpphash.c (funlike_macroexpand): Make sure not to walk p1
3056 past l1 when deleting whitespace and markers.
3057
3058 * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
3059 * cpplib.c (do_unassert): Put the list to compare against on
3060 the stack.
3061
30622000-05-19 Bruce Korb <bkorb@gnu.org>
3063
3064 * fixinc/README: cleaned up old documentation
3065 * fixinc/check.diff: regenerated & verified on OSR5 on ix86
3066 * fixinc/check.tpl: compute the list of needed directories
3067 emit "#if defined(name)" because of conflict
3068 omit machine name differences from output differences
3069 * fixinc/inclhack.def( m88k_multi_incl ): Use `wrap' function
3070 (machine_name): change test text to use `sed' markers
3071 * fixinc/fixincl.x: regen
3072
3073Fri May 19 06:49:35 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3074
3075 * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
3076 a CONSTRUCTOR.
3077
30782000-05-18 Chris Demetriou <cgd@sibyte.com>
3079
3080 * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
3081 it to match the current practice.
3082
30832000-05-18 Mark Mitchell <mark@codesourcery.com>
3084
3085 * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
3086
30872000-05-18 Richard Henderson <rth@cygnus.com>
3088
3089 * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
3090 * rtl.h (insn_dependant_p): Declare it.
3091 * loop.c (strength_reduce): Use it.
3092
30932000-05-18 Alexandre Oliva <aoliva@cygnus.com>
3094
3095 * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
3096 16-bit and 64-bit clean-up.
3097
30982000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
3099
3100 * configure.in (*-pc-msdosdjgpp): Set float_format to none.
3101 * configure: Rebuilt.
3102
31032000-05-18 Zack Weinberg <zack@wolery.cumb.org>
3104
3105 * genopinit.c: Use $ for escape sequences in optab patterns.
3106 Remove backslashes from optab patterns. Change $A, $B, $C to
3107 expand to (int) whatever instead of just whatever; remove
3108 explicit (int) from all optab patterns.
3109
3110 * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
3111 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
3112 genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
3113 genrecog.c: Remove private copies of xmalloc, xrealloc, and
3114 xstrdup.
3115
31162000-05-18 Richard Henderson <rth@cygnus.com>
3117
3118 * jump.c (jump_optimize_1): Base minimum insn count during
3119 find_cross_jump on BRANCH_COST.
3120
31212000-05-18 Jakub Jelinek <jakub@redhat.com>
3122
3123 * print-rtl.c (print_rtx): Only print note line number as string
3124 if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
3125 * final.c (final_scan_insn): Do nothing for note line number 0.
3126
31272000-05-18 Jakub Jelinek <jakub@redhat.com>
3128
3129 * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
3130 from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
3131 NOTE_INSN_DELETED_LABEL.
3132
31332000-05-18 Nick Clifton <nickc@cygnus.com>
3134
3135 * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
4912a07c 3136 uninitialized data in .rodata not .bss, and do not interpret an
c30d43bf
JL
3137 error in the initialisation value as meaning that the variable
3138 should be placed in the .bss section.
3139
3140Thu May 18 12:10:18 2000 Philippe De Muyter <phdm@macqel.be>
3141
3142 * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
3143 not `$ac_cv_prog_cc_cc_c_o'.
3144 * configure: Regenerated.
3145
31462000-05-18 Chris Demetriou <cgd@sibyte.com>
3147 Richard Henderson <rth@cygnus.com>
3148
3149 * c-common.h (enum c_tree_index): Add g77 type entries.
3150 (g77_integer_type_node, g77_uinteger_type_node): New.
3151 (g77_longint_type_node, g77_ulongint_type_node): New.
3152 * c-decl.c (init_decl_processing): Initialize them.
3153
31542000-05-18 Richard Henderson <rth@cygnus.com>
3155
3156 * config/h8300/h8300.md (subs patterns): Use %G to negate.
3157
3158 * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
3159 (small_power_of_two): Likewise; use exact_log2.
3160 (adds_subs_operand, one_insn_adds_subs_operand): Remove.
3161 (output_adds_subs): Remove.
3162 (two_insn_adds_subs_operand): New.
3163 (split_adds_subs): New.
3164 * config/h8300/h8300-protos.h: Update.
3165 * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
3166 (CONST_OK_FOR_L): Match strict adds operands.
3167 (CONST_OK_FOR_N): Match struct subs operands.
3168 * config/h8300/h8300.md (adds_subs insns): Remove.
3169 (addhi patterns): Output adds/subs directly.
3170 (addsi_h8300h): Likewise.
3171 (addhi/addsi splitters): New. Decompose two_insn_adds_subs_operand.
3172
31732000-05-18 Zack Weinberg <zack@wolery.cumb.org>
3174
3175 * cppexp.c (parse_assertion): New.
3176 (lex): Call it for CPP_HASH. Remove CPP_ASSERTION case.
3177 (_cpp_parse_expr): Remove case '#'. Don't set
3178 parsing_if_directive.
3179 * cpphash.c (collect_objlike_expansion,
3180 collect_funlike_expansion, collect_params,
3181 _cpp_create_definition): The list no longer has a trailing
3182 VSPACE token.
3183 * cpphash.h (enum node_type): Add T_ASSERTION.
3184 (struct hashnode): Remove aschain, add pred.
3185 (struct predicate): New.
3186 Update prototypes.
3187
3188 * cpplex.c (expand_token_space): Handle both offset and
3189 nonoffset lists.
3190 (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
3191 (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
3192 _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
3193 _cpp_equiv_toklists): New.
3194 (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
3195 stop at any single-character token, not just newline.
3196 (_cpp_lex_token): Remove special cases for #define and #if.
3197 (cpp_get_token): Expect # as a separate token type. Remove
3198 DIRECTIVE case.
3199 (_cpp_get_directive_token): Remove DIRECTIVE case.
3200 (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
3201
3202 * cpplib.c (_cpp_check_directive): Set dirno and
3203 SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
3204 (_cpp_handle_directive): Run # <number> through the same logic
3205 as normal directives.
3206 (do_define): Don't set parsing_define_directive. Use
3207 _cpp_scan_until. The list does not have a VSPACE at the end.
3208 (do_if): Save, clear, and restore only_seen_white around
3209 _cpp_parse_expr.
3210 (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
3211 (do_assert, do_unassert): Rewrite.
3212
3213 * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
3214 (LIST_OFFSET): New flag.
3215 (struct cpp_toklist): Replace dir_handler and dir_flags with
3216 dirno and flags.
3217 (struct cpp_reader): Remove parsing_if_directive and
3218 parsing_define_directive.
3219
32202000-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3221
3222 * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
3223 following the cabs decl which terminate on the following line.
3224 Add the corresponding test_text case.
3225
32262000-05-18 Neil Booth <NeilB@earthling.net>
3227
4912a07c 3228 * cppinit.c (cpp_reader_init): Initialize col_adjust and
c30d43bf
JL
3229 default tab stop size.
3230 (no_num, OPT_ftabstop): New.
3231 (handle_option): Handle "ftabstop=" command-line option.
3232 (print_help): Document it.
3233 * cpplex.c (COLUMN): Remove.
3234 (handle_newline): Reset col_adjust.
3235 (skip_whitespace): Update col_adjust as tabs encountered.
3236 (_cpp_lex_line): Update to use col_adjust. Call
3237 skip_whitespace for all whitespace.
3238 * cpplib.h (struct cpp_options): New member tabstop.
3239 (struct cpp_reader): New member col_adjust.
3240 (CPP_BUF_COL): Update.
3241 (CPP_BUF_COLUMN): New.
3242 * cpp.texi: Document "-ftabstop=" command line option.
3243
3244Wed May 17 18:19:41 2000 Philippe De Muyter <phdm@macqel.be>
3245
3246 * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
3247 files.
3248 * configure: Rebuilt.
3249
3250Wed May 17 18:06:12 2000 John David Anglin <dave@hiauly1.hia.nrc.ca>
3251
3252 * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
3253
3254 * tree.c (build_common_tree_nodes): Do not build TI nodes unless
3255 HOST_BITS_PER_WIDE_INT is >= 64.
3256
32572000-05-17 Richard Henderson <rth@cygnus.com>
3258
3259 * jump.c (jump_optimize_1): Remove inactive but real insns
3260 in jump-to-next-insn optimization.
3261
32622000-05-17 Richard Henderson <rth@cygnus.com>
3263
3264 * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
3265 unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos.
3266 Don't call recompute_reg_usage if no_new_pseudos is true.
3267 * lcm.c (optimize_mode_switching): Move ifdefs outside function.
3268 Return true if we did work; update global life information.
3269 * basic-block.h (optimize_mode_switching): Update decl.
3270
32712000-05-17 Neil Booth <neilb@earthling.net>
3272
3273 * cpplex.c (expand_name_space): Don't use ptrdiff_t.
3274
32752000-05-17 Zack Weinberg <zack@wolery.cumb.org>
3276
3277 * cpplib.c: New feature, #pragma system_header.
3278 * cpp.texi: Document special treatment of system headers, and
3279 the various mechanisms to get a header that special treatment.
3280
32812000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3282
3283 * system.h (offsetof): Define at the very end, to ensure we prefer
3284 the platform's definition if available.
3285
32862000-05-16 Bruce Korb <bkorb@gnu.org>
3287
3288 * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
3289 * fixinc/server.c: likewise
3290 * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
3291 + #ifdef debugging code + use #def constant for
3292 sub-pattern count
3293 * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
3294 on C++ math namespace
3295
32962000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3297
3298 * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
3299 Don't check the return value of sprintf. Use asprintf to avoid
3300 buffer overflows.
3301
3302Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
3303
3304 * flags.h (warn_unused_function, warn_unused_label,
20f9202d
DB
3305 warn_unused_parameter, warn_unused_variable, warn_unused_value):
3306 Replace ``warn_unused''.
c30d43bf
JL
3307 (set_Wunused): Add declaration.
3308 * toplev.c (set_Wunused): New function.
3309 (warn_unused_function, warn_unused_label, warn_unused_parameter,
20f9202d 3310 warn_unused_variable, warn_unused_value): New variables.
c30d43bf 3311 (W_options): Add -Wunused-function, -Wunused-function,
20f9202d
DB
3312 -Wunused-label, -Wunused-parameter, -Wunused-variable and
3313 -Wunused-value. Delete -Wunused. Handled in decode_W_option.
c30d43bf
JL
3314
3315 * toplev.c (decode_W_option): Update -Wunused flags by calling
20f9202d
DB
3316 set_Wunused.
3317 * c-decl.c (c_decode_option): Ditto for -Wall.
c30d43bf
JL
3318
3319 * stmt.c (expand_expr_stmt, expand_expr_stmt,
20f9202d
DB
3320 warn_about_unused_variables): Replace warn_unused with more
3321 explicit warn_unused_value et.al.
c30d43bf
JL
3322 * function.c (expand_function_end): Ditto.
3323 * c-typeck.c (internal_build_compound_expr,
20f9202d 3324 internal_build_compound_expr): Ditto.
c30d43bf
JL
3325 * c-decl.c (poplevel, pop_label_level): Ditto.
3326 * toplev.c (check_global_declarations): Replace warn_unused with
3327 check for either warn_unused_function or warn_unused_variable.
3328
3329 * gcc.1, invoke.texi (Warning Options): Document
20f9202d
DB
3330 -Wunused-function, -Wunused-function, -Wunused-label,
3331 -Wunused-parameter, -Wunused-variable and -Wunused-value options.
c30d43bf
JL
3332
3333Wed May 17 10:28:12 2000 Philippe De Muyter <phdm@macqel.be>
3334
3335 * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
3336 $(srcdir), not in the current directory.
3337
33382000-05-16 Richard Henderson <rth@cygnus.com>
3339
3340 * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
3341 assembler supports it.
3342 (.fini, .init): Use a gp-relative indirect call.
3343 (__do_global_dtors_aux): Preserve the gp; rebundle.
3344 (__do_frame_setup): Likewise.
3345 * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
3346 (.init): Use a gp-relative indirect call.
3347 (__do_global_ctors_aux): Preserve the gp.
3348
33492000-05-16 Richard Henderson <rth@cygnus.com>
3350
3351 * flow.c (commit_one_edge_insertion): Be prepared for a return
3352 insn to be inserted on the edge with a normal jump.
3353 * jump.c (jump_optimize_1): Don't look to create return isns.
3354
3355 * flow.c (flow_delete_insn): Don't adjust reference count of notes.
3356 * jump.c (jump_optimize_1): Likewise.
3357 (returnjump_p): Verify the argument is a JUMP_INSN.
3358 * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
3359
33602000-05-16 Nick Clifton <nickc@cygnus.com>
3361
3362 * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
3363 GET_RTX_CLASS (GET_CODE ()) == 'i'.
3364 (large_insn_p): Ditto.
3365 (m32r_is_insn): New function: Return true if the insn contains
3366 an executable instruction.
3367 (m32r_adjust_insn): Use m32r_is_insn.
3368 (m32r_sched_reorder): Use m32r_is_insn.
3369 (m32r_sched_variable_issue): Use m32r_is_insn.
3370
33712000-05-16 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3372
3373 * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
3374 VAR_DECL.
3375
3376 * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
3377
3378 * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
3379 according to given options.
3380
3381Tue May 16 12:17:31 2000 Jeffrey A Law (law@cygnus.com)
3382
3383 * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
3384 if X has VOIDmode either.
3385 (LIMIT_RELOAD_CLASS): Similarly.
3386
3387 * mn10200.md (indirect_jump, tablejump): Use "register_operand",
3388 not "general_operand" to match the processor's capabilities.
3389
33902000-05-16 Bruce Korb <bkorb@gnu.org>
3391
3392 * fixinc/README: corrected return address
3393 * fixinc/check.diff: regenerate, now that test works
3394 * fixinc/fixfixes.c(format_fix,format_write): reformatted
3395 (char_macro_def_fix,char_macro_use_fix): corrected and
3396 rewrote to use regex to parse the text
3397 * fixinc/inclhack.def: more testing
3398 * fixinc/fixincl.x: regenerated
3399
3400 * fixinc/inclhack.def: added several "test_text" attributes
3401 changed several fixes to use `c_fix = format'
3402 re-alphabetized the fixes
3403
3404 * fixinc/check.diff: regenerate
3405 * fixinc/fixincl.x: regenerate
3406 * fixinc/check.tpl: added `sparc' and `netinet' to the list
3407 of created dirs
3408
3409
34102000-05-16 Alexandre Oliva <aoliva@cygnus.com>
3411
3412 * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
3413
34142000-05-15 Richard Henderson <rth@cygnus.com>
3415
3416 * toplev.c (rest_of_compilation): Run full jump pass before
3417 find_basic_blocks of flow2.
3418
34192000-05-15 Richard Henderson <rth@cygnus.com>
3420
3421 * jump.c: Fix typos and clarify commentary from last change.
3422 (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
3423 (safe_to_remove_jump_p): Remove.
3424 (condjump_label): Use pc_set.
3425
34262000-05-15 Richard Henderson <rth@cygnus.com>
3427
3428 * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
3429 that get in the way after reload.
3430 (cond_exec_process_if_block): Skip a label heading THEN block.
3431
34322000-05-15 Richard Henderson <rth@cygnus.com>
3433
3434 * varasm.c (output_constant_pool): Abort instead of converting
3435 (improperly) deleted labels to zero.
3436
34372000-05-16 Neil Booth <NeilB@earthling.net>
3438
3439 * cpplex.c (parse_string2): Update comment.
3440 (cpp_lex_line): No special assertion treatment for '('.
3441 * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
3442 * cpplib.h (SYNTAX_ASSERT): Remove.
3443
3444Mon May 15 21:45:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
3445
3446 * jump.c (condjump_p): Mark as depreached.
3447 (any_condump_p): New.
3448 (any_uncondump_p): New.
3449 (pc_set): New.
3450 (safe_to_remove_jump_p): New.
3451 * rtl.h (any_condump_p, any_uncondjump_p, pc_set
3452 safe_to_remove_jump_p): Declare.
3453
3454Mon May 15 21:07:20 MET DST 2000 Jan Hubicka <jh@suse.cz>
3455
3456 * calls.c: Re-install both patches reverted by last patch.
3457 (struct arg_data): New field tail_call_reg.
3458 (initialize_argument_information): Initialize tail_call_reg
3459 (load_register_parameters): New argument flags, use
3460 tail_call_reg when emiting tail call sequence.
3461 (expand_call): Update call of load_register_parameters;
3462 copy unadjusted_args_size to adjusted_args_size.
3463
3464Mon May 15 19:01:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
3465
3466 * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
3467 and bct_p parameters to flags.
3468 * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
3469 * rtl.h (loop_optimize): Update prototype.
3470 * toplev.c (rest_of_compilation): Update call of loop_optimize.
3471
34722000-05-15 Jakub Jelinek <jakub@redhat.com>
3473
3474 * calls.c (expand_call): Move expand_start_target_temps call after
3475 start_sequence().
3476
34772000-05-15 Neil Booth <NeilB@earthling.net>
3478
3479 * cpphash.c (trad_stringify, warn_trad_stringify,
3480 collect_params): Make some pointers pointers to const.
3481 * cpplex.c (auto_expand_name_space) Guaranteed to always
3482 expand by at least one character.
3483 (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
3484 (struct token_spelling): Use const U_CHAR * rather than PTR.
3485 (expand_name_space): Fix up token pointers if name space
3486 is moved when expanding.
3487 (INIT_NAME, cpp_scan_line, parse_name, parse_number,
3488 parse_string2, save_comment, spell_token, cpp_output_list):
3489 Update so the routines handle tokens with a direct pointer to
3490 their text, rather than an offset into the token's list's namebuf.
3491 (_cpp_lex_line): Rearrange for clarity.
3492
3493 * cpplib.c (_cpp_check_directive): Similarly.
3494 (do_define): Make SYM a pointer to const.
3495 * cpplib.h (struct cpp_name): Replace offset with direct pointer.
3496 (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
3497 (TOK_OFFSET): Delete.
3498 (TOK_NAME): Update.
3499
35002000-05-14 Geoffrey Keating <geoffk@cygnus.com>
3501
3502 * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
3503 64-bit ABI.
3504
3505 * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
3506 into account.
3507 (logical_u_operand): Delete.
3508 (non_logical_cint_operand): Rewrite to take MODE into account.
3509 (non_logical_u_cint_operand): Delete.
3510 (boolean_operator): New function.
3511 (print_operand): Add new %q operand.
3512 * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
3513 remove logical_u_operand and non_logical_u_cint_operand,
3514 update logical_operand and non_logical_cint_operand.
3515 * config/rs6000/rs6000.md: Rewrite the patterns for performing
3516 logical operations to use %q.
3517
3518 * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
3519 (movdi): Make similar to movsi.
3520 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
3521 is no such thing as a DImode CONST_DOUBLE.
3522 * config/rs6000/rs6000.c (output_toc): Likewise.
3523
3524 * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
3525 codes when old mnemonics are in use. Print register names
3526 for cc registers when requested.
3527
3528 * optabs.c (expand_float): Don't allow mode widening that causes
3529 double rounding.
3530
3531 * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
3532 flags to their current names -maix64 and -maix32.
3533
35342000-05-14 Bruce Korb <bkorb@gnu.org>
3535
3536 * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
3537 and/or after current text of file
3538 * fixinc/fixlib.c(must_malloc):
3539 * fixinc/fixlib.h(must_malloc): + reformatting
3540 * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
3541 with usages of ``c_fix = wrap;''
3542 Add several tests and use the ``c_fix = format'' fixer more.
3543 * fixinc/fixincl.x: regen
3544 * fixinc/check.diff: regen
3545 * fixinc/check.tpl: emit the associated header with the missing
3546 test message
3547
3548Sun May 14 17:58:59 2000 Hans-Peter Nilsson <hp@axis.com>
3549
3550 * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
3551 variables $src and $dst.
3552
35532000-05-13 Gabriel Dos Reis <gdr@codesourcery.com>
3554
3555 * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
3556 (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
3557 (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
3558 (struct output_buffer: emitted_prefix_p, prefixing_rule): New
3559 fields.
3560 (set_message_prefixing_rule): Declare.
3561
3562 * diagnostic.c: (current_prefixing_rule): New variable.
3563 (set_message_prefixing_rule): Define.
3564 (output_set_prefix): Adjust buffer->emitted_prefix_p.
3565 (init_output_buffer): Adjust Initialization.
3566 (output_emit_prefix): Rewrite. Take prefixing rules into account.
3567
3568Sat May 13 11:05:47 2000 Philippe De Muyter <phdm@macqel.be>
3569
3570 * ifcvt.c (if_convert): Do not free NULL.
3571
35722000-05-12 H.J. Lu (hjl@gnu.org)
3573
3574 * gthr-dce.h: Add support for libobjc.
3575 * gthr-posix.h: Likewise.
3576 * gthr-solaris.h: Likewise.
3577 * gthr-vxworks.h: Likewise.
3578 * gthr-single.h: Likewise.
3579 * gthr-win32.h: Likewise.
3580
35812000-05-12 Nick Clifton <nickc@cygnus.com>
3582
3583 * config/fr30/fr30.c (fr30_move_double): New function: Emit code
3584 to move a double word value.
3585 (di_operand): New function: Return true if the operand is suitbale
3586 for a double word move operation.
3587 (nonimmediate_di_operand): New function: Return true if the
3588 operand is a DImode register or MEM.
3589
3590 * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
3591 nonimmediate_di_operand.
3592
3593 * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
3594 nonimmediate_di_operand.
3595
3596 * config/fr30/fr30.md (movdi): New pattern. Required because
3597 other patterns generate DImode results.
3598 (movdi_insn): New pattern.
3599
36002000-05-12 Richard Henderson <rth@cygnus.com>
3601
3602 * config/alpha/alpha.c (struct shadow_summary): Define
3603 bitfields as type unsigned int.
3604
3605Sat May 13 00:09:59 2000 Denis Chertykov <denisc@overta.ru>
3606
3607 * config/avr/t-avr: Added definition of FLOAT while generates
3608 fp-bit.c
3609
3610 * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
3611 peepholes for tst+jump = sbrs/sbrc optimization.
3612
3613Fry May 12 20:03:00 CEST 2000 Jan Hubicka <jh@suse.cz>
3614
3615 * expr.c (emit_push_insn): Do not adjust stack pointer when
3616 preallocating.
3617
3618Fri May 12 19:03:58 2000 Philippe De Muyter <phdm@macqel.be>
3619
3620 * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
3621 * system.h (offsetof): ... to here.
3622
36232000-05-12 Richard Henderson <rth@cygnus.com>
3624
3625 * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
3626 * final.c (final_end_function): Use app_disable. Rearrange note
3627 handling into a switch. Emit deleted labels.
3628 (output_asm_label): Generate label strings for deleted labels.
3629 * flow.c (tail_recursion_label_list): New.
3630 (find_basic_blocks_1): Set label_value_list directly. Collect list
3631 of tail recursion labels from call_placeholders. Don't add deleted
3632 labels to the label value list.
3633 (cleanup_cfg): Use free_EXPR_LIST_list.
3634 (flow_delete_insn_chain): Turn non-removable labels into notes.
3635 (flow_delete_block): Don't disable deleting the block because of
3636 a non-removable label.
3637 (tail_recursion_label_p): New.
3638 (merge_blocks_move_predecessor_nojumps): Don't disable the merge
3639 because of a label.
3640 (merge_blocks_move_successor_nojumps): Likewise. Also move a
3641 jump table.
3642 (merge_blocks): Disable a merge because of tail recursion labels.
3643 * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
3644 Use a more accurate measure of not merging the join block.
3645 (find_if_block): Don't disable conversion because of a label.
3646 (find_if_case_1, find_if_case_2): Likewise.
3647 * jump.c (duplicate_loop_exit_test): Preserve the kind of list
3648 element when copying.
3649 (squeeze_notes): Also leave EH notes.
3650 (mark_jump_label): Ignore deleted labels. Use an INSN_LIST for
3651 REG_LABEL notes.
3652 (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
3653 deleting a label.
3654 * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
3655 NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref
3656 referring to a deleted label. Convert tail handling to a switch.
3657 * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
3658 for NOTE_INSN_DELETED_LABEL.
3659 (NOTE): Fix commentary.
3660 * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
3661 (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
3662 (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
3663 (LABEL_NUSES, LABEL_REFS): Likewise.
3664 * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
3665
36662000-05-12 Bruce Korb <bkorb@gnu.org>
3667
3668 * fixinc/fixfixes.c(format_write): buglet & relaxed rules
3669 * fixinc/check.diff: updated
3670 * fixinc/inclhack.def: corrected & added some test_text-s
3671 * fixinc/genfixes: removed unneeded options to autogen invocation
3672 * fixinc/fixincl.tpl: Specified the output file
3673 * fixinc/fixfixes.c: visual appearance
3674 * fixinc/fixincl.x: regenerate
3675
36762000-05-12 Zack Weinberg <zack@wolery.cumb.org>
3677
3678 * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
3679 CTRL_defn_fix): Delete.
3680 (fix_char_macro_defines, fix_char_macro_uses): Rename to
3681 char_macro_def_fix and char_macro_use_fix, respectively. Put
3682 them into the FIXUP_TABLE. Get the string to search for from
3683 a c_fix_arg.
3684
3685 (format_write): New function.
3686 (format_fix): Use it.
3687
3688 (FIX_PROC_HEAD): Constify text parameter.
3689 (machine_name_fix): Constify all char *s.
3690 * fixtests.c (skip_quote): Remove double static.
3691
3692 * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
3693 ctrl_use_quotes): Update for new scheme.
3694 * fixincl.x: Regenerate.
3695
36962000-05-12 Alexandre Oliva <aoliva@cygnus.com>
3697
3698 * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
3699 DWARF2_DEBUG.
3700 (DWARF2_ASM_LINE_DEBUG_INFO): Define.
3701 (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
3702
37032000-05-11 Robert Lipe <robertlipe@usa.net>
3704
3705 * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
3706 * fixincl.x: Regenerate.
3707
37082000-05-11 Richard Henderson <rth@cygnus.com>
3709
3710 * calls.c: Revert both 05-09 patches.
3711
37122000-05-11 Alexandre Oliva <aoliva@cygnus.com>
3713
3714 * config/mn10300/mn10300.c (print_operand): Print FP constants in
3715 hexadecimal.
3716 * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
3717 for FP values.
3718
3719 * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
3720 and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
3721
37222000-05-11 Jason Merrill <jason@casey.cygnus.com>
3723
3724 * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
3725
37262000-05-11 Zack Weinberg <zack@wolery.cumb.org>
3727
3728 * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
3729
3730Thu May 11 22:28:05 2000 Denis Chertykov <denisc@overta.ru>
3731
3732 * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
3733 * config/avr/avr.c (jump_over_one_insn_p): New function.
3734 * config/avr/avr.md: New peepholes added. Output test and
3735 conditional jump to "sbrc" or "sbrs" command.
3736
37372000-05-11 Mark Elbrecht <snowball3@bigfoot.com>
3738
3739 * cppmain.c (main): Use IS_DIR_SEPARATOR.
3740
37412000-05-11 Jakub Jelinek <jakub@redhat.com>
3742
3743 * except.c (find_exception_handler_labels_1): New function.
3744 (find_exception_handler_labels): Split into two functions, dive
3745 into CALL_PLACEHOLDERs when looking for exception handler labels.
3746
37472000-05-11 Stan Cox <scox@cygnus.com>
3748
3749 * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
3750 * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
3751 * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
3752
37532000-05-11 Bruce Korb <bkorb@gnu.org>
3754
3755 * fixinc/fixfixes.c (double_slash_fix): obsolete
3756 (else_endif_label_fix): obsolete
3757 (format_fix): new, unused as yet
3758 (main): obsolete
3759 * fixinc/fixlib.h: added fix description struct for use by format_fix
3760 * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
3761 * fixinc/Makefile.in: compile fixfixes.c and fixtests.c as separate
3762 modules. Removed the vestiges of the script version.
3763 Added support for "make check".
3764 * fixinc/check.diff: base diff file (needs work!!)
3765 * fixinc/check.tpl: quiet the fixup output
3766 * fixinc/fixtests.c (main): obsolete
3767 * fixinc/fixincl.sh: don't bother copying fixincl to ..
3768 * fixinc/fixincl.tpl: provide for arguments to c_fix routines
3769
3770Thu May 11 11:57:02 MET DST 2000 Jan Hubicka <jh@suse.cz>
3771
3772 * toplev.c (rest_of_compilation): Remove dead code after
3773 combine.
3774
37752000-05-11 Zack Weinberg <zack@wolery.cumb.org>
3776
3777 * cpphash.c (collect_funlike_expansion): Make "# is not
3778 followed by a macro argument name" a pedwarn, not an error.
3779 Preserve the # in the output. Suppress the warning if lang_asm.
3780
3781Thu May 11 01:19:31 2000 Jeffrey A Law (law@cygnus.com)
3782
3783 * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
3784 * configure: Rebuilt.
3785
37862000-05-10 Laurynas Biveinis <lauras@softhome.net>
3787
3788 * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
3789
37902000-05-10 Kazu Hirata <kazu@hxi.com>
3791
3792 * combine.c (try_combine): Fix a typo.
3793
3794Wed May 10 21:31:44 2000 Jim Wilson <wilson@cygnus.com>
3795
3796 * config/ia64/ia64.md (insv): Add comment.
3797
37982000-05-10 Richard Henderson <rth@cygnus.com>
3799
3800 * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
3801 * mklibgcc.in: Rewrite to not use functions. Don't shortcut
ff7cc307 3802 dependencies on FPBIT and DPBIT.
c30d43bf
JL
3803
38042000-05-10 Nick Clifton <nickc@redhat.com>
3805
3806 * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
3807 when optimising for size.
3808 (mark_used_regs:) Ditto.
3809 (try_pre_increment_1): Ditto.
3810
38112000-05-10 Zack Weinberg <zack@wolery.cumb.org>
3812
3813 * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
3814 Make error message friendlier.
3815
3816 * cpphash.h (struct hashnode): Use struct hack for name
3817 member.
3818 * cpphash.c (struct hashdummy): New.
3819 (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
3820 (make_HASHNODE): No need to set ->name pointer. Correct
3821 setting of p.
3822 (cpp_lookup): Make 'dummy' a struct hashdummy. Tidy up a bit.
3823
38242000-05-10 Richard Henderson <rth@cygnus.com>
3825
3826 * flow.c (find_basic_blocks_1): Remove any spare bb_note
3827 after completion.
3828
38292000-05-10 Bruce Korb <bkorb@gnu.org>
3830
3831 * fixinc/gnu-regex.c: reg_syntax_t re_syntax_options must be static
3832
38332000-05-10 Eric Schweitz <schweitz@nortelnetworks.com>
3834
3835 * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
3836 after we enter .debug.
3837
38382000-05-10 Jason Merrill <jason@casey.cygnus.com>
3839
3840 * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
3841 abstract instance of a nested inline function.
3842
3843 * stor-layout.c (finish_record_layout): finalize_type_size
3844 before laying out the pending_statics.
3845
3846Wed 10 May 09:36:47 2000 Neil Booth <NeilB@earthling.net>
3847
3848 * cpplex.c (spell_token): New function.
3849 (spell_string, spell_comment, spell_name): fold into
3850 spell_token.
3851 (I, S): Add macros.
3852 (E, H): Remove macros.
3853 (save_comment): Save comment opening characters too.
3854 (_cpp_lex_file): Update to use spell_token. Tidy up comment
3855 handling.
3856 * cpplib.h (I, S): Add macros.
3857 (E, H): Remove macros.
3858 (TTYPE_TABLE): Update entries for new speller.
3859 (SYNTAX_ASSERT): Remove.
3860
3861Wed 10 May 09:08:30 2000 Neil Booth <NeilB@earthling.net>
3862
3863 * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
3864 when removing escaped newlines. Reverse sense of test for
3865 escaped newline.
3866
38672000-05-09 Richard Henderson <rth@cygnus.com>
3868
3869 * flow.c (find_basic_blocks_1): Do not delete the first
3870 bb_note we run across.
3871 (create_basic_block): Use reorder_insns to move an existing
3872 bb_note to the correct place.
3873
38742000-05-09 Richard Henderson <rth@cygnus.com>
3875
3876 * calls.c (expand_call): Increment currently_expanding_call
3877 before calling optimize_tail_recursion.
3878
3879Tue May 9 18:54:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3880
3881 * reload1.c (reload_combine): Fix errors in last change.
3882
38832000-05-09 Zack Weinberg <zack@wolery.cumb.org>
3884
3885 * gcc.c (used_arg): Skip over a semicolon at the end of the
3886 split-up loop; don't break out of it.
3887
3888 * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
3889 (tree.o): Depend on output.h.
3890
3891 * c-decl.c (pending_invalid_xref_file,
3892 current_function_prototype_file): Constify.
3893 (pushdecl): Constify a local char *.
3894 (define_label): Constify filename parameter.
3895 * c-lex.c (init_parse): Constify parameter and return value.
3896 * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
3897 * c-tree.h: Update prototypes.
3898 * c-parse.in: Constify filename member of %union, and if_stmt_file.
3899 * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
3900 objc/objc-parse.c: Regenerate.
3901
3902 * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
3903 * dwarfout.h: Update prototypes.
3904 * expr.c (expand_expr): Constify a local char *.
3905 * flags.h: Constify main_input_filename.
3906 * function.c (expand_function_end): Constify filename parameter.
3907 * genrecog.c (make_insn_sequence): Use a character array for
3908 c_test_pos.
3909 (main): Remove unused variables.
3910 * input.h: Constify input_filename, main_input_filename, and
3911 file_stack.name. Update prototypes.
3912 * output.h: Declare first_global_object_name and
3913 weak_global_object_name here, as const char *.
3914 * stmt.c (expand_asm_operands): Constify filename parameter.
3915 * toplev.c (compile_file, push_srcloc, debug_start_source_file):
3916 Constify filename parameter.
3917 (input_filename, main_input_filename): Constify.
3918 * toplev.h: Update prototypes.
3919 * tree.c: Include output.h. Don't declare
3920 first_global_object_name or weak_global_object_name. Clean up string
3921 bashing in get_file_function_name_long.
3922 * tree.h (struct tree_decl): Constify filename member.
3923 (input_filename): Constify.
3924 Update prototypes.
3925 * varasm.c (first_global_object_name, weak_global_object_name):
3926 Constify.
3927 (assemble_start_function, assemble_variable): Clean up string bashing.
3928
3929 * gcc.c: Constify all spec-related strings initialized,
3930 transitively, from string constants. Constify all strings
3931 and string variables related to multilibs.
3932 (set_spec, read_specs): Cast argument to free to PTR.
3933 (used_arg): Do not modify multilib_matches. Use strncmp plus
3934 length comparison to compare multilib switches.
3935 * genmultilib: Constify everything declared in multilib.h.
3936
3937Tue May 9 22:28:03 2000 Denis Chertykov <denisc@overta.ru>
3938
3939 * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
3940 as deleted.
3941
3942Tue May 9 20:52:43 2000 Denis Chertykov <denisc@overta.ru>
3943
20f9202d 3944 * config/avr/avr-protos.h (extra_constraint): change a type of
c30d43bf
JL
3945 second argument from char to int to avoid warnings.
3946 (asm_output_byte): Likewise.
3947
3948 * config/avr/avr.c (MAX_LD_OFFSET) New macro.
3949 (initial_elimination_offset): Handle elimination from
3950 FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
3951 (legitimate_address_p): Use MAX_LD_OFFSET.
3952 (legitimize_address): Likewise.
3953 (out_movqi_r_mr): Likewise.
3954 (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
3955 (out_movsi_r_mr): Use MAX_LD_OFFSET.
3956 (out_movsi_mr_r): Likewise.
3957 (out_movqi_mr_r): Likewise.
3958 (out_movhi_mr_r): Likewise.
3959 (notice_update_cc): Correct CC for the ashrqi3 with the shift
3960 count as CONST_INT != 6.
3961 (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
3962 shift count is a CONSTANT_P, but not a CONST_INT.
3963 (ashlhi3_out): Coding style modifications.
3964 (ashlsi3_out): Likewise.
3965 (ashrhi3_out): Likewise.
3966 (ashrsi3_out): Likewise.
3967 (lshrhi3_out): Likewise.
3968 (lshrsi3_out): Likewise.
3969 (ashrqi3_out): Generate shift for any known constant count without
3970 scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
3971 but not a CONST_INT.
3972 (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
3973 shift count is a CONSTANT_P, but not a CONST_INT.
3974 (extra_constraint): change a type of
3975 second argument from char to int to avoid warnings.
3976 (asm_output_byte): Likewise.
3977 (asm_file_end): Output size generated commands count as a hex
3978 number too.
3979
3980 * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
3981
3982 * config/avr/avr.md (addhi3): Fragment commented by &&0 is
3983 removed.
3984 (ashlqi3): Values of "length" attribute changed. Shift count
3985 uses constraints 'n' instead of 'i'.
3986 (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
3987 shifts without clobber register.
3988 (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
3989 (call_insn): Correct test for which_alternative == 1 (was 0).
3990 (call_value_insn): Likewise.
3991
3992 * config/avr/t-avr: Remove definition of FLOAT while generates
3993 fp-bit.c
3994
39952000-05-09 Bruce Korb <bkorb@gnu.org>
3996
3997 * fixinc/check.tpl: Template for checking fixes
3998 * fixinc/inclhack.def: Added 'test_text' for many fixes
3999 disable hpux8_bogus_inlines on SCO
4000 * fixinc/fixinc.sco: Oh, yes, we don't need this any more.
4001
4002Tue May 9 16:30:27 MET DST 2000 Jan Hubicka <jh@suse.cz>
4003
4004 * calls.c (expand_call): Reorganize somewhat in order
4005 to avoid unnecesary recalculation inside loop and make
4006 tail call failure code cleaner.
4007
4008Tue May 9 06:30:20 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4009
4010 * alias.c (nonlocal_reference_p): Minor reformatting.
4011 * reload.c (find_equiv_reg): Simplify logic for
4012 CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
4013 some some reformatting.
4014 * reload1.c (reload_combine): Don't assume everything in
4015 CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
4016
40172000-05-08 Richard Henderson <rth@cygnus.com>
4018
4019 * final.c (current_insn_predicate): New.
4020 (final_scan_insn): Set it.
4021 * output.h (current_insn_predicate): Declare.
4022
4023 * ifcvt.c (cond_exec_process_insns): New argument prob_val.
4024 Attach it to call insns.
4025 (cond_exec_process_if_block): Track probability for true and
4026 false branches.
4027 (dead_or_predicable): Likewise.
4028
4029 * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
4030 (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
4031 (PROB_VERY_LIKELY, PROB_ALWAYS): New.
4032 (estimate_probability, expected_value_to_br_prob): Use them.
4033
4034 * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
4035 * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
4036 (ia64_expand_prediction): New.
4037 (emit_insn_group_barriers): Don't look at notes. Emit barriers
4038 as needed after calls.
4039 (ia64_epilogue_uses): Mark b0 used.
4040 * config/ia64/ia64.md (beq_true, beq_false): Remove.
4041 (bne_true, bne_false): Remove.
4042 (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
4043 (br_true, br_false): New. Use predicate_operator and
4044 ia64_expand_prediction.
4045 (return_true, return_false): Likewise.
4046 (call_internal): Use ia64_expand_prediction. Don't emit stop bit.
4047 (call_internal1, call_value_internal): Likewise.
4048 (call_value_internal1, call_multiple_values_internal1): Likewise.
4049
4050 * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
4051
4052 * config/ia64/ia64.md (extendsfdf2): Split only after reload.
4053
40542000-05-08 Richard Henderson <rth@cygnus.com>
4055
4056 * rtlanal.c (may_trap_p): Consider old-style and volatile
4057 asms to trap.
4058
4059Mon May 8 17:16:48 2000 Jim Wilson <wilson@cygnus.com>
4060
4061 * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
4062
40632000-05-08 Richard Henderson <rth@cygnus.com>
4064
4065 * config/ia64/ia64.h (predicate_operator): Declare.
4066
4067 * config/ia64/ia64.md (extendsfdf2): Split the nop case out
ff7cc307 4068 of existence.
c30d43bf
JL
4069
4070 * gensupport.c (process_rtx): Copy and post-process each member
4071 of the define_insn rtvec individually.
4072
4073Mon 8 May 22:17:35 2000 Neil Booth <NeilB@earthling.net>
4074
4075 * cpplex.c (spell_token): New function.
4076 (TOKEN_LEN): Add 1 for whitespace.
4077 (_cpp_lex_file): Update to use spell_token.
4078 * cpplib.h (E): Remove.
4079 (TTYPE_TABLE): Update CPP_VSPACE entry.
4080
40812000-05-08 Richard Henderson <rth@cygnus.com>
4082
4083 * flow.c (init_propagate_block_info): Watch out for conditional
4084 branch to next instruction, and thus one outgoing edge.
4085
4086 * config/ia64/ia64.c (ia64_encode_section_info): Exit early
4087 for global register variables; don't special case __[CD]TOR_LIST__;
4088 mind ggc_p for string allocation.
4089
40902000-05-08 Nick Clifton <nickc@cygnus.com>
4091
4092 * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
4093
40942000-05-08 Bruce Korb <bkorb@gnu.org>
4095
4096 * fixinc/mkfixinc.sh: fixinc.sco is no longer used
4097 i?86-*-msdosdjgpp* no longer uses fixincludes
4098 * fixinc/genfixes: inclhack.sh and fixincl.sh are no longer generated
4099 * fixinc/inclhack.sh: deleted
4100 * fixinc/hackshell.tpl: deleted
4101 * fixinc/inclhack.tpl: deleted
4102 * fixinc/Makefile.in: Remove dependencies on above
4103 * fixinc/fixincl.sh: "DO NOT EDIT" text modified
4104
41052000-05-08 Andreas Jaeger <aj@suse.de>
4106
4107 * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
4108 support.
4109
41102000-05-07 Zack Weinberg <zack@wolery.cumb.org>
4111
4112 * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
4113 substitutions.
4114
4115Sun 7 May 08:43:53 2000 Neil Booth <NeilB@earthling.net>
4116
4117 * cpplex.c: Move new lexer definitions and prototypes
4118 to top. Conditional include these and the code if
4119 NEW_LEXER is defined. Rename functions whose names
4120 clash if this code included.
4121
4122Sun May 7 00:54:57 EDT 2000 John Wehle (john@feith.com)
4123
4124 * rtl.def (COND_EXEC): Clarify.
4125
4126 * i386.md (extendsidi2): Clobber (reg:CC 17) in the
4127 same fashion as zero_extendsidi2.
4128
41292000-05-06 Richard Henderson <rth@cygnus.com>
4130
4131 * config/ia64/ia64.c (predicate_operator): New.
4132 (ia64_print_operand): Handle 'J'.
4133 (rtx_needs_barrier): Handle COND_EXEC.
4134 * config/ia64/ia64.h (BRANCH_COST): Define.
4135 (PREDICATE_CODES): Update.
eaec9b3d 4136 * config/ia64/ia64.md: Document used unspec values.
c30d43bf
JL
4137 (attr predicable): New.
4138 (movxf, movxf_internal): New.
4139 (extendsfdf2): Don't comment out nop.
4140 (floatdidf2): Remove.
4141 (truncxfsf2, truncxfdf2, floatdixf2): New.
4142 (abssi2, absdi2): Put the neg in the "true" slot.
4143 (conditional branch instructions): Mark not predicable.
4144 (cmov*_internal): Use predicate_operator. Split to cond_exec.
4145 (abs*_internal): Likewise.
4146 (alloc, set_bsp): Mark not predicable.
4147 (barrier, insn_group_barrier, flush_cache): Likewise.
4148 (define_cond_exec): New.
4149
41502000-05-06 Richard Henderson <rth@cygnus.com>
4151
4152 * c-decl.c: Include "tm_p.h".
4153
4154 * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
4155 (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
4156 (ia64_expand_op_and_fetch): Declare.
4157 * config/ia64/ia64.c: Include "toplev.h". Kill trailing whitespace.
4158 (setjmp_operand): Constify variables for XSTR.
4159 (ia64_encode_section_info): Likewise.
4160 (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
4161 values to int.
4162 (ia64_asm_output_external): Constify name.
4163 (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
4164 (process_for_unwind_directive): Provide switch default.
4165 (ia64_expand_compare_and_swap): Remove unused variables.
4166 (ia64_expand_builtin): Likewise.
4167 * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
4168 for printing.
4169
4170 * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
4171 (symbolic_operand, function_operand, setjmp_operand): Likewise.
4172 (shift_count_operand, shift_32bit_count_operand): Likewise.
4173 (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
4174 (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
4175 (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
4176 (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
4177 (ia64_expand_builtin): Likewise.
4178 (call_multiple_values_operation): Make dest_regno unsigned.
4179
41802000-05-06 Richard Henderson <rth@cygnus.com>
4181
4182 * rtl.def (DEFINE_COND_EXEC): New.
4183 * md.texi: Document it.
4184
4185 * gensupport.c (input_file): Remove.
4186 (struct queue_elem): Add lineno.
4187 (rtx_ready_queue): Remove.
4188 (errors): New.
4189 (predicable_default): New.
4190 (predicable_true, predicable_false): New.
4191 (define_attr_queue, define_attr_tail): New.
4192 (define_insn_queue, define_insn_tail): New.
4193 (define_cond_exec_queue, define_cond_exec_tail): New.
4194 (other_queue, other_tail): New.
4195 (queue_pattern): New.
4196 (process_rtx): Add patterns to the appropriate queues.
4197 (is_predicable, identify_predicable_attribute): New.
4198 (n_alternatives, collect_insn_data): New.
4199 (alter_predicate_for_insn, alter_test_for_insn): New.
4200 (shift_output_template, alter_output_for_insn): New.
4201 (process_one_cond_exec, process_define_cond_exec): New.
4202 (init_md_reader): Read the entire file. Process define_cond_exec.
4203 (read_md_rtx): Return elements from the queues.
4204
42052000-05-06 Richard Henderson <rth@cygnus.com>
4206
4207 * flow.c (mark_set_1): Don't update conditional life info
4208 if the register is not_dead.
4209
42102000-05-06 Zack Weinberg <zack@wolery.cumb.org>
4211
4212 * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
4213 (mostlyclean): Also delete fixincl, fixinc.sh, and
4214 specs.ready, and make clean in the fixinc subdir.
4215
42162000-05-06 Richard Henderson <rth@cygnus.com>
4217
4218 * Makefile.in (gensupport.o): Compile for the host.
4219 (host-prefix gensuuprt.o): Remove.
4220 (genflags.o): Depend on gensupport.h and OBSTACK_H.
4221 (genattrtab.o): Likewise.
4222 (gencodes.o): Depend on gensupport.h.
4223 (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
4224 (genpeep.o, genattr.o, genoutput.o): Likewise.
4225
4226 * gensupport.c (obstack, rtl_obstack): New.
4227 (init_md_reader): Initialize rtl_obstack.
4228 * gensupport.h (rtl_obstack): Declare.
4229 (message_with_line): Declare.
4230
4231 * genattr.c: Remove all traces of obstack manipulation.
4232 * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
4233 * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
4234
4235 * genattrtab.c (obstack, rtl_obstack): Remove.
4236 (main): Don't init rtl_obstack.
4237 * genflags.c: Likewise.
4238
4239 * genrecog.c (message_with_line): Move ...
4240 * gensupport.c: ... here.
4241
42422000-05-06 Richard Henderson <rth@cygnus.com>
4243
4244 * c-typeck.c (build_c_cast): Remove dead code.
4245
42462000-05-06 Richard Henderson <rth@cygnus.com>
4247
4248 * flow.c (split_edge): Don't allocate global_live_at_start for
4249 the new block unless the old blocks had them as well.
4250
4251 * flow.c (mark_set_1): Respect not_dead when updating reg_live.
4252
4253 * ifcvt.c (noce_process_if_block): Don't use an insn_b from
4254 test_bb if a or b uses x.
4255
42562000-05-06 Zack Weinberg <zack@wolery.cumb.org>
4257
20f9202d
DB
4258 * cpphash.h: Remove conditional #define of __extension__.
4259 * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
4260 RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
4261 (ENABLE_RTL_CHECKING only).
4262 * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
4263 CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
4264 (ENABLE_TREE_CHECKING only).
4265 * varray.h: Add __extension__ to VARRAY_CHECK macro
4266 (ENABLE_CHECKING only).
c30d43bf
JL
4267
42682000-05-06 Richard Earnshaw (reanrsha@arm.com)
4269
4270 Use new tail-calling mechanism on ARM.
4271 * arm.md (sibcall, sibcall_value): New expands.
4272 (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
4273 (tailcalling peepholes): Delete.
4274 (push_multi): Simplify.
4275 * arm.c (lr_save_eliminated): Delete definition.
4276 (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
4277 (output_return_instruction): Remove checks on lr_save_eliminated.
4278 (output_arm_prologue): Remove old tail-calling code.
4279 (arm_output_epilogue): New parameter, really_return. All callers
4280 changed. Handle tail-calling epilogues.
4281 * arm.h (lr_save_eliminated): Delete declaration.
4282 (frame_pointer_needed): Delete declaration.
4283 * arm-protos.h (arm_output_epilogue): Adjust prototype.
4284
4285 * arm.md (is_thumb): Examine symbol thumb_code, not expression
4286 TARGET_ARM.
4287 * arm.c (thumb_code): Define it.
4288 (arm_override_options): Set it.
4289 * arm.h (thumb_code): Declare it.
4290
42912000-05-06 Richard Earnshaw (reanrsha@arm.com)
4292
4293 * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
4294
42952000-05-06 Richard Earnshaw (reanrsha@arm.com)
4296
4297 * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
4298 bogus clobber to insns.
4299 (load_multiple_operation, store_mulitple_operation): Don't check
4300 for it.
4301 * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
4302
4303 * arm.md (and_scc, ior_scc): Add missing mode.
4304
4305 * arm.md (call_value_symbol): Remove predicate from op2.
4306
4307 * arm.h (SPECIAL_MODE_PREDICATES): Define.
4308
4309Sat May 6 06:25:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4310
4311 * expr.c (get_subtarget): New function.
4312 (force_operand, expand_expr, do_store_flag): Use it.
4313
4314 * toplev.c (compile_file): Don't take strlen of NAME if null.
4315
43162000-05-06 David Edelsohn <edelsohn@gnu.org>
4317
4318 * xcoffout.c (xcoff_current_include_file,
4319 xcoff_current_function_file, xcoff_lastfile): Constify char *.
4320 (xcoffout_source_file, xcoffout_source_line): Make filename 'const
4321 char *'.
4322 (xcoffout_declare_function): Make name 'const char *'.
4323 (xcoffout_end_epilogue): Make fname 'const char *'
4324 * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
4325 xcoffout_declare_function, xcoffout_source_line): Match above.
4326
4327 * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
4328 -maix64 is error.
4329 * rs6000.c (print_operand): Fix lossage typo.
4330 (output_cbranch): Remove "cr" decoration for now.
4331 * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
4332
4333Sat May 6 06:55:32 2000 Denis Chertykov <denisc@overta.ru>
4334
4335 * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
4336 constant count.
4337
43382000-05-05 Bruce Korb <bkorb@gnu.org>
4339
4340 * fixinc/genfixes: Improve the matching for make target names
4341
43422000-05-05 Catherine Moore <clm@cygnus.com>
4343
4344 * c-common.c (decl_attributes): For TYPE_DECLs attach the
4345 attribute to the decl.
4346 * c-decl.c (pushdecl): Propagate the USED attribute to the
4347 type copy.
4348
43492000-05-05 Richard Henderson <rth@cygnus.com>
4350
4351 * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
4352 same way emit_group_load does.
4353
43542000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
4355
4356 * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
4357
4358 * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
4359 (main): Likewise.
4360
43612000-05-05 Rodney Brown <RodneyBrown@mynd.com>
4362
4363 * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
4364
4365Fri May 5 10:29:21 2000 Marc Espie <espie@cvs.openbsd.org>
4366
4367 * config/openbsd.h (LINK_SPEC): pass correct flags to ld
4368 to support -shared, on platforms with dynamic libraries.
4369
4370Fri May 5 10:27:06 2000 Philippe De Muyter <phdm@macqel.be>
4371
4372 * system.h (S_ISBLK): Provide fallback definition.
4373
43742000-05-05 Geoff Berry <geoffb@bops.com>
4375
4376 * extend.texi (Extended Asm): Document inability to give asm
4377 statements access to condition codes.
4378
43792000-05-05 Marek Michalkiewicz <marekm@linux.org.pl>
4380
4381 * varasm.c (asm_emit_uninitialised): Use 0, not NULL
4382 as arg 2 of UNIQUE_SECTION.
4383
4384Fri May 5 10:11:41 2000 Jeffrey A Law (law@cygnus.com)
4385
4386 * predict.c: Remove May 4 change.
4387 * bb-reorder.c (make_reorder_chain): Do not perform block movement
4388 if we have predicted the branch at 50-50 probability.
4389
43902000-05-05 Richard Henderson <rth@cygnus.com>
4391
4392 * flow.c (init_propagate_block_info): Fix merge error
4393 in HAVE_conditional_execution code.
4394
4395Fri May 5 07:43:50 2000 Denis Chertykov <denisc@overta.ru>
4396
4397 * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
4398 shift cycle for unknown shift count. Also generates dec + brpl.
4399 (ashlqi3_out): Don't generate dec + brpl which now generates by
4400 `out_shift_with_cnt'.
4401 (ashlhi3_out): Likewise.
4402 (ashlsi3_out): Likewise.
4403 (ashrqi3_out): Likewise.
4404 (ashrhi3_out): Likewise.
4405 (ashrsi3_out): Likewise.
4406 (lshrqi3_out): Likewise.
4407 (lshrhi3_out): Likewise.
4408 (lshrsi3_out): Likewise.
4409
44102000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
4411
4412 * gcc.c (free_split_directories): Correct typo in explanation
4413 of make_relative_prefix.
4414
44152000-05-04 Geoff Keating <geoffk@cygnus.com>
4416
4417 * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
4418 comparison codes to branch_comparison_operator.
4419
44202000-05-04 Richard Henderson <rth@cygnus.com>
4421
4422 * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
4423
44242000-05-04 Richard Henderson <rth@cygnus.com>
4425
4426 * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
4427 (DPBIT_FUNCS): Remove _sf_to_usi.
4428 (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
4429
4430 * ifcvt.c (noce_process_if_block): Fail if A or B modified
4431 between condition and jump.
4432
4433 * libgcc2.c (near eh_context_specific): Comment #endif string.
4434 * longlong.h: Don't use strings with embedded newlines.
4435
44362000-05-04 Geoff Keating <geoffk@cygnus.com>
4437
4438 * config/rs6000/rs6000-protos.h: Add output_cbranch.
4439 * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
4440 (print_operand): Delete %t and %T codes.
4441 (output_cbranch): New function. Support branch prediction.
4442 * config/rs6000/rs6000.md: Use output_cbranch for
4443 conditional branches and returns.
4444
44452000-05-04 Jason Merrill <jason@casey.cygnus.com>
4446
4447 * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
4448 * stor-layout.c (place_field): Likewise.
4449 * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
4450 * expr.c (store_expr): Make align unsigned.
4451 * explow.c (plus_constant_wide): Make low words unsigned.
4452 * expmed.c (choose_multiplier): Likewise.
4453 * fold-const.c (fold): Likewise.
4454 * tree.h (build_int_2): Likewise.
4455 * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
4456 * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
4457 (init_emit): Change cast to unsigned char*.
4458 * varasm.c (compare_constant_1): Add cast to char*.
4459 * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
4460 * reload1.c (reload): Likewise.
4461
4462 * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
4463
4464Thu May 4 14:37:23 2000 Jeffrey A Law (law@cygnus.com)
4465
4466 * predict.c (estimate_probability): If no prediction was found, then
4467 predict the successor that is the next physical block (if such a
4468 successor exists).
4469
44702000-05-04 Richard Henderson <rth@cygnus.com>
4471
4472 * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
4473
44742000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4475
4476 * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
4477
44782000-05-04 Mumit Khan <khan@xraylith.wisc.edu>
4479
4480 * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
4481 attribute macros from here ...
4482 (CPP_SPEC): to here.
4483 * i386/mingw32.h (CPP_PREDEFINES): Likewise.
4484 (CPP_SPEC): Likewise.
4485 * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
4486
4487 * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
4488 (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
4489
44902000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4491
4492 * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
4493
4494 * diagnostic (vbuild_message_string, build_message_string,
4495 build_location_prefix, output_get_prefix, init_output_buffer,
4496 output_notice, vline_wrapper_message_with_location,
4497 v_message_with_decl, default_print_error_function): De-constify.
4498 (set_real_maximum_length): Prototype.
4499
4500 * diagnostic.h (struct output_buffer, init_output_buffer,
4501 output_get_prefix, output_set_prefix): De-constify.
4502
4503 * function.c (init_function_start): Constify.
4504
4505 * gensupport.c (remove_constraints, process_rtx): Prototype.
4506
4507 * gthr-posix.h: Indent uses of #pragma.
4508
4509 * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
4510 Prototype.
4511
4512 * predict.c (find_expected_value): Delete prototype.
4513 (expected_value_to_br_prob): Initialize variable `ev_reg'.
4514
4515 * sbitmap.h (debug_sbitmap): Prototype.
4516
4517 * ssa.c (compute_coalesced_reg_partition): Prototype.
4518
4519 * stor-layout.c (debug_rli): Prototype.
4520
4521 * tree.h (round_down): Prototype.
4522 (init_function_start): Constify.
4523
45242000-05-04 Zack Weinberg <zack@wolery.cumb.org>
4525
4526 * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
4527 (overly conservative). Change extern inline wrappers to
4528 static inline, define them always, use PARAMS properly.
4529 * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
4530 whitespace warnings for \f and \v at the beginning of a line.
4531
4532Thu May 4 10:03:50 2000 Jeffrey A Law (law@cygnus.com)
4533
4534 * haifa-sched.c (schedule_insns): Free the flow edge list when it
4535 is no longer needed
4536
45372000-05-04 Bruce Korb <bkorb@gnu.org>
4538
4539 * fixincl/inclhack.def: added broken_cabs -
4540 Remove `extern double cabs' declarations from math.h
4541 * fixincl/inclhack.sh: regen
4542 * fixincl/fixincl.x: regen
4543 * fixincl/fixincl.c: Remove BOGOSITY code
4544 * fixincl/mkfixinc.sh: Remove code for installing "shell" version
4545
4546Thu May 4 09:45:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4547
4548 * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
4549 MEM_ALIAS_SET.
4550 * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
4551 when calling MEM_COPY_ATTRIBUTES.
4552 * emit-rtl.c (operand_subword, change_address): Likewise.
4553 * explow.c (stabilize): Likewise.
4554 * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
4555 * integrate.c (copy_rtx_and_substitute): Likewise.
4556 * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
4557 when calling MEM_COPY_ATTRIBUTES.
4558 (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
4559 Likewise.
4560 * cse.c (gen_lowpart_if_possible): Likewise.
4561 * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
4562 * optabs.c (gen_move_insn): Likewise.
4563 * recog.c (validate_replace_rtx_1): Likewise.
4564 * simplify-rtx.c (add_mem_for_addr): Likewise.
4565 * stmt.c (expand_anon_union_decl): Likewise.
4566 * config/arm/arm.md: Likewise.
4567 * config/h8300/h7300.c (fix_bit_operand): Likewise.
4568 * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
4569 (block_move_no_loop, block_move_sequence): Likewise.
4570 * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
4571 * config/alpha/alpha.c (get_aligned_mem): Likewise.
4572 Clear MEM_ALIAS_SET.
4573 * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
4574 MEM_COPY_ATTRIBUTES.
4575
45762000-05-03 Robert Lipe <robertlipe@usa.net>
4577
4578 * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
4579 to suppress libgcc1.
4580 (i[34567]86-*-sco3.2v5*) Likewise.
4581 (i[34567]86-*-sco3.2v4*) Likewise.
4582 (i[34567]86-*-sco) Likewise.
4583 (i[34567]86-*-solaris2) Likewise.
4584 (i[34567]86-*-sysv5*) Likewise.
4585 (i[34567]86-*-sysv4*) Likewise.
4586 (i[34567]86-*-udk*) Likewise.
4587 (i[34567]86-*-sysv*) Likewise.
4588
45892000-05-03 Zack Weinberg <zack@wolery.cumb.org>
4590
4591 * cpphash.h (U): New define, to correct type of string constants.
4592 (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
4593 routines, to do casts when passing unsigned strings to libc.
4594 * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
4595
4596 * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
4597 * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
4598 * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
4599 * cpplex.c (parse_ifdef, parse_include, validate_else): Make
4600 second argument an U_CHAR *.
4601
4602 * cppinit.c (builtin_array): Make name and value U_CHAR *, add
4603 length field, clean up initializer.
4604 (ISTABLE): Add __extension__ to designated-
4605 initializers version.
4606 * cpplex.c (CHARTAB): Likewise.
4607
4608 * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
4609 case so the file won't be empty.
4610
4611Wed May 3 21:01:46 2000 Jason Eckhardt <jle@cygnus.com>
4612
4613 * bb-reorder.c (struct reorder_block_def): Member succ removed.
4614 (REORDER_BLOCK_SUCC): Removed.
4615 (enum reorder_skip_type): Removed.
4616 (skip_insns_between_block): Renamed to skip_insns_after_block.
4617 Removed second argument. Removed dead code and cleaned up.
4618 (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
4619 (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
4620 second parameter to skip_insns_after_block.
4621
4622Wed May 3 13:29:54 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4623
4624 * tree.c (staticp, case LABEL_DECL): New case.
4625
46262000-05-03 Richard Henderson <rth@cygnus.com>
4627
4628 * Makefile.in (start.encap): Do not depend on LIBGCC1.
4629
4630 * mklibgcc1.in: Fix typo last change.
4631
46322000-05-03 Jason Merrill <jason@casey.cygnus.com>
4633
4634 * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
4635 (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
4636 (GCC_CFLAGS): Use it.
4637 (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
4638 * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
4639 objc/Make-lang.in: Use it.
4640
46412000-05-03 Jason R Thorpe <thorpej@zembu.com>
4642
4643 * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
4644
46452000-05-03 Richard Henderson <rth@cygnus.com>
4646
4647 * mklibgcc.in: Restrict OLDCC=GCC test to native. Equate
4648 LIBGCC1 empty with libgcc1.null.
4649
4650Wed May 3 12:55:46 2000 Jim Wilson <wilson@cygnus.com>
4651
4652 * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
4653 change.
4654
46552000-05-03 Greg McGary <gkm@gnu.org>
4656
4657 * tree.h (tree_common): Add bounded_flag member. Remove
4658 inaccurate comment about number of remaining bits.
4659 (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
4660 BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
4661 MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
4662 TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
4663 TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
4664 (TYPE_QUAL_BOUNDED): New constant.
4665 (TYPE_QUALS): Handle bounded qualifier.
4666 (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
4667 (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
4668 TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
4669 TYPE_AMBIENT_BOUNDEDNESS): New macros.
4670 (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
4671 (tree_type): Add pointer_depth member. Remove
4672 inaccurate comment about number of remaining bits.
4673 (DECL_POINTER_DEPTH): Add macro.
4674 (tree_decl): Add pointer_depth member.
4675
4676Wed May 3 22:52:53 2000 Denis Chertykov <denisc@overta.ru>
4677
4678 * config/avr/avr-protos.h (test_hard_reg_class): Declared.
4679 * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
4680 (lshrhi3_out): Likewise.
4681 (ashrsi3_out): bugfix in shift by 8.
4682 (test_hard_reg_class): New function.
4683 * config/avr/avr.md: Bugfix inside conditions in peepholes.
4684 (ashlhi3): removed define_expand of this pattern.
4685 (*ashlhi3_insn): renamed to ashlhi3.
4686 (ashlsi3): removed define_expand of this pattern.
4687 (*ashlsi3_insn): renamed to ashlsi3.
4688 (ashrqi3): removed define_expand of this pattern.
4689 (*ashrqi3_insn): renamed to ashrqi3.
4690 (ashrhi3): removed define_expand of this pattern.
4691 (*ashrhi3_insn): renamed to ashrhi3.
4692 (ashrsi3): removed define_expand of this pattern.
4693 (*ashrsi3_insn): renamed to ashrsi3.
4694 (lshrhi3): removed define_expand of this pattern.
4695 (*lshrhi3_insn): renamed to lshrhi3.
4696 (lshrsi3): removed define_expand of this pattern.
4697 (*lshrsi3_insn): renamed to lshrsi3.
4698
46992000-05-03 Rodney Brown <RodneyBrown@pmsc.com>
4700
4701 * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
4702 inclusion of "system.h".
4703
4704Wed May 3 11:43:53 2000 Jim Wilson <wilson@cygnus.com>
4705
4706 * config/ia64/ia64.c (ia64_encode_section_info): Add check for
4707 TREE_ASM_WRITTEN.
4708
47092000-05-03 David Mosberger <davidm@hpl.hp.com>
4710
4711 * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
4712 if -mauto-pic is on.
4713 (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
4714 -mconstant-gp is in effect and function-descriptors are being used
4715 to make indirect calls.
4716 * config/ia64/ia64.h (MASK_CONST_GP): New macro.
4717 (MASK_AUTO_PIC): Ditto.
4718 (TARGET_CONST_GP): Ditto.
4719 (TARGET_AUTO_PIC): Ditto.
4720 (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
4721 (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
4722 -mno-pic is in effect.
4723 (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
4724 * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
4725 -mauto-pic is in effect.
4726 (gprel64_offset): New pattern.
4727 (load_gprel64): Ditto.
4728 (call): Handle -mauto-pic like -mno-pic (don't use fptr). If
4729 -mconstant-gp is in effect, no need to preserve gp around direct
4730 calls.
4731 (call_value): Ditto.
4732 * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
4733 (FUNCTION_PROFILER): Define.
4734 * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
4735 @fptr() directive when -mno-pic or -mauto-pic is in effect.
4736 (ASM_OUTPUT_DESTRUCTOR): Ditto.
4737
47382000-05-03 Richard Henderson <rth@cygnus.com>
4739
4740 * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
4741 (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
4742 (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
4743 (mklibgcc, libgcc.mk): New targets.
4744 (libgcc.a): Use libgcc.mk.
4745 (stmp-multilib): Likewise.
4746 (stmp-multilib-sub): Remove.
4747 (mostlyclean): Don't delete libgcc2 temp files.
4748 * configure.in (AC_PROG_CC_C_O): Add.
4749 (NO_MINUS_C_MINUS_O): Substitute it.
4750 (all_outputs): Add mklibgcc.
4751 * mklibgcc.in: New file.
4752
47532000-05-03 Jason Merrill <jason@casey.cygnus.com>
4754
4755 * cppexp.c (op_t): Make an int.
4756
4757 * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
4758
4759 * varasm.c (initializer_constant_valid_p): Fix parenthesis.
4760
4761 * gensupport.c (process_rtx): Fix macros used.
4762
47632000-05-03 Richard Henderson <rth@cygnus.com>
4764
4765 * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
4766 call-clobbered registers of a call.
4767
4768Wed May 3 12:40:53 2000 Clinton Popetz <cpopetz@cygnus.com>
4769
4770 * gensupport.c: New file.
4771 * gensupport.h: New file.
4772 * Makefile.in (HOST_RTL): Depend on gensupport.
4773 (gensupport.o) New rule.
4774 * genattr.c: Use gensupport for reading .md files.
4775 * genattrtab.c: Ditto.
4776 * gencodes.c: Ditto.
4777 * genconfig.c: Ditto.
4778 * genemit.c: Ditto.
4779 * genextract.c: Ditto.
4780 * genflags.c: Ditto.
4781 * genopinit.c: Ditto.
4782 * genoutput.c: Ditto.
4783 * genpeep.c: Ditto.
4784 * genrecog.c: Ditto.
4785 * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
4786 * md.texi (Insn Splitting): Document define_insn_and_split.
4787
4788Tue May 2 00:20:30 2000 Jason Eckhardt <jle@cygnus.com>
4789
4790 * flow.c (verify_flow_info): Added two more sanity checks. The
4791 first checks that the blocks are numbered consecutively. The second
4792 checks that n_basic_blocks is actually equal to the number of
4793 basic blocks in the insn chain.
4794
47952000-05-03 Zack Weinberg <zack@wolery.cumb.org>
4796
4797 * cpplib.h: Add accessor macros for token lists.
4798 * cpplib.c, cpphash.c, cpplex.c: Use them.
4799
4800Wed May 3 09:29:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4801
4802 * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
4803 memory usage if not in a function.
4804 * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
4805 return address if static.
4806
4807Wed May 3 13:14:49 MET DST 2000 Jan Hubicka <jh@suse.cz>
4808
4809 * ifcvt.c (noce_try_cmove_arith): Use may_trap_p to thest
4810 whether address may trap.
4811
4812Tue May 2 23:38:37 2000 Jason Eckhardt <jle@cygnus.com>
4813
4814 * bb-reorder (chain_reorder_blocks): Changed code to test for
4815 EDGE_FALLTHRU rather than making erroneous assumption that the
4816 first outgoing edge is the fall-through edge.
4817
4818Tue May 2 18:20:31 2000 Donald Lindsay <dlindsay@hound.cygnus.com>
4819
4820 * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
4821 ABI for varargs, across all MIPS. This is incompatible because the
4822 va_list (__builtin_va_list) structure is different, so a compilation
4823 unit passing a va_list and a compilation unit being passed one, should
4824 both be compiled with the same ABI. (The old structure had two
4825 pointers, now it has three.)
4826
4827Tue May 2 19:18:43 2000 Jason Eckhardt <jle@cygnus.com>
4828
4829 * bb-reorder.c (struct reorder_block_def): Remove members end,
4830 block_begin, and block_end.
4831 (REORDER_BLOCK_OLD_END): Delete.
4832 (REORDER_BLOCK_BEGIN): Delete.
4833 (REORDER_BLOCK_END): Delete.
4834 (chain_reorder_blocks): Remove dead code.
4835
4836Tue May 2 17:06:53 2000 Jason Eckhardt <jle@cygnus.com>
4837
4838 * bb-reorder.c (remove_scope_notes): Check for both types of scope
4839 notes as the end of a basic block before deleting.
4840
48412000-05-02 Mumit Khan <khan@xraylith.wisc.edu>
4842
4843 * final.c (final_start_function): Fix spelling of "necessary".
4844
48452000-05-02 Jason Merrill <jason@casey.cygnus.com>
4846
4847 * toplev.c (debug_ignore_block): Return int.
4848 * dwarf2out.c (dwarf2out_ignore_block): Likewise.
4849 * toplev.h, dwarf2out.h: Adjust.
4850 * emit-rtl.c (remove_unnecessary_notes): Test return value.
4851
4852 * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
4853 * toplev.c, final.c, rtl.h: Adjust.
4854
48552000-05-02 Zack Weinberg <zack@wolery.cumb.org>
4856
4857 * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
4858 * configure.in: Look for makeinfo in the unified tree, then
4859 for a system makeinfo which is sufficiently new.
4860 * Makefile.in: If configure says makeinfo is too old, don't
4861 build or install Info documentation.
4862
48632000-05-02 Zack Weinberg <zack@wolery.cumb.org>
4864
4865 * cpphash.c (collect_params): Fix off-by-one error.
4866 (dump_hash_helper): Dump all four macro nodetypes.
4867
48682000-05-02 Jakub Jelinek <jakub@redhat.com>
4869
4870 * cpphash.c (trad_stringify): Adjust p after stringification as
4871 well.
4872
48732000-05-02 Zack Weinberg <zack@wolery.cumb.org>
4874
4875 * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
4876 (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
4877
4878 * cppfiles.c (file_cleanup): Delete.
4879 * cpphash.c (macro_cleanup): Delete.
4880 (collect_objlike_expansion, collect_funlike_expansion,
4881 macarg, scan_arguments): Remove CPP_POP case.
4882
4883 * cpplex.c (null_cleanup): Delete.
4884 (cpp_pop_buffer): Do the work that was done in the cleanups
4885 here. Call _cpp_unwind_if_stack from here.
4886 (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
4887 cpp_scan_buffer): Run until we see CPP_EOF and the top of
4888 stack is the buffer _below_ the one we stacked.
4889 (cpp_get_token): Always pop an exhausted buffer. Return
4890 CPP_EOF unless it's a macro buffer. Don't call _cpp_handle_eof.
4891 * cpplib.c (skip_if_group): Don't call cpp_get_token to
4892 increment the line number.
4893 (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
4894
4895 * fix-header.c (read_scan_file) [parsing getchar()]: Run until
4896 we see CPP_EOF and the top of stack is the buffer _below_ the
4897 one we stacked.
4898 * scan-decls.c: Likewise.
4899
49002000-05-02 Andrew Haley <aph@cygnus.com>
4901
4902 * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
4903 where this function is called for the second time on a decl that
4904 has had its section info changed in such a way as to move it out
4905 of small data/bss.
4906 * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
4907
49082000-05-01 Richard Henderson <rth@cygnus.com>
4909
4910 * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
4911 the sequence we're moving, not to merge_bb->head.
4912
49132000-05-01 Richard Henderson <rth@cygnus.com>
4914
4915 * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
4916 reference to alpha/t-linux.
4917 (alpha*-*-linux-gnu*): Likewise.
4918 * configure: Rebuild.
4919
4920 * calls.c (expand_call): Don't emit reg notes for a sibcall.
4921
4922 * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
4923 if not in SSA form.
4924
4925 * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
4926
49272000-05-01 Jason Merrill <jason@casey.cygnus.com>
4928
4929 * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
4930 TREE_THIS_VOLATILE.
4931
49322000-05-01 Richard Henderson <rth@cygnus.com>
4933
4934 * ifcvt.c (noce_emit_cmove): Conditionally compile call to
4935 emit_conditional_move.
4936
49372000-05-01 Jakub Jelinek <jakub@redhat.com>
4938
4939 * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
4940 as the dynamic linker.
4941
49422000-05-01 Zack Weinberg <zack@wolery.cumb.org>
4943
4944 * cppfiles.c (open_include_file): Open file in blocking mode.
4945 (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
4946 Only exclude block devices and directories.
4947
4948 * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
4949 static. Allocate the hashnode and its string in the same
4950 block of memory.
4951 (del_HASHNODE): Don't free h->name.
4952 (_cpp_lookup): If there is no entry for this string, create
4953 one, of type T_VOID.
4954 (_cpp_lookup_slot): Delete.
4955 * cpphash.h: Update prototypes.
4956
4957 * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
4958 not hp == NULL.
4959 * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
4960 do_unassert, cpp_defined): Use _cpp_lookup. Don't create a
4961 node here, just fill in the value field properly. "Delete"
4962 entries by setting the value field to T_VOID. Check for
4963 hp->type == T_VOID, not hp == NULL.
4964
4965 * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
4966 * cpperror.c, cppexp.c, cpplex.c, cpplib.c: Don't include
4967 hashtab.h.
4968
49692000-05-01 Alexandre Oliva <aoliva@cygnus.com>
4970
4971 * config/mn10300/mn10300.c (print_operand_address): Do not add
4972 zero to SP.
4973
4974 * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
4975 adjusted by less than 256 bytes, use ret regardless of having any
4976 callee-saved register to restore.
4977
49782000-05-01 Laurynas Biveinis <lauras@softhome.net>
4979
4980 * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
4981
49822000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
4983
4984 * config/i386/djgpp.h (INT_ASM_OP): Define.
4985 (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
4986 (ASM_WEAKEN_LABEL): Define.
4987 (MASK_BNU210): Define.
4988 (SUBTARGET_SWITCHES): Define.
4989 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
4990 (MAKE_DECL_ONE_ONLY): Define.
4991 (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
4992
49932000-05-01 Mumit Khan <khan@xraylith.wisc.edu>
4994
4995 * i386/cygwin.h (INT_ASM_OP): Define.
4996
4997Mon May 1 18:20:06 2000 Denis Chertykov <denisc@overta.ru>
4998
4999 * config/avr/avr.c (address_cost): renamed to avr_address_cost.
5000 * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
5001
5002Mon May 1 17:50:44 2000 Denis Chertykov <denisc@overta.ru>
5003
5004 * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
5005 __tmp_reg__ and __zero_reg__ initialization.
5006
50072000-04-30 Richard Henderson <rth@cygnus.com>
5008
5009 * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
5010
5011 * ifcvt.c (noce_process_if_block): Fail the conversion if X is
5012 referenced bewteen the condition and the jump. Don't delete
5013 anything but the jump.
5014
5015Sun Apr 30 22:48:24 2000 Jason Eckhardt <jle@cygnus.com>
5016
5017 * bb-reorder.c (scope_def): New struct.
5018 (scope_forest_info): New struct.
5019 (struct reorder_block_def): New member "scope".
5020 (REORDER_BLOCK_SCOPE): New macro.
5021 (relate_bbs_with_scopes): New function and prototype.
5022 (make_new_scope): Likewise.
5023 (build_scope_forest): Likewise.
5024 (remove_scope_notes): Likewise.
5025 (insert_intra_1): Likewise.
5026 (insert_intra_bb_scope_notes): Likewise.
5027 (insert_inter_bb_scope_notes): Likewise.
5028 (rebuild_scope_notes): Likewise.
5029 (free_scope_forest_1): Likewise.
5030 (free_scope_forest): Likewise.
5031 (dump_scope_forest): Likewise.
5032 (dump_scope_forest_1): Likewise.
5033 (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
5034 Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
5035 block.
5036 (reorder_basic_blocks): Added calls to build_scope_scope_forest
5037 and remove_scope_notes before reordering is done. Added calls to
5038 rebuild_scope_notes, free_scope_forest, and reorder_blocks after
5039 after reordering is done.
5040
50412000-40-30 Bruce Korb <bkorb@gnu.org>
5042
5043 * fixinc/inclhack.def: Added definitions needed by OSR5,
5044 removed two stale entries (defined away with OLD_CPP).
5045 * fixinc/inclhack.sh: regen
5046 * fixinc/fixincl.x: regen
5047
50482000-04-30 Richard Henderson <rth@cygnus.com>
5049
5050 * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
5051 from the last insn in the sequence.
5052
50532000-04-30 Zack Weinberg <zack@wolery.cumb.org>
5054
5055 * cpplex.c (cpp_idcmp): New function.
5056 * cpplib.h: Prototype it.
5057 * scan_decls.c (scan_decls): Use it to inspect token names.
5058 * fix-header.c (read_scan_file): Likewise. Set system_header_p on
5059 the file being run through the preprocessor.
5060 (check_macro_names): Provide length of token to cpp_defined.
5061
5062 * Makefile.in: Remove stale warning message.
5063
5064 * cppfiles.c (redundant_include_p): Provide length of token to
5065 cpp_defined.
5066 * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
5067 values are unsigned int.
5068 (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
5069 (_cpp_lookup_slot): Do not calculate the hash, either.
5070 * cpphash.h: Update prototypes.
5071 * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
5072 Hashes are unsigned int. Calculate hash here, pass by value
5073 to _cpp_lookup_slot.
5074
50752000-04-30 Bernd Schmidt <bernds@cygnus.co.uk>
5076
5077 * simplify-rtx.c (check_value_useless): Delete function.
5078 (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
5079 by hand.
5080 (cselib_invalidate_regno): Likewise.
5081 (cselib_invalidate_mem_1): Likewise.
5082 (references_value_p): Recognize useless values by the fact that they
5083 have no locations.
5084 (discard_useless_values): Likewise.
5085 (cselib_record_set): This may turn a useless value
5086 into a useful one.
5087
50882000-04-30 Richard Henderson <rth@cygnus.com>
5089
5090 * config/d30v: New port.
5091
5092 * configure.in (d30v-*): Set fp format.
5093 * configure: Rebuild.
5094
50952000-04-30 Richard Henderson <rth@cygnus.com>
5096
5097 * ifcvt.c: New file.
5098 * Makefile.in (OBJS): Add it.
5099 (ifcvt.o): New target.
5100 * jump.c (jump_optimize_1): Remove all code related to if-conversion,
5101 and conditional arithmetic.
5102 (find_insert_position): Remove.
5103 * timevar.def (TV_IFCVT, TV_IFCVT2): New.
5104 * toplev.c (DFI_ce, DFI_ce2): New.
5105 (dump_file): Add ce and ce2 dumps.
5106 (rest_of_compilation): Run if_convert a couple o times. Set
5107 cse_not_expected after cse2. Don't set no_new_pseudos until
5108 after sched1 or recompute_reg_usage.
5109
51102000-04-30 Richard Henderson <rth@cygnus.com>
5111
5112 * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
5113 (crtend.o, crtbeginS.o, crtendS.o): Likewise.
5114
51152000-04-30 Richard Henderson <rth@cygnus.com>
5116
5117 * flow.c (struct reg_cond_life_info): New.
5118 (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
5119 (init_propagate_block_info): Initialize them.
5120 (free_propagate_block_info): Destruct them.
5121 (mark_set_1): Consider conditional life before killing a register.
5122 (mark_regno_cond_dead): New.
5123 (free_reg_cond_life_info): New.
5124 (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
5125 (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
5126 (mark_used_reg): Record conditional life.
5127
5128 * haifa-sched.c (schedule_insns): Disable death counting
5129 sanity check for HAVE_conditional_execution.
5130
51312000-04-30 Richard Henderson <rth@cygnus.com>
5132
5133 * Makefile.in (TIMEVAR_H): New.
5134 (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
5135 (timevar.h): Remove rule.
5136
51372000-04-29 Richard Henderson <rth@cygnus.com>
5138
5139 * config/alpha/crtend.asm: Use C comments instead of #.
5140 * config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden.
5141
5142 * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
5143
51442000-04-29 Zack Weinberg <zack@wolery.cumb.org>
5145
5146 * cpphash.h (enum node_type: Take out T_MCONST.
5147 (union hashval): Move into struct hashnode.
5148 (struct hashnode): Pack tighter. Remove file, line, col
5149 members.
5150 * cpphash.c: Constify most of the macro-definition structures.
5151 (struct definition): Replace by struct object_defn
5152 and struct funct_defn. Put file, line, column information
5153 here. All users updated to match.
5154 (_cpp_create_definition, _cpp_macroexpand): Remove special
5155 case for #define WORD OTHERWORD.
5156 * cpplib.c (do_undef): Remove T_MCONST case.
5157
5158 * cpphash.h: Move struct reflist, struct definition, and the
5159 DEFINITION typedef to cpphash.c. Use 'struct definition *' in
5160 union hashval. _cpp_free_definition takes a HASHNODE pointer.
5161 * cpphash.c (_cpp_free_definition): Free data pointed to by
5162 MCONST, XCONST, MACRO, and FMACRO nodes properly.
5163 (_cpp_create_definition, del_HASHNODE): Just call
5164 _cpp_free_definition to clear out a hashnode.
5165 * cpplib.c (do_pragma_poison): Likewise.
5166
5167Sat Apr 29 12:25:17 2000 Alexandre Oliva <aoliva@cygnus.com>
5168
5169 * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
5170 LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
5171 FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
5172 (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
5173 (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
5174 REGNO_AM33_P): Redefine in terms of the new macros.
5175 (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
5176 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
5177 STRUCT_VALUE): Likewise.
5178 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
5179 ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise. Moved.
5180
5181Sat Apr 29 01:18:45 MET DST 2000 Jan Hubicka <jh@suse.cz>
5182
5183 * regmove.c (struct record_stack_memrefs_data): New.
5184 (record_stack_memrefs): New function.
5185 (combine_stack_adjustments_for_block): Use it.
5186
5187Sat Apr 29 01:15:27 MET DST 2000 Jan Hubicka <jh@suse.cz>
5188
a1f300c0 5189 * calls.c (calls_function_1): Properly handle TREE_LIST expressions;
c30d43bf
JL
5190 use special_function_p to detect alloca.
5191
5192Fri Apr 28 16:30:33 2000 Marc Espie <espie@cvs.openbsd.org>
5193
5194 * gcc.texi: Fixes for makeinfo 4.0 --html.
5195
51962000-04-28 Zack Weinberg <zack@wolery.cumb.org>
5197
5198 * pcp.h: Delete file.
5199
52002000-04-28 Kazu Hirata <kazu@hxi.com>
5201
5202 * h8300.c (function_epilogue): Clean up flags when the last insn
5203 in a function is a barrier.
5204
52052000-04-28 Chris Demetriou <cgd@sibyte.com>
5206
5207 * configure.in (sparc-hal-solaris2*): protect [] glob from
5208 my expansion.
5209 (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
5210 rather than hard-coded constants in target_cpu_default2.
5211 * configure: Regenerate.
5212
52132000-04-28 Jason Merrill <jason@casey.cygnus.com>
5214
5215 * tree.c (get_callee_fndecl): Extract the initial value from
5216 a readonly decl.
5217
52182000-04-28 Richard Henderson <rth@cygnus.com>
5219
5220 * varasm.c (record_constant_1): Record the CODE_LABEL when
5221 taking the address of a LABEL_REF.
5222
52232000-04-28 Richard Henderson <rth@cygnus.com>
5224 Jan Hubicka <jh@suse.cz>
5225
5226 * calls.c (combine_pending_stack_adjustment_and_call): Return the
5227 adjustment; don't do the stack adjust.
5228 (expand_call): Call compute_argument_block_size right before
5229 allocating the block; update comment; don't do alignment sanity
5230 checking for sibling call; use args_size instead of
5231 unadjusted_args_size before args_size is adjusted. Use
5232 combine_pending_stack_adjustment_and_call to compute stack adjust
5233 for must_preallocate case.
5234
5235 * expr.c (push_block): Remove shadow `temp' in inner scope.
5236
52372000-04-28 Jason Merrill <jason@casey.cygnus.com>
5238
5239 * toplev.c (rest_of_compilation): Call
5240 note_deferral_of_defined_inline_function even if the function
5241 can't be inlined.
5242
52432000-04-28 Scott Bambrough <scottb@netwinder.org>
5244
5245 * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
5246
52472000-04-28 Richard Henderson <rth@cygnus.com>
5248
5249 * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
5250
52512000-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5252
5253 * timevar.c (init_timevar): DeANSIfy function definition.
5254
52552000-04-27 Alex Samuel <samuel@codesourcery.com>
5256
5257 * Makefile.in (timevar.o): Depend on flags.h.
5258 * timevar.c (unused_stack_instances): New variable.
5259 (timevar_push): Take a timevar_stack_def from
5260 unused_stack_instances if available.
5261 (timevar_pop): Push the popped timevar_stack_def onto
5262 unused_stack_instances.
5263 (TIMEVAR_ENABLE): New macro.
5264 (timevar_def): Make standalone a 1-bit field. Add field used.
5265 (get_time): Rename parameter to now. Return after clearing it if
5266 not TIMEVAR_ENABLE.
5267 (init_timevar): Do nothing if not TIMEVAR_ENABLE.
5268 (timevar_pop): Likewise.
5269 (timevar_stop): Likewise.
5270 (timevar_push): Likewise. Mark the timing variable as used.
5271 (timevar_start): Likewise.
5272 (timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print
5273 timevars that were never used.
5274
52752000-04-27 Mark Mitchell <mark@codesourcery.com>
5276
5277 * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
5278 always TREE_READONLY.
5279
52802000-04-27 Ulrich Drepper <drepper@cygnus.com>
5281
5282 * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
20f9202d 5283 for call instruction with mode QImode.
c30d43bf
JL
5284
52852000-04-27 Alex Samuel <samuel@codesourcery.com>
5286
5287 * Makefile.in (OBJS): Add timevar.o.
5288 (toplev.o): Depend on timevar.h.
5289 (ggc-simple.o): Likewise.
5290 (ggc-page.o): Likewise.
5291 (timevar.o): New rule.
5292 (timevar.h): New rule.
5293
5294 * timevar.h: New file.
5295 * timevar.c: Likewise.
5296 * timevar.def: Likewise.
5297
5298 * toplev.h (gc_time, parse_time, varconst_time): Remove.
5299 * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
5300 throughout.
5301 (TIMEVAR): Remove macro.
5302 (gc_time, parse_time, varconst_time, integration_time, jump_time,
5303 cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
5304 flow_time, combine_time, regmove_time, sched_time,
5305 local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
5306 sched2_time, dbr_sched_time, reorder_blocks_time,
5307 rename_registers_time, shorten_branch_time, stack_reg_time,
5308 to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
5309 all_time): Remove.
5310 (compile_file): Don't initialize time variables. Call
5311 init_timevar and start TV_TOTAL timer. Call timevar_print instead
5312 of many calls to print_time.
5313 (rest_of_compilation): Add timing for reload_cse_regs.
5314 (get_run_time): Removed to timevar.c.
5315 (print_time): Likewise.
5316 (get_run_time): Implement using TV_TOTAL time variable.
5317 (print_time): Get total run time from get_run_time.
5318 * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
5319 computing elapsed time explicitly.
5320 * ggc-simple.c (ggc_collect): Likewise.
5321 (gc_time): Remove declaration.
5322
53232000-04-27 Mark Mitchell <mark@codesourcery.com>
5324
5325 * calls.c (combine_pending_stack_adjustment_and_call): New function.
5326 (expand_call): Use it.
5327
53282000-04-27 Jan Hubicka <jh@suse.cz>
5329
5330 * flow.c (mark_set_1): Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
5331 fields.
5332
5333Thu Apr 27 12:47:00 2000 Alexandre Oliva <aoliva@cygnus.com>
5334
5335 * config/mn10300/mn10300.md (movhi): Simplify. Prefer data
5336 registers.
5337
5338Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz>
5339
5340 * function.c (epilogue_done): Pass whole insn to record_insns.
5341
5342Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka <jh@suse.cz>
5343
5344 * cse.c (CSE_ADDRESS_COST): Remove.
5345 (find_best_addr): Add new parameter "MODE", use address_cost instead
5346 of CSE_ADDRESS_COST
5347 (address_cost): New.
5348 (fold_rtx): Update call of find_best_addr.
5349 * rtl.h (address_cost): Declare.
5350 * loop.c (general_induction_var): Add new parameter "MODE", use
5351 address_cost instead of ADDRESS_COST
5352 (init_loop): Use address_cost instead of ADDRESS_COST.
5353 (check_insn_for_givs): Update call of general_induction_var.
5354 (find_mem_givs): Likewise.
5355 (consec_sets_giv): Likewise.
5356 * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
5357 * i386.c (ix86_address_cost): New.
5358 * i386-protos.h (ix86_address_cost): Declare.
5359
5360Thu Apr 27 11:45:16 2000 Alexandre Oliva <aoliva@cygnus.com>
5361
5362 * config/mn10300/mn10300.md (movqi): Simplify. Prefer data
5363 registers.
5364
5365Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka <jh@suse.cz>
5366
5367 * expr.c (store_expr): Use clear_storage instead of direct memset
5368 libcall.
5369
5370Thu Apr 27 10:36:51 2000 Alexandre Oliva <aoliva@cygnus.com>
5371
5372 * config/mn10300/mn10300.c (mn10300_address_cost): Test
5373 ASHIFT, AND and LABEL_REF.
5374
5375Thu Apr 27 15:08:46 MET DST 2000 Jan Hubicka <jh@suse.cz>
5376
5377 * invoke.texi (-foptimize-sibling-calls): Fix.
5378
5379Thu Apr 27 14:54:22 MET DST 2000 Jan Hubicka <jh@suse.cz>
5380
5381 * loop.c (load_mems) Don't use hard registers for the hoisting.
5382
5383 * unroll.c (unroll_loop): Avoid overflow in the n_iterations
5384 calculation; rename const_equiv array in the preconditioning code
5385 from loop_unroll to loop_unroll_precondition
5386
53872000-04-27 Richard Henderson <rth@cygnus.com>
5388
5389 * flow.c (struct propagate_block_info): Remove new_dead, new_live;
5390 add new_set.
5391 (propagate_one_insn): Clear it. Don't update reg_live here.
5392 (init_propagate_block_info): Update for pbi member changes.
5393 (free_propagate_block_info): Likewise.
5394 (mark_set_1): Know that zero_extract, sign_extract, and
5395 strict_low_part don't kill their argument. Alter hard subregs.
5396 Update new_set for non-CLOBBER sets. Update reg_live.
5397 (find_auto_inc): Update reg_live, not new_dead.
5398 (mark_used_reg): Update reg_live, not new_live. Examine new_set
5399 to determine if the reg in question was set this insn. Only update
5400 reg info with PROP_REG_INFO.
5401
54022000-04-26 Richard Henderson <rth@cygnus.com>
5403
5404 * flow.c (allocate_reg_life_data): Set max_regno here ...
5405 (life_analysis): ... not here.
5406
5407 * flow.c (calculate_global_regs_live): Force stack pointer
5408 live at end.
5409
54102000-04-26 Richard Henderson <rth@cygnus.com>
5411
5412 * jump.c (redirect_exp_1): Rework from old redirect_exp. Never
5413 commit change group changes.
5414 (invert_exp_1): Similarly.
5415 (redirect_exp, invert_exp): Use them.
5416 (redirect_jump_1): New.
5417 (invert_jump_1): New.
5418 (jump_optimize_1): Remove code subsumed by condexec.c.
5419 * rtl.h (invert_jump_1, redirect_jump_1): Declare.
5420
54212000-04-26 Richard Henderson <rth@cygnus.com>
5422
5423 * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
5424
5425 * genconfig.c (main): Set all HAVE_foo to 1.
5426
5427 * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
5428
54292000-04-26 Alex Samuel <samuel@codesourcery.com>
5430
5431 * invoke.texi: Document -fssa flag.
5432
54332000-04-26 Richard Henderson <rth@cygnus.com>
5434
5435 * flow.c (count_reg_sets_1): Remove.
5436 (count_reg_sets, count_reg_references): Remove.
5437 (recompute_reg_usage): Implement with update_life_info.
5438 Reallocate life data.
5439
54402000-04-26 Richard Henderson <rth@cygnus.com>
5441
5442 * flow.c (update_life_info): Consider blocks null to mean the
5443 universal set.
5444 (calculate_global_regs_live): Likewise.
5445 (life_analysis): Do that instead of collecting all_blocks.
5446
54472000-04-26 Richard Henderson <rth@cygnus.com>
5448
5449 * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
5450 a still-valid conditional jump.
5451
54522000-04-26 Richard Henderson <rth@cygnus.com>
5453
5454 * jump.c (invert_jump): Always invert REG_BR_PROB. Do it correctly.
5455
5456 * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
5457 * flow.c (calculate_loop_depth): Remove.
5458 * output.h (calculate_loop_depth): Don't declare.
5459 * toplev.c (rest_of_compilation): Expand calculate_loop_depth
5460 inline; run estimate_probability at the same time.
5461
54622000-04-26 Neil Booth <NeilB@earthling.net>
5463
5464 * cpplib.h: "~=" is not a single pp-token.
5465 * cpplex.c: Correct commentary.
5466
54672000-04-26 Richard Henderson <rth@cygnus.com>
5468
5469 * flow.c (mark_set_1): New arguments code and flags; update all
5470 callers. Track regno_first and regno_last; do HARD_REGNO_NREGS
5471 test in one place. Tidy flags tests. Don't bias REG_N_REFS by
5472 loop_depth when optimizing for size. Do new_dead update after
5473 emitting REG_UNUSED notes. Merge mark_set_reg code.
5474 (mark_set_reg): Remove.
5475 (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
5476 arrange to not emit REG_UNUSED notes.
5477
54782000-04-26 Richard Henderson <rth@cygnus.com>
5479
5480 * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
5481 * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
5482
54832000-04-26 Richard Henderson <rth@cygnus.com>
5484
5485 * flow.c (propagate_one_insn): Break out from propagate_block.
5486 (init_propagate_block_info): Likewise.
5487 (free_propagate_block_info): Likewise.
5488 (propagate_block): Use them. Export.
5489 * basic-block.h: Declare them all.
5490
54912000-04-26 Richard Henderson <rth@cygnus.com>
5492
5493 * basic-block.h (life_analysis): Declare here ...
5494 * output.h: ... not here.
5495 * flow.c (life_analysis): Remove nregs parameter; replace
5496 remove_dead_code with flags. Remove ssa dead code check.
5497 Only init alias analysis if we'll use it.
5498 * reg-stack.c (reg_to_stack): Update life_analysis arguments.
5499 * ssa.c (convert_to_ssa): Likewise.
5500 (convert_from_ssa): Likewise.
5501 * toplev.c (rest_of_compilation): Likewise.
5502
55032000-04-26 Richard Henderson <rth@cygnus.com>
5504
5505 * flow.c (flow_delete_block): Rename from delete_block. Export.
5506 * basic-block.h (flow_delete_block): Declare.
5507
55082000-04-26 David S. Miller <davem@redhat.com>
5509
5510 * optabs.c (emit_libcall_block): Verify insns with INSN_P before
5511 taking a PATTERN of it.
5512
55132000-04-26 <NeilB@earthling.net>
5514
5515 * cpplex.c (spell_other, spell_char): Remove.
5516 (SPELL_CHAR): New.
5517 (token_spelling, trigraph_map): Use unsigned chars.
5518 (_cpp_lex_line): Tidy up the switch statement.
5519 * cpplib.h: Implement spell_char with spell_string.
5520 (C): New.
5521
55222000-04-26 <RodneyBrown@pmsc.com>
5523
5524 * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
5525 * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
5526
55272000-04-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5528
5529 * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
5530 reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
5531 dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
5532 dwarf2out_return_save, dwarf2out_return_reg,
5533 dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
5534 add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
5535 gen_compile_unit_die, dwarf2out_init): Constify a char*.
5536
5537 * dwarf2out.h (dwarf2out_init): Likewise.
5538
5539 * dwarfout.c (filename_entry, primary_filename, last_filename,
5540 type_tag, output_compile_unit_die, dwarfout_init): Likewise.
5541
5542 * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
5543 dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
5544 dwarf2out_return_reg): Likewise.
5545
55462000-04-26 Andreas Jaeger <aj@suse.de>
5547
5548 * extend.texi (Function Attributes): Fix description of pure
5549 attribute.
5550
55512000-04-26 Jason Merrill <jason@casey.cygnus.com>
5552
5553 * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
5554 before calling rest_of_compilation.
5555
55562000-04-26 Andreas Jaeger <aj@suse.de>
5557
5558 * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
5559 last patch.
5560
55612000-04-25 Richard Henderson <rth@cygnus.com>
5562
5563 * cse.c (cse_insn): Emit barrier after unconditional jump.
5564
5565 * calls.c (expand_call): Disable tail call generation once
5566 rtx_equal_function_value_matters is false.
5567
5568 * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
5569 like EDGE_EH edges.
5570
55712000-04-25 Jason Merrill <jason@casey.cygnus.com>
5572
5573 * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
5574
5575 * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
5576
5577 * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
5578 is the primary DIE for a member function.
5579 (gen_decl_die): Call set_decl_origin_self here.
5580 * dwarfout.c (output_decl): And here.
5581 * integrate.c (output_inline_function): Not here.
5582 Don't clear DECL_INLINE until after calling rest_of_compilation.
5583 (set_decl_origin_self): No longer static.
5584 * tree.h: Add prototype.
5585 * toplev.c (note_deferral_of_defined_inline_function): Only write
5586 out abstract instance for actual inlines.
5587
55882000-04-25 Alexandre Oliva <aoliva@cygnus.com>
5589
5590 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
5591 EXTENDED_REGS only if TARGET_AM33.
5592 * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
5593 SP_REGS to register allocation and reloading unless absolutely
5594 necessary.
5595 (movsi3): Remove special-case of adding non-constants to SP.
5596
55972000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5598
5599 * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
5600 INCLUDES to search and does not provide any of its own. Also it
5601 now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
5602 parameters. Also it does not call AC_DEFINE.
5603 (gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls
5604 AC_DEFINE and provides for automatic entries for autoheader.
5605 (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
5606
5607 * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
5608 so we can pass -I flags and include gansidecl.h/system.h in this
5609 test.
5610
5611 * acconfig.h: Delete all NEED_DECLARATION_* entries.
5612
56132000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5614
5615 * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
5616 ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
5617 ENABLE_GC_ALWAYS_COLLECT): Delete entries.
5618
5619 * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
5620 ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
5621 ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
5622 for these macros. Clean up spacing and linewraps.
5623
56242000-04-26 Jason Merrill <jason@casey.cygnus.com>
5625
5626 * calls.c (expand_call): Use get_callee_fndecl.
5627
5628 * print-tree.c (print_node): Print the chain of an _EXPR.
5629
5630Tue Apr 25 16:16:04 2000 Andrew MacLeod <amacleod@cygnus.com>
5631 Jim Wilson <wilson@cygnus.com>
5632 Andrew Haley <aph@cygnus.com>
5633
5634 * config/ia64/crtbegin.asm: Add IA-64 unwind support. Correct alloc
5635 and gp save/restore problems.
5636 * config/ia64/crtend.asm: Add IA-64 unwind support.
5637 * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
5638 in fr_pad_size calculation.
5639 (save_restore_insns): Move PR save area. Correct uses of
20f9202d 5640 RTX_FRAME_RELATED_P.
c30d43bf
JL
5641 (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
5642 (ia64_expand_epilogue): Add eh_epilogue support.
5643 (ia64_function_prologue): Emit .prologue directive.
5644 (ia64_init_machine_status, ia64_mark_machine_status): New functions.
5645 (ia64_override_options): Set init_machine_status and
5646 mark_machine_status.
5647 (rtx_needs_barrier): Handle bsp reads and writes.
5648 (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
5649 New static variables.
5650 (process_set, process_for_unwind_directive): New functions.
5651 * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
5652 ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
5653 ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
5654 macros.
5655 (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
5656 (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
5657 (struct machine_function): Define.
5658 * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
5659
56602000-04-25 Bruce Korb <bkorb@gnu.org>
5661
5662 * fixinc/Makefile.in: make the removal of old programs more
5663 robust
5664 * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
5665 install-bin and install-sh
5666
56672000-04-25 Nick Clifton <nickc@cygnus.com>
5668
5669 * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
5670 defined, define to return zero.
5671 (function_cannot_inline_p): If a function has any target
5672 specific attributes, then use the macro
5673 FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
5674 whether it can be inlined. If it cannot, issue a suitable
5675 explanation.
5676
5677 * tm.texi: Add a new node 'Inlining' to document the new macro
5678 FUNCTION_ATTRIBUTE_INLINABLE_P.
5679
56802000-04-25 Zack Weinberg <zack@wolery.cumb.org>
5681
5682 * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
5683 commentary.
5684
56852000-04-25 Neil Booth <NeilB@earthling.net>
5686
5687 Restore previous patch, plus the following fixes:
5688
5689 * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
5690 flags, not CPP_OPEN_PAREN.
5691 * cpplex.c (expand_token_space, init_token_list,
5692 cpp_free_token_list): Put the dummy token at list->tokens[-1].
5693 (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
5694
5695Tue Apr 25 14:06:40 2000 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
5696
5697 * config/i386/freebsd.h (INT_ASM_OP): Define.
5698
5699Tue Apr 25 14:51:07 MET DST 2000 Jan Hubicka <jh@suse.cz>
5700
5701 * loop.c (strength_reduce): Fix typo in the last checkin.
5702
5703Tue Apr 25 07:33:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5704
5705 * stor-layout.c (finalize_record_size): Simplify to use existing
5706 functions.
5707 (compute_record_mode): No longer static.
5708 * tree.h (compute_record_mode): New declaration.
5709
57102000-04-25 Neil Booth <NeilB@earthling.net>
5711
5712 * Revert my patch below until cause of build failures
5713 determined.
5714
57152000-04-25 Richard Henderson <rth@cygnus.com>
5716
5717 * combine.c (combine_instructions): Add missing argument
5718 to try_combine.
5719
5720 * toplev.c (rest_of_compilation): Delay sibcall optimization
5721 until after emit_eh_context.
5722
57232000-04-24 Nick Clifton <nickc@redhat.com>
5724
5725 * combine.c (combine_instructions): Do not try to combine a
5726 sequence of insns when the second insn has been replaced by a
5727 note.
5728
5729Mon Apr 24 17:34:18 2000 Mumit Khan <khan@xraylith.wisc.edu>
5730
5731 * gcc.c (load_specs): New static function.
5732 (read_specs): Use it.
5733
5734 * gcc.c (lookup_compiler): Make multiple passes for case
5735 insensitive filesystems.
5736
57372000-04-24 Neil Booth <NeilB@earthling.net>
5738
5739 * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
5740 * cpphash.h (_cpp_check_directive): new.
5741 * cpplex.c (handle_newline, cpp_free_token_list,
5742 init_trigraph_map, trigraph_ok, trigraph_replace,
5743 backslash_start, skip_block_comment, skip_line_comment,
5744 skip_whitespace, parse_name, parse_number, parse_string,
5745 copy_comment, _cpp_lex_line, spell_char, spell_string,
5746 spell_comment, spell_name, spell_other, _cpp_lex_file,
5747 _cpp_output_list): new.
5748 (expand_name_space): take length argument.
5749 (init_token_list): add comment list initialisation.
5750 (cpp_scan_line): use auto_expand_name_space. PREV_WHITESPACE
5751 instead of HSPACE_BEFORE.
5752
5753 * cpplib.c (_cpp_check_directive): new
5754 * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
5755 DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
5756 (HSPACE_BEFORE): delete.
5757 (TTYPE_TABLE): rearrange.
5758 (struct cpp_toklist): update.
5759
57602000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5761
5762 * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
5763 gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
5764 argument form of AC_DEFINE.
5765
5766 * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
5767 HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
5768 WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
5769 HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
5770 HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
5771
5772 * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
5773
57742000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5775
5776 * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
5777 deduced.h): Use -isystem, not -I, for including system headers.
5778
57792000-04-24 Nick Clifton <nickc@cygnus.com>
5780
5781 * config/fr30/fr30.md (addsi3): Do not use small add instruction if
5782 the source register is the frame pointer or arg pointer.
5783 (addsi3_small_int): Disallow if source register is the frame
5784 pointer or arg pointer.
5785
57862000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5787
5788 * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
5789 call to AC_MSG_RESULT.
5790
5791