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. 43 (do_pragma_dependency): New pragma. 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. 223 (cmpsi patterns): Compute sizes properly for test instruction. 224 (movsi, movhi patterns): Compute sizes properly for eax shortcuts. 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. 369 (dwarf2out_def_cfa): Entry point maintained for compatibility. 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 nonzero 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 1406 * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines. 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 nonzero 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 2039 * mklibgcc.in (all): Variable initialized to `libgcc'. 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. 2091 (init_reg_sets_1): Initialize class_can_change_size. 2092 (record_operand_costs): Remove subreg_changes_size. 2093 Don't pass it around. Instead update reg_changes_size. 2094 (regclass): Initialize and free reg_changes_size. If a register 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): Honor 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 2177 * cpplex.c (_cpp_init_toklist): No comment space to initialize. 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 behavior. 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 2670 arguments analogously to cleanups in sibling calls. 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 2687 determine if overflow has occurred, so check explicitly. 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, 3136 uninitialized data in .rodata not .bss, and do not interpret an 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 3228 * cppinit.c (cpp_reader_init): Initialize col_adjust and 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, 3305 warn_unused_parameter, warn_unused_variable, warn_unused_value): 3306 Replace ``warn_unused''. 3307 (set_Wunused): Add declaration. 3308 * toplev.c (set_Wunused): New function. 3309 (warn_unused_function, warn_unused_label, warn_unused_parameter, 3310 warn_unused_variable, warn_unused_value): New variables. 3311 (W_options): Add -Wunused-function, -Wunused-function, 3312 -Wunused-label, -Wunused-parameter, -Wunused-variable and 3313 -Wunused-value. Delete -Wunused. Handled in decode_W_option. 3314 3315 * toplev.c (decode_W_option): Update -Wunused flags by calling 3316 set_Wunused. 3317 * c-decl.c (c_decode_option): Ditto for -Wall. 3318 3319 * stmt.c (expand_expr_stmt, expand_expr_stmt, 3320 warn_about_unused_variables): Replace warn_unused with more 3321 explicit warn_unused_value et.al. 3322 * function.c (expand_function_end): Ditto. 3323 * c-typeck.c (internal_build_compound_expr, 3324 internal_build_compound_expr): Ditto. 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 3330 -Wunused-function, -Wunused-function, -Wunused-label, 3331 -Wunused-parameter, -Wunused-variable and -Wunused-value options. 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 3802 dependencies on FPBIT and DPBIT. 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 3944 * config/avr/avr-protos.h (extra_constraint): change a type of 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 4068 of existence. 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. 4136 * config/ia64/ia64.md: Document used unspec values. 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 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). 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 5189 * calls.c (calls_function_1): Properly handle TREE_LIST expressions; 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 5283 for call instruction with mode QImode. 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 5640 RTX_FRAME_RELATED_P. 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 57912000-04-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 5792 5793 * invoke.texi: Correct grammatical errors, document 5794 -fno-gnu-keywords as identical to -fno-asm for C++. 5795 57962000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5797 5798 * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION, 5799 GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT, 5800 GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE, 5801 AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG, 5802 EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_. 5803 5804 * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S, 5805 GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING, 5806 GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR, 5807 GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with 5808 new macros names. 5809 58102000-04-24 Mumit Khan <khan@xraylith.wisc.edu> 5811 5812 * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro. 5813 (pop_alignment): Likewise. 5814 (handle_pragma_token): Likewise. 5815 58162000-04-24 Robert Lipe <robertlipe@usa.net> 5817 5818 * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD. 5819 58202000-04-24 Hiroyuki Machida <machida@sm.sony.co.jp> 5821 5822 * combine.c (try_combine): Update reg_nonzero_bits of 5823 newi2pat before newpat. 5824 5825Mon Apr 24 10:19:48 MET DST 2000 Jan Hubicka <jh@suse.cz> 5826 5827 * loop.c (strength_reduce): Simplify test to INSN_P. 5828 (record_giv): Attempt to simplify the add value, use CONSTANT_P 5829 expressions instead of CONST_INT. 5830 (express_from_1): Likewise. 5831 58322000-04-24 Mark Mitchell <mark@codesourcery.com> 5833 5834 * regs.h (reg_n_max): Don't declare. 5835 * flow.c (reg_n_max): Don't define. 5836 * regclass.c (renumber): Don't initialize to zero. 5837 (regno_allocated): Likewise. 5838 (reg_n_max): Define. 5839 (allocate_reg_info): Don't initialize unnecessarily. 5840 5841Mon Apr 24 00:21:36 2000 Jeffrey A Law (law@cygnus.com) 5842 5843 * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p 5844 and blockage_p in the newly allocated attribute. 5845 5846Sun Apr 23 20:16:49 2000 Alexandre Oliva <aoliva@cygnus.com> 5847 5848 * config/mn10300/mn10300.md (addsi): `inc4' on address 5849 registers does not modify cc, but `inc' on an extended 5850 register does. 5851 5852Sun Apr 23 16:24:35 2000 Denis Chertykov <denisc@overta.ru> 5853 5854 * reload.c (find_equiv_reg): Checks all valueno regs 5855 as a reload_reg_p regs. 5856 58572000-04-23 Zack Weinberg <zack@wolery.cumb.org> 5858 5859 * cpphash.c (collect_objlike_expansion): Add sanity check. 5860 (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If 5861 the buffer is the empty string, return. Mark __DATE__ and 5862 __TIME__ as XCONST nodes, not MCONST. 5863 (_cpp_macroexpand): Avoid pushing an empty buffer. 5864 (funlike_macroexpand): Don't pop token_buffer here. 5865 5866Sun Apr 23 18:37:53 2000 Alexandre Oliva <aoliva@cygnus.com> 5867 5868 * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro. 5869 (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros. 5870 (REGNO_EXTENDED_P, REGNO_AM33_P): New macros. 5871 (REGNO_OK_FOR_BASE_P): Define in terms of them. 5872 (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise. 5873 (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro. 5874 (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise. 5875 5876Sun Apr 23 22:23:08 MET DST 2000 Jan Hubicka <jh@suse.cz> 5877 5878 * loop.c (simplify_giv_expr): Be more agressive on simplifying 5879 constant MULT givs. 5880 58812000-04-23 Zack Weinberg <zack@wolery.cumb.org> 5882 5883 * cpphash.h (struct definition): Move file, line, col members... 5884 (struct hashnode): ... here. Also add 'disabled' flag. 5885 (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and 5886 T_IDENTITY. Remove T_DISABLED. 5887 Update prototypes. 5888 5889 * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION. 5890 (collect_expansion): Split into collect_objlike_expansion and 5891 collect_funlike_expansion. 5892 (_cpp_macroexpand): Split out scan_arguments, stringify, and 5893 funlike_macroexpand. 5894 (_cpp_compare_defs): Rename compare_defs, make static. 5895 (_cpp_make_hashnode): Initialize hp->disabled. 5896 (macro_cleanup): Adjust for new token types. Clear 5897 m->disabled. 5898 (_cpp_create_definition): Move code here to determine what 5899 sort of macro it is, and code to check for redefinitions, from 5900 do_define. Implement a few simple cases without creating a 5901 full DEFINITION. 5902 (_cpp_macroexpand, special_symbol, _cpp_dump_definition): 5903 Handle the simple cases. 5904 (push_macro_expansion): Set buf->has_escapes and hp->disabled 5905 here. 5906 5907 * cppinit.c (builtin_array): Change MCONST to XCONST 5908 everywhere. 5909 * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here; 5910 fix check for disabled and function-like macros. 5911 * cpplib.c (do_define): Move most logic to 5912 _cpp_create_definition. 5913 (do_undef): Handle new special token types. 5914 5915Sun Apr 23 14:27:44 MET DST 2000 Jan Hubicka <jh@suse.cz> 5916 5917 * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead 5918 of CONSTANT_P for mult_val; always use validate_change to update insn. 5919 59202000-04-22 Zack Weinberg <zack@wolery.cumb.org> 5921 5922 * cpphash.c (trad_stringify, add_pat): New functions. 5923 (collect_expansion): Restore support for -traditional syntax. 5924 Use trad_stringify and add_pat. 5925 (_cpp_macroexpand): Restore support for -traditional semantics. 5926 * cpplex.c (_cpp_scan_line): Don't change space_before if we 5927 get a COMMENT token. 5928 (_cpp_lex_token): Provide COMMENT tokens to caller if 5929 traditional and parsing_define_directive. 5930 (skip_comment): Warn about // comments if -Wtraditional. 5931 * cpplib.c (do_define): Fix typo. Create EMPTY nodes with 5932 proper node type. 5933 (do_undef): Don't warn about undefining EMPTY nodes. 5934 5935Sat Apr 22 22:35:38 MET DST 2000 Jan Hubicka <jh@suse.cz> 5936 5937 * loop.c (strength_reduce): Fix biv removal code. 5938 59392000-04-22 Richard Henderson <rth@cygnus.com> 5940 5941 * predict.c (estimate_probability): Examine both sides of 5942 a branch for no exits. Use 90% not 50% for predict taken. 5943 Reorg for one copy of note generation code. 5944 59452000-04-22 Richard Henderson <rth@cygnus.com> 5946 5947 * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg. 5948 59492000-04-22 Richard Henderson <rth@cygnus.com> 5950 5951 * diagnostic.c (init_output_buffer): Don't initialize format_args. 5952 (output_clear): Likewise. 5953 (output_printf): Use va_copy. 5954 (vline_wrapper_message_with_location): Likewise. 5955 (v_message_with_decl): Likewise. 5956 (line_wrapper_printf): VA_START infor buffer.format_args directly. 5957 * system.h (va_copy): Provide default implementation. 5958 59592000-04-22 Richard Henderson <rth@cygnus.com> 5960 5961 * predict.c (expected_value_to_br_prob): Don't bomb if op1 of 5962 the collected condition is not a constant. 5963 59642000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 5965 5966 * diagnostic.h: New file. 5967 5968 * Makefile.in (diagnostic.o): Depends on diagnostic.h 5969 5970 * diagnostic.c: Tweak. Rationalize the output logic. Adjust 5971 various function prototypes. 5972 (diagnostic.h): #include. 5973 (struct output_buffer): Move into diagnostic.h. 5974 (get_output_prefix): Rename to output_get_prefix. Export. 5975 (init_output_buffer): Export. Break out. Adjust initialization. 5976 (output_space_left, output_append): Export. 5977 (output_newline): Rename to output_add_newline. Export. 5978 (output_clear): Nullify additional output_buffer fields. 5979 (output_puts): Rename to output_add_string. Export. 5980 (dump_output): Rename to output_flush_on. Export. 5981 (build_location_prefix): Constify return-type. 5982 (emit_output_prefix): Rename to output_emit_prefix. Export. 5983 (set_real_maximum_length): New function. 5984 (output_set_maximum_length): Ditto 5985 (output_clear): Ditto. 5986 (output_add_character): Ditto. 5987 (output_add_integer): Ditto. 5988 (output_add_space): Ditto. 5989 (output_format): Ditto. 5990 (output_printf): Adjust buffer initialization. 5991 (vline_wrapper_message_with_location): Ditto. 5992 (v_message_with_decl): Ditto. Adjust call to output_puts 5993 and get_output_prefix. 5994 (default_print_error_function): Adjust buffer initialization. 5995 5996Sat Apr 22 06:45:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5997 5998 * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE 5999 of VOID_TYPE. 6000 6001Fri Apr 21 18:33:09 2000 Alexandre Oliva <aoliva@cygnus.com> 6002 6003 * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead 6004 of explicit 0. 6005 6006Fri Apr 21 18:30:00 2000 Alexandre Oliva <aoliva@cygnus.com> 6007 6008 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more 6009 accurate data about SP moves. 6010 6011Fri Apr 21 18:28:28 2000 Alexandre Oliva <aoliva@cygnus.com> 6012 6013 * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added 6014 aliases to AM33 registers. 6015 6016Fri Apr 21 18:26:17 2000 Alexandre Oliva <aoliva@cygnus.com> 6017 6018 * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16 6019 to all EXTENDED bitmaps. 6020 6021Fri Apr 21 18:17:12 2000 Alexandre Oliva <aoliva@cygnus.com> 6022 6023 * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare. 6024 * config/mn10300/mn10300.h (ADDRESS_COST): New macro. 6025 * config/mn10300/mn10300.c (mn10300_address_cost): New function. 6026 6027Fri Apr 21 18:11:56 2000 Alexandre Oliva <aoliva@cygnus.com> 6028 6029 * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when 6030 the operand is not constant. 6031 6032Fri Apr 21 14:58:29 2000 Denis Chertykov <denisc@overta.ru> 6033 6034 * reload.c (find_equiv_reg): Checks all valueno and regno regs 6035 as a call-clobbered regs. 6036 6037Fri Apr 21 13:30:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6038 6039 * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG. 6040 * rtl.h: Likewise. 6041 * rtl.def: Update comment. 6042 * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER. 6043 * integrate.c (expand_inline_function): Likewise. 6044 * profile.c (branch_prob): Likewise. 6045 * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG. 6046 * print-rtl.c (print_rtx): Likewise. 6047 * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise. 6048 (reemit_notes): Likewise; also use enum insn_note. 6049 6050 * stor-layout.c (layout_decl): Only set DECL_MODE if not already set. 6051 (place_field): Properly compute know and actual alignment. 6052 6053 * gengenrtl.c (gencode): Write obstack_alloc_rtx function start 6054 in proper format. 6055 6056 * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL 6057 note for REG1. 6058 60592000-04-21 Zack Weinberg <zack@wolery.cumb.org> 6060 6061 * cpphash.c (struct arg, struct arglist): Const-ify strings. 6062 (warn_trad_stringify, duplicate_arg_p): New helper functions. 6063 (collect_expansion): Rewrite to scan over a token list. 6064 Remove -traditional support. 6065 (collect_formal_parameters): Rename to collect_params; rewrite 6066 to scan over a token list. 6067 (_cpp_create_definition): Adjust to scan a token list. 6068 (_cpp_macroexpand): Remove -traditional support. 6069 (_cpp_compare_defs): Whitespace is now canonicalized. 6070 (comp_def_part): Delete function. 6071 6072 * cpphash.h: Update prototypes. 6073 * cpplex.c (init_token_list): Don't set lineno if there is no 6074 buffer. 6075 (pedantic_whitespace): New function. 6076 (_cpp_scan_line): Mark tokens that had hspace before. Don't 6077 consume a newline. Use pedantic_whitespace. 6078 (_cpp_lex_token): Remove support for -traditional macros. 6079 (_cpp_get_define_token): Delete. 6080 (_cpp_get_directive_token): Do the real work here. Use 6081 pedantic_whitespace. 6082 (_cpp_init_input_buffer): Initialize pfile->directbuf. 6083 6084 * cpplib.c (get_macro_name): Delete. 6085 (do_define): Read the entire line into pfile->directbuf, then 6086 feed the token list to _cpp_create_definition. 6087 * cpplib.h (HSPACE_BEFORE): new define. 6088 (struct cpp_reader): Add a toklist member, "directbuf". 6089 6090 * predict.c (estimate_probability): New heuristic: if a jump 6091 branches around a block with no successors, predict it taken. 6092 Disentangle control flow. 6093 60942000-04-20 Richard Henderson <rth@cygnus.com> 6095 6096 * loop.c (emit_iv_add_mult): Revert last change. 6097 60982000-04-20 Zack Weinberg <zack@wolery.cumb.org> 6099 6100 * cpplib.h (enum cpp_ttype): Add token types for all 6101 punctuators. Distinguish pp-numbers from valid C numbers. 6102 Give some tokens better names. Initialize from macro. 6103 (struct cpp_name, cpp_token, cpp_toklist): New data 6104 structures. 6105 Update prototypes. 6106 * cpplex.c (bump_column, expand_name_space, 6107 expand_token_space, init_token_list, cpp_output_list, 6108 _cpp_scan_line): New functions. 6109 (output_line_command): Add third argument, new line number. 6110 * cpphash.h: Update prototypes. 6111 * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new 6112 token names. 6113 61142000-04-20 Richard Henderson <rth@cygnus.com> 6115 6116 * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier. 6117 61182000-04-20 Zack Weinberg <zack@wolery.cumb.org> 6119 6120 * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the 6121 object pointed to. 6122 6123Thu Apr 20 14:19:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 6124 6125 * loop.c (emit_iv_add_mult): Simplify it's input and emit 6126 REG_EQUAL note explaining the calculated value. 6127 6128 * calls.c (expand_call): Avoid unnecesary precalculation 6129 and outgoing parameters space guarding for sibling calls. 6130 (store_one_arg): Likewise. 6131 6132Thu Apr 20 08:01:07 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6133 6134 * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling. 6135 (rest_of_compilation): Write sibling dump file and account 6136 for time as jump time. 6137 * invoke.texi: Update documentation on dump flags. 6138 61392000-04-19 Marek Michalkiewicz <marekm@linux.org.pl> 6140 6141 * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>. 6142 61432000-04-19 Zack Weinberg <zack@wolery.cumb.org> 6144 6145 * cpphash.c (special_symbol): Represent an empty macro with 6146 "\r \r " not just "\r ". 6147 (_cpp_macroexpand): Correct condition for the foo ( ) special 6148 case. 6149 (unsafe_chars): Handle EOF as second argument. 6150 (push_macro_expansion): Simplify test for removing escape at 6151 end. Do not trim both escapes if there is no text in between. 6152 61532000-04-19 Jim Blandy <jimb@redhat.com> 6154 6155 * dwarf2out.c (DWARF2_ADDR_SIZE): New macro. Use it instead 6156 of PTR_SIZE, when appropriate. 6157 61582000-04-19 Mark Mitchell <mark@codesourcery.com> 6159 6160 * system.h (ONLY_INT_FIELDS): Make sure it is defined. 6161 (USE_ENUM_BITFIELDS): Fix typo. 6162 6163Wed Apr 19 12:14:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6164 6165 * stor-layout.c (place_field): Set rli->offset_align properly. 6166 61672000-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6168 6169 * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG, 6170 INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY, 6171 PARM_BOUNDARY): Remove unnecessary casts. 6172 6173Wed Apr 19 12:02:37 MET DST 2000 Jan Hubicka <jh@suse.cz> 6174 6175 * calls.c (precompute_arguments): Remove must_preallocate and 6176 args_size calls. 6177 (expand_call): Update call of precompute_arguments. 6178 6179 * loop.c (check_insn_for_bivs, for_every_insn_in_loop, 6180 check_insn_for_givs): Break out from ... 6181 (strength_reduce) ... here; use for_every_insn_in_loop to call 6182 check_insn_for_givs. 6183 * loop.h (for_every_insn_in_loop): Declare. 6184 (loop_insn_callback): New type. 6185 61862000-04-18 Zack Weinberg <zack@wolery.cumb.org> 6187 6188 * cpplib.c (do_pragma_poison): Strings in the token buffer are 6189 not nul-terminated. 6190 6191Tue Apr 18 16:04:12 2000 Jim Wilson <wilson@cygnus.com> 6192 6193 * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if 6194 flag_pic and RELOC. 6195 61962000-04-18 Zack Weinberg <zack@wolery.cumb.org> 6197 6198 * cccp.c, cexp.y, cexp.c, cccp.1: Removed. 6199 6200 * configure.in: Delete --disable-cpplib option and all 6201 references to cpp_main. 6202 * configure: Regenerate. 6203 * Makefile.in: Remove all references to CCCP, CCCP_OBJS, 6204 @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o, 6205 cccp.o, cccp, or cppmain. Link cppmain.o straight to 6206 cpp$(exeext). Add --no-headers to makeinfo command line when 6207 generating INSTALL. Install and uninstall cpp.1 manpage, not 6208 cccp.1. 6209 * install.texi: Delete all references to cexp.y/cexp.c. 6210 Delete ancient instructions for compiling GCC on 3b1. 6211 * INSTALL: Regenerate. 6212 6213 * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff, 6214 mips/t-elf, mips/t-r3900: Remove references to cccp.c. 6215 * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to 6216 cexp.c/cexp.y. 6217 * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING, 6218 which is no longer tested anywhere. 6219 6220 * cppinit.c (handle_option): Don't run error message through 6221 gettext twice. 6222 6223Tue Apr 18 14:16:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6224 6225 * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot. 6226 * cpperror.c (hashtab.h): Now include. 6227 * cppexp.c (hashtab.h): Likewise. 6228 * cpplex.c (hashtab.h): Likewise. 6229 * cppfiles.c (hashtab.h): Likewise. 6230 (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type 6231 to htab_find_slot_with_hash. 6232 * cpphash.c (hashtab.h): Now include. 6233 (_cpp_lookup_slot): INSERT is now enum insert_option. 6234 * cpphash.h (_cpp_lookup_slot): Likewise. 6235 * cppinit.c (hashtab.h): Include earlier. 6236 (initialize_builtins): Pass enum to htab_find_slot. 6237 * cpplib.c (hashtab.h): Now include. 6238 (do_define, do_undef): Pass enum type to _cpp_lookup_slot. 6239 (do_pragma_poison, do_assert): Likewise. 6240 * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to 6241 htab_find_slot_with_hash. 6242 * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise. 6243 * tree.c (type_hash_add): Likewise. 6244 (build1): Minor cleanup. 6245 6246 * ggc-common.c: Add missing blanks. 6247 * print-tree.c (print_node): Print DECL_OFFSET_ALIGN. 6248 * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment. 6249 6250 * stmt.c (mark_case_node): New function. 6251 (mark_case_nesting): Call it. 6252 6253 * expmed.c (emit_store_flag): If comparing two-word integer 6254 with zero, can optimize NE, EQ, GE, and LT. 6255 6256 * c-decl.c (mark_binding_level): Use 'for' instead of `while'. 6257 * conflict.c: Minor cleanups. 6258 * optabs.c: Add blank line 6259 * simplify-rtx.c: Minor cleanups. 6260 62612000-04-18 Stan Cox <scox@cygnus.com> 6262 6263 * gengenrtl.c (genlegend): Fix misspelling. 6264 62652000-04-18 Robert Lipe <robertlipe@usa.net> 6266 6267 * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added. Check that 6268 bitfields of the host compiler are not signed quantities. 6269 * config.in: Regenerate. 6270 * configure: Regenerate. 6271 * system.h (USE_ENUM_BITFIELDS): Added. 6272 (ENUM_BITFIELDS): Added. 6273 * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD. 6274 (SHORT_ENUM_BUG): Deleted. 6275 * tree.h (tree_common): Members `code', `mode', `built_in_class', 6276 now ENUM_BITFIELD. 6277 * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted. 6278 (CODE_FIELD_BUG): Likewise. 6279 * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG. 6280 (OLD_CC): Likewise. 6281 * config/m68k/x-ccur (X_CFLAGS): Likewise. 6282 62832000-04-18 Mark Mitchell <mark@codesourcery.com> 6284 6285 * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the 6286 mark is active. 6287 62882000-04-17 Zack Weinberg <zack@wolery.cumb.org> 6289 6290 * cppexp.c (lex): Don't assume tokens are NUL terminated. 6291 * cpplib.c (do_include, do_import, do_include_next, 6292 read_line_number, detect_if_not_defined): Likewise. 6293 * cpphash.c (collect_expansion): Likewise. 6294 (special_symbol, _cpp_macroexpand): Check return from 6295 cpp_file_buffer. 6296 * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete 6297 macros. Delete all uses. 6298 6299 * gcc.dg/cpp-mi.c: Add two more test cases. 6300 * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files. 6301 63022000-04-17 Richard Henderson <rth@cygnus.com> 6303 6304 * bb-reorder.c (fixup_reorder_chain): Don't look up new block again. 6305 (reorder_basic_blocks): If no epilogue in rtl, force last block last. 6306 63072000-04-17 Mark Mitchell <mark@codesourcery.com> 6308 6309 * function.c (expand_function_start): Use hard_function_value to 6310 compute the RTL to use for DECL_RESULT. 6311 6312Mon Apr 17 23:35:29 MET DST 2000 Jan Hubicka <jh@suse.cz> 6313 6314 * i386.c (athlon_cost): Fix lea, divide and XFmode move costs. 6315 (x86_integer_DFmode_moves, x86_partial_reg_dependency, 6316 x86_memory_mismatch_stall): New global variables. 6317 (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only 6318 alloved; fix load penalties for Athlon. 6319 * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency, 6320 x86_memory_mismatch_stall): Declare. 6321 (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY, 6322 TARGET_MEMORY_MISMATCH_STALL): New. 6323 * i386.md (athlon scheduling parameters): Fix latencies according to 6324 Athlon Optimization Manual. 6325 (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to 6326 vector. 6327 (fsqrt instruction patterns): Set athlon_decode to direct. 6328 (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for 6329 PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines. 6330 (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY 6331 and TARGET_PARTIAL_REGISTER_STALL machines. 6332 (pushdf_nointeger): New pattern. 6333 (pushdf_integer): Rename from pushdf. 6334 (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines. 6335 (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines. 6336 63372000-04-17 Richard Henderson <rth@cygnus.com> 6338 6339 * loop.c (canonicalize_condition): Add WANT_REG argument. 6340 Stop the search if we match it. 6341 * expr.h (canonicalize_condition): Update decl. 6342 * predict.c (expected_value_to_br_prob): Use it. Track last 6343 expected value note. 6344 (find_expected_value): Remove. 6345 6346 * reorg.c (mostly_true_jump): Always use BR_PROB if present. 6347 63482000-04-17 Zack Weinberg <zack@wolery.cumb.org> 6349 6350 * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]). 6351 (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of 6352 a plain file. 6353 * configure.in: Call AC_FUNC_MMAP_FILE. 6354 * configure: Regenerate. 6355 * config.in: Regenerate. 6356 6357 * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP. 6358 * fixinc/fixincl.c: Likewise. 6359 63602000-04-17 Richard Henderson <rth@cygnus.com> 6361 6362 * builtins.c (expand_builtin_expect): New. 6363 (expand_builtin): Call it. 6364 * builtins.def (BUILT_IN_EXPECT): New. 6365 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect. 6366 * extend.texi: Document it. 6367 6368 * predict.c (expected_value_to_br_prob): New. 6369 (find_expected_value): New. 6370 * basic-block.h (expected_value_to_br_prob): Declare. 6371 * toplev.c (rest_of_compilation): Invoke it. 6372 6373 * rtl.h (NOTE_EXPECTED_VALUE): New. 6374 (NOTE_INSN_EXPECTED_VALUE): New. 6375 * rtl.c (note_insn_name): Update. 6376 * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special 6377 cases; handle NOTE_INSN_EXPECTED_VALUE. 6378 63792000-04-17 Jakub Jelinek <jakub@redhat.com> 6380 6381 * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use 6382 leaf sibcall delay slot if flag_pic. 6383 (output_sibcall): Always emit call for leaf sibcall if flag_pic. 6384 63852000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6386 6387 * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto. 6388 6389 * fixproto: If fix-header fails, exit with an error. 6390 6391Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka <jh@suse.cz> 6392 6393 * cse.c (struct check_dependence_data): New. 6394 (check_dependence): New function. 6395 (invalidate): Use check_depdenence. 6396 63972000-04-16 Mark Mitchell <mark@codesourcery.com> 6398 6399 * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that 6400 UNITS_PER_WORD is unsigned. 6401 6402 * tree.h (struct tree_common): Remove misleading comment. 6403 64042000-04-16 Dave Pitts <dpitts@cozx.com> 6405 6406 * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole 6407 message in quotes. Otherwise, IBM's make program treats the '#' as the 6408 start of a comment and ignores the remainder of the line. 6409 6410 * c-lex.c (yylex): Change for EBCDIC, lower case characters precede 6411 upper case. 6412 * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC. 6413 * cexp.y (initialize_random_junk): Likewise. 6414 * cppfiles.c (find_include_file): Cast alloca return value. 6415 * cppinit.c (initialize_standard_includes): Likewise. 6416 * cpplib.c (cpp_define, cpp_undef): Likewise. 6417 * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT. 6418 * final.c (output_asm_insn): Allow for holes in EBCDIC. 6419 * fold-const.c (CHARMASK): New. 6420 (real_hex_to_f): Use it. 6421 * real.c (CHARMASK): New. 6422 (etoasc, asctoeg): Use it. 6423 (asctoeg): EBCDIC lower case characters precede upper case. 6424 6425 * i370.c (mvs_add_label): Change spacing for coding conventions. 6426 * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the 6427 outputting case vectors. 6428 (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT. 6429 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check, 6430 since vector in in the data CSECT. 6431 (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation. 6432 * i370.md (Many patterns): Put the length in the XL directives. 6433 (movdi): Put back STM and MVC in definition. 6434 (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370 6435 pattern using the TCA. 6436 * oe.h (CPP_SPEC): Added to allow trigraphs. 6437 * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does 6438 not support the "long long" type. 6439 64402000-04-16 Mark Mitchell <mark@codesourcery.com> 6441 6442 * config/mips/mips-protos.h (mips_legitimate_address_p): New 6443 function. 6444 (mips_reg_mode_ok_for_base_p): Likewise. 6445 * config/mips/mips.h (REG_OK_STRICT_P): Don't define. 6446 (REG_OK_FOR_INDEX_P): Define unconditionally. 6447 (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p. 6448 (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p. 6449 * config/mips/mips.c (mips16_simple_memory_operand): Adjust now 6450 that GET_MODE_SIZE is unsigned. 6451 (mips_reg_mode_ok_for_base_p): Define. 6452 (mips_legitimate_address_p): Likewise. Adjust now 6453 that GET_MODE_SIZE is unsigned. 6454 (block_move_loop): Make the number of bytes unsigned. 6455 (expand_block_move): Likewise. 6456 (function_arg): Make the loop counter unsigned to match the 6457 boundary condition. 6458 64592000-04-16 Richard Henderson <rth@cygnus.com> 6460 6461 * rtl.h (enum insn_note): New enumeration. Subsume 6462 NOTE_INSN_DELETED and friends. 6463 (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS. 6464 * rtl.c (note_insn_name): Tweak string order. 6465 64662000-04-15 Zack Weinberg <zack@wolery.cumb.org> 6467 6468 * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it 6469 to offset * 2. 6470 6471 * cpplex.c (output_line_command): Remove debugging prints. 6472 (cpp_output_tokens): Don't write out a zero-length buffer or 6473 try to see if it has a newline in it. 6474 (_cpp_expand_to_buffer): Copy the source buffer before pushing. 6475 (_cpp_read_and_prescan): Move shift-down of pushback bytes to 6476 the end of the loop. Use memmove. Don't read past the end of 6477 the buffer. Remove trailing newlines from error messages. 6478 64792004-04-16 Neil Booth <NeilB@earthling.net> 6480 6481 * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new. 6482 * cpplib.c: Add new syntax flags to directive table, and 6483 supporting macros. 6484 64852000-04-15 Ulrich Drepper <drepper@redhat.com> 6486 6487 * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once 6488 using ret $N. 6489 64902000-04-15 David Edelsohn <edelsohn@gnu.org> 6491 6492 * toplev.c (display_help): Prefix "f" to "sched-verbose=". 6493 * haifa-sched.c: Update -fsched-verbose comments to use "=". 6494 6495Sat Apr 15 10:59:19 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6496 6497 * Makefile.in (ggc-page.o): Now includes toplev.h. 6498 * ggc-page.c (toplev.h): Now included. 6499 (gc_time): Remove declaration. 6500 (ggc_collect): TIME now long. 6501 * toplev.c (parse_time, varasm_time, gc_time): Still global; all 6502 others static. 6503 * toplev.h (gc_time, parse_time, gc_time): New declarations. 6504 6505 * toplev.c: Make *_time variable long to reduce chance of overflow. 6506 (TIMEVAR): Likewise for `otime'. 6507 (print_time): Arg is now long; compute percentage in FP and round. 6508 * toplev.h (print_time): Arg is long. 6509 6510 * tree.c: Minor whitespace changes. 6511 6512 * configure.in (alpha*-*-*): Add config/alpha/t-alpha. 6513 * configure: Rebuilt. 6514 * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi. 6515 (__fixunsxfDI): Renamed from __fixunsxfdi. 6516 (__fixunsdfDI): Renamed from __fixunsdfdi. 6517 (__fixunssfDI): Renamed from __fixunssfdi. 6518 (__floatdisf): Use proper type in REP_BIT macro. 6519 (__fixunsxfSI): Renamed from __fixunsxfsi. 6520 (__fixunsdfSI): Renamed from __fixunsdfsi. 6521 (__fixunssfSI): Renamed from __fixunssfsi. 6522 * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4. 6523 Change location of macros and upper-case some names as above. 6524 * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd. 6525 * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files. 6526 6527 * varasm.c (assemble_variable): Add cast to remove warning. 6528 (immed_real_const_1): Only use CONST[01]_RTX if not in nested function. 6529 6530 * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change. 6531 * optabs.c (emit_libcall_block): If have REG_EH_REGION, update 6532 region number to -1. 6533 65342000-04-15 Richard Earnshaw (rearnsah@arm.com) 6535 6536 * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then 6537 call unshare_all_rtl. 6538 6539 * arm.md (movhi): REGNO_POINTER_ALIGN is now bits. 6540 6541Fri Apr 14 16:58:45 2000 Jim Wilson <wilson@cygnus.com> 6542 6543 * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3): 6544 Use .s1 not .s0 for all FP instructions. 6545 65462000-04-14 Zack Weinberg <zack@wolery.cumb.org> 6547 6548 * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public 6549 interfaces. 6550 (safe_fwrite, output_line_command): New static functions. 6551 (cpp_expand_to_buffer): Now private to cpplib. 6552 (cpp_scan_buffer): Take a printer. 6553 6554 * cpphash.h: Update prototypes. 6555 * cpplib.h: Update prototypes. 6556 (cpp_printer): New. 6557 (cpp_buffer): Remove last_nominal_fname. 6558 (cpp_reader): Remove lineno. 6559 6560 * cppmain.c: Use a cpp_printer. 6561 * fix-header.c: No need to inhibit line commands. Call 6562 cpp_start_read with no printer. 6563 6564 * cpperror.c (cpp_notice_from_errno): Provide default name. 6565 * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions. 6566 (find_include_file, cpp_read_file): Use make_IHASH. 6567 (file_cleanup): Set control_macro and clear 6568 input_stack_listing_current here. 6569 (_cpp_execute_include): Don't output entering-file marker. 6570 * cpphash.c (special_symbol): Look for the line number in the 6571 buffer, not the reader. 6572 (_cpp_macroexpand): No need to disable line commands. 6573 (_cpp_dump_definition): No need to generate line commands. 6574 (dump_hash_helper): Remove excess newline from output. 6575 * cppinit.c (dump_special_to_buffer): No need to generate line 6576 commands. 6577 (cpp_printer_init): New. 6578 (cpp_start_read): Take a printer, and start it up if it's not 6579 NULL. No need to generate line commands. 6580 (cpp_finish): Expect no buffers stacked at all. Take a 6581 printer argument, and flush the output buffer if it's not 6582 NULL. 6583 * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer. 6584 Don't put two hashes at the beginning of an assertion. 6585 (cpp_get_token): Don't increment pfile->lineno or emit line 6586 commands here. Return EOF if there's no buffer when we get 6587 EOF. 6588 * cpplib.c (do_define, skip_if_group): 6589 No need to disable line commands. 6590 (_cpp_output_line_command): Delete function. 6591 (do_line): Don't emit line commands here, but set things up so 6592 they will be emitted if necessary. Use _cpp_fake_ihash to 6593 make unique nominal_fnames if necessary. 6594 (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line 6595 with 0 for column, not -1. 6596 (_cpp_handle_eof): Don't set the control macro here. Don't 6597 clear input_stack_listing_current here. Don't emit line 6598 commands. 6599 66002000-04-14 Geoff Keating <geoffk@cygnus.com> 6601 6602 * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty 6603 always, use the default SVR4 start address. 6604 6605 * config/rs6000/linux.h (LINK_SPEC): Don't define. 6606 (LINK_SHLIB_SPEC): Define. 6607 (LINK_START_DEFAULT_SPEC): Define. 6608 (LINK_OS_DEFAULT_SPEC): Define. 6609 6610 * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros. 6611 6612 * config/rs6000/eabi.asm (__eabi): Call __init rather than 6613 __do_global_ctors to handle constructors. 6614 * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin. 6615 (STARTFILE_YELLOWKNIFE_SPEC): Likewise. 6616 (STARTFILE_MVME_SPEC): Likewise. 6617 (STARTFILE_SIM_SPEC): Likewise. 6618 (ENDFILE_ADS_SPEC): Use crtend. 6619 (ENDFILE_YELLOWKNIFE_SPEC): Likewise. 6620 (ENDFILE_MVME_SPEC): Likewise. 6621 (ENDFILE_SIM_SPEC): Likewise. 6622 (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS. 6623 (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS. 6624 (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects. 6625 (ENDFILE_LINUX_SPEC): Use crtendS for shared objects. 6626 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o. 6627 (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS. 6628 (CRTSTUFF_T_CFLAGS_S): Define. 6629 * config/rs6000/eabi-ctors.c: Delete. 6630 6631 * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte 6632 boundary. 6633 (__fini): Likewise. 6634 * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame. 6635 boundary. 6636 (__fini): Likewise. 6637 6638Fri Apr 14 16:09:02 2000 Jim Wilson <wilson@cygnus.com> 6639 6640 * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift 6641 plus mask size is smaller or equal to the mode size. 6642 6643Fri Apr 14 18:07:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6644 6645 * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK 6646 not yet set. 6647 6648 * expr.c (reload.h): Now included. 6649 (emit_block_move): Set volatile_ok when checking for movstr. 6650 (emit_move_1): Check for replacements in addresses in multi-word case. 6651 * Makefile.in (expr.o): Now includes reload.h. 6652 6653 * flow.c (count_basic_blocks): Remove unused var PREV_CALL. 6654 Never have a LIBCALL end a basic block. 6655 (find_basic_blocks_1): Likewise. 6656 Reorganize CALL_INSN cases. 6657 6658 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change. 6659 6660Fri Apr 14 10:54:22 2000 Jim Wilson <wilson@cygnus.com> 6661 6662 * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete 6663 completers from mov.ret instruction. 6664 66652000-04-14 Richard Henderson <rth@cygnus.com> 6666 6667 * fold-const.c (extract_muldiv): Don't distribute and widen 6668 multiply across plus for non-sizetype unsigned types. 6669 66702000-04-14 Richard Henderson <rth@cygnus.com> 6671 6672 * flow.c (find_auto_inc): Don't autoinc eliminable registers. 6673 If the original source is dead in the incr insn, it's dead now. 6674 6675Fri Apr 14 07:40:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6676 6677 * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to 6678 see if DECL_BIT_FIELD needs to still be set. 6679 6680 * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7. 6681 6682 * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call 6683 print_int_cst_octal with something that's not an INTEGER_CST. 6684 6685 * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG 6686 and not a SUBREG to a FLOAT rtl. 6687 6688Thu Apr 13 19:39:56 2000 Clinton Popetz <cpopetz@cygnus.com> 6689 6690 * emit-rtl.c (try_split): Avoid infinite loop if the split 6691 results in a sequence that contains the original insn. 6692 66932000-04-13 Andreas Jaeger <aj@suse.de> 6694 6695 * config/mips/mips.c (expand_block_move): Pass alignment 6696 argument to move_by_pieces in bits, not bytes. 6697 6698 * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and 6699 __pic__ for little endian. 6700 67012000-04-13 Andreas Jaeger <aj@suse.de> 6702 6703 * config/i386/i386-protos.h: Add prototype for 6704 uno_comparison_operator. 6705 6706Thu Apr 13 15:55:08 MET DST 2000 Jan Hubicka <jh@suse.cz> 6707 6708 * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage. 6709 * calls.c (ECF_PURE): New flag. 6710 (emit_call_1): Handle ECF_PURE calls. 6711 (initialize_argument_information): Unset ECF_PURE flag too. 6712 (precompute_arguments): Precompute for ECF_PURE too. 6713 (expand_call): Handle ECF_PURE calls too. 6714 (emit_library_call_value_1): Rename no_queue argument to fn_type, 6715 accept value of 2 as pure function. 6716 (emit_library_call_value, emit_library_call): Rename no_queue argument 6717 to fn_type. 6718 * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call. 6719 6720 * tree.h (DECL_IS_PURE): New macro. 6721 (struct tree_decl): Add pure_flag. 6722 * c-common.c (enum attrs): Add attribute "pure". 6723 (init_attributes): Initialize attribute "pure" 6724 (decl_attributes): Handle attribute "pure". 6725 * extend.texi (Attribute "pure"): Document. 6726 * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from" 6727 in pure function. 6728 (flags_from_decl_or_type): Support attribute "pure". 6729 67302000-04-13 Jason Merrill <jason@casey.cygnus.com> 6731 6732 * cpplex.c (_cpp_lex_token): Handle digraphs. Don't null-terminate 6733 the token except for numbers and identifiers. 6734 6735Thu Apr 13 00:09:16 EDT 2000 John Wehle (john@feith.com) 6736 6737 * i386.c (ix86_expand_binary_operator, 6738 ix86_expand_unary_operator): Check no_new_pseudos 6739 instead of reload_in_progress and reload_completed. 6740 (ix86_split_ashldi, ix86_split_ashrdi, 6741 ix86_split_lshrdi): Check no_new_pseudos instead 6742 of reload_completed. 6743 67442000-04-12 Jeffrey A Law (law@cygnus.com) 6745 6746 * function.c (purge_addressof): Unshare any shared rtl created by 6747 purge_addressof and its children. 6748 67492000-04-12 Mark Mitchell <mark@codesourcery.com> 6750 6751 * function.c (aggregate_value_p): VOID_TYPE nodes are never 6752 aggregates. 6753 67542000-04-05 Andreas Jaeger <aj@suse.de> 6755 6756 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if 6757 not compiling PIC code, add flags for mabi=64. 6758 (SUBTARGET_CPP_SIZE_SPEC): New. 6759 (SUBTARGET_CPP_SPEC): New. 6760 (CPP_PREDEFINES): Define __PIC__ and __pic__. PIC code is default 6761 for MIPS/Linux and lots of code needs these defines. 6762 6763Wed Apr 12 22:44:11 2000 Hans-Peter Nilsson <hp@axis.com> 6764 6765 * reorg.c (fill_slots_from_thread): Check side_effects_p when 6766 trying the "opposite arithmetic" approach. 6767 6768Wed Apr 12 20:51:20 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 6769 6770 * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI. 6771 (struct sh_args): Add new field force_mem. 6772 (INIT_CUMULATIVE_ARGS): Initialize it. 6773 (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it. 6774 6775Wed Apr 12 17:20:41 MET DST 2000 Jan Hubicka <jh@suse.cz> 6776 6777 * calls.c (expand_call): Do not reverse args in "equal from" field. 6778 (emit_library_call_value_1): Emit_libcall_block for const and pure 6779 function. 6780 6781Wed Apr 12 16:00:25 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 6782 6783 * reload1.c (reload_combine): Don't enable optimization for fixed 6784 registers when encountering a BARRIER. 6785 6786Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka <jh@suse.cz> 6787 6788 * builtins.c (expand_builtin_memcmp): Do expansion even with 6789 !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails. 6790 6791 * calls.c (expand_call): Do NO_DEFER_POP unconditionally once 6792 stack is properly aligned; add sanity checking for aligned 6793 stack pointer. 6794 (expand_library_call_value_1): Add sanity checking for aligned 6795 stack pointer. 6796 6797Wed Apr 12 07:51:54 2000 Catherine Moore <clm@cygnus.com> 6798 6799 * calls.c (emit_library_call_value_1): Change 3rd arg to 6800 locate_and_pad_parm to disregard the setting of partial. 6801 6802Wed Apr 12 08:47:38 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6803 6804 * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST. 6805 6806 * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the 6807 CALL_INSN from the normal case. 6808 6809Fri Apr 7 12:23:04 MET DST 2000 Jan Hubicka <jh@suse.cz> 6810 6811 * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): 6812 New global variables. 6813 (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the 6814 adjustment. 6815 * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): 6816 Declare, 6817 (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4, 6818 TARGET_ADD_ESP_8): New macros. 6819 * i386.md: Add peep2s to convert esp adjustments to push and pop 6820 instructions. 6821 (pushsi_prologue, popsi_epilogue): New patterns. 6822 68232000-04-12 Jakub Jelinek <jakub@redhat.com> 6824 6825 * real.c (toe64): Remove stale #endif from the last change. 6826 68272000-04-12 Stephen L Moshier <moshier@mediaone.net> 6828 6829 * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment. 6830 * real.c (toe64): Revert previous change. 6831 68322000-04-12 Jakub Jelinek <jakub@redhat.com> 6833 6834 * objc/objc-act.c: Include ggc.h. 6835 (objc_tree_index, objc_global_trees): Convert most of the 6836 static tree variables into a static array with previous names 6837 as defines. 6838 (objc_ellipsis_node): New variable. 6839 (lang_init): Call objc_act_parse_init and c_parse_init. 6840 Create objc_ellipsis_node. 6841 (build_selector_translation_table): Use objc_ellipsis_node instead 6842 of (tree)1. 6843 (hack_method_prototype): Likewise. 6844 (get_arg_type_list): Likewise. 6845 (start_method_def): Likewise. 6846 (continue_method_def): Likewise. 6847 (gen_method_decl): Likewise. 6848 (ggc_mark_imp_list): New function. 6849 (ggc_mark_hash_table): New function. 6850 (objc_act_parse_init): New function. 6851 * objc/objc-act.h (objc_ellipsis_node): Add extern variable. 6852 * c-parse.in (c_parse_init): For objc add roots of objc specific 6853 local tree variables. 6854 * objc/objc-parse.y: Rebuilt. 6855 * objc/objc-parse.c: Rebuilt. 6856 (opt_parm_list): Use objc_ellipsis_node instead of (tree)1. 6857 6858Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com) 6859 6860 * cse.c (delete_trivially_dead_insns): Also delete insns 6861 that copy a register to itself where the destination is 6862 a strict_low_part. 6863 68642000-04-11 Richard Henderson <rth@cygnus.com> 6865 6866 * flow.c (struct propagate_block_info): Add new_dead, new_live. 6867 (propagate_block): Initialize them. Use them in parallel instead 6868 of one tmp variable, ie revert much of the 0408 and 0407 functional 6869 changes, but keep the structural changes. 6870 (mark_set_regs): Take new_dead from propagate_block_info instead. 6871 (mark_set_1, mark_set_reg): Likewise. 6872 (mark_used_regs): Likewise with new_live. 6873 (mark_used_reg): Likewise. Revert 0408 change. 6874 68752000-04-11 Nick Clifton <nickc@cygnus.com> 6876 6877 * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2 6878 restriction. 6879 (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction. 6880 68812000-04-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 6882 6883 * config/elfos.h (SELECT_SECTION): Decide whether to use a data or 6884 const section to output a CONSTRUCTOR based on the same conditions 6885 used for VAR_DECLs. 6886 6887Tue Apr 11 09:55:59 2000 Jeffrey A Law (law@cygnus.com) 6888 6889 * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64. 6890 * pa/pa-protos.h (output_call): Add additional argument indicating 6891 if the call is a sibling/tail call. 6892 (compute_zdepdi_operands, output_64bit_and): Prototype new functions. 6893 (compute_64bit_ior, cmpib_comparison_operator): Likewise. 6894 (function_arg, function_arg_partial_nregs): Likewise 6895 * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT. 6896 (emit_move_sequence): Zero extend certain constants as needed 6897 for TARGET_64BIT. 6898 (compute_zdepdi_operands, output_64bit_and): New functions. 6899 (output_64bit_ior, function_arg): Likewise. 6900 (cmpib_comparison_operator, function_arg_partial_nregs): Likewise. 6901 (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT. 6902 (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise. 6903 (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise. 6904 (output_bvb): Likewise. 6905 (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT. 6906 (output_call): New argument 'sibcall'. Generate sibcall sequences 6907 as needed. 6908 (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT. For 6909 (ouput_arg_descriptor): Do not emit argument descriptors for 6910 TARGET_64BIT. 6911 * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already 6912 defined. 6913 (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define. 6914 (FUNCTION_OK_FOR_SIBALL): Define. 6915 (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define. 6916 (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise. 6917 (CPP_SPEC): Use new spec infrastructure. 6918 (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT. 6919 (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise. 6920 (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise. 6921 (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise. 6922 (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise. 6923 (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise. 6924 (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise. 6925 (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise. 6926 (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise. 6927 (FUNCTION_ARG); Call out to C code. 6928 (FUNCTION_ARG_PARTIAL_NREGS): Likewise. 6929 (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define. 6930 (MIN_UNITS_PER_WORD): Likewise. 6931 * pa/pa.md (cmpdi): New expander. 6932 (scc patterns, movstrsi): Not available for TARGET_64BIT. 6933 (64bit conditional arithmetic): New patterns. 6934 (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns. 6935 (movsicc): Not available if modes on all the operands to not match. 6936 (movdicc): New expander and associated patterns. 6937 (64bit branches): New patterns. 6938 (pre_load, post_store): Generate appropriate code for TARGET_64BIT. 6939 (pre_ldd, post_std): New patterns. 6940 (64bit addil, load low part): New patterns. 6941 (special movsf constant): Not available for TARGET_64BIT. 6942 (movsf, movdf expanders): Force constants into memory. 6943 (32bit movdf/movdi patterns): Disable for TARGET_64BIT. 6944 (64bit movdf/movdi patterns): New patterns. 6945 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns 6946 for TARGET_64BIT. 6947 (extendqidi2, extendhidi2, extendsidi2): Similarly. 6948 (adddi3 expander): Allow "arith_operand" for second input. 6949 (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT. 6950 (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT. 6951 (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too. 6952 (muldi3): New expander for TARGET_64BIT. 6953 (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2) 6954 for TARGET_64BIT. 6955 (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable 6956 patterns for TARGET_64BIT. 6957 (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New 6958 patterns for TARGET_64BIT. 6959 (64bit bit insertion/extractions): New patterns for TARGET_64BIT. 6960 (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT. 6961 (sibcall_epilogue): New expander. 6962 (casesi): Tweak for TARGET_64BIT. 6963 (call expanders): Set & use the outgoing argument pointer. Use the 6964 64bit call patterns as needed. Add additional arg to output_call. 6965 (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern. 6966 (sibcall, sibcall_internal_symref): New expanders. 6967 (sibcall_value, sibcall_value_internal_symref 6968 (interspace_jump): Turn into an expander + matching patterns. 6969 (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT. 6970 * pa/pa64-regs.h: Eliminate trigraph sequences. 6971 * pa/pa64-start.h (TARGET_PA_20): Fix typo. 6972 69732000-04-11 Zack Weinberg <zack@wolery.cumb.org> 6974 6975 * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c, 6976 cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace 6977 cpp_token with cpp_ttype everywhere. 6978 * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c: 6979 Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or 6980 CPP_BUF_COL. Line and column numbers are unsigned int, not 6981 long. 6982 * cpplex.c (cpp_buf_line_and_col): Delete. 6983 * cpplib.h (struct cpp_buffer, struct cpp_reader): Change 6984 'long lineno' to 'unsigned int lineno'. 6985 (CPP_BUF_LINE, CPP_BUF_COL): New macros. 6986 69872000-04-11 Martin v. L�wis <loewis@informatik.hu-berlin.de> 6988 6989 * extend.texi: ISO C99 is not a draft anymore. 6990 * invoke.texi: ISO C++ is not a draft anymore. 6991 * cpp.texi: __cplusplus is required by the ISO standard. 6992 6993 * extend.texi (-fthis-is-variable): Undocument. 6994 * flags.h (warn_template_debugging): Remove declaration. 6995 * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable, 6996 -Wenum-clash, -Wtemplate-debugging): Undocument. 6997 69982000-04-10 Nick Clifton <nickc@cygnus.com> 6999 7000 * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT 7001 integer. 7002 (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT 7003 integer. 7004 (ARM_SIGN_EXTEND): Use HOST_UINT. 7005 (STRIP_NAME_ENCODING): Prevent warnings about redefinitions. 7006 (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions. 7007 (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported. 7008 (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported. 7009 7010 * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT. 7011 (arm_gen_constant): Use HOST_UINT. 7012 (arm_canonicalize_constant): Use HOST_UINT. 7013 (arm_reload_in_hi): Use HOST_UINT. 7014 (arm_reload_out_hi): Use HOST_UINT. 7015 (output_multi_immediate): Use HOST_UINT. 7016 (int_log2): Use HOST_UINT. 7017 (arm_poke_function_name): Use HOST_UINT. 7018 (arm_output_epilogue): Use arm_volatile_func(). 7019 (output_thumb_prologue): Use arm_strip_name_encoding(). 7020 7021Mon Apr 10 15:40:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 7022 7023 * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential 7024 of sequence point problems. 7025 70262000-04-10 Nathan Sidwell <nathan@codesourcery.com> 7027 7028 * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT): 7029 Recomment. 7030 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment. 7031 7032Mon Apr 10 07:21:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 7033 7034 * sbitmap.h: Whitespace changes and use upper-case macro args. 7035 (struct simple_bitmap_def): All sizes now unsigned. 7036 (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_. 7037 * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars. 7038 (sbitmap_vector_alloc): Parms and local vars now unsigned. 7039 (sbitmap_zero): Cast bzero arg to PTR. 7040 (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned. 7041 (sbitmap_union_of_diffs): Change loop index to unsigned and rework 7042 loop to make structure clearer. 7043 (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise. 7044 (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise. 7045 (sbitmap_a_and_b_or_c): Likewise. 7046 (sbitmap_intersection_of_succs): Minor cleanups. 7047 (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise. 7048 (sbitmap_union_of_preds): Likewise. 7049 (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned. 7050 (debug_sbitmap): New function. 7051 7052 * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE. 7053 * c-typeck.c (convert_for_assignment): Likewise. 7054 7055 * expmed.c (init_expmed): Don't free objects we make. 7056 * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups. 7057 7058 * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases. 7059 (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field. 7060 7061 * gcse.c (expr_hash_table_size): Now unsigned. 7062 (compute_ae_gen): Local variable `i' now unsigned. 7063 (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise. 7064 (compute_transout, hoist_code): Likewise. 7065 (compute_local_properties): Likewise, also hash_table_size. 7066 (alloc_expr_hash_table): N_INSNS now unsigned. 7067 (delete_null_pointer_checks): Mark arg F as unused. 7068 7069 * regrename.c: Minor cleanups, including chang some variables 7070 to unsigned int. 7071 70722000-04-10 Neil Booth <NeilB@earthling.net> 7073 7074 * cpplex.c (skip_block_comment): Use pointer arithmetic rather 7075 than GETC (). 7076 * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New. 7077 70782000-04-10 Martin v. L�wis <loewis@informatik.hu-berlin.de> 7079 7080 * invoke.texi (-fno-gnu-keywords): Remove classof, headof, 7081 __classof__, and __headof__ from the list of gnu keywords. 7082 (-ansi): Remove -foperator-names from list of implied options. 7083 Do not call it ANSI C++. 7084 (-foperator-names): Document as -fno-operator-names. 7085 70862000-04-09 Zack Weinberg <zack@wolery.cumb.org> 7087 7088 * cpphash.c (timestamp): Delete. 7089 (del_HASHNODE): If type is T_MCONST, free value.cpval. 7090 (special_symbol): Remove unnecessary braces. Remove 7091 T_VERSION. Treat T_STDC like T_CONST unless 7092 STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__ 7093 when one is encountered, then convert them into T_MCONST 7094 nodes. 7095 * cppinit.c (builtin_array): version_string is T_MCONST. 7096 __STDC__ has a "1" in its cpval. Don't have a terminator 7097 entry. Clean up which entries are dumped. 7098 (initialize_builtins): Only __STDC__ gets the special 7099 -traditional treatment. Count the length of builtin_array. 7100 Render version_string here. 7101 * cpphash.h: Remove T_VERSION. Add T_MCONST. 7102 * cpplib.h (struct cpp_reader): Remove timebuf. 7103 71042000-04-09 Richard Henderson <rth@cygnus.com> 7105 7106 * genrecog.c (pred): Update comparison_operator for the unordered 7107 operators. 7108 7109 * config/i386/i386.c (no_comparison_operator): Disallow unordered 7110 operators. 7111 (fcmov_comparison_operator): Allow UNORDERED/ORDERED. 7112 (uno_comparison_operator): New. 7113 (put_condition_code): Handle UNORDERED/ORDERED. 7114 (unsigned_comparison): Likewise. 7115 (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare. 7116 (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise. 7117 (ix86_expand_fp_compare): Use them. Take scratch as argument, 7118 update all callers. Handle all 8 unordered operators. 7119 (ix86_expand_setcc): Lose the unordered argument, update all callers. 7120 (ix86_expand_branch): Likewise. Don't fully expand fp branches. 7121 * config/i386/i386.h (PREDICATE_CODES): Update. 7122 * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare. 7123 (ix86_expand_branch, ix86_expand_setcc): Update. 7124 * config/i386/i386.md (sunordered, sordered): New. 7125 (suneq, sunge, sungt, sunle, sunlt, sltgt): New. 7126 (bunordered, bordered): New. 7127 (buneq, bunge, bungt, bunle, bunlt, bltgt): New. 7128 (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New. 7129 (*fp_jcc_5, *fp_jcc_6, and splitters): New. 7130 71312000-04-09 Philip Blundell <philb@gnu.org> 7132 7133 * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too. 7134 7135Sun Apr 9 15:16:14 EDT 2000 John Wehle (john@feith.com) 7136 7137 * i386.md (fix_truncsfhi2, fix_truncdfhi2, 7138 fix_truncxfhi2): New patterns. 7139 * i386.c (output_fix_trunc): Handle converting to HImode. 7140 71412000-04-08 Alex Samuel <samuel@codesourcery.com> 7142 7143 * ssa.c (convert_to_ssa): Eliminate dead code when calling 7144 life_analysis. 7145 (convert_from_ssa): Call compute_bb_for_insn before life_analysis. 7146 (for_each_successor_phi): Change parameter to basic_block. 7147 (coalesce_regs_in_successor_phi_nodes): Likewise. 7148 (coalesce_regs_in_copies): Likewise. 7149 (compute_coalesced_reg_partition): Use basic_block instead of index. 7150 * rtl.h (convert_to_ssa): Delete. 7151 (convert_from_ssa): Likewise. 7152 (successor_phi_fn): Likewise. 7153 (for_each_successor_phi): Likewise. 7154 (in_ssa_form): Likewise. 7155 * basic-block.h (convert_to_ssa): Moved from rtl.h. 7156 (convert_from_ssa): Likewise. 7157 (successor_phi_fn): Likewise. 7158 (in_ssa_form): Likewise. 7159 (for_each_successor_phi): Likewise. Change parameter to basic_block. 7160 * flow.c (calculate_global_regs_live): Pass a basic_block to 7161 for_each_successor_phi. 7162 71632000-04-08 Richard Henderson <rth@cygnus.com> 7164 7165 * flow.c (mark_used_reg): Use reg_set_p to determine if a register 7166 was modified in the current insn. 7167 71682000-04-08 Richard Earnshaw (rearnsha@arm.com) 7169 7170 * arm/thumb.md: Delete. 7171 * arm/thumb-protos.h: Delete. 7172 71732000-04-08 Richard Earnshaw (rearnsha@arm.com) 7174 7175 Merge changes from merged-arm-thumb-backend-branch onto trunk. 7176 7177 2000-04-08 Richard Earnshaw (rearnsha@arm.com) 7178 7179 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408 7180 into branch. 7181 7182 * arm.md (nop): Use the standard RTL expression. Don't code as a 7183 define_expand. 7184 (*arm_nop, *thumb_nop): Delete. 7185 7186 * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining 7187 constants. Use casts instead. 7188 (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi, 7189 output_multi_immediate, arm_poke_function_name): Likewise. 7190 * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND, 7191 MASK_RETURN_ADDDR): Likewise. 7192 7193 2000-03-31 Richard Earnshaw (rearnsha@arm.com) 7194 7195 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 7196 into branch. 7197 7198 * arm.md (eh_epilogue): New function. 7199 * arm.h (struct machine_function): Move to here ... 7200 * arm.c: ... from here. 7201 (arm_output_epilogue): Support epilogues for __builtin_eh_return. 7202 (thumb_exit): Extra parameter eh_ofs. All callers changed. 7203 Handle epilogues for __builtin_eh_return. Make bit-fields unsigned. 7204 7205 2000-03-30 Nick Clifton <nickc@cygnus.com> 7206 7207 * config/arm/semi.h (ASM_SPEC): Restore definition. 7208 (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. 7209 7210 * config/arm/elf.h (ASM_SPEC): Restore definition. 7211 (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. 7212 7213 * config/arm/arm.h (ASM_SPEC): Remove definition. 7214 (SUBTARGET_EXTRA_ASM_SPEC): Remove definition. 7215 7216 2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk> 7217 7218 * config/arm/arm.c: Disable -fschedule-insns for Thumb. 7219 7220 2000-03-24 Nick Clifton <nickc@cygnus.com> 7221 7222 Various formating tidyups, elimination of compile time 7223 warnings and synchronisation with internal sources: 7224 7225 * config/arm/arm-protos.h (assemble_align): Add prototype. 7226 (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. 7227 (gen_comapre_reg): Rename to arm_gen_compare_reg. 7228 (arm_return_addr_rtx): Rename to arm_return_addr. 7229 7230 * config/arm/arm.c: Include except.h. 7231 Define shorter typenames for strict minipool_node and struct 7232 minipool_fix. 7233 (arm_return_in_memory): For WinCE return all structures <= 32 bits 7234 in memory. 7235 (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. 7236 (gen_comapre_reg): Rename to arm_gen_compare_reg. 7237 7238 * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not 7239 already defined. 7240 (ASM_SPEC): Define if not already defined. 7241 (ASM_OUTPUT_DEF_FROM_DECLS): Define. 7242 7243 * config/arm/arm.md: Rename references to gen_rotated_half_load to 7244 arm_gen_rotated_half_load, and references to gen_comapre_reg to 7245 arm_gen_compare_reg. 7246 (indirect_jump): Only accept register operands. 7247 (load_indirect_jump): Keep this pattern since combine can generate 7248 it. 7249 7250 * config/arm/coff.h: Include aout.h. 7251 (MULTILIB_DEFAULTS): Only define if not already defined. 7252 7253 * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition 7254 into arm.h (so that COFF ports can support thumb based aliases). 7255 (ASM_SPEC): Move definition into arm.h 7256 7257 * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove 7258 redundant apcs spec. 7259 (ASM_SPEC): Move definition to arm.h 7260 7261 * config/arm/semi.h (ASM_SPEC): Move definition to arm.h 7262 7263 * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support 7264 for entries in the .bss section 7265 7266 2000-03-23 Nick Clifton <nickc@cygnus.com> 7267 7268 * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0 7269 to thumb_far_jump_used_p. 7270 7271 * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a 7272 single integer parameter. 7273 7274 * config/arm/arm.c (struct machine_function): Add two new 7275 fields, 'far_jump_used' and 'arg_pointer_live'. 7276 (thumb_far_jump_used_p): Once the decision has been made that 7277 far jumps might be used, always return true. 7278 If being called from the initial elimination offset macro then 7279 do not bother to perform the test if the arg pointer is not 7280 being used. 7281 (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p(). 7282 (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p(). 7283 7284 2000-03-23 Richard Earnshaw (rearnsha@arm.com) 7285 7286 * arm.c (output_return_instruction): Handle more cases where we can 7287 return from a function with an ldr instruction. 7288 (arm_output_epilogue): Likewise. 7289 7290 * arm.c (thumb_expand_prologue): Don't clobber the frame pointer 7291 if we need to push a large stack frame and there are no callee-saved 7292 registers. 7293 7294 * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid 7295 in ARM code if the frame pointer has been eliminated. 7296 7297 * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber 7298 unspec_volatile arguments to avoid duplicates. 7299 (consttable_1, consttable_2): Fixes for big-endian mode. 7300 7301 * arm.md (all ARM-mode load insns): Add neg_pool_range attribute 7302 as appropriate. 7303 7304 Re-write constant pool code. 7305 * arm.c (minipool_node, minipool_fix): New types. 7306 (minifix): Delete type. 7307 (arm_add_minipool_constant): Delete. 7308 (arm_compute_minipool_offsets, arm_find_barrier, 7309 arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise. 7310 (get_jump_table_size): Now returns HOST_WIDE_INT. 7311 (move_minipool_fix_forward_ref, add_minipool_forward_ref): New 7312 functions. 7313 (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise. 7314 (assign_minipool_offsets, arm_print_value): Likewise. 7315 (dump_minipool): Rewrite. 7316 (arm_barrier_cost): New function. 7317 (create_fix_barrier): New function. 7318 (push_minipool_barrier): New function. 7319 (push_minipool_fix): Record additional information about the fixup 7320 required. 7321 (note_invalid_constants): Remove push for (UNSPEC 3). Don't 7322 check the mode of what needs fixing. 7323 (arm_reorg): Rewrite. 7324 7325 2000-03-08 Nick Clifton <nickc@cygnus.com> 7326 7327 * config/arm/arm.md (indirect_jump): Force constant addresses into 7328 a register. 7329 7330 2000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 7331 7332 * config/arm/arm.md: Add splitter to turn SF moves into SI moves. 7333 7334 2000-02-24 Nick Clifton <nickc@cygnus.com> 7335 7336 * config/arm/arm.c (thumb_expand_prologue): Make sure that stack 7337 adjust is word aligned. 7338 (thumb_expand_epilogue): Make sure that stack adjust is word 7339 aligned. 7340 7341 * config/arm/elf.h (ASM_FILE_START): Fix type of version string. 7342 7343 2000-02-24 Bernd Schmidt <bernds@cygnus.com> 7344 7345 * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame 7346 pointer relative addresses. 7347 7348 2000-02-10 Richard Earnshaw <rearnsha@arm.com> 7349 7350 * arm.c (find_barrier): Find the last barrier within the allowed 7351 range. 7352 7353 2000-02-09 Nick Clifton <nickc@cygnus.com> 7354 7355 * config/arm/arm-protos.h: Replace PROTO with PARAMS. 7356 7357 2000-02-09 Nick Clifton <nickc@cygnus.com> 7358 7359 * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to 7360 ARM_FUNCTION_PROFILER. 7361 7362 * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to 7363 ARM_FUNCTION_PROFILER. 7364 7365 * config/arm/linux-oldld.h: Imported from mainline sources. 7366 7367 2000-02-07 Nick Clifton <nickc@cygnus.com> 7368 7369 * config/arm/lib1funcs.asm: Merge in thumb functions from 7370 lib1thumb.asm. 7371 7372 * config/arm/lib1thumb.asm: Delete. 7373 7374 2000-02-04 Nick Clifton <nickc@cygnus.com> 7375 7376 * config/arm/arm.c: Sychronised with current Red hat local 7377 sources. 7378 * config/arm/arm.h: Ditto. 7379 * config/arm/arm-protos.h: Ditto. 7380 7381 2000-02-02 Bernd Schmidt <bernds@cygnus.co.uk> 7382 7383 * arm.c (soft_df_operand): Reject SUBREGs containing a constant. 7384 7385 * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two 7386 byte stores. 7387 7388 2000-02-02 Nick Clifton <nickc@cygnus.com> 7389 7390 * config/arm/thumb.c (thumb_exit): Additional fix for same bug. 7391 7392 * config/arm/arm.md (epilogue): Fix rtl checking abort because 7393 (return) was emited using an emit_insn() call. 7394 7395 2000-01-31 Nick Clifton <nickc@cygnus.com> 7396 7397 * config/arm/arm.c (output_thumb_prologue): Fix bug generating 7398 thumb stack frame. 7399 (thumb_exit): Move frame pointer back into hard frame pointer 7400 register if backtracing is being used. 7401 7402 2000-01-13 Richard Earnshaw (rearnsha@arm.com) 7403 7404 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 7405 into branch. 7406 7407 1999-12-15 Bernd Schmidt <bernds@cygnus.co.uk> 7408 7409 * config/arm/arm.md (neg_pool_offset): Provide default for new 7410 attribute. 7411 (arm_movsi_insn): Add neg_pool_offset attribute. 7412 * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an 7413 rtx for the insn that starts the scan and an unsigned long for its 7414 address. Add MIN_OFFSET and PINSERTED args. All callers changed. 7415 Change scan to ignore insns before MIN_OFFSET. Store size of inserted 7416 instructions in *PINSERTED. 7417 (struct minipool_fixup): Add MIN_ADDRESS elt. 7418 (sort_fixups): Compute it. 7419 (arm_reorg): Changes to support inserting pools before the insn to be 7420 fixed up. 7421 7422 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk> 7423 7424 * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm". 7425 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm". 7426 * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm". 7427 7428 Wed Nov 3 10:04:07 1999 Nick Clifton <nickc@cygnus.com> 7429 7430 * config/arm/semi.h (TARGET_VERSION): Do not define if already 7431 defined. 7432 (TARGET_DEFAULT): Do not define if already defined. 7433 7434 Tue Nov 2 10:37:25 1999 Nick Clifton <nickc@cygnus.com> 7435 7436 * config/arm/arm.md (anddi3): Allow disjoint source operands. 7437 (iordi3): Allow disjoint source operands. 7438 (xordi3): Allow disjoint source operands. 7439 (negdi2): Permit construction for ARM and Thumb. 7440 (arm_negdi2): Renamed version of old negdi2 pattern. 7441 (thumb_negdi2): New pattern: Only permit non-overlapping 7442 source and destination. 7443 7444 Fri Oct 29 18:52:38 1999 Nick Clifton <nickc@cygnus.com> 7445 7446 * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the 7447 scratch low register so that it will not be deleted. 7448 7449 Fri Oct 29 15:23:48 1999 Nick Clifton <nickc@cygnus.com> 7450 7451 * config/arm/pe.h (ARM_PE): Define. 7452 7453 * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow 7454 interfacearm attribute if this is a PE toolchain. 7455 (output_return_instruction): Do not emit anything if the function 7456 has the naked attribute set. 7457 (is_called_in_ARM_mode): If the function has the interfacearm 7458 attribute then return true. 7459 (thumb_expand_prologue): Do not generate a prologue for naked 7460 functions. 7461 (thumb_expand_epilogue): Do not generate an epilogie for a naked 7462 function. 7463 (output_thumb_prologue): Do not bother if the function is naked. 7464 Strip PE encoding from function name before emitting. 7465 7466 Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com> 7467 7468 * arm.md (pic_load_addr): Fix constraints. 7469 7470 * arm.md (casesi_insn): Fix mis-applied patch. 7471 7472 * arm.md ("core" function unit): Add rules for single- and 7473 multi-cycle insns. 7474 (All TARGET_THUMB patterns): Add "type" attribute information 7475 where needed. 7476 * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if 7477 the following insn is a CALL. 7478 7479 * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack 7480 pointer. 7481 * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the 7482 ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME. 7483 (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM. 7484 7485 Wed Oct 27 14:40:48 1999 Nick Clifton <nickc@cygnus.com> 7486 7487 * config/arm/linux-gas.h: oops - this file was missed out when the 7488 branch was created... 7489 7490 Tue Oct 26 17:07:38 1999 Richard Earnshaw <rearnsha@arm.com> 7491 7492 * thumb.c: Deleted. Move contents to ... 7493 * arm.c: ... here. 7494 * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove 7495 rule for thumb.o 7496 * configure.in (arm*-*-*): Remove thumb.o from extra_objs list. 7497 * configure: Regen. 7498 7499 * arm-protos.h: Use RTX_CODE and tidy up long lines. Don't 7500 declare a prototype for asm_output_align(); 7501 7502 * arm.c (thumb_condition_code): Delete. 7503 (arm_print_operand): Always use arm_condition_code array. 7504 7505 * arm.c (thumb_return_addr_rtx): Delete. 7506 (arm_save_machine_status, arm_restore_machine_status): Delete. 7507 (arm_init_machine_status, arm_mark_machine_status): New functions. 7508 (arm_init_expanders): Update accordingly. 7509 (arm_return_addr): Renamed from arm_return_addr_rtx. Rewrite. 7510 (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx. 7511 * arm.h (RETURN_ADDR_RTX): Call arm_return_addr(). 7512 7513 Tue Oct 26 13:24:16 1999 Nick Clifton <nickc@cygnus.com> 7514 7515 * configure.in : Fix arm-*-aout target to use new t-arm-aout 7516 script. 7517 * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout 7518 targets. 7519 7520 Tue Oct 26 11:27:12 1999 Nick Clifton <nickc@cygnus.com> 7521 7522 * config/arm/thumb.c (output_thumb_prologue): Fix bug creating 7523 stack backtrace structure. 7524 7525 * config/arm/arm-protos.h: Add prototypes for functions defined in 7526 arm/pe.h. 7527 7528 * config/arm/arm.c (arm_override_options): Fix selection of 7529 attributes of default processor. 7530 7531 * config/arm/coff.h: Delete needless #include. 7532 7533 * config/arm/pe.c: Delete unused code. 7534 7535 * config/arm/pe.h (CPP_DEFINES): Delete 7536 (SUBTARGET_CPP_SPEC): Define. 7537 (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME. 7538 7539 * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build. 7540 7541 Mon Oct 25 15:42:09 1999 Richard Earnshaw (rearnsha@arm.com) 7542 7543 * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses 7544 updated. 7545 (CAN_DEBUG_WITHOUT_FP): Define. 7546 (FIXED_REGISTERS): Make r11 call-saved. 7547 (CALL_USED_REGISTERS): Likewise. 7548 (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME. 7549 (FRAME_POINTER_REQUIRED): Correct logic for determining when a 7550 frame-pointer is required. 7551 (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME. 7552 * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g 7553 if the target normally needs a stack frame in non-leaf functions. 7554 (use_return_insn): Correct logic for determining when a return 7555 instruction can be used. 7556 (output_return_instruction): Handle the frame-pointer register as 7557 a normal register when not TARGET_APCS_FRAME. 7558 (arm_output_prologue): Likewise. 7559 (arm_output_epilogue): Likewise. 7560 (output_func_epilogue): Likewise. 7561 (arm_expand_prologue): Likewise. 7562 * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME. 7563 7564 * arm.c (use_return_insn): No need to check floating point regs if 7565 TARGET_SOFT_FLOAT. 7566 (arm_find_minipool_constant): Correct typo; use GET_CODE to get 7567 the code of value stored in the minipool array. 7568 (arm_add_minipool_constant): Likewise. 7569 75702000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7571 7572 * basic-block.h (conflict_graph_enum_fn): K&R fix. 7573 75742000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7575 7576 * tree.c (tree_expr_nonnegative_p): New function. 7577 7578 * tree.h (tree_expr_nonnegative_p): Declare. 7579 7580 * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to 7581 elide some sign_compare warnings. 7582 (build_conditional_expr): Likewise. 7583 7584Sat Apr 8 00:21:51 EDT 2000 John Wehle (john@feith.com) 7585 7586 * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo. 7587 7588 * i386.md (floathisf2, floathidf2, floathixf2): New patterns. 7589 * i386.c (print_operand): Use the proper suffix for a 387 HImode 7590 operand. Abort if a 387 operand has an unsupported size. 7591 75922000-04-08 Neil Booth <NeilB@earthling.net> 7593 7594 * cppexp.c (parse_charconst): Null does not end character 7595 constants. 7596 * cppinit.c (ISTABLE): Null character handled as whitespace. 7597 * cpplex.c (null_warning): new function. 7598 (skip_string): Emit warning if nulls encountered. 7599 (_cpp_skip_hspace): Emit warning if nulls encountered. 7600 (_cpp_lex_token): Emit warning if nulls encountered. Drop 7601 them. 7602 * cpp.texi: Update. 7603 76042000-04-07 Richard Henderson <rth@cygnus.com> 7605 7606 * flow.c (loop_depth): Remove. 7607 (reg_next_use, cc0_live, mem_set_list): Replace with ... 7608 (struct propagate_block_info): New. 7609 (life_analysis): Don't allocate reg_next_use. 7610 (propagate_block_delete_insn): Break out of propagate_block. 7611 Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED. 7612 (propagate_block_delete_libcall): Likewise. 7613 (propagate_block): Create a propagate_block_info struct to pass 7614 to subroutines. Allocate one not two temporary regsets. Don't 7615 clobber memory for const calls. Look for clobbers in 7616 CALL_INSN_FUNCTION_USAGE. 7617 (mark_set_regs): Recognize COND_EXEC. 7618 (mark_set_reg): Break out of mark_set_1. 7619 (mark_used_reg): Break out of mark_used_regs. 7620 (mark_used_regs): Recognize COND_EXEC. 7621 (insn_dead_p): Use propagate_block_info struct. 7622 (libcall_dead_p, invalidate_mems_from_autoinc): Likewise. 7623 (find_auto_inc, try_pre_increment_1): Likewise. 7624 (print_rtl_with_bb): Dump regs live at end too. 7625 (count_reg_sets_1): Pass in loop_depth. 7626 (count_reg_sets, count_reg_references): Likewise. 7627 (recompute_reg_usage): Provide it. 7628 76292000-04-07 Richard Henderson <rth@cygnus.com> 7630 7631 * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H) 7632 not the raw files. 7633 76342000-04-07 Zack Weinberg <zack@wolery.cumb.org> 7635 7636 * cpplib.c (do_elif): Skip the rest of the line if we're 7637 not going to bother evaluating it. 7638 (skip_if_group): Clear pfile->only_seen_white. Reorder loop 7639 to avoid pointless calls to the lexer. 7640 7641Fri Apr 7 11:50:54 2000 Jim Wilson <wilson@cygnus.com> 7642 7643 * config/ia64/ia64.c: Delete stdio.h and ctype.h includes. 7644 76452000-04-07 Jason Merrill <jason@casey.cygnus.com> 7646 7647 * calls.c (expand_call): emit_queue if we're trying a sibcall. 7648 76492000-04-07 Jakub Jelinek <jakub@redhat.com> 7650 7651 * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove. 7652 76532000-04-06 Geoff Keating <geoffk@cygnus.com> 7654 7655 * Makefile.in: Build crtbeginS and crtendS like crtbegin and 7656 crtend so they can be multilibbed. 7657 (STAGESTUFF): Remove s-crt and s-crtS. 7658 76592000-04-07 Richard Henderson <rth@cygnus.com> 7660 7661 * config/alpha/alpha.c (alpha_emit_conditional_move): Fail 7662 if we discover we need a pseudo and no_new_pseudos is true. 7663 * config/alpha/alpha.md (ne:DI insn): New. 7664 (trunctfsf2, sne): Emit NE instead of non-canonical LTU. 7665 76662000-04-07 Richard Henderson <rth@cygnus.com> 7667 7668 * rtl.def (COND_EXEC): New. 7669 * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New. 7670 * tm.texi (MAX_CONDITIONAL_EXECUTE): Document. 7671 7672 * genconfig.c (have_cond_arith_flag): Remove. 7673 (have_cond_exec_flag): New. 7674 (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE. 7675 (main): Print HAVE_conditional_execution. 7676 7677 * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC. 7678 (sched_analyze_insn, print_pattern): Likewise. 7679 * reload.c (find_equiv_reg): Likewise. 7680 * rtlanal.c (reg_referenced_p): Likewise. 7681 (note_stores, dead_or_set_regno_p): Likewise. 7682 (reg_overlap_mentioned_p): Rewrite to use a switch. 7683 7684 * ggc.h (struct rtx_def): Forward declare. 7685 7686 * print-rtl.c (debug_rtx_range): New. 7687 * rtl.h (debug_rtx_range): Declare. 7688 7689 * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New. 7690 7691 * gcse.c (gcse_main): Don't rebuild the CFG here. 7692 (delete_null_pointer_checks): Likewise. 7693 * ssa.c (convert_to_ssa): Likewise. 7694 * toplev.c (rest_of_compilation): Do it here instead. Combine 7695 sequential calls to TIMEVAR. Consistently use `insns' instead of 7696 `get_insns()'. Always split insns after reload when optimizing. 7697 7698 * basic-block.h (merge_blocks_nomove): Declare. 7699 (tidy_fallthru_edge): Declare. 7700 * flow.c (merge_blocks_nomove): Document as merging into previous 7701 blocks. Remove cruft from between blocks; remove all edges out of A. 7702 (tidy_fallthru_edge): Export. 7703 77042000-04-06 Alex Samuel <samuel@codesourcery.com> 7705 7706 * ssa.c (compute_conservative_reg_partition): Declare with 7707 void arguments. 7708 * toplev.c (clean_dump_file): Remove previously-deleted function 7709 inadvertantly merged back in. 7710 * conflict.c (conflict_graph_add): Use a single call to 7711 htab_find_slot to look up and insert. 7712 77132000-04-06 Richard Henderson <rth@cygnus.com> 7714 7715 * genrecog.c (*): Rename _last_insn to last_insn. 7716 (make_insn_sequence): Set the position of the peephole2 C test 7717 to be at the last insn. 7718 77192000-04-06 Richard Henderson <rth@cygnus.com> 7720 7721 * flow.c (compute_flow_dominators): Free worklist. 7722 77232000-04-06 Michael Matz <matzmich@cs.tu-berlin.de> 7724 7725 * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO. 7726 77272000-04-06 Alex Samuel <samuel@codesourcery.com> 7728 7729 * rtl.h (INSN_P): New macro. 7730 (successor_phi_fn): New typedef. 7731 (for_each_successor_phi): New prototype. 7732 (in_ssa_form): New variable. 7733 (PHI_NODE_P): Likewise. 7734 * flow.c (calculate_global_regs_live): Add to new_live_at_end from 7735 phi nodes in successors. 7736 (mark_used_regs): Add PHI case. 7737 (set_phi_alternative_reg): New function. 7738 (life_analysis): Assert that dead code elimination is not selected 7739 when in SSA form. 7740 * toplev.c (to_ssa_time): New variable. 7741 (from_ssa_time): Likewise. 7742 (compile_file): Zero to_ssa_time and from_ssa_time. 7743 Print time to convert to and from SSA. 7744 (rest_of_compilation): Time convert_to_ssa and convert_from_ssa. 7745 (print_time): Compute percent fraction as integer. 7746 * ssa.c (PHI_NODE_P): Moved to rtl.h. 7747 (convert_to_ssa): Check if we're already in SSA. 7748 Don't eliminate dead code in life_analysis. 7749 Rerun flow and life analysis at bottom. 7750 (eliminate_phi): Use canonical regnos when adding nodes. 7751 (mark_reg_in_phi): New function. 7752 (mark_phi_and_copy_regs): Likewise. 7753 (convert_from_ssa): Rerun life analysis at top. 7754 Use coalesced partition. 7755 Check for removing a phi node at the end of the block. 7756 (compute_coalesced_reg_partition): New function. 7757 (coalesce_regs_in_copies): Likewise. 7758 (coalesce_reg_in_phi): Likewise. 7759 (coalesce_regs_in_successor_phi_nodes): Likewise. 7760 (for_each_successor_phi): Likewise. 7761 (rename_context): New struct. 7762 (rename_block): Use a rename_context with rename_insn_1. When 7763 renaming sets of a subreg, emit a copy of the entire reg first. 7764 (rename_insn_1): Treat data as a rename_context *. Save current 7765 insn in set_data. 7766 (rename_set_data): Add field set_insn. 7767 * Makefile.in (HASHTAB_H): Move up in file. 7768 (OBSTACK_H): New macro. 7769 (collect2.o): Use OBSTACK_H in dependencies. 7770 (sdbout.o): Likewise. 7771 (emit-rtl.o): Likewise. 7772 (simplify-rtx.o): Likewise. 7773 (fix-header.o): Likewise. 7774 (OBJS): Add conflict.o. 7775 (conflict.o): New rule. 7776 * basic-block.h: Include partition.h. 7777 (conflict_graph): New typedef. 7778 (conflict_graph_enum_fn): Likewise. 7779 (conflict_graph_new): New prototype. 7780 (conflict_graph_delete): Likewise. 7781 (conflict_graph_add): Likewise. 7782 (conflict_graph_conflict_p): Likewise. 7783 (conflict_graph_enum): Likewise. 7784 (conflict_graph_merge_regs): Likewise. 7785 (conflict_graph_print): Likewise. 7786 (conflict_graph_compute): Likewise. 7787 * conflict.c: New file. 7788 77892000-04-06 Jason Merrill <jason@yorick.cygnus.com> 7790 7791 * tlink.c (read_repo_files): Don't look for .rpo info for 7792 linker flags. 7793 7794Thu Apr 6 20:39:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 7795 7796 * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define. 7797 7798Thu Apr 6 19:34:08 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 7799 7800 * config/sh/lib1funcs.asm (___udivsi3_i4): 7801 ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr 7802 only depends on FMOVD_WORKS. 7803 7804Thu Apr 6 19:11:47 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 7805 7806 * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd, 7807 make double constant 8-byte aligned. 7808 78092000-04-06 Jakub Jelinek <jakub@redhat.com> 7810 7811 * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32, 7812 movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64, 7813 movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS. 7814 (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise. 7815 Accept storing GENERAL_REGS into offsetable memory. 7816 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow 7817 building a TFmode constant other than 0.0L into GENERAL_REGS. 7818 78192000-04-06 Clinton Popetz <cpopetz@cygnus.com> 7820 7821 * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER. 7822 78232000-04-06 Zack Weinberg <zack@wolery.cumb.org> 7824 7825 * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete. 7826 (macro_cleanup): No need to cast pbuf->macro. 7827 (collect_expansion): Use _cpp_get_define_token. Goto done if 7828 it returns VSPACE. Remove check for trailing space after 7829 CPP_COMMENT. 7830 (_cpp_create_definition): Don't diddle flags here. Return 7831 directly on error. 7832 (unsafe_chars): Handle c1 being EOF. 7833 (push_macro_expansion): Use unsafe_chars for both accidental-paste 7834 checks. Don't push the buffer till after we're done with 7835 them. 7836 * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New. 7837 (PEEKN, FORWARD, GETC, PEEKC): Use them. 7838 (cpp_push_buffer): Don't set new->alimit. Set new->mark 7839 appropriately. 7840 (_cpp_parse_assertion): Don't NUL terminate. 7841 (_cpp_lex_token): Fix -traditional macro handling. Don't skip 7842 hspace before calling _cpp_parse_assertion. Remove all sets 7843 of only_seen_white. Treat '\f' as hspace. Don't do anything 7844 special with '\n' here. 7845 (maybe_macroexpand): Handle T_EMPTY hash entries without 7846 pushing a buffer at all. 7847 (cpp_get_token): Handle clearing only_seen_white here. Handle 7848 incrementing the line number here. Clear 7849 potential_control_macro as well as only_seen_white, if 7850 appropriate. 7851 (cpp_get_non_space_token): Don't eat CPP_POP tokens. 7852 (_cpp_get_define_token): New function, basically like 7853 _cpp_get_directive_token was but doesn't eat horizontal space. 7854 Don't do anything with only_seen_white here. 7855 (_cpp_get_directive_token): Just call _cpp_get_define_token 7856 repeatedly till it returns non-hspace. 7857 7858 * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete. 7859 (conditional_skip, skip_if_group): Return int. 7860 (DIRECTIVE_TABLE): Change origin of all conditional directives 7861 to "COND". 7862 (TRAD_DIRECT_P): New macro. 7863 (_cpp_handle_directive): Use _cpp_get_directive_token. Issue 7864 an error for a bogus directive, unless -lang-asm. Use 7865 TRAD_DIRECT_P. Loop calling handler functions till one returns 7866 zero. 7867 (get_macro_name): Don't diddle flags here. 7868 (do_define): Diddle flags here. Use _cpp_get_directive_token. 7869 Create T_EMPTY nodes for #define macro /* nothing */. 7870 (do_undef): Don't copy the name. Use _cpp_get_directive_token. 7871 Use hp->name when calling pass_thru_directive. 7872 (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip): 7873 Return the result of conditional_skip and/or skip_if_group. 7874 Don't call _cpp_output_line_command. 7875 (consider_directive_while_skipping): Use _cpp_get_directive_token. 7876 Issue -Wtraditional warnings as appropriate. Don't complain 7877 about unrecognized directives. If we are to stop skipping, 7878 return the number of the directive that ended the skip. 7879 (skip_if_group): Use _cpp_get_directive_token. Turn off macro 7880 expansion and line commands while skipping. Return the result 7881 of consider_directive_while_skipping, if nonzero. 7882 (do_endif): Just set potential_control_macro here. 7883 (validate_else): Use _cpp_get_directive_token. 7884 (do_assert, do_unassert): Don't save pointers into the 7885 token_buffer across calls to the lexer. Use 7886 _cpp_get_directive_token. 7887 7888 * cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a 7889 pointer, not an offset. Replace 'data', which was a generic 7890 pointer, with 'macro', which points to a struct hashnode. 7891 (cpp_reader): Add 'potential_control_macro' pointer. 7892 * cpphash.h (T_UNUSED): Replace with T_EMPTY. 7893 (CPP_BUF_GET, CPP_FORWARD): Delete. 7894 (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros. 7895 (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, 7896 ACTIVE_MARK_P): Update. 7897 (_cpp_get_define_token): New internal function. 7898 * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno. 7899 79002000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 7901 7902 * configure.in: And here. 7903 * configure: Regenerate. 7904 * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if 7905 --enable-libstdcxx-v3 is passed at configure time. 7906 * config.h.in: Regenerate. 7907 79082000-04-05 Mark Mitchell <mark@codesourcery.com> 7909 7910 * final.c (final): Use xcalloc to allocate line_note_exists. 7911 * function.c (free_after_compilation): Free the temp_slots. 7912 (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots. 7913 (combine_temp_slot): Free temp_slots when they get combined. 7914 (purge_addressof): Fix typo in comment. 7915 * stmt.c (mark_goto_fixup): Mark the fixup itself. 7916 (expand_fixup): Allocate the fixup with ggc_alloc_obj. 7917 7918 * ggc.h: Include varray.h. 7919 (ggc_pending_trees): Declare. 7920 (ggc_mark_tree_children): Remove declaration. 7921 (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees. 7922 * ggc-common.c (ggc_pending_trees): New variable. 7923 (ggc_mark_roots): Call ggc_mark_trees. 7924 (ggc_mark_tree_children): Rename to ggc_mark_trees. Process all 7925 the ggc_pending_trees. 7926 * Makefile.in (GGC_H): New variable. Use it throughout in place 7927 of ggc.h. 7928 7929Thu Apr 6 00:30:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 7930 7931 * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accommodate an unsigned 7932 GET_MODE_SIZE. 7933 7934Wed Apr 5 23:17:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 7935 7936 * sh.c (sh_insn_length_adjustment): New function. 7937 * sh-protos.h (sh_insn_length_adjustment): Declare. 7938 * sh.h (ADJUST_INSN_LENGTH): Use it. 7939 7940Wed Apr 5 12:35:18 2000 Hans-Peter Nilsson <hp@axis.com> 7941 7942 * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes 7943 from the insn where REG_RETVAL is added. 7944 (emit_no_conflict_block): Ditto. 7945 7946 * md.texi (Standard Names): Clarify when movX is needed. 7947 7948 * combine.c (simplify_comparison) [MINUS]: Do not replace 7949 all (op (minus A B) 0) with (op A B). 7950 7951Wed Apr 5 18:03:31 2000 Toshiyasu Morita (toshi.morita@sega.com) 7952 J"orn Rennecke <amylaar@cygnus.co.uk> 7953 7954 * sh.md (block_lump_real_i4): Add missing clobber of T_REG 7955 (block_lump_real): Likewise. 7956 79572000-04-05 Chris Demetriou <cgd@netbsd.org> 7958 7959 * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the 7960 remaining nonzero debugging masks. 7961 7962Wed Apr 5 09:44:07 2000 Jeffrey A Law (law@cygnus.com) 7963 7964 * basic-block.h (verify_flow_info): Declare. 7965 (flow_loop_outside_edge_p): Declare. 7966 * flow.c (verify_flow_info): Remove declaration. 7967 (clear_log_links, flow_loop_outside_edge_p): Likewise. 7968 7969Wed Apr 5 09:34:26 2000 Philippe De Muyter <phdm@macqel.be> 7970 7971 * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0', 7972 not C++ comments. 7973 79742000-04-05 Jakub Jelinek <jakub@redhat.com> 7975 7976 * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1, 7977 snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1, 7978 seqdi_zero_trunc+1): Allow splits only if registers are 7979 different. 7980 79812000-04-04 Ulrich Drepper <drepper@cygnus.com> 7982 7983 * acconfig.h: Add HAVE_GAS_HIDDEN. 7984 * config.in: Regenerated. 7985 * configure.in: Add test for .hidden pseudo-op in gas. 7986 * configure: Regenerated. 7987 * crtstuff.c: Include auto-host.h. 7988 Emit additional .hidden pseudo-op for __dso_handle if the 7989 assembler knows about it. 7990 79912000-04-04 Philippe De Muyter <phdm@macqel.be> 7992 7993 * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0, 7994 before freeing argnames. 7995 * cpplib.c (do_ifndef): Cast return value of xstrdup. 7996 79972000-04-05 Michael Meissner <meissner@redhat.com> 7998 7999 * config/rs6000/rs6000.c (print_operand): Patch from Jonathan 8000 Walton <jonboy@gordian.com> to make memory references with update 8001 work wtih -mregnames. 8002 80032000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8004 8005 * regrename.c (regno_first_use_in): Wrap prototype in PARAMS. 8006 (regrename_optimize): Rename variables `def_uses' and 8007 `ext_basic_blocks' to avoid conflicts with similarly named 8008 typedefs in traditional C. 8009 8010 * calls.c (initialize_argument_information): Fix typo in previous 8011 change. 8012 80132000-04-04 Richard Henderson <rth@cygnus.com> 8014 8015 * regrename.c (consider_available): Test fixed_regs not 8016 PIC_OFFSET_TABLE_REGNUM. 8017 80182000-04-04 Geoff Keating <geoffk@cygnus.com> 8019 8020 * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin, 8021 crtend. 8022 (CRTSTUFF_T_CFLAGS_S): Delete definition. 8023 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin. 8024 (ENDFILE_LINUX_SPEC): Always use crtend. 8025 * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts. 8026 (powerpc-*-linux-gnu): Likewise. 8027 * configure: Regenerate. 8028 8029 * config/rs6000/eabi.h: Don't include sysv4.h. 8030 (MULTILIB_DEFAULTS): Don't define. 8031 * config/rs6000/eabiaix.h: Don't include eabi.h. 8032 * config/rs6000/eabile.h: Delete. 8033 * config/rs6000/eabilesim.h: Delete. 8034 * config/rs6000/eabisim.h: Don't include eabi.h. 8035 * config/rs6000/linux.h: Don't include sysv4.h. 8036 (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine. 8037 (MULTILIB_DEFAULTS): Don't redefine. 8038 * config/rs6000/rtems.h: Don't include eabi.h. 8039 * config/rs6000/sol2.h: Don't include sysv4le.h. 8040 * config/rs6000/sysv4le.h: Don't include sysv4.h. 8041 * config/rs6000/t-ppc: Delete. 8042 * config/rs6000/t-ppcgas: Correct comment. 8043 * config/rs6000/t-ppcos: Correct comment. Don't build 8044 multilibs for -fPIC, rather use -fPIC -mstrict-align 8045 as default. 8046 * config/rs6000/t-ppc: Delete. 8047 * config/rs6000/vxppc.h: Don't include sysv4.h. 8048 * config/rs6000/vxppcle.h: Delete. 8049 * configure.in: Use multiple header files for p2pc ELF targets 8050 powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi, 8051 powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu, 8052 powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv, 8053 powerpc-vxworks, powerpcle-vxworks. Assume GAS functionality is 8054 always available for these platforms. 8055 80562000-04-04 Richard Henderson <rth@cygnus.com> 8057 8058 * calls.c (try_to_integrate): Initialize reg_parm_stack_space. 8059 80602000-04-04 Stan Cox <scox@cygnus.com> 8061 8062 * Makefile.in: Add rules for regrename.o 8063 * regrename.c: New file. 8064 * rtl.h (regrename_optimize): Add prototype. 8065 * toplev.c (rename_registers_dump, flag_rename_registers): New variables 8066 (compile_file, decode_d_option): Add support for -frename-registers. 8067 (rest_of_compilation): Call regrename_optimize. 8068 * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS): 8069 New macros. 8070 80712000-04-04 Martin v. L�wis <loewis@informatik.hu-berlin.de> 8072 8073 * Makefile (gccbug): New target. 8074 (doc): Depend on it. 8075 * gcc.texi (Bugs): Link subnodes. 8076 (gccbug): New node. 8077 * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc. 8078 Document severities, priorities, and classes in bug form. 8079 80802000-04-04 Zack Weinberg <zack@wolery.cumb.org> 8081 8082 * cpplex.c (trigraph_map, speccase): Combine into single 8083 table, chartab. 8084 (NORMAL, NONTRI): New macros. 8085 (_cpp_read_and_prescan): Change to use unified table. Use 8086 is_hspace to test for whitespace. 8087 8088 * dbxout.c (CONTIN): If it doesn't have to do anything, give it a 8089 definition that doesn't provoke the "empty body in an 8090 if-statement" warning. 8091 80922000-04-04 Clinton Popetz <cpopetz@cygnus.com> 8093 8094 * builtins.c (expand_builtin_strlen): Force the source to 8095 be a memory address. 8096 80972000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8098 8099 * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace. 8100 8101Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka <jh@suse.cz> 8102 8103 * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE, 8104 ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants. 8105 (ECF_IS_CONST): Rename to ECF_CONST. 8106 (special_function_p): Make static, change interface. 8107 (flags_from_decl_or_type, try_to_integrate): Break out from ... 8108 (expand_call) ... here; convert number of variables to flags. 8109 (emit_library_call_vlue_1): Likewise. 8110 (setjmp_call_p): New function. 8111 (initialize_argument_information): Accepts flags as argument; 8112 return flags. 8113 (precompute_arguments): Likewise. 8114 * tree.h (special_function_p): Remove. 8115 (setjmp_call_p): Add prototype. 8116 81172000-04-04 Jakub Jelinek <jakub@redhat.com> 8118 8119 * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin 8120 so that addresses are offsetable by up to 16 bytes. 8121 (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for 8122 non-optimizing TARGET_ARCH32 in DF or DI modes because it is not 8123 offsetable. 8124 8125 * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern. 8126 (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64. 8127 (movsf): Don't force any constant to memory if target is integer 8128 hard register. 8129 Move fp_zero_operand check below the const0_rtx check. 8130 (movtf): Likewise. Also allow fp_zero_operand for stores into 8131 memory. 8132 (movdf): Likewise. Also allow fp_zero_operand for stores into 8133 memory and into integer hard registers. 8134 (clear_df, clear_dfp, movdf_const_intreg_sp32, 8135 movdf_const_intreg_sp64): Remove. 8136 (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and 8137 conditions. 8138 (movdf_no_e_insn_v9_sp32): New pattern. 8139 (movdf_insn_v9only): Remove. 8140 (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns. 8141 (movdf_insn_sp64): Remove. 8142 (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns. 8143 (movdf_no_e_insn_sp64): Allow storing 0.0 into memory. 8144 (following splits): Rewrite conditions. Add two new splits 8145 for storing 0.0 into memory and registers. 8146 (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove. 8147 (movtf_insn_sp32): Redo constraints and conditions. 8148 (movtf_insn_vis_sp32): New pattern. 8149 (movtf_no_e_insn_sp32): Redo constraints and conditions. 8150 (movtf_insn_hq_sp64): Likewise. 8151 (movtf_insn_hq_vis_sp64): New pattern. 8152 (movtf_insn_sp64): Redo constraints and conditions. 8153 (movtf_insn_vis_sp64): New pattern. 8154 (movtf_no_e_insn_sp64): Redo constraints and conditions. 8155 (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers 8156 or memory. 8157 * config/sparc/sparc.c (sparc_override_options): Assume v9 if either 8158 -mvis or -m64 to take down the number of various reload patterns. 8159 8160Tue Apr 4 00:41:53 2000 Jeffrey A Law (law@cygnus.com) 8161 8162 * pa/pa-64.h: New file. 8163 * pa/pa64-regs.h: New file. 8164 * pa/pa64-start.h: New file. 8165 * pa/t-pa64: New file. 8166 * pa/xm-pa64hpux.h: New file. 8167 81682000-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8169 8170 * sparc.c (output_restore_regs): Prototype. 8171 (sparc_emit_float_lib_cmp): Constification. 8172 8173 * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise. 8174 8175 * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify): 8176 Prototype. 8177 8178 * simplify-rtx.c (entry_and_rtx_equal_p): Constification. 8179 (get_value_hash, hash_rtx): Likewise. 8180 8181 * ssa.c (compute_conservative_reg_partition): Prototype. 8182 8183 * tree.c (mark_hash_entry): Prototype. 8184 81852000-04-03 Zack Weinberg <zack@wolery.cumb.org> 8186 8187 * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING. 8188 * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0. 8189 * i386.md (call_value, call_value_pop): Remove unused variable 'addr'. 8190 8191 * gcc.c (C specs): Pass -fno-show-column to the preprocessor. 8192 * objc/lang-specs.h: Likewise. 8193 81942000-04-03 Neil Booth <NeilB@earthling.net> 8195 8196 * cppexp.c: wrap long lines. New macros CPP_ICE, SYNTAX_ERROR 8197 and SYNTAX_ERROR2. Replace `' in messages with ''. 8198 (op_to_str): Make re-entrant. 8199 (_cpp_parse_expr): Implement new error macros. Use | rather 8200 than || to logically or 2 boolean integers. Simply expression 8201 checking we have a left operand iff needed. 8202 82032000-04-03 Nick Clifton <nickc@cygnus.com> 8204 8205 * Makefile.in (diagnostic.o): Depend upon diagnostic.c 8206 82072000-04-03 Philip Blundell <philb@gnu.org> 8208 8209 * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos. 8210 82112000-04-03 Felix Lee <flee@cygnus.com> 8212 8213 * fixinc/server.c (find_shell): New function. Avoid $SHELL. 8214 (run_shell): Use it. 8215 82162000-04-03 Jonathan Larmour <jlarmour@redhat.co.uk> 8217 8218 * Makefile.in (stmp-int-hdrs): Make include subdir here... 8219 (stmp-fixproto): ...rather than here. 8220 8221Mon Apr 3 00:50:06 2000 Jason Eckhardt <jle@cygnus.com> 8222 8223 * pa.c (print_operand): Compute 'base' only inside the code paths 8224 that use it. 8225 82262000-04-03 Geoffrey Keating <geoffk@cygnus.com> 8227 8228 * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than 8229 CEIL_DIV_EXPR. 8230 82312000-04-03 Philipp Thomas <pthomas@suse.de> 8232 8233 * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo. 8234 8235Mon Apr 3 00:02:59 2000 Brad Lucier <lucier@math.purdue.edu> 8236 8237 * Makefile.in (alias.o): Depend on $(TREE_H). 8238 82392000-04-02 Zack Weinberg <zack@wolery.cumb.org> 8240 8241 * cppinit.c (cpp_start_read): Turn off -Wtraditional if 8242 processing C++. 8243 * cpplib.c (_cpp_handle_directive): Improve warnings for 8244 traditional C and indented directives. 8245 8246 * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex, 8247 fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap, 8248 fixinc/inclhack.def: Indent the # of #include_next one space. 8249 * cp/rtti.c: Un-indent #if and #endif. 8250 8251 * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a 8252 syntax error, but an error has already been printed. 8253 * cpplex.c (_cpp_parse_assertion): Give a more specific error 8254 message when called with nothing remaining on the line. 8255 (_cpp_lex_token): If _cpp_parse_assertion fails, return an 8256 OTHER token, not an ASSERTION. 8257 * cpplib.c (do_assert): When we create a 'base' node, clear 8258 its aschain pointer. 8259 82602000-04-02 Neil Booth <NeilB@earthling.net> 8261 8262 * cppexp.c: New typedef op_t. struct operation and struct 8263 token updated to use it. 8264 (op_to_str): New function. 8265 (_cpp_parse_expr): Error messages modified to use op_to_str. 8266 82672000-04-02 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 8268 8269 * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node 8270 before checking MUST_PASS_IN_STACK. 8271 82722000-04-02 Neil Booth <NeilB@earthling.net> 8273 8274 * cppexp.c: New FINISHED dummy token. Combine operator initial 8275 flags and initial priority into a single constant. New 8276 EQUALITY macro. New operator flag SHORT_CIRCUIT. 8277 (_parse_cpp_expr): Implement new constants. Take left operand 8278 checks out of reduction loop. Handle SHORT_CIRCUIT. End of 8279 parse indicated by reducing FINISHED token. Remove new lines 8280 from cpp_error messages. 8281 82822000-04-01 Mark Mitchell <mark@codesourcery.com> 8283 8284 * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the 8285 permanent obstack. 8286 82872000-04-01 Zack Weinberg <zack@wolery.cumb.org> 8288 8289 * cpplib.c: Include symcat.h. Add 'origin' field to struct 8290 directive. Add origin values to DIRECTIVE_TABLE. Generate 8291 the strings and function names on the fly. Take the #sccs 8292 entry out of the table if SCCS_DIRECTIVE is not defined. 8293 (_cpp_handle_directive): Decide if the # was at the beginning 8294 of the line here. Issue -pedantic warnings for extended 8295 directives here. Warn about K+R directives with the # 8296 indented, and C89/extended directives with the # not indented, 8297 here. 8298 (do_import, do_include_next, do_warning, do_ident, do_sccs, 8299 do_assert, do_unassert): Don't issue pedantic warning here. 8300 8301 * cpphash.h: Add CPP_WTRADITIONAL macro. 8302 * cpplib.h (struct cpp_options): Rename warn_stringify to 8303 warn_traditional; update comments. 8304 * cppinit.c (handle_option): Set warn_traditional not 8305 warn_stringify. 8306 * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with 8307 CPP_WTRADITIONAL (pfile). 8308 * cpplex.c (_cpp_lex_token): Don't decide if directives should 8309 be ignored in -traditional mode here. 8310 8311 * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them 8312 to initialize speccase[] and trigraph_map[]. Delete all 8313 references to pfile->input_speccase. Always treat '?' as a 8314 special character. Remove table-initialization code from 8315 _cpp_init_input_buffer. 8316 8317 * cpplib.h (struct cpp_reader): Remove input_speccase field. 8318 * cppinit.c (cpp_cleanup): Don't free input_speccase. 8319 83202000-04-01 Richard Henderson <rth@cygnus.com> 8321 8322 * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once. 8323 (mostlyclean): Likewise. 8324 8325 * toplev.c (rtl_dump, jump_opt_dump, etc): Remove. 8326 (struct dump_file_info, enum dump_file_index, dump_file): New. 8327 (open_dump_file): Take a dump_file_index not a suffix, and a decl 8328 not a string. Clean out file if we haven't yet done so. Do nothing 8329 if the dump isn't enabled. 8330 (close_dump_file): Do nothing if the dump isn't open. Dump 8331 graph data if requested. 8332 (dump_rtl, clean_dump_file): Remove. 8333 (compile_file): Don't clean the dump files. Only finalize .bp dump 8334 if flag_test_coverage or flag_branch_probabilities. Only finalize 8335 .combine dump if optimizing. Iterate over dump_file to finalize the 8336 graph dumps. 8337 (rest_of_compilation): Update for open_dump_file/close_dump_file. 8338 Convert all uses of dump_rtl. 8339 (decode_d_option): Iterate over dump_file to implement 'a' and to 8340 locate pass-specific dumps. 8341 83422000-04-01 Neil Booth <NeilB@earthling.net> 8343 8344 * cppexp.c: Redefine priority constants. 8345 (_cpp_parse_expr): Replace left and right priority scheme with 8346 single priority logic. Move LOGICAL to same place as COMPARE. 8347 Remove bogus check for multiple unary +/- operators. 8348 83492000-04-01 Neil Booth <NeilB@earthling.net> 8350 8351 * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed 8352 within the switch statement. Binary operations break out of 8353 the switch naturally. '(' tokens handled by forcing 8354 immediate shift. ')' handled by forcing immediate reduce to 8355 the previous '('. New error messages. 8356 83572000-03-31 Geoff Keating <geoffk@cygnus.com> 8358 8359 * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low 8360 part', it's already in use. Use %K instead. Add a return at the 8361 end of what is now %K. 8362 * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. 8363 8364Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka <jh@suse.cz> 8365 8366 * builtins.c (expand_builtin_apply): Pass proper parameters to 8367 allocate_dynamic_stack_space. 8368 * calls.c (emit_call_1): Do not adjust stack pointer for SIB, 8369 update stack_pointer_delta; do not update arg_size_so_far. 8370 (compute_argument_block_size): Use stack_delta instead of 8371 stack_pointer_pending and arg_size_so_far. 8372 (expand_call): Add sanity checking for stack_pointer_delta; 8373 save and restore stack_pointer_delta for SIB, use 8374 stack_pointer_delta for alignment; do not update arg_space_so_far. 8375 (emit_library_call_value): Use stack_pointer_delta for alignment. 8376 (store_one_arg): Do not update arg_space_so_far. 8377 * explow.c (adjust_stack, anti_adjust_stack): Update 8378 stack_pointer_delta. 8379 (allocate_dynamic_stack_space): Add sanity checking for 8380 stack_pointer_delta. 8381 * expr.c (init_expr, clear_pending_stack_adjust): Clear 8382 stack_pointer_delta. 8383 (emit_push_insn): Update stack_pointer_delta. 8384 * function.h (struct expr_status): Add x_stack_pointer_delta; 8385 remove x_arg_space_so_far. 8386 (arg_space_so_far): Remove. 8387 (stack_pointer_delta): New macro. 8388 83892000-03-31 Zack Weinberg <zack@wolery.cumb.org> 8390 8391 * cpplib.h: Merge struct cpp_options into struct cpp_reader. 8392 Reorder struct cpp_options and struct cpp_reader for better 8393 packing. Replace CPP_OPTIONS macro with CPP_OPTION which 8394 takes two args. Change all 'char' flags to 'unsigned char'. 8395 Move show_column flag into struct cpp_options. Don't 8396 prototype cpp_options_init. 8397 * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, 8398 cppinit.c, cpplex.c, cpplib.c: 8399 Replace CPP_OPTIONS (pfile)->whatever with 8400 CPP_OPTION (pfile, whatever), and likewise for 8401 opts = CPP_OPTIONS (pfile); ... opts->whatever; 8402 8403 * cppinit.c (merge_include_chains): Take a cpp_reader *. 8404 Extract CPP_OPTION (pfile, pending) and work with that 8405 directly. 8406 (cpp_options_init): Delete. 8407 (cpp_reader_init): Turn on on-by-default options here. 8408 Allocate the pending structure here. 8409 (cl_options, enum opt_code): Define these from the same table, 8410 kept in a large macro. Add -fshow-column and -fno-show-column 8411 options. 8412 8413 * cpperror.c (v_message): If show_column is off, don't print 8414 the column number. 8415 8416 * cppmain.c: Update for new interface. 8417 * fix-header.c: Likewise. 8418 84192000-03-30 Geoff Keating <geoffk@cygnus.com> 8420 8421 * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new 8422 definition. 8423 * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that 8424 are passed to any invocation of AR_FOR_TARGET. 8425 (AR_CREATE_FOR_TARGET): New macro. 8426 (AR_EXTRACT_FOR_TARGET): New macro. 8427 (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET, 8428 AR_EXTRACT_FOR_TARGET. 8429 (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET 8430 in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and 8431 `$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and 8432 AR_EXTRACT_FOR_TARGET to sub-makes. 8433 84342000-03-31 Neil Booth <NeilB@earthling.net> 8435 8436 * cppexp.c: Delete SKIP_OPERAND. Correct priority 8437 PAREN_INNER_PRIO. 8438 (_cpp_parse_expr): Check for multiple unary +/- operators. 8439 Correct priorities of ':' and '?'. Treat ')' as having a 8440 value. Ensure conditional expression is not void. 8441 84422000-03-31 Mark Mitchell <mark@codesourcery.com> 8443 8444 * alias.c (canon_rtx): Make it global. 8445 (rtx_equal_for_memref_p): CONST_INT equality is now pointer 8446 equality. 8447 * cse.c (struct table_elt): Add canon_exp. 8448 (insert): Clear it. 8449 (invalidate): Canonicalize expressions only once. 8450 * rtl.h (canon_rtx): Declare. 8451 84522000-03-30 Mark Mitchell <mark@codesourcery.com> 8453 8454 * Makefile.in (emit-rtl.o): Depend on HASHTAB_H. 8455 * alias.c (reg_known_value): Add comments. 8456 (init_alias_analysis): Likewise. 8457 * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same 8458 address. 8459 (cse_basic_block): Fix typo in comment. 8460 * emit-rtl.c: Include hashtab.h. 8461 (const_int_htab): New variable. 8462 (const_int_htab_hash): New function. 8463 (const_int_htab_eq): Likewise. 8464 (rtx_htab_mark_1): Likewise. 8465 (rtx_htab_mark): Likewise. 8466 (gen_rtx_CONST_INT): Cache all CONST_INTs. 8467 (unshare_all_rtx): Fix formatting. 8468 (init_emit_once): Initialize const_int_htab. 8469 * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same 8470 address. 8471 * rtl.texi: Document the fact that all CONST_INTs with the same 8472 value are shared. 8473 84742000-03-30 Richard Henderson <rth@cygnus.com> 8475 8476 * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits. 8477 84782000-03-30 Zack Weinberg <zack@wolery.cumb.org> 8479 8480 * configure.in: Comment out --enable-c-cpplib stanza. 8481 * configure: Regenerate. 8482 8483Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8484 8485 * expr.c (store_constructor): Properly compute displacement and 8486 alignment when offset is variable. 8487 8488 * expmed.c (store_bit_field, store_fixed_bit_field): Fix more 8489 cases of alignment in bytes. 8490 8491Thu Mar 30 13:30:40 2000 Jeffrey A Law (law@cygnus.com) 8492 8493 * c-parse.in (cast_expr): Move change from March 21 into c-parse.in 8494 since it is used to generate c-parse.y. 8495 * objc-parse.c, objc-parse.y: Regenerated. 8496 8497 * function.c (expand_function_end): Pass alignment argument to 8498 emit_block_move in bits, not bytes. 8499 8500Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8501 8502 * expr.c (move_by_pieces_ninsns): Fix one more missing align 8503 correction. 8504 8505 * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits. 8506 8507 * calls.c (expand_call): Pass bit alignment to mark_reg_pointer. 8508 * explow.c (memory_address, allocate_dynamic_stack_space): Likewise. 8509 * function.c (assign_parms): Likewise. 8510 * integrate.c (expand_inline_function): Likewise. 8511 * stmt.c (expand_decl): Likewise. 8512 (copy_rtx_and_substitute): Likewise. 8513 * expr.c (expand_expr, expand_expr_unaligned): Likewise. 8514 (clear_by_pieces): Fix error in last change. 8515 * emit-rtl.c (init_emit): Set known registers alignment in bits. 8516 * function.h (regno_pointer_align): Now unsigned. 8517 * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN 8518 is in bits. 8519 * config/i386/i386.c (aligned_operand): Likewise. 8520 * config/sparc/sparc.c (mem_min_alignment): Likewise. 8521 * config/alpha/alpha.c (aligned_memory_operand): Likewise. 8522 (unaligned_memory_operand): Likewise. 8523 (alpha_expand_block_move, alpha_expand_block_clear): Likewise. 8524 Also make alignments and sizes unsigned and some whitespace cleanup. 8525 (alpha_va_start): Do nothing if VALIST's type is error_mark_node. 8526 8527 * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst. 8528 (expand_builtin_apply): Pass alignment to emit_block_move in bits. 8529 (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. 8530 (expand_builtin_memset): Likewise, but to clear_storage. 8531 * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces. 8532 (restore_fixed_argument_area): Likewise. 8533 (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field. 8534 (load_register_parameters): Likewise, to emit_group_load. 8535 (expand_call): Likewise, to emit_group_store and emit_block_move. 8536 (emit_library_call_value_1): Likewise, to emit_block_move. 8537 (store_one_arg): Likewise, and to emit_push_insn. 8538 * expmed.c (extract_bit_field): Alignment is in bits, not bytes. 8539 (extract_fixed_bit_field, extract_split_bit_field): Likewise. 8540 * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise. 8541 (emit_block_move, emit_group_load, emit_group_store): Likewise. 8542 (clear_by_pieces, clear_storage, emit_push_insn): Likewise. 8543 (expand_assigment, store_expr, store_constructor_field): Likewise. 8544 (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise. 8545 (store_constructor, store_field, get_inner_reference): Likewise. 8546 Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT. 8547 (expand_expr, case COMPONENT_REF): Likewise. 8548 (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes 8549 and positions; reindent code. 8550 * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned. 8551 * function.c (purge_addressof_1): Pass bit align to store_bit_field. 8552 (assign_parms): Likewise to emit_group_store. 8553 * optabs.c (prepare_cmp_insn): Alignment is in bits. 8554 (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned. 8555 * stmt.c (expand_value_return): Pass align in bits to emit_group_load. 8556 (expand_return): Likewise to {extract,store}_bit_field. 8557 * stor-layout.c (get_mode_alignment): Minor cleanup. 8558 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits. 8559 * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise. 8560 85612000-03-29 Nick Clifton <nickc@cygnus.com> 8562 8563 * config/arm/arm.h: Undo effects of previous delta: 8564 (ASM_SPEC): Do not define. 8565 (SUBTARGET_EXTRA_ASM_SPEC): Do not define. 8566 8567 * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix 8568 typo. 8569 85702000-03-29 Zack Weinberg <zack@wolery.cumb.org> 8571 8572 * cppinit.c (cpp_start_read): Call initialize_dependency_output 8573 only after reading in the primary source file. 8574 85752000-03-29 Geoff Keating <geoffk@cygnus.com> 8576 8577 * c-common.c (c_common_nodes_and_builtins): The first parameter to 8578 __builtin_va_start and __builtin_va_copy is now either a 'va_list' 8579 or a reference to a va_list. 8580 * builtins.c (stabilize_va_list): Simplify now we don't have to 8581 work around C array address decay. 8582 * c-typeck.c (convert_for_assignment): Handle assignment to 8583 a reference parameter by taking the address of the RHS. 8584 * ginclude/stdarg.h (va_start): Don't take address of first parameter. 8585 (va_copy): Likewise. 8586 (__va_copy): Likewise. 8587 * ginclude/varargs.h (va_start): Likewise. 8588 (__va_copy): Likewise. 8589 8590Wed Mar 29 15:44:53 2000 Jeffrey A Law (law@cygnus.com) 8591 8592 * i386/djgpp.h: Remove extraneous "+". 8593 8594 * stmt.c (stmt_loop_nest_empty): Fix thinko in last change. 8595 8596 * calls.c (expand_call): Fix typo in last change. 8597 85982000-03-29 Jason Merrill <jason@casey.cygnus.com> 8599 8600 * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't 8601 been expanded. 8602 8603Wed Mar 29 15:39:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8604 8605 * stor-layout.c (bit_from_pos, byte_from_pos): New functions. 8606 (pos_from_byte, pos_from_bit, normalize_offset): Likewise. 8607 (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them. 8608 * tree.c (bit_position, byte_position): Likewise. 8609 * tree.h: Declare new functions. 8610 86112000-03-29 Nick Clifton <nickc@cygnus.com> 8612 8613 * config/arm/arm.c: Minor formatting changes/ 8614 * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not 8615 already defined. 8616 (ASM_SPEC): Define if not already defined. 8617 86182000-03-29 Zack Weinberg <zack@wolery.cumb.org> 8619 8620 * cppfiles.c (cpp_read_file): Don't pass zero-length string to 8621 _cpp_calc_hash. 8622 86232000-03-29 Jakub Jelinek <jakub@redhat.com> 8624 8625 * dwarf2out.c (gen_enumeration_type_die): If enum has a negative 8626 value, don't output it as unsigned. 8627 8628Wed Mar 29 10:53:49 2000 Jeffrey A Law (law@cygnus.com) 8629 8630 * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL. 8631 86322000-03-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8633 8634 * c-common.c (c_common_nodes_and_builtins): Don't special case 8635 cplus_mode when declaring builtin bzero/bcmp, always avoid 8636 prototype arguments. 8637 86382000-03-29 Bruce Korb <bkorb@gnu.org> 8639 8640 * fixinc/mkfixinc.sh: Initially set the variable "fixincludes" 8641 to a non-file 8642 8643Wed Mar 29 15:08:01 MET DST 2000 Jan Hubicka <jh@suse.cz> 8644 8645 Convert ACCUMULATE_OUTGOING_ARGS to an expression. 8646 * calls.c (PUSH_ARGS_REVERSED) Change to expression. 8647 (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value. 8648 (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS. 8649 (save_fixed_argument_area, restore_fixed_argument_area): 8650 conditionize by #ifdef REG_PARM_STACK_SPACE only. 8651 (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS 8652 to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS. 8653 (precompute_register_parameters): Avoid #ifdefs on 8654 ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED. 8655 (stire_one_args): Likewise. 8656 (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS. 8657 (emit_library_call_value_1): Likewise. 8658 (compute_argument_block_size): Align to STACK_BOUNDARY only for 8659 ACCUMULATE_OUTGOING_ARGS. 8660 * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default 8661 value. 8662 (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH. 8663 (use_crosses_set_p): Likewise. 8664 * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to 8665 #define ACCUMULATE_OUTGOING_ARGS 1. 8666 * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS 8667 frames. 8668 * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New 8669 constants. 8670 (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros. 8671 (TARGET_SWITCHES): Add push-args, no-push-args, 8672 accumulate-outgoing-args and no-accumulate-outgoing-args. 8673 (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro. 8674 * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default. 8675 (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS 8676 and PUSH_ROUNDING. 8677 (emit_push_insn): Likewise. 8678 * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default. 8679 (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS. 8680 * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default. 8681 (STACK_DYNAMIC_OFFSET): Define correctly for both 8682 ACCUMULATE_OUTGOING_ARGS and normal mode. 8683 * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document. 8684 * tm.texi (PUSH_ARGS): Document. 8685 (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation. 8686 8687Wed Mar 29 11:51:13 MET DST 2000 Jan Hubicka <jh@suse.cz> 8688 8689 * flags.h (flag_optimize_sibling_calls): Declare. 8690 * calls.c (expand_call): Fail sibcall when 8691 !flag_optimize_sibling_calls 8692 * invoke.texi (flag_optimize_sibling_calls): Document. 8693 * toplev.c (flag_optimize_sibling_calls): New global variable. 8694 (f_options): Add flag_optimize_sibling_calls. 8695 (rest_of_compilation): Conditionize 8696 optimize_sibling_and_tail_recursive_calls by 8697 flag_optimize_sibling_calls. 8698 (main): Set flag_optimize_sibling_calls for -O2. 8699 * stmt.c (expand_return): Conditionize tail recursion by 8700 flag_optimize_sibling_calls. 8701 87022000-03-29 Richard Henderson <rth@cygnus.com> 8703 8704 * config/i386/att.h (LOCAL_LABEL_PREFIX): Define. 8705 (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it. 8706 87072000-03-29 Nathan Sidwell <nathan@codesourcery.com> 8708 8709 * except.c (add_eh_table_entry): Mark type_info's as referenced. 8710 87112000-03-29 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 8712 8713 * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi 8714 is given. 8715 * config/rs6000/aix43.h (CPP_SPEC): Likewise. 8716 * config/rs6000/rs6000.h (CPP_SPEC): Moved to... 8717 * config/rs6000/aix.h: then modified likewise. 8718 87192000-03-28 Richard Henderson <rth@cygnus.com> 8720 8721 * rtl.h: Redistribute enum reg_note documentation. 8722 Kill trailing whitespace. 8723 * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks. 8724 Kill trailing whitespace. 8725 87262000-03-28 Zack Weinberg <zack@wolery.cumb.org> 8727 8728 * cppfiles.c (hash_IHASH): Just return i->hash. 8729 (cpp_included): Set dummy.hash using _cpp_calc_hash. Use 8730 htab_find_with_hash. 8731 (cpp_read_file): Likewise. 8732 (find_include_file): Likewise. Properly initialize 8733 ih->nshort. Share ih->name and ih->nshort if possible. 8734 * cpphash.c (_cpp_calc_hash): New function. 8735 (hash_HASHNODE): Just return h->hash. 8736 (_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use 8737 htab_find_with_hash. 8738 * cpphash.h: Prototype _cpp_calc_hash. 8739 * cppinit.c (initialize_builtins): Provide a valid hash 8740 to _cpp_make_hashnode, using _cpp_calc_hash. 8741 8742 * cpphash.c (collect_expansion): # is not a special character 8743 in object-like macros. In -traditional mode, /**/ is not 8744 token paste at the beginning or end of the line. 8745 * cpplib.c (do_include, do_import, do_include_next): If 8746 parse_include fails, return immediately. 8747 87482000-03-28 Jason Merrill <jason@casey.cygnus.com> 8749 8750 * config/arm/arm.md (return peepholes): Update to reflect the new 8751 call insn patterns. 8752 * config/arm/arm.c (arm_volatile_func): Also check 8753 current_function_nothrow. 8754 (output_return_instruction, output_func_prologue): Use it. 8755 (arm_output_epilogue, arm_expand_prologue): Likewise. 8756 87572000-03-27 Tom Tromey <tromey@cygnus.com> 8758 8759 * gcc.c (handle_braces): In {x*...} case, break out of loop if 8760 switch is found. 8761 8762Tue Mar 28 11:55:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8763 8764 * expr.c (store_constructor): SIZE now signed. 8765 For EXPR_SIZE, don't evaluate size; just needed if constant. 8766 * fold-const.c (fold): Fix a number of cases when folded tree is 8767 wrong type. 8768 * function.c (flush_addressof): Reenable. 8769 * tree.h (flush_addressof): Likewise. 8770 * toplev.c (independent_decode_option): Look at strings_processed. 8771 * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned. 8772 8773Tue Mar 28 08:29:46 2000 Jan Hubicka <jh@suse.cz> 8774 8775 * sibcall.c (identify_call_return_value): Find last call in the chain; 8776 Allow stack adjustment after function call. 8777 8778 * regmove.c (struct csa_memlist): Make mem field rtx *. 8779 (record_one_stack_ref): Accept rtx * instead of rtx as parameter. 8780 (try_apply_stack_adjustment): Replace whole MEM rtx. 8781 (combine_stack_adjustments_for_block): Update calls 8782 to record_one_stack_ref. 8783 87842000-03-28 Neil Booth <NeilB@earthling.net> 8785 8786 * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with 8787 '\\' rather than a null character, so nulls are not special. Fix 8788 "\\\n" handling in end-of-buffer conditions. Use trigraph map to 8789 speed trigraph conversion. 8790 (_cpp_init_input_buffer): Initialize trigraph map. 8791 87922000-03-27 Alan Modra <alan@linuxcare.com.au> 8793 8794 * config/i386/i386.c (output_387_binary_op): Correct intel 8795 mode assembly output, and add spaces after commas in AT&T 8796 output. Correct Unixware assembler comment. Document input 8797 constraints. Comment fp operations. Reduce profligate buffer 8798 size. Remove extraneous abort. Localize temp var. 8799 (SYSV386_COMPAT): Define. Add !SYSV386_COMPAT code. 8800 (output_fix_trunc): Add spaces after commas in assembly output. 8801 88022000-03-27 Richard Henderson <rth@cygnus.com> 8803 8804 * i386-protos.h (ix86_match_ccmode): Declare. 8805 * i386.c (ix86_match_ccmode): New. 8806 (ix86_expand_fp_compare): Update for pattern renames. 8807 (ix86_expand_strlensi_unroll_1): Likewise. 8808 * i386.h (EXTRA_CC_MODES): Add CCZ. 8809 (SELECT_CC_MODE): Use it for EQ/NE zero. 8810 * i386.md (cmpsi_ccz_1): New. 8811 (cmpqi_ccz_1): New. 8812 (*testsi_ccz_1): New. 8813 (testqi_ccz_1): New. 8814 (cmpsi_ccno_1): Rename from cmpsi_0. 8815 (testsi_ccno_1): Rename from testsi_1. 8816 (testqi_ccno_1): Rename from testqi_1. 8817 (*testqi_ext_ccz_0): Rename from testqi_ext_0. 8818 (testqi_ext_ccno_0): Rename from *testqi_ext_1. 8819 (*cmphi_0): Use ix86_match_ccmode. 8820 (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise. 8821 (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise. 8822 (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise. 8823 (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise. 8824 (*iorsi_2, *iorhi_2, *iorqi_2): Likewise. 8825 (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise. 8826 (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise. 8827 (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise. 8828 (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise. 8829 (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise. 8830 (appropriate peepholes): Likewise. 8831 (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name. 8832 (*subsi_3, *subhi_3, *subqi_3): Remove. 8833 (*negdi2_1+1 splitter): Use CCZ for neg patterns. 8834 (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove. 8835 (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ. 8836 (*neghi2_cmpz, *negqi2_cmpz): Similarly. 8837 (x86_shift_adj_1): Use CCZ. 8838 (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise. 8839 88402000-03-27 Stan Cox <scox@cygnus.com> 8841 8842 * resource.h (mark_resource_type): New. 8843 * resource.c (find_dead_or_set_registers, mark_target_live_regs, 8844 find_free_register): Use mark_resource_type. 8845 (mark_set_resources): Change include_delayed_effects 8846 to mark_resource_type. 8847 * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, 8848 redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): 8849 Use mark_resource_type. 8850 88512000-03-27 Richard Henderson <rth@cygnus.com> 8852 8853 * i386.md (call_pop_0, call_value_pop_0): New. 8854 (call_pop_1): Remove constraint from unused arg. Support sibcalls. 8855 (call_value_pop_1): Likewise. 8856 (call_0, call_value_0): New. 8857 (call_1, call_value_1): Remove constraint from unused arg. 8858 88592000-03-27 Nick Clifton <nickc@cygnus.com> 8860 8861 * invoke.texi (Spec Files): Document new spec % command created by 8862 Tom Tromey's recent patch. 8863 88642000-03-27 Jakub Jelinek <jakub@redhat.com> 8865 8866 * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD 8867 if not defined. 8868 8869Mon Mar 27 06:04:22 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8870 8871 * expr.c (expand_assignment): Fix typo in last change. 8872 8873 * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD. 8874 8875Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8876 8877 * c-convert.c (convert): Return if output or input type is ERROR_MARK. 8878 * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI 8879 and DECL_INLINE if FUNCTION_DECL. 8880 (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE. 8881 (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK. 8882 Use DECL_WEAK, not DECL_RESULT, to flag for already seen. 8883 (combine_parm_decls): Likewise. 8884 * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD. 8885 * print-tree.c (print_node): Likewise. 8886 Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and 8887 DECL_TRANSPARENT_UNION on proper decl types. 8888 Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS. 8889 * stor-layout.c (layout_decl): Only check DECL_PACKED and 8890 DECL_BIT_FIELD of FIELD_DECL. 8891 * tree.h (DECL_RESULT_FLD): New macro. 8892 8893 * expr.c (expand_assignment): Add code to handle variable-sized 8894 BLKmode case. 8895 88962000-03-26 Richard Henderson <rth@cygnus.com> 8897 8898 * calls.c (expand_call): Pass parms not original exp to 8899 optimize_tail_recursion. Mind return value instead of looking 8900 for a barrier. 8901 * stmt.c (optimize_tail_recursion): Take parameter list, not entire 8902 call_expr. Move checks for call_expr and current_function_decl ... 8903 (expand_return): ... here. 8904 89052000-03-26 Tom Tromey <tromey@cygnus.com> 8906 8907 * gcc.c (handle_braces): Recognize `%{<S}' construct. 8908 (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New 8909 defines. 8910 (process_command): Use them. 8911 (check_live_switch): Likewise. 8912 (give_switch): Skip ignored switches. 8913 89142000-03-26 Jan Hubicka <jh@suse.cz> 8915 8916 * jump.c (jump_optimize_1): Fix typo in elide optimizations 8917 for minimal jump pass test. 8918 89192000-03-26 Mark Mitchell <mark@codesourcery.com> 8920 8921 * integrate.c (function_cannot_inline_p): Do inline functions that 8922 return `void'. 8923 8924Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8925 8926 * stor-layout.c (layout_type, set_sizetype): early_type_list is 8927 now a list of TREE_LIST entries, not types. 8928 * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets. 8929 8930 * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX. 8931 * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and 8932 int_bit_position. 8933 * config/mips/mips.c (function_arg): Likewise; also remove cast 8934 and make variables unsigned or HOST_WIDE_INT and use tree_low_cst. 8935 (mips_function_value): Use int_byte_position and make HOST_WIDE_INT. 8936 * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned. 8937 * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned. 8938 (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise. 8939 (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise. 8940 (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed. 8941 (struct mips_arg): arg_number, arg_words, fp_arg_words, and 8942 num_adjusts now unsigned. 8943 (FUNCTION_ARG_BOUNDARY): Remove unneeded cast. 8944 * config/sparc/sparc.c (struct function_arg_record_value_parms): 8945 NREGS now unsigned. 8946 (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT 8947 as is BITPOS variable; use host_integerp and int_bit_position. 8948 (function_arg_record_value_2): Likewise. 8949 (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT. 8950 Variable REGNO now unsigned. 8951 (function_arg_record_value): NREGS now unsigned. 8952 89532000-03-26 Bernd Schmidt <bernds@cygnus.co.uk> 8954 8955 * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs. 8956 8957Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8958 8959 * Rework fields used to describe positions of bitfields and 8960 modify sizes to be unsigned and use HOST_WIDE_INT. 8961 * alias.c (reg_known_value_size): Now unsigned. 8962 * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position. 8963 (really_start_incremental_init): Use bitsize_zero_node. 8964 (push_init_level, pop_init_level, output_init_element): Likewise. 8965 Use bitsize_unit_node and bitsize_one_node. 8966 (output_pending_init_elements, process_init_element): Likewise. 8967 * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned. 8968 (make_extraction): Position and length HOST_WIDE_INT and unsigned 8969 HOST_WIDE_INT, respectively. 8970 (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT. 8971 (num_sign_bit_copies): Returns unsigned. 8972 BITWIDTH now unsigned; rework arithmetic. 8973 Remove recursive call from arg to MAX. 8974 (combine_instructions, init_reg_last_arrays): NREGS now unsigned. 8975 (setup_incoming_promotions, can_combine_p, try_combine, simplify_set): 8976 REGNO now unsigned. 8977 (set_nonzero_bit_and_sign_copies): NUM now unsigned. 8978 (find_split_point, expand_compound_operation, make_extraction): LEN 8979 now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT. 8980 (make_field_assignment): Likewise. 8981 (combine_simplify_rtx): Add cast. 8982 (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic. 8983 (force_to_mode): WIDTH now unsigned; add cast. 8984 (if_then_else_cond): SIZE now unsigned. 8985 (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned. 8986 (extended_count): Now returns unsigned. 8987 (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT. 8988 Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned. 8989 (simplify_comparison): MODE_WIDTH now unsigned. 8990 (update_table_tick): REGNO and ENDREGNO now unsigned; new var R. 8991 (mark_used_regs_combine): Likewise; rework arithmetic. 8992 (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned. 8993 (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise. 8994 (record_promoted_value): REGNO now unsigned. 8995 (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned. 8996 (get_last_value): REGNO now unsigned. 8997 (use_crosses_set_p): REGNO and ENDREGNO now unsigned. 8998 (reg_dead_regno, reg_dead_endregno): Now unsigned. 8999 (remove_death): Arg REGNO now unsigned. 9000 (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned. 9001 (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO 9002 now unsigned. 9003 * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned. 9004 * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned. 9005 (struct cse_reg_info): REGNO now unsigned. 9006 (cached_regno): Now unsigned. 9007 (REGNO_QTY_VALID_P): Add cast. 9008 (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned. 9009 (remove_invalid_regs): Likewise. 9010 (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned 9011 as are variables END and I. 9012 (get_cse_reg_info, insert): Likewise. 9013 (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned. 9014 (canon_hash): Likewise. 9015 (insert_regs, lookup_for_remove): REGNO now unsigned. 9016 (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned. 9017 New variable RN. 9018 * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0. 9019 * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast. 9020 * emit-rtl.c (subreg_realpart_p): Add cast. 9021 (operand_subword): Arg I is now unsigned as is var PARTWORDS. 9022 (operand_subword_force): Arg I is now unsigned. 9023 * except.c (eh_regs): Variable I is now unsigned. 9024 * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT. 9025 * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT; 9026 length is unsigned HOST_WIDE_INT; likewise for internal variables. 9027 (store_split_bit_field, extract_fixed_bit_field): Likewise. 9028 (extract_split_bit_field, store_bit_field, extract_bit_field): 9029 Likewise. 9030 * expr.c (store_constructor_fields, store_constructor, store_field): 9031 Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT. 9032 (expand_assignment, expand_expr, expand_expr_unaligned): Likewise. 9033 (do_jump): Likewise. 9034 (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces): 9035 MAX_SIZE is now unsigned. 9036 (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned. 9037 (emit_group_store): Likewise. 9038 (emit_move_insn): I now unsigned. 9039 (store_constructor): Use host_integerp, tree_low_cst, and 9040 bitsize_unit_node. 9041 (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT. 9042 Rework all calculations to use trees and new fields. 9043 * expr.h (promoted_input_arg): Regno now unsigned. 9044 (store_bit_field, extract_bit_field): Adjust types of pos and size. 9045 (mark_seen_cases): Arg is HOST_WIDE_INT. 9046 * flow.c (verify_wide_reg_1): REGNO now unsigned. 9047 * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT; 9048 precisions and alignments are unsigned. 9049 (optimize_bit_field_compare, fold_truthop): Likewise. 9050 (int_const_binop): Adjust threshold for size_int_type_wide call. 9051 (fold_convert): Likewise. 9052 (size_int_type_wide): Make table larger and fix thinko that only 9053 had half of table used. 9054 (all_ones_mask_p, fold): Precisions are unsigned. 9055 * function.c (put_reg_info_stack): REGNO is unsigned. 9056 (instantiate_decl): Size is HOST_WIDE_INT. 9057 (instantiate_virtual_regs): I is unsigned. 9058 (assign_parms): REGNO, REGNOI, and REGNOR are unsigned. 9059 (promoted_input_arg): REGNO is unsigned. 9060 * function.h (struct function): x_max_parm_reg is now unsigned. 9061 * gcse.c (max_gcse_regno): Now unsigned. 9062 (struct null_pointer_info): min_reg and max_reg now unsigned. 9063 (lookup_set, next_set): REGNO arg now unsigned. 9064 (compute_hash_table): REGNO and I now unsigned. 9065 (handle_avail_expr): regnum_for_replacing now unsigned. 9066 (cprop_insn): REGNO now unsigned. 9067 (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned. 9068 * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case. 9069 * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned. 9070 * hard-reg-set.h (reg_class_size): Now unsigned. 9071 * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO. 9072 * jump.c (mark_modified_reg): I now unsigned; add cast. 9073 (rtx_equal_for_thread_p): Add cast. 9074 * loop.c (max_reg_before_loop): Now unsigned. 9075 (struct_movable): REGNO now unsigned. 9076 (try_copy_prop): REGNO arg unsigned. 9077 (regs_match_p): XN and YN now unsigned. 9078 (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned. 9079 (strength_reduce): Likewise; NREGS also unsigned. 9080 (first_increment_giv, last_increment_giv unsigned): Now unsigned. 9081 * loop.h (struct iv_class): REGNO now unsigned. 9082 (max_reg_before_loop, first_increment_giv, last_increment_giv): 9083 Now unsigned. 9084 * machmode.h (mode_size, mode_unit_size): Now unsigned. 9085 (mode_for_size, smallest_mode_for_size): Pass size as unsigned. 9086 * optabs.c (expand_binop): I and NWORDS now unsigned. 9087 (expand_unop): I now unsigned. 9088 * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do 9089 print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET. 9090 * real.c (significand_size): Now returns unsigned. 9091 * real.h (significand_size): Likewise. 9092 * regclass.c (reg_class_size): Now unsigned. 9093 (choose_hard_reg_mode): Both operands now unsigned. 9094 (record_reg_classes): REGNO and NR now unsigned. 9095 (reg_scan): NREGS now unsigned. 9096 (reg_scan_update): old_max_regno now unsigned. 9097 (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned. 9098 * reload.c (find_valid_class): BEST_SIZE now unsigned. 9099 (find_dummy_reload): REGNO, NWORDS, and I now unsigned. 9100 (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned. 9101 Likewise for variable R. 9102 (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned, 9103 as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R. 9104 (find_equiv_reg): Add casts. 9105 (regno_clobbered_p): Arg REGNO now unsigned. 9106 * reload.h (struct reload): NREGS now unsigned. 9107 (refers_to_regno_for_reload_p): Regno args are unsigned. 9108 (regno_clobbered_p): Likewise. 9109 * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned. 9110 (compute_use_by_pseudos): REGNO now unsigned. 9111 (find_reg): I and J now unsigned, new variable K, and change loop 9112 variables accordingly; THIS_NREGS now unsigned. 9113 (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned. 9114 (spill_hard_reg): REGNO arg now unsigned; add casts. 9115 (forget_old_reloads_1): REGNO, NR, and I now unsigned. 9116 (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned. 9117 (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO, 9118 END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned. 9119 (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned. 9120 (choose_reload_regs): MAX_GROUP_SIZE now unsigned. 9121 (emit_reload_insns): REGNO now unsigned. 9122 (reload_cse_move2add): Add cast. 9123 (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO 9124 and rework loop. 9125 * resource.c (mark_referenced_resources, mark_set_resources): New 9126 variable R; REGNO and LAST_REGNO now unsigned. 9127 (mark_target_live_regs): J and REGNO now unsigned. 9128 * rtl.c (mode_size, mode_unit_size): Now unsigned. 9129 * rtl.h (union rtunion_def): New field rtuint. 9130 (XCUINT): New macro. 9131 (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT. 9132 (operand_subword, operand_subword_force): Word number is unsigned. 9133 (choose_hard_reg_mode): Operands are unsigned. 9134 (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned. 9135 (find_regno_note, find_regno_fusage, replace_regs): Likewise. 9136 (regno_use_in, combine_instructions, remove_death): Likewise. 9137 (reg_scan, reg_scan_update): Likewise. 9138 (extended_count): Return is unsigned. 9139 * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I, 9140 INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO. 9141 (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned. 9142 (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned. 9143 (reg_reg_last_1): FIRS and LAST now unsigned. 9144 (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned. 9145 (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO 9146 now unsigned. 9147 (find_regno_note, regno_use_in): Arg REGNO now unsigned. 9148 (find_regno_fusage): Likewise; also var REGNOTE now unsigned. 9149 (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned. 9150 (replace_regs): Arg NREGS now unsigned. 9151 * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0. 9152 * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned. 9153 (simplify_binary_operation): Likewise. 9154 (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and 9155 THIS_LAST now unsigned. 9156 (cselib_record_set): Add cast. 9157 * ssa.c (ssa_max_reg_num): Now unsigned. 9158 (rename_block): REGNO now unsigned. 9159 * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT; 9160 sizes now unsigned. 9161 (all_cases_count): Just return -1 not -2. 9162 COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT. 9163 Rework tests to use trees whenever possible. 9164 Use host_integerp and tree_low_cst. 9165 (mark_seen_cases): COUNT arg now HOST_WIDE_INT; 9166 Likewise variable NEXT_NODE_OFFSET; XLO now unsigned. 9167 (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT. 9168 * stor-layout.c (mode_for_size): SIZE arg now unsigned. 9169 (smallest_mode_for_size): Likewise. 9170 (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT. 9171 KNOWN_ALIGN is now an alignment, so simplify code. 9172 Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type. 9173 (start_record_layout): Renamed from new_record_layout_info. 9174 Update to new fields. 9175 (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far): 9176 New functions. 9177 (place_union_field): Renamed from layout_union_field. 9178 Update to use new fields in rli. 9179 (place_field): Renamed from layout_field. 9180 Major rewrite to use new fields in rli; pass alignment to layout_decl. 9181 (finalize_record_size): Rework to use new fields in rli and handle 9182 union. 9183 (compute_record_mode): Rework to simplify and to use new DECL fields. 9184 (finalize_type_size): Make rounding more consistent. 9185 (finish_union_layout): Deleted. 9186 (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either. 9187 (layout_type, case RECORD_TYPE): Call new function names. 9188 (initialize_sizetypes): Set TYPE_IS_SIZETYPE. 9189 (set_sizetype): Set TYPE_IS_SIZETYPE earlier. 9190 (get_best_mode): UNIT is now unsigned; remove casts. 9191 * tree.c (bit_position): Compute from new fields. 9192 (byte_position, int_byte_position): New functions. 9193 (print_type_hash_statistics): Cast to remove warning. 9194 (build_range_type): Use host_integerp and tree_low_cst to try to hash. 9195 (build_index_type): Likewise; make subtype of sizetype. 9196 (build_index_2_type): Pass sizetype to build_range_type. 9197 (build_common_tree_nodes): Use size_int and bitsize_int to 9198 initialize nodes; add bitsize_{zero,one,unit}_node. 9199 * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK. 9200 (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise. 9201 (DECL_PACKED, DECL_BIT_FIELD): Likewise. 9202 (DECL_FIELD_BITPOS): Deleted. 9203 (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields. 9204 (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK. 9205 (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise. 9206 (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise. 9207 (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise. 9208 (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise. 9209 (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise. 9210 (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK. 9211 (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK. 9212 (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise. 9213 (DECL_ALIGN): Adjust to new field in union. 9214 (DECL_OFFSET_ALIGN): New field. 9215 (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK. 9216 (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK. 9217 (union tree_decl): Add struct for both aligns. 9218 (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}. 9219 (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added. 9220 (struct record_layout_info): Rework fields to have offset 9221 alignment and byte and bit position. 9222 (start_record_layout, place_field): Renamed from old names. 9223 (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls. 9224 (byte_position, int_byte_position): Likewise. 9225 (get_inner_reference): Change types of position and length. 9226 * unroll.c (unroll_loop): New variable R; use for some loops. 9227 MAX_LOCAL_REGNUM and MAXREGNUM now unsigned. 9228 (calculate_giv_inc): Arg REGNO now unsigned. 9229 (copy_loop_body): REGNO and SRC_REGNO now unsigned. 9230 * varasm.c (assemble_variable): Clean up handling of size using 9231 host_integerp and tree_low_cst. 9232 (decode_addr_const): Use byte, not bit, position. 9233 (output_constructor): bitpos and offsets are HOST_WIDE_INT; 9234 use tree_low_cst and int_bit_position. 9235 * objc/objc-act.c (build_ivar_list_initializer): Use byte_position. 9236 9237Fri Mar 24 20:13:49 2000 Jason Eckhardt <jle@cygnus.com> 9238 9239 * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed. 9240 (reorder_block_def): New members eff_head and eff_end. 9241 (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros. 9242 (verify_insn_chain): New function. 9243 (skip_insns_between_block): Add code to skip deleted insns. 9244 Check for note before using. 9245 (chain_reorder_blocks): Replace calls to skip_insns_between_block 9246 with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END. 9247 Check for note before using. 9248 (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB. 9249 (fixup_reorder_chain): Restructure, clean up, defect removal. 9250 (reorder_basic_blocks): Remove last_insn and references to it. 9251 Moved insn chain verification code into a new function (see above). 9252 Delete defective code that sets last insn. 9253 Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for 9254 all blocks. 9255 92562000-03-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 9257 9258 * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space. 9259 92602000-03-24 Richard Henderson <rth@cygnus.com> 9261 9262 * tree.c (lang_safe_for_unsave): Remove. 9263 (unsafe_for_reeval): Transmute and rename from safe_for_unsave, 9264 allowing for two levels of unsafeness. Remove lang hook. 9265 * tree.h: Update declarations. 9266 * calls.c (expand_call): Rename safe_for_reeval to try_tail_call. 9267 Create temporary VAR_DECLs to protect very unsafe_for_reeval trees. 9268 Always fail sibcalls when there are pending cleanups. 9269 92702000-03-24 Geoff Keating <geoffk@cygnus.com> 9271 9272 * flow.c (propagate_block): When we delete an ADDR_VEC, 9273 also delete the BARRIER following it if there is one. 9274 92752000-03-24 Richard Henderson <rth@cygnus.com> 9276 9277 * builtins.c (expand_builtin_bzero): Convert `length' argument 9278 to sizetype. 9279 92802000-03-24 Jakub Jelinek <jakub@redhat.com> 9281 9282 * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for 9283 comparison if regno's are equal. 9284 * calls.c (initialize_argument_informat): Add ecf_flags argument. 9285 Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. 9286 (expand_call): Update caller. 9287 Avoid making a sibling call if argument size of the callee is larger 9288 than argument size of the caller. 9289 Call hard_function_value with outgoing set if in sibcall pass. 9290 Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. 9291 9292 * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used): 9293 Change LEAF_REGISTERS from an array initializer to actual array 9294 identifier. Move static global variable into the function. 9295 (leaf_function_p): Allow SIBLING_CALL_P calls even outside of 9296 sequences for leaf functions. 9297 * global.c (global_alloc): Likewise. 9298 * tm.texi (LEAF_REGISTERS): Update documentation. 9299 9300 * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly 9301 TARGET_FLAT leaf disabling hack. 9302 (LEAF_REGISTERS): Changed from an array initializer to actual array 9303 identifier to avoid duplication and remove the above hack. 9304 (FUNCTION_OK_FOR_SIBCALL): Define. 9305 * config/sparc/sparc.md (sibcall): New attr type. Use it almost 9306 always like call attribute. 9307 (eligible_for_sibcall_delay): New attribute. 9308 (sibcall): New delay type. 9309 (sibcall, sibcall_value, sibcall_epilogue): New expands. 9310 (sibcall_symbolic_sp32, sibcall_symbolic_sp64, 9311 sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns. 9312 * config/sparc/sparc.c (sparc_leaf_regs): New array. 9313 (eligible_for_sibcall_delay, output_restore_regs, output_sibcall): 9314 New functions. 9315 (output_function_epilogue): Move part of the code into 9316 output_restore_regs. 9317 (ultra_code_from_mask, ultrasparc_sched_reorder): Handle 9318 TYPE_SIBCALL. 9319 * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New 9320 prototypes. 9321 9322 * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change 9323 until infrastructure is finished. 9324 9325Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com) 9326 9327 * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here. 9328 (save_parm_insns): Not here. 9329 93302000-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9331 9332 * builtins.c (expand_builtin_bzero): New function. 9333 (expand_builtin): Handle bzero. 9334 9335 * builtins.def: Add BUILT_IN_BZERO. 9336 9337 * c-common.c (c_common_nodes_and_builtins): Provide builtin 9338 prototype & function for bzero. 9339 93402000-03-23 Michael Meissner <meissner@redhat.com> 9341 9342 * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21 9343 change adding TARGET_FP to the TF floating point insns, except for 9344 trunctfsf2, which generates direct calls to truncdfsf2. 9345 93462000-03-23 Geoff Keating <geoffk@cygnus.com> 9347 9348 * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition, 9349 try to protect against middle-end changes that break binary 9350 compatibility. 9351 (DWARF_FRAME_REGISTERS): New definition, likewise for backend. 9352 93532000-03-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 9354 9355 * config/c4x/c4x.md (load_immed_address): Add DP reg clobber. 9356 9357Thu Mar 23 17:10:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9358 9359 * calls.c (expand_call): If TARGET is passed by reference and 9360 is readonly, write a CLOBBER. 9361 93622000-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9363 9364 * builtins.c (expand_builtin): Handle bcmp. 9365 9366 * builtins.def: Add BUILT_IN_BCMP. 9367 9368 * c-common.c (c_common_nodes_and_builtins): Provide builtin 9369 prototype & function for bcmp. 9370 9371Thu Mar 23 11:34:39 2000 Jim Wilson <wilson@cygnus.com> 9372 9373 * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6... 9374 (rtx_needs_barrier, case UNSPEC_VOLATILE): to here. 9375 * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE. 9376 9377Thu Mar 23 16:04:40 2000 Andrew Haley <aph@cygnus.com> 9378 9379 * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F') 9380 alternative when using -fp64 -gp32. 9381 93822000-03-22 Jason Merrill <jason@casey.cygnus.com> 9383 9384 * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define. 9385 * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define. 9386 * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define. 9387 9388 * frame.h (frame_state): Revert last change. 9389 * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg. 9390 * libgcc2.c (throw_helper): Revert last change. 9391 93922000-03-22 Richard Henderson <rth@cygnus.com> 9393 9394 * stmt.c (expand_asm_operands): Don't promote the temporary. 9395 93962000-03-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 9397 9398 * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros. 9399 * c-common.c (decl_attributes,check_format_info,truthvalue_conversion, 9400 c_get_alias_set): Likewise. 9401 * c-decl.c (duplicate_decls): Likewise. 9402 * c-typeck.c (default_conversion,build_unary_op): Likewise. 9403 * calls.c (initialize_argument_information): Likewise. 9404 * dwarf2out.c (decl_class_context,add_abstract_origin_attribute): 9405 Likewise. 9406 * dwarfout.c (decl_class_context,output_type): Likewise. 9407 * expr.c (get_inner_reference): Likewise. 9408 * fold-const.c (simple_operand_p,fold): Likewise. 9409 * function.c (aggregate_value_p): Likewise. 9410 * stmt.c (expand_asm_operands): Likewise. 9411 * varasm.c (named_section): Likewise. 9412 94132000-03-22 Jason Merrill <jason@casey.cygnus.com> 9414 9415 Implement dwarf2 exception handling for the ARM. 9416 * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define. 9417 (DWARF_FRAME_RETURN_COLUMN): Define. 9418 * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach 9419 REG_FRAME_RELATED_EXPR note. 9420 (emit_sfm): Likewise. 9421 (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything. 9422 * dwarf2out.c (reg_save): Handle saving a register to itself. 9423 (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg. 9424 * except.c (eh_regs): Don't use the static chain reg if it's 9425 callee-saved. 9426 * frame.h (frame_state): Add cfa_saved field. 9427 * frame.c (execute_cfa_insn): Set it. 9428 * libgcc2.c (throw_helper): Don't adjust sp if it's restored in 9429 the epilogue. 9430 * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET. 9431 Now takes a parm. 9432 (instantiate_virtual_regs): Adjust. 9433 * tm.texi: Adjust. 9434 * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define. 9435 * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define. 9436 * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm. 9437 9438 * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER. 9439 (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number. 9440 94412000-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9442 9443 * builtins.def: New file. 9444 9445 * Makefile.in (TREE_H): Depend on builtins.def. 9446 9447 * builtins.c (built_in_names): Use builtins.def. 9448 9449 * tree.h (built_in_function): Likewise. 9450 94512000-03-22 Mark Mitchell <mark@codesourcery.com> 9452 9453 * tree.c (size_in_bytes): Return size_zero_node, not 9454 integer_zero_node. 9455 94562000-03-22 Geoff Keating <geoffk@cygnus.com> 9457 9458 * config/fp-bit.c (pack_d): Correct the case when a denormal 9459 is rounded up and stops being denormal. 9460 94612000-03-21 Richard Henderson <rth@cygnus.com> 9462 9463 * config/alpha/alpha.c (function_arg): Check for void_type_node 9464 before using MUST_PASS_IN_STACK. 9465 94662000-03-21 Stephane Carrez <stcarrez@worldnet.fr> 9467 9468 * regmove.c (combine_stack_adjustments_for_block): Check that 9469 the stack pointer is a valid memory address. 9470 9471Wed Mar 22 11:44:50 MET 2000 Jan Hubicka <jh@suse.cz> 9472 9473 * calls.c: re-install Mar 16 emit_library_call merge. 9474 94752000-03-21 Jakub Jelinek <jakub@redhat.com> 9476 9477 * config/sparc/sparc.c (mem_min_alignment): If not optimizing, 9478 we cannot be sure that if reload_completed base register will 9479 be properly aligned. 9480 94812000-03-21 Richard Henderson <rth@cygnus.com> 9482 9483 * flow.c (delete_block): Fix typo last change. 9484 94852000-03-21 Mark Mitchell <mark@codesourcery.com> 9486 9487 * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P, 9488 not COMPLETE_TYPE_P, to check the type of the expression. 9489 94902000-03-21 Michael Meissner <meissner@redhat.com> 9491 9492 * config/alpha/alpha.md (floating point insns): Add TARGET_FP to 9493 all floating point insns that just tested the macro 9494 TARGET_HAS_XFLOATING_LIBS. 9495 (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is 9496 used to only use the gprs. 9497 94982000-03-21 Nathan Sidwell <nathan@codesourcery.com> 9499 9500 * tree.h (COMPLETE_TYPE_P): New macro. 9501 (COMPLETE_OR_VOID_TYPE_P): New macro. 9502 (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro. 9503 * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE. 9504 * c-aux-info.c (gen_type): Use them. 9505 * c-common.c (c_expand_expr_stmt): Likewise. 9506 * c-decl.c (poplevel, pushdecl, start_decl, finish_decl, 9507 grokdeclarator, grokparms, finish_struct, start_function, 9508 store_parm_decls, combine_parm_decls): Likewise. 9509 * c-parse.y (cast_expr): Likewise. 9510 * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn, 9511 c_size_in_bytes, c_alignof, build_component_ref, 9512 build_indirect_ref, build_array_ref, convert_arguments, 9513 build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise. 9514 * calls.c (initialize_argument_information): Likewise. 9515 * convert.c (convert_to_integer): Likewise. 9516 * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise. 9517 * dwarfout.c (location_or_const_value_attribute, 9518 output_enumeration_type_die, output_structure_type_die, 9519 output_union_type_die, output_type): Likewise. 9520 * expr.c (safe_from_p, expand_expr): Likewise. 9521 * function.c (assign_parms): Likewise. 9522 * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise. 9523 * tree.c (build_array_type, build_function_type, 9524 build_method_type, build_offset_type, build_complex_type): Likewise. 9525 * c-parse.c, c-parse.h: Regenerated. 9526 95272000-03-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 9528 9529 * config/c4x/rtems.h: Include config/rtems.h. 9530 9531Tue Mar 21 09:24:00 2000 Denis Chertykov <denisc@overta.ru> 9532 9533 * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if 9534 decl is a FUNCTION_DECL 9535 9536Mon Mar 20 19:53:53 2000 Jim Wilson <wilson@cygnus.com> 9537 9538 * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf 9539 function uses output registers. Don't save RP for leaf functions. 9540 Do save RP even if no epilogue. 9541 * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers. 9542 (CALL_USED_REGISTERS): Unmark in registers. 9543 (REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up, 9544 to near the middle. 9545 95462000-03-20 Geoff Keating <geoffk@cygnus.com> 9547 9548 * config/rs6000/rs6000.md (bunordered): New expander. 9549 (bordered): New expander. 9550 (buneq): New expander. 9551 (bunge): New expander. 9552 (bungt): New expander. 9553 (bunle): New expander. 9554 (bunlt): New expander. 9555 (bltgt): New expander. 9556 9557 * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons. 9558 (ccr_bit_negated_p): New function. 9559 (print_operand): For %C, generate appropriate cror for UNEQ, 9560 UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p. 9561 95622000-03-20 Andreas Jaeger <aj@suse.de> 9563 9564 * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else" 9565 warning. 9566 9567 * tree.h (safe_for_unsave): Prototype. 9568 95692000-03-20 Richard Henderson <rth@cygnus.com> 9570 9571 * regmove.c (stack_memref_p): Fix typo, reorg for readability. 9572 (combine_stack_adjustments_for_block): Don't allow sp references 9573 in the side of a set we're not fixing up. 9574 * toplev.c (rest_of_compilation): Run combine_stack_adjustments 9575 after life_analysis. 9576 95772000-03-20 Richard Henderson <rth@cygnus.com> 9578 9579 * calls.c (expand_call): Don't bother generating tail call 9580 sequences if there are pending cleanups. Use 9581 expand_start_target_temps/expand_end_target_temps to elide 9582 cleanups created during sibcall expansion. 9583 95842000-03-20 Geoff Keating <geoffk@cygnus.com> 9585 9586 * configure.in: Set $IFS to a value if it doesn't already have one 9587 in the --enable-checking handling. 9588 * configure: Regenerate. 9589 95902000-03-20 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9591 9592 * c-parse.in (SAVE_WARN_FLAGS): Use size_int. 9593 * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: 9594 Regenerated. 9595 9596Mon Mar 20 11:43:15 MET 2000 Jan Hubicka <jh@suse.cz> 9597 9598 * jump.c (delete_noop_moves): Remove code attempting to 9599 combine stack adjustments. 9600 96012000-03-19 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9602 9603 * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions. 9604 * except.c (emit_cleanup_handler): Use them. 9605 (expand_end_all_catch): Likewise. 9606 * function.c (fixup_var_refs): Likewise. 9607 (expand_function_end): Clear catch_clauses_last. 9608 * rtl.h (push_to_full_sequence, end_full_sequence): Declare. 9609 * except.h (struct eh_status): New field x_catch_clauses_last. 9610 (catch_clauses_last): New define. 9611 9612 * Makefile.in (tree.o): Depend on HASHTAB_H. 9613 * tree.c: Include hashtab.h. 9614 (struct type_hash): Remove next field. 9615 (TYPE_HASH_SIZE): Remove. 9616 (TYPE_HASH_INITIAL_SIZE): New define. 9617 (type_hash_table): Change type to htab_t. 9618 (type_hash_eq, type_hash_hash, print_type_hash_statistics, 9619 mark_hash_entry): New functions. 9620 (init_obstacks): Allocate type hash. 9621 (type_hash_lookup): Use htab functions. 9622 (type_hash_add, mark_type_hash): Likewise. 9623 (dump_tree_statistics): Call print_type_hash_statistics. 9624 96252000-03-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9626 9627 * rs6000/t-aix41: New file. 9628 9629 * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it. 9630 9631Sun Mar 19 13:27:30 2000 Hans-Peter Nilsson <hp@axis.com> 9632 9633 * tm.texi (Driver): Fix typos and tweak entry for 9634 INCLUDE_DEFAULTS. 9635 Move misplaced STRUCT_FORCE_BLK entry ... 9636 (Storage Layout): ... to here. 9637 (Run-time Target): Recommend having TARGET_MASK_... helper macros. 9638 96392000-03-19 Richard Henderson <rth@cygnus.com> 9640 9641 * flow.c (delete_block): Delete the addr_vec along with the block. 9642 (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that 9643 reference labels. 9644 9645 * fold-const.c (extract_muldiv): Apply type check for defined 9646 overflow to multiply as well as divide. 9647 9648 * stor-layout.c (layout_decl): Don't abort on any zero sized decl. 9649 96502000-03-18 Mark Mitchell <mark@codesourcery.com> 9651 9652 * emit-rtl.c (remove_unnecessary_notes): Check that all 9653 NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an 9654 associated NOTE_BLOCK. 9655 * function.h (identify_blocks): Update comments. 9656 (reorder_blocks): Declare. 9657 * function.c (identify_blocks): Don't take paramters. 9658 (reorder_blocks): Don't take parameters. 9659 * loop.h (find_loop_tree_blocks): Remove. 9660 (unroll_block_trees): Likewise. 9661 * loop.c (loop_optimize): Don't call find_loop_tree_blocks. Use 9662 reorder_blocks instead of unroll_block_trees.h 9663 * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise. 9664 * stmt.c (find_loop_tree_blocks): Remove. 9665 (unroll_block_trees): Likewise. 9666 * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks 9667 in whole-function mode. 9668 * tree.h (reorder_blocks): Remove declaration. 9669 9670 * expr.c: Include intl.h. 9671 * Makefile.in (expr.o): Depend on intl.h. 9672 96732000-03-18 Richard Henderson <rth@cygnus.com> 9674 9675 * expr.c (emit_move_insn_1): Clarify cannot_inline message. 9676 96772000-03-18 Mark Mitchell <mark@codesourcery.com> 9678 9679 * tree.h (tree_index): Remove enumerals for integer types. 9680 (integer_type_kind): New type. 9681 (integer_types): New variable. 9682 (char_type_node): Adjust. 9683 (signed_char_type_node): Likewise. 9684 (unsigned_char_type_node): Likewise. 9685 (short_integer_type_node): Likewise. 9686 (short_unsigned_type_node): Likewise. 9687 (integer_type_node): Likewise. 9688 (unsigned_type_node): Likewise. 9689 (long_integer_type_node): Likewise. 9690 (long_unsigned_type_node): Likewise. 9691 (long_long_integer_type_node): Likewise. 9692 (long_long_unsigned_type_node): Likewise. 9693 * tree.c (integer_types): New variable. 9694 (init_obstacks): Register it as a root. 9695 9696Sat Mar 18 14:38:00 2000 Jason Eckhardt <jle@cygnus.com> 9697 9698 * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as 9699 NEXT_INSN. Update last insn in chain. 9700 97012000-03-17 Jason Merrill <jason@casey.cygnus.com> 9702 9703 * dwarf2out.c (dwarf2out_decl): Don't emit anything for types 9704 with TYPE_DECL_SUPPRESS_DEBUG set. 9705 97062000-03-18 Richard Henderson <rth@cygnus.com> 9707 9708 * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value. 9709 97102000-03-18 Richard Henderson <rth@cygnus.com> 9711 9712 * i386.c (call_insn_operand): Always allow SYMBOL_REF, 9713 care for HALF_PIC_P. 9714 (expander_call_insn_operand): Remove. 9715 (ix86_expand_epilogue): New arg `emit_return' to control return insn. 9716 * i386.h (PREDICATE_CODES): Update. 9717 * i386.md (all call expanders): Remove predicates, remove special 9718 handling for half-pic. 9719 (*call_1, *call_value_1): Handle SIBLING_CALL_P insns. 9720 (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove. 9721 (sibcall_epilogue): New. 9722 97232000-03-17 Richard Henderson <rth@cygnus.com> 9724 9725 * rtlanal.c (single_set): Reject if the parallel has anything 9726 except SET or USE or CLOBBER. 9727 97282000-03-17 Jeff Law <law@cygnus.com> 9729 Richard Henderson <rth@cygnus.com> 9730 9731 * Makefile.in (OBJS): Add sibcall.o. 9732 (sibcall.o): New. 9733 * sibcall.c: New file. 9734 * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default. 9735 (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New. 9736 (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'. 9737 Emit sibcall patterns when requested. Update all callers. 9738 (expand_call): Generate CALL_PLACEHOLDER insns when tail call 9739 elimination seems feasable. 9740 * final.c (leaf_function_p): Sibling calls don't discount being 9741 a leaf function. 9742 * flow.c (HAVE_sibcall_epilogue): Provide default. 9743 (find_basic_blocks_1): Sibling calls don't throw. 9744 (make_edges): Make edge from sibling call to EXIT. 9745 (propagate_block): Don't remove sibcall_epilogue insns. 9746 * function.c (prologue, epilogue): Turn into varrays. Update all uses. 9747 (sibcall_epilogue): New. 9748 (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences. 9749 (identify_blocks_1): Likewise. Break out from ... 9750 (identify_blocks): ... here. 9751 (reorder_blocks_1): Scan CALL_PLACEHOLDER. Break out from ... 9752 (reorder_blocks): ... here. 9753 (init_function_for_compilation): Zap prologue/epilogue as varrays. 9754 (record_insns): Extend a varray instead of mallocing new memory. 9755 (contains): Read a varray not array of ints. 9756 (sibcall_epilogue_contains): New. 9757 (thread_prologue_and_epilogue_insns): Emit and record 9758 sibcall_epilogue patterns. 9759 (init_function_once): Allocate prologue/epilogue varrays. 9760 * genflags.c (gen_insn): Treat sibcall patterns as calls. 9761 * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns. 9762 Broken out from ... 9763 (save_for_inline_nocopy): ... here. 9764 (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. 9765 Broken out from ... 9766 (expand_inline_function): ... here. 9767 (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL. 9768 (subst_constants): Handle 'n' formats. 9769 * jump.c (jump_optimize_minimal): New. 9770 (jump_optimize_1): New arg `minimal'; update callers. Elide most 9771 optimizations if it's set. 9772 * rtl.c (copy_rtx): Do copy jump & call for insns. 9773 * rtl.h (struct rtx_def): Document use of jump and call for insns. 9774 (SIBLING_CALL_P): New. 9775 (sibcall_use_t): New. 9776 * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier. 9777 Invoke optimize_sibling_and_tail_recursive_calls. 9778 * tree.c (lang_safe_for_unsave): New. 9779 (safe_for_unsave): New. 9780 * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare. 9781 9782 * alpha.h (FUNCTION_OK_FOR_SIBCALL): New. 9783 * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New. 9784 (*sibcall_osf_1, *sibcall_value_osf_1): New. 9785 97862000-03-17 Mark Mitchell <mark@codesourcery.com> 9787 9788 * objc/objc-act.c (encode_method_prototype): Pass types, not 9789 PARM_DECLs, to int_size_in_bytes. 9790 9791Fri Mar 17 11:51:34 2000 Jim Wilson <wilson@cygnus.com> 9792 9793 * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template. 9794 9795 * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, 9796 config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again. 9797 9798Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9799 9800 * Clean up usages of TREE_INT_CST_LOW. 9801 * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst. 9802 * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: 9803 Regenerated. 9804 * c-tree.h (min_precision): Move declaration to here. 9805 * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst. 9806 (build_unary_op, add_pending_init): Use bit_position. 9807 (pending_init_member, process_init_element): Likewise. 9808 (really_start_incremental_init, push_init_level, pop_init_level): 9809 Don't make copies of nodes or modify them in place, use consistent 9810 types when tracking positions, and use tree routines computations. 9811 (set_init_index, output_init_element): Likewise. 9812 (output_pending_init_elements, process_init_element): Likewise. 9813 * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp, 9814 tree_low_cst and int_bit_position; also minor cleanup. 9815 (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise. 9816 (print_cst_octal): Precision is unsigned. 9817 (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst. 9818 * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT. 9819 (simple_type_align_in_bits): Result is unsigned int. 9820 Use tree_int_low_cst and host_integerp. 9821 (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT. 9822 (field_byte_offset): Result is HOST_WIDE_INT. 9823 Change types of internal variables so alignments are unsigned int, 9824 offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT. 9825 Use host_integerp, tree_low_cst, and int_bit_position. 9826 (add_bit_offset_attribute): Likewise. 9827 (add_data_member_location_attribute): Use tree_cst_low. 9828 (add_bound_info): Use host_integerp, integer_zerop, and integer_onep. 9829 (add_bit_size_attribute): Use tree_low_cst. 9830 (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise. 9831 * dwarfout.c: Similar changes to dwarf2out.c. 9832 * expr.c (expand_expr, case ARRAY_REF): Remove redundant code. 9833 * genoutput.c (n_occurrences): Return -1 for null string. 9834 (strip_whitespace): Accept null string and make into function. 9835 (scan_operands): Reflect above changes. 9836 * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst. 9837 (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position. 9838 * ssa.c (rename_registers): Add missing cast of arg to bzero. 9839 * tree.c (int_size_in_bytes): Check for too big to represent. 9840 (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns. 9841 * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position): 9842 New declarations. 9843 (min_precision): Delete from here. 9844 * varasm.c (decode_addr_const): Use host_integerp, bit_position, 9845 and int_bit_position. 9846 * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT. 9847 (encode_method_def): Likewise. 9848 (build_ivar_list_initializer): Use int_bit_position. 9849 (generate_shared_structures): Convert size. 9850 (encode_type, encode_complete_bitfield): Use integer_zerop. 9851 (encode_bitfield): Use tree_low_cst and int_bit_position. 9852 98532000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 9854 9855 * config/c4x/c4x.h (CPP_SPEC): Fix typo. 9856 98572000-03-17 Martin v. L�wis <loewis@informatik.hu-berlin.de> 9858 9859 * call.c (special_function_p): It is only malloc if it returns 9860 Pmode. 9861 98622000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 9863 9864 * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33. 9865 (C33_FLAG, TARGET_C3X): Add macros. 9866 (TARGET_SWITCHES): Add -m33 option. 9867 * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33. 9868 98692000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 9870 9871 * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add. 9872 (PARALLEL_PACK_FLAG): Delete. 9873 (TARGET_SWITCHES): Update. 9874 (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG. 9875 9876Thu Mar 16 18:52:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9877 9878 * fold-const.c (fold): Fix a few cases when the returned result 9879 is not of the same type as the input. 9880 98812000-03-16 Nick Clifton <nickc@cygnus.com> 9882 9883 * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time 9884 warning. 9885 98862000-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9887 9888 * libgcc2.h: Move prototypes above macros with the same name. 9889 Wrap some function prototypes in the conditional which indicates 9890 whether they are supported, i.e. "BITS_PER_UNIT == 8". 9891 98922000-03-16 Richard Henderson <rth@cygnus.com> 9893 9894 * calls.c: Revert last two changes. 9895 98962000-03-16 Bernd Schmidt <bernds@cygnus.co.uk> 9897 9898 * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that 9899 has exponent 0 is a zero. 9900 9901 * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that 9902 HASH may already be nonzero. Add code/mode into hash value 9903 immediately after repeat label. 9904 (cselib_lookup): Don't leave the hash table in an inconsistent 9905 state before a hash lookup operation. 9906 9907Thu Mar 16 17:03:10 MET 2000 Jan Hubicka <jh@suse.cz> 9908 9909 * i386.md (all HI and QI mode non-move patterns): Conditionize 9910 by TARGET_[HQ]IMODE_MATH. 9911 * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, 9912 x86_promote_qi_regs): Declare. 9913 (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS, 9914 TARGET_PROMOTE_QI_REGS): New macros. 9915 (PROMOTE_MODE): New macro. 9916 * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, 9917 x86_promote_qi_regs): New global variables. 9918 9919Thu Mar 16 16:50:44 MET 2000 Jan Hubicka <jh@suse.cz> 9920 9921 * calls.c (emit_library_call_value_1): Break out from ...; handle 9922 VOIDmode function calls too. 9923 (emit_library_call_value): ... here. 9924 (emit_library_call): Implement by calling emit_library_call_value_1. 9925 9926Thu Mar 16 16:01:30 MET 2000 Jan Hubicka <jh@suse.cz> 9927 9928 * calls.c (expand_call): Do sanity checking on arg_space_so_far. 9929 Update arg_space_so_far on stack adjustments. 9930 (emit_library_call, emit_library_call_value): Likewise; take into 9931 account arg_space_so_far and pending_stack_adjust when calculcating 9932 the boundary. 9933 9934Thu Mar 16 09:02:19 2000 Jason Eckhardt <jle@cygnus.com> 9935 9936 * flow.c: Move all basic block reordering code into its own file. 9937 (create_basic_block): Externalize. 9938 * bb-reorder.c: New file. Copy all basic block reordering code from 9939 flow.c to this file. 9940 (reorder_basic_blocks): Fix fencepost error in for-loop. 9941 (reorder_basic_blocks): Remove braces from single statement for-loops. 9942 * basic-block.h: Add declaration for create_basic_block. 9943 * Makefile.in: Add rules for bb-reorder.o. 9944 99452000-03-16 Neil Booth <NeilB@earthling.net> 9946 9947 * cppinit.c (handle_option): Implement #unassert directive 9948 as -A- command line option. 9949 (print_help): Update. 9950 * cpptexi.c: Update. 9951 9952Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson <hp@bitrange.com> 9953 9954 * md.texi (Standard Names): Document `jump'. 9955 99562000-03-15 Jason Merrill <jason@casey.cygnus.com> 9957 9958 * calls.c (emit_call_1): Nothrow functions can still have nonlocal 9959 gotos. 9960 99612000-03-15 Geoff Keating <geoffk@cygnus.com> 9962 9963 Merge changes from newppc-branch onto trunk. 9964 9965 2000-03-15 Geoff Keating <geoffk@cygnus.com> 9966 9967 * rs6000.c (toc_hash_table): Update for new hash table functions. 9968 (toc_hash_function): Likewise. 9969 (toc_hash_eq): Likewise. 9970 (toc_hash_mark_entry): Likewise. 9971 (toc_hash_mark_table): Likewise. 9972 (output_toc): Likewise. 9973 (rs6000_add_gc_roots): Likewise. 9974 9975 2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 9976 9977 * t-aix43 (AR_FOR_TARGET): Deleted. Moved `-X32_64'... 9978 (AR_FLAGS_FOR_TARGET): here. New macro. 9979 9980 2000-03-05 Clinton Popetz <cpopetz@cygnus.com> 9981 9982 * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size, 9983 fpmem_operand) Delete. 9984 (xer_operand) New. 9985 (rs6000_reg_names, alt_reg_names): Change fpmem to xer. 9986 (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p. 9987 (rs6000_save_machine_status, rs6000_restore_machine_status, 9988 rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove 9989 references to above variables. 9990 (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P. 9991 * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES, 9992 DEBUG_REGISTER_NAMES): Chagne fpmem to xer. 9993 (FPMEM_REGNO_P, FPMEM_REGNUM): Delete. 9994 (XER_REGNO_P, XER_REGNO): New. 9995 (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size. 9996 (PREDICATE_CODES): Change fpmem_operand to xer_operand. 9997 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to 9998 XER_REGNO_P. 9999 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, 10000 REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS, and remove FLOAT_OR_FPMEM_REGS. 10001 (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS. 10002 10003 2000-02-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 10004 10005 * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX, 10006 TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here... 10007 * rs6000.h: from here. 10008 10009 * rs6000-protos.h (rs6000_select_section): Provide prototype. 10010 (rs6000_select_rtx_section): Likewise. 10011 (rs6000_encode_section_info): Likewise. 10012 (sdata_section): Likewise. 10013 (sdata2_section): Likewise. 10014 (sbss_section): Likewise. 10015 * sysv4.h (rs6000_select_section): Delete prototype. 10016 (rs6000_select_rtx_section): Likewise. 10017 (rs6000_encode_section_info): Likewise. 10018 (sdata_section): Likewise. 10019 (sdata2_section): Likewise. 10020 (sbss_section): Likewise. 10021 (REG_SAVE_AREA): Delete definition duplicated in rs6000.h. 10022 10023 * sysv4.h: Delete various unnecessary #undef's and put a comment 10024 on the remaining ones. 10025 Change various comments according to coding standard. 10026 10027 2000-02-29 Clinton Popetz <cpopetz@cygnus.com> 10028 10029 * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, 10030 CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define. 10031 (CR0_REGNO_P) Remove. 10032 * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, 10033 setup_incoming_varargs, mtcrf_operation, print_operand, 10034 rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): 10035 Use the above macros. 10036 10037 2000-02-24 Clinton Popetz <cpopetz@cygnus.com> 10038 10039 * config/rs6000/rs6000.md: Added a new alternative for each 10040 pattern that had a 'x' alternative but no 'y' alternative. 10041 Added a new split for each of the above patterns. 10042 10043 2000-02-18 Geoff Keating <geoffk@cygnus.com> 10044 10045 * aix41.h (ASM_CPU_SPEC): Delete. 10046 (CPP_CPU_SPEC): Delete. 10047 10048 * aix.h (RS6000_OUTPUT_BASENAME): Define. 10049 (ASM_OUTPUT_LABEL): Define. 10050 (ASM_GLOBALIZE_LABEL): Define. 10051 (STRIP_NAME_ENCODING): Define. 10052 * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define. 10053 (STRIP_NAME_ENCODING): Don't define. 10054 (ASM_OUTPUT_LABEL): Don't define. 10055 (ASM_GLOBALIZE_LABEL): Don't define. 10056 * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output 10057 names, and ASM_OUTPUT_LABEL to output labels, rather than 10058 asm_fprintf. 10059 (ASM_OUTPUT_LABEL): Define. 10060 (ASM_OUTPUT_INT): Use assemble_name. 10061 (ASM_OUTPUT_DWARF_ADDR): Use assemble_name. 10062 (STRIP_NAME_ENCODING): Don't undefine first. 10063 (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for 10064 ELF. 10065 (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels 10066 specified with 'asm' even with -fleading-underscore. 10067 * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX. 10068 (output_epilog): Likewise. 10069 (output_toc): Likewise. 10070 * tramp.asm: Handle -fleading-underscore correctly. 10071 10072 * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and 10073 -mminimal-toc. 10074 (nonlocal_goto_receiver): Delete. 10075 * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete. 10076 10077 * rs6000.h (ASM_OUTPUT_DEF): Don't define. 10078 (SET_ASM_OP): Define. 10079 * sysv4.h (ASM_OUTPUT_DEF): Don't undefine. 10080 10081 * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define. 10082 (ASM_LONG): Define. 10083 10084 * rs6000.c (rs6000_dll_import_ref): Delete, not used. 10085 * rs6000-protos.h (rs6000_dll_import_ref): Delete. 10086 10087 * rs6000.h: Add 'u' to more constants. 10088 10089 2000-02-18 David Edelsohn <edelsohn@gnu.org> 10090 10091 * rs6000.md (mfcr+shift): Delete PowerPC64 version. 10092 10093 2000-02-15 David Edelsohn <edelsohn@gnu.org> 10094 10095 * rs6000.c (reg_or_u_cint_operand): New function. 10096 (logical_operand): Handle 64-bit hosts. 10097 (logical_u_operand): New function. 10098 (non_logical_cint_operand): Handle 64-bit hosts. 10099 (non_logical_u_cint_operand): New function. 10100 * rs6000.h (DATA_SECTION_ASM_OP): Add tab. 10101 (PREDICATE_CODES): Define new functions. 10102 * rs6000-protos.h: Declare new functions. 10103 * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits. 10104 (movdi_64): Bracket code intended for 64-bit hosts. Create 10105 CONST_DOUBLE for 32-bit values. 10106 (scc insns): Generate DImode compares. 10107 (mfcr insns): Create DImode versions. 10108 (sge matchers): New patterns. 10109 10110 2000-02-15 Gabriel Paubert <paubert@iram.es> 10111 10112 * rs6000.md: Correct instructions length attributes and 10113 constraints on unsigned compare instructions. 10114 (*ne0): Disable for PowerPC64. 10115 10116 2000-02-11 Geoff Keating <geoffk@cygnus.com> 10117 10118 * rs6000.c (output_function_profiler): Use .long for a 32-bit 10119 quantity, fix profile1.C test failure under -fPIC. 10120 10121 * rs6000.c: Add 'u' to many constants to suppress warnings. 10122 (constant_pool_expr_1): Make static. 10123 (rs6000_emit_eh_toc_restore): Remove unused 'r2'. 10124 * rs6000.h: Add 'u' to many constants to suppress warnings. 10125 10126 * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX 10127 for the start of the TOC, instead of LCTOC..0. 10128 * aix.h (toc_section): Use LCTOC..1 under AIX for the start 10129 of the TOC. 10130 * rs6000.md (load_toc_aix_si): Use LCTOC..1. 10131 (load_toc_aix_di): Use LCTOC..1. 10132 10133 * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function. 10134 * rs6000.c (rs6000_legitimize_address): New function from 10135 LEGITIMIZE_ADDRESS. Only use create_TOC_reference on 10136 symbols in the constant pool that really are TOC references. 10137 (print_operand_address): For ELF, write TOC offsets under 10138 -fPIC as subtractions in the insn. 10139 (output_toc): For ELF, define symbols in TOC as normal labels, 10140 to match RTL. 10141 (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx. 10142 * rs6000-protos.h (rs6000_legitimize_address): Prototype. 10143 (create_TOC_reference): Prototype only when RTX_CODE is defined. 10144 * rs6000.md (movsi): Only use create_TOC_reference on 10145 symbols in the constant pool that really are TOC references. 10146 10147 * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define. 10148 * rs6000.c (rs6000_reorg): Delete. 10149 * rs6000-protos.h (rs6000_reorg): Delete. 10150 10151 2000-02-09 Geoff Keating <geoffk@cygnus.com> 10152 10153 * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro. 10154 10155 * aix.h (SETUP_FRAME_ADDRESSES): Define. 10156 * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable. 10157 [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function. 10158 [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function. 10159 * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore, 10160 rs6000_aix_emit_builtin_unwind_init. 10161 * rs6000.md (eh_epilogue) [TARGET_AIX]: Call 10162 rs6000_emit_eh_toc_restore on AIX. 10163 (return_eh_si): Use r2. 10164 (return_eh_di): Use r2. 10165 10166 * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH, 10167 since we're breaking binary compatibility anyway. 10168 10169 2000-02-09 Clinton Popetz <cpopetz@cygnus.com> 10170 10171 * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC, 10172 constant_pool_expr_p): Declare them. 10173 (constant_pool_expr_p): Declare it. 10174 * config/rs6000/rs6000.c (toc_label_name): Define. 10175 (rs6000_override_options): Set toc_label_name. 10176 (input_operand): Allow any TOC_RELATIVE_EXPR_P. 10177 (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1, 10178 uses_TOC): New functions. 10179 (print_operand): Delete old '*' case. 10180 (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P, 10181 and strip off rtl for TOC before calling output_addr_const. 10182 (rs6000_emit_load_toc_table): Use toc_label_name. 10183 * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog 10184 the default. 10185 (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete. 10186 (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros. 10187 (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P. 10188 (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs 10189 into explicit TOC_REGISTER offsets. 10190 (TOC_REGISTER): New macro. 10191 * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under 10192 TARGET_TOC to reference TOC_REGISTER. 10193 (load_toc_v4_PIC_1b): Add 4 to offset for toc reload. 10194 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call 10195 uses_TOC before emitting label references. 10196 10197 2000-02-05 Geoff Keating <geoffk@cygnus.com> 10198 10199 * rs6000.md (stack_tie): Fix warning. 10200 10201 * eabi-ctors.c: Use 'asm' names for the start/end variables, 10202 to handle -fleading-underscore. 10203 * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U. 10204 (USER_LABEL_PREFIX): New macro. 10205 (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L. 10206 (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U. 10207 * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and 10208 call-linux can use the same multilibs. 10209 * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv 10210 and call-linux multilibs. Do multilib with -fleading-underscore. 10211 (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change. 10212 (MULTILIB_EXCEPTIONS): Remove call-linux exceptions. Add restrictions 10213 to call-aix. 10214 10215 * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that 10216 have MASK_SOFT_FLOAT set. 10217 (CPP_FLOAT_DEFAULT_SPEC): New macro. 10218 (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of 10219 CPP_FLOAT_DEFAULT_SPEC. 10220 10221 * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'. 10222 * rs6000.md: Whitespace change. 10223 * sysv4.h (LINK_TARGET_SPEC): Whitespace change. 10224 * sysv4le.h (LINK_TARGET_SPEC): Whitespace change. 10225 10226 2000-02-05 Geoff Keating <geoffk@cygnus.com> 10227 10228 * rs6000.md (eh_epilogue): New expander. 10229 (eh_reg_restore): New expand/split/insn combination. 10230 (return_eh_si): New insn. 10231 (return_eh_di): New insn. 10232 10233 * eabi-ci.asm: Put a label at the start of the .eh_frame section. 10234 * eabi-cn.asm: Put a zero at the end of the .eh_frame section. 10235 * eabi-ctors.c (__do_global_ctors): Register this object's 10236 frame. Clean up. Call atexit() after the constructors. 10237 (__do_global_dtors): Deregister this object's frame. Clean up. 10238 Allow for recursive calls to exit(). 10239 * rs6000.c (fixuplabelno): New variable. 10240 * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not 10241 TARGET_RELOCATABLE, it slows down exec() under linux. 10242 (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE. 10243 10244 * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro. 10245 (ASM_OUTPUT_DWARF_DELTA_VAR): New macro. 10246 (ASM_OUTPUT_DWARF_DELTA2): New macro. 10247 (ASM_OUTPUT_DWARF_DELTA4): New macro. 10248 (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro. 10249 (ASM_OUTPUT_DWARF_ADDR): New macro. 10250 (ASM_OUTPUT_DWARF_DATA4): New macro. 10251 (ASM_OUTPUT_DWARF_DATA2): New macro. 10252 (ASM_OUTPUT_DWARF_OFFSET4): New macro. 10253 (ASM_OUTPUT_DWARF_OFFSET): New macro. 10254 (UNALIGNED_INT_ASM_OP): New macro, fake definition. 10255 10256 2000-02-03 Geoff Keating <geoffk@cygnus.com> 10257 10258 * rs6000.c (rs6000_sr_alias_set): New variable. 10259 (rs6000_override_options): Initialize rs6000_sr_alias_set. 10260 (rs6000_emit_stack_tie): New function. 10261 (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P 10262 in a way that dwarf2out can understand. 10263 (rs6000_frame_related): New function. 10264 (rs6000_emit_prologue): Use rs6000_sr_alias_set. Specify 10265 RTX_FRAME_RELATED_P in a way that dwarf2out can understand. 10266 Use rs6000_emit_stack_tie when needed. 10267 (rs6000_emit_epilogue): Use rs6000_sr_alias_set. Don't set 10268 RTX_FRAME_RELATED_P. Use rs6000_emit_stack_tie when needed. 10269 * rs6000.md (stack_tie): New insn. 10270 (return_internal_si): Allow return value to be in the count 10271 register. 10272 (return_internal_di): Likewise. 10273 10274 * rs6000.c (output_mi_thunk): Remove unused variable `sp'. 10275 10276 2000-02-03 Geoff Keating <geoffk@cygnus.com> 10277 10278 * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h. 10279 10280 2000-01-31 Geoff Keating <geoffk@cygnus.com> 10281 10282 * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro. 10283 10284 * rs6000.md (stmw): Use the right POWER opcode. 10285 (lmw): Likewise. 10286 10287 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10288 10289 * rs6000-protos.h: New file. 10290 10291 * rs6000.c: Include tm_p.h. Fix compile time warnings. 10292 10293 * rs6000.h: Move prototypes to rs6000-protos.h. Fix compile time 10294 warnings. 10295 10296 * sysv4.h: Likewise. 10297 10298 2000-01-28 Geoff Keating <geoffk@cygnus.com> 10299 10300 * ../../configure.in: Delete powerpcle-*-winnt* 10301 and powerpcle-*-pe|powerpcle-*-cygwin*. 10302 * ../../configure: Regenerated. 10303 * cygwin.h: Delete. 10304 * rs6000.h (OBJECT_WINDOWS_NT): Delete. 10305 (TARGET_WINDOWS_NT): Delete. 10306 (ABI_NT): Delete. 10307 (CALL_NT_DLLIMPORT): Delete. 10308 Delete NT-specific code. 10309 * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code. 10310 * win-nt.h: Delete. 10311 * t-winnt: Delete. 10312 * nt-ci.asm: Delete. 10313 * nt-cn.asm: Delete. 10314 * ntstack.asm: Delete. 10315 10316 2000-01-27 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 10317 10318 * rs6000.h (SELECT_RTX_SECTION): Move to aix.h. 10319 (ASM_FILE_START): Likewise. 10320 (ASM_DECLARE_FUNCTION_NAME): Likewise. 10321 (ASM_OUTPUT_LABELREF): Likewise. 10322 (ASM_OUTPUT_SKIP): Likewise. 10323 (ASM_OUTPUT_INTERNAL_LABEL): Likewise. 10324 (ASM_GENERATE_INTERNAL_LABEL): Likewise. 10325 (ASM_OUTPUT_CASE_LABEL): Likewise. 10326 (ASM_OUTPUT_ALIGNED_COMMON): Likewise. 10327 (ASM_OUTPUT_ASCII): Likewise. 10328 10329 2000-01-27 Clinton Popetz <cpopetz@cygnus.com> 10330 10331 * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and 10332 reload_toc_labelno for non-prologue TOC reloads. Also, don't 10333 increment rs6000_pic_labelno here. 10334 (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table, 10335 and increment rs6000_pic_labelno here. 10336 10337 2000-01-24 Geoffrey Keating <geoffk@cygnus.com> 10338 10339 * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)])) 10340 rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register 10341 allocation knows (reg) is dead before the insn. 10342 10343 2000-01-21 Geoff Keating <geoffk@cygnus.com> 10344 10345 * rs6000.md (movsi_to_cr): Correct typo in output template. 10346 10347 2000-01-19 Geoffrey Keating <geoffk@cygnus.com> 10348 10349 * rs6000.c (rs6000_pic_labelno): Always define. 10350 (rs6000_pic_func_labelno): Delete. 10351 (lmw_operation): Check for a zero base register, 10352 which doesn't mean what we want. 10353 (stmw_operation): New function. 10354 (print_operand): Define new 'l' modifier. 10355 (rs6000_stack_info): We must save all 64 bits of the registers 10356 if TARGET_POWERPC64. 10357 (rs6000_output_load_toc_table): Delete. 10358 (rs6000_emit_load_toc_table): New function. 10359 (rs6000_allocate_stack_space): Delete. 10360 (rs6000_emit_allocate_stack): New function. 10361 (rs6000_emit_prologue): New function. 10362 (output_prolog): Use rs6000_emit_prologue. 10363 (rs6000_emit_epilogue): Change a few variable names to be 10364 more accurate. Restore all 64 bits of the registers if 10365 TARGET_POWERPC64. Only restore the FP registers which were used 10366 if they are being saved/restored one-at-a-time. 10367 (output_mi_thunk): Delete inefficient code generation. 10368 (output_function_profiler): Don't use rs6000_output_load_toc_table. 10369 * rs6000.h: Declare rs6000_emit_load_toc_table, 10370 rs6000_allocate_stack_space, stmw_operation. Don't declare 10371 rs6000_output_load_toc_table. 10372 * rs6000.md (elf_high): Allow register 0, but discourage it 10373 heavily. 10374 (elf_low): Support loading into register 0. 10375 (load_toc_aix_si): New pattern. 10376 (load_toc_aix_di): New pattern. 10377 (load_toc_v4_pic_si): New pattern. 10378 (load_toc_v4_pic_di): New pattern. 10379 (load_toc_v4_PIC_1): New pattern. 10380 (load_toc_v4_PIC_1b): New pattern. 10381 (load_toc_v4_PIC_2): New pattern. 10382 (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table. 10383 (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table. 10384 (prologue): New expander. 10385 (movesi_from_cr): New pattern. 10386 (stmw): New pattern. 10387 (save_fpregs_si): New pattern. 10388 (save_fpregs_di): New pattern. 10389 10390 2000-01-19 Geoff Keating <geoffk@cygnus.com> 10391 10392 * rs6000.md (movsi): Don't use force_reg when no_new_pseudos. 10393 (movdi): Likewise. 10394 (movhi): Likewise. 10395 (movqi): Likewise. 10396 10397 2000-01-19 Geoff Keating <geoffk@cygnus.com> 10398 10399 * rs6000.md (movsi_got): 'unspec 8' returns a SImode result, 10400 at present. 10401 (movsi_got_internal): Likewise. 10402 (movsi_got_internal+1): Likewise. 10403 (set_sp): 'unspec 7' does a SImode clobber. 10404 10405 2000-01-19 Geoff Keating <geoffk@cygnus.com> 10406 10407 * rs6000.md (floatsidf2): Don't use the fpmem "register", just 10408 allocate a stack temporary. 10409 (floatsidf2_internal): Likewise. 10410 (floatsidf2_internal+1): Likewise. Don't do bizzare hacks 10411 with unspec. 10412 (floatunssidf2): Don't use the fpmem "register", just 10413 allocate a stack temporary. 10414 (floatunssidf2_internal): Likewise. 10415 (floatunssidf2_internal+1): Likewise. Don't do bizzare hacks 10416 with unspec. 10417 (floatsidf2_loadaddr): Delete. 10418 (floatsidf2_store1): Delete. 10419 (floatsidf2_store2): Delete. 10420 (floatsidf2_load): Delete. 10421 (fix_truncdfsi2): Don't use the fpmem "register", just 10422 allocate a stack temporary. 10423 (fix_truncdfsi2_internal_si): Delete. 10424 (fix_truncdfsi2_internal_di): Delete. 10425 (fix_truncdfsi2_internal): New insn. 10426 (fix_truncdfsi2_internal+1): Don't use the fpmem "register". 10427 (fix_truncdfsi2_store): Delete. 10428 (fix_truncdfsi2_load): Delete. 10429 (fctiwz): Produce gen_fctiwz. 10430 10431 2000-01-19 Geoffrey Keating <geoffk@cygnus.com> 10432 10433 * eabi.h (INVOKE__main): Define. 10434 * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN 10435 specially. 10436 (rs6000_emit_prologue): Likewise. 10437 * rs6000.h (struct rs6000_stack): Don't keep track of whether 10438 this is the main program. 10439 10440 2000-01-19 Geoff Keating <geoffk@cygnus.com> 10441 10442 * rs6000.c (rs6000_va_arg): Delete some unused variables. 10443 10444 2000-01-19 Geoff Keating <geoffk@cygnus.com> 10445 10446 * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments 10447 goes after the argument. 10448 10449 2000-01-12 Geoff Keating <geoffk@cygnus.com> 10450 10451 * rs6000.md: Document 'unspec' values used. 10452 (epilogue): New expander. 10453 (movesi_to_cr_one): New expander. 10454 (movesi_to_cr and following): New pattern. 10455 (lmw): New pattern. 10456 (return_internal_si): New pattern. 10457 (return_internal_di): New pattern. 10458 (return_and_restore_fpregs_si): New pattern. 10459 (return_and_restore_fpregs_di): New pattern. 10460 * rs6000.h: Declare new functions. 10461 * rs6000.c (rs6000_stack_info): Use current_function_is_leaf 10462 rather than rs6000_calls_p. 10463 (rs6000_makes_calls): Delete. 10464 (lmw_operation): New function. 10465 (mtcrf_operation): New function. 10466 (rs6000_emit_epilogue): New function. 10467 (output_epilog): Call rs6000_emit_epilogue and final if 10468 !TARGET_SCHED_PROLOG, instead of writing text unconditionally. 10469 10470 2000-01-12 Geoff Keating <geoffk@cygnus.com> 10471 10472 * aix43.h (SUBSUBTARGET_SWITCHES): Document switches. 10473 * aix41.h (SUBSUBTARGET_SWITCHES): Document switches. 10474 * aix.h (SUBTARGET_SWITCHES): Document switches. 10475 * rs6000.h: (TARGET_SWITCHES): Don't print options twice. Make 10476 sched-prolog and sched-epilog the same. Document all the 10477 switches. 10478 (TARGET_OPTIONS): No longer allow -mdebug-. 10479 10480 2000-01-12 Geoff Keating <geoffk@cygnus.com> 10481 10482 * rs6000.h (ASM_FILE_END): Move to aix.h. 10483 (EXTRA_SECTIONS): Move to aix.h. 10484 (READONLY_DATA_SECTION): Move to aix.h. 10485 (EXTRA_SECTION_FUNCTIONS): Move to aix.h. 10486 (SELECT_SECTION): Move to aix.h. 10487 (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h. 10488 (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM. 10489 (LINK_REGISTER_REGNUM): New definition. 10490 (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM. 10491 (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both 10492 AIX and SVR4. 10493 * sysv4.h: Delete the code between the inclusion of rs6000.h 10494 and svr4.h. 10495 (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h. 10496 (FP_ARG_MAX_REG): Move generic definition to rs6000.h. 10497 (RS6000_REG_SAVE): Move generic definition to rs6000.h. 10498 (RS6000_SAVE_AREA): Move generic definition to rs6000.h. 10499 * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode. 10500 (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si. 10501 (fix_truncdfsi2_internal_di): New pattern. 10502 (fix_truncdfsi2_store): The second arg here is Pmode too. 10503 (fix_truncdfsi2_load): The second arg here is Pmode too. 10504 (tablejumpdi): Now that switch tables hold only SImode values, 10505 gcc needs to know how to add them to the pc which is DImode. 10506 * rs6000.c (rs6000_stack_info): Use symbolic name for 10507 LINK_REGISTER_REGNUM. 10508 (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used. 10509 (output_toc): Delete unused variables s1 and s2. 10510 (output_ascii): Use fputs not fprintf on a variable string. 10511 10512 2000-01-07 David Edelsohn <edelsohn@gnu.org> 10513 10514 * rs6000.c (processor_target_table): Add power3 as alias for 630. 10515 * aix43.h: Revert Aug 2 change. 10516 (HAS_INIT_SECTION): Define, not visible yet. 10517 (LD_INIT_SWITCH): Define, not visible yet. 10518 * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. 10519 10520 2000-01-04 Joel Sherrill (joel@OARcorp.com> 10521 10522 * config/rs6000/rtems.h: Include config/rtems.h. 10523 10524 2000-01-04 David Edelsohn <edelsohn@gnu.org> 10525 10526 * rs6000.h (HANDLE_PRAGMA_PACK): Define. 10527 (SLOW_UNALIGNED_ACCESS): Define. 10528 (CASE_VECTOR_MODE): Always use 32-bit offsets. 10529 (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. 10530 (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op. 10531 (toc_section): Likewise and .toc pseudo-op. 10532 (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in 10533 64-bit mode. 10534 (TEXT_SECTION_ASM_OP): Likewise. 10535 (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use 10536 32-bit offsets. 10537 10538 1999-12-17 Jakub Jelinek <jakub@redhat.com> 10539 10540 * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure 10541 UNITS_PER_WORD and BITS_PER_WORD are compile time constants when 10542 compiling libgcc2. 10543 10544 2000-01-06 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 10545 10546 * rs6000.h: Move more stuff from here... 10547 * aix.h: to here. 10548 * sysv4.h: Cleanup accordingly. 10549 * netware.h: Likewise 10550 10551 2000-01-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 10552 10553 * rs6000.h: Continue cleanup. 10554 * aix.h: Likewise. 10555 * lynx.h: Likewise. 10556 * netware.h: Likewise. 10557 * sol2.h: Likewise. 10558 * sysv4.h: Likewise. 10559 * win-nt.h: Likewise. 10560 10561 * rs6000.h (TARGET_SWITCHES): Add descriptions. 10562 (TARGET_OPTIONS): Likewise. 10563 10564 * sysv4.h (SUBTARGET_SWITCHES): Add descriptions. 10565 (SUBTARGET_OPTIONS): Likewise. 10566 10567 * rs6000.md: Fix compile time warnings. 10568 10569 2000-01-04 Geoff Keating <geoffk@cygnus.com> 10570 10571 vxworks patches from the Cygnus tree originally by 10572 Michael Meissner <meissner@cygnus.com> and Vladimir Makarov 10573 <vmakarov@cygnus.com>. 10574 * sysv4.h (SUBTARGET_SWITCHES): Add vxworks. 10575 (ENDFILE_SPEC): Likewise. 10576 (LIB_VXWORKS_SPEC): New macro. 10577 (STARTFILE_VXWORKS_SPEC): New macro. 10578 (ENDFILE_VXWORKS_SPEC): New macro. 10579 (LINK_START_VXWORKS_SPEC): New macro. 10580 (LINK_OS_VXWORKS_SPEC): New macro. 10581 (CPP_OS_VXWORKS_SPEC): New macro. 10582 (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs. 10583 * vxppc.h: Rewrite to use proper configuration method. 10584 * vxppcle.h: New file. 10585 * ../../configure.in: Add powerpcle-wrs-vxworks*. 10586 * ../../configure: Rebuilt. 10587 10588 2000-01-04 Geoff Keating <geoffk@cygnus.com> 10589 10590 Lots of changes to rs6000.h, sysv4.h, aix.h, 10591 aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h, 10592 with the aim that rs6000.h is the first header 10593 included and the others override it. 10594 * aix.h: New file. 10595 10596 * x-aix41-gld: Remove. 10597 * x-aix43: Remove. 10598 * x-aix41: Remove target-specific switches, and don't specify 10599 -Wl,-bbigtoc as we don't need it any more. 10600 * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above. 10601 Use t-aix43 for AIX 4.3 and above. 10602 * ../../configure: Regenerated. 10603 10604 * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling 10605 options, that don't do anything yet. 10606 (MASK_SCHED_PROLOG): New macro. 10607 (MASK_SCHED_EPILOG): New macro. 10608 (TARGET_SCHED_PROLOG): New macro. 10609 (TARGET_SCHED_EPILOG): New macro. 10610 10611 2000-01-04 Geoff Keating <geoffk@cygnus.com> 10612 10613 * rs6000.c: Correct comment, the `minimal' TOCs are actually 10614 one per translation unit, not one per function. 10615 (output_toc): Also do duplicate constant elimination 10616 for per-translation-unit TOCs. 10617 10618 * rs6000.md (nonlocal_goto_receiver): Put it back as before. Add 10619 a comment explaining _exactly_ when this pattern gets used. 10620 (builtin_setjmp_receiver): New pattern for better clarity. 10621 (init_v4_pic): Move it into a section dealing with TOC registers. 10622 10623 1999-12-30 Geoff Keating <geoffk@cygnus.com> 10624 10625 * rs6000.c (toc_hash_table): New variable. 10626 (rs6000_hash_constant): New function. 10627 (toc_hash_function): New function. 10628 (toc_hash_eq): New function. 10629 (toc_hash_mark_entry): New function. 10630 (toc_hash_mark_table): New function. 10631 (output_toc): Don't output duplicate TOC entries in 10632 a single file. 10633 (rs6000_add_gc_roots): Add the hash table as a GC root. 10634 * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43, 10635 where they clearly shouldn't be. This may need to be fixed 10636 later when there is a GNU ar for AIX. 10637 * x-aix43: Don't define CLIB or AR_FOR_TARGET. 10638 Don't define BOOT_LDFLAGS as it is now not necessary. 10639 10640 1999-12-29 Geoff Keating <geoffk@cygnus.com> 10641 10642 * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *' 10643 for va_list on AIX. Use unsigned_char_type_node rather than 10644 constructing our own version on svr4. 10645 10646 1999-12-17 Geoff Keating <geoffk@cygnus.com> 10647 10648 * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment, 10649 since patently it's not. 10650 10651 1999-12-08 Geoff Keating <geoffk@cygnus.com> 10652 10653 * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into 10654 define_expand/define_insn pair, and handle restore of the 10655 SVR4 -fpic register. 10656 10657Wed Mar 15 15:43:38 2000 Jeffrey A Law (law@cygnus.com) 10658 10659 * acconfig.h (HAVE_GAS_WEAK): New define. 10660 * configure.in (assembler weak support): Check for .weak support. 10661 * config.in, configure: Rebuilt. 10662 * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if 10663 HAVE_GAS_WEAK is defined. 10664 106652000-03-15 Nick Clifton <nickc@cygnus.com> 10666 10667 * config/arm/arm.c (arm_output_epilogue): Do not pass %c to 10668 asm_fprintf(). 10669 106702000-03-15 Zack Weinberg <zack@wolery.cumb.org> 10671 10672 * cppfiles.c (open_include_file): New function. 10673 (find_include_file, cpp_read_file): Use it. 10674 106752000-03-15 Jason Merrill <jason@casey.cygnus.com> 10676 10677 * cpphash.c (dump_hash_helper): Take the slot, not the element. 10678 10679Wed Mar 15 14:28:54 2000 Jason Eckhardt <jle@cygnus.com> 10680 10681 * flow.c (verify_flow_info): Check for unconditional return. 10682 10683Wed Mar 15 11:34:27 2000 Jim Wilson <wilson@cygnus.com> 10684 10685 * config/ia64/ia64.md (restore_stack_nonlocal): New. 10686 * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop. 10687 (__ia64_restore_stack_nonlocal): New. 10688 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal. 10689 106902000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 10691 10692 * cpphash.c (collect_formal_parameters): Do not complain about 10693 parameter names that just start with `__VA_ARGS__'. 10694 10695Wed Mar 15 13:26:58 MET 2000 Jan Hubicka <jh@suse.cz> 10696 10697 * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and 10698 movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines. 10699 * i386.c (pentiumpro_cost): Set mul cost to 4. 10700 (x86_use_movx): Set for PPro. 10701 10702Wed Mar 15 13:07:05 MET 2000 Jan Hubicka <jh@suse.cz> 10703 10704 * i386.md (ix86_compute_frame_size): stack_alignment_needed is 10705 STACK_BOUNDARY for empty frames now. 10706 107072000-03-14 Mark Mitchell <mark@codesourcery.com> 10708 10709 * stor-layout.c (layout_union): Remove. 10710 (layout_union_field): New function, split out from layout_union. 10711 (finish_union_layout): Likewise. 10712 (layout_field): Handle unions by calling layout_union_field. 10713 (finish_record_layout): Handle unions. 10714 (layout_type): Combine RECORD_TYPE, UNION_TYPE, and 10715 QUAL_UNION_TYPE handling. 10716 10717Wed Feb 23 13:00:06 CET 2000 Jan Hubicka <jh@suse.cz> 10718 10719 * flow.c (fixup_reorder_chain): Avoid double labels in the basic block; 10720 end of basic block is jump_insn, not barrier; use create_basic_block 10721 instead of creating basic block by hand. 10722 107232000-03-14 Jason Eckhardt <jle@cygnus.com> 10724 10725 * flow.c (reorder_basic_blocks): Account for barriers when writing 10726 over NEXT_INSN (last_bb->end). 10727 (verify_flow_info): Add check for missing barriers. 10728 107292000-03-14 Greg McGary <gkm@gnu.org> 10730 10731 * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED. 10732 * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED. 10733 * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__, 10734 __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__, 10735 __unbounded, __unbounded__): New keywords. 10736 * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens. 10737 * c-parse.y, c-parse.c, c-parse.h: Regenerate. 10738 * objc/objc-parse.y, objc/objc-parse.c: Regenerate. 10739 107402000-03-14 Bernd Schmidt <bernds@cygnus.co.uk> 10741 10742 * cselib.h: New file. 10743 * alias.c: Include "cselib.h". 10744 (fixed_scalar_and_varying_struct_p): Accept the addresses of the 10745 MEMs as two new arguments. 10746 (get_addr): New static function. 10747 (find_base_term): Handle VALUEs. 10748 (memrefs_conflict_p): Likewise. 10749 (true_dependence): Call get_addr on the addresses. 10750 Call fixed_scalar_and_varying_struct_p with addresses that have been 10751 passed through get_addr and canon_rtx. 10752 (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency 10753 with true_dependence. 10754 Call get_addr on the addresses; don't call canon_rtx on the MEMs. 10755 * loop.c: Include "cselib.h". 10756 (load_mems): Process extended basic block that enters the loop with 10757 cselib. Use that information to change initialization of the shadow 10758 register so that a constant equivalence is seen by later passes. 10759 * reload1.c: Include "cselib.h". 10760 (reload_cse_invalidate_regno): Delete function. 10761 (reload_cse_mem_conflict_p): Likewise. 10762 (reload_cse_invalidate_mem): Likewise. 10763 (reload_cse_invalidate_rtx): Likewise. 10764 (reload_cse_regno_equal_p): Likewise. 10765 (reload_cse_check_clobber): Likewise. 10766 (reload_cse_record_set): Likewise. 10767 (reg_values): Delete static variable. 10768 (invalidate_regno_rtx): Likewise. 10769 (reload_cse_delete_noop_set): New static function. 10770 (reload_cse_simplify): New static function, broken out of 10771 reload_cse_regs_1. 10772 (reload_cse_noop_set_p): Delete unused argument INSN. 10773 Just call rtx_equal_for_cselib_p on set source and destination. 10774 (reload_cse_regs_1): Break out some code into reload_cse_simplify and 10775 reload_cse_delete_noop_set. Delete code to keep track of values; use 10776 cselib functions instead. Delete code to push/pop obstacks. 10777 (reload_cse_simplify_set): Use cselib to find equivalent values. 10778 Delete code to push/pop obstacks. 10779 (reload_cse_simplify_operands): Likewise. 10780 * rtl.def (VALUE): New rtx code. 10781 * rtl.h (union rtunion_def): New elt rt_cselib. 10782 (X0CSELIB, CSELIB_VAL_PTR): New macros. 10783 * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h". 10784 (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table, 10785 unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values, 10786 discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p, 10787 hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash, 10788 cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno, 10789 cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx, 10790 cselib_record_set, cselib_record_sets): New static functions. 10791 (cselib_lookup, cselib_update_varray_sizes, cselib_init, 10792 cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p, 10793 references_value_p): New functions. 10794 (MAX_USELESS_VALUES, REG_VALUES): New macros. 10795 (table, cselib_current_insn, next_unknown_value, cselib_nregs, 10796 n_useless_values, reg_values, callmem, cselib_obstack, 10797 cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists): 10798 New static variables. 10799 * varray.h (union varray_data_tag): New elt te. 10800 (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros. 10801 * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update 10802 dependencies. 10803 108042000-03-14 Nick Clifton <nickc@cygnus.com> 10805 10806 * gcc.c (do_spec_1): Catch the case where %* is used in a 10807 substitution pattern, but it has not been initialized. 10808 Issue a meaningful error message if an unrecognized operator 10809 is encountered in a spec string. 10810 108112000-03-14 Richard Earnshaw <rearnsha@arm.com> 10812 10813 * function.c (prepare_function_start): Correctly initialize 10814 cfun->stack_alignment_needed. 10815 108162000-03-14 Zack Weinberg <zack@wolery.cumb.org> 10817 10818 * cppfiles.c (find_include_file): Don't assume nshort is a 10819 substring of name. 10820 10821Tue Mar 14 08:42:21 2000 Jeffrey A Law (law@cygnus.com) 10822 10823 * configure.in (hppa configurations): Add pa32-regs.h to the 10824 list of tm files as appropriate. 10825 * configure: Rebuilt. 10826 * pa.c (compute_frame_size): Remove explicit knowledge about FP 10827 register numbering. 10828 (hppa_expand_prologue, hppa_expand_epilogue): Likewise. 10829 (fmpyaddoperands, fmpysuboperands): Likewise. 10830 * pa.h: Remove various definitions which depend on knowing 10831 how registers are numbered. 10832 * pa32-regs.h: New file with PA32 register numbering specific 10833 definitions. 10834 108352000-03-14 Richard Henderson <rth@cygnus.com> 10836 10837 * regmove.c (combine_stack_adjustments): New. 10838 (stack_memref_p, single_set_for_csa): New. 10839 (free_csa_memlist, record_one_stack_memref): New. 10840 (try_apply_stack_adjustment): New. 10841 (combine_stack_adjustments_for_block): New. 10842 * rtl.h (combine_stack_adjustments): Declare. 10843 * toplev.c (rest_of_compilation): Call it. 10844 10845 * i386.md: Revert 2000-01-16 change. 10846 108472000-03-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10848 10849 * gccbug.in: Add web category, gcc specific classes. 10850 108512000-03-14 Nathan Sidwell <nathan@codesourcery.com> 10852 10853 * stor-layout.c (finalize_record_size): Fix typo. 10854 108552000-03-14 Stan Shebs <shebs@apple.com> 10856 10857 * c-typeck.c (c_alignof): Error on incomplete types. 10858 * extend.texi (Alignment): Document this. 10859 108602000-03-13 Zack Weinberg <zack@wolery.cumb.org> 10861 10862 * cppfiles.c: Include mkdeps.h. 10863 (find_include_file, read_include_file): Remove _cpp_ prefix 10864 from name, make static. 10865 (_cpp_execute_include): New function, broken out of 10866 do_include. 10867 10868 * cpplib.c: Don't include mkdeps.h. 10869 (struct directive): Remove type field. Reorder entries. The 10870 function takes only one argument. 10871 (struct if_stack): Make type field an int. 10872 (directive_table): Rename to dtable. Generate it, the 10873 prototypes of the directive handlers, and the enum for the 10874 directive numbers, from a template macro. 10875 (do_ifndef, do_include_next, do_import): New functions. 10876 (do_define, do_include, do_endif, do_ifdef, do_if, do_else, 10877 do_undef, do_line, do_elif, do_error, do_pragma, do_warning, 10878 do_ident, do_assert, do_unassert, do_sccs): Take only one 10879 argument. 10880 (do_sccs): Define always, but alter behavior based on 10881 SCCS_DIRECTIVE. 10882 (_cpp_handle_directive, consider_directive_while_skipping): 10883 Restructure for new directive table layout. 10884 10885 (pass_thru_directive): Take a directive number, not a pointer 10886 to a struct directive. 10887 (parse_include): New function, broken out of do_include. 10888 (do_include, do_import, do_include_next): Use parse_include 10889 and _cpp_execute_include. 10890 (do_elif, do_else): Test for T_ELSE specifically when checking 10891 for #elif/#else after #else. 10892 (parse_ifdef): New function, broken out of do_ifdef. 10893 (validate_else): Expect a name arg without a leading #. 10894 (if_directive_name): Delete. 10895 (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call 10896 directive handlers with only one argument. 10897 10898 * cpphash.h: Update prototypes. 10899 (enum node_type): Remove entries for directives. 10900 * Makefile.in: Update dependencies. 10901 10902 * cpphash.c (dump_hash_helper): Only dump nodes of type 10903 T_MACRO. Emit a newline after each definition. 10904 109052000-03-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 10906 10907 * gccbug.in: New file. 10908 * configure.in (all_outputs): Add gccbug. 10909 * Makefile.in (install-common): Install gccbug. 10910 (GCCBUG_INSTALL_NAME): New variable. 10911 * configure: Rebuilt. 10912 109132000-03-13 Jason Merrill <jason@casey.cygnus.com> 10914 10915 * function.c (put_var_into_stack): Use type_for_mode to calculate 10916 part_type. Use MEM_SET_IN_STRUCT_P. 10917 * expr.c (store_field): Handle CONCAT. 10918 (store_constructor): Use fields_length. 10919 * tree.c (fields_length): New fn. 10920 * tree.h: Declare it. 10921 109222000-03-13 Zack Weinberg <zack@wolery.cumb.org> 10923 10924 * Makefile.in (LIBCPP_OBJS): Add cpplex.o. 10925 (cpplex.o): New target. 10926 * po/POTFILES.in: Add cpplex.c. 10927 10928 * cpplex.c (_cpp_grow_token_buffer, null_cleanup, 10929 cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer, 10930 cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer, 10931 skip_block_comment, skip_line_comment, skip_comment, 10932 copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line, 10933 _cpp_parse_name, skip_string, parse_string, 10934 _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token, 10935 _cpp_get_directive_token, find_position, 10936 _cpp_read_and_prescan, _cpp_init_input_buffer): Move here. 10937 (maybe_macroexpand, _cpp_lex_token): New functions. 10938 10939 * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark, 10940 parse_goto_mark): Delete. 10941 (_cpp_handle_eof): New function. 10942 (_cpp_handle_directive): Rename from handle_directive. 10943 (_cpp_output_line_command): Rename from output_line_command. 10944 (do_if, do_elif): Call _cpp_parse_expr directly. 10945 * cppfiles.c (_cpp_read_include_file): Don't call 10946 init_input_buffer here. 10947 * cpphash.c (quote_string): Move here, rename _cpp_quote_string. 10948 * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive 10949 here; pop the token_buffer and skip the rest of the line here. 10950 * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer 10951 here. 10952 10953 * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P): 10954 Define here. 10955 (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK, 10956 CPP_GOTO_MARK): New macros. 10957 (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line, 10958 _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token, 10959 _cpp_read_and_prescan, _cpp_init_input_buffer, 10960 _cpp_grow_token_buffer, _cpp_get_directive_token, 10961 _cpp_handle_directive, _cpp_handle_eof, 10962 _cpp_output_line_command): Prototype them here. 10963 * cpplib.h (enum cpp_token): Add CPP_MACRO. 10964 (CPP_RESERVE, get_directive_token, cpp_grow_buffer, 10965 quote_string, output_line_command): Remove. 10966 109672000-03-13 Bernd Schmidt <bernds@cygnus.co.uk> 10968 10969 * stmt.c (expand_end_case): RANGE may be signed, and when checking 10970 whether it is too large we must also verify that it isn't negative. 10971 109722000-03-13 Jakub Jelinek <jakub@redhat.com> 10973 10974 * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0. 10975 (movsi_zero_liveg0): Remove. 10976 (movsf_insn_novis_liveg0): Remove. 10977 (negsi2): Remove. 10978 (negsi2_not_liveg0): Rename to negsi2. 10979 (one_cmplsi2): Remove. 10980 (one_cmplsi2_not_liveg0): Rename to one_cmplsi2. 10981 (one_cmplsi2_liveg0): Remove. 10982 * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE, 10983 MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove. 10984 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if. 10985 (PREDICATE_CODES): Remove zero_operand. 10986 * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and 10987 TARGET_BROKEN_SAVERESTORE. 10988 (zero_operand): Remove. 10989 * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0, 10990 -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore 10991 options. 10992 (SUBTARGET_OVERRIDE_OPTIONS): Remove. 10993 * config/sparc/linux-aout.h (TARGET_LIVE_G0, 10994 TARGET_BROKEN_SAVERESTORE): Remove. 10995 * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): 10996 Remove. 10997 * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): 10998 Remove. 10999 * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): 11000 Remove. 11001 11002 * config/sparc/sparc.md (return_df_no_fpu): New pattern. 11003 110042000-03-13 Zack Weinberg <zack@wolery.cumb.org> 11005 11006 * cpplib.c (do_pragma_implementation): Fix off-by-one error 11007 truncating a string. Don't assume tokens are nul terminated. 11008 Problem noted by Andreas Jaeger <aj@suse.de> 11009 110102000-03-13 Jason Merrill <jason@casey.cygnus.com> 11011 11012 * dwarf2out.c (add_name_and_src_coords_attributes): Only add 11013 DW_AT_MIPS_linkage_name for TREE_PUBLIC decls. 11014 (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline. 11015 110162000-03-13 Richard Earnshaw <rearnsha@arm.com> 11017 11018 * stor-layout.c (new_record_layout_info): Fix typo inside ifdef 11019 STRUCTURE_SIZE_BOUNDARY. 11020 110212000-03-13 Mark Mitchell <mark@codesourcery.com> 11022 11023 * tree.h (record_layout_info_s): New structure. 11024 (record_layout_info): New type. 11025 (new_record_layout_info): New function. 11026 (layout_field): Likewise. 11027 (finish_record_layout): Likewise. 11028 * stor-layout.c (layout_record): Remove. 11029 (new_record_layout_info): New function. 11030 (layout_field): New function, broken out from layout_record. 11031 (finalize_record_size): Likewise. 11032 (compute_record_mode): Likewise. 11033 (finalize_type_size): New function, broken out from layout_type. 11034 (finish_record_layout): Likewise. 11035 (layout_type): Use them. 11036 110372000-03-12 Zack Weinberg <zack@wolery.cumb.org> 11038 11039 * cpphash.c: Don't include version.h. 11040 (special_symbol) [case T_VERSION]: Look for the string in 11041 hp->value.cpval; don't use version_string. 11042 * cppinit.c (initialize_builtins): Set hp->value.cpval for 11043 __VERSION__ to version_string. 11044 * Makefile.in (cpphash.o): Update deps. 11045 110462000-03-12 Zack Weinberg <zack@wolery.cumb.org> 11047 11048 Convert cpplib to use libiberty/hashtab.c. 11049 11050 * cpplib.h (struct cpp_reader): Make hashtab and 11051 all_include_files of type 'struct htab *'. Delete HASHSIZE 11052 and ALL_INCLUDE_HASHSIZE macros. 11053 11054 * cpphash.h: Update prototypes. 11055 (struct hashnode): Remove next, prev, and bucket_hdr members. 11056 Make length a size_t. Add hash member. 11057 (struct ihash): Remove next member. Add hash member. Make 11058 name a flexible array member. 11059 11060 * cppfiles.c: Include hashtab.h. 11061 (include_hash): Delete. 11062 (IHASHSIZE): New macro. 11063 (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions. 11064 (cpp_included): Do the hash lookup here. 11065 (_cpp_find_include_file): Rewrite. 11066 (cpp_read_file): Put the "fake" hash entry into the hash 11067 table. Honor the control_macro, if it turns out we've seen 11068 the file before. Don't push the buffer here. 11069 (_cpp_read_include_file): Push the buffer here. 11070 (OMODES): New macro. Use it whenever we call open(2). 11071 11072 * cpphash.c: Include hashtab.h. 11073 (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper, 11074 _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode, 11075 _cpp_lookup_slot): New functions. 11076 (HASHSIZE): new macro. 11077 (hashf, _cpp_install, _cpp_delete_macro): Delete. 11078 (_cpp_lookup): Use hashtab.h routines. 11079 11080 * cppinit.c: Include hashtab.h. 11081 (cpp_reader_init): Call _cpp_init_macro_hash and 11082 _cpp_init_include_hash. Don't allocate hashtab directly. 11083 (cpp_cleanup): Just call htab_delete on pfile->hashtab and 11084 pfile->all_include_files. 11085 (initialize_builtins): Use _cpp_make_hashnode and 11086 htab_find_slot to add hash entries. 11087 (cpp_finish): Just call _cpp_dump_macro_hash. 11088 * cpplib.c: Include hashtab.h. 11089 (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to 11090 create hash entries. 11091 (do_pragma_poison, do_assert): Likewise. 11092 (do_include): Don't push the buffer here. Don't increment 11093 system_include_depth unless _cpp_read_include_file succeeds. 11094 (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot 11095 or htab_remove_elt. 11096 (do_pragma_implementation): Use alloca to create copy. 11097 11098 * Makefile.in: Update dependencies. 11099 111002000-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11101 11102 * cppinit.c (cl_directive_handler): More K&R fixing. 11103 11104Sat Mar 11 23:54:26 2000 Jim Wilson <wilson@cygnus.com> 11105 11106 * config/ia64/ia64.c (ia64_compute_frame_size): Align size to 11107 STACK_BOUNDARY. 11108 * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses. 11109 111102000-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11111 11112 * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth): 11113 Change from char[] to macros. 11114 111152000-03-12 Neil Booth <NeilB@earthling.net> 11116 11117 * cppinit.c (cpp_start_read): Update indirect function 11118 call to K&R C. 11119 11120Sat Mar 11 16:18:12 2000 Jim Wilson <wilson@cygnus.com> 11121 11122 * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79 11123 entry. 11124 11125 * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, 11126 config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages. 11127 111282000-03-11 Neil Booth <NeilB@earthling.net> 11129 11130 * cppinit.c (struct pending option): Replace undef with a 11131 pointer to a directive handling routine. 11132 (struct cpp_pending): Replace separate assert_ and define_ 11133 lists with one directive_ list. 11134 (new_pending_define): Rename new_pending_directive. Extra 11135 argument is the directive's handling routine. 11136 (handle_option): Update to use new_pending_directive. 11137 111382000-03-11 Neil Booth <NeilB@earthling.net> 11139 11140 * cppfiles.c (file_cleanup, _cpp_find_include_file, 11141 remap_filename, _cpp_read_include_file, actual_directory, 11142 hack_vms_include_specification): Replace bcopy(), index() etc 11143 calls. Add casts to some allocations. Make some variables 11144 pointers to const [unsigned] char. 11145 * cpphash.c (_cpp_install, macro_cleanup, collect_expansion, 11146 collect_formal_parameters): Similarly. 11147 * cppinit.c (struct pending_option, append_include_chain, 11148 cpp_options_init, cpp_reader_init, initialize_standard_includes, 11149 cpp_start_read, new_pending_define, handle_option): Similarly. 11150 * cpplib.c (cpp_define, copy_comment, do_define, do_include, 11151 do_undef, do_error, do_warning, do_pragma, do_pragma_once, 11152 do_pragma_implementation, detect_if_not_defined, 11153 do_ifdef, skip_if_group, cpp_get_token, parse_string, 11154 do_assert, do_unassert): Similarly. 11155 * cpplib.h (cpp_buffer, cpp_options): Update types. Update 11156 function prototypes. 11157 * mkdeps.c (deps_add_target, deps_add_dep): cast allocations. 11158 111592000-03-10 Richard Henderson <rth@cygnus.com> 11160 11161 * builtins.c (expand_builtin_strlen): Revert last change. 11162 Use emit_insn_before if we're at the beginning of a sequence. 11163 111642000-03-10 Jason Merrill <jason@casey.cygnus.com> 11165 11166 * builtins.c (expand_builtin_strlen): Make sure that we have something 11167 at the beginning of the sequence. 11168 11169 * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for 11170 deferred inlines. 11171 11172 * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs. 11173 111742000-03-10 Richard Henderson <rth@cygnus.com> 11175 11176 * except.c (can_throw): Use INTVAL on a CONST_INT. 11177 (reachable_handlers): Likewise. 11178 * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise. 11179 111802000-03-10 Andreas Jaeger <aj@suse.de> 11181 11182 * config/mips/linux.h: Undefine MD_EXEC_PREFIX and 11183 MD_STARTFILE_PREFIX since those are not needed on linux. 11184 (ASM_FILE_START): New, from mips/gnu.h. 11185 111862000-03-09 Richard Henderson <rth@cygnus.com> 11187 Alex Samuel <samuel@codesourcery.com> and others 11188 11189 * Makefile.in (ssa.o): New rule. 11190 (OBJS): Add ssa.o. 11191 (STAGESTUFF): Add *.ssa and *.ussa. 11192 (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa. 11193 * rtl.def (PHI): New RTL expression. 11194 * rtl.h (clear_log_links): New declaration. 11195 (convert_to_ssa): Likewise. 11196 (convert_from_ssa): Likewise. 11197 * flow.c (split_edge): If the entry node falls through to the 11198 split edge's source block, split the entry edge. 11199 (clear_log_links): New function. 11200 * toplev.c (ssa_dump): New variable. 11201 (flag_ssa): Likewise. 11202 (f_options): Add "ssa". 11203 (compile_file): Create SSA dump files. 11204 (rest_of_compilation): Go to and from SSA if enabled. 11205 (decide_d_option): Handle -de for SSA dump files. 11206 * ssa.c: New file. 11207 11208Thu Mar 9 20:01:38 2000 Jim Wilson <wilson@cygnus.com> 11209 11210 * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL 11211 same as VAR_DECL. 11212 112132000-03-09 Benjamin Kosnik <bkoz@cygnus.com> 11214 11215 * config/alpha/linux.h (WCHAR_TYPE): Make consistent. 11216 11217Thu Mar 9 18:10:02 2000 Jeffrey A Law (law@cygnus.com) 11218 11219 * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case. 11220 (MD_STARTFILE_PREFIX_1): New macro. 11221 112222000-03-09 Robert Lipe <robertl@sco.com> 11223 11224 * config/ia64/ia64.c: Include system.h. 11225 112262000-03-09 Jason Merrill <jason@casey.cygnus.com> 11227 11228 * except.c (nothrow_function_p): If -fno-exceptions, just return. 11229 (init_eh_nesting_info): Likewise. 11230 11231 * tree.h (struct tree_common): Rename raises_flag to nothrow_flag. 11232 (TREE_NOTHROW): Rename from TREE_RAISES. 11233 * toplev.c (rest_of_compilation): Set it. 11234 * print-tree.c (print_node): Adjust. 11235 * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES. 11236 (stabilize_reference_1, get_unwidened, get_narrower): Likewise. 11237 * calls.c (emit_call_1): Add 'nothrow' parm. Add 11238 REG_EH_REGION note as appropriate. 11239 (libfunc_nothrow): New fn. 11240 (emit_library_call, emit_library_call_value): Use it. 11241 (expand_call): Check TREE_NOTHROW. 11242 11243 * varasm.c (make_decl_rtl): Skip initial '*' when setting 11244 DECL_ASSEMBLER_NAME. 11245 112462000-03-09 Andreas Jaeger <aj@suse.de> 11247 11248 * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define. 11249 (TARGET_MEM_FUNCTIONS): Define. 11250 112512000-03-09 Jason Merrill <jason@casey.cygnus.com> 11252 11253 * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int. 11254 11255 * except.c (can_throw): See through a SEQUENCE. 11256 (nothrow_function_p): New fn. 11257 * except.h: Declare it. 11258 * function.c (current_function_nothrow): New var. 11259 (prepare_function_start): Initialize it. 11260 * output.h: Declare it. 11261 * toplev.c (rest_of_compilation): Set it. 11262 * dwarf2out.c (dwarf2out_begin_prologue): Use it. 11263 112642000-03-09 Zack Weinberg <zack@wolery.cumb.org> 11265 11266 * cpphash.c (collect_formal_parameters): strncmp returns 0 for 11267 match. (cpp_compare_defs): Count the nul separator when 11268 advancing over argument names. 11269 112702000-03-09 Bernd Schmidt <bernds@cygnus.co.uk> 11271 11272 * recog.c (preprocess_constraints): Matching constraints affect 11273 same alternative/different operand, not same operand/different 11274 alternative. 11275 11276 * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable 11277 register and a constant specially. 11278 112792000-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11280 11281 * libgcc2.h: New file. 11282 * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h. 11283 11284Wed Mar 8 16:19:42 2000 Jim Wilson <wilson@cygnus.com> 11285 11286 * configure.in (ia64*-*-elf*, ia64*-*-linux*): New. 11287 * configure: Regenerate. 11288 * config/ia64: New. 11289 112902000-03-08 Zack Weinberg <zack@wolery.cumb.org> 11291 11292 * Makefile.in (LIBCPP_DEPS): New macro. 11293 (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use 11294 it to declare deps. 11295 * cpperror.c: Include cpphash.h. 11296 * cppexp.c: Include cpphash.h. Remove MULTIBYTE_CHARS 11297 dingleberry. 11298 (lex): Don't use CPP_WARN_UNDEF. 11299 (_cpp_parse_expr): Return an int, the truth value. 11300 * cppfiles.c: Include cpphash.h. 11301 (_cpp_merge_include_chains): Move to cppinit.c and make static. 11302 * cppinit.c (include_defaults_array): Disentangle. 11303 (cpp_cleanup): Don't free the if stack here. 11304 (cpp_finish): Pop off all buffers, not just one. 11305 * cpplib.c (eval_if_expr): Return int. 11306 (do_xifdef): Rename do_ifdef. 11307 (handle_directive): Don't use CPP_PREPROCESSED. 11308 (cpp_get_token): Don't use CPP_C89. 11309 * fix-header.c: Don't use CPP_OPTIONS. 11310 11311 * cpplib.h: Move U_CHAR, enum node_type, struct 11312 file_name_list, struct ihash, is_idchar, is_idstart, 11313 is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK, 11314 CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC, 11315 CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q, 11316 CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER, 11317 CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes 11318 of _cpp_simplify_pathname, _cpp_find_include_file, 11319 _cpp_read_include_file, and _cpp_parse_expr to cpphash.h. 11320 Move struct if_stack to cpplib.c. Move struct cpp_pending to 11321 cppinit.c. 11322 Change all uses of U_CHAR to be unsigned char instead. 11323 Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED. 11324 113252000-03-08 Jason Merrill <jason@casey.cygnus.com> 11326 11327 * dwarf2out.c (dw_fde_struct): Add 'nothrow'. 11328 (dwarf2out_begin_prologue): Set it. 11329 (output_call_frame_info): Don't emit EH unwind info for leaves. 11330 11331 * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow 11332 can occur outside of an EH region. 11333 * except.c: Correct comments about rethrow behavior. 11334 (rethrow_symbol_map): Do nothing if !flag_new_exceptions. 11335 113362000-03-08 Andrew MacLeod <amacleod@cygnus.com> 11337 11338 * flow.c (make_edges): Always call make_eh_edge for calls. 11339 113402000-03-08 Zack Weinberg <zack@wolery.cumb.org> 11341 11342 * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete. 11343 (struct cpp_buffer): Remove fname and underflow fields. 11344 (struct cpp_reader): Remove get_token field. 11345 (struct include_hash): Rename to struct ihash. Add typedef to 11346 IHASH. 11347 (struct if_stack): Remove fname field. 11348 (IF_STACK_FRAME): Rename to IF_STACK. 11349 11350 * cpperror.c (print_containing_files): Trust that there are no 11351 macro buffers below the top file buffer. 11352 * cppfiles.c: Replace all references to 'struct include_hash' 11353 with 'IHASH'. Rename initialize_input_buffer to 11354 init_input_buffer. Don't set or reference cpp_buffer->fname, 11355 use buffer->ihash->name instead. 11356 * cpphash.c (special_symbol): Use cpp_file_buffer. Use NULL 11357 not CPP_NULL_BUFFER. 11358 * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not 11359 IF_STACK_FRAME, IHASH not struct include_hash. 11360 * cpplib.c: Rename eval_if_expression to eval_if_expr. Remove 11361 null_underflow. Use IF_STACK not IF_STACK_FRAME, IHASH not 11362 struct include_hash, NULL not CPP_NULL_BUFFER. Remove all 11363 references to cpp_buffer->fname (delete entirely, or use 11364 ->ihash->name instead) and IF_STACK->fname. 11365 (cpp_push_buffer): Don't set new->underflow. 11366 (do_include): Use cpp_file_buffer. 11367 11368 * cpphash.c (collect_formal_parameters): Remove duplicate 11369 increment of argslen. Pedwarn in C99 mode if __VA_ARGS__ is 11370 used as a macro argument name. Don't append "..." to namebuf 11371 for varargs macros. After we're done scanning, go through 11372 namebuf and make it NUL separated, not comma separated. 11373 (_cpp_compare_defs): Remove register tag from variables. 11374 Expect defn->argnames to be NUL separated. 11375 (_cpp_dump_definition): Expect defn->argnames to be NUL 11376 separated and in forward order. 11377 * cpphash.h: Update documentation of argnames field. 11378 113792000-03-08 Richard Henderson <rth@cygnus.com> 11380 11381 * builtins.c (expand_builtin_strlen): Be prepared for strlensi 11382 to fail. Don't pre-expand the source operand. 11383 11384 * i386.md (strlensi): Initialize eoschar and align before use. 11385 113862000-03-08 Jason Merrill <jason@casey.cygnus.com> 11387 11388 * expr.c (expand_expr, case ARRAY_REF): Still check for missing 11389 CONSTRUCTOR element. 11390 113912000-03-08 Gavin Romig-Koch <gavin@cetus.cygnus.com> 11392 11393 * mips.c (mips_expand_prologue): If the last 11394 named argument is the vararg marker "va_list", treat it as 11395 an unnamed argument. 11396 113972000-03-08 Clinton Popetz <cpopetz@cygnus.com> 11398 11399 * dbxout.c (dbxout_parms): When correcting for promoted 11400 big-endian parameters, use the mode of the DECL_RTL rather 11401 than UNITS_PER_WORD. 11402 114032000-03-08 Nathan Sidwell <nathan@codesourcery.com> 11404 11405 * c-common.h (make_fname_decl): Declare. 11406 * c-common.c (make_fname_decl): Define. 11407 (declare_hidden_char_array): Remove. 11408 (declare_function_name): Use make_fname_decl. 11409 * c-decl.c (c_make_fname_decl): New function. 11410 (init_decl_processing): Set make_fname_decl. 11411 11412Tue Mar 7 23:50:31 2000 Jeffrey A Law (law@cygnus.com) 11413 11414 * cccp.c (handle_directive): Initialize backslash_newlines_p. 11415 114162000-03-07 Philipp Thomas <pthomas@suse.de> 11417 11418 * po/POTFILES.in: Remove cppalloc.c from file list. 11419 114202000-03-07 Steve Chamberlain <sac@pobox.com> 11421 11422 * pj.c (pj_expand_prologue): current_function->args_info is 11423 now current_function_args_info. 11424 11425 * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX, 11426 LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL, 11427 ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define. 11428 114292000-03-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 11430 11431 * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is 11432 output as hexadecimal rather than the default octal. 11433 114342000-03-07 Zack Weinberg <zack@wolery.cumb.org> 11435 11436 * cpphash.c (special_symbol): Fix thinko in previous commit. 11437 114382000-03-07 Neil Booth <NeilB@earthling.net> 11439 11440 * cppexp.c (struct operation, left_shift, right_shift, 11441 cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some 11442 "int"s to "unsigned int"s. 11443 * cpplib.c (detect_if_not_defined, do_assert, do_unassert): 11444 Similarly. 11445 * cpplib.h: Update for above. 11446 * mkdeps.c (deps_init, deps_calc_target): Cast pointers 11447 returned from allocations. 11448 11449 * cppinit.c (opt_comp, parse_options): New functions. 11450 (handle_option): Use parse_option to parse a single command 11451 line option, that possibly takes an argument. 11452 (cpp_handle_options): Sort the array of command line options on 11453 first invocation (non-ASCII hosts only). 11454 (print_help): Update. 11455 114562000-03-07 Zack Weinberg <zack@wolery.cumb.org> 11457 11458 * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in 11459 backslash counting loops. Problem noted by Matt Kraai <kraai@ghs.com>. 11460 11461 * cppfiles.c (_cpp_find_include_file): Make sure ih->name is 11462 initialized. 11463 * cppinit.c (cpp_cleanup): Free imp->nshort also. 11464 11465 * cpperror.c (cpp_print_containing_files, 11466 cpp_print_file_and_line, v_cpp_message): Rename to 11467 print_containing_files, print_file_and_line, and v_message. 11468 * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename 11469 to _cpp_parse_expr, parse_escape, and lex. 11470 (parse_charconst): Remove broken multibyte support. 11471 * cppfiles.c (include_hash): Make static. 11472 (cpp_included): New function. 11473 (merge_include_chains, find_include_file, finclude, 11474 simplify_pathname): Rename to _cpp_merge_include_chains, 11475 _cpp_find_include_file, _cpp_read_include_file, and 11476 _cpp_simplify_pathname. 11477 * cpphash.c (cpp_lookup, free_definition, delete_macro, 11478 cpp_install, create_definition, macroexpand, compare_defs, 11479 dump_definition): Rename to _cpp_lookup, _cpp_free_definition, 11480 _cpp_delete_macro, _cpp_install, _cpp_create_definition, 11481 _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition. 11482 * cppinit.c (cpp_handle_option): Rename to handle_option, make 11483 static. 11484 * cpplib.c: Remove extern prototype of cpp_parse_expr. 11485 11486 * cpphash.h: Update prototypes. 11487 * cpplib.h: Likewise. Prototype _cpp_parse_expr here. 11488 114892000-03-07 Andrew Haley <aph@cygnus.com> 11490 11491 * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change; 11492 PTRDIFF_TYPE should be based solely on Pmode. 11493 (SIZE_TYPE): ditto. 11494 114952000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11496 11497 * rtl.h (rtunion_def): Constify member `rtstr'. 11498 (emit_line_note_after, emit_line_note, emit_line_note_force, 11499 emit_note, decode_asm_operands): Constify. 11500 11501 * cse.c (canon_hash): Likewise. 11502 11503 * dbxout.c (dbxout_block): Likewise. 11504 11505 * diagnostic.c (file_and_line_for_asm, v_error_for_asm, 11506 v_warning_for_asm): Likewise. 11507 11508 * dwarfout.c (function_start_label): Likewise. 11509 11510 * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note, 11511 emit_line_note_force): Likewise. 11512 11513 * final.c (last_filename, asm_insn_count, final_scan_insn, 11514 output_source_line): Likewise. 11515 11516 * function.h (struct emit_status): Likewise. 11517 11518 * gcse.c (hash_expr_1): Likewise. 11519 11520 * genattr.c (gen_attr, main): Likewise. 11521 11522 * genattrtab.c (struct function_unit, current_alternative_string, 11523 write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq, 11524 attr_numeral, check_attr_test, check_attr_value, 11525 convert_set_attr_alternative, convert_set_attr, 11526 compute_alternative_mask, simplify_by_exploding, gen_attr, 11527 gen_unit): Likewise. 11528 11529 * genflags.c (gen_insn): Likewise. 11530 11531 * gengenrtl.c (type_from_format): Likewise. 11532 11533 * genopinit.c (gen_insn): Likewise. 11534 11535 * genoutput.c (n_occurrences, process_template, process_template): 11536 Likewise. 11537 11538 * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): 11539 Likewise. 11540 11541 * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): 11542 Likewise. 11543 11544 * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable, 11545 ggc_set_mark, ggc_get_size): Likewise. 11546 11547 * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise. 11548 11549 * optabs.c (init_one_libfunc): Likewise. 11550 11551 * output.h (assemble_start_function): Likewise. 11552 11553 * recog.c (decode_asm_operands): Likewise. 11554 11555 * toplev.c (rest_of_compilation): Likewise. 11556 11557 * tree.h (emit_line_note_after, emit_line_note, 11558 emit_line_note_force): Likewise. 11559 11560 * varasm.c (asm_output_bss, asm_output_aligned_bss, 11561 asm_emit_uninitialised, assemble_start_function, 11562 assemble_variable, const_hash, compare_constant_1, 11563 find_pool_constant, mark_constant_pool, assemble_alias): Likewise. 11564 11565 * xcoffout.h (DBX_FINISH_SYMBOL): Likewise. 11566 11567 * alpha/alpha.md (call_vms, call_value_vms): Likewise. 11568 11569 * arm/aof.h (ASM_OUTPUT_ASCII): Likewise. 11570 11571 * arm/aout.h (ASM_OUTPUT_ASCII): Likewise. 11572 11573 * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p, 11574 arm_dllimport_name_p): Likewise. 11575 11576 * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op): 11577 Likewise. 11578 11579 * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise. 11580 11581 * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11582 11583 * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p, 11584 arm_mark_dllexport, arm_mark_dllimport, 11585 arm_pe_encode_section_info): Likewise. 11586 11587 * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS, 11588 ASM_FINISH_DECLARE_OBJECT): Likewise. 11589 11590 * arm/thumb.c (thumb_function_prologue): Likewise. 11591 11592 * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise. 11593 11594 * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11595 11596 * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise. 11597 11598 * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise. 11599 11600 * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise. 11601 11602 * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11603 11604 * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING, 11605 ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise. 11606 11607 * i386/i386-protos.h (asm_output_function_prefix): Likewise. 11608 11609 * i386/i386.c (asm_output_function_prefix): Likewise. 11610 11611 * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise. 11612 11613 * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11614 11615 * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise. 11616 11617 * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT, 11618 ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII, 11619 ASM_OUTPUT_SECTION_NAME): Likewise. 11620 11621 * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise. 11622 11623 * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise. 11624 11625 * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise. 11626 11627 * m32r/m32r.c (m32r_encode_section_info): Likewise. 11628 11629 * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11630 11631 * mcore/mcore.c (mcore_encode_section_info): Likewise. 11632 11633 * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11634 11635 * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11636 11637 * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11638 11639 * mips/mips.h (ASM_OUTPUT_IDENT): Likewise. 11640 11641 * mips/mips.md (movdi, movsi): Likewise. 11642 11643 * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11644 11645 * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11646 11647 * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. 11648 11649 * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING, 11650 ASM_OUTPUT_ASCII): Likewise. 11651 11652 * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog, 11653 output_mi_thunk, output_toc): Likewise. 11654 11655 * rs6000/rs6000.md (movsi): Likewise. 11656 11657 * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise. 11658 11659 * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise. 11660 11661 * v850/v850.c (print_operand, print_operand_address, 11662 v850_encode_data_area): Likewise. 11663 116642000-03-07 Clinton Popetz <cpopetz@cygnus.com> 11665 11666 * config/mips/mips.md (zero_extendsidi2): Always force operand 11667 one to memory for mips16. 11668 11669Mon Mar 6 15:22:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11670 11671 * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts. 11672 (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT. 11673 (attribute_hash_list, type_hash_canon): hashcode is now unsigned. 11674 (type_hash_lookup, type_hash_add, type_hash_list): Likewise. 11675 (min_precision): Result is unsigned. 11676 (add_double, neg_double, mul_double): Low word is unsigned. 11677 (lshift_double, rshift_double, lrotate_double): Likewise. 11678 (rrotate_double, div_and_round_double): Likewise. 11679 (tree_floor_log2, compare_tree_int): New functions. 11680 (preserve_rtl_expr_temps): New declaration. 11681 * c-common.c (declare_hidden_char_array): Use compare_tree_int. 11682 (decl_attributes): Use tree_log2 to find alignment. 11683 Check for TREE_INT_CST_HIGH for format args. 11684 (min_precision): Now unsigned. 11685 Use tree_floor_log2. 11686 (truthvalue_conversion): Delete long-disabled code. 11687 * c-decl.c (finish_struct): Clean up tests on field width. 11688 (finish_function): Use compare_tree_int. 11689 * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment. 11690 * c-typeck.c (comptypes): Use tree_int_cst_equal. 11691 (default_conversion, digest_init): Use compare_tree_int. 11692 (build_binary_op): Use integer_all_onesp and compare_tree_int. 11693 Fix type errors in forming masks. 11694 * calls.c (initialize_argument_information): Use compare_tree_int. 11695 * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 11696 * except.c (expand_eh_region_start_tree): Use compare_tree_int. 11697 * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop. 11698 (store_field): Use compare_tree_int. 11699 (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT. 11700 (expand_expr, case ARRAY_REF): Use compare_tree_int. 11701 (do_jump, case BIT_AND_EXPR): Use tree_floor_log2. 11702 (do_store_flag): Use compare_tree_int. 11703 * fold-const.c (encode, decode): Low part is always unsigned. 11704 (force_fit_type, add_double, neg_double, mul_double): Likewise. 11705 (lshift_double, rshift_double, lrotate_double): Likewise. 11706 (rrotate_double, div_and_round_double, int_const_binop): Likewise. 11707 (fold_convert): Use compare_tree_int. 11708 (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal. 11709 (invert_truthvalue, case INTEGER_CST): Likewise. 11710 (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW. 11711 * mkdeps.c (deps_dummy_targets): Make I unsigned. 11712 * rtl.h (add_double, neg_double, mul_double): Low words are unsigned. 11713 (lshift_double, rshift_double, lrotate_double, rrotate_double): 11714 Likewise. 11715 * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree. 11716 (expand_end_case): Use compare_tree_int. 11717 (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 11718 * stor-layout.c (mode_for_size_tree): Use compare_tree_int. 11719 (layout_decl): Likewise. 11720 (layout_record, layout_union): Make sizes unsigned. 11721 (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype. 11722 (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int. 11723 * tree.c (struct type_hash): hashcode is unsigned. 11724 (build_type_attribute_variant, type_hash_list): Likewise. 11725 (type_hash_lookup, type_hash_add, type_hash_canon): Likewise. 11726 (attribute_hash_list, build_array_type, build_method_type): Likewise. 11727 (build_complex_type): Likewise. 11728 (real_value_from_int_cst): Remove unneeded casts. 11729 (integer_all_onesp): Add casts. 11730 (tree_floor_log2, compare_tree_int): New functions. 11731 (build_index_type): Use tree_int_cst_sgn. 11732 * varasm.c (assemble_variable): Use compare_tree_int. 11733 117342000-03-06 Jason Merrill <jason@casey.cygnus.com> 11735 11736 * cpphash.c (collect_expansion): Also catch ## at start of macro. 11737 11738 * varasm.c (make_decl_rtl): Don't add a number to members of 11739 local classes. 11740 (make_function_rtl): Likewise. 11741 117422000-03-06 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 11743 11744 * gcse.c (compute_can_copy): Adjust if/else blocks from rth's 11745 patch from 2000-01-28. 11746 117472000-03-06 Clinton Popetz <cpopetz@cygnus.com> 11748 11749 * config/sh/sh.c: (barrier_align): Handle a delay slot that is 11750 filled with an insn from the jump target. 11751 117522000-03-07 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 11753 11754 * config/c4x/c4x-protos.h (c4x_global_name): Constify char *. 11755 (c4x_external_ref): Likewise. 11756 * config/c4x/c4x.c (struct name_list): Likewise. 11757 117581999-12-16 Ben Collins <bcollins@debian.org> 11759 11760 * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth 11761 argument to genmultilib. 11762 * genmultilib: accept new MULTILIB_EXCLUSIONS option and output 11763 the contents into the multilib.h header. 11764 * gcc.c: Declare multilib_exclusions for the specs file. 11765 (set_multilib_dir): Use it. 11766 (print_multilib_info): Likewise. 11767 * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option 11768 to pass to genmultilib. 11769 117702000-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11771 11772 * builtins.c (built_in_class_names, built_in_names): Constify a 11773 char*. 11774 11775 * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not 11776 int. 11777 (_mcleanup): Ensure value matches format specifier in sprintf. 11778 11779 * cpphash.c (special_symbol): Don't needlessly cast away 11780 const-ness. 11781 11782 * cppinit.c (base_name): Delete unused prototype. 11783 11784 * mkdeps.c (deps_init): Make definition K&R safe. 11785 11786 * tree.h (built_in_class_names, built_in_names): Constify a 11787 char*. 11788 117892000-03-06 Jakub Jelinek <jakub@redhat.com> 11790 11791 * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept 11792 floating point instructions for epilogue delay. 11793 11794 * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs 11795 to gas if it supports .register pseudo. 11796 11797 * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to 11798 LONG_DOUBLE_TYPE_SIZE if not defined. 11799 Use MAX_LONG_DOUBLE_TYPE_SIZE instead of 11800 LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses. 11801 * real.c: Likewise. 11802 * gengenrtl.c: Likewise. 11803 * print-rtl.c: Likewise. 11804 * rtl.c: Likewise. 11805 * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set 11806 MASK_LONG_DOUBLE_128. 11807 * config/sparc/sol2.h (TARGET_DEFAULT): Likewise. 11808 * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise. 11809 * config/sparc/linux64 (TARGET_DEFAULT): Likewise. 11810 (SUBTARGET_SWITCHES): Define. 11811 (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling 11812 with -mlong-double-128. 11813 (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. 11814 (MAX_LONG_DOUBLE_TYPE_SIZE): Define. 11815 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. 11816 (CC1_SPEC): Include -mlong-double-{64,128} as needed. 11817 * config/sparc/linux.h (SUBTARGET_SWITCHES): Define. 11818 (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling 11819 with -mlong-double-128. 11820 (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. 11821 (MAX_LONG_DOUBLE_TYPE_SIZE): Define. 11822 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. 11823 * config/sparc/sparc.h (MASK_LONG_DOUBLE_128, 11824 TARGET_LONG_DOUBLE_128): Define. 11825 * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove. 11826 * config/sparc/sparc.c (sparc_override_options): Disallow 64bit 11827 long double on TARGET_ARCH64. 11828 118292000-03-06 Mark Mitchell <mark@codesourcery.com> 11830 11831 * function.c (free_temps_for_rtl_expr): Don't free slots 11832 that have been pushed into a higher level. 11833 11834 Revert this patch: 11835 2000-03-05 Mark Mitchell <mark@codesourcery.com> 11836 118372000-03-05 Mark Mitchell <mark@codesourcery.com> 11838 11839 * basic-block.h (ALLOCA_REG_SET): Remove. 11840 (INITIALIZE_REG_SET): New macro. 11841 * flow.c (update_life_info): Use it. 11842 (calculate_global_regs_live): Likewise. 11843 (propagate_block): Likewise. 11844 * global.c (build_insn_chain): Likewise. 11845 * haifa-sched.c (schedule_region): Likewise. 11846 118472000-03-05 Stephane Carrez <stcarrez@worldnet.fr> 11848 11849 * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer. 11850 (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP. 11851 (DWARF_ARANGES_PAD_SIZE): New define. 11852 (output_aranges): Use it to pad the address range header. 11853 (DWARF_ROUND): Fix for non power of 2 rounding. 11854 118552000-03-05 Jason Merrill <jason@casey.cygnus.com> 11856 11857 * mkdeps.c (deps_calc_target): Remove incorrect 'const'. 11858 118592000-03-05 Mark Mitchell <mark@codesourcery.com> 11860 11861 * tree.def (RTL_EXPR): Update documentation. 11862 * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro. 11863 * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE. 11864 * function.c (preserve_rtl_expr_temp): New function. 11865 (preserve_rtl_expr_temps): Likewise. 11866 (preserve_rtl_expr_result): Use it. 11867 11868 Revert this patch: 11869 2000-03-04 Mark Mitchell <mark@codesourcery.com> 11870 118712000-03-04 Thomas Schuster <Thomas.Schuster@gmx.net> 11872 11873 * regmove.c (copy_src_to_dest) Do not create src->dest move 11874 for unchanging destination. 11875 118762000-03-04 Mark Mitchell <mark@codesourcery.com> 11877 11878 * function.h (struct sequence_stack): Remove rtl_expr. 11879 (struct emit_staus): Likewise. 11880 (seq_rtl_expr): Remove. 11881 * tree.h (free_temps_for_rtl_expr): Don't declare. 11882 (start_sequence_for_rtl_expr): Likewise. 11883 * rtl.h (preserve_rtl_expr_result): Likewise. 11884 * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr. 11885 (start_sequence_for_rtl_expr): Remove. 11886 (push_topmost_sequence): Don't save sequence_rtl_expr. 11887 (pop_topmost_sequence): Remove comment about not restoring it. 11888 (end_sequence): Don't set seq_rtl_expr. 11889 (init_emit): Don't initialize it. 11890 (mark_sequence_stack): Don't mark it. 11891 (mark_emit_status): Likewise. 11892 * except.c (protect_with_terminate): Use 11893 start_sequence_for_rtl_expr, not start_sequence. 11894 * expr.c (expand_expr, case RTL_EXPR): Don't call 11895 preserve_rtl_expr_result or free_temps_for_rtl_expr. 11896 * function.c (assign_stack_temp_for_type): Don't set rtl_expr. 11897 (preserve_rtl_expr_result): Remove. 11898 (free_temps_for_rtl_expr): Likewise. 11899 (pop_temp_slots): Likewise. 11900 (mark_temp_slot): Don't mark the rtl_expr. 11901 * stmt.c (expand_start_stmt_expr): Use start_sequence, not 11902 start_sequence_for_rtl_expr. 11903 119042000-03-04 Zack Weinberg <zack@wolery.cumb.org> 11905 11906 * mkdeps.c, mkdeps.h: New files. 11907 * po/POTFILES.in: Add them. 11908 * Makefile.in (LIBCPP_OBJS): Add mkdeps.o. 11909 (cpplib.o, cppinit.o): Depend on mkdeps.h. 11910 (mkdeps.o): New target. 11911 11912 * cppfiles.c: Delete deps_output. 11913 * cppinit.c: Include mkdeps.h. Delete known_suffixes, 11914 OBJECT_SUFFIX, and base_name. 11915 (cpp_cleanup): Use deps_free. Free ihash->name when clearing 11916 the include hash. 11917 (initialize_dependency_output): Use deps_init, 11918 deps_add_target, deps_calc_target, and deps_add_dep. Remove 11919 all the unnecessary string bashing. 11920 (cpp_finish): Use deps_write. Remove an unnecessary nesting 11921 level. 11922 * cpplib.c (do_include): Use deps_add_dep. 11923 * cpplib.h (struct cpp_reader): Replace deps_buffer, 11924 deps_allocated_size, deps_size, deps_column members with 11925 single pointer to a struct deps. Delete prototype of 11926 deps_output. 11927 11928 * cppinit.c: Fix thinko in previous patch. 11929 11930Sat Mar 4 11:32:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 11931 11932 * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed. 11933 * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise. 11934 (mode_for_size_tree): New function. 11935 (layout_decl, layout_type): Call it and clean up BLKmode checks. 11936 * tree.h (mode_for_size_tree): New declaration. 11937 11938 * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused. 11939 119402000-03-04 Jason Merrill <jason@casey.cygnus.com> 11941 11942 * stmt.c (is_body_block): Move... 11943 * dwarfout.c, dwarf2out.c: ...from here. 11944 * tree.h: Declare it. 11945 * emit-rtl.c (remove_unnecessary_notes): Don't remove the body block. 11946 * final.c (final_start_function): Do call remove_unnecessary_notes 11947 when scheduling. 11948 119492000-03-03 Zack Weinberg <zack@wolery.cumb.org> 11950 11951 * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX. 11952 11953 * cpplib.h (_dollar_ok): New macro. 11954 (is_idchar, is_idstart): Use it. 11955 (IStable): Rename to _cpp_IStable. Declare it const if 11956 gcc >=2.7 or C99. Delete all references to FAKE_CONST. 11957 (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace, 11958 is_space): Update for renamed IStable. 11959 11960 * cppinit.c: Delete all references to FAKE_CONST and CAT 11961 macros. Define init_IStable as empty macro if gcc >=2.7 or 11962 C99. Change TABLE() to ISTABLE and hardcode name of table. 11963 (cpp_start_read): Don't change the IStable based on 11964 dollars_in_ident. 11965 11966 * cpphash.c (unsafe_chars): Add pfile argument. All callers 11967 changed. Handle '$' for char1 correctly. 11968 * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers. 11969 11970 * cppexp.c (tokentab2): Make const. 11971 (cpp_lex): Make toktab const. 11972 * cppinit.c (include_defaults_array): Make const. 11973 (initialize_standard_includes): Make default_include const. 11974 119752000-03-03 Jason Merrill <jason@casey.cygnus.com> 11976 11977 * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning. 11978 (dwarf2out_decl): Functions can now have DECL_IGNORED_P. 11979 (gen_decl_die): Likewise. 11980 * dwarfout.c (dwarfout_file_scope_decl): Likewise. 11981 (output_decl): Likewise. 11982 11983 * varasm.c (make_function_rtl): If we change the name used in the 11984 rtl, update DECL_ASSEMBLER_NAME accordingly. 11985 (make_decl_rtl): Likewise. 11986 11987 * toplev.c (rest_of_compilation): Tweak formatting. 11988 11989 * toplev.c (rest_of_compilation): find_loop_tree_blocks before 11990 remove_unnecessary_notes. 11991 (debug_ignore_block): New fn. 11992 * toplev.h: Declare it. 11993 * emit-rtl.c (remove_unnecessary_notes): Call it. 11994 * dwarf2out.c (dwarf2out_ignore_block): New fn. 11995 * dwarf2out.h: Declare it. 11996 * final.c (final_start_function): Don't call remove_unnecessary_notes 11997 if we did insn scheduling. 11998 119992000-03-03 Zack Weinberg <zack@wolery.cumb.org> 12000 12001 * cppinit.c (cpp_handle_option): Set opts->pedantic directly. 12002 * cpplib.h: Delete SET_CPP_PEDANTIC. 12003 12004Fri Mar 3 14:56:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12005 12006 * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if 12007 result is a RECORD_TYPE. 12008 120092000-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk> 12010 12011 * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added. 12012 120132000-03-03 Richard Henderson <rth@cygnus.com> 12014 12015 * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer 12016 addition over compliments over shifts. 12017 12018Fri Mar 3 12:49:28 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 12019 12020 * reload1.c (reload_combine_note_use): Handle return register USEs. 12021 REG case: Handle multi-hard-register hard regs. 12022 12023Fri Mar 3 07:38:34 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12024 12025 * md.texi: Document use of '*' in insn pattern name. 12026 120272000-03-03 Jason Merrill <jason@casey.cygnus.com> 12028 12029 * calls.c (special_function_p): operator new may not be malloc-like. 12030 12031 * gcse.c (dump_hash_table): Really fix error in last change. 12032 120332000-03-02 Denis Chertykov <denisc@overta.ru> 12034 12035 * avr.c (print_operand): Use print_operand_address instead of 12036 output_addr_const. 12037 * avr/libgcc.S: Cleanup code. 12038 120392000-03-02 Richard Henderson <rth@cygnus.com> 12040 12041 * alpha.c (alpha_emit_set_const_1): Also try c + small constant. 12042 120432000-03-02 Mark Mitchell <mark@codesourcery.com> 12044 12045 * tree.h (TYPE_ALIGN_UNIT): New macro. 12046 120472000-03-02 Clinton Popetz <cpopetz@cygnus.com> 12048 12049 * i386.c: (constant_call_address_operand): Reject CONST_INT. 12050 120512000-03-02 Jason Merrill <jason@casey.cygnus.com> 12052 12053 * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set 12054 for the buffer. 12055 (SET_CPP_PEDANTIC): New macro. 12056 * cpplib.c (do_include): Don't bother checking system_header_p. 12057 (do_warning, do_ident, do_assert, do_unassert): Likewise. 12058 * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC. 12059 12060 * function.h (struct expr_status): Add x_arg_space_so_far. 12061 (arg_space_so_far): New macro. 12062 * expr.c (init_expr): Initialize it. 12063 * calls.c (emit_call_1): Reset it. 12064 (compute_argument_block_size, expand_call): Use it. 12065 (expand_call, store_one_arg): Increment it. 12066 12067Thu Mar 2 17:27:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12068 12069 * varasm.c (output_constant): Strip off a CONVERT_EXPR to 12070 a UNION_TYPE. 12071 120722000-03-02 Zack Weinberg <zack@wolery.cumb.org> 12073 12074 * cppfiles.c (cpp_read_file): New function. 12075 12076 * cpphash.c (collect_expansion): Make sure to reset last_token 12077 to NORM when we hit a string. Handle trailing whitespace 12078 properly when the expansion is empty. 12079 (create_definition): Disable line commands while parsing the 12080 directive line. 12081 (dump_definition): If pfile->lineno == 0, output a line 12082 command ahead of the dump, and add a trailing newline. 12083 12084 * cppinit.c (append_include_chain): Add fifth argument, which 12085 indicates whether or not system headers are C++ aware. 12086 (initialize_standard_includes): New function, 12087 broken out of read_and_prescan. Pass 'cxx_aware' value from 12088 the include_defaults_array on to append_include_chain. 12089 (dump_special_to_buffer): Const-ify char array. 12090 (builtin_array): Don't dump __BASE_FILE__. 12091 (cpp_start_read): Use cpp_read_file. Reorder code for 12092 clarity. Don't output line commands here for -D/-A/-U 12093 switches. Don't call deps_output for files included with 12094 -include or -imacros. 12095 12096 * cpplib.c (do_define): Don't pay any attention to the second 12097 argument. 12098 (cpp_expand_to_buffer): Disable line commands while scanning. 12099 (output_line_command): Work in the file buffer. 12100 * cpplib.h: Remove no_record_file flag from struct cpp_reader. 12101 Fix formatting of comments. Prototype cpp_read_file. 12102 12103Thu Mar 2 13:29:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12104 12105 * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink 12106 reference the language-equivalent of sizetype. 12107 * c-typeck.c (comptypes): Treat sizetype like its language equivalent. 12108 * fold-const.c (size_binop, size_diffop): Put back checks. 12109 * gcse.c (dump_hash_table): Fix minor error in last change. 12110 * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype. 12111 Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of 12112 all sizetypes. 12113 12114Thu Mar 2 12:48:45 MET 2000 Jan Hubicka <jh@suse.cz> 12115 12116 * calls.c (expand_call) Do not attempt to combine stack adjustments 12117 with inhibit_defer_pop set. 12118 121192000-03-01 Mark Mitchell <mark@codesourcery.com> 12120 12121 * stor-layout.c (layout_decl): Allow front-ends to explicitly set 12122 the DECL_SIZE for a FIELD_DECL. 12123 121242000-03-01 Bruce Korb <bkorb@gnu.org> 12125 12126 * fixinc/inclhack.tpl: remove unused symlinks 12127 * fixinc/README: GCC Maintainer info 12128 * fixinc/inclhack.sh: regen 12129 * fixinc/fixincl.sh: regen 12130 121312000-03-01 Zack Weinberg <zack@wolery.cumb.org> 12132 12133 * cpphash.c (collect_expansion): Trim trailing white space 12134 from macro definitions, but don't go past the last insertion 12135 point. 12136 12137Wed Mar 1 12:14:31 MET 2000 Jan Hubicka <jh@suse.cz> 12138 12139 * i386.md (mulqi3): New pattern. 12140 121412000-02-29 Zack Weinberg <zack@wolery.cumb.org> 12142 12143 * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New 12144 token types. 12145 (struct cpp_reader): Add parsing_if_directive and 12146 parsing_define_directive flags. 12147 (struct cpp_options): Remove output_conditionals flag. 12148 (check_macro_name): Delete prototype. 12149 12150 * cpphash.h (struct macrodef): Delete. 12151 (struct reflist): Separate from struct definition. 12152 (struct definition): Remove unused fields. Add column number. 12153 (create_definition): Returns a DEFINITION *. Takes a 12154 cpp_reader * and an int. 12155 12156 * cpphash.c (SKIP_WHITE_SPACE): Delete. 12157 (PEEKC): Copy defn from cpplib.c. 12158 (rest_extension, REST_EXTENSION_LENGTH): Delete. 12159 (struct arg): New. 12160 (struct arglist): Simplify. 12161 (collect_expansion): Rewrite. Get tokens by calling 12162 cpp_get_token. Add more error checking. 12163 (collect_formal_parameters): New function, broken out of 12164 create_definition and reworked to use get_directive_token. 12165 (create_definition): All real work is now in collect_expansion 12166 and collect_formal_parameters. do_define handles finding the 12167 macro name. Return a DEFINITION, not a MACRODEF. 12168 (macroexpand): Replace bcopy with memcpy throughout. Replace 12169 character-at-a-time copy loop with memcpy and pointer increments. 12170 (compare-defs): d1->argnames / d2->argnames might be null. 12171 12172 * cpplib.c (copy_rest_of_line): Delete function. 12173 (skip_rest_of_line): Do all the work ourselves. 12174 (skip_string): New function. 12175 (parse_string): Use skip_string. 12176 (get_macro_name): New function. 12177 (check_macro_name): Delete. 12178 (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q. 12179 (cpp_skip_hspace): Use CPP_BUMP_LINE. 12180 (handle_directive): ICE if we're called on a macro buffer. 12181 (do_define): Determine macro name and type (funlike/objlike) 12182 here. Expunge all uses of MACRODEF. 12183 (cpp_push_buffer): Set line_base to NULL. 12184 (do_undef, read_line_number): Don't worry about getting a POP token. 12185 (eval_if_expression): Set/reset parsing_if_directive around 12186 cpp_parse_expr. Don't clear only_seen_white. 12187 (skip_if_group): Remove output_conditionals logic. Use 12188 skip_rest_of_line. 12189 (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE 12190 tokens under appropriate conditions. 12191 (cpp_unassert): Call do_unassert not do_assert. Oops. 12192 12193 * cppexp.c (parse_defined): New function, break out of 12194 cpp_lex. 12195 (cpp_lex): We now get CPP_ASSERTION tokens and can check them 12196 ourselves, with cpp_defined. 12197 * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput. 12198 12199 * gcc.dg/20000209-2.c: Turn off -pedantic-errors. 12200 * gcc.dg/strpaste-2.c: New. 12201 122022000-02-29 Mark Mitchell <mark@codesourcery.com> 12203 12204 * fold-const.c (size_binop): Don't asert inputs are the same and 12205 have TYPE_IS_SIZETYPE set. 12206 (size_diffop): Likewise. 12207 122082000-02-29 Jason Merrill <jason@casey.cygnus.com> 12209 12210 * dwarfout.c (output_block): Output abstract blocks even if they 12211 don't have TREE_ASM_WRITTEN set. 12212 12213 * calls.c (emit_library_call): Check for null REG. 12214 122152000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> 12216 12217 * c-decl.c (current_function_decl): Move to toplev.c. 12218 (init_decl_processing): Don't add current_function_decl as a ggc 12219 root here. 12220 * dbxout.c (dbxout_symbol): Change return type to int. 12221 (dbxout_symbol_location, dbxout_syms): Likewise. 12222 (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without 12223 any locals. Use current_function_func_begin_label if set. 12224 * dbxout.h (dbxout_symbol, dbxout_syms): Change return type. 12225 * dwarf2out.c (dwarf2out_begin_prologue): Set 12226 current_function_func_begin_label. 12227 * final.c (final_start_function): Reset it. 12228 * toplev.c (current_function_decl): Define it here. 12229 (current_function_func_begin_label): New variable. 12230 (main): Add both as ggc roots. 12231 * tree.h (current_function_func_begin_label): Declare. 12232 12233Tue Feb 29 14:07:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12234 12235 * gcse.c: Cleanups throughout: mostly white-space, but also 12236 some minor rearrangement of code. 12237 12238Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com) 12239 12240 * calls.c (emit_library_call): Do not abort if FUNCTION_ARG 12241 returns a PARALLEL. Use emit_group_load and use_group_regs 12242 as needed. 12243 (emit_library_call_value): Similarly. 12244 12245 * pa/t-pa: Use quadlib.c instead of quadlib.asm. 12246 * pa/quadlib.asm: Remove. 12247 * pa/quadlib.c: New file. 12248 12249 * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format. 12250 * configure: Rebuilt. 12251 122522000-02-29 Philip Blundell <pb@futuretv.com> 12253 12254 * config/arm/conix-elf.h: New file. 12255 * configure.in (arm*-*-conix*): New configuration. 12256 * configure: Regenerate. 12257 122582000-02-28 Jason Merrill <jason@casey.cygnus.com> 12259 12260 * dwarf2out.c (gen_block_die): Output abstract blocks even if they 12261 don't have TREE_ASM_WRITTEN set. 12262 12263Mon Feb 28 21:07:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12264 12265 * Eliminate DECL_FIELD_SIZE. 12266 * builtins.c (built_in_class_names, built_in_names): New variables. 12267 * c-decl.c (finish_struct): Set specified size in DECL_SIZE. 12268 * expr.c (expand_expr, case COMPONENT_REF): Get field size from 12269 DECL_SIZE, not DECL_FIELD_SIZE. 12270 * print-tree.c (print_node): Remove code that prints extra blank 12271 lines in some cases. 12272 Properly handle inline and builtin function cases. 12273 * stor-layout.c (layout_decl): Get specified size from DEC_SIZE. 12274 * tree.h (built_in_class_named, built_in_names): New declarations. 12275 (union tree_decl): Rename internal unions to u1 and u2 and change 12276 some of their components. 12277 Add new field built_in_class. 12278 (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE): 12279 Reflect above changes. 12280 (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise. 12281 (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted. 12282 * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE. 12283 (encode_field_decl): Likewise; also remove obsolete test for bitfield. 12284 122852000-02-28 Dmitri Makarov <dim@windriver.com> 12286 12287 * extend.texi: Document ARM's support for long/short calls. 12288 12289 * invoke.texi: Document ARM's -mlong-calls command line switch. 12290 12291 * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype. 12292 (arm_encode_call_attribute): Add prototype. 12293 (arm_set_default_type_attribute): Add prototype. 12294 (arm_strip_name_encoding): Add prototype. 12295 12296 * config/arm/arm.c (arm_init_cumulative_args): replace 12297 initialisation og 'long_calls' field with initialisation of 12298 'call_cookie' field. 12299 (enum arm_pragma_enum): New enum. 12300 (arm_pragma_long_calls): New static variable. 12301 (arm_process_pragma): Also process "#pragma long_calls_off". 12302 (arm_valid_type_attribute_p): Accept short_call attribute. 12303 (arm_comp_type_attributes): Check long/short call attributes. 12304 (arm_encode_call_attribute): New function: Encode long_call 12305 or short_call attribute in function name. 12306 (arm_set_default_type_attributes): New function: Assign 12307 default attributes to newly defined type. 12308 (current_file_function_operand): New function: Return true if 12309 the symbol is a function which has already been compiled. 12310 (arm_is_longcall_p): New function: Return true if the 12311 indicated function should be called via a long call. 12312 (arm_get_strip_length): New function. Returns number of 12313 prefix characters to be stripped from a function's name. 12314 (arm_strip_name_encoding): New function. Strip prefix characters 12315 from a function's name. 12316 12317 * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field 12318 with 'call_cookie'. 12319 (SHORT_CALL_FAG_CHAR): Define. 12320 (LONG_CALL_FAG_CHAR): Define. 12321 (ENCODED_SHORT_CALL_ATTR_P): Define. 12322 (ENCODED_LONG_CALL_ATTR_P): Define. 12323 (ARM_NAME_ENCODING_LENGTHS): Define. 12324 (STRIP_NAME_ENCODING): Define. 12325 (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding. 12326 (ARM_ENCODE_CALL_TYPE): Define. 12327 (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE. 12328 (ARM_DECLARE_FUNCTION_SIZE): Define. 12329 (SET_DEFAULT_TYPE_ATTRIBUTES): Define. 12330 12331 * config/arm/arm.md (call): Call arm_is_longcall_p to decide 12332 if a long call is needed. 12333 (call_value): Ditto. 12334 (call_symbol): Ditto. 12335 12336 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of 12337 ARM_DECLARE_FUNCTION_SIZE. 12338 12339 * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define. 12340 (SUBTARGET_NAME_ENCODING_LENGTHS): Define. 12341 (ARM_STRIP_NAME_ENCODING): Undefine. 12342 (STRIP_NAME_ENCODING): Undefine. 12343 (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding. 12344 (ASM_DECLARE_FUNCTION_NAME): Ditto. 12345 (ASM_OUTPUT_COMMON): Ditto. 12346 (ASM_DECLARE_OBJECT_NAME): Ditto. 12347 12348 * config/arm/pe.c (arm_dllexport_name_p): Check for 12349 ARM_PE_FLAG_CHAR. 12350 (arm_dllimport_name_p): Ditto. 12351 (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR. 12352 (arm_mark_dllimport): Ditto. 12353 12354Mon Feb 28 22:11:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 12355 12356 * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define. 12357 123582000-02-28 Mark Mitchell <mark@codesourcery.com> 12359 12360 * xcoffout.c (xcoffout_begin_function): Fix typo in previous change. 12361 123622000-02-28 Zack Weinberg <zack@wolery.cumb.org> 12363 12364 * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE. 12365 * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if 12366 NO_BUILTIN_WCHAR_TYPE is not defined. 12367 (CPP_WCHAR_TYPE): Delete. 12368 * cccp.c (main): Don't change wchar_type if cplusplus. 12369 (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE. 12370 123712000-02-28 Nick Clifton <nickc@cygnus.com> 12372 12373 * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long". 12374 12375Mon Feb 28 14:21:15 2000 Catherine Moore <clm@cygnus.com> 12376 12377 * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define. 12378 (ASM_WEAKEN_LABEL): Define. 12379 12380Mon Feb 28 13:07:19 MET 2000 Jan Hubicka <jh@suse.cz> 12381 12382 * expr.c (store_constructor): Do not emit USE. 12383 * rtl.h (stupid_life_analysis): Remove. 12384 12385Mon Feb 28 07:03:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12386 12387 * function.c (number_blocks): Reset next_block_index based on 12388 what debugging format is used, not what is defined. 12389 12390 * lcm.c: Minor reformatting throughout. 12391 (reg_dies, reg_becomes_live): Properly handle multiple hard regs. 12392 12393 * toplev.c (rest_of_compilation): Account for time in 12394 optimize_mode_switching. 12395 12396 * jump.c (jump_optimize_1): Don't call delete_barrier_successors 12397 if only marking labels. 12398 12399Mon Feb 28 12:53:57 MET 2000 Jan Hubicka <jh@suse.cz> 12400 12401 * calls.c (expand_call): Attempt to combine stack adjustments with 12402 pending stack adjustments. 12403 12404Mon Feb 28 11:34:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 12405 12406 * loop.c (reg_in_basic_block_p): Don't abort when falling through 12407 to the end of the function. 12408 124092000-02-27 Mark Mitchell <mark@codesourcery.com> 12410 12411 * emit-rtl.c (remove_unnecessary_notes): Remove notes for empty 12412 blocks. 12413 * final.c (next_block_index): Remove. 12414 (max_block_depth): Likewise. 12415 (pending_blocks): Likewise. 12416 (init_final): Don't initialize them. 12417 (final_start_function): Don't set next_block_index. Set up 12418 BLOCK_NUMBER. 12419 (final_scan_insn): Use BLOCK_NUMBER, not next_block_index. 12420 * function.h (number_blocks): New function. 12421 * function.c (get_block_vector): New function. 12422 (identify_blocks): Use it. 12423 (reorder_blocks): Set NOTE_BLOCK. 12424 (number_blocks): New function. 12425 * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag. 12426 * tree.h (BLOCK_NUMBER): New macro. 12427 (tree_block): Add block_num field. 12428 * dbxout.c (next_block_number): Remove. 12429 (dbxout_init): Don't set it. 12430 (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN 12431 set. Use BLOCK_NUMBER, rather than next_block_num, to determine 12432 block numbers. 12433 * toplev.c (rest_of_compilation): Always call 12434 find_loop_tree_blocks. Fix indentation. 12435 * dwarf2out.c (next_block_number): Remove. 12436 (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, 12437 to determine block numbers. 12438 (gen_inlined_subroutine_die): Likewise. 12439 (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set. 12440 (decls_for_scope): Don't increment next_block_number. 12441 * dwarfout.c (next_block_number): Remove. 12442 (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, 12443 to determine block numbers. 12444 (output_inlined_subroutine_die): Likewise. 12445 (output_block): Only output blocks that have TREE_ASM_WRITTEN set. 12446 (output_decls_for_scope): Don't increment next_block_number. 12447 * sdbout.c (next_block_number): Remove. 12448 (sdbout_block): Use BLOCK_NUMBER. 12449 (sdbout_begin_block): Simplify. 12450 * xcoffout.c (next_block_number): Remove. 12451 (xcoffout_block): Use BLOCK_NUMBER, not next_block_number. 12452 (xcoffout_begin_block): Don't set next_block_number. 12453 (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not 12454 next_block_number. 12455 12456Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12457 12458 * builtins.c (c_strlen): Use size_diffop and return ssizetype value. 12459 (expand_builtin_strcpy): Pass correct type to size_binop. 12460 (expand_builtin_strcmp): Likewise. 12461 Clean up conditional structure. 12462 * c-decl.c (init_decl_processing): Don't call set_sizetype twice. 12463 (complete_array_type): Don't use size_binop for MAXINDEX. 12464 * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT. 12465 (c_sizeof_nowarn, c_size_in_bytes): Likewise. 12466 (c_alignof): Use size_one_node. 12467 (build_unary_op): Pass arg of proper type to size_binop. 12468 (really_start_incremental_init, push_init_level): Use sizetype for 12469 constructor{,_bit,_unfilled}_index. 12470 (pop_init_label, output_init_element): Likewise. 12471 (output_pending_init_elements, process_init_element): Likewise. 12472 * calls.c (compute_argument_block_size): Field VAR is ssizetype. 12473 * expr.c (store_expr): Use size_int. 12474 (store_constructor): Use proper types for size_binop args. 12475 (get_inner_reference, expand_expr, case ARRAY_REF): Likewise. 12476 (expand_expr_unaligned): Likewise. 12477 (string_contant): Return object of sizetype. 12478 * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types. 12479 (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE. 12480 (ARGS_SIZE_TREE): Pass proper types to size_binop. 12481 * fold-const.c (int_const_binop): Refine when size_int is called. 12482 (fold_convert): Likewise. 12483 (size_int_wide): Rework to take KIND as arg, only take low order 12484 bits, handle new sizetype_tab datatype, and chain entries in 12485 size_table. 12486 (size_int_type_wide): New function. 12487 (size_binop): Validate types of arguments. 12488 (ssize_binop): Deleted. 12489 (size_diffop): New function. 12490 (extract_muldiv): Only fold division into multiplication for sizetypes. 12491 * function.c (assign_parms): Use size_diffop and make sure 12492 VAR field is of ssizetype; also pass proper type to size_binop. 12493 (locate_and_pad_parm, pad_to_arg_alignment): Likewise. 12494 (round_down): Deleted from here. 12495 * store-layout.c (sizetype_tab): Now an array. 12496 (sizetype_set, early_root_list): New variables. 12497 (variable_size): Use size_one_node. 12498 (round_up): Pass proper type to size_binop. 12499 (round_down): Moved to here and corrected as above. 12500 (layout_record): Pass proper arg types to size_binop. 12501 (layout_type): Likewise. 12502 If sizetype_set is zero, record the type just laid out. 12503 (make_unsigned_type): Don't call set_sizetype; 12504 (make_signed_type): Likewise; also, call fixup_signed_type. 12505 (initialize_sizetypes): New function. 12506 (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and 12507 set name of bitsizetype to "bit_size_type". 12508 Fix up type of sizes of all types made before call. 12509 * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro. 12510 * tree.c (fix_sizetype): Deleted. 12511 (build_common_tree_nodes): Call initialize_sizetypes. 12512 (build_common_tree_nodes_2): Don't call fix_sizetype. 12513 * tree.h (TYPE_IS_SIZETYPE): New macro. 12514 (initialize_sizetype): New declaration. 12515 (enum size_type_kind): New type. 12516 (struct sizetype_tab): Deleted. 12517 (sizetype_tab): Now array; adjust sizetype macros. 12518 (size_diffop, size_int_type_wide): New functions. 12519 (size_int_wide): Change number of args and type; access macros changed. 12520 (ssize_int, sbitsize_int): New macros. 12521 * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int. 12522 (ROUND_TYPE_SIZE_UNIT): New macro. 12523 125242000-02-27 Zack Weinberg <zack@wolery.cumb.org> 12525 12526 * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *. 12527 12528Sun Feb 27 07:44:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12529 12530 * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long): 12531 Mark as possibly unused. 12532 12533 * cse.c (cse_insn): Delete dead code involving tablejump. 12534 Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE. 12535 12536 * Makefile.in (libcpp.a): Start by deleting it. 12537 125382000-02-27 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 12539 12540 * cpplib.h (enum file_change_code): Added rename_file. 12541 * cpplib.c (do_line): If a filename is given, set file_change to 12542 rename_file. 12543 (output_line_command): If file_change is rename_file, always 12544 output a # directive with the file name. 12545 12546 * cpplib.c (do_pragma): Accept #pragma without consecutive token. 12547 125482000-02-26 Mark Mitchell <mark@codesourcery.com> 12549 12550 * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE 12551 when copying a PARM_DECL or RESULT_DECL. 12552 125532000-02-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12554 12555 * fix-header.c (recognized_function): Also fix prototypes for 12556 functions taking "void". 12557 125582000-02-26 Geoff Keating <geoffk@cygnus.com> 12559 12560 * reload1.c (do_output_reload): Check reg_reloaded_valid before 12561 looking at reg_reloaded_contents. 12562 125632000-02-26 Zack Weinberg <zack@wolery.cumb.org> 12564 12565 * Makefile.in (STMP_FIXINC): New toggle. 12566 (LIBGCC2_DEPS): Delete all references. 12567 (stmp-headers): Delete target. All references either deleted 12568 or changed to stmp-int-headers. 12569 (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO. 12570 (LIBCPP_OBJS): Take out cppalloc.o. 12571 (cppalloc.o): Delete target. 12572 (stmp-int-hdrs): Depend on $(STMP_FIXINC). 12573 (gen-protos, fix-header): Link with libiberty.a. 12574 * build-make: Don't change FIXINCLUDES. Override STMP_FIXINC 12575 to empty. 12576 12577 * configure.in: Remove refs to strerror. 12578 * acconfig.h: Take out NEED_DECLARATION_STRERROR. 12579 * system.h: Take out strerror stanza. 12580 12581 * cpperror.c (my_strerror): Delete function. 12582 (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror. 12583 * cppmain.c (main): Call xmalloc_set_program_name first thing. 12584 * cppalloc.c: Delete file. 12585 * gen-protos.c: Don't provide xrealloc. 12586 12587 * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use 12588 xstrerror throughout. 12589 125902000-02-26 Bruce Korb <bkorb@gnu.org> 12591 12592 * fixinc/inclhack.def (undefine_null): the bypass pattern needs to 12593 match for DOS headers, too. 12594 * fixinc/inclhack.sh,fixincl.x: Regenerate. 12595 125962000-02-26 Geoff Keating <geoffk@cygnus.com> 12597 12598 * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default 12599 is right for most ELF targets. 12600 * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define. 12601 Let the default file use %U properly. 12602 * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the 12603 default. 12604 12605 * config/fp-bit.c (pack_d): Properly handle rounding of denormal 12606 numbers. 12607 12608Sat Feb 26 09:39:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12609 12610 * toplev.c (documented_lang_options): Correct spelling error. 12611 (decode_d_option, decode_f_option, main): Likewise. 12612 12613 * toplev.c (print_time): Avoid SIGFPE when all_time is zero. 12614 12615 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at 12616 to tell assembler it is permitted to expand large constants. 12617 126182000-02-25 Mumit Khan <khan@xraylith.wisc.edu> 12619 12620 * protoize.c: (AUX_INFO_SUFFIX): New macro. 12621 (aux_info_suffix): Use. 12622 (SAVE_SUFFIX): New macro. 12623 (save_suffix): Use. 12624 (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null. 12625 (gen_aux_info_file): Use aux_info_suffix instead of ".X". 12626 (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames. 12627 12628 * invoke.texi (Running Protoize): Update documentation. 12629 126302000-02-25 Mark Elbrecht <snowball3@bigfoot.com> 12631 12632 * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines. 12633 126342000-02-25 John Wehle (john@feith.com) 12635 12636 * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to. 12637 126382000-02-25 Anthony Green <green@cygnus.com> 12639 12640 * toplev.c (rest_of_compilation): Rebuild jump labels if 12641 combine_instructions has created a new direct jump. 12642 * combine.c (try_combine): Add new_direct_jump_p argument. Set it 12643 when appropriate. 12644 (combine_instructions): Call try_combine with new argument. 12645 Return non-null value when new direct jump instruction is created. 12646 * rtl.h: combine_instructions returns an int. 12647 12648Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com) 12649 12650 * cse.c (cse_insn): Replace the PATTERN of the insn with an new 12651 jump when changing a computed jump into a jump to a known 12652 target. 12653 12654Fri Feb 25 19:22:44 2000 Graham Stott <grahams@rcp.co.uk> 12655 12656 * resource.c (mark_referenced_resources): Changed use SET_DEST (...) 12657 to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER. 12658 12659 * i386.md (define_expand "clrstrsi"): Fix typo. 12660 12661Fri Feb 25 18:49:39 2000 "K. Richard Pixley" <rich@microunity.com> 12662 12663 * rtl.texi: Fix typo. 12664 12665Fri Feb 25 20:02:35 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 12666 12667 * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by 12668 UNITS_PER_WORD. Change caller initial_elimination_offset. 12669 (rounded_frame_size): Take into account that argument pushed has 12670 changed. Fix TARGET_ALIGN_DOUBLE problem. 12671 126722000-02-25 Geoff Keating <geoffk@cygnus.com> 12673 12674 * haifa-sched.c (schedule_block): Explain the real reason 12675 we delete REG_SAVE_NOTEs on the first insn of a block. 12676 Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP. 12677 126782000-02-24 Mark Mitchell <mark@codesourcery.com> 12679 12680 * input.h (push_srcloc): New function. 12681 (pop_srcloc): Likewise. 12682 * toplev.c (push_srcloc): Define it. 12683 (pop_srcloc): Likewise. 12684 126852000-02-24 Richard Henderson <rth@cygnus.com> 12686 12687 * flow.c (life_analysis): When collecting reg info, clear 12688 regs_ever_live. 12689 12690Thu Feb 24 22:06:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 12691 12692 Fix bug exposed by reload.c no longer rounding the frame 12693 size to BIGGEST_ALIGNMENT: 12694 * sh.c (rounded_frame_size): New function. 12695 (sh_expand_prologue, sh_expand_epilogue): Use it. 12696 (initial_elimination_offset): Likewise. 12697 12698Thu Feb 24 20:04:11 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 12699 12700 Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change: 12701 * sh-protos.h (sh_need_epilogue): Declare. 12702 * sh.c (sh_need_epilogue_known): New static variable. 12703 (sh_need_epilogue): New function. 12704 (function_epilogue): Clear need_epilogue_known. 12705 * sh.md (return): Split into expander / insn pattern. 12706 Make the expander conditional on ! sh_need_epilogue (). 12707 127082000-02-24 Nathan Sidwell <nathan@codesourcery.com> 12709 12710 * machmode.h (get_mode_alignment): Declare. 12711 (GET_MODE_ALIGNMENT): Call it. 12712 * stor-layout.c (get_mode_alignment): New function. Make 12713 sure alignment is always power of 2. 12714 127152000-02-23 Zack Weinberg <zack@wolery.cumb.org> 12716 12717 * i386.h: Remove useless definition of "I386" and misleading 12718 comment above it. 12719 127202000-02-23 Zack Weinberg <zack@wolery.cumb.org> 12721 12722 * tree.h (TREE_SET_PERMANENT): New macro. Document conditions 12723 under which TREE_PERMANENT will be set. 12724 * tree.c (make_node, copy_node, make_tree_vec, tree_cons, 12725 build1): Use TREE_SET_PERMANENT. 12726 * print-tree.c (print_node): Don't report value of 12727 TREE_PERMANENT if ggc_p is true. 12728 12729 * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to 12730 decide whether to give a type a new alias set. 12731 * objc/objc-act.c (build_objc_string_object): Never copy the string. 12732 * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective 12733 of value of 'obstack'. 12734 12735 127362000-02-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 12737 12738 * config/c4x/c4x.c (c4x_process_after_reload): Split all insns. 12739 127402000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 12741 12742 * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING. 12743 * cpplib.c (cpp_get_token): Produce them. 12744 * cppexp.c (cpp_lex): Handle them. 12745 127462000-02-23 Nick Clifton <nickc@cygnus.com> 12747 12748 * config/arm/arm.c (arm_comp_type_attributes): Simply and 12749 comment tests on type attributes. 12750 12751Wed Feb 23 16:42:21 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 12752 12753 * final.c (shorten_branches): Make value passed to LOOP_ALIGN 12754 conform to documentation. 12755 * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align 12756 to check for special cases. 12757 * sh-protos.h (sh_loop_align): Declare. 12758 * sh.c (sh_loop_align): Define. 12759 127602000-02-22 Andrew Haley <aph@cygnus.com> 12761 12762 * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas. 12763 (SIZE_TYPE): Is 32 bits when using -mgp32. 12764 (PTRDIFF_TYPE): Ditto. 12765 12766Wed Feb 23 07:26:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12767 12768 * diagnostic.c (init_output_buffer): Handle case of null PREFIX. 12769 127702000-02-23 Zack Weinberg <zack@wolery.cumb.org> 12771 12772 * config/i386/i386.h: If IN_TARGET_LIBS is defined, make 12773 BIGGEST_FIELD_ALIGNMENT a constant. 12774 127752000-02-21 Jason Merrill <jason@casey.cygnus.com> 12776 12777 * dwarf2out.c (output_line_info): Put the marker for the end of 12778 the line number info at the actual end. 12779 (gen_struct_or_union_type_die): Use decl_function_context 12780 to check for local classes. 12781 * dwarfout.c (output_type): Likewise. 12782 12783Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com) 12784 12785 * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference 12786 for arguments with a mode, but no type. 12787 (FUNCTION_ARG_CALLEE_COPIES): Similarly. 12788 * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm. 12789 * pa/long_double.h: New file. 12790 * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11 12791 both have 128bit wide long doubles. 12792 * configure: Rebuilt. 12793 127942000-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12795 12796 * defaults.h (ASM_OUTPUT_ASCII): Constify a char*. 12797 12798 * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain, 12799 fixup_reorder_chain, skip_insns_between_block): Add static prototypes. 12800 (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS. 12801 12802 * haifa-sched.c (rank_for_schedule): Don't cast away const-ness. 12803 12804 * integrate.c (compare_blocks, find_block): Likewise. 12805 12806 * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2. 12807 12808 * rtl.h (set_file_and_line_for_stmt): Constify a char*. 12809 12810 * stmt.c (stmt_status, set_file_and_line_for_stmt, 12811 expand_asm_operands): Likewise. 12812 12813Mon Feb 21 17:06:27 2000 Jason Eckhardt <jle@cygnus.com> 12814 12815 * predict.c (estimate_probability): Added the pointer heuristic to 12816 the collection of static branch predictors. 12817 128182000-02-21 Catherine Moore <clm@cygnus.com> 12819 12820 * config/mips/mips.h (ASM_SPEC): Add -mfix700. 12821 * invoke.texi (-mfix7000): Document. 12822 128232000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 12824 12825 * diagnostic.c (init_output_buffer): Make it possible to output at 12826 least 32 characters if we're given a too long prefix. 12827 128282000-02-20 Mark Mitchell <mark@codesourcery.com> 12829 12830 * varasm.c (initializer_constant_valid_p): Call 12831 lang_expand_constant to simplify the constant. 12832 128332000-02-20 Bruce Korb <bkorb@gnu.org> 12834 12835 * fixinc/inclhack.def(stdio_va_list): 12836 typedef needs to be disabled. 12837 * fixinc/inclhack.sh: regen 12838 * fixinc/fixincl.x: regen 12839 128402000-02-20 Geoff Keating <geoffk@cygnus.com> 12841 12842 * print-rtl.c (print_rtx): Don't print addresses when 12843 flag_dump_unnumbered. 12844 128452000-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12846 12847 * sparc.c (sparc_output_scratch_registers): Mark parameter with 12848 ATTRIBUTE_UNUSED. 12849 (sparc_va_arg, sparc_flat_output_function_prologue, 12850 sparc_flat_output_function_epilogue): Cast value to unsigned in 12851 comparison. 12852 (sparc_emit_float_lib_cmp): Remove unused variable `cmp'. 12853 12854 * sparc.md: Add default case in switch. 12855 128562000-02-19 Richard Henderson <rth@cygnus.com> 12857 12858 * c-typeck.c (add_pending_init): Don't abort for multiple 12859 fields at the same offset. 12860 (pending_init_member): Test the correct member. 12861 128622000-02-19 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 12863 12864 * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node) 12865 instead of SImode. 12866 (start_catch_handler) : Same. 12867 128682000-02-19 Brad Lucier (lucier@math.purdue.edu) 12869 12870 * Makefile.in: Have flow.o depend on $(EXPR_H) 12871 12872Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12873 12874 * c-common.c (decl_attributes): Set DECL_SIZE_UNIT. 12875 * c-decl.c (duplicate_decls, finish_enum): Likewise. 12876 (finish_decl): Remove -Wlarger-than code from here. 12877 * flags.h (id_clash_len): Now int. 12878 (larger_than_size): Now HOST_WIDE_INT. 12879 * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed. 12880 Clean up checking to see if in table. 12881 (make_bit_field_ref): Remove extra parm to bitsize_int. 12882 * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT. 12883 * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT. 12884 * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size 12885 and for computing size of decl. 12886 * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT. 12887 Move -Wlarger-than code to here. 12888 (layout_record): Remove extra arg to bitsize_int. 12889 Set TYPE_BINFO_SIZE_UNIT. 12890 (layout_union): Remove extra arg to bitsize_int. 12891 Use proper type for size of QUAL_UNION. 12892 (layout_type): Remove extra arg to bitsize_int. 12893 * toplev.c (id_clash_len): Now int. 12894 (larger_than_size): Now HOST_WIDE_INT. 12895 (decode_W_option): Clean up id-clash and larger-than- cases. 12896 * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts. 12897 (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined. 12898 * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New. 12899 (struct tree_decl): New field size_unit. 12900 (size_int_wide): No HIGH operand; NUMBER is now signed. 12901 (size_int_2): Deleted. 12902 (size_int, bitsize_int): Don't use it and rework args. 12903 * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT. 12904 12905Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com) 12906 12907 * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call. 12908 129092000-02-18 Geoff Keating <geoffk@cygnus.com> 12910 12911 * invoke.texi (Warning Options): Add an explanation of why 12912 you might want the -Wfloat-equal flag. 12913 12914Fri Feb 18 20:08:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12915 12916 * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned. 12917 * cppinit.c (new_pending_define): Add cast to avoid warning. 12918 * expmed.c (extract_bit_field): Likewise. 12919 * flow.c (enum reorder_skip_type): New type. 12920 (skip_insns_between_blcok): New it. 12921 Rework to avoid warning about possibly undefined variable. 12922 * function.c (assign_parms): Make thisparm_boundary unsigned. 12923 * genrecog.c (write_switch): Cast XWINT result to int. 12924 * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING. 12925 * mips-tfile.c (init_file): Make two versions of FDR initializer: 12926 one for MIPS and one for Alpha. 12927 (get_tag, copy_object): Add casts to avoid warnings. 12928 * optabs.c (init_one_libfunc): Cast NAME to (char *). 12929 * reload.c (find_reloads): Make TYPE enum reload_type. 12930 * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L". 12931 * unroll.c (unroll_loop): Initialize UNROLL_NUMBER. 12932 * varasm.c (compare_constant_1): Add cast to avoid warning. 12933 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC 12934 to (char *). 12935 (alpha_expand_unaligned_load, alpha_expand_unaligned_store): 12936 Cast switch operand of size to int. 12937 (alpha_expand_epilogue): Always initialize fp_offset and sa_reg. 12938 * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort 12939 in unhandled case. 12940 129412000-02-18 Nick Clifton <nickc@cygnus.com> 12942 12943 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate 12944 anything for an alignment of zero. 12945 12946 * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate 12947 anything for an alignment of zero. 12948 129492000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 12950 12951 * gcc.texi (Bug Reporting): Refer to bugs.html. 12952 (Bug Lists): Likewise. 12953 * system.h (GCCBUGURL): New preprocessor define. 12954 * rtl.c (fancy_abort): Use it. 12955 * gcc.c (main): Likewise. 12956 129572000-02-18 Richard Henderson <rth@cygnus.com> 12958 12959 * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove. 12960 (life_analysis_1): Subsume into ... 12961 (life_analysis): ... here. Force PROP_REG_INFO off after reload. 12962 Use update_life_info for the relaxation. 12963 (update_life_info): Update REG_BASIC_BLOCK for registers live on 12964 entry and regs_live_at_setjmp. 12965 (set_noop_p): Simplify. 12966 (notice_stack_pointer_modification_1): Renamed from s/_1//. 12967 (record_volatile_insns): Split into ... 12968 (delete_noop_moves): ... here, 12969 (notice_stack_pointer_modification): ... here, 12970 (insn_dead_p): ... and here. 12971 (propagate_block): Don't query INSN_VOLATILE. 12972 (mark_used_regs): Mind !PROP_REG_INFO. 12973 * toplev.c (rest_of_compilation): Call mark_constant_function here, 12974 not in life_analysis. 12975 12976Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com) 12977 12978 * loop.c (canonicalize_condition): New function, 12979 broken out of get_condition. 12980 (get_condition): Use it. 12981 * expr.h (canonicalize_condition): Prototype it. 12982 12983 * tree.h (tree_int_cst_msb): Declare. 12984 * tree.c (tree_int_cst_msb): New function. 12985 129862000-02-17 Mark Mitchell <mark@codesourcery.com> 12987 12988 * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt 12989 isn't set. 12990 12991 * invoke.texi (-fmessage-length=n): Document. 12992 129932000-02-17 Jason Merrill <jason@casey.cygnus.com> 12994 12995 * bitmap.c (bitmap_operation): Don't leak bitmap elements. 12996 129972000-02-17 Mark Mitchell <mark@codesourcery.com> 12998 12999 * function.c (thread_prologue_and_epilogue_insns): Put a line note 13000 after the prologue. 13001 130022000-02-17 Nick Clifton <nickc@cygnus.com> 13003 13004 * config/arm/thumb.c: Replace includes of system headers with 13005 #include "system.h". 13006 130072000-02-16 Richard Henderson <rth@cygnus.com> 13008 13009 * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]: 13010 Add crtbeginS.o and crtendS.o. 13011 * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o. 13012 (ENDFILE_SPEC): Use crtendS.o. 13013 * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets. 13014 13015 * alpha/crtbegin.asm (__do_frame_takedown): Merge into ... 13016 (__do_global_dtors_aux): ... here. Call __cxa_finalize if 13017 shared and present. 13018 (__dso_handle): New variable. 13019 * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime 13020 bias to __CTOR_END__. 13021 130222000-02-16 Richard Henderson <rth@cygnus.com> 13023 13024 * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T). 13025 13026Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson <hp@bitrange.com> 13027 13028 * longlong.h (__clz_tab): Declare as static to match definition. 13029 130302000-02-16 Mark Elbrecht <snowball3@bigfoot.com> 13031 13032 * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h. 13033 (XREF_FILE_NAME): Define. 13034 13035 * i386/djgpp.h (DATA_SECTION_ASM_OP): Define. 13036 (EH_FRAME_SECTION_ASM_OP): Define. 13037 (IDENT_ASM_OP): Define. 13038 (TEXT_SECTION_ASM_OP): Define. 13039 (CPP_SPEC): Define. 13040 (CTORS_SECTION_ASM_OP): Define. 13041 (CTOR_SECTION_FUNCTION): Use it. 13042 (DTORS_SECTION_ASM_OP): Define. 13043 (DTOR_SECTION_FUNCTION): Use it. 13044 130452000-02-16 Zack Weinberg <zack@wolery.cumb.org> 13046 13047 * reg-stack.c (emit_swap_insn): Do not put a new insn before a 13048 NOTE_BASIC_BLOCK. 13049 13050 * flow.c (dump_regset, debug_regset, dump_bb, debug_bb, 13051 debug_bb_n): New functions. 13052 (dump_flow_info, print_rtl_with_bb): Use dump_regset. 13053 * basic-block.h: Prototype new functions. 13054 13055Wed Feb 16 21:07:53 2000 Denis Chertykov <denisc@overta.ru> 13056 13057 * configure.in: Add support for avr target. 13058 * configure: Rebuilt. 13059 13060 * invoke.texi: Add AVR invocation docs. 13061 * install.texi: Add information about AVR. 13062 * md.texi: Add AVR constraint letters description. 13063 * extend.texi: Add description for AVR specific attributes. 13064 130652000-02-16 Jason Merrill <jason@casey.cygnus.com> 13066 13067 * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C". 13068 130692000-02-16 Nick Clifton <nickc@cygnus.com> 13070 13071 * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw. 13072 (make_insn_raw): Move RTL check here. 13073 130742000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13075 13076 * version.c: Include gansidecl.h and version.h. 13077 13078 * version.h: Wrap entire file in macro __GCC_VERSION_H__. 13079 13080 * configure.in (gcc_version): When setting, narrow search to 13081 lines containing `version_string'. 13082 13083 * Makefile.in (mainversion): Likewise. 13084 (GCC_H): New variable. 13085 (gcc.h): Delete target. 13086 (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h. 13087 (version.o): Depend on version.h. 13088 (dbxout.o): Don't depend on gcc.h. 13089 13090Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson <hp@bitrange.com> 13091 Michael Meissner <meissner@cygnus.com> 13092 13093 * md.texi (Simple Constraints): Add item about whitespace. 13094 * genoutput.c (strip_whitespace): New. 13095 (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call 13096 strip_whitespace for constraints. 13097 Test pointer using NULL, not 0. 13098 130992000-02-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 13100 13101 * cpplib.c (do_line): Pedwarn for #line > 32767. 13102 13103 * c-lex.c (readescape): Warn about '\x', but do not reject it. 13104 131052000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 13106 13107 * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define 13108 to default cpp spec. 13109 (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__. 13110 * cpp.texi: Document __GNUC_PATCHLEVEL__. 13111 * cpp.1: Likewise. 13112 13113 * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to 13114 default spec. 13115 131162000-02-15 Denis Chertykov <denisc@overta.ru> 13117 13118 * configure.in: Add support for avr target. 13119 13120Wed Feb 16 03:21:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 13121 13122 * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode. 13123 (sh_addr_diff_vec_mode): Don't declare. 13124 * sh.c (sh_addr_diff_vec_mode): Delete. 13125 13126Wed Feb 16 01:27:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 13127 13128 * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn. 13129 13130Wed Feb 16 00:58:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 13131 13132 * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name. 13133 (smulsi3_highpart_i): Name. 13134 (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes. 13135 (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise. 13136 (smulsi3_highpart, umulsi3_highpart): Likewise. 13137 13138 (mulsidi3_i, umulsidi3_i): Make rtl describe operation 13139 correctly independent of endianness. 13140 (mulsidi3, umulsidi3): Now define_insn. Hide details that 13141 confuse the optimizers. 13142 (mulsidi3+1, umulsidi3+1): New define_split. 13143 13144Tue Feb 15 23:22:26 2000 Andrew Haley <aph@cygnus.com> 13145 13146 * config/sh/sh.md: Guard insn splits against illegal registers. 13147 * config/sh/sh.h: Correct comment about macros. 13148 13149Tue Feb 15 22:30:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 13150 Andrew MacLeod <amacleod@cygnus.com> 13151 13152 * Makefile.in (lcm.o): Depend on insn-attr.h. 13153 * basic-block.h (optimize_mode_switching): Declare. 13154 * lcm.c (tm_p.h, insn-attr.h): #include. 13155 (seginfo, bb_info): New structs. 13156 (antic, transp, comp, delete, insert) : New file-scope static variables. 13157 (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions. 13158 (reg_becomes_live, optimize_mode_switching): Likewise. 13159 * tm.texi: Add description of mode switching macros. 13160 * toplev.c (rest_of_compilation): Call optimize_mode_switching. 13161 13162 * sh-protos.h (remove_dead_before_cse): Remove prototype. 13163 (fldi_ok, fpscr_set_from_mem): New prototypes. 13164 * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set. 13165 (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS): 13166 Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). 13167 (sh_flag_remove_dead_before_cse): Remove declaration. 13168 (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros. 13169 (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise. 13170 (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise. 13171 * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). 13172 (barrier_align): Allow for JUMP_INSNS containing a parallel. 13173 (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set. 13174 (fldi_ok): New function. 13175 (get_fpscr_rtx): Add fpscr_rtx as GC root. 13176 (emit_sf_insn): Only generate fpu switches when optimize < 1. 13177 (emit_df_insn): Likewise. 13178 (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete. 13179 (sh_flag_remove_dead_before_cse): Delete. 13180 (get_free_reg, fpscr_set_from_mem): New functions. 13181 * sh.md (movdf, movsf): Remove no_new_pseudos code. 13182 (return): Remove emit_fpscr_use / remove_dead_before_cse calls. 13183 131842000-02-15 Loren Rittle <ljrittle@acm.org> 13185 13186 * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD. 13187 131882000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13189 13190 * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o, 13191 cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h. 13192 13193 * cccp.c: Include version.h and/or don't declare `version_string'. 13194 * collect2.c: Likewise. 13195 * alpha.c: Likewise. 13196 * arm/aof.h: Likewise. 13197 * arm/coff.h: Likewise. 13198 * arm/elf.h: Likewise. 13199 * arm/pe.h: Likewise. 13200 * arm/tcoff.h: Likewise. 13201 * arm/telf.h: Likewise. 13202 * arm/tpe.h: Likewise. 13203 * arm/vxarm.h: Likewise. 13204 * convex/convex.c: Likewise. 13205 * i386/dgux.c: Likewise. 13206 * i386/sun386.h: Likewise. 13207 * m88k/m88k.c: Likewise. 13208 * mcore/mcore-pe.h: Likewise. 13209 * mips/mips.h: Likewise. 13210 * romp/romp.h: Likewise. 13211 * sh/sh.c: Likewise. 13212 * cpphash.c: Likewise. 13213 * cppinit.c: Likewise. 13214 * dwarf2out.c: Likewise. 13215 * dwarfout.c: Likewise. 13216 * gcc.c: Likewise. 13217 * gcc.h: Likewise. 13218 * mips-tfile.c: Likewise. 13219 * protoize.c: Likewise. 13220 * toplev.c: Likewise. 13221 * tree.h: Likewise. 13222 13223 * version.c (version_string): Constify a char*. 13224 13225 * version.h: New file. 13226 132272000-02-14 Nick Clifton <nickc@cygnus.com> 13228 13229 * configure.in: Add mcore-elf and mcore-pe targets. 13230 * configure: Regenerate. 13231 13232 * NEWS: Add note that MCore port has been contributed. 13233 13234 * invoke.texi: Document command line switches for MCore port. 13235 * install.texi: Add MCore to list of supported targets. 13236 132372000-02-14 Geoff Keating <geoffk@cygnus.com> 13238 13239 * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames, 13240 then we will need to import the frame handling functions. 13241 (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need 13242 to import the frames themselves. 13243 13244Mon Feb 14 13:31:01 2000 Stan Cox <scox@cygnus.com> 13245 Jason Eckhardt <jle@cygnus.com> 13246 13247 * basic_block.h: Added prototype for reorder_basic_blocks. 13248 * toplev.c: Changes to add -freorder-blocks and graph dump after 13249 block reordering is done. 13250 * flow.c (reorder_block_def): New structure for use during block 13251 reordering. 13252 (REORDER_BLOCK_*): New macros to access members of above structure. 13253 (skip_insns_between_block, get_common_dest, chain_reorder_blocks, 13254 make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New 13255 functions for block reordering. 13256 13257Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson <hp@bitrange.com> 13258 13259 * gcc.texi (Passes): Fix typo. 13260 * md.texi (Standard Names): Ditto. 13261 * tm.texi (Storage Layout): Ditto. 13262 132632000-02-13 Zack Weinberg <zack@wolery.cumb.org> 13264 13265 * cpplib.c (do_define): Only free the old definition if it 13266 actually had one. 13267 132682000-02-13 Neil Booth <NeilB@earthling.net> 13269 13270 * cppfiles.c (read_and_prescan): When emitting deferred 13271 newlines, test speccase[] again instead of checking each 13272 possible whitespace character in turn. When we encounter \r, 13273 look behind for \n first, then ahead. 13274 132752000-02-13 Zack Weinberg <zack@wolery.cumb.org> 13276 13277 * cse.c (cse_altered): New internal flag. 13278 (cse_insn): Set it if we changed an insn. 13279 (cse_main): Clear cse_altered before each basic block. 13280 Only garbage collect if cse_altered is true afterward. 13281 13282Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 13283 13284 * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling. 13285 13286Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com) 13287 13288 * combine.c (simplify_comparison): Fix typo. 13289 13290Sun Feb 13 12:57:52 2000 Neil Booth <NeilB@earthling.net> 13291 13292 * prefix.c (concat, lookup_key): Use xmalloc and xrealloc 13293 consistently. 13294 132952000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 13296 13297 * flow.c (flow_loop_tree_node_add): Use better algorithm by passing 13298 previously inserted node instead of root node. Caller changed. 13299 133002000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 13301 13302 * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete. 13303 133042000-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13305 13306 * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor, 13307 __dereg_frame_dtor): Add prototype argument. 13308 13309 * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise. 13310 13311 * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise. 13312 13313 * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise. 13314 13315 * gthr-vxworks.h (__gthread_once): Likewise. 13316 13317 * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise. 13318 13319Sat Feb 12 01:44:26 MET 2000 Jan Hubicka <jh@suse.cz> 13320 13321 * i386.c (ix86_emit_restore_regs_using_mov): Break out from ... 13322 (ix86_expand_epilogue): ... here. Use mov instead of add to restore 13323 stack pointer in functions w/o saved registers, output LEAVE more often 13324 on TARGET_USE_LEAVE machines. 13325 133262000-02-07 Dmitri Makarov <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com> 13327 13328 * config/arm/arm.c (arm_init_cumulative_args); New function: 13329 Initlaise the CUMULATIE_ARGS strcuture for a function 13330 definition. 13331 (arm_function_arg): New function: Determine where to place a 13332 function's argument. Also handles deciding the function's 13333 call cookie. 13334 (current_file_function_operand): New function: Return true if 13335 the symbol is a function which has already been compiled. 13336 (arm_is_long_call_p): New function: Return true if the 13337 indicated function should be called via a long call. 13338 (arm_valid_type_attribute_p): New function: Return true if the 13339 attribute is a valid, arm specific, attribute. 13340 (arm_comp_type_attribute): New function: Return true if the 13341 two types have compatible, arm specific, attributes. 13342 13343 * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a 13344 structure. 13345 (FUNCTION_ARG): Redefine to call arm_function_arg. 13346 (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct 13347 structure field. 13348 (INIT_CUMULATIVE_ARGS): Redefine to call 13349 arm_init_cumulative_args. 13350 (FUNCTION_ARG_ADVANCE): Redefine to use correct structure 13351 field. 13352 (SETUP_INCOMING_VARARGS): Redefine to use correct structure 13353 field. 13354 (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled 13355 functions. 13356 (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION. 13357 (VALID_MACHINE_TYPE_ATTRIBUTE): Define. 13358 (COMP_TYPE_ATTRIBUTES): Define. 13359 13360 * config/arm/arm.md (call): Call arm_is_long_call_p to decide 13361 if a long call is needed. 13362 (call_value): Call arm_is_long_call_p to decide if a long call 13363 is needed. 13364 (call_symbol): Call arm_is_long_call_p to decide if a long call 13365 is needed. 13366 13367 * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p. 13368 133692000-02-11 Denis Chertykov <denisc@overta.ru> 13370 13371 * README.AVR: New file with information about the avr ports. 13372 * config/avr: New directory with avr port files. 13373 133742000-02-11 Andreas Jaeger <aj@suse.de> 13375 13376 * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@. 13377 133782000-02-11 Zack Weinberg <zack@wolery.cumb.org> 13379 13380 * cpphash.c: Fix formatting, update commentary. 13381 (dump_definition): Take three separate arguments instead of a 13382 MACRODEF structure argument. 13383 * cpphash.h: Update prototype of dump_definition. 13384 * cppinit.c (cpp_finish): Update call of dump_definition. 13385 13386 * cpplib.c (do_define): Always create new hash entry with 13387 T_MACRO type. Remove redundant check for redefinition of 13388 poisoned identifier. Update call of dump_definition. 13389 (do_undef): Don't call check_macro_name. Rename sym_length to 13390 len. 13391 (do_error, do_warning): Don't use copy_rest_of_line or 13392 SKIP_WHITE_SPACE. 13393 (do_warning): Don't use pedwarn for the actual warning, 13394 only the notice about its not being in the standard. (Fixes 13395 bug with #warning in system headers.) 13396 (do_ident): Stricter argument checking - accept only a single 13397 string after #ident. Also, macro-expand the line. 13398 (do_xifdef): Use cpp_defined. De-obfuscate. 13399 13400 (do_pragma): Split out specific pragma handling to separate 13401 functions. Use get_directive_token. Update commentary. Do 13402 not pass on #pragma once or #pragma poison to the front end. 13403 (do_pragma_once, do_pragma_implementation, do_pragma_poison, 13404 do_pragma_default): New. 13405 13406Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com) 13407 13408 * jump.c (jump_optimize_1): The first operand in a relational 13409 can be a CONST_INT. 13410 * optabs.c (emit_conditional_move): Handle relationals which 13411 have a known true/false result. 13412 134132000-02-11 Geoff Keating <geoffk@cygnus.com> 13414 13415 * function.c (thread_prologue_and_epilogue_insns): Don't insert 13416 a RETURN insn into a block which already ends with a jump. 13417 134182000-02-11 Geoff Keating <geoffk@cygnus.com> 13419 13420 * haifa-sched.c (BUF_LEN): Increase a lot. 13421 134222000-02-11 Nick Clifton <nickc@cygnus.com> 13423 13424 * configure.in: Add tm_p_file specification for thumb targets. 13425 * configure: Regenerate. 13426 13427 * config/arm/thumb-protos.h: New file: Prototypes for exported 13428 functions defined in thumb.c. 13429 134302000-02-11 Robert Lipe <robertl@sco.com> 13431 13432 * Makefile.in (bootstrap-lean): Remove additional files. 13433 (bootstrap2-lean): Likewise. 13434 (VOL_FILES): List of files for above. 13435 134362000-02-11 Nathan Sidwell <nathan@acm.org> 13437 13438 * cpphash.c (special_symbol): Remove spurious argument to 13439 cpp_lookup. 13440 134412000-02-11 Joel Sherrill (joel@OARcorp.com> 13442 13443 * configure.in: (i*86-*-rtems*): Swapped elf and coff 13444 stanzas. 13445 * configure: Rebuilt. 13446 134472000-02-11 Rodney Brown <RodneyBrown@pmsc.com> 13448 13449 * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef. 13450 13451Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com) 13452 13453 * pa.c, pa.h: Remove trigraph sequences within comments. 13454 13455Fri Feb 11 02:51:56 2000 Pavel Roskin <pavel_roskin@geocities.com> 13456 13457 * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics. 13458 13459Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu) 13460 13461 * sbitmap.h: Make SBITMAP_ELT_BITS unsigned. 13462 134632000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 13464 13465 * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE. 13466 134672000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 13468 13469 * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label. 13470 (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref. 13471 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. 13472 (ASM_FILE_END): Use c4x_file_end. 13473 * config/c4x/c4x.c (c4x_global_label): New function. 13474 (c4x_external_ref, c4x_file_end): Likewise. 13475 13476 * config/c4x/c4x-protos.h (c4x_global_label): Add prototype. 13477 (c4x_external_ref, c4x_end_file): Likewise. 13478 134792000-02-10 Zack Weinberg <zack@wolery.cumb.org> 13480 13481 * cppexp.c: Don't include cpphash.h. 13482 (parse_charconst, cpp_lex): Use cpp_defined. 13483 (cpp_lex): Use get_directive_token throughout. Remove 13484 unnecessary cases from switch. Move assertion-handling code 13485 down to OTHER case. 13486 (cpp_parse_expr): If we see '+' or '-', check the context to 13487 determine if they are unary or binary operators. Streamline 13488 the jumps a bit. Do not call skip_rest_of_line. 13489 13490 * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace 13491 static. Export get_directive_token. Update commentary. 13492 (cpp_defined): New function. 13493 (do_define): Remove reference to T_PCSTRING. Call 13494 free_definition to release memory for old definition, when 13495 redefining a macro. 13496 (eval_if_expression): Set only_seen_white to 0 before calling 13497 cpp_parse_expr. Call skip_rest_of_line after it returns. 13498 (cpp_read_check_assertion): Don't preserve a pointer into the 13499 token buffer across a call to cpp_get_token. 13500 13501 * Makefile.in (cppexp.o): Don't depend on cpphash.h. 13502 * cppfiles.c (redundant_include_p): Use cpp_defined. 13503 * cpphash.c (free_definition): New function. 13504 (delete_macro): Use it. Update commentary. 13505 * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and 13506 free_definition. 13507 * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING 13508 from enum node_type. Prototype cpp_defined and get_directive_token. 13509 Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace. 13510 13511 * fix-header.c (check_macro_names): Use cpp_defined. 13512 (read_scan_file): Set inhibit_warnings and inhibit_errors in 13513 the options structure. 13514 135152000-02-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 13516 13517 * c-pragma.c (maximum_field_alignment): Remove duplicate declaration. 13518 135192000-02-10 Jason Merrill <jason@casey.cygnus.com> 13520 13521 * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin) 13522 rather than die->die_tag. 13523 13524Thu Feb 10 16:26:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 13525 13526 * combine.c (make_extraction, force_to_mode): Avoid warning on 13527 mixed-signedness conditionals. 13528 (make_field_assignment, nonzero_bits): Likewise. 13529 * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned. 13530 (store_split_bit_field, extract_split_bit_field): Likewise. 13531 (extract_fixed_bit_field, store_bit_field, 13532 * expr.c: Change alignment to be unsigned everywhere. 13533 (move_by_pieces, store_constructor_field, store_constructor): 13534 Alignment parm is unsigned. 13535 (emit_block_move, emit_group_load, emit_group_store): Likewise. 13536 (clear_storage, emit_push_insn, compare_from_rtx): Likewise. 13537 (do_compare_rtx_and_jump): Likewise. 13538 (move_by_pieces_ninsns, clear_by_pieces): Likewise. 13539 Compare align with GET_MODE_ALIGNMENT. 13540 (expand_expr_unaligned): Pointer to alignment is pointer to unsigned. 13541 (get_inner_reference): Likewise. 13542 (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts. 13543 (expand_assignment): Local vars for alignment now unsigned. 13544 (store_constructor, store_field, expand_expr, do_jump): Likewise. 13545 (do_compare_and_jump): Likewise. 13546 (store_field): Call new function expr_align. 13547 * expr.h (emit_block_move, emit_group_load, emit_group_store): 13548 Alignment arg now unsigned. 13549 (clear_storage, emit_push_insn, compare_from_rtx): Likewise. 13550 (do_compare_rtx_and_jump, store_bit_field): Likewise. 13551 (extract_bit_field): Likewise. 13552 * fold-const.c (add_double): Add cast to eliminate signedness warning. 13553 * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned. 13554 (get_best_mode): Alignment arg is unsigned. 13555 * rtl.h (move_by_pieces): Likewise. 13556 * store-layout.c (maximum_field_alignment, set_alignment): 13557 Now unsigned. 13558 (layout_decl): Alignment arg is now unsigned. 13559 Remove unneeded casts. 13560 (layout_record, layout_union, layout_type): Remove unneeded casts. 13561 Local alignment variables now unsigned. 13562 (get_best_mode): Alignment arg now unsigned. 13563 * tree.c (expr_align): New function. 13564 * tree.h (expr_align): Likewise. 13565 (maximum_field_alignment, set_alignment): Now unsigned. 13566 (get_inner_reference): Alignment argument is now pointer to unsigned. 13567 * varasm.c (assemble_variable): Add cast to eliminate warning. 13568 13569Thu Feb 10 12:56:47 2000 Jim Wilson <wilson@cygnus.com> 13570 13571 * expmed.c (store_bit_field): If op0 and fieldmode are the same size, 13572 then store directly into op0. 13573 13574 * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for 13575 the CALL_INSN, and emit the note immediately after it. 13576 135772000-02-10 Nick Clifton <nickc@cygnus.com> 13578 13579 * config/arm/thumb.md (epilogue): Include a (return) in the 13580 generated insn, and emit it using emit_jump_insn not 13581 emit_insn. 13582 13583Thu Feb 10 18:28:59 MET 2000 Jan Hubicka <jh@suse.cz> 13584 13585 * function.c (assign_temp): Change zero-sized arrays to size 1. 13586 * integrate.c (expand_inline_function): Do not update 13587 stack_alignment_needed 13588 * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY, 13589 add some sanity checking, remove optimization for function with 13590 zero frame size. 13591 135922000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13593 13594 * flow.c (mark_regs_live_at_end): Delete unused variables. 13595 13596 * ggc-page.c (ggc_page_print_statistics): bzero -> memset. 13597 13598 * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment' 13599 in macro FRAME_GROWS_DOWNWARD. 13600 13601 * stmt.c (expand_end_bindings): Delete unused variable. 13602 13603 * unroll.c (iteration_info): Mark parameter `loop' with 13604 ATTRIBUTE_UNUSED. 13605 136062000-02-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 13607 13608 * fixinc/server.c (load_data): Return NULL if the marker line is 13609 not found. 13610 (run_shell): If load_data returns NULL, retry the command once, in 13611 a new shell. 13612 13613 * configure: Rebuilt. 13614 136152000-02-09 Bruce Korb <bkorb@gnu.org> 13616 13617 * gcc/fixincludes: ** DELETED ** 13618 * gcc/fixcpp: ** DELETED ** 13619 * gcc/fixinc-nt.sed: ** DELETED ** 13620 * gcc/just-fixinc: ** DELETED ** 13621 * gcc/Makefile.in: Removed out-dated commentary 13622 * gcc/configure.in: Removed fast-fixincludes disablement. 13623 * MAINTAINERS(Ian Taylor) moved to "Write after approval" group. 13624 136252000-02-09 Clinton Popetz <cpopetz@cygnus.com> 13626 * function.c (thread_prologue_and_epilogue_insns): Uncomment 13627 last change. 13628 136292000-02-09 Richard Henderson <rth@cygnus.com> 13630 13631 * jump.c (delete_insn): Don't delete user labels at -O0. 13632 136332000-02-09 Robert Lipe <robertl@sco.com> 13634 13635 * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS. 13636 Don't link with HOST_LIBS. 13637 136382000-02-09 Zack Weinberg <zack@wolery.cumb.org> 13639 13640 * configure.in: Correct --help text for --with-dwarf2. 13641 Put tm-dwarf2.h after other tm files, if it's requested. 13642 * configure: Regenerate. 13643 * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before 13644 defining it. 13645 136462000-02-09 Zack Weinberg <zack@wolery.cumb.org> 13647 13648 * cpplib.h: Provide HASHNODE typedef and forward decl of 13649 struct hashnode only. Kill cpp_hashnode typedef. MACRODEF, 13650 DEFINITION, struct hashnode, struct macrodef, struct 13651 definition, scan_decls prototype, default defn of 13652 INCLUDE_LEN_FUDGE moved elsewhere. 13653 13654 * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct 13655 definition, and struct hashnode moved here. Remove the unused 13656 'predefined' field from struct definition. Replace the 'args' 13657 union with its sole member. All users updated (cpphash.c). 13658 Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add 13659 multiple include guard. 13660 13661 * cpphash.c (hashf): Make static; use better algorithm; drop 13662 HASHSIZE parameter; return an unsigned int. 13663 (cpp_lookup): Drop HASH parameter. PFILE parameter is 13664 used. Calculate HASHSIZE modulus here. 13665 (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus 13666 here. 13667 (create_definition): Drop PREDEFINITION parameter. 13668 * cpplib.c (do_define): Don't calculate a hash value here. 13669 Don't pass (keyword == NULL) to create_definition. 13670 13671 * scan.h: Prototype scan_decls here. 13672 * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here. 13673 * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All 13674 callers of cpp_lookup and cpp_install updated. 13675 13676 * cpphash.c (macarg): Hoist all the flag diddling out of the 13677 function... 13678 (macroexpand): ... and out of the loop that calls macarg. 13679 Skip over the initial paren before macro arguments with 13680 cpp_get_non_space_token; point may be some distance before 13681 that paren. Abort if it's not there. 13682 13683 * cpplib.c (parse_clear_mark): Delete function. 13684 (parse_set_mark, parse_goto_mark): Make static. 13685 (ACTIVE_MARK_P): New macro. 13686 (skip_block_comment, skip_line_comment): Do not bump the line 13687 if ACTIVE_MARK_P is true. 13688 (cpp_pop_buffer): The buffer to be popped may not have an 13689 active mark. 13690 (cpp_get_token): When looking for the initial paren before 13691 macro arguments, only set a mark in a file buffer, Always 13692 return to that mark before proceeding to call macroexpand or 13693 return a NAME token. 13694 13695 * cpplib.h: Remove prototypes of parse_set_mark, 13696 parse_clear_mark, parse_goto_mark. 13697 (struct cpp_options): Rename 'put_out_comments' to 13698 'discard_comments' and invert its sense. 13699 * cppinit.c, cpphash.c, cpplib.c: All users of 13700 put_out_comments changed to use discard_comments, with 13701 opposite sense. 13702 137032000-02-09 Clinton Popetz <cpopetz@cygnus.com> 13704 13705 * function.c (thread_prologue_and_epilogue_insns): Don't delete 13706 the edge from a block that both jumps and falls through to the 13707 fallthru block. 13708 137092000-02-09 Scott Bambrough <scottb@netwinder.org> 13710 13711 * config/arm/arm.md (movsi): In PIC mode, make sure that a 13712 constant source address is legitimate. 13713 137142000-02-09 Philip Blundell <pb@futuretv.com> 13715 13716 * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF 13717 correctly. 13718 13719 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when 13720 generating PIC. 13721 (LEGITIMATE_PIC_OPERAND): Disallow references to labels. 13722 137232000-02-09 Zack Weinberg <zack@wolery.cumb.org> 13724 13725 * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer 13726 ends with a newline and a NUL. Don't be so clever manipulating 13727 strings. 13728 13729Wed Feb 9 14:18:08 MET 2000 Jan Hubicka <jh@suse.cz> 13730 13731 * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed, 13732 not to BIGGEST_ALIGNMENT. 13733 137342000-02-08 Geoff Keating <geoffk@cygnus.com> 13735 13736 * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant. 13737 * dwarf2out.c (dwarf_cfi_name): Print name of new constant. 13738 (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed. 13739 (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended. 13740 * frame.c (execute_cfa_insn): Handle 13741 DW_CFA_GNU_negative_offset_extended. 13742 137432000-02-08 Richard Henderson <rth@cygnus.com> 13744 13745 * flow.c (tidy_fallthru_edges): Split out from ... 13746 (delete_unreachable_blocks): ... here. 13747 (find_basic_blocks): Use it. 13748 13749Tue Feb 8 15:51:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 13750 13751 * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY. 13752 137532000-02-08 Zack Weinberg <zack@wolery.cumb.org> 13754 13755 * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a. 13756 (gen_protos.o): Don't depend on cpplib.h or cpphash.h. 13757 (fix-header.o): Don't depend on cpphash.h. 13758 13759 * scan.c (hashstr): New function. 13760 * scan.h: Prototype it. 13761 * fix-header.c: Don't include cpphash.h. Use hashstr. 13762 * gen-protos.c: Don't include cpphash.h or cpplib.h. Use 13763 hashstr. Report hash table statistics. Add private 13764 definition of xrealloc. 13765 137662000-02-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13767 13768 * i386.h (TARGET_SWITCHES): Fix typo in option name. 13769 137702000-02-08 Clinton Popetz <cpopetz@cygnus.com> 13771 13772 * function.c (thread_prologue_and_epilogue_insns): Don't replace 13773 jumps with returns unless they are jumps to the fallthru block. 13774 13775Tue Feb 8 07:53:55 2000 Jan Hubicka <jh@suse.cz> 13776 13777 * i386.md (addqi3_cc): Fix constraints. 13778 13779Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson <hp@bitrange.com> 13780 13781 * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return. 13782 137832000-02-07 Mark Mitchell <mark@codesourcery.com> 13784 13785 * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a 13786 carriage return after a macro name. 13787 137882000-02-07 Fred Fish <fnf@be.com> 13789 13790 * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing 13791 so the gcc2_compiled symbol doesn't confuse BeOS debuggers. 13792 137932000-02-07 Zack Weinberg <zack@wolery.cumb.org> 13794 13795 * cppfiles.c (deps_output): Count spacers in deps_column. 13796 137972000-02-07 Neil Booth <NeilB@earthling.net> 13798 13799 * cppinit.c (initialize_dependency_output): If there is no 13800 suffix, don't try to look for known suffixes. Use strrchr. 13801 (cpp_start_read): Remove duplicate initialization. 13802 13803Mon Feb 7 18:36:41 MET 2000 Jan Hubicka <jh@suse.cz> 13804 13805 * calls.c (compute_argument_block_size): New argument 13806 preferred_stack_boundary. 13807 (expand_call): update cfun->preferred_stack_boundary, update call of 13808 compute_argument_block_size 13809 (emit_library_call): Increate cfun->preferred_stack_boundary 13810 to PREFERRED_STACK_BOUNDARY 13811 (emit_library_call_value): Likewise. 13812 * explow.c (allocate_dynamic_stack_spave): Likewise. 13813 * function.c (prepare_function_start): Set 13814 cfun->preferred_stack_boundary 13815 * function.h (struct function): Add preferred_stack_boundary field. 13816 * integrate.c (expand_inline_function): Update 13817 cfun->preferred_stack_boundary and cfun->stack_alignment_needed. 13818 (copy_rtx_and_substitute): Align frame to stack_alignment_needed only. 13819 * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary. 13820 138212000-02-06 Zack Weinberg <zack@wolery.cumb.org> 13822 13823 * cpplib.c (my_strerror, cpp_error, cpp_error_with_line, 13824 cpp_error_from_errno, cpp_warning, cpp_warning_with_line, 13825 cpp_pedwarn, cpp_pedwarn_with_line, 13826 cpp_pedwarn_with_file_and_line): Move to cpperror.c. 13827 (cpp_print_file_and_line, v_cpp_error, v_cpp_warning, 13828 v_cpp_error_with_line, v_cpp_warning_with_line, 13829 cpp_message_from_errno, cpp_perror_with_name): Delete. 13830 13831 * cpperror.c (cpp_print_containing_files): Take starting 13832 buffer as argument. 13833 (cpp_file_line_for_message): Rename to cpp_print_file_and_line. 13834 (v_cpp_message): Now called directly by all entry points. 13835 Remove -1 case. 13836 (cpp_pfatal_with_name, cpp_message): Delete. 13837 (cpp_notice_from_errno, cpp_ice): New functions. 13838 (cpp_notice): Is now for reporting error conditions, just 13839 without an associated file. 13840 (cpp_error, cpp_error_with_line): Don't do anything if 13841 opts->inhibit_errors is on. 13842 (cpp_pedwarn_with_file_and_line): Take column argument also. 13843 13844 * cpplib.h: Update prototypes of exported functions. 13845 (struct cpp_options): Add inhibit_errors. 13846 13847 * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for 13848 non-error messages. Include intl.h. 13849 13850 * cppinit.c, cppmain.c: Likewise. Also, use 13851 cpp_notice_from_errno instead of cpp_perror_with_name or 13852 cpp_pfatal_with_name, and cpp_notice instead of cpp_message. 13853 13854 * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to 13855 report internal errors. 13856 13857 * cpplib.c (do_define): Switch bcopy to memcpy. 13858 Give cpp_pedwarn_with_file_and_line a dummy column argument. 13859 13860 * cpplib.c (copy_rest_of_line): Revert previous change: don't 13861 bail out early if we hit a line comment. 13862 138632000-02-06 Richard Henderson <rth@cygnus.com> 13864 13865 * flow.c (flow_delete_insn, make_edge, remove_edge): Export. 13866 * basic-block.h: Declare them. 13867 * emit-rtl.h (active_insn_p): New. 13868 (next_active_insn, prev_active_insn): Use it. 13869 * rtl.h: Declare it. 13870 * function.c (emit_return_into_block): New. 13871 (thread_prologue_and_epilogue_insns): Insert return insns instead 13872 of epilogues when possible. 13873 * jump.c (jump_optimize_1): Remove code to insert a return insn 13874 on the fallthru to the exit block. 13875 13876 * i386.c (ix86_can_use_return_insn_p): Fail for large poped args 13877 and for non-empty stack frames. 13878 * i386.md (return): Expand to return-pop as needed. 13879 138802000-02-06 Richard Henderson <rth@cygnus.com> 13881 13882 * simplify-rtx.c (simplify_relational_operation): Canonicalize 13883 constant to op1 for testing. 13884 138852000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 13886 13887 * config/c4x/c4x.md (*ldi_on_overflow): New pattern. 13888 (fixuns_truncqfqi2): Use it. 13889 138902000-02-06 Richard Henderson <rth@cygnus.com> 13891 13892 * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack 13893 as a TYPE_LEA insn. 13894 13895 * i386.md (widening and peepholes): Mask the constant instead of 13896 using gen_lowpart. 13897 138982000-02-05 Zack Weinberg <zack@wolery.cumb.org> 13899 13900 * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump 13901 input pointer before possibly branching off to the backslash 13902 code. 13903 * cpphash.c (macroexpand): Correctly delete \r escapes when 13904 stringifying parameters. 13905 * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment 13906 if we can; bail out early if we hit a line comment. 13907 (handle_directive): Treat '# 123' in an .S file just like 13908 '# <punctuation>'. Discard the shifted '#' if we hit '#\n'. 13909 Return 1 for '# not_a_directive'. 13910 (get_directive_token): Pop macro buffers here, so that 13911 cpp_get_token can't sneakily move past a newline. 13912 Add sanity checks. 13913 (cpp_get_token): goto randomchar if handle_directive returns 0. 13914 13915 * cppalloc.c: Update copyright. 13916 * cpplib.c: Merge all the static function prototypes into one 13917 block. 13918 * cpplib.h: Remove #if 0 block. 13919 13920 * cpperror.c: Remove #ifdef EMACS block. 13921 * cppmain.c: Likewise. 13922 * cpphash.c: Remove #if 0 blocks. 13923 * cppinit.c: Remove #if 0 blocks, and the -lint option. 13924 * cpplib.c: Remove #if 0 blocks and code referencing 13925 pcp_inside_if or for_lint. Remove duplicate error message. 13926 Fix error messages for #else after #else or #elif. Reformat. 13927 Remove archaic TODO list. 13928 * cpplib.h: Remove pcp_inside_if and for_lint flags. 13929 139302000-02-05 Zack Weinberg <zack@wolery.cumb.org> 13931 13932 * i386/osf1elf.h: Add missing backslash to multiline string. 13933 139342000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13935 13936 * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg. 13937 139382000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13939 13940 * Makefile.in (c-common.o): Depend on $(EXPR_H). 13941 13942 * c-common.c: Include expr.h. 13943 13944 * c-pragma.c (mark_align_stack): Add prototype. 13945 13946 * caller-save.c (add_stored_regs): Likewise. 13947 13948 * combine.c (record_promoted_value): Likewise. 13949 13950 * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro): 13951 Likewise. 13952 13953 * cppinit.c (new_pending_define): Likewise. 13954 13955 * cpplib.c (skip_block_comment, skip_line_comment): Likewise. 13956 13957 * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists, 13958 AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, 13959 AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p, 13960 class_scope_p): Likewise. 13961 13962 * dwarf2out.h (dwarf2out_set_demangle_name_func, 13963 dwarf2out_add_library_unit_info): Likewise. 13964 13965 * ggc.h (ggc_page_print_statistics): Likewise. 13966 13967 * haifa-sched.c (propagate_deps): Likewise. 13968 13969 * reg-stack.c (next_flags_user, record_label_references): Likewise. 13970 13971 * rtl.h (set_stack_check_libfunc): Likewise. 13972 13973 * toplev.h (set_fatal_function): Likewise. 13974 13975 * toplev.c (set_fatal_function): Delete prototype. 13976 13977 * diagnostic.c: Deconstify functions returning malloc'ed ptrs. 13978 139792000-02-05 Geoff Keating <geoffk@cygnus.com> 13980 13981 * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX. 13982 (FUNC_END): Likewise. 13983 139842000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 13985 13986 * caller-save.c: Include tm_p.h. 13987 139882000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 13989 13990 * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2). 13991 139922000-02-04 Neil Booth <NeilB@earthling.net> 13993 13994 * cccp.c (main): Check 'dir' for a NULL pointer before passing 13995 it to strcmp. 13996 139972000-02-04 Zack Weinberg <zack@wolery.cumb.org> 13998 13999 * recog.h: Remove NO_MD_PROTOTYPES ifdefs. 14000 * genflags.c: Use the max_operand_1 logic from genemit.c to 14001 calculate how many arguments gen_insn prototypes have. Remove 14002 NO_MD_PROTOTYPES ifdefs from the generated file. 14003 * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated 14004 file. Cast gen_insn initializers to insn_gen_fn. 14005 * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES. 14006 * gcc.texi: Remove documentation of NO_MD_PROTOTYPES. 14007 140082000-02-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14009 14010 * fixinc/Makefile.in (HDR): Add machname.h. 14011 (clean): Likewise. 14012 140132000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 14014 14015 * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ... 14016 (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto. 14017 (c4x_cpu_version): Ditto. 14018 * config/c4x/c4x-protos.h: ... here. 14019 140202000-02-04 Jason Merrill <jason@casey.cygnus.com> 14021 14022 * dwarf2out.c (add_abstract_origin_attribute): Don't call 14023 gen_abstract_function on our context if we're a nested function. 14024 140252000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 14026 14027 * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite. 14028 * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix. 14029 140302000-02-04 Bruce Korb <bkorb@gnu.org> 14031 14032 * fixinc/genfixes(machname.h): 14033 Move the functionality from gen-machine.h into this file. 14034 UNdef MN_NAME_PAT if there are no names to change. 14035 Also, be a little kinder when AutoGen is not present. 14036 14037 * fixinc/Makefile.in(machname.h): 14038 Change the generation rule to use genfixes. 14039 14040 * fixinc/fixfixes.c(machine_name): 14041 machine_name_fix's functionality now dependent upon whether 14042 MN_NAME_PAT is defined. 14043 14044 * fixinc/fixtests.c(machine_name): 14045 ditto. 14046 14047 * fixinc/fixlib.c(mn_get_regexps): conditional on definition 14048 of MN_NAME_PAT. 14049 14050 * fixinc/fixlib.h(mn_get_regexps): 14051 ditto 14052 14053 * fixinc/gen-machine.h: DELETED 14054 140552000-02-04 Jan Hubicka <jh@suse.cz> 14056 Richard Henderson <rth@cygnus.com> 14057 14058 * i386.c (SAVE_REGS_FIRST): Remove. 14059 (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode. 14060 (ix86_compute_frame_size): Likewise. 14061 (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack. 14062 (ix86_emit_restore_regs): Remove. 14063 (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack 14064 when a frame pointer is in use. 14065 (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov 14066 instead of pop to restore a register when profitable; emit leave 14067 when profitable. 14068 (ix86_attr_length_default): Handle pro_epilogue_adjust_stack 14069 as a TYPE_LEA insn. 14070 (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU. 14071 * i386.md (prologue_allocate_stack): Remove. 14072 (epilogue_deallocate_stack): Remove. 14073 (pro_epilogue_adjust_stack): New. 14074 140752000-02-04 Richard Henderson <rth@cygnus.com> 14076 14077 * function.c (diddle_return_value): Rework to use a callback function. 14078 Use current_function_return_rtx if it's been set up. 14079 (do_clobber_return_reg, clobber_return_register): New. 14080 (do_use_return_reg, use_return_register): New. 14081 (expand_function_end): Use them. 14082 * stmt.c (expand_null_return): Likewise. 14083 * function.h: Declare them. 14084 * flow.c (mark_regs_live_at_end): Use diddle_return_value. 14085 (mark_reg): Change arguments as appropriate for callback. 14086 * integrate.c (expand_inline_function): Revert 19 Jan change. 14087 14088Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson <hp@bitrange.com> 14089 14090 * tm.texi (Values in Registers): Fix typo: "fo" "for". 14091 (Misc): Say the scheduler, not the Haifa scheduler. 14092 140932000-02-04 Clinton Popetz <cpopetz@cygnus.com> 14094 14095 * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs 14096 when in_mem is set. Update all callers. 14097 140982000-02-04 Richard Henderson <rth@cygnus.com> 14099 14100 * i386/openbsd.h (INT_ASM_OP): Define. 14101 14102Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson <hp@bitrange.com> 14103 14104 * tm.texi: Fix various typos. 14105 14106Thu Feb 3 17:17:32 2000 Steve Ellcey <sje@cup.hp.com> 14107 14108 * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case. 14109 (MD_STARTFILE_PREFIX_1): New macro. 14110 14111Thu Feb 3 15:08:13 MET 2000 Jan Hubicka <jh@suse.cz> 14112 14113 * i386.md (movstrsi, clrstrsi): Support variable sized copies, align 14114 destination when needed. 14115 (strmovsi, strsetsi): New expander. 14116 (strmovsi_1, strsetsi_1): New pattern. 14117 * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP, 14118 TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros. 14119 (TARGET_SWITCHES) Add align-stringops and inline-all-stringops. 14120 * invoke.texi (align-stringops, inline-all-stringops): Document. 14121 14122Wed Feb 2 23:04:47 2000 Krister Walfridsson <cato@df.lth.se> 14123 14124 * i386/netbsd.h (INT_ASM_OP): Define. 14125 141262000-02-02 Zack Weinberg <zack@wolery.cumb.org> 14127 14128 * cpplib.h (cpp_reader): Add new flag, no_directives. 14129 * cpphash.c (macarg): Set it. 14130 * cpplib.c (handle_directive): If no_directives is on and we 14131 find a directive, issue an error and discard the line. 14132 14133Wed Feb 2 13:07:10 2000 Jim Wilson <wilson@cygnus.com> 14134 14135 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for 14136 FP constants. Add ! TARGET_FPU check for FP constants. 14137 141382000-02-02 Clinton Popetz <cpopetz@cygnus.com> 14139 14140 * flow.c (find_basic_blocks): Don't kill label_value_list 14141 here. 14142 (cleanup_cfg): Kill it here. 14143 14144Wed Feb 2 08:12:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14145 14146 * expr.c (store_field): Ensure ALIGN is no stricter than the 14147 alignment of EXP. 14148 141492000-02-02 Richard Henderson <rth@cygnus.com> 14150 14151 * jump.c (delete_insn): Partially revert 19 Jan change; 14152 don't convert unused code labels to notes at -O0. 14153 141542000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 14155 14156 * toplev.c (rest_of_compilation): Run rebuild_jump_labels after 14157 split_all_insns to recreate REG_LABEL notes for flow2 pass. 14158 141592000-02-01 Richard Henderson <rth@cygnus.com> 14160 14161 * i386.c (general_no_elim_operand): New. 14162 (nonmemory_no_elim_operand): New. 14163 (ix86_expand_move): Copy eliminable operands before a push. 14164 * i386-protos.h: Declare new functions. 14165 * i386.h (CAN_ELIMINATE): Simplify. 14166 (PREDICATE_CODES): Update. 14167 * i386.md (push insns): Don't allow eliminable register operands. 14168 141692000-02-01 Richard Henderson <rth@cygnus.com> 14170 14171 * flow.c (mark_regs_live_at_end): Follow expand_function_end and 14172 replace BLKmode with DECL_RTL's mode. 14173 141742000-02-01 Zack Weinberg <zack@wolery.cumb.org> 14175 14176 * frame.c (find_fde): Convert for loop to do-while so compiler 14177 sees it's always executed at least once. 14178 * libgcc2.c (BBINBUFSIZE): Kill. 14179 (__bb_init_prg): Use fgets. 14180 (__bb_exit_trace_func): Don't paste strings. 14181 * unroll.c (unroll_loop): Initialize unroll_type, not 14182 unroll_number, and tweak logic to match. 14183 14184 * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in 14185 all failure paths. 14186 (ix86_flags_dependant): Likewise. Disentangle control flow. 14187 (ix86_sched_reorder): Break guts out to 14188 ix86_sched_reorder_pentium and ix86_sched_reorder_ppro. 14189 (ix86_sched_reorder_ppro): Initialize pair2 and insnp before 14190 any possible use. 14191 14192 * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't 14193 use string concatenation. Don't save and restore esi. 14194 14195 * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def. 14196 (machname.h): Remove script to separate file. Use two-step 14197 sequence so target is not created if script fails. 14198 * fixinc/gen-machname.h: New file. Handle case where no non-reserved 14199 identifiers are defined. 14200 * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is 14201 an empty string, machine_name doesn't need to do anything at 14202 all. 14203 (is_cxx_header): Add more cases to regexp. 14204 * fixinc/fixlib.h: Update prototype. 14205 * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of 14206 mn_get_regexps. 14207 * fixinc/fixincl.c: Define NO_BOGOSITY. 14208 14209 * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out. 14210 (hp_sysfile): Add missing comma. 14211 (math_exception): Put the wrapper ifdefs at the beginning and 14212 the end of the file. 14213 * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate. 14214 142152000-02-01 Richard Henderson <rth@cygnus.com> 14216 14217 * sparc.c (fp_zero_operand): Turn into a normal predicate. 14218 Use CONST0_RTX. Update all callers. 14219 * sparc.h, sparc-protos.h: Update accordingly. 14220 * sparc.md (fp mov insns): Use fp_zero_operand directly 14221 where applicable. 14222 14223Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson <hp@bitrange.com> 14224 14225 * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS 14226 example. 14227 142282000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14229 14230 * Makefile.in (specs.ready): New target. 14231 (fixinc.sh): Depend on `specs.ready' instead of `specs'. 14232 142332000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14234 14235 * fixinc.irix: Use unique filenames for writing into /tmp, 14236 * fixinc.ptx: Likewise. 14237 * fixinc.sco: Likewise. 14238 * fixinc.svr4: Likewise. 14239 * fixinc.winnt: Likewise. 14240 142412000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14242 14243 * tsystem.h: New file. 14244 14245 * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o, 14246 s-crtS): Depend on tsystem.h. 14247 14248 * crtstuff.c: Include tsystem.h. 14249 * frame.c: Likewise. 14250 * libgcc2.c: Likewise. 14251 14252Tue Feb 1 19:53:27 CET 2000 Jan Hubicka <jh@suse.cz> 14253 14254 * builtins.c (expand_builtin_memset): Expand for variable sized 14255 lengths too. 14256 142572000-02-01 David Billinghurst <David.Billinghurst@riotinto.com.au> 14258 14259 * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based 14260 on ABI. 14261 14262Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com> 14263 14264 * dwarfout.c (SHORT_TYPE_SIZE): Correct default. 14265 14266 * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE. 14267 142682000-01-31 Chandra Chavva <cchavva@cygnus.com> 14269 14270 * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed 14271 case 3->2 combining (combining with splitting) in which 2 is CC0 14272 setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 14273 checked at the begining of the function with the aid of calling 14274 function 'can_combine_p'. 14275 142762000-01-31 Dave Brolley <brolley@redhat.com> 14277 14278 * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'. 14279 142802000-01-31 Jason Merrill <jason@casey.cygnus.com> 14281 14282 * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the 14283 new label. 14284 142852000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14286 14287 * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros. 14288 14289 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): 14290 PROTO -> PARAMS. 14291 142922000-01-30 Zack Weinberg <zack@wolery.cumb.org> 14293 14294 * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h, 14295 i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h, 14296 i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h, 14297 i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h, 14298 i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h, 14299 i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h, 14300 i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h, 14301 i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h, 14302 i386/vxi386.h, i386/win-nt.h, i386/win32.h: 14303 Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES. 14304 14305 * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h: 14306 Add %(cpp_cpu) to CPP_SPEC. 14307 14308 * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h: 14309 Add %(cc1_cpu) to CC1_SPEC. 14310 143112000-01-28 Ulrich Drepper <drepper@redhat.com> 14312 14313 * c-decl.c (c_decode_option): Accept optional numeric argument to 14314 -Wformat and set warn_format. 14315 * c-common.c: Don't emit warning about non-constant printf format 14316 string unless warn_format > 1. 14317 143182000-01-30 Richard Henderson <rth@cygnus.com> 14319 14320 * alpha.md (return_internal): Allow after reload only. 14321 143222000-01-30 Richard Henderson <rth@cygnus.com> 14323 14324 * i386.c (ix86_compute_frame_size): Omit padding1 if the 14325 local frame size is zero. 14326 143272000-01-30 Richard Henderson <rth@cygnus.com> 14328 14329 * alpha.c (alpha_expand_epilogue): Don't emit the return insn. 14330 * alpha.h (EPILOGUE_USES): New. Mark $26 live. 14331 * alpha.md (return): Turn into an expander. 14332 (return_internal): Don't use $26. 14333 (epilogue): Emit the return insn. 14334 143352000-01-30 Richard Henderson <rth@cygnus.com> 14336 14337 * alpha.md (negtf2, abstf2): Fix word order thinko. 14338 (extendsftf2): New. 14339 (trunctfsf2): Avoid intermediate rounding errors. 14340 143412000-01-30 Zack Weinberg <zack@wolery.cumb.org> 14342 14343 * cppfiles.c (find_position): Drop 'colp' argument, return the 14344 new line base. 14345 (read_and_prescan): Adjust to match. Don't ever manipulate 14346 line or line_base except via find_position. 14347 143482000-01-29 Zack Weinberg <zack@wolery.cumb.org> 14349 14350 * c-parse.in: Apply Ulrich's changes from c-parse.y. 14351 * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c: 14352 Regenerate. 14353 143542000-01-29 Zack Weinberg <zack@wolery.cumb.org> 14355 14356 * cpperror.c (cpp_file_line_for_message): If 'line' is zero, 14357 just print "<command line>". If 'filename' is null or an 14358 empty string, print "<stdin>" for the filename. 14359 * cpplib.c (do_define): Don't print the 'location of the 14360 previous definition' message if we're still parsing the 14361 command line. 14362 (cpp_pedwarn_with_file_and_line): Always call 14363 cpp_file_line_for_message. 14364 143652000-01-29 Mark Mitchell <mark@codesourcery.com> 14366 14367 * flow.c (mark_regs_live_at_end): Fix typo. 14368 143692000-01-28 Ulrich Drepper <drepper@redhat.com> 14370 14371 * c-common.c: Adjust variable names, comments, help strings to c99. 14372 * c-lex.c: Likewise. 14373 * c-parse.y: Likewise. 14374 * c-tree.h: Likewise. 14375 * cccp.c: Likewise. 14376 * cpplib.h: Likewise. 14377 * c-decl.c: Likewise. Recognize options with names "*99" as well. 14378 * cppinit.c: Likewise. 14379 143802000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 14381 14382 * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries. 14383 * c4x.c: Define the optab rtx values. 14384 (c4x_add_gc_roots): Add the ggc roots for these optab rtx values. 14385 (c4x_emit_libcall): Use new optab rtx values. 14386 (c4x_emit_libcall3): Likewise. 14387 (c4x_emit_libcall_mulhi): Likewise. 14388 * c4x-protos.h: Add prototypes for optab rtx values and change 14389 prototypes for above c4x_emit_libcall functions. 14390 143912000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 14392 14393 * c4x.c (c4x_output_ascii): Restrict line length of output when TI 14394 syntax is used. 14395 (c4x_function_prologue): Use regnames intead of float_reg_names when 14396 TI syntax is used. 14397 (c4x_function_epilogue): Likewise. 14398 (c4x_print_operand): Likewise. 14399 * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine. 14400 * c4x.md (set_high): Disable for TARGET_TI. 14401 144022000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 14403 14404 * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading 14405 of framepointer + constant to ADDR_REGS class. 14406 * c4x.md (addqi3, addqi3_noclobber_reload): Update. 14407 * c4x.c (std_or_reg_operand): New function. 14408 * c4x-protos.h (std_or_reg_operand): Prototype it. 14409 144102000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 14411 14412 * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same 14413 object names as libgcc2.c. 14414 * libgcc.S: Use newly defined names. 14415 14416Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz> 14417 * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New 14418 function. 14419 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare. 14420 * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro. 14421 (FLOW_LOOP_LAST_BLOCK): Likewise. 14422 144232000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 14424 14425 * basic-block.h (struct loop): New fields 'first' and 'last'. 14426 * flow.c (flow_loops_find): Compute loop->first and loop->last. 14427 (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG 14428 and loop->last to check for NOTE_INSN_LOOP_END. 14429 14430Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com> 14431 14432 * predict.c (estimate_probability): Use the new FIRST and LAST fields 14433 of the loop descriptor rather than HEADER and LATCH. Also added 14434 missing break statements as well making some coding style modifications 14435 as suggested by Michael Hayes. 14436 144372000-01-28 Richard Henderson <rth@cygnus.com> 14438 14439 * flow.c (find_basic_blocks): Remove do_cleanup argument. 14440 Break out that code ... 14441 (cleanup_cfg): ... here. 14442 (commit_one_edge_insertion): Detect a return instruction being 14443 emitted to an edge. Emit a barrier following; clear fallthru. 14444 (commit_edge_insertions): Verify CFG consistency. 14445 * function.c (expand_function_start): Kill unused variable. 14446 (expand_function_end): Likewise. 14447 (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge 14448 to insert the epilogue. 14449 14450 * gcse.c (gcse_main): Adjust for find_basic_blocks change. 14451 (delete_null_pointer_checks): Likewise. 14452 * output.h: Likewise. 14453 * reg-stack.c (reg_to_stack): Likewise. 14454 * toplev.c (rest_of_compilation): Likewise. Run 14455 thread_prologue_and_epilogue_insns after rebuilding the CFG. 14456 144572000-01-28 Richard Henderson <rth@cygnus.com> 14458 14459 * Makefile.in (flow.o): Revert 24 Jan change. 14460 * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode 14461 FUNCTION_VALUE result to DECL_RESULT's mode. 14462 14463 * haifa-sched.c (schedule_insns): Don't recompute reg info 14464 after reload. 14465 144662000-01-28 Zack Weinberg <zack@wolery.cumb.org> 14467 14468 * configure.in: Make --enable-cpplib the default. 14469 * configure: Regenerate. 14470 * gcc.dg/990119-1.c: No longer expected to fail. 14471 144722000-01-28 Bernd Schmidt <bernds@cygnus.co.uk> 14473 14474 * jump.c (jump_optimize_1): Delete an optimization that is also done 14475 by merge_blocks in flow. 14476 144772000-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14478 14479 * diagnostic.c (build_message_string, output_printf, 14480 line_wrapper_printf): Add ATTRIBUTE_PRINTF_*. 14481 (build_location_prefix): Fix non-literal format string. 14482 144832000-01-27 Richard Henderson <rth@cygnus.com> 14484 14485 * alpha.md (trunctfsf2): New. 14486 144872000-01-27 Andrew Hobson <ahobson@eng.mindspring.net> 14488 14489 * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH. 14490 144912000-01-27 Zack Weinberg <zack@wolery.cumb.org> 14492 14493 * cppinit.c (cpp_handle_option): Recognize C++ comments under 14494 -std=gnu89. 14495 * cpplib.c (skip_block_comment, skip_line_comment): Split code 14496 out of... 14497 (skip_comment) ... here. Permit C++ comments in system 14498 headers always. Warn about C++ comments in user code under 14499 -std=gnu89 -pedantic. 14500 (copy_comment): Use skip_comment. 14501 (cpp_skip_hspace, cpp_get_token): skip_comment can no longer 14502 return EOF. 14503 (consider_directive_while_skipping, do_else, do_endif): Call 14504 validate_else unconditionally. 14505 (validate_else): Check CPP_PEDANTIC here. Accept non-comment 14506 text after the conditional in a system header. 14507 * cpplib.h (struct cpp_buffer): Add flag 14508 warned_cplusplus_comments. 14509 145102000-01-27 Geoffrey Keating <geoffk@cygnus.com> 14511 14512 * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too. 14513 Use unshare_all_rtl_1. 14514 (unshare_all_rtl_again): New function. 14515 (unshare_all_rtl_1): New function split out of unshare_all_rtl. 14516 14517 * function.c (purge_addressof_1): Use unshare_all_rtl_again 14518 rather than resetting the 'used' flags ourself. 14519 14520 * toplev.c (rest_of_compilation): Add current_function_decl 14521 to the unshare_all_rtl call. 14522 * tree.h: Prototype unshare_all_rtl. 14523 * rtl.h: Prototype unshare_all_rtl_again here. 14524 145252000-01-27 Geoffrey Keating <geoffk@cygnus.com> 14526 14527 * genoutput.c (output_prologue): Include ggc.h in generated 14528 files. 14529 * Makefile.in (insn-output.o): Depends on ggc.h. 14530 145312000-01-27 Ian Dall <ian@sibyl.beware.dropbear.id.au> 14532 Hans-Peter Nilsson <hp@bitrange.com> 14533 14534 * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete. 14535 Remove redundant include of xm-ns32k.h. 14536 * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions. 14537 Remove redundant include of xm-ns32k.h. 14538 * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine. 14539 Remove redundant include of xm-ns32k.h. 14540 * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions. 14541 14542 * ns32k/ns32k.h: Update comment on multiply-add instructions. 14543 (TARGET_SWITCHES): Add documentation strings. 14544 (DWARF_FRAME_REGNUM): Override default definition. 14545 (REG_CLASS_CONTENTS): Add comments. 14546 (SUBSET_P): Format to reduce line length. 14547 (SMALL_REGISTER_CLASSES): Make a run time option. 14548 (GO_IF_NONINDEXED_ADDRESS): Reformat. 14549 (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before 14550 dereferencing it. Braces to avoid "ambiguous else" were misplaced. 14551 (regclass_map): fix typo in comment. 14552 * ns32k/ns32k.c: Add spaces before parentheses for consistant style. 14553 Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...). 14554 (trace, reg_or_mem_operand): Delete, unused function. 14555 (calc_address_cost): Small offsets are cheaper than large ones. 14556 (expand_block_move): Generate more efficient code when bytes is a 14557 known at compile time. 14558 * ns32k/ns32k.md: Alternate constraints for multiply-add instructions. 14559 (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand 14560 instead of reg_or_mem_operand. 14561 14562 * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs, 14563 not general_operand. Similarly use "=rm" or stricter, not "=g". 14564 For input operands, use stricter constraints than "g" if not 14565 general_operand. Similarly use stricter predicate than 14566 "general_operand" when stricter constraints than "g" are present, 14567 except for matching constraints. 14568 (movstrsi): Use "memory_operand" for operands 0 and 1. 14569 (truncsiqi2, truncsihi2, trunchiqi2): Remove. 14570 (udivmoddisi4_internal): Use nonimmediate_operand for operand 0, 14571 not reg_or_mem_operand. 14572 (udivmoddisi4): Ditto. 14573 Use nonimmediate_operand for operand 1, not reg_or_mem_operand. 14574 Use nonimmediate_operand for operand 3, not register_operand. 14575 (udivmoddiqi4_internal): Use register_operand for operand 1, not 14576 reg_or_mem_operand. 14577 145782000-01-27 Fred Fish <fnf@be.com> 14579 14580 * gthr-posix.h: Fix typo; compatibily -> compatibility. 14581 * gthr-single.h: Likewise. 14582 * gthr-solaris.h: Likewise. 14583 * gthr-vxworks.h: Likewise. 14584 * gthr-win32.h: Likewise. 14585 * gthr.h: Likewise. 14586 145872000-01-27 Zack Weinberg <zack@wolery.cumb.org> 14588 14589 * cppinit.c: Add " (cpplib)" to end of string printed by 14590 -v / --version. 14591 145922000-01-27 Richard Henderson <rth@cygnus.com> 14593 14594 * alpha.c (alpha_emit_conditional_move): Use VOIDmode when 14595 testing for a signed comparison. 14596 (alpha_emit_floatuns): New. 14597 * alpha-protos.h: Declare it. 14598 * alpha.md (floatunsdisf2, floatunsdidf2): New. 14599 (extendsfdf2): Tidy. 14600 146012000-01-27 Jakub Jelinek <jakub@redhat.com> 14602 14603 * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but 14604 no -g option specifying debugging format, default to -gstabs+. 14605 14606Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk> 14607 14608 * calls.c (special_function_p): New argument fork_or_exec. 14609 (expand_call): When profile_arc_flag is set and the function 14610 is in the fork_or_exec group, call __bb_fork_func first. 14611 * libgcc2.c, _bb module (__bb_fork_func): New function. 14612 (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock 14613 output file. 14614 * config/svr4.h (TARGET_HAS_F_SETLKW): Define. 14615 * tree.h (special_function_p): Update prototype. 14616 146172000-01-26 Richard Henderson <rth@cygnus.com> 14618 14619 * alpha.c (alpha_split_tfmode_pair): New. 14620 * alpha-protos.h: Declare it. 14621 * alpha.md (abstf2, negtf2): New. 14622 (movtf insn): Add input G constraint. 14623 (movtf splitter): Use alpha_split_tfmode_pair. 14624 146252000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14626 14627 * i386/cygwin.h: PROTO -> PARAMS. 14628 146292000-01-26 Jakub Jelinek <jakub@redhat.com> 14630 14631 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle 14632 TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons 14633 using _Qp_cmp/_Q_cmp and testing the return value. 14634 (print_operand): Call reverse_condition_maybe_unordered if 14635 we are handling CCFPmode or CCFPEmode. 14636 Handle ORDERED, UN* and LTGT comparisons. 14637 * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32 14638 if not TARGET_HARD_QUAD. 14639 (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble, 14640 bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt): 14641 Call sparc_emit_float_lib_cmp even on TARGET_ARCH32. 14642 Adjust gen_b* calls so that they reflect return comparison of 14643 sparc_emit_float_lib_cmp. 14644 146452000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 14646 14647 * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume 14648 incoming operands array is large enough for one more operand. 14649 (alpha_emit_xfloating_arith): Likewise. 14650 146512000-01-25 Zack Weinberg <zack@wolery.cumb.org> 14652 14653 * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a 14654 file with one line and no trailing newline. 14655 Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>. 14656 * fixinc/fixtests.c (machine_name_test): Fix fencepost error 14657 checking if the match is on the line. 14658 * fixinc/gnu-regex.c: Provide regerror not __regerror. 14659 146602000-01-25 Richard Henderson <rth@cygnus.com> 14661 14662 * sparc.c (output_cbranch): Fix accidental squashing of the 14663 fp branch pre-delay nop. 14664 146652000-01-25 Richard Henderson <rth@cygnus.com> 14666 14667 * tree.def (UNNE_EXPR): Remove. 14668 * c-typeck.c (build_binary_op): Don't handle it. 14669 * expr.c (expand_expr, do_jump, do_store_flag): Likewise. 14670 14671 * rtl.def (UNNE): Remove. 14672 (LTGT): Add. 14673 * jump.c (reverse_condition): Update accordingly. 14674 (swap_condition): Likewise. 14675 (comparison_dominates_p): Handle unordered comparisons. 14676 (reverse_condition_maybe_unordered): New. 14677 * rtl.h (reverse_condition_maybe_unordered): Declare. 14678 14679 * sparc.c (select_cc_mode): Update for UNNE/LTGT. 14680 (output_cbranch): Use reverse_condition_maybe_unordered and LTGT. 14681 * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs. 14682 * sparc.md (bltgt): New. 14683 146842000-01-25 Nick Clifton <nickc@redhat.com> 14685 14686 * emit-rtl.c (emit_insn): Only check machine class insns for 14687 improper emission of a RETURN. 14688 146892000-01-25 Richard Henderson <rth@cygnus.com> 14690 14691 * Makefile.in (flow.o): Depend on $(EXPR_H). 14692 * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e. 14693 duplicate the structure of diddle_return_value for keeping regs live. 14694 146952000-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 14696 14697 * loop.c (current_loop_info): Delete. 14698 (consec_sets_invariant_p): Add loop argument, update callers. 14699 (get_condition_for_loop): Likewise. 14700 (count_nonfixed_reads, update_giv_derive): Likewise. 14701 (simplify_giv_expr, general_induction_var): Likewise. 14702 (consec_sets_giv, recombine_givs): Likewise. 14703 (move_movables): Delete loop_start and loop_end arguments, 14704 add loop argument, and update callers. 14705 (find_mem_givs, check_final_value): Likewise. 14706 (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise. 14707 (loop_invariant_p): Rename from invariant_p, add loop argument, and 14708 update callers. 14709 (basic_induction_var): Add loop argument, delete loop_level argument, 14710 and update callers. 14711 * unroll.c (iteration_info): Delete loop_start and loop_end arguments, 14712 add loop argument, and update callers. 14713 (find_splittable_regs, find_splittable_givs): Likewise. 14714 (reg_dead_after_loop, loop_find_equiv_value): Likewise. 14715 (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise. 14716 (biv_total_increment): Delete loop_start and loop_end arguments; 14717 update callers. 14718 (precondition_loop_p): Delete loop_start and loop_info arguments; 14719 update callers. 14720 * loop.h (get_condition_for_loop): Add loop argument. 14721 (biv_total_increment): Delete loop_start and loop_end arguments. 14722 (precondition_loop_p): Delete loop_start and loop_info arguments; 14723 add loop argument. 14724 (final_biv_value): Delete loop_start and loop_end arguments; 14725 add loop argument. 14726 (final_giv_value, back_branch_in_range_p): Likewise. 14727 147282000-01-25 Gavin Romig-Koch <gavin@cygnus.com> 14729 14730 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16. 14731 147322000-01-25 Gavin Romig-Koch <gavin@cygnus.com> 14733 14734 * Makefile.in (c-gperf.h) : Change the "See" pointer to 14735 point to the new "generated_files" doc. 14736 147372000-01-25 Clinton Popetz <cpopetz@cygnus.com> 14738 14739 * config/fp-bit.c (_unord_f2): Fix typo. 14740 147412000-01-25 Zack Weinberg <zack@wolery.cumb.org> 14742 14743 * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c, 14744 c-typeck.c, objc/objc-act.c: Remove all references to obstack 14745 functions obsoleted by GC, such as push_obstacks_nochange, 14746 end_temporary_allocation, savealloc, saveable_tree_cons, etc. 14747 and code which existed only to decide whether or not to call 14748 them. Remove now-unused NESTED argument from start_function; 14749 all callers changed. Do not change behavior based on ggc_p. 14750 The use of the ixp_obstack in c-iterate.c and the util_obstack 14751 in objc/objc-act.c remain; these are not obsoleted by garbage 14752 collection. 14753 * c-tree.h: Update prototype for start_function. 14754 14755 * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild. 14756 147572000-01-25 Clinton Popetz <cpopetz@cygnus.com> 14758 14759 * config/mips/mips.md (zero_extendsidi2_internal): Disable for 14760 mips16. 14761 147622000-01-25 Richard Henderson <rth@cygnus.com> 14763 14764 * sparc-protos.h (select_cc_mode): Declare. 14765 * sparc.c (select_cc_mode): New. Handle unordered compares. 14766 (output_cbranch): Always reverse via code change. Handle 14767 unordered compares. Factor tests and string updates. 14768 * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode. 14769 (REVERSIBLE_CC_MODE): Also exclude CCFPmode. 14770 * sparc.md (bunordered, bordered): New. 14771 (bungt, bunlt, buneq, bunge, bunle): New. 14772 147732000-01-25 Richard Henderson <rth@cygnus.com> 14774 14775 * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root. 14776 * ggc-common.c (ggc_add_rtx_varray_root): New. 14777 (ggc_mark_rtx_varray): New. 14778 (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr 14779 functions down below ggc_mark_foo. 14780 * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare. 14781 147822000-01-25 Richard Henderson <rth@cygnus.com> 14783 14784 * alpha.c (secondary_reload_class): Don't allocate a secondary 14785 for integral mode memories into FLOAT_REGS. Rearrange the more 14786 complicated memory expression inward. 14787 147882000-01-25 Zack Weinberg <zack@wolery.cumb.org> 14789 14790 * inclhack.def: Fixes to play nicer with FreeBSD, and 14791 corrections to comments. 14792 (cxx_unready): Add select expression. 14793 (irix_sockaddr): Add bypass expression. 14794 (machine_ansi_h_va_list): New fix. 14795 (stdio_va_list): No need to edit _BSD_VA_LIST_. 14796 Split out addition of "#include <stdarg.h>" to... 14797 (stdio_stdarg_h): ... here. 14798 (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply 14799 to stdlib.h also. Do not munge _BSD_SIZE_T_. 14800 (sysz_stdlib_for_sun): Delete duplicate fix for unprotected 14801 size_t. 14802 (ultrix_ifdef): Tighten up select expression. 14803 14804 * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of 14805 re_ct and max_mach to avoid use of shell. Make printed names 14806 match names in inclhack.def. Use static copyright date. 14807 Don't count c_test and test expressions as requiring regex_t 14808 slots. Add some commentary. 14809 * inclhack.tpl: Do not include the 'This script contains N 14810 fixup scripts' line if PROGRAM is defined. Use static 14811 copyright date. 14812 148132000-01-24 Jason Merrill <jason@casey.cygnus.com> 14814 14815 * dwarf2out.c: include "varray.h", not dyn-string.h. 14816 (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose. 14817 (addr_const_to_string, addr_to_string): Lose. 14818 (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c. 14819 (struct dw_val_struct): val_addr is now an rtx. 14820 (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust. 14821 (used_rtx_varray): New varray. 14822 (dwarf2out_init): Initialize it. 14823 (save_rtx): New fn. 14824 (mem_loc_descriptor, add_const_value_attribute): Call it instead of 14825 addr_to_string. 14826 * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h, 14827 sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST. 14828 * Makefile.in (dwarf2out.o): Update dependencies. 14829 148302000-01-24 Richard Henderson <rth@cygnus.com> 14831 14832 * i386.c (i386_dwarf_output_addr_const): New. 14833 * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New. 14834 14835 * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR 14836 if defined. 14837 * dwarfout.c (output_mem_loc_descriptor): Likewise. 14838 * i386.c (i386_simplify_dwarf_addr): New. 14839 * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New. 14840 14841Mon Jan 24 16:56:10 2000 Jim Wilson <wilson@cygnus.com> 14842 14843 * dwarf2out.c (gen_struct_or_union_type_die): Set complete if 14844 TYPE_STUB_DECL is NULL. 14845 148462000-01-24 Richard Henderson <rth@cygnus.com> 14847 14848 * builtins.c (expand_tree_builtin): Move ... 14849 * c-common.c (expand_tree_builtin): ... here. 14850 148512000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 14852 14853 * loop.h (LOOP_INFO): New accessor macro. 14854 * basic-block.h (struct loop): Rename field `info' to `aux'. 14855 * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop). 14856 (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise. 14857 * unroll.c (loop_iterations, unroll_loop): Likewise. 14858 148592000-01-24 Christopher Faylor <cgf@cygnus.com> 14860 14861 * config/i386/t-cygwin: Accommodate new winsup directory layout 14862 when searching for include files. 14863 148642000-01-24 Richard Henderson <rth@cygnus.com> 14865 14866 * rtl.def: Add unordered fp comparisons. 14867 * tree.def: Likewise. 14868 * tree.h: Add ISO C 9x unordered fp comparison builtins. 14869 14870 * builtins.c (expand_tree_builtin): New function. 14871 * c-typeck.c (build_function_call): Use it. 14872 (build_binary_op): Support unordered compares. 14873 * c-common.c (c_common_nodes_and_builtins): Add unordered compares. 14874 14875 * combine.c (known_cond): Handle reverse_condition returning UNKNOWN. 14876 (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed. 14877 * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing. 14878 (record_jump_equiv): Handle reverse_condition returning UNKNOWN. 14879 * jump.c (reverse_condition): Don't abort for UNLE etc, but 14880 return UNKNOWN. 14881 (swap_condition): Handle unordered compares. 14882 (thread_jumps): Check can_reverse before reversing. 14883 * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be 14884 reversed for FP. 14885 14886 * optabs.c (can_compare_p): New argument CODE. Verify branch or 14887 setcc is present before acking for cmp_optab. Update all callers. 14888 (prepare_float_lib_cmp, init_optabs): Handle UNORDERED. 14889 * expmed.c (do_cmp_and_jump): Update for can_compare_p. 14890 * expr.c (expand_expr): Likewise. Support unordered compares. 14891 (do_jump, do_store_flag): Likewise. 14892 * expr.h (enum libfunc_index): Add unordered compares. 14893 14894 * Makefile.in (FPBIT_FUNCS): Add _unord_sf. 14895 (DPBIT_FUNCS): Add _unord_df. 14896 * config/fp-bit.c (_unord_f2): New. 14897 * fp-test.c (main): Try unordered compare builtins. 14898 14899 * alpha-protos.h (alpha_fp_comparison_operator): Declare. 14900 * alpha.c (alpha_comparison_operator): Check mode properly. 14901 (alpha_swapped_comparison_operator): Likewise. 14902 (signed_comparison_operator): Likewise. 14903 (alpha_fp_comparison_operator): New. 14904 (alpha_emit_conditional_branch): Handle unordered compares. 14905 * alpha.h (PREDICATE_CODES): Update. 14906 * alpha.md (fp compares): Use alpha_fp_comparison_operator. 14907 (bunordered, bordered): New. 14908 149092000-01-24 Richard Henderson <rth@cygnus.com> 14910 14911 * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation. 14912 * alpha.md (movtf): New expander, insn, and splitter. 14913 14914Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz> 14915 14916 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of 14917 dead registers. 14918 14919Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz> 14920 14921 * i386.h (FIRST_PSEUDO_REGISTER): Set to 21. 14922 (FIXED_REGISTERS, CALL_USED_REGISTERS, 14923 REG_ALLOC_ORDER): Add frame pointer 14924 (FRAME_POINTER_REGNUM): Set to 20 14925 (HARD_FRAME_POINTER_REGNUM): New macro. 14926 (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER 14927 to HARD_FRAME_POINTER. 14928 (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM 14929 (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise. 14930 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise. 14931 (HI_REGISTER_NAMES): Add "frame". 14932 (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination. 14933 (debug_reg): Handle FRAME_POINTER_REGNUM. 14934 (reg_class): Add arg pointer and frame pointer to NON_Q_REGS, 14935 GENERAL_REGS and INDEX_REGS. 14936 * i386.c (SAVED_REGS_FIRST): new macro. 14937 (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx 14938 (ix86_decompose_address, memory_address_length): Likewise. 14939 (regclass_map): Add frame pointer. 14940 (call_insn_operand): Handle frame_pointer_rtx. 14941 (reg_no_sp_operand): Likewise. 14942 (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx. 14943 (print_operand, legitimize_pic_address): Fix formating. 14944 (ix86_compute_frame_size): Make static, update prototype, new 14945 parameters padding1, padding2, use ix86_nsaved_regs, use 14946 stack_alignment_needed. 14947 (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM 14948 to HARD_FRAME_POINTER_REGNUM conversions. 14949 (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues. 14950 (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues. 14951 (print_reg): Abort on FRAME_POINTER_REGNUM 14952 14953Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz> 14954 14955 * i386.h (PREDICATE_CODES): Add aligned_operand. 14956 * i386.c (aligned_operand): New function. 14957 (ix86_aligned_p): Kill. 14958 * i386.md (movhi_1): Emit mov for aligned operands. 14959 (promoting peep2s): Use aligned_operand. 14960 149612000-01-23 Zack Weinberg <zack@wolery.cumb.org> 14962 14963 * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular 14964 expression to allow underscores in macro names. 14965 (fix_char_macro_defines): Increment scanning pointer. 14966 149672000-01-23 Richard Henderson <rth@cygnus.com> 14968 14969 * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define. 14970 * alpha/osf5.h: New file. 14971 * configure.in (alpha-*-osf5): Add it to tm_file. 14972 14973 * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target. 14974 14975 * alpha-protos.h (alpha_emit_xfloating_arith): Declare. 14976 (alpha_emit_xfloating_cvt, function_arg): Declare. 14977 * alpha.c (alpha_emit_conditional_branch): Call 14978 alpha_emit_xfloating_compare for TFmode compares. 14979 (alpha_lookup_xfloating_lib_func): New. 14980 (alpha_compute_xfloating_mode_arg): New. 14981 (alpha_emit_xfloating_libcall): New. 14982 (alpha_emit_xfloating_arith): New. 14983 (alpha_emit_xfloating_compare): New. 14984 (alpha_emit_xfloating_cvt): New. 14985 (print_operand): Add default abort case. 14986 (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE. 14987 * alpha.h (TARGET_HAS_XFLOATING_LIBS): New. 14988 (BIGGEST_ALIGNMENT): Increase to 128 bits. 14989 (RETURN_IN_MEMORY): True for TF/TCmode. 14990 (ALPHA_ARG_SIZE): TF/TCmode is passed indirect. 14991 (FUNCTION_ARG): Move to function_arg. 14992 (FUNCTION_ARG_PASS_BY_REFERENCE): New. 14993 (ASM_OUTPUT_LONG_DOUBLE): New. 14994 (ASM_OUTPUT_DOUBLE): Always output bits. 14995 * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New. 14996 (fix_trunctfdi2, floatditf2, floatunsditf2): New. 14997 (extenddftf2, trunctfdf2): New. 14998 149992000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 15000 15001 * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved... 15002 * config/sparc/sol2.h: ... here. 15003 150042000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 15005 15006 * basic-block.h (struct loops): New field `levels'. 15007 * flow.c (flow_loops_level_compute): Traverse all outer loops. 15008 (flow_loop_level_compute): Initialize level to 1. 15009 (flow_loops_find): Set loops->levels. 15010 (flow_loops_dump): Print loops->levels. 15011 150122000-01-23 Richard Henderson <rth@cygnus.com> 15013 15014 * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS. 15015 (throw_helper): Iterate over DWARF_FRAME_REGISTERS. 15016 150172000-01-23 Richard Henderson <rth@cygnus.com> 15018 15019 * i386.c (dbx_register_map, svr4_dbx_register_map): New. 15020 * i386.h (DBX_REGISTER_NUMBER): Use them. 15021 * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise. 15022 * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise. 15023 * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise. 15024 * i386/sequent.h: Kill incorrect comment. 15025 150262000-01-23 Mark Mitchell <mark@codesourcery.com> 15027 15028 * ggc-page.c (struct page_entry): Make `context_depth' an 15029 `unsigned short'. 15030 (struct globals): Likewise. 15031 150322000-01-23 Clinton Popetz <cpopetz@cygnus.com> 15033 15034 * loop.c (check_dbra_loop): When checking a loop for 15035 reversability, check the source of any stores to ensure 15036 they don't depend on an initial value. 15037 150382000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 15039 15040 * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine. 15041 150422000-01-22 Zack Weinberg <zack@wolery.cumb.org> 15043 15044 * fixinc/fixincl.c: Move declarations of 'pz_fname' and 15045 'pz_scan' into scope of entire function. Only affects 15046 compiles with -DDEBUG. 15047 150482000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au> 15049 15050 * config/elfos.h (UNIQUE_SECTION): Restore uninitialized data 15051 section naming to that prior to 2000-01-07 patch. 15052 * config/mips/elf.h (UNIQUE_SECTION): Ditto. 15053 * config/mips/elf64.h (UNIQUE_SECTION): Ditto. 15054 * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto. 15055 * config/i386/interix.c (UNIQUE_SECTION): Ditto. 15056 * config/i386/winnt.c (UNIQUE_SECTION): Ditto. 15057 150582000-01-22 Bernd Schmidt <bernds@cygnus.co.uk> 15059 15060 * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a 15061 constant. 15062 150632000-01-21 Jim Wilson <wilson@cygnus.com> 15064 15065 * fixinc/inclhack.tpl: Test for directory before trying to cd into it. 15066 * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate. 15067 150682000-01-21 Zack Weinberg <zack@wolery.cumb.org> 15069 15070 * cpphash.c (change_newlines): Delete function. 15071 (struct argdata): Delete 'newlines' and 'use_count' fields. 15072 (macroexpand): Remove code referencing those fields. 15073 150742000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 15075 15076 * loop.c (loops_info): New variable. 15077 (loop_optimize): Allocate loops->array and free it on exit. 15078 Allocate memory for loops_info and assign to each loop, 15079 replacing alloca. 15080 (find_and_verify_loops): Do not allocate loops->array. 15081 150822000-01-21 Zack Weinberg <zack@wolery.cumb.org> 15083 15084 * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'. 15085 150862000-01-21 Jakub Jelinek <jakub@redhat.com> 15087 15088 * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new 15089 pseudos if expanded after first flow. 15090 (movdi_pic_label_ref): Likewise. 15091 150922000-01-20 Richard Henderson <rth@cygnus.com> 15093 15094 * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0. 15095 150962000-01-20 Zack Weinberg <zack@wolery.cumb.org> 15097 15098 * Makefile.in (fixinc.sh): Depend on specs. 15099 * fixinc/Makefile.in: Add rule to create machname.h. 15100 (fixlib.o): Depend on machname.h. 15101 * fixinc/fixtests.c (machine_name): New test. 15102 * fixinc/fixfixes.c (machine_name): New fix. 15103 * fixinc/fixlib.c (mn_get_regexps): New helper function for 15104 the machine_name test and fix. 15105 * fixinc/fixlib.h: Prototype it. 15106 * fixinc/inclhack.def (machine_name): Use the C test and fix. 15107 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild. 15108 15109 * gcc.c (do_spec_1) [case P]: Take care not to create 15110 identifiers with three leading or trailing underscores. 15111 15112 * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC. 15113 (fixincl): Don't specify libraries twice on link line. 15114 (gnu-regex.o): Remove special rule. 15115 * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was 15116 defined by config.h. Do not define _REGEX_RE_COMP. 15117 (regcomp): Allocate and initialize a fastmap. 15118 * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP. 15119 151202000-01-20 Brad Lucier <lucier@math.purdue.edu> 15121 15122 * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h. 15123 151242000-01-19 Richard Henderson <rth@cygnus.com> 15125 15126 * flow.c (propagate_block): Replace FIRST, LAST and BNUM 15127 arguments with BB. Update all callers. Tidy line wrapping. 15128 151292000-01-19 Clinton Popetz <cpopetz@cygnus.com> 15130 15131 * emit-rtl.c (try_split): Return last_insn if we split the 15132 last_insn. 15133 15134Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz> 15135 15136 * i386-protos.h (ix86_compute_frame_size): Remove prototype. 15137 (ix86_initial_elimination_offset): Declare. 15138 * i386.c (ix86_nsaved_regs): Break out from ... 15139 (ix86_can_use_return_insn_p): ... here. 15140 (ix86_emit_save_regs): Break out from ... 15141 (ix86_expand_prologue): ... here. 15142 (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break 15143 out from ... 15144 (ix86_expand_epilogue): ... here. 15145 (ix86_compute_frame_size): Make static, add prototype. 15146 (ix86_initial_elimination_offset): Break out from ... 15147 * i386.h (INITIAL_ELIMINATION_OFFSET): ... here. 15148 151492000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15150 15151 * recog.h (OUT_FCN): Delete. 15152 15153 * vax.md: Call `get_insn_template' instead of OUT_FCN. 15154 151552000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15156 15157 * cppalloc.c: PROTO -> PARAMS. 15158 * cpperror.c: Likewise. 15159 * cppfiles.c: Likewise. 15160 * cpplib.c: Likewise. 15161 * cpplib.h: Likewise. 15162 15163 * config/arm/arm-protos.h: PROTO -> PARAMS. 15164 * config/arm/arm.c: Likewise. 15165 * config/c4x/c4x.c: Likewise. 15166 * config/fr30/fr30-protos.h: Likewise. 15167 * config/nextstep.c: Likewise. 15168 * config/pa/pa.c: Likewise. 15169 * config/pj/pj.c: Likewise. 15170 * config/rs6000/rs6000.c: Likewise. 15171 * config/v850/v850-protos.h: Likewise. 15172 * config/v850/v850.c: Likewise. 15173 151742000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15175 15176 * i370-protos.h: New file. 15177 15178 * i370.c: Include tm_p.h. Fix compile time warnings. 15179 15180 * i370.h: Move prototypes to i370-protos.h. Fix compile time 15181 warnings. 15182 15183 * i370.md: Likewise. 15184 151852000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15186 15187 * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS. 15188 (target_isinf, target_isnan, eisnan): Mark parameter with 15189 ATTRIBUTE_UNUSED. 15190 (eiisinf): Wrap in INFINITY. 15191 (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY. 15192 (ibmtoe): Remove unused variable `rndsav'. 15193 15194Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 15195 15196 * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis. 15197 (GO_IF_LEGITIMATE_ADDRESS): Added missing tab. 15198 151992000-01-19 Zack Weinberg <zack@wolery.cumb.org> 15200 15201 * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o. 15202 * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes. 15203 (fix_char_macro_defines, fix_char_macro_uses): New functions. 15204 15205 * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp. 15206 Recognize Emacs mode markers also. 15207 * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of 15208 C++ comments in C++ headers. Call is_cxx_header only if 15209 necessary. 15210 15211 * fixinc/inclhack.def (avoid_bool): Add select for the problem and 15212 bypass for ncurses. 15213 (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with... 15214 (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes): 15215 ... these, which use the new C fixes. 15216 (math_exception): Escape literal '+' in bypass expression. 15217 15218 * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh: 15219 Regenerate. 15220 152212000-01-19 Geoff Keating <geoffk@cygnus.com> 15222 15223 * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs 15224 inside the MEM. 15225 152262000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 15227 15228 * loop.c (loop_optimize): Allocate loop_info structure for each loop 15229 prior to calling scan_loop. 15230 15231Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 15232 15233 * sh.c (find_barrier, gen_block_redirect): Fix indentation. 15234 (split_branches, calc_live_regs): Likewise. 15235 15236Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 15237 15238 * sh.md (fpu_single, fp_mode): New attributes. 15239 152402000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 15241 15242 * loop.c (current_loop_info): Renamed from loop_info_data 15243 and changed to a pointer. 15244 (loop_optimize): Allocate loop_info structure for each loop 15245 and initialize to zero. 15246 (scan_loop): Set current_loop_info. 15247 15248 * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set 15249 on iteration_var. 15250 152512000-01-19 Richard Henderson <rth@cygnus.com> 15252 15253 * stupid.c: Die die die. 15254 * Makefile.in (OBJS): Remove stupid.o. 15255 (stupid.o): Likewise. 15256 15257 * except.c (emit_eh_context): Don't emit USEs for stupid. 15258 * explow.c (probe_stack_range): Likewise. 15259 * flags.h (obey_regdecls): Remove. 15260 * flow.c (find_basic_blocks): Don't run try_merge_blocks 15261 when not optimizing. 15262 (life_analysis): Limit data collection when not optimizing. 15263 (mark_regs_live_at_end): Always mark the return value registers. 15264 (mark_used_regs): Remove dummy RETURN case. 15265 (print_rtl_with_bb): Don't consult obey_regdecls. 15266 * function.c (use_variable, use_variable_after): Remove. 15267 (assign_parms): Consult optimize not obey_regdecls. 15268 (expand_function_start): Don't emit USEs for stupid. 15269 (expand_function_end): Likewise. 15270 * global.c (build_insn_chain): Export. 15271 * integrate.c (expand_inline_function): Kill return-value USE 15272 handling code. 15273 * jump.c (jump_optimize_1): Do simple jump optimizations and 15274 dead code elimination. 15275 (calculate_can_reach_end): Remove check_deleted argument. 15276 (delete_insn): Patch out insns even when not optimizing. 15277 * local-alloc.c (block_alloc): Don't do tying when not optimizing. 15278 * rtl.h (use_variable, use_variable_after): Remove declarations. 15279 (build_insn_chain): Declare. 15280 * stmt.c (expand_value_return): Don't emit USEs for stupid. 15281 (expand_end_bindings): Likewise. 15282 (expand_decl): Likewise. Consult optimize not obey_regdecls. 15283 * toplev.c (obey_regdecls): Remove. 15284 (rest_of_compilation): Don't set it. Kill stupid in favor of 15285 flow1, local-alloc, and reload. 15286 (main): Don't set obey_regdecls. 15287 15288 * config/nextstep.c (handle_pragma): Likewise. 15289 15290 * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid. 15291 15292 * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid. 15293 152942000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15295 15296 * alpha-protos.h: PROTO -> PARAMS. 15297 * alpha.c: Likewise. 15298 * elf.h: Likewise. 15299 * h8300.c: Likewise. 15300 * i386-protos.h: Likewise. 15301 * i386.c: Likewise. 15302 * m32r-protos.h: Likewise. 15303 * m32r.c: Likewise. 15304 * mips.c: Likewise. 15305 * mips.md: Likewise. 15306 * gmon-sol2.c: Likewise. 15307 * sparc.c: Likewise. 15308 153092000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15310 15311 * ns32k-protos.h: New file. 15312 15313 * ns32k.c: Fix compile time warnings. 15314 15315 * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time 15316 warnings. 15317 15318 * ns32k.md: Likewise. 15319 153202000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15321 15322 * vax-protos.h: New file. 15323 15324 * vax.c: Fix compile time warnings. 15325 15326 * vax.h: Move prototypes to vax-protos.h. Fix compile time 15327 warnings. 15328 15329 * vax.md: Likewise. 15330 15331 * vaxv.md: Likewise. 15332 153332000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15334 15335 * romp-protos.h: New file. 15336 15337 * romp.c: Fix compile time warnings. 15338 15339 * romp.h: Move prototypes to romp-protos.h. Fix compile time 15340 warnings. 15341 15342 * romp.md: Likewise. 15343 153442000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15345 15346 * we32k-protos.h: New file. 15347 15348 * we32k.c: Fix compile time warnings. 15349 15350 * we32k.h: Move prototypes to we32k-protos.h. Fix compile time 15351 warnings. 15352 153532000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15354 15355 * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED. 15356 15357 * except.c (eh_regs): Likewise. 15358 15359 * final.c (output_operand): Likewise. 15360 15361 * fold-const.c (target_isinf, target_isnan): Likewise. 15362 15363Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz> 15364 15365 * i386.h (BIGGEST_ALIGNMENT): Set to 128. 15366 (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32) 15367 15368 * i386.md (memstr): Do not use rep stosb for counts divisible by 4 15369 when optimize_size. 15370 (clrstrsi): Rewrite. 15371 (strsethi, strsetqi): New expanders. 15372 (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns. 15373 (cmpstrsi): Emit compare insn before cmpstrsi_1 15374 (cmpstrsi_nz): use flags, set type to str, prefix_length to 1. 15375 (strlensi_1): Likewise. 15376 (cmpstrsi_1): Likewise; do not output compare. 15377 (strlen expander): Do not unroll when optimizing for size. 15378 (*subsi3_carry): Rename to subsi3_carry 15379 (addqi3_cc): New pattern. 15380 * i386.h (processor_costs): Add move_ratio field. 15381 (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE 15382 * i386.c (*_cost): Set move_ratio. 15383 (x86_unroll_strlen): Enable for Athlon, PPro and K6 too. 15384 (x86_expand_strlensi_1): Rewrite the main loop. 15385 153862000-01-17 Richard Henderson <rth@cygnus.com> 15387 15388 * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode. 15389 * cse.c (find_comparison_args, fold_rtx): Likewise. 15390 * integrate.c (subst_constants): Likewise. 15391 * loop.c (get_condition): Likewise. 15392 15393 * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs. 15394 15395 * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF. 15396 153972000-01-18 Martin v. L�wis <loewis@informatik.hu-berlin.de> 15398 15399 * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST. 15400 (RESTORE_WARN_FLAGS): Unpack it. 15401 Change semantic type of extension to ttype. 15402 * c-common.c (split_specs_attrs): Expect an INTEGER_CST. 15403 * c-parse.y, c-parse.c, objc/objc-parse.y, 15404 objc/objc-parse.c: Regenerate. 15405 154062000-01-17 Zack Weinberg <zack@wolery.cumb.org> 15407 15408 * fixinc/fixlib.c: Add copyright notice. 15409 (compile_re): New function. 15410 * fixinc/fixlib.h: Prototype compile_re. 15411 15412 * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c: 15413 Use compile_re to compile regular expressions. 15414 15415 * fixinc/fixincl.c (egrep_test): Don't bother asking regexec 15416 where the pattern matched. 15417 15418 * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy, 15419 use 'replace'. 15420 (ultrix_ansi_compat): Likewise. 15421 (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test, 15422 add egrep test. 15423 (interactv_add2, interactv_add3): Delete. 15424 (x11_sprintf): Don't use filename glob. 15425 * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh: 15426 Regenerate. 15427 154282000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15429 15430 * print-rtl.c: PROTO -> PARAMS. 15431 * real.c: Likewise. 15432 * reg-stack.c: Likewise. 15433 * resource.c: Likewise. 15434 * sdbout.h: Likewise. 15435 * simplify-rtx.c: Likewise. 15436 * stor-layout.c: Likewise. 15437 * stupid.c: Likewise. 15438 * xcoffout.c: Likewise. 15439 * xcoffout.h: Likewise. 15440 154412000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15442 15443 * toplev.c: PROTO -> PARAMS. 15444 * toplev.h: Likewise. 15445 * tree.c: Likewise. 15446 * tree.h: Likewise. 15447 * unroll.c: Likewise. 15448 * varasm.c: Likewise. 15449 * varray.c: Likewise. 15450 * varray.h: Likewise. 15451 154522000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15453 15454 * reload.c: PROTO -> PARAMS. 15455 * reload.h: Likewise. 15456 * reload1.c: Likewise. 15457 * reorg.c: Likewise. 15458 * resource.h: Likewise. 15459 * rtl.c: Likewise. 15460 * rtl.h: Likewise. 15461 * rtlanal.c: Likewise. 15462 * sbitmap.h: Likewise. 15463 * sdbout.c: Likewise. 15464 * stack.h: Likewise. 15465 * stmt.c: Likewise. 15466 * system.h: Likewise. 15467 154682000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15469 15470 * machmode.h: PROTO -> PARAMS. 15471 * mbchar.h: Likewise. 15472 * mips-tdump.c: Likewise. 15473 * mips-tfile.c: Likewise. 15474 * optabs.c: Likewise. 15475 * output.h: Likewise. 15476 * prefix.c: Likewise. 15477 * profile.c: Likewise. 15478 * protoize.c: Likewise. 15479 * real.h: Likewise. 15480 * recog.c: Likewise. 15481 * recog.h: Likewise. 15482 * regclass.c: Likewise. 15483 * regmove.c: Likewise. 15484 * regs.h: Likewise. 15485 154862000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15487 15488 * ggc-common.c: PROTO -> PARAMS. 15489 * ggc-page.c: Likewise. 15490 * ggc-simple.c: Likewise. 15491 * ggc.h: Likewise. 15492 * global.c: Likewise. 15493 * graph.c: Likewise. 15494 * gthr-win32.h: Likewise. 15495 * haifa-sched.c: Likewise. 15496 * halfpic.h: Likewise. 15497 * integrate.c: Likewise. 15498 * integrate.h: Likewise. 15499 * jump.c: Likewise. 15500 * lcm.c: Likewise. 15501 * local-alloc.c: Likewise. 15502 * loop.c: Likewise. 15503 * loop.h: Likewise. 15504 155052000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15506 15507 * genattr.c: PROTO -> PARAMS. 15508 * genattrtab.c: Likewise. 15509 * gencheck.c: Likewise. 15510 * gencodes.c: Likewise. 15511 * genconfig.c: Likewise. 15512 * genemit.c: Likewise. 15513 * genextract.c: Likewise. 15514 * genflags.c: Likewise. 15515 * gengenrtl.c: Likewise. 15516 * genopinit.c: Likewise. 15517 * genoutput.c: Likewise. 15518 * genpeep.c: Likewise. 15519 * genrecog.c: Likewise. 15520 155212000-01-16 Mark Mitchell <mark@codesourcery.com> 15522 15523 * tree.h (BINFO_VPTR_FIELD): Augment documentation. 15524 155252000-01-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 15526 15527 * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro. 15528 * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP. 15529 * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO. 15530 * configure, config.in: Rebuilt. 15531 155322000-01-16 Zack Weinberg <zack@wolery.cumb.org> 15533 15534 * config/i386/i386.md: Add peephole to merge successive stack 15535 adjusts. 15536 15537Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com) 15538 15539 * gcse.c (insert_insn_end_bb): Use emit_block_insn_before 15540 instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK 15541 when walking backwards to find all the parameter loads when 15542 the basic block ends in a call. 15543 155442000-01-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 15545 15546 * loop.c (this_loop_info): Delete. 15547 (uid_loop): Add in place of uid_loop_num. All uses updated. 15548 (loop_number_exit_count): Delete and replace with entry in loop 15549 structure. All uses updated. 15550 (loop_number_loop_starts, loop_number_loop_ends): Likewise. 15551 (loop_number_loop_cont, loop_number_cont_dominator): Likewise. 15552 (loop_outer_loop): Likewise. 15553 (loop_invalid, loop_number_exit_labels): Likewise. 15554 (loop_used_count_register): Delete and replace with entry in 15555 loop_info structure. 15556 (find_and_verify_loops): Add loops argument. 15557 (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start, 15558 loop_end, etc. arguments with loop structure pointer. All callers 15559 changed. 15560 (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise. 15561 (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise. 15562 (load_mems_and_recount_loop_regs_set, load_mems): Likewise. 15563 (insert_bct): Likewise. 15564 (basic_induction_var): New argument level. 15565 * loop.h (struct loop_info): Delete fields num, loops_enclosed, 15566 vtop, and cont. Add used_count_register. 15567 (uid_loop): Delete declaration. 15568 (loop_number_exit_count): Likewise. 15569 (loop_number_loop_starts, loop_number_loop_ends): Likewise. 15570 (loop_number_loop_cont, loop_number_cont_dominator): Likewise. 15571 (loop_outer_loop, loop_used_count_register): Likewise. 15572 (loop_invalid, loop_number_exit_labels): Likewise. 15573 (unroll_loop): Replace loop_start and loop_end arguments 15574 with loop structure pointer. 15575 (loop_precondition_p, loop_iterations): Likewise. 15576 Include basic-block.h. 15577 * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments 15578 with loop structure pointer. 15579 (loop_precondition_p, loop_iterations): Likewise. 15580 * basic-block.h (struct loop): New entries vtop, cont, 15581 cont_dominator, start, end, top, scan_start, exit_labels, 15582 exit_count. 15583 * Makefile.in (LOOP_H): Add basic-block.h to dependencies. 15584 155852000-01-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 15586 15587 * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT. 15588 155892000-01-14 Nathan Sidwell <sidwell@codesourcery.com> 15590 15591 * config.in: Rebuilt for 2000-01-13 change to acconfig.h. 15592 155932000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15594 15595 * pdp11-protos.h: New file. 15596 15597 * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile 15598 time warnings. 15599 15600 * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time 15601 warnings. 15602 15603 * pdp11.md: Likewise. 15604 15605 * 2bsd.h: Likewise. 15606 156072000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15608 15609 * mn10300-protos.h: New file. 15610 15611 * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile 15612 time warnings. 15613 15614 * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time 15615 warnings. 15616 15617 * mn10300.md: Likewise. 15618 156192000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15620 15621 * mn10200-protos.h: New file. 15622 15623 * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile 15624 time warnings. 15625 15626 * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time 15627 warnings. 15628 15629 * mn10200.md: Likewise. 15630 156312000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15632 15633 * h8300-protos.h: New file. 15634 15635 * h8300.c: Include tm_p.h. Add static prototypes. Fix compile 15636 time warnings. 15637 15638 * h8300.h: Move prototypes to h8300-protos.h. Fix compile time 15639 warnings. 15640 15641 * h8300.md: Likewise. 15642 156432000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15644 15645 * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED. 15646 (asm_emit_uninitialised): Likewise. 15647 156482000-01-13 Gavin Romig-Koch <gavin@cygnus.com> 15649 15650 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New. 15651 * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE. 15652 156532000-01-14 Clinton Popetz <cpopetz@cygnus.com> 15654 15655 * config/mips/mips.c (override_options): Don't turn on extra 15656 alignment for mips16. 15657 156582000-01-14 Clinton Popetz <cpopetz@cygnus.com> 15659 15660 * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit 15661 eabi, and make sure queued POSTINCREMENT rtl is emitted at 15662 the right point. 15663 156642000-01-14 Clinton Popetz <cpopetz@cygnus.com> 15665 15666 * builtins.c (PAD_VARARGS_DOWN): Define. 15667 (std_expand_builtin_va_arg): Use the above macro. 15668 * config/mips/mips.h (PAD_VARARGS_DOWN): Define. 15669 * tm.texi (Register Arguments): Document the above macro. 15670 156712000-01-14 Nick Clifton <nickc@cygnus.com> 15672 15673 * emit-rtl.c (emit_insn): If checking is enabled, make sure 15674 that this function has not been used to emit a jump 15675 instruction. 15676 15677 * jump.c (return_jump_1): Cope with being passed a null rtx. 15678 156792000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15680 15681 * eh-common.h: PROTO -> PARAMS. 15682 * emit-rtl.c: Likewise. 15683 * errors.c: Likewise. 15684 * errors.h: Likewise. 15685 * except.c: Likewise. 15686 * except.h: Likewise. 15687 * explow.c: Likewise. 15688 * expmed.c: Likewise. 15689 * expr.c: Likewise. 15690 * expr.h: Likewise. 15691 * final.c: Likewise. 15692 * fix-header.c: Likewise. 15693 * flow.c: Likewise. 15694 * fold-const.c: Likewise. 15695 * function.c: Likewise. 15696 * function.h: Likewise. 15697 * gcc.c: Likewise. 15698 * gcov-io.h: Likewise. 15699 * gcov.c: Likewise. 15700 * gcse.c: Likewise. 15701 157022000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15703 15704 * sh-protos.h: New file. 15705 15706 * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h. 15707 Add static prototypes. Fix compile time warnings. 15708 15709 * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings. 15710 * sh.md: Likewise. 15711 * elf.h: Likewise. 15712 157132000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15714 15715 * arc-protos.h: New file. 15716 15717 * arc.c: Include tm_p.h. Add static prototypes. Fix compile 15718 time warnings. 15719 15720 * arc.h: Move prototypes to arc-protos.h. Fix compile time 15721 warnings. 15722 15723 * arc.md: Likewise. 15724 157252000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15726 15727 * dsp16xx-protos.h: New file. 15728 15729 * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile 15730 time warnings. 15731 15732 * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time 15733 warnings. 15734 15735 * dsp16xx.md: Likewise. 15736 157372000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15738 15739 * convex-protos.h: New file. 15740 15741 * convex.c: Include tm_p.h. Add static prototypes. Fix compile 15742 time warnings. 15743 15744 * convex.h: Move prototypes to convex-protos.h. Fix compile time 15745 warnings. 15746 157472000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15748 15749 * elxsi-protos.h: New file. 15750 15751 * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile 15752 time warnings. 15753 15754 * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time 15755 warnings. 15756 15757 * elxsi.md: Likewise. 15758 157592000-01-14 Clinton Popetz <cpopetz@cygnus.com> 15760 15761 * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant 15762 case for moving from HI/LO/HI_LO_REG. This makes the behavior 15763 match the comment for MIPS16. 15764 15765Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com) 15766 15767 * flow.c (split_edge): Do not call set_block_for_insn if we 15768 do not have a basic_block_for_insn structure. 15769 15770 * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain 15771 and destination functions are 32bit aligned within the trampoline. 15772 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes. 15773 (TRAMPOLINE_ALIGNMENT): Define. 15774 15775 * cse.c (cse_insn): When changing (set (pc) (reg)) to 15776 (set (pc) (label_ref)), verify the change creates a valid insn. 15777 15778 * fr30.c (call_operand): Tighten and rework to match rules for 15779 call RTL expressions. 15780 * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs. 15781 * fr30.md (call patterns): Improve constraints. 15782 15783Thu Jan 13 23:44:03 2000 Richard Henderson <rth@cygnus.com> 15784 15785 * fr30.c (fr30_expand_epilogue): Revert last change. 15786 Use emit_jump_insn for the return insn. 15787 15788Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com> 15789 Stan Cox <scox@cygnus.com> 15790 15791 * predict.c: New file. Preliminary infrastructure work for static 15792 branch prediction and basic block reordering. 15793 * basic-block.h: Add prototype for estimate_probability. 15794 * Makefile.in: Add rules for predict.o. 15795 157962000-01-13 Jason Merrill <jason@yorick.cygnus.com> 15797 15798 * fixincludes (va_list): Use __not_va_list__ for the dummy. 15799 * fixinc/*: Likewise. 15800 158012000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15802 15803 * cccp.c: PROTO -> PARAMS. 15804 * cexp.y: Likewise. 15805 * collect2.c: Likewise. 15806 * combine.c: Likewise. 15807 * convert.h: Likewise. 15808 * cse.c: Likewise. 15809 * dbxout.c: Likewise. 15810 * dbxout.h: Likewise. 15811 * diagnostic.c: Likewise. 15812 * doprint.c: Likewise. 15813 * dwarf2out.c: Likewise. 15814 * dwarf2out.h: Likewise. 15815 * dwarfout.c: Likewise. 15816 * dwarfout.h: Likewise. 15817 * dyn-string.h: Likewise. 15818 158192000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15820 15821 * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in 15822 macro conditionals guarding use. 15823 15824 * dwarf2out.c: Include "tm_p.h". 15825 15826 * function.c (locate_and_pad_parm): Mark parameter with 15827 ATTRIBUTE_UNUSED. 15828 (expand_function_end): Likewise for variable `context'. 15829 15830 * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return. 15831 158322000-01-13 Nick Clifton <nickc@cygnus.com> 15833 15834 * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed 15835 register to prevent compile time warnings. 15836 158372000-01-13 Zack Weinberg <zack@wolery.cumb.org> 15838 15839 * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv' 15840 to avoid -Wtraditional warning. 15841 158422000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15843 15844 * 1750a-protos.h: New file. 15845 15846 * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile 15847 time warnings. 15848 15849 * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time 15850 warnings. 15851 15852 * 1750a.md: Likewise. 15853 158542000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15855 15856 * a29k-protos.h: New file. 15857 15858 * a29k.c: Include tm_p.h. Add static prototypes. Fix compile 15859 time warnings. 15860 15861 * a29k.h: Move prototypes to a29k-protos.h. Fix compile time 15862 warnings. 15863 158642000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15865 15866 * clipper-protos.h: New file. 15867 15868 * clipper.c: Include tm_p.h. Add static prototypes. Fix compile 15869 time warnings. 15870 15871 * clipper.h: Move prototypes to clipper-protos.h. Fix compile time 15872 warnings. 15873 15874Thu Jan 13 16:03:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 15875 15876 * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS. 15877 158782000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 15879 15880 * configure.in (--enable-new-gxx-abi): New option. 15881 * acconfig.h (ENABLE_NEW_GXX_ABI): New define. 15882 * Makefile.in (GXX_ABI_FLAG): New variable. 15883 * configure: Regenerate. 15884 158852000-01-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 15886 15887 * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK. 15888 * tm.texi (FORCE_STRUCT_BLK): Document. 15889 * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro. 15890 15891Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson <hp@axis.com> 15892 15893 * config/ns32k/ns32k.md: Revert Jan 9 change. 15894 15895 * genrecog.c (maybe_both_true_2): Do not compare a predicate-test 15896 to a mode-test, if the predicate is address_operand. 15897 15898Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com) 15899 15900 * combine.c (if_then_else_cond): Be careful about what kinds 15901 of RTL expressions are passed to operand_subword. 15902 15903 * flow.c (split_edge): If we have to insert a new jump, make 15904 sure to associate it with a basic block. 15905 15906 * flow.c (commit_one_edge_insertion): A block with one successor 15907 can end in a JUMP_INSN that is not a simplejump. 15908 159092000-01-12 Robert Lipe <robertl@sco.com> 15910 15911 * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor". 15912 (BUILD_VA_LIST_TYPE): Define. 15913 (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact 15914 with crtstuff.c. 15915 159162000-01-12 Jason Merrill <jason@casey.cygnus.com> 15917 15918 * cccp.c (do_pragma): Add cast to (char *). 15919 159202000-01-12 Richard Henderson <rth@cygnus.com> 15921 Fred Fish <fnf@be.com> 15922 Jason Merrill <jason@cygnus.com> 15923 15924 * configure.in (i?86-*-beos{pe,elf,}*): Recognize. 15925 * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files. 15926 * i386/beos-elf.h, i386/beos-pe.h: New files. 15927 15928 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New. 15929 * cross-make (SYSTEM_HEADER_DIR): Define using 15930 CROSS_SYSTEM_HEADER_DIR. 15931 15932 * gcc.c (LIBRARY_PATH_ENV): Provide default. 15933 (process_command): Use it. 15934 (main): Likewise. Kill trailing = from env vars. 15935 (build_search_list): Put it back. 15936 * collect2.c (main): Use LIBRARY_PATH_ENV. 15937 15938 * configure.in (GCC_NEED_DECLARATIONS): Add environ. 15939 * toplev.c: Use NEED_DECLARATION_ENVIRON. 15940 15941 * tm.texi (Frame Layout): Document SMALL_STACK. 15942 * c-common.c (c_common_nodes_and_builtins): Check it. 15943 15944 * system.h: Undef alloca after including glibc's <stdlib.h>, 15945 if USE_C_ALLOCA is defined. 15946 15947 * gcc.c (set_input): New fn. 15948 (main): After all input files are compiled, reset the input file 15949 info to the first. 15950 15951 * aclocal.m4 (rindex, index): If already defined, don't attempt 15952 to redefine. 15953 15954 * ginclude/varargs.h: (__va_list__): Define ifndef. 15955 * ginclude/stdarg.h: Likewise. 15956 15957 * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int 15958 instead of unsigned char. 15959 15960 * hash.h (true, false, boolean): Undef before enum. 15961 15962 * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be 15963 proper type of "HOST_WIDE_INT *", rather than their natural type of 15964 "unsigned HOST_WIDE_INT *". 15965 159662000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15967 15968 * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets. 15969 15970 * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED. 15971 15972 * regclass.c (choose_hard_reg_mode): Likewise. 15973 15974 * reload.c (find_valid_class, strict_memory_address_p): Likewise. 15975 15976 * reorg.c (optimize_skip): Wrap prototype in macro conditionals. 15977 159782000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15979 15980 * c-common.c: PROTO -> PARAMS. 15981 * c-common.h: Likewise. 15982 * c-decl.c: Likewise. 15983 * c-iterate.c: Likewise. 15984 * c-lang.c: Likewise. 15985 * c-lex.c: Likewise. 15986 * c-lex.h: Likewise. 15987 * c-parse.in: Likewise. 15988 * c-pragma.c: Likewise. 15989 * c-pragma.h: Likewise. 15990 * c-tree.h: Likewise. 15991 * c-typeck.c: Likewise. 15992 * objc/objc-act.c: Likewise. 15993 * objc/objc-act.h: Likewise. 15994 159952000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15996 15997 * m88k-protos.h: New file. 15998 15999 * m88k.c: Include tm_p.h. Add static prototypes. Fix compile 16000 time warnings. 16001 16002 * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings. 16003 16004 * m88k.md: Likewise. 16005 16006 * tekXD88.h: Likewise. 16007 160082000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16009 16010 * m68k-protos.h: New file. 16011 16012 * m68k.c: Include tm_p.h. Add static prototypes. Fix compile 16013 time warnings. 16014 16015 * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings. 16016 16017 * mot3300.h: Likewise. 16018 160192000-01-12 Richard Earnshaw <rearnsha@arm.com> 16020 16021 * haifa-sched.c (split_edges): Pass edgeset_size as second arg to 16022 extract_bitlst. 16023 (extract_bitlist): Declare bitlen. 16024 160252000-01-12 Zack Weinberg <zack@wolery.cumb.org 16026 16027 * cccp.c: Accept and ignore -lang-fortran. 16028 16029 * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the 16030 qualifiers don't match at any level of pointerness. 16031 160322000-01-12 Robert Lipe <robertl@sco.com> 16033 16034 * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT. 16035 160362000-01-12 Bernd Schmidt <bernds@cygnus.co.uk> 16037 16038 * reload1.c (reload_reg_unavailable): New static variable. 16039 (reload_reg_free_p): Test it. 16040 (reload_reg_free_for_value_p): Test it instead of 16041 reload_reg_used. 16042 (choose_reload_regs_init): Compute it. 16043 16044Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com) 16045 16046 * reorg.c (fill_slots_from_thread): Check modified_in_p 16047 before replacing. 16048 16049Wed Jan 12 03:20:31 2000 John Marshall <john_w_marshall@palm.com> 16050 16051 * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format 16052 these nodes even if INTERNALS is not set. 16053 16054Wed Jan 12 09:39:22 2000 Nick Burrett <nick.burrett@btinternet.com> 16055 16056 * gcse.c (delete_null_pointer_checks_1): Cope when 16057 get_condition cannot determine the condition. 16058 160592000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 16060 16061 * toplev.h (set_message_length): Declare. 16062 16063 * diagnostic.c (obstack_chunk_alloc): Define macro. 16064 (obstack_chunk_free): Likewise. 16065 (struct output_buffer): New data structure. 16066 (vmessage): Remove. 16067 (output_maximum_width): New variable. 16068 (doing_line_wrapping, set_message_length, init_output_buffer, 16069 get_output_prefix, output_space_left, emit_output_prefix, 16070 output_newline, output_append, output_puts, dump_output, 16071 vbuild_message_string, build_message_string, build_location_prefix, 16072 voutput_notice, output_printf, line_wrapper_printf, 16073 vline_wrapper_message_with_location): New functions. Implement 16074 automatic line wrapping. 16075 (v_message_with_decl): Make it handle automatic line wrapping. 16076 (v_error_with_file_and_line): Likewise. 16077 (v_warning_with_file_and_line): Likewise. 16078 (announce_function): Likewise. 16079 (default_print_error_function): Likewise. 16080 160812000-01-11 16:24 -0800 Zack Weinberg <zack@wolery.cumb.org> 16082 16083 * cpplib.h (struct cpp_options): Change lang_asm to char. 16084 Add lang_fortran. 16085 * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's 16086 done in cpp_handle_option now. 16087 (initialize_builtins): Take out special case code used only by 16088 __STDC_VERSION__. 16089 (cpp_handle_option): Turn off trigraphs and trigraph warnings 16090 if -traditional. Recognize -lang-fortran and set 16091 lang_fortran, also turn off cplusplus_comments. 16092 (print_help): Document -lang-fortran. 16093 * cpplib.c (handle_directive): Ignore `# 123 "file"' if 16094 lang_asm. Ignore all directives other than `# 123 "file"' if 16095 CPP_PREPROCESSED. 16096 (cpp_get_token): If -traditional, don't recognize directives 16097 unless the # is in column 1. 16098 (parse_string): If lang_fortran or lang_asm, silently 16099 terminate strings ('' or "") at end of line. 16100 Remove unnecessary braces. 16101 161022000-01-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 16103 Richard Henderson <rth@cygnus.com> 16104 16105 * resource.c (mark_referenced_resources): Mark a set strict_low_part 16106 as used. 16107 * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set 16108 strict_low_part when possible. 16109 161102000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16111 16112 * alias.c: PROTO -> PARAMS. 16113 * basic-block.h: Likewise. 16114 * bitmap.c: Likewise. 16115 * bitmap.h: Likewise. 16116 * builtins.c: Likewise. 16117 * c-aux-info.c: Likewise. 16118 * caller-save.c: Likewise. 16119 * calls.c: Likewise. 16120 161212000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16122 16123 * Makefile.in (toplev.o): Depend on regs.h. 16124 16125 * output.h (tdesc_section): Prototype. 16126 16127 * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED. 16128 16129 * sdbout.c: Include "tm_p.h". 16130 16131 * toplev.c: Include "regs.h". 16132 16133Tue Jan 11 11:37:58 2000 Mike Stump <mrs@wrs.com> 16134 16135 * unroll.c (unroll_loop): Add EH support. 16136 161372000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16138 16139 * pa-protos.h: New file. 16140 16141 * pa.c: Include recog.h and tm_p.h. 16142 (compute_zdepwi_operands, compute_movstrsi_length, 16143 remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d, 16144 find_addr_reg, import_milli): Add static prototypes. 16145 (pa_cpu_string, pa_arch_string): Constify a char*. 16146 (legitimize_pic_address): Pass argument `mode' to pic_label_operand. 16147 (read_only_operand): Add argument `mode'. 16148 (singlemove_string, output_move_double, output_fp_move_double, 16149 output_block_move, output_and, output_ior, output_ascii, 16150 remove_useless_addtr_insns, milli_names, output_mul_insn, 16151 output_div_insn, output_mod_insn, output_arg_descriptor, 16152 output_cbranch, output_bb, output_bvb, output_dbra, , 16153 output_millicode_call, output_call, hppa_encode_label, 16154 output_parallel_movb, output_parallel_addb): Constify a char*. 16155 (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED. 16156 (output_parallel_addb): Remove extra arg to `constrain_operands' 16157 16158 * pa.h: Move all prototypes to pa-protos.h. 16159 (pa_cpu_string, pa_arch_string): Constify a char*. 16160 (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument. 16161 16162 * pa.md: Call `function_label_operand' with mode argument. 16163 Likewise for `read_only_operand'. 16164 Fix nesting of parens in call to `symbolic_operand'. 16165 161662000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16167 16168 * i860-protos.h: New file. 16169 16170 * i860.c: Include tm_p.h. Add static prototypes. Fix compile 16171 time warnings. 16172 16173 * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings. 16174 16175 * i860.md: Likewise. 16176 16177Tue Jan 11 18:59:35 MET 2000 Jan Hubicka <jh@suse.cz> 16178 16179 * i386.md (movstrsi expander): Rewrite. 16180 (movstrsi_1 insn): Deleted. 16181 (strmovhi, strmovqi expander): New expanders. 16182 (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns. 16183 * i386.c (x86_single_stringop): New global variable. 16184 * i386.h (x86_single_stringop): Declare. 16185 (TARGET_SINGLE_STRINGOP): New macro. 16186 161872000-01-11 Clinton Popetz <cpopetz@cygnus.com> 16188 16189 * config/mips/mips.c (mips_va_arg): For EABI, emit the queued 16190 integer vararg POSTINCREMENT before the destination of the jump 16191 for the hard fp case. 16192 (function_arg_pass_by_reference): Pass a copy of CUM to 16193 FUNCTION_ARG. 16194 16195 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check 16196 for CONSTANT_ADDRESS_P above while loop for subreg. 16197 161982000-01-11 Clinton Popetz <cpopetz@cygnus.com> 16199 16200 * flow.c (propagate_block): When a prologue/epilogue insn 16201 is marked dead, unconditionally clear libcall_is_dead and 16202 insn_is_dead, and only dump rtl if warnings aren't being 16203 suppressed. 16204 16205Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz> 16206 16207 * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD. 16208 * i386.md (FIRST_PSEUDO_REGISTER): Set to 20. 16209 (FIXED_REGISTERS): Set dirflag as fixed. 16210 (CALL_USED_REGISTERS): Set dirflag as used. 16211 (REG_ALLOC_ORDER): Set dirflag as last one. 16212 (DIRFLAG_REG): New macro. 16213 (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility. 16214 (HI_REGISTER_NAMES): Add dirflag. 16215 (DEBUF_PRINT_REG): Handle dirflag. 16216 * i386.md (type attribute): New cld and str types. 16217 (length_opcode attribute): Set cld and str to 1. 16218 (memory attribute): Set str to unknown - it is not clear from the 16219 patterns. 16220 (pent_np function unit): Prefixed string operations takes 12 cycles 16221 minimally; cld takes 2 cycles. 16222 (ppro_uops attribute): Str is "many" and cld is "few". 16223 (ppro_p0 unit): Handle cld here. 16224 (k6_alux unit): Handle cld and str types. 16225 (k6_load unit): It is ocupied by str opcodes. 16226 (k6_store unit): It is ocupied by str opcodes. 16227 (athlon_decode): Str is vector decoded. 16228 (athlon_ieu): Handle str and cld. 16229 (cld pattern): New. 16230 (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction 16231 (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1, 16232 cmpstrsi_nz_1 insn): Do not output cld instruction 16233 16234Tue Jan 11 06:14:39 2000 David Starner <dstarner98@aasaa.ofe.org> 16235 16236 * gcc.texi (G++ and GCC): Add Java and Chill. 16237 (Bug Critera): Don't list languages. 16238 16239 * gcc.texi (Incompatibilities): No longer claim most C compilers 16240 are K&R. 16241 16242 * gcc.texi (G++ and GCC): Update other front-ends list. 16243 16244Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com) 16245 16246 * i386.c (ix86_expand_setcc): Fix typo. 16247 (ix86_expand_movcc): Similarly. 16248 16249 * Band-aid until haifa's bitset implementation is nuked. 16250 * haifa-sched.c (extract_bitlst): New parameter for size of the 16251 bitset in bits. All callers changed. Avoid looking at undefined 16252 bits in the bitset. 16253 (edgeset_bitsize): New variable. 16254 (schedule_region): Initialize edgeset_bitsize. 16255 162562000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16257 16258 * Makefile.in (optabs.o): Depend on real.h 16259 (resource.o): Depend on insn-attr.h 16260 16261 * builtins.c (result_vector): Wrap prototype in macro conditions 16262 governing definition and use. 16263 16264 * c-common.c: Include tm_p.h. 16265 16266 * c-lex.c: Likewise. 16267 16268 * elfos.h: Constify a char*. 16269 16270 * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length. 16271 (get_attr_length, shorten_branches, profile_after_prologue): Mark 16272 parameter with ATTRIBUTE_UNUSED. 16273 16274 * fold-const.c (exact_real_inverse): Wrap variable `i' in 16275 CHECK_FLOAT_VALUE. 16276 16277 * haifa-sched.c (schedule_insns): Mark parameter with 16278 ATTRIBUTE_UNUSED. 16279 16280 * optabs.c: Include real.h. 16281 16282 * real.h (ereal_atof): Add prototype arguments. 16283 16284 * resource.c: Include insn-attr.h. 16285 16286 * sdbout.c (sdbout_queue_anonymous_type, 16287 sdbout_dequeue_anonymous_types): Wrap in macro 16288 SDB_ALLOW_FORWARD_REFERENCES. 16289 (sdbout_init, sdbout_start_new_source_file): Mark parameter with 16290 ATTRIBUTE_UNUSED. 16291 16292 * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return. 16293 16294 * stupid.c: Include tm_p.h. 16295 16296 * tree.c (real_value_from_int_cst): Mark parameter with 16297 ATTRIBUTE_UNUSED. 16298 162992000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16300 16301 * i960-protos.h: New file. 16302 16303 * i960.c: Include tm_p.h. Add static prototypes. Fix compile 16304 time warnings. 16305 16306 * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings. 16307 163082000-01-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 16309 16310 * combine.c (expand_field_assignment): Do not discard SUBREGs 16311 while computing nonzero_bits. 16312 163132000-01-09 Nick Clifton <nickc@cygnus.com> 16314 16315 * config/arm/arm.c: Fix compile time warnings about signed vs 16316 unsigned constants. 16317 * config/arm/arm.h: Fix compile time warnings about signed vs 16318 unsigned constants. 16319 163202000-01-09 Philip Blundell <philb@gnu.org> 16321 16322 * config/arm/arm.c (output_return_instruction): Use `ldr' rather 16323 than `ldm' with only one register. 16324 * config/arm/arm.md (push_multi): Use `str' rather than `stm' with 16325 only one register. 16326 16327 * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is 16328 clobbered. 16329 16330Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson <hp@axis.com> 16331 16332 * config/ns32k/ns32k.md (load or push effective address): Operand 1 16333 must have SImode. 16334 163352000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16336 16337 * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around 16338 assignment used as truth value. 16339 16340 * function.c (assign_temp): Mark parameter `dont_promote' with 16341 ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro 16342 PROMOTE_FOR_CALL_ONLY. 16343 16344 * genrecog.c (write_subroutine): Mark variable `operands' with 16345 ATTRIBUTE_UNUSED. 16346 16347 * optabs.c (prepare_cmp_insn): Mark parameter `align' with 16348 ATTRIBUTE_UNUSED. 16349 16350 * sdbout.c (sdbout_init): Likewise for parameter `asm_file'. 16351 (sdbout_begin_block, sdbout_end_block): Likewise for `file'. 16352 16353 * toplev.c (note_deferral_of_defined_inline_function): Likewise 16354 for `decl'. 16355 163562000-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 16357 16358 * config/c4x.h: Tidy up comments. 16359 * config/c4x.c: Likewise. 16360 16361Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com) 16362 16363 * fold-const.c (lshift_double, rshift_double): Handle 16364 shifting by 2 * HOST_BITS_PER_WIDE_INT correctly. 16365 163662000-01-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 16367 16368 * toplev.c (rest_of_compilation): Initialize cse_not_expected as 16369 in prepare_function_start(). 16370 16371Sat Jan 8 12:12:46 2000 Nick Clifton <nickc@cygnus.com> 16372 16373 * config/v850/v850.c (expand_epilogue): Interrupt functions no 16374 longer allocate extra stack for function calls. 16375 163762000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 16377 16378 * config/c4x/c4x.md (*subqf3_set): Fix typo. 16379 163802000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 16381 16382 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0. 16383 163842000-01-07 David Edelsohn <edelsohn@gnu.org> 16385 16386 * rs6000.c (processor_target_table): Add power3 as alias for 630. 16387 * aix43.h: Revert Aug 2 change. 16388 (HAS_INIT_SECTION): Define, not visible yet. 16389 (LD_INIT_SWITCH): Define, not visible yet. 16390 * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. 16391 16392 * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too. 16393 16394 * collect2.c (main): Expand ld2 size further. 16395 (export_object_lst): Cast assignment to avoid warning. 16396 (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support. 16397 (scan_prog_file, COFF): Do not collect initialization or 16398 finalization functions generated for entire shared object if 16399 init/fini support present. 16400 164012000-01-07 Nick Clifton <nickc@cygnus.com> 16402 16403 * config/elfos.h: Tidy up formatting of marcos. Make sure 16404 that .section directives are always prefixed by a tab. 16405 16406 * config/svr4.h: Add #include "elfos.h" and remove duplicate 16407 definitions. 16408 164092000-01-07 Matt Austern <austern@sgi.com> 16410 16411 * fold-const.c (real_hex_to_f): Remove duplicate declaration of 16412 expon. 16413 16414Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com) 16415 16416 * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of 16417 crtstuff.c. 16418 (crtbegin.o, s-crtS): Likewise. 16419 164202000-01-06 Richard Henderson <rth@cygnus.com> 16421 16422 * alpha.md (adddi_2+1): Limit offset such that it will be 16423 loadable with a single ldah+lda pair. 16424 (adddi_2+2): Explicitly fail split if we can't make it work. 16425 164262000-01-06 Mumit Khan <khan@xraylith.wisc.edu> 16427 16428 * protoize.c: Conditionally include unistd.h. 16429 (IS_SAME_PATH_CHAR): New macro. 16430 (IS_SAME_PATH): New macro. 16431 (CPLUS_FILE_SUFFIX): New macro. 16432 (cplus_suffix): New static variable. 16433 (is_abspath): New static function. 16434 (in_system_include_dir): Handle DOS style pathnames. 16435 (file_could_be_converted): Likewise. 16436 (file_normally_convertible): Likewise. 16437 (directory_specified_p): Likewise. 16438 (file_excluded_p): Likewise. 16439 (abspath): Likewise. 16440 (shortpath): Likewise. 16441 (referenced_file_is_newer): Likewise. 16442 (save_def_or_dec): Likewise. 16443 (do_processing): Likewise. 16444 (main): Likewise. 16445 (edit_file): Likewise. Use rename instead of link. 16446 (rename_c_file): Likewise. Don't rename syscalls file. 16447 (munge_compile_params): Define null device for DOS based systems. 16448 (process_aux_info_file): Use binary mode if appliable. 16449 (edit_file): Likewise. 16450 * invoke.texi (Running Protoize): Document C++ suffixes used. 16451 16452 * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and 16453 IS_DIR_SEPARATOR macros. 16454 * collect2.c: Likewise. 16455 * cppinit.c: Likewise. 16456 * dwarf2out.c: Likewise. 16457 * gcc.c: Likewise. 16458 * gcov.c: Likewise. 16459 * prefix.c: Likewise. 16460 * rtl.c: Likewise. 16461 * toplev.c: Likewise. 16462 * system.h: And move to here. 16463 16464 * prefix.c (update_path): Fix typo in variable name. 16465 164662000-01-06 Richard Henderson <rth@cygnus.com> 16467 16468 * flow.c (mark_set_1): Use loop_depth+1 as reference weight. 16469 (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise. 16470 (count_reg_sets_1, count_reg_references): Likewise. 16471 (flow_loops_level_compute): Start counting actual loop depth at 1. 16472 (flow_loops_find): Likewise. 16473 * local-alloc.c (update_equiv_regs): Likewise. 16474 * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change. 16475 164762000-01-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 16477 16478 * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to 16479 FIRST_PSEUDO_REGISTER 16480 * dwarf2out.c: Don't include frame.h 16481 * dwarfout.c: Likewise 16482 * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on 16483 frame.h 16484 16485Thu Jan 6 13:44:59 CET 2000 Jan Hubicka <jh@suse.cz> 16486 16487 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of 16488 dead registers. 16489 16490 * i386.c (movsf splitter): Fix typo in my last checkin. 16491 164922000-01-05 Nick Clifton <nickc@cygnus.com> 16493 16494 * varasm.c (IN_NAMED_SECTION): Allow targets to provide their 16495 own definition of this macro. 16496 (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either 16497 flag_data_sections or UNIQUE_SECTION_P are true. 16498 16499 * tm.texi (UNIQUE_SECTION): Document that it can be called for 16500 uninitialized data decls. 16501 16502 * config/i386/winnt.c (i386_pe_unique_section): Cope with 16503 being called for uninitialized data. 16504 16505 * config/i386/interix.c (i386_pe_unique_section): Cope with 16506 being called for uninitialized data. 16507 16508 * config/mips/elf.h (UNIQUE_SECTION): Cope with being called 16509 for uninitialized data. 16510 16511 * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called 16512 for uninitialized data. 16513 16514 * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called 16515 for uninitialized data. 16516 16517 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define. 16518 (UNIQUE_SECTION_P): Always generate a unique section if 16519 flag_data_sections is true. 16520 (UNIQUE_SECTION): Also generate unique sections for 16521 uninitialized data. 16522 (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section(). 16523 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use 16524 named_section(). 16525 165262000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 16527 16528 * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF, 16529 SI, or DI. 16530 165312000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 16532 16533 * config/c4x/c4x.md (udivqi3, divqi3): Delete. 16534 (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise. 16535 (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New. 16536 (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise. 16537 (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise. 16538 16539 * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls. 16540 165412000-01-05 11:25 -0800 Zack Weinberg <zack@rabi.columbia.edu> 16542 16543 * c-decl.c (finish_enum): Simplify code to determine minimum and 16544 maximum values of the enum, and calculate the type. Remove check 16545 for FUNCTION_DECLs in the values list, which cannot happen. Replace 16546 the DECL_INITIAL of each enumeration constant with a copy converted 16547 to the enumeration type. When updating variant types, don't bother 16548 updating the type itself. 16549 16550 * c-typeck.c (build_binary_op): Simplify conditional expressions 16551 when weeding out spurious signed-unsigned warnings. Add new 16552 spurious warning category: if the unsigned quantity is an enum 16553 and its maximum value fits in signed_type(result_type). Update 16554 commentary. 16555 (build_conditional_expr): Warn here if one alternative is signed 16556 and the other is unsigned. 16557 165582000-01-05 Nick Clifton <nickc@cygnus.com> 16559 16560 * config/fr30/fr30.h: Remove extraneous comments. 16561 165622000-01-05 Bernd Schmidt <bernds@cygnus.co.uk> 16563 16564 * reload1.c (choose_reload_regs): When disabling a reload, also 16565 set reload_spill_index to -1. 16566 165672000-01-04 Joel Sherrill (joel@OARcorp.com> 16568 16569 * configure.in (m68*-*-rtemscoff*): New target, formal name for 16570 old m68*-*-rtems*. 16571 (m68*-*-rtemself*): New target. 16572 (mips64orion-*-rtems*): Remove duplicate definition of tm_file. 16573 (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*. 16574 (sparc*-*-rtemself*): New target. 16575 (sparc*-*-rtems*): Now elf not a.out. 16576 * config/i386/rtems.h: Include config/rtems.h. 16577 * config/i386/rtemself.h: Include config/rtems.h. 16578 * config/i960/rtems.h: Include config/rtems.h. 16579 * config/m68k/rtems.h: Include config/rtems.h. 16580 * config/m68k/rtemself.h: Include config/rtems.h. 16581 * config/mips/rtems64.h: Include config/rtems.h. 16582 * config/pa/rtems.h: Include config/rtems.h. 16583 * config/rs6000/rtems.h: Include config/rtems.h. 16584 * config/sh/rtems.h: Include config/rtems.h. 16585 * config/sh/rtemself.h: Include config/rtems.h. 16586 * config/sparc/rtems.h: Include config/rtems.h. 16587 * config/sparc/rtemself.h: Include config/rtems.h 16588 16589Tue Jan 4 23:59:26 2000 Denis Chertykov <denisc@overta.ru> 16590 16591 * final.c (shorten_branches): Correctly compute length of 16592 asms without operands. 16593 16594Tue Jan 4 22:55:41 2000 Steve Chamberlain <sac@pobox.com> 16595 16596 * configure.in: Add pj target. 16597 * configure: Regenerate. 16598 * config/pj: New directory. 16599 * config/pj/lib1funcs.S: New file. 16600 * config/pj/linux.h: New file. 16601 * config/pj/pj.c: New file. 16602 * config/pj/pj.md: New file. 16603 * config/pj/pjl.h: New file. 16604 * config/pj/t-pj: New file. 16605 * config/pj/xm-pj.h: New file 16606 16607Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com) 16608 16609 * toplev.c (rest_of_compilation): Run shorten-branches before 16610 reg-stack for now. 16611 166122000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 16613 16614 * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behavior of 16615 macros so that they're consistent with their names. 16616 * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise. 16617 * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise. 16618 166192000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 16620 16621 * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never 16622 modified inadvertently. 16623 166242000-01-04 Joel Sherrill <joel@OARcorp.com> 16625 16626 * configure.in (v850*-*-rtems*): New target. 16627 * configure: Regenerate. 16628 * config/v850/rtems.h: New file. 16629 166302000-01-04 Mumit Khan <khan@xraylith.wisc.edu> 16631 16632 * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime. 16633 (__gthread_key_create): Likewise. 16634 (__gthread_key_dtor): Likewise. 16635 (__gthread_once): Fix logic. 16636 (__gthread_key_delete): Cast away constness. 16637 16638 * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option. 16639 * invoke.texi: Document. 16640 * i386/mingw32.h (CPP_SPEC): Use. 16641 (LIBGCC_SPEC): Likewise. 16642 * i386/crtdll.h (LIBGCC_SPEC): Likewise. 16643 166442000-01-04 David Edelsohn <edelsohn@gnu.org> 16645 16646 * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine. 16647 (HANDLE_PRAGMA_PACK): Undefine. 16648 (SLOW_UNALIGNED_ACCESS): Define. 16649 166502000-01-04 David Edelsohn <edelsohn@gnu.org> 16651 16652 * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters 16653 to default definition. 16654 (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment. 16655 (store_fixed_bit_field): Call macro with word_mode and alignment. 16656 (extract_bit_field): Call macro with relevant mode and alignment. 16657 * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters 16658 to default definition. 16659 (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode 16660 and alignment. 16661 (move_by_pieces_ninsns): Likewise. 16662 (clear_by_pieces): Likewise. 16663 (emit_push_insn): Likewise. 16664 (store_field): Call macro with relevant mode and alignment. 16665 (expand_expr): Likewise. 16666 (expand_expr_unaligned): Likewise. 16667 16668 * rs6000.h (HANDLE_PRAGMA_PACK): Define. 16669 (SLOW_UNALIGNED_ACCESS): Define. 16670 (CASE_VECTOR_MODE): Always use 32-bit offsets. 16671 (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. 16672 (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op. 16673 (toc_section): Likewise and .toc pseudo-op. 16674 (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in 16675 64-bit mode. 16676 (TEXT_SECTION_ASM_OP): Likewise. 16677 (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use 16678 32-bit offsets. 16679 16680 * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters. 16681 * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise. 16682 * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise. 16683 * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise. 16684 * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise. 16685 16686Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com) 16687 16688 * regclass.c: Revert my Jan 4 change to loop cost computation. 16689 16690Tue Jan 4 19:22:39 MET 2000 Jan Hubicka <hubicka@freesoft.cz> 16691 16692 * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing 16693 compilation. 16694 166952000-01-04 Stan Cox <scox@cygnus.com> 16696 16697 * haifa-sched.c (build_control_flow): Change unreachable simple 16698 loop test to check if current block has only one predecessor. 16699 (find_rgns): Initialize degree. Use dest as degree index, not src. 16700 167012000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16702 16703 * builtins.c (expand_builtin_strlen): Initialize variable `icode'. 16704 16705 * calls.c (expand_call): Likewise for 16706 `old_stack_arg_under_construction'. 16707 16708 * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'. 16709 16710 * function.c (pad_to_arg_alignment): Likewise for `save_var' and 16711 `save_constant'. 16712 16713 * gcc.c (execute): Likewise for `ut' and `st'. 16714 16715 * genattrtab.c (attr_rtx): Likewise for `rt_val'. 16716 16717 * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'. 16718 16719 * jump.c (jump_optimize_1): Likewise for `temp2'. 16720 16721 * local-alloc.c (block_alloc): Likewise for `r1'. 16722 16723 * loop.c (recombine_givs): Likewise for `life_start' and `life_end'. 16724 16725 * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'. 16726 (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'. 16727 16728 * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node' 16729 and `set2'. 16730 16731 * reload.c (find_reloads): Likewise for `goal_alternative_number' 16732 and `goal_earlyclobber'. 16733 16734 * scan-decls.c (scan_decls): Likewise for `prev_id_end'. 16735 16736 * sdbout.c (sdbout_one_type): Likewise for `member_scl'. 16737 16738 * stupid.c (stupid_life_analysis): Likewise for `chain'. 16739 16740 * unroll.c (copy_loop_body): Likewise for `copy'. 16741 16742 * varasm.c (output_constructor): Likewise for `byte'. 16743 16744Tue Jan 4 15:34:34 MET 2000 Jan Hubicka <hubicka@freesoft.cz> 16745 16746 * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory 16747 all FP constants for constant->reg moves. 16748 (ix86_split_to_parts): Try to convert memory address into immediate 16749 when available in the constant pool. 16750 * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg 16751 moves. 16752 (LEGITIMATE_CONSTANT_P): Return 1. 16753 * i386.md (pushsf): New splitter to convert constant pool memory 16754 reference to immediate. 16755 (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before 16756 reload. 16757 167582000-01-04 Bernd Schmidt <bernds@cygnus.co.uk> 16759 16760 * i386.md (ashlsi3_cmpno): Don't accept variables shifts. 16761 (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno, 16762 ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise. 16763 (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno, 16764 rotrhi3_cmpno, rotrqi3_cmpno): Likewise. 16765 167662000-01-04 Martin von L�wis <loewis@informatik.hu-berlin.de> 16767 16768 * ginclude/stdbool.h: Support compilation as C++. 16769 16770Tue Jan 4 01:35:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 16771 16772 * fold-const.c (make_range): Don't try to reverse an unbounded range. 16773 16774Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com) 16775 16776 * regclass.c (regclass): Properly compute loop_cost. Adjust 16777 comments. 16778 16779 * regclass.c: Fix minor whitespace problems. 16780 167812000-01-03 Anthony Green <green@cygnus.com> 16782 16783 * config/i386/i386.md (builtin_setjmp_receiver): New pattern. 16784 Restore the pic register if required. 16785 167862000-01-03 Ulrich Drepper <drepper@cygnus.com> 16787 16788 * c-common.c (format_char_info): Update comment. 16789 (check_format_info): Recognize 'z' modifier in the same way 'Z' 16790 was recognized. Emit warning for formats new in ISO C99 only 16791 if flag_isoc9x is not set. 16792 16793Mon Jan 3 12:59:54 2000 Mark P. Mitchell <mark@codesourcery.com> 16794 16795 * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs. 16796 16797Mon Jan 3 15:33:37 MET 2000 Jan Hubicka <hubicka@freesoft.cz> 16798 16799 * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to 16800 SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND. 16801 (make_compound_operation): Choose cheaper alternative between 16802 ZERO_EXTEND and SIGN_EXTEND when sign bit is not set. 16803 16804 * regclass.c (op_costs): Remove global variable. 16805 (record_reg_classes): New parameter "op_costs" and "reg_pref". 16806 (record_operand_costs): Break out from ... 16807 (scan_one_insn): ... here. 16808 (dump_regclass): Make dumps nicer. 16809 (regclass): Dump preferrences choosed and changes done during passes. 16810 168112000-01-03 Jakub Jelinek <jakub@redhat.com> 16812 16813 * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC. 16814 168152000-01-03 Jakub Jelinek <jakub@redhat.com> 16816 16817 * config/sparc/sparc.c (gen_df_reg): New function. 16818 * config/sparc/sparc-protos.h (gen_df_reg): Add prototype. 16819 * config/sparc/sparc.md (movtf_no_e_insn_sp64+1, 16820 movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1, 16821 movtf_cc_reg_sp64+1): Use it. 16822 168232000-01-02 Mark Mitchell <mark@codesourcery.com> 16824 16825 * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on 16826 copied LABEL_DECLs. 16827 16828Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson <hp@bitrange.com> 16829 16830 * config/i386/i386.c (ix86_expand_unary_operator): Function 16831 definition made void. 16832 (ix86_expand_binary_operator): Update outdated preceding comment. 16833 * config/i386/i386-protos.h (ix86_expand_unary_operator): Update 16834 prototype. 16835 16836 * config/i386/i386.c (override_options): Fix option-name typo. 16837 168382000-01-02 Mark Mitchell <mark@codesourcery.com> 16839 16840 * system.h (CEIL): Define. 16841 * builtins.c (CEIL): Remove. 16842 * expmed.c (CEIL): Likewise. 16843 * expr.c (CEIL): Likewise. 16844 * stor-layout.c (CEIL): Likewise. 16845 168462000-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 16847 16848 * expr.c (store_constructor_field): Fix typo introduced with last 16849 gcc2 merge. 16850 168512000-01-01 Mark Mitchell <mark@codesourcery.com> 16852 16853 * tree.h (BINFO_N_BASETYPES): New macro. 16854 168552000-01-01 Bernd Schmidt <bernds@cygnus.co.uk> 16856 16857 * expmed.c (emit_store_flag): Prevent losing a pending stack 16858 adjust the same way we prevent losing queued increments. 16859 16860See ChangeLog.2 for earlier changes. 16861