blob: ef67034a596995b650a37af0548f63d150eff5bf [file] [log] [blame]
Tue May 18 03:53:37 1999 Craig Burley <>
Improve open-coding of complex divide:
* flags.h: Declare new front-end-malleable flag.
* toplev.c: Define new flag.
* optabs.c (expand_cmplxdiv_straight): New function to do original
(expand_cmplxdiv_wide): New function to do new open-coding,
from Toon Moene, with changes (call to emit_barrier, dropping
of spurious `ok = 1;', plus the obvious `break;' -> `return 0;').
(expand_binop): A bit of spacing fixing, while at it.
Use new functions instead of inlining the open-coding code.
Tue May 18 00:51:46 1999 Krister Walfridsson <>
* (arm*-*-netbsd*): Use collect2.
(i[34567]86-*-netbsd*): Likewise.
(m68k*-*-netbsd*): Likewise.
(ns32k-*-netbsd*): Likewise.
(sparc-*-netbsd*): Likewise.
(vax-*-netbsd*): Likewise.
* configure: Rebuilt.
Tue May 18 00:21:34 1999 Zack Weinberg <>
* cppspec.c: Insert -no-gcc into command line unless -gcc was
given by user.
* gcc.c (default_compilers): Define __GNUC__ and
__GNUC_MINOR__ only if -no-gcc was not given.
* objc/lang-specs.h: Likewise.
* cpp.texi: Document -x and -std options; explain that -lang
is no longer supported. Minor related corrections.
Mon May 17 23:56:39 1999 Alexandre Oliva <>
* (stmp-fixproto): Pass location of mkinstalldirs to
* fixproto: Avoid unportable constructs such as `basename' and
`mkdir -p'. Use mkinstalldirs from the environment if `mkdir -p'
* fixinc/fixincl.c: Remove #error, it is not portable.
Mon May 17 23:50:41 1999 Marc Espie <>
* collect2.c (main): Fix typo in COLLECT2_HOST_INITIALIZATION.
Mon May 17 19:45:41 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* fixinc/fixincl.c (process): Wait for children from chain_open()
to avoid creating zombies.
* fixinc/inclhack.tpl: Removed no-op pipe.
* fixinc/ fixinc/ regenerate
Mon May 17 07:23:34 1999 Mark Mitchell <>
* tree.def (TYPE_NONCOPIED_PARTS): Revise documentation to match
* expr.c (init_noncopied_parts): Don't generate initializers for
parts that don't need them.
Mon May 17 02:56:35 PDT 1999 Jeff Law (
* version.c: Bump for snapshot.
Sat Oct 31 05:08:34 CET 1998 Jan Hubicka (
* reg-stack.c: Do not emit pop insns after cc0 setter.
(emit_pop_insn): Do not emit insn in case WHEN is NULL.
(compare_for_stack_reg): Update REG_DEAD note and
do not emit push insn.
* i386.c: (output_float_compare): Handle new REG_DEAD notes.
Mon May 17 01:57:37 1999 David Daney <>
* i386/sol2.h (LINK_SPEC): Do not pass "-z text" to the linker
if -mimpure-text.
1999-05-17 Andreas Schwab <>
* m68k.c (standard_68881_constant_p): Don't accept -0.0 as valid
68881 constant.
* fold-const.c (fold_truthop): When converting a one-bit
comparison don't sign extend the constant.
* cse.c (cse_insn): Copy SRC_CONST before putting it in the
1999-05-17 Mike Stump <>
* rs6000/vxppc.h (CPP_SPEC): Fix support for vararg functions.
Sat May 15 14:22:40 1999 Jeffrey A Law (
* fixinc/hackshell.tpl: Fix mis-applied patch.
* fixinc/ Regenerated.
Thu May 13 21:05:55 1999 Mark Kettenis <>
* fixinc/ Add the Hurd (*-*-gnu*) to the list of
targets that do not need any fixes.
Sat May 15 14:12:38 1999 Michael Hayes <>
* config/c4x/ (set_lo_sum+2): New splitter to load large
Sat May 15 14:09:08 1999 Michael Hayes <>
* config/c4x/ (decrement_and_branch_on_count): Disabled.
(doloop_begin, doloop_end): New patterns.
(*rptb_init): Added extra operands.
Fri May 14 21:31:36 1999 Michael Hayes <>
* config/c4x/ (*umulqi3_highpart_clobber): Fix operand 2
constraints order.
1999-05-14 Ulrich Drepper <>
* fixinc/fixinc.x86-linux-gnu (FD_ZERO): Fix operand numbers in
asm input operands.
Thu May 13 15:34:18 1999 David Edelsohn <>
* rs6000.c (mask_constant): Delete.
(mask_operand): Move mask_constant() body to here.
* rs6000.h (mask_constant): Delete declaration.
* (nabsdi2): Reverse subtraction in splitter.
Thu May 13 02:25:01 1999 Jeffrey A Law (
* cpp.texi: Fix some typos.
Thu May 13 01:49:55 1999 Graham Stott <>
* loop.c (maybe_eliminate_biv): Check regno against
* i386.c (memory_address_info): Correct the scale
factor test.
Thu May 13 01:31:19 1999 Nick Burrett <>
* (nop): Backout Apr 27 change. Ensure REGISTER_PREFIX is
applied to each register.
* aof.h (ASM_FILE_START): Define register `r0'.
1999-05-12 20:22 -0400 Zack Weinberg <>
* Make --enable-cpp and --with-cpp-install-dir
documented options. Enable the cpp driver by default.
* configure: Rebuilt.
Wed May 12 18:08:48 1999 David Edelsohn <>
Richard Henderson <>
* rs6000.c (print_operand) [w]: Calculate signed constant more clearly.
(rs6000_allocate_stack_space): Print as hexadecimal value.
* rs6000.h (CONST_OK_FOR_LETTER_P): 'L' checks for a signed,
16-bit shifted constant. Fix typo for 'P'.
(EXTRA_CONSTARINT): 'T' checks for a 32-bit mask operand.
* (movsi, addsi3_internal1, movdi, adddi3_internal1):
Use 'L' for shifted constant.
(anddi3_internal3): Fix typo.
(32-bit mask patterns): Use 'T'.
Wed May 12 07:30:31 1999 Bruce Korb <>
* fixinc/fixincl.c(quoted_file_exists): new procedure to ensure that
a file exists before trying to copy it into the destination
(extract_quoted_files): use that routine.
Wed May 12 07:27:31 1999 Craig Burley <>
Allow front end (like g77's) to override maintenance of errno:
* expr.c (expand_builtin): Bother with errno only if
* flags.h: Declare flag_errno_math.
* toplev.c: Define flag_errno_math.
Tue May 11 23:55:49 1999 Jeffrey A Law (
* fixproto: Change "mkdir" calls to "mkdir -p"
* fixinc/inclhack.def (io_def_quotes): Consistently allow multiple
whitespace characters between the "define" and the name of the macro.
* fixinc/fixincl.x, fixinc/ Rebuilt.
Tue May 11 20:46:37 1999 Richard Henderson <>
* alpha.c (alpha_expand_block_move): Handle TImode registers
used with ADDRESSOF.
(alpha_expand_block_clear): Handle ADDRESSOF specially.
1999-05-11 Ulrich Drepper <>
* fixinc/fixinc.x86-linux-gnu (FD_ZERO): Remove unneccessary
memory output operand which irritates gcc.
Tue May 11 11:45:16 1999 Dave Brolley <>
* toplev.c (documented_lang_options): Add -MD, -MMD, -M and -MM for
cpplib-enabled compilers.
Tue May 11 11:34:56 1999 Vladimir Makarov <>
* config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Add parentheses
around &&.
Mon May 10 13:51:24 1999 Nick Clifton <>
* tm.texi (FUNCTION_ARG): Stack element of PARALLEL must come
Tue May 11 01:32:01 1999 Jeffrey A Law (
* fixinc/inclhack.def (sun_auth_proto): Apply to all targets.
(sysz_stdlib_for_sun): Similarly.
* fixinc/fixincl.x, fixinc/ Rebuilt.
Mon May 10 20:34:10 1999 Jim Wilson <>
* config/mips/elf.h (UNIQUE_SECTION_P): Undef.
* config/mips/elf64.h (UNIQUE_SECTION_P): Undef.
* config/mips/mips.h (UNIQUE_SECTION_P): Define to 0.
1999-05-10 18:21 -0400 Zack Weinberg <>
* cppfiles.c (initialize_input_buffer): New function.
(finclude): Call it, if pfile->input_buffer is NULL. Accept
any character device as an input file.
(read_and_prescan): Use pfile->input_buffer and
* cppinit.c (cpp_cleanup): Free pfile->input_buffer and
* cpplib.h (cpp_reader): Add input_buffer, input_speccase, and
input_buffer_len members. Use memcpy in CPP_PUTS_Q.
* cppmain.c: Buffer output in the token_buffer; throttle
number of calls to fwrite; check for errors from fwrite.
1999-05-10 18:21 -0400 Zack Weinberg <>
* cppspec.c: Treat two non-option arguments as input and
output file. Three or more non-option args is an error.
Clean up.
* gcc.c (default_compilers): Pass -$ to the preprocessor.
* objc/lang-specs.h: Likewise.
Mon May 10 12:59:20 1999 Jeffrey A Law (
* optabs.c (emit_cmp_and_jump_insns): Handle the case where both
operands to the comparison are constants.
Mon May 10 07:28:10 1999 Bruce Korb <>
* fixinc/inclhack.def(arm_norcroft_hint): check before fixing
(no_double_slash): portability
(math_exception): added reminder comment
Mon May 10 01:28:10 1999 Craig Burley <>
From Fri May 7 9:31:41 1999 Donn Terry (
* varasm.c (mark_constant_pool): Add some transitive closure.
Sun May 9 22:51:04 1999 Craig Burley <>
Fix gcc.dg/990506-0.c:
* c-typeck.c (require_complete_type): Handle ERROR_MARK input.
Sun May 9 13:19:12 1999 Jeffrey A Law (
* gcse.c (cprop_insn): Do not try to simplify a simple jump.
Sun May 9 11:12:19 1999 Philip Blundell <>
* config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Add (PLT) to branch if
necessary. Reported by
Sat May 8 23:05:35 1999 Jeffrey A Law (
* pa.h (PRINT_OPERAND_ADDRESS): Output "%r0", not "r0" for the
base register in an absolute memory address.
* (conditional moves): Avoid using immediate zero for
register zero.
Sat May 8 06:23:21 1999 Philip Blundell <>
Based on patch by Scott Bambrough:
* config/arm/arm.h (NEED_PLT_GOT): New macro. Set to 0 if not
already defined.
* config/arm/elf.h (NEED_PLT_GOT): Define to flag_pic.
* config/arm/ (call_symbol, call_value_symbol et al.): If
NEED_PLT_GOT is true, add explicit "(PLT)" to generated branches.
* config/arm/arm.c (output_func_epilogue,
output_return_instruction): Likewise for calls to abort.
Sat May 8 01:57:58 1999 Donn Terry (
* calls.c (rtx_for_function_call): Extend function pointer being
passed to chkr_check_exec_libfunc, if needed.
Sat May 8 01:51:50 1999 David Edelsohn <>
* ginclude/stdarg.h (__va_rounded_size): Use long type for
rounding on AIX.
* ginclude/varargs.h: Likewise.
Sat May 8 01:47:20 1999 Andreas Schwab <>
* invoke.texi: Remove duplicates in the description of -d
letters. Fix use of @item vs. @itemx.
Sat May 8 01:43:02 1999 Franz Sirl <>
* rs6000.h (RS6000_VARARGS_OFFSET): Die die die.
(CUMULATIVE_ARGS): Remove varargs_offset; update commentary.
* rs6000.c (setup_incoming_varargs): Fix typo last change.
(init_cumulative_args): Remove varargs_offset references.
* rs6000/linux.h (NO_IMPLICIT_EXTERN_C): Define.
Sat May 8 01:34:19 1999 Andreas Schwab <>
* reload1.c (gen_mode_int): New function.
(reload_cse_move2add): Use it to generate the new constants.
Sat May 8 01:25:09 1999 Andreas Schwab <>
* varasm.c (output_constant): Do nothing if -fsyntax-only.
Fri May 7 19:10:15 1999 Vladimir Makarov <>
* sparc.h (GO_IF_LEGITIMATE_ADDRESS): Prohibit REG+REG addressing
for TFmode when there are no instructions which accept REG+REG
Fri May 7 12:38:54 1999 Jim Wilson <>
* mips/elf64.h (MAKE_DECL_ONE_ONLY, UNIQUE_SECTION_P): Define.
* mips/mips.c (mips_select_rtx_section): When TARGET_MIPS16, use
function_section instead of text_section.
* mips/mips.h (ENCODE_SECTION_INFO): Add check for UNIQUE_SECTION_P
Fri May 7 09:54:11 1999 Nick Clifton <>
Patch from: Nick Burrett <>
* arm.c (arm_poke_function_name): New function to implement
* aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
* elf.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
* arm.h: Prototype it.
(TARGET_SWITCHES): Add `no-poke-function-name'.
Fri May 7 14:19:31 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* fixinc/server.c (load_data): Cast text_size to long, adapt
* fixinc/server.c (read_pipe_timeout): Declare volatile, modified
in signal handler.
(sig_handler): Add debug code.
* fixinc/server.c (run_shell): Don't \-escape cd, it breaks the
Ultrix V4.3 /bin/sh.
* fixinc/server.c (def_args): Use static instead of STATIC to
avoid redefinition error from linker iff DEBUG.
* fixinc/hackshell.tpl: Don't strip trailing directory from
DESTDIR - that is already done
* fixinc/fixincl.c (run_compiles): fix memory leak
Thu May 6 20:34:00 1999 Mark Mitchell <>
* resource.c (mark_referenced_resources): Make volatil
monotonically increasing.
(mark_set_resources): Likewise.
Thu May 6 20:02:33 1999 Fred Fish <>
* rs6000/xm-beos.h (HAVE_VPRINTF): Don't redefine if already defined.
Wed May 5 20:28:32 1999 Jason Merrill <>
* install.texi (Header Dirs): s/GPLUS/GPLUSPLUS/.
Wed May 5 23:44:15 1999 J"orn Rennecke <>
* unroll.c (copy_loop_body): Don't copy VTOP notes from copy_notes_from.
Wed May 5 16:26:13 1999 Vladimir Makarov <>
* function.c (purge_addressof_replacements): Rename into
(purge_addressof_replacements): New variable.
(purge_addressof_1): Add code for changing addressof in notes for
field values which are extracted by usage MEM with narrower mode.
(purge_addressof): Initialize purge_bitfield_addressof_replacements.
Wed May 5 07:40:02 1999 Nick Clifton <>
Patch from: Nick Burrett <>
* config/arm/arm.h (ARM_MCOUNT_NAME): Define.
(FUNCTION_PROFILER): Remove assembler dialect dependency and use
(TRAMPOLINE_TEMPLATE): Remove assembler dialect dependency.
* config/arm/aof.h (ARM_MCOUNT_NAME): Define.
1999-05-05 09:58 -0400 Zack Weinberg <>
* gcc.c (default_compilers): Fix brace nesting bug.
* objc/lang-specs.h: Use %i, not %g.mi, for the input file
when processing an .mi file.
Tue May 4 13:17:55 1999 Mark Mitchell <>
* resource.c (mark_set_resources): Handle UNSPEC_VOLATILE,
Mon May 3 22:38:41 1999 David Edelsohn <>
* rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Change non-PowerPC
and AIX64 combination to warning. Add warning for disabling
PowerPC64 support when using 64-bit mode.
(LIB_SPEC): Do not link with libg.a in 64-bit mode.
(LINK_SPEC): Do not export libg.exp symbols in 64-bit mode.
* rs6000/rs6000.h (MY_ISCOFF): Treat import/export files as valid
XCOFF files.
(read_only_data_section, private_data_section,
read_only_private_data_section): Always align CSECTs to doubleword
boundary regardless of mode.
(TEXT_SECTION_ASM_OP): Align text CSECT on doubleword boundary in
64-bit mode.
(DATA_SECTION_ASM_OP): Always align CSECT to doubleword boundary.
(ASM_OUTPUT_LOCAL): Use rounded size in 64-bit mode to
maintain doublword alignment.
Mon May 3 14:45:23 1999 Jeffrey A Law (
* (btst insns): btst does not leave cc0 in a usable
state for redundant tst eliminatino.
* (btst insns): Likewise.
Mon May 3 16:14:32 1999 Kaveh R. Ghazi <>
* mips.h (Pmode): Revert Oct 14th change which added a cast.
Sun May 2 14:02:21 1999 Mark Mitchell <>
* tree.h (struct tree_decl): Add comdat_flag.
(DECL_COMDAT): Define it.
* toplev.c (wrapup_global_declarations): Don't output a
DECL_COMDAT function just because it's public.
Sun May 2 15:16:42 1999 Joseph S. Myers <>
* pdp11.h (TARGET_SWITCHES): Fix error in previous change.
(CONDITIONAL_REGISTER_USAGE): Rename floating point registers if
required for the UNIX assembler.
(ASM_OUTPUT_INT): Remove. The compiler will synthesize it.
(ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Change to "[" and "]".
* pdp11.c (output_addr_const_pdp11): Copy of output_addr_const
adapted to output constants in octal.
* pdp11.c, pdp11.h, Use output_addr_const_pdp11 instead
of output_addr_const. Output constants in octal. Use assembler
dialect alternatives where DEC and UNIX assemblers use different
instruction names.
Sun May 2 01:15:06 PDT 1999 Jeff Law (
* version.c: Bump for snapshot.
Fri Apr 30 13:55:43 1999 Richard Henderson <>
* va-ppc.h (__va_start_common): Let __builtin_saveregs do the work.
* rs6000.c (expand_builtin_saveregs): For V4, initialize a private
va_list struct, and return a pointer to it.
(setup_incoming_varargs): V4 save area based off virtual_stack_vars
instead of frame_pointer.
Thu Apr 29 23:02:22 1999 Mark Mitchell <>
* emit-rtl.c (start_sequence): Expand comments.
(start_sequence_for_rtl_expr): Likewise.
(push_to_sequence): Likewise.
(end_sequence): Likewise.
* expr.c (inhibit_defer_pop): Likewise.
* expr.h (inhibit_defer_pop): Likewise.
(NO_DEFER_POP): Likewise.
(OK_DEFER_POP): Likewise.
Thu Apr 29 22:13:46 1999 Robert Lipe <>
* (i?86-UnixWare7*-sysv): Set thread_file to 'posix'
--enable-threads[={yes,pthreads,posix}] is passed as a command
line parameter to configure.
* config/i386/sysv5.h (LIB_SPEC): Add support for '-pthread'.
(CPP_SPEC): Likewise.
Thu Apr 29 17:23:59 1999 Richard Henderson <>
* emit-rtl.c (operand_subword): Religiously mask and sign-extend
from 32-bits to HOST_WIDE_INT.
Thu Apr 29 15:58:52 1999 Robert Lipe <>
* fixinc/regex.c, fixinc/regex.h: Removed. Replace with...
* fixinc/gnu-regex.c, fixinc/gnu-regex.h: Imported from GDB 4.18.
* fixinc/ (OBJ, HDR): Handle name changes from above.
(gnu-regex.o): Define REGEX_MALLOC to avoid memory leak.
* fixinc/fixincl.c: new regex.h header name
* new regex.[ch] file names
Thu Apr 29 12:53:33 1999 Richard Henderson <>
* calls.c (emit_call_1): Pass rounded_stack_size to emit_call
instead of the unrounded size.
1999-04-28 14:40 Bruce Korb <>
* fixinc/ Makesure the result shell script is writable
Wed Apr 28 10:36:39 1999 Andreas Schwab <>
* config/m68k/ (cmpsi+1): Use cmp.w when comparing a 16 bit
constant with an address register.
Wed Apr 28 00:14:41 PDT 1999 Jeff Law (
* version.c: Bump for snapshot.
Tue Apr 27 19:50:25 EDT 1999 Andrew MacLeod <>
* rtl.h (REG_EH_REGION): Update comment to indicate a value of -1
indicates no throw and no nonlocal gotos.
* optabs.c (emit_libcall_block): Emit REG_EH_REGION with a value
of -1 instead of 0 to indicate a nonlocal goto won't happen either.
* flow.c (count_basic_blocks, find_basic_blocks_1): Ignore libcall
blocks, look for REG_EH_REGION note exclusively.
(make_edges): Check for REG_EH_REGION > 0 for specified handlers.
Tue Apr 27 15:33:42 1999 David Edelsohn <>
* rs6000.h (read_only_data_section, private_data_section,
read_only_private_data_section, toc_section): Align CSECT on
doubleword boundary for 64-bit target.
* rs6000.c (rs6000_stack_info): Leaf procedure stack limit is 288.
Tue Apr 27 20:19:47 1999 J"orn Rennecke <>
* (insv): Use copy_addr_to_reg.
* final.c (insn_lengths_max_uid): New variable.
(init_insn_lengths, shorten_branches): Set it.
(get_attr_lengths): Test insn uid against insn_lengths_max_uid.
1999-04-27 08:32 -0400 Zack Weinberg <>
* expr.c (emit_move_insn_1): Abort if MODE argument is invalid.
(compare): Punt if TREE_OPERAND (exp, 0) is an ERROR_MARK.
Tue Apr 27 01:33:43 1999 Jeffrey A Law (
Remove "CC".
(FLAGS_TO_PASS): New variable.
Tue Apr 27 00:36:44 1999 Nick Burrett <>
* (nop): Output instruction using output_asm_insn to fix
assembler dialect problems.
Mon Apr 26 23:55:50 1999 Robert Lipe <>
* ( Fix dependencies.
* fixinc/inclhack.def (avoid_bool): Enable match if typedefs are
prepended by spaces.
(sco5_stat_wrappers): New fix. Make sys/stat.h C++ safe.
* fixinc/, fixinc/fixincl.x, fixinc/ Rebuilt.
Mon Apr 26 23:28:54 1999 Mumit Khan <>
Donn Terry <>
* function.c (put_var_into_stack): Change ptr_mode to Pmode
in setup for chkr_set_right_libfunc calls.
(assign_params): Likewise.
* expr.c (emit_push_insn): Change ptr_mode to Pmode in
setup for chkr_copy_bitmap_libfunc and chkr_set_right_libfunc calls.
(expand_assignment): Change ptr_mode to Pmode in
setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc.
(store_expr): Change ptr_mode to Pmode in
setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc.
(expand_expr): Change ptr_mode to Pmode in
setup for chkr_check_addr_libfunc.
(expand_builtin): Change ptr_mode to Pmode in
setup for chkr_check_str_libfunc, chkr_copy_bitmap_libfunc and
* calls.c (rtx_for_function_call): Change ptr_mode to Pmode in
setup for chkr_check_exec_libfunc.
(expand_call): Change ptr_mode to Pmode in
setup for chkr_set_right_libfunc.
(expand_call): Change ptr_mode to Pmode in
setup for chkr_set_right_libfunc.
(store_one_arg): Change ptr_mode to Pmode in
setup for chkr_set_right_libfunc.
* (absdcl1): Allow attributes in explicit typespecs.
(%expect): Update.
* c-parse.y: Regenerate.
* c-parse.c: Likewise.
* objc/objc-parse.c: Likewise.
* objc/objc-parse.y: Likewise.
Mon Apr 26 21:17:41 1999 Jason Merrill <>
* c-pragma.c (push_alignment): Don't ignore alignments greater than
4 bytes.
(handle_pragma_token): Likewise.
* c-pragma.c: Support for #pragma pack (push, <id>, <n>).
(struct align_stack): Add id field.
(push_alignment, pop_alignment): Take id parameter.
(handle_pragma_token): Add necessary states.
* c-pragma.h (enum pragma_state): Add necessary states.
Tue Apr 27 13:58:23 1999 Michael Hayes <>
* config/c4x/ (*cmpqf, *cmpqf_noov, *cmpqi_test,
*cmpqi_test_noov): Remove ? modifier from constraints list.
(*smulqi3_highpart_clobber, *umulqi3_highpart_clobber): Swap
output strings to match new constraint ordering.
1999-04-26 19:16 -0400 Zack Weinberg <>
* cpphash.c (dump_definition): New function.
* cpphash.h: Prototype it.
* cpplib.c (handle_directive): Don't output anything here.
(pass_thru_directive): Take a length, not a pointer to the
end. All callers changed.
(do_define): Handle -dD, -dN, -g3 entirely here. Streamline.
(do_include): Handle -dI here.
(do_ident): Correct to match cccp.
(do_pragma): Copy the pragma through here.
(do_assert, do_unassert): Tidy.
* cppinit.c (cpp_finish): If -dM was specified, walk the macro
hash table and call dump_definition on all the entries.
* cppmain.c: cpp_finish may produce output.
Mon Apr 26 15:27:33 1999 Mark Mitchell <>
* toplev.c (compile_file): Move call to check_global_declarations
after output_exception_table to restore behavior as it was before
1999-04-22 change.
1999-04-26 10:50 -0700 Bruce Korb <>
* fixinc/fixincl.c: Improve the handling of child process exits
* fixinc/server.[ch]: Export the interface for shutting down
the server process
* fixinc/inclhack.tpl: Remove unnecessary character quote
* fixinc/, fixinc/ Regenerate
Mon Apr 26 10:41:42 EDT 1999 Andrew MacLeod <>
* (builtin_setjmp_receiver): Use a label_ref instead of
a code label.
1999-04-26 09:47 -0400 Zack Weinberg <>
* rtl.texi: Document the rtl classes and their relation to
Mon Apr 26 01:02:38 1999 Richard Henderson <>
* (fix_trunc patterns): Use reg_no_subreg_operand on op0
for less work in reload.
(movsf and movdf patterns): Put fp reg alternatives first.
Mon Apr 26 01:55:56 1999 Marc Espie <>
* (openbsd): Factorize xmake_file.
(ix86 openbsd): Trim obsolete comment.
(vax openbsd): Fix typo.
* configure: Rebuilt.
Mon Apr 26 01:30:59 1999 Donn Terry <>
* expr.c (expand_assignment): Improve test for pointer type.
Mon Apr 26 00:26:18 1999 Richard Henderson <>
* alpha.c (print_operand_address): Account for the subreg word.
Mon Apr 26 01:08:36 1999 Toshiyasu Morita (
* fold-const.c (make_range): Always initialize arg0 and arg1.
(fold): Similarly for alt0 and alt1.
* function.c (fixup_var_refs_insns): Initialize insn_list.
(instantiate_virtual_regs_1): Initialize offset.
* optabs.c (expand_binop): Initialize carry_in, carry_out, op0_xhigh
and op1_xhigh.
* stmt.c (expand_end_case): Initialize minval and maxval.
Mon Apr 26 01:02:34 1999 Nathan Sidwell <>
* toplev.c (report_error_function): Reorder file stack and
function name printing. Ignore FILE parameter.
Mon Apr 26 00:58:54 1999 Jerry Quinn <>
* pa.h (architecture_type): New enum.
(pa_arch_string, pa_arch): Declare.
(MASK_PA_10, MASK_PA_20): New flags.
(TARGET_SWITCHES): Add pa-risc-2-0. Update docs for PA1.0 codegen.
(TARGET_OPTIONS): Add -march= option.
* pa.c (pa_arch, pa_arch_string): Define.
(override_options): Set them.
* pa/pa-hpux10.h (ASM_FILE_START): Output LEVEL 2.0 asm directive for
2.0 architecture.
* invoke.texi (Option Summary, HPPA Options): Document new
architecture flags.
* pa/pa-hpux.h, pa/pa-hpux10.h, pa/pa-hpux9.h, pa/pa-osf.h, pa.h,
pa.c,,, configure: Replace TARGET_SNAKE by
Mon Apr 26 00:28:25 1999 Theodore Papadopoulo <>
* flags.h (inline_max_insns): Declare.
* integrate.c (inline_max_insns): New variable.
(function_cannot_inline_p): Use it.
* toplev.c (main): Add the flag -finline-limit-n.
(display_help): Document -finline-limit-n.
* invoke.texi: Document -finline-limit-n
Sun Apr 25 23:03:32 1999 Richard Henderson <>
* stmt.c (expand_asm_operands): Reload in-out reg-only memory operands.
Sun Apr 25 13:06:13 1999 Richard Henderson <>
* function.c (assign_parms/STACK_BYTES): Revert last change,
and that of 19 Nov.
Sun Apr 25 12:30:50 1999 Richard Henderson <>
* calls.c (emit_call_1): New arg rounded_stack_size; update callers.
Update pending_stack_adjust based on this value.
(compute_argument_block_size): Include pending_stack_adjust in
* function.c (assign_parms): Don't round to PREFERRED_STACK_BOUNDARY.
Sun Apr 25 14:38:10 EDT 1999 John Wehle (
* stupid.c (stupid_mark_refs): Generate a REG_UNUSED note
for a register which is clobbered even if the register
was used by an earlier instruction.
* (fix_truncsfdi2, fix_truncdfdi2,
fix_truncxfdi2): Don't bother with the gen_reg_RTX.
(fix_truncsfsi2, fix_truncsfdi2, fix_truncdfsi2,
fix_truncdfdi2, fix_truncxfsi2, fix_truncxfdi2): Update
operand constraints and modes.
* i386.c (output_fix_trunc): Use HImode register to avoid
memory stalls. Call output_move_double instead of output_to_reg.
(output_to_reg): Remove.
* i386.h: Likewise.
* (negsf2, negdf2, negxf2): Set the type
attribute to fpop.
Sat Apr 24 23:15:57 1999 Donn Terry (
* (call_value_nt): Correct subscripts.
Sat Apr 24 20:49:20 1999 Richard Henderson <>
* alpha.h (PRINT_OPERAND_ADDRESS): Break out to ...
* alpha.c (print_operand_address): here. Handle subregs.
Fri Apr 23 22:35:41 EDT 1999 John Wehle (
* acconfig.h (HAVE_GAS_FILDS_FISTS): Add.
* Check assembler instructions.
* configure: Rebuild.
* Likewise.
* (floathisf2, floathidf2, floathixf2): New patterns.
* i386.c (print_operand): Use the proper suffix for a 387 HImode
operand. Abort if a 387 operand has an unsupported size.
Fri Apr 23 16:57:40 1999 Richard Henderson <>
* alpha.c (alpha_write_verstamp): Mark `file' unused.
* alpha.h (FUNCTION_VALUE): Use gen_rtx_REG not gen_rtx.
(LIBCALL_VALUE): Likewise.
(GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Handle normal subregs.
Fri Apr 23 14:57:33 1999 Donn Terry <>
* alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right.
* alpha.c (alpha_initialize_trampoline): Add covert_memory_address
calls as needed.
Fri Apr 23 14:36:47 1999 Richard Henderson <>
* alpha.c (alpha_expand_prologue): Don't negate frame size
for use with subq.
Fri Apr 23 09:43:18 1999 Nick Clifton <>
* print-rtl.c (print_rtx): Display LABEL_NUSES for labels.
Thu Apr 22 23:08:37 1999 Mark Mitchell <>
* toplev.h (wrapup_global_declarations): Declare.
(check_global_declarations): Likewise.
* toplev.c (wrapup_global_declarations): New function, split out
from ...
(check_global_declarations): Likewise...
(compile_file): Here.
Thu Apr 22 22:34:41 1999 Richard Henderson <>
* (expr_no_commas): Verify we've an expr before
Thu Apr 22 22:22:15 EDT 1999 John Wehle (
* toplev.c (rest_of_compilation): Always set
current_function_uses_only_leaf_regs appropriately.
Thu Apr 22 14:39:43 1999 Mumit Khan <>
* i386/xm-cygwin.h (HAVE_BCOPY): Delete unneeded macro.
(HAVE_BZERO): Likewise.
(HAVE_BCMP): Likewise.
(HAVE_RINDEX): Likewise.
(HAVE_INDEX): Likewise.
(DIR_SEPARATOR_2): Define.
(GET_ENV_PATH_LIST): Turn path lists into POSIX.
1999-04-22 Bruce Korb <>
* enable disabling of fast fixincludes
* configure: regenerate
1999-04-21 14:55 -0400 Zack Weinberg <>
* gen-protos.c: #undef abort after including system.h.
Delete defns of fancy_abort and fatal.
* fix-header.c: Delete defn of fancy_abort.
Wed Apr 21 12:09:38 1999 Mumit Khan <>
* cccp.c (simplify_filename): Always preserve leading double slash.
Wed Apr 21 18:15:55 1999 Michael Hayes <>
* config/c4x/ Add new peepholes to remove redundant loads.
Wed Apr 21 17:41:29 1999 Michael Hayes <>
* config/c4x/ (binary patterns): Reorder alternatives
so that two operand instructions are chosen before three operand
Tue Apr 20 23:38:58 1999 Nathan Sidwell <>
* objc/ (objc-parse.c): Put BISON parameters in correct
* (c-parse.c): Put BISON parameters in correct
Tue Apr 20 16:38:11 1999 Richard Henderson <>
* (nt_lda): New pattern.
* alpha.c (alpha_expand_prologue): Use it for large frames
under windows nt.
Tue Apr 20 17:57:14 1999 Catherine Moore <>
* config/arm/ (movhi): Add check for odd offset.
Tue Apr 20 13:14:58 EDT 1999 John Wehle (
* i386.c (output_move_double): Abort if a non-offsettable
memory operand is encountered. Delete unused code.
(find_addr_reg): Remove.
Mon Apr 19 21:13:02 1999 Craig Burley <>
* tree.def (BLOCK): Fix typo in comment.
1999-04-19 14:51 -0400 Zack Weinberg <>
* cpplib.c (output_line_command): Drop CONDITIONAL argument.
We can omit unnecessary line commands if file_change ==
same_file and pfile->lineno != 0. All callers changed.
(cpp_get_token [case '\n']): Don't bump pfile->lineno if
CPP_OPTIONS (pfile)->no_line_commands is set.
* cpplib.h: Fix prototype of output_line_command.
1999-04-18 17:46 -0400 Zack Weinberg <>
* cppfiles.c (find_position, read_and_prescan): Use `unsigned
long' variables consistently to count line and column numbers.
Sun Apr 18 15:50:33 EDT 1999 John Wehle (
* output.h (current_function_is_leaf,
current_function_uses_only_leaf_regs): Declare.
* function.c (current_function_is_leaf,
current_function_uses_only_leaf_regs): Define.
(init_function_start): Initialize current_function_is_leaf
and current_function_uses_only_leaf_regs.
* final.c (leaf_function): Don't define.
(final_start_function): Replace uses of leaf_function with
* toplev.c (rest_of_compilation): Set current_function_is_leaf
prior to invoking local register allocation.
(rest_of_compilation): Replace uses of leaf_function with
* dbxout.c (dbxout_symbol, dbxout_parms): Likewise.
* dwarf2out.c (add_location_or_const_vaule_attribute): Likewise.
* dwarfout.c (add_location_or_const_value_attribute): Likewise.
* sdbout.c (sdbout_symbol): Likewise.
* sparc.c (eligible_for_epilogue_delay, output_return,
sparc_return_peephole_ok): Likewise.
* (leaf_function attribute, untyped_return): Likewise.
* i386.c (ix86_compute_frame_size): Don't align the stack
for leaf functions which don't allocate any stack slots.
* tm.texi: Update documentation.
Sun Apr 18 02:15:09 PDT 1999 Jeff Law (
* version.c: Bump for snapshot.
Sun Apr 18 00:08:45 1999 Richard Henderson <>
* alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Correct last change --
make sure FP_BASE_P registers are only used with an integer.
Sat Apr 17 22:54:17 1999 Richard Henderson <>
* alpha.h (REG_OK_FP_BASE_P): New macro.
* (adddi3+1): New insn to handle large constants off
the soft frame pointer.
(adddi3+2): Don't split soft frame pointer or arg pointer additions.
Sun Apr 18 17:24:10 1999 Michael Hayes <>
* config/c4x/c4x.c (legitimize_operands): Use rtx_cost
to determine if it is worthwhile forcing a constant into a register.
* config/c4x/c4x.h (CONST_COSTS): An integer value of 255 or 65535
used with a logical and or an integer value of 16 or 24 used with
a right shift has zero cost on the C40.
Sat Apr 17 21:30:11 1999 Bernd Schmidt <>
* gcse.c (compute_local_properties): If setp is nonzero, clear
TRANSP instead of setting it to all ones.
Sat Apr 17 21:10:10 1999 Jan Hubicka <>
* i386.c (i386_preferred_stack_boundary_string): New global variable.
(i386_preferred_stack_boundary): New global variable.
(override_functions): Set it. Tidy option setting code.
* i386.h (TARGET_OPTIONS): New command line option.
(i386_preferred_stack_boundary_string): Declare it.
(i386_preferred_stack_boundary): Likewise.
(PREFERRED_STACK_BOUNDARY): Use i386_preferred_stack_boundary.
Sat Apr 17 19:22:38 1999 Jan Hubicka <>
* i386.c (k6_cost): Take into account the decoding time.
Sat Apr 17 19:13:22 1999 Donn Terry <>
* i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _.
* i386.c (print_operand): New %_ operator.
(load_pic_register): Proper number of leading _ in GOT literal.
* (prologue_get_pc_and_set_got): Likewise.
* i386/unix.h (ASM_OUTPUT_MI_THUNK): Likewise.
Sat Apr 17 19:13:07 1999 Richard Henderson <>
* alpha.c (alpha_expand_prologue): Use gen_adddi3 instead of
emit_move_insn+plus_constant. For NT, don't use the stack probe
loop pointer to allocate stack space.
* (adddi3): Always use lda to set the stack pointer.
1999-04-17 20:11 -0400 Zack Weinberg <>
* c-aux-info.c, emit-rtl.c, explow.c, expmed.c, gcse.c,
haifa-sched.c, optabs.c, reorg.c, resource.c, sched.c: Include
toplev.h for real declaration of trim_filename.
* Update dependencies.
Sat Apr 17 14:36:19 1999 Craig Burley <>
* tree.c (chainon): Check for circularity only if
1999-04-17 10:15 -0400 Zack Weinberg <>
* cccp.c: Make fatal non-static.
Sat Apr 17 23:47:24 1999 Michael Hayes <>
* config/c4x/ (*andqi3_255_clobber,*andqi3_65535_clobber):
New logical and patterns using C40 bit-field insert instructions.
*ashrqi3_16_clobber): New shift patterns using C40 bit-field insert
1999-04-16 22:44 -0400 Zack Weinberg <>
* system.h: Always prototype abort. Prototype fatal. Define
abort to call fatal, not fprintf/exit. Define a stub macro
for trim_filename.
* toplev.c: Define DIR_SEPARATOR. (trim_filename): New
* toplev.h: Prototype trim_filename, and #undef system.h's stub.
* gcc.c, genattr.c, genattrtab.c, gencodes.c, genconfig.c,
genemit.c, genextract.c, genflags.c, genopinit.c, genoutput.c,
genpeep.c, genrecog.c: Make fatal non-static.
* gcov.c, gengenrtl.c, protoize.c: #undef abort after
including system.h.
* config/i386/dgux.h, config/m68k/xm-amix.h: Remove stale code
relating to abort.
Sat Apr 17 11:25:44 1999 Michael Hayes <>
* config/c4x/ (mulqf3_clrqf_clobber, mulqi3_clrqi_clobber):
New patterns to support parallel multiply and load of zero.
Fri Apr 16 01:23:47 1999 Jason Merrill <>
* tree.c (valid_machine_attribute): If we're modifying the
FUNCTION_TYPE within a POINTER_TYPE and we don't get a decl,
update the POINTER_TYPE.
Fri Apr 16 00:19:31 1999 Jan Hubicka <>
* i386.c (x86_adjust_cost): Move break statement to correct place.
Thu Apr 15 23:17:33 1999 Jerry Quinn <>
8000 to PROCESSOR_8000.
Thu Apr 15 20:46:57 1999 Donn Terry (
* expr.c (expand_assignment): Force pointers to proper mode if
* xm-alpha.h (alloca.h): Add Interix to list of special machines
that don't like alloca.h, pending using autoconf results.
* except.c (start_catch_hadler): Be sure rtime_address is Pmode
* except.c (expand_eh_return): Force pointers to proper mode if
Thu Apr 15 23:13:35 1999 Michael Hayes <>
* config/c4x/c4x.h: Tweaked comment formatting.
* config/c4x/c4x.c: Likewise.
Thu Apr 15 02:45:19 1999 Mumit Khan <>
* aclocal.m4 (GCC_FUNC_MKDIR_TAKES_ONE_ARG): Define.
* Use.
* configure: Rebuilt.
* acconfig.h (MKDIR_TAKES_ONE_ARG): Add.
* Rebuilt.
* system.h: Use.
Thu Apr 15 01:03:21 1999 Jan Hubicka <>
Jeff Law <>
* (QImode add pattern): Support lea instruction.
(HImode add pattern): Likewise.
* (ashlsi patterns): Call output_ashl instead of output_ashlsi3.
(ashlqi): Use expander, separate LEA and SAL / ADD patterns; call
(ashlhi): Likewise.
* i386.h (output_ashl): Renamed from output_ashlsi3.
* i386.c (output_ashl): Likewise; support HImode and QImode operands
as well.
* (notsi, nothi, xorsi, xorhi, and xorqi patterns): Call
memory_address_displacement_length instead of memory_address_length.
* i386.c (memory_address_info): Renamed from memory_address_length.
Accept new argument DISP_LENGTH. All callers changed. If DISP_LENGTH,
then return the displacement length. Else return length of the
entire memory address. Handle MULT case correctly.
* i386.h (memory_address_info): Update declaration.
* (memory_bit_test): Fix paren error.
Wed Apr 14 21:29:18 1999 Andrew Haley <>
* flow.c: (make_edges): Always make edges from a basic block
to its exception handlers, even if the block ends with a jump.
1999-04-14 23:26 -0400 Zack Weinberg <>
* graph.c (node_data): Return void. Ignore result of
print_rtl_single. Change caller to match.
* integrate.c (subst_constants): Initialize op0_mode to an
invalid mode, and abort before use if it's still invalid.
(Can only happen if the RTX_CLASS, RTX_FORMAT tables are corrupted.)
* objc/objc-act.c (get_objc_string_decl,
build_selector_translation_table, generate_protocol_list,
synth_id_with_class_suffix, build_keyword_selector,
build_selector_expr, gen_declarator): Abort when the tree
structure is corrupted.
Wed Apr 14 19:57:49 1999 Jeffrey A Law (
* (alpha interix): Use symbolic names to set
* configure: Rebuilt.
* explow.c (allocate_dynamic_stack_space): Undo last change. Use
convert_memory_address instead.
Wed Apr 14 19:42:02 1999 Donn Terry (
* alpha/lib1funcs.asm: New file.
* alpha/t-interix (lib1funcs.asm): Add to build.
* explow.c (allocate_dynamic_stack_space): Correctly convert TARGET
to Pmode.
Wed Apr 14 14:26:36 1999 John Wehle (
* (truncxfdf): Output the template supplied
by output_move_double with the correct operands.
* (extendsfdf, extendsfxf, extenddfxf): Use
output_float_extend instead specifying '#' as the template.
* i386.c (output_float_extend): Define.
* i386.h (output_float_extend): Declare.
Wed Apr 14 10:48:03 1999 Catherine Moore <>
* config/mips/elf.h, config/mips/elf64.h
(INVOKE__main): Define.
(NAME__MAIN): Define.
(SYMBOL__MAIN): Define.
(CTOR_LIST_END): Define.
(DTOR_LIST_END): Define.
(LIB_SPEC): Define.
* config/mips/linux.h: Undefine all of the above.
* config/mips/rtems64.h: Likewise.
* config/mips/t-r3900: Likewise.
* config/mips/t-elf: New file.
* config/mips/vxworks.h: New file.
* (mips-wrs-vxworks): Use mips/vxworks.h.
(mips*-*-*elf*): Use t-elf instead of t-ecoff.
* configure: Regenerate.
Wed Apr 14 09:59:38 1999 Richard Henderson <>
* reload1.c (emit_reload_insns): Also find equivalent mems
for subregs of pseudos.
* alpha.c (aligned_memory_operand): Recognize the output of
LEGITIMIZE_RELOAD_ADDRESS. Examine reg_equiv_memory_loc in
the event of a pseudo.
(unaligned_memory_operand): Likewise. Don't otherwise accept
completely illegal addresses.
(normal_memory_operand): Likewise. Handle subregs of pseudos.
(get_aligned_mem): Revert previous change. Abort if we don't have a
mem. During reload, call find_replacement on all illegal memories.
(get_unaligned_address): Likewise.
* alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Use !aligned_memory_operand
instead of unaligned_memory_operand.
* Revert extra argument to get_aligned_mem.
(reload_inqi): Use any_memory_operand in constraints. Abort if
we're not given some sort of mem.
(reload_inhi): Likewise.
(reload_outqi, reload_outhi): Likewise.
Wed Apr 14 09:39:20 1999 Richard Henderson <>
* (neghi): Use the whole register when widening the op.
1999-04-14 12:37 -0400 Zack Weinberg <>
* cpperror.c, cppexp.c, cpplib.c: Never call abort.
* cpphash.c: Only call abort when we detect corruption of the
malloc arena.
* cppmain.c: Don't define fatal or fancy_abort.
Wed Apr 14 09:19:39 1999 Jan Hubicka <>
* i386.c (x86_adjust_cost): Agi stall takes 1 cycle on Pentium, fst
requires value to be ready one extra cycle.
Wed Apr 14 11:28:34 1999 Dave Brolley <>
* config/i386/i386.c (memory_address_length): Add missing parenthesis.
Wed Apr 14 13:59:27 1999 Martin von Loewis <>
* extend.texi (Deprecated Features): New node.
* invoke.texi (-Wdeprecated): Document.
Wed Apr 14 00:18:22 1999 Jan Hubicka <>
* (SImode logical compare): Avoid outputing non-pariable testw
and testl on Pentium.
(register and memory bit tests): Likewise.
(setcc, normal and reversed conditional branches): Use shorter
sequence for testing flags stored in EAX.
* (xorsi3): Do not output NOT instrctions on Pentium.
(xorqi3): Likewise.
(xorhi3): Likewise.
(notsi2): Likewise.
(notqi2): Likewise.
(nothi2): Likewise; do not output prefixed opcodes when possible.
* (neghi2): Do not output prefixed opcode when possible.
(ashlhi3): Likewise.
Wed Apr 14 00:08:46 1999 Richard Henderson <>
* i386.c (memory_address_length): New function.
* i386.h (memory_address_length): Declare it.
Tue Apr 13 22:52:04 1999 Donn Terry (
Martin Heller (
* (interix Alpha): Add.
(winnt Alpha): Use alpha32.h
(interix i386): Parallel Alpha32.
* configure: Rebuilt.
* config/interix.h: Move common elements from i386-interix.h.
* config/i386/i386-interix.h: Delete same.
* config/alpha/alpha-interix.h: New file.
* config/alpha/alpha32.h: New file, part fron win-nt.h.
* config/alpha/win-nt.h: Deletions (-> alpha32.h).
* config/alpha/interix.h: New file
* config/alpha/ (interix): Comment.
* config/alpha/xm-alpha-interix.h: New file.
* config/alpha/t-interix: New file.
* fixinc/ (interix/Alpha): Add.
1999-04-13 Mike Stump <>
* i386/vxi386.h (CPP_CPU_SPEC): Define appropriately for vxworks.
Tue Apr 13 21:01:36 1999 Jason Merrill <>
* c-common.c (default_valid_lang_attribute): New fn.
(valid_lang_attribute): New callback ptr.
(decl_attributes): Call it. Move init_priority support into
C++ frontend.
Tue Apr 13 17:47:14 1999 John Wehle (
* (movdi): Add splitter.
Wed Apr 14 10:04:27 1999 Michael Hayes <>
* config/c4x/ (storeqf_int, storeqf_int_clobber, loadqf_int,
loadqf_int_clobber): Add new patterns with corresponding splitters
to handle moves of floating point values into and out of intager
registers by using memory.
* config/c4x/c4x.c (c4x_check_legit_addr): Disallow PRE_INC for modes
other than QFmode and QImode.
(mixed_subreg_operand): New function.
(c4x_emit_move_sequence): If moving a floating point value into or
out of an integer register, use the new patterns storeqf_int_clobber
or loadqf_int_clobber.
(reg_imm_operand, *_reg_operand): Call reg_operand instead of
(reg_operand, src_operand): Disallow operand if it satisifes
* config/c4x/c4x.h (mixed_subreg_operand): Add prototype.
Tue Apr 13 14:49:13 1999 Jan Hubicka <>
* i386.c (agi_dependent): Handle push operation more correctly.
Tue Apr 13 14:45:17 1999 Jan Hubicka <>
* (anddi3): Add % constraint.
(iordi3, xordi3): Likewise.
Tue Apr 13 14:29:58 1999 Jan Hubicka <>
* (extendhisi2): Output mov instead of cw instruction for K6
to improve decoding bandwidth.
* (extendhiqi2): Likewise.
Tue Apr 13 14:26:31 1999 Jan Hubicka <>
* (movsf_push): Handle memory to memory case too, new splitter.
(movdf_push, movxf_push): Likewise.
(movsf_push_memory, movdf_push_memory, movxf_push_memory): Remove.
Tue Apr 13 14:14:06 1999 Jan Hubicka <>
* Do not output mov %0,reg on AMD K6.
Tue Apr 13 12:14:07 1999 Dave Brolley <>
* cppinit.c (cpp_start_read): Fix buffer overwrite.
* (cppinit.o): Typo in dependencies.
Tue Apr 13 05:04:59 1999 Richard Earnshaw (
* arm.h (function prototypes for arm.c): Ifdef these out if
HAVE_CONFIG_H is not defined.
Tue Apr 13 02:11:11 1999 Jeffrey A Law (
* pa.c: Avoid Using immediate zero for register zero.
* Likewise.
* pa.c (print_operand, case 'f'): New case for FP register or 0.0.
(print_operand, case 'r'): Use %r0 for zero value.
* (move patterns, fcmp patterns): Use new %f output arg.
* pa.c: Use a register name, not a raw immediate in branch,
compare/clear, sub, subb, uaddcm and vshd instructions.
* Likewise.
*, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise.
* pa.c: Use a register name, not a raw immediate in "bv" instructions.
*, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise.
* pa.c: Remove space register specification in memory addresses,
except where it is actually needed.
*, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise.
Mon Apr 12 23:34:35 1999 Jeff Law (
* version.c: Bump for snapshot.
Mon Apr 12 14:58:30 1999 Jan Hubicka <>
* reg-stack.c (check_stack_regs_mentioned): Remove variable SIZE.
Mon Apr 12 19:15:17 1999 Daniel Jacobowitz <>
* rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Add missing backslash.
Mon Apr 12 19:11:38 1999 Mumit Khan <>
* i386/cygwin.h (SUBTARGET_SWITCHES): Add -mconsole; fix
-mno-nop-fun-dllimport and minor doc fixes.
(STARTFILE_SPEC): Cygwin DLLs don't have dllcrt0.
(LINK_SPEC): Add -mconsole support.
* i386/mingw32.h (LIB_SPEC): Make libraries consistent with
(LINK_SPEC): Remove. Use Cygwin's version.
(MATH_LIBRARY): Make it null.
* i386/crtdll.h (MATH_LIBRARY): Likewise.
Fri Apr 12 15:00:52 1999 Stan Cox <>
* c-decl.c (c_decode_option, start_decl, start_function,
finish_function) : Recognize -Wno-main so we can avoid warnings.
1999-04-12 Zack Weinberg <>
* cpphash.c (collect_expansion, macroexpand,
push_macro_expansion): Make the escape character in macro
buffers '\r', not '@'. Remove code to protect literal
occurrences of the escape character; '\r' cannot appear
in a macro buffer unless we put it there.
* cpplib.c (skip_comment, copy_comment, cpp_skip_hspace,
copy_rest_of_line, cpp_get_token, parse_string,
parse_assertion): '\r' might be a backslash-newline marker, or
it might be a macro escape marker, depending on
CPP_BUFFER (pfile)->has_escapes. '@' is not a special
* cpplib.h: Update commentary.
Mon Apr 12 09:30:03 1999 Richard Earnshaw (
* arm.h (target_fp_name, structure_size_string, arm_cpu_select):
* arm.c (target_fp_name, structure_size_string): Const-ify.
* (reload_inhi, reload_outhi): Make the scratch DImode.
* arm.c (arm_reload_in_hi): Handle cases when the input is still
a pseudo, make use of scratch registers for reloading the address
as appropriate.
(arm_reload_outhi): Similarly for when the output is still a pseudo.
* riscix.h (SUBTARGET_SWITCHES): Document.
1999-04-12 Bruce Korb <>
* fixincludes:
make fixincludes behave like the scripts in fixinc/
* stmp-fixinc ):
ensure the SHELL value is that of the make
* fixincl/inclhack.tpl:
the file name lists ought to be restricted to "*.h" anyway
C++ files may be named .../[a-z]++/... also
Adding copyright year and attribution to output
* fixincl/inclhack.def:
fixed broken expression
Clarify a some comments
* fixincl/fixincl.tpl:
Clarify a some comments
Remove dead template text
Correct the counting of regular expressions
Mon Apr 12 03:07:44 1999 Richard Henderson <>
* alpha.c (aligned_memory_operand): Handle out of range stack slots.
Take a new SCRATCH argument for the occasion. Update all callers.
(get_unaligned_address): Abort on out of range stack slots.
* (adddi3 splitter): Check s_p_rtx not REGNO.
(reload_inqi): Check for aligned mems before unaligned.
(reload_inhi): Likewise.
Mon Apr 12 03:11:30 1999 Jeffrey A Law (
* flow.c (flow_delete_insn): If we delete a CODE_LABEL, also remove
it from the nonlocal_goto_handler_labels list.
* jump.c (delete_insn): Likewise.
(jump_optimize_1): Also recompute LABEL_NUSES when we are just
marking labels.
* rtl.h (remove_node_from_expr_list): Declare.
* rtlanal.c (remove_node_from_expr_list): New function.
Mon Apr 12 02:37:02 1999 Jan Hubicka <>
* reg-stack.c: Update comment, include varray.h.
(stack_regs_mentioned_data): New global variable.
(check_stack_regs_mentioned): New function.
(stack_regs_mentioned): New function.
(reg_to_stack): Initialize and free stack_regs_mentioned_data,
use stack_regs_mentioned.
(record_asm_reg_life): Change insn type cache for changed insn.
(record_reg_life): Do not change the insn mode.
(emit_pop_insn): Likewise.
(emit_swap_insn): Likewise.
(move_for_stack_reg): Likewise.
(stack_reg_life_analysis): Use stack_regs_mentioned.
(emit_swap_insn): Likewise.
(subst_stack_regs): Likewise.
(convert_regs): Likewise.
* jump.c (find_cross_jump): Use stack_regs_mentioned.
* rtl.h (stack_regs_mentioned): Declare.
Mon Apr 12 00:57:10 1999 Theodore Papadopoulo <>
* integrate.c (INTEGRATE_THRESHOLD): Sync it with the comment.
Sun Apr 11 10:24:18 1999 Mark Mitchell <>
* rtl.h (rtx_def): Update documentation for jump and call.
Sun Apr 11 07:43:44 1999 Kaveh R. Ghazi <>
* jump.c (jump_optimize_1): Make the definition static to match
the prototype.
Sat Apr 10 22:51:53 1999 Jan Hubicka <>
* flow.c (life_analysis): New parameter remove_dead_code.
(life_analysis_1): Likewise.
(propagate_block): Likewise; use it.
* output.h: Update prototype.
* toplev.c: Update calls to life_analysis.
Sat Apr 10 22:12:12 1999 Jan Hubicka <>
* recog.c (constrain_operands): Ignore unary operators when
matching operands. Recognize '5'..'9' as well.
Sat Apr 10 21:53:02 1999 Philipp Thomas (
Richard Henderson <>
* Set target_cpu_default2 for target_alias k6.
* i386.h (TARGET_SWITCHES): Remove no-<cpu> entries.
(CC1_CPU_SPEC): Likewise.
(CPP_CPU_DEFAULT_SPEC): Streamline definition. Add K6 version.
(CPP_K6_SPEC): New.
(CPP_CPU_SPEC): Add K6 variant.
(EXTRA_SPECS): Likewise.
Fri Apr 9 11:29:17 1999 Richard Henderson <>
* flow.c (merge_blocks_nomove): Rewrite to properly handle two
blocks that vanish entirely during merging.
Sat Apr 10 20:09:55 1999 John Wehle (
* (floatsisf2, floatdisf2, floatsidf2, floatdidf2,
floatsixf2, floatdixf2, movsicc, movhicc, movsfcc, movdfcc,
movxfcc, movdicc): Remove unused register constraints from
the splitters.
* (fixuns_truncsfsi2, fixuns_truncdfsi2,
fixuns_truncxfsi2): Delete.
* reg-stack.c (delete_insn_for_stacker): Ensure that
the only side effects of a PARALLEL are clobbers.
(subst_stack_regs): Handle subst_stack_regs_pat deleting
* (extendsfdf2, extenddfxf2,
extendsfxf2): Rewrite using a splitter.
* i386.c (output_op_from_reg): Remove.
* i386.h: Likewise.
Sat Apr 10 13:09:18 1999 Nick Clifton <>
* config/arm/arm.c (di_operand): Allow SUBREGs as well.
(soft_df_operand): Allow SUBREGs as well.
Sat Apr 10 06:14:31 1999 Jan Hubicka <>
* extend.texi (Assembler Instructions with C Expression Operands):
Document the i386 floating point operands.
1999-04-10 Mike Stump <>
* (*-*-vxworks): Add vxWorks thread support for all
vxWorks targets.
* (thumb-wrs-xvworks): Add vxWorks support for thumb.
* configure: Rebuilt.
Sat Apr 10 06:04:50 1999 Donn Terry (
* i386/t-interix: Use mostly system headers unchanged.
Use system assert.h
* fixinc/fixinc.interix: Ditto (make almost no-op).
* config/x-interix.h (_ALL_SOURCE): add -D
* config/x-interix.h (crti.o): Delete dependency.
* config/xm-interix.h (ONLY_INT_FIELDS): Define only when bootstrapping.
* i386/xm-i386-interix.h: New file.
* i386/interix.h (ASM_OUTPUT_LIMITED_STRING): Fix warnings.
* i386/i386-interix.h: Renamed from interix.h.
* (interix): Use new files.
* configure: Rebuilt.
Sat Apr 10 05:25:28 1999 Daniel Jacobowitz <>
* rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Fix conditions
for -Dunix and -Dlinux, and remove duplicate definition.
Change -Asystem(linux) to -Asystem(posix).
(CPP_OS_SOLARIS_SPEC): Fix conditions for -Dunix, -Dsun,
* rs6000/linux.h (CPP_PREDEFINES): Remove -Dunix,
-Dlinux, -Asystem(linux), and -Asystem(unix).
Sat Apr 10 05:14:50 1999 Mark Elbrecht <>
* i386/djgpp.h (SET_ASM_OP): Define.
* cccp.c (DIR_SEPARATOR): Move to the top of the file.
(is_dir_separator): New function.
(simplify_filename): Use it.
* collect2.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM in place
of the DIR_SEPARATOR test.
Consider any file starting with a drivename to be absolute.
If the absolute filename test fails and EXECUTABLE_SUFFIX is
defined, append EXECUTABLE_SUFFIX to the file and try again.
* cppinit.c (base_name): Use HAVE_DOS_BASED_FILE_SYSTEM
in place of __MSDOS__ and _WIN32.
* cppfiles.c (simplify_pathname): Likewise.
* gcc.c (IS_DIR_SEPARATOR): Define new macro. Returns true if a
character is a directory separator.
(find_a_file): Use it.
(convert_filename): Likewise.
(process_command): Likewise.
(do_spec_1): Likewise.
(is_directory): Likewise.
(main): Likewise.
* prefix.c (IS_DIR_SEPARATOR): Define. Tests whether a character is
a directory separator.
(translate_name): Use it.
(update_path): Change DIR_SEPARATOR_2 to DIR_SEPARATOR. Fix
warning in block where '/' is changed to DIR_SEPARATOR.
* i386/xm-djgpp.h (DIR_SEPARATOR): Set to '/'.
(DIR_SEPARATOR_2): New macro. Set to '\'.
* i386/xm-mingw32.h: Updated copyright. Set
* i386/xm-os2.h: Likewise.
* winnt/xm-winnt.h: Likewise.
* i386/xm-dos.h: Likewise. Add copyright.
1999-04-10 Joseph S. Myers <>
* pdp11.h (TARGET_SWITCHES): Add option to vary assembler syntax.
(TARGET_DEFAULT): Possibly use UNIX syntax.
(REGISTER_NAMES): Use "r5" instead of "fp".
(ASM_OUTPUT_ALIGN): Use ".even" directive, and abort for any
greater alignment.
* 2bsd.h (TARGET_UNIX_ASM_DEFAULT): Default to UNIX assembler
syntax for 2BSD.
* pdp11.c (output_ascii): Use working syntax for ".byte".
(print_operand_address): Use "*" instead of "@" when using UNIX
assembler syntax.
Sat Apr 10 03:50:12 1999 Jeffrey A Law (
* rtl.h (rebuild_jump_labels): Declare.
* jump.c (jump_optimize_1): Renamed from jump_optimize. Make static.
Add new argument MARK_LABELS_ONLY. Quit after mark_all_labels if
(jump_optimize, rebuild_jump_labels): New wrapper functions for
* toplev.c (rest_of_compilation): Use rebuild_jump_labels instead of
running the entire jump optimizer.
* rtl.h (local_alloc): Returns an integer now.
* local-alloc.c (recorded_label_ref): New file scoped variable.
(local_alloc): Initialize recorded_label_ref to zero. Return its
value when local allocation has completed.
(update_equiv_regs); If we create an equivalence for a LABEL_REF,
set recorded_label_ref.
* toplev.c (rest_of_compilation): Run the jump optimizer after
register allocation and reloading if needed.
Fri Apr 9 21:02:57 1999 Krister Walfridsson (
* i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Fix typo.
* i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1999-04-09 Zack Weinberg <>
* cpphash.c (special_symbol): When expanding __LINE__, use the
top file buffer, not the top buffer.
Fri Apr 9 13:41:04 1999 Jim Wilson <>
* (check-g++, check-gcc, check-g77, check-objc): Add
cd .. to TCL_LIBRARY command.
Fri Apr 9 13:04:52 1999 Nick Clifton <>
* config/arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Only define if
not already specified.
Fri Apr 9 11:18:55 1999 Jason Merrill <>
* c-common.c (decl_attributes, A_INIT_PRIORITY): Allow arrays
of classes, too.
Fri Apr 9 10:40:10 1999 Kaveh R. Ghazi <>
* rs6000.c (rs6000_override_options, ptt, rs6000_file_start,
rs6000_float_const, rs6000_replace_regno, debug_stack_info,
rs6000_output_load_toc_table, output_prolog, output_epilog):
Const-ify a char*.
(output_mi_thunk): Likewise. Mark parameter `thunk_fndecl' with
ATTRIBUTE_UNUSED. Hide unused variables `r0', `sp', `toc',
`schain', `r12', `buf' and `labelno'.
(output_ascii): Const-ify a char*.
(rs6000_gen_section_name): Initialize variable `last_period'.
(rs6000_adjust_priority): Mark parameter `insn' with
(rs6000_trampoline_template, rs6000_dll_import_ref,
rs6000_longcall_ref, rs6000_encode_section_info): Const-ify a char*.
* rs6000.h (offsettable_mem_operand, optimization_options): Add
* (movdi, define_split): Cast a value to HOST_WIDE_INT
when comparing against one.
Thu Apr 8 19:20:18 1999 Jeffrey A Law (
* expr.c (expand_expr, case ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF):
Do not try to optimize an aggregate address which has VOIDmode.
Mirrors March 23 change to expand_assignment.
* flow.c (delete_unreachable_blocks): Do not require EDGE_FALLTHRU
for an edge when tidying an edge which connects consecutive basic
* flow.c (can_delete_label_p): Do not convert a label into a
deleted label here.
* cse.c (flush_hash_table): New function.
(cse_insn): Flush the hash table when we encounter a volatile asm.
(cse_basic_block): Use flush_hash_table instead of doing it
* reload1.c (reload_cse_regs_1): Flush known register values if
we encounter a volatile asm.
* loop.c (strength_reduce): Re-enable Joern's loop improvements.
Thu Apr 8 09:37:40 1999 Nick Clifton <>
* config/arm/arm.c (arm_print_operand): Undo previous change -
always print large constants in decimal.
Thu Apr 8 10:22:23 1999 Kaveh R. Ghazi <>
* (host_xm_file, build_xm_file): Include hwint.h.
Use case statements instead of "if test -a ... -a ... -a ..."
* machmode.h: Don't define HOST_WIDE_INT, etc. Wrap use of
HOST_WIDE_INT in #ifdef.
* mips.h: Include hwint.h instead of providing definitions for
HOST_WIDE_INT, etc. Wrap uses of HOST_WIDE_INT in #ifdef.
Thu Apr 8 06:16:14 1999 John Wehle (
* (truncdfsf2, truncxfsf2,
truncxfdf2): Rewrite using a splitter.
Thu Apr 8 01:26:05 1999 Arg Haas (
Jeffrey A Law (
* freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Avoid ambiguous
else statement.
* gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
* linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
* openbsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
Wed Apr 7 22:40:19 1999 Jim Wilson <>
* i960/i960.c (i960_function_prologue): Don't save static chain
* i960/i960.h (STACK_CHAIN_REGNUM): Change from r3 to g12.
(FRAME_POINTER_REQUIRED): Check current_function_has_nonlocal_goto.
* i960/ (nonlocal_goto): Rewrite.
Tue Apr 6 17:49:49 1999 Philip Blundell <>
* config/arm/lib1funcs.asm: Test for __ELF__ not __elf__.
Wed Apr 7 14:07:34 1999 Jeffrey A Law (
* h8300.c (h8300_adjust_insn_length): Also avoid recognizing
* h8300.c (h8300_adjust_insn_length): Avoid trying to recognize
* unroll.c (unroll_loop): For HAVE_cc0 machines, adjust copy_end_luid
to account for the uncopied insn that sets cc0 at the end of the loop.
* unroll.c (copy_loop_body): Always ensure at least two insns
are in the copied loop.
Wed Apr 7 14:52:18 1999 Catherine Moore <>
* config/mips/elf.h (MAKE_DECL_ONE_ONLY): Define.
1999-04-07 Bruce Korb <>
* fixinc/inclhack.tpl & fixincl.tpl:
Remove dynamic content from generated files
Wed Apr 7 13:16:22 1999 John Wehle (
* i386.c (output_move_memory): Remove.
* i386.h: Likewise.
* (movsi, movhi, movstricthi, movqi, movstrictqi,
movsf, movdf, movxf, movdi): Check no_new_pseudos instead
of (reload_in_progress | reload_completed).
Wed Apr 7 03:16:45 1999 Richard Henderson <>
* alpha.c (reg_no_subreg_operand): New function.
* alpha.h (PREDICATE_CODES): Add it.
* (floatdi?f patterns): Use it for op1.
* alpha.c (alpha_end_function): Don't flag weak functions.
Wed Apr 7 02:11:55 1999 Richard Henderson <>
* expr.c (expand_builtin) [BUILT_IN_RETURN_ADDRESS]: Use
copy_to_mode_reg; don't force constants into a register.
Tue Apr 6 22:55:25 1999 Richard Henderson <>
* toplev.c (compile_file): Typo flow_dump -> flow2_dump.
1999-04-06 Joseph S. Myers <>
* pdp11.c (simple_memory_operand): Add default case in switch.
* pdp11.h (TARGET_SWITCHES): Add help strings.
(NOTICE_UPDATE_CC): Don't include excess argument to format.
Tue Apr 6 22:09:40 1999 Richard Henderson <>
* expr.c (expand_builtin_setjmp): Put setjmp return label on
nonlocal_goto_handler_labels for flow.
Tue Apr 6 22:05:21 1999 Jan Hubicka <>
Richard Henderson <>
* flow.c (verify_flow_info): New function.
(find_basic_blocks): Call it if ENABLE_CHECKING.
(merge_blocks): Don't merge if there are non-deletable labels.
* toplev.c (fatal_insn): Allow a printf-style arg list.
* toplev.h (fatal_insn): Update prototype.
Tue Apr 6 16:18:58 1999 Jan Hubicka <>
* flow.c (split_edge) update correctly flow graph, disable
EDGE_CRITICAL flag on the split edge, update NUSES for new label.
Tue Apr 6 15:47:51 1999 Richard Henderson <>
* emit-rtl.c (gen_rtx_CONST_DOUBLE): Use XWINT not XINT.
Clear third and following slots, if they exist.
Tue Apr 6 15:45:28 1999 Richard Henderson <>
* flow.c (create_basic_block): Make sure the bb note is in the block.
(can_delete_note_p): Rename from delete_note_p.
(delete_insn_chain): Preserve undeleteable labels too.
(tidy_fallthru_edge): Use next_real_insn instead of confusing
inline code.
1999-04-06 Zack Weinberg <>
* cppexp.c (parse_charconst): Initialize c.
(cpp_parse_expr): Initialize rprio.
* cppfiles.c (merge_include_chains): Initialize prev.
(finclude): Set fp->line_base to fp->buf before returning.
* cpphash.c (macroexpand): Initialize token.
* cppspec.c (lang_specific_driver): Change suff to
const char *const *.
1999-04-06 Zack Weinberg <>
* cppinit.c (install_predefs): Delete function.
(cpp_start_read): Don't call install_predefs.
(cpp_handle_option): Remove case 'u' and all refs to
(print_help): Don't mention -undef.
(initialize_builtins): Define __HAVE_BUILTIN_SETJMP__, to
match cccp.
* cpplib.h (struct cpp_options): Remove inhibit_predefs
* cccp.c (predefs): Delete variable.
(main): Remove case 'u' in argument parse loop,
'inhibit_predefs' variable, and the code block that would
(initialize_builtins): Don't define __OBJC__, the driver will
do that.
* gcc.c (default_compilers): Remove -undef from all specs that
invoke a C preprocessor.
* ch/lang-specs.h: Likewise.
* cp/lang-specs.h: Likewise.
* f/lang-specs.h: Likewise.
* objc/lang-specs.h: Likewise.
Mon Apr 5 11:55:31 1999 Donn Terry (
* (SUBDIR_FLAGS_TO_PASS): Fix misapplied patch.
Mon Apr 5 11:51:38 1999 Jeffrey A Law (
* (movdf): Hide GPR sources & destinations from regclass.
Mon Apr 5 09:54:42 1999 Jeff Law (
* version.c: Bump for snapshot.
Mon Apr 5 05:55:15 1999 Bruce Korb <>
* fixincl.tpl: Separate "-e" from its argument, a la
the Sat Apr 3 17:05:13 1999 fix.
* genfixes: Ensure that the server shell is _NOT_ csh.
Mon Apr 5 03:52:30 1999 Jeff Law (
* version.c: Bump for snapshot.
Mon Apr 5 04:47:14 1999 Jeffrey A Law (
* i386.c (x86_double_with_add): Turn off for Pentium and PPro.
(small_shift_operand, output_ashlsi3): New functions.
* i386.h (small_shift_operand, output_ashlsi3): Declare.
* (ashlsi3): Simplify ahlsi3 patterns. Remove splitters
that are no longer needed.
Sun Apr 4 04:05:04 1999 Jeffrey A Law (
* stmt.c (expand_loop_end): When copying the loop exit test,
do not walk into a nested loop.
Sun Apr 4 00:14:54 1999 Jeffrey A Law (
* fixinc/hackshell.tpl: Skip links to directories, to avoid
removing them.
* fixinc/inclhack.tpl: Likewise.
* fixinc/, fixinc/fixincl.x, fixinc/ Rebuilt.
Sat Apr 3 23:46:13 1999 David Edelsohn <>
* (addsi3, iorsi3, xorsi3, adddi3, iordi3, xordi3,
movsi_got, movsi, movsf): Use no_new_pseudos.
* rs6000.c (rs6000_got_register): Likewise.
(offsettable_mem_opereand): Use || not |.
Sat Apr 3 22:02:56 1999 Jeffrey A Law (
* acconfig.h (ENABLE_CHECKING): Remove redundant #undef.
* Rebuilt.
Sat Apr 3 16:22:59 1999 Toshiyasu Morita (
* gcc.texi: Add info on regmove pass.
* regmove.c (fixup_match_1): Consistently evaluate
Sat Apr 3 19:21:05 1999 Alexandre Oliva <>
instead of test and sed to check whether they're GNU programs.
* configure: Rebuilt.
Sat Apr 3 17:57:35 1999 Alexandre Oliva <>
* (install-headers-tar, install-headers-cpio): Avoid
problems with CDPATH.
Reported by Ralf Canis <>
Sat Apr 3 13:50:16 1999 Jeffrey A Law (
* fixinc.x86-linux-gnu: Deleted.
Sat Apr 3 17:05:13 1999 Alexandre Oliva <>
* inclhack.tpl: Insert spaces between `sed -e' and '...'.
Reported by Kaveh R. Ghazi <>
* fixinc/, fixinc/fixincl.x, fixinc/ Regen.
Sat Apr 3 14:54:46 1999 Craig Burley <>
* tree.def (BLOCK): Fix typo in comment.
Sat Apr 3 00:53:29 1999 John Wehle (
* (floatsisf2, floatdisf2, floatsidf2, floatdidf2,
floatsixf2, floatdixf2): Rewrite using a splitter.
Fri Apr 2 17:36:10 1999 Nick Clifton <>
* config/arm/arm.c (arm_print_operand): Print large constants in
hex rather than decimal.
Fri Apr 2 17:23:58 1999 Nick Clifton <>
* print-rtl.c (print_rtx): Use both HOST_WIDE_INT_PRINT_DEC
and HOST_WIDE_INT_PRINT_HEX to display constants.
1999-04-02 Zack Weinberg <>
* config/i386/i386.h: Document all TARGET_SWITCHES or add
explicit null initializer.
* config/i386/cygwin.h: Document all SUBTARGET_SWITCHES.
* config/i386/dgux.h: Likewise.
* config/i386/osf1elf.h: Likewise.
* config/i386/win32.h: Likewise.
* config/i386/osfrose.h: Likewise. Drop obsolete -mno-ident option.
Fri Apr 2 17:49:44 1999 Toshiyasu Morita <>
* regmove.c (fixup_match_1): Remove now useless if (0).
Sat Apr 3 11:37:20 1999 Michael Hayes <>
Fri Apr 2 16:03:05 1999 Jeffrey A Law (
* fixinc.dgux, fixinc.interix, fixinc.irix, fixinc.ptx: Deleted.
* fixinc.sco, fixinc.svr4, fixinc.winnt, fixinc.wrap: Likewise.
Fri Apr 2 15:46:25 1999 Donn Terry (
* Set and substitute quoted_cc_set_by_configure.
* configure: Rebuilt.
* (SUBDIR_FLAGS_TO_PASS): Fix quoting problem with ``.
Fri Apr 2 14:35:45 1999 Stan Cox <>
* config/i386/cygwin.h (CPP_SPEC): Use mingw_include_path instead
of a hardcoded path for -mno-cygwin.
(mingw_include_path): New.
1999-04-02 Joseph S. Myers <>
* pdp11.c: Include "recog.h".
(output_function_prologue): Remove unused variables `nregs', `i',
(output_function_epilogue): Remove unused variables
`may_call_alloca', `nregs', `regno', `adjust_fp'.
(output_ascii): Mark as returning void.
(print_operand_address: Likewise.
(simple_memory_operand): Remove unused variables `plus0', `plus1',
* pdp11.h: Declare functions `arith_operand',
`const_immediate_operand', `expand_shift_operand',
`legitimate_address_p', `notice_update_cc_on_set', `output_ascii',
`output_function_epilogue', `output_function_prologue',
`print_operand_address', `register_move_cost',
(HARD_REGNO_MODE_OK): Parenthesize `REGNO' arg.
(REGNO_REG_CLASS): Likewise.
* Add explicit `int' to `static count' (in two places).
(addhi3): Add explicit braces to avoid ambiguous else.
(addqi3): Likewise.
(ashlhi3): Likewise.
Fri Apr 2 14:17:10 1999 Jerry James <>
* gcc/invoke.texi: Add documentation for additional supported
MIPS CPU types, options -mips16 and -mentry, and ABI and ISA
Fri Apr 2 14:12:06 1999 John Wehle (
* Delete floating point compare, add, subtract,
multiply, and divide patterns which allowed integer
* i386.c (output_387_binary_op): Delete unused code.
(output_float_compare): Likewise.
Fri Apr 2 11:53:37 1999 John Wehle (
* (movsf+1, movdf+1, movxf+1): Update constraints
so that SECONDARY_MEMORY_RELOAD is used. Remove dead code.
1999-04-02 Bruce Korb <>
* fixinc/ Added support for x86-interix.
* fixinc/fixinc.interix: Fixincludes script, slight changes
from ./fixinc.interix. Untested (needs interix box).
* fixinc/inclhack.def:
Complete the change to the 'fixinc.tmp' file.
Fixed regex for finding C++ headers.
* fixincl.x,, Regenerate.
Fri Apr 2 11:36:12 1999 Jan Hubicka (
* i386.c (print_operand_address, case REG): Do not use ESI addressing
mode for the K6.
* i386.c (print_operand_address, case MULT): Use more efficient
encoding (mult (reg) (const_int 2)).
Thu Apr 1 17:01:50 1999 Richard Henderson <>
Move over patch from Bernd Schmidt from GC branch:
* emit-rtl.c (gen_rtx_CONST_DOUBLE): New function.
(gen_rtx): Call it. Tidy cases.
* rtl.h (gen_rtx_CONST_DOUBLE): Prototype it.
* gengenrtl.c: Add commentary.
(special_rtx): Also match CONST_DOUBLE.
(gencode): Emit call to memset instead of bzero.
Fri Apr 2 12:58:26 1999 Michael Hayes <>
* config/c4x/ (ashlhi3, lshrhi3, ashrhi3): Force operand 1
into a register if shift count not constant.
(ashlhi3_reg, lshrhi3_reg, ashrhi3_reg): Ensure that operand 1
is a register.
Fri Apr 2 12:19:17 1999 Michael Hayes <>
* config/c4x/ (*db): Enable pattern if TARGET_LOOP_UNSIGNED
is nonzero.
(movstrqi_small, movstrqi_large, *cmpstrqi): Add + modifier to address
register constraints.
(*movhi_clobber+1): Modify splitter pattern to handle destination
register that is used in the source address.
(*xorhi3_clobber): Replace AND with XOR in call to legitimize_operands.
Fri Apr 2 12:16:15 1999 Michael Hayes <>
* config/c4x/c4x.h: Added more comments.
Fri Apr 2 11:58:22 1999 Michael Hayes <>
* config/c4x/c4x.c (c4x_emit_move_sequence): Force invalid QImode
constants into memory if we get called directly from gen_move_insn
rather than emit_move_insn.
(c4x_legitimize_address): Fix up LABEL_REF addresses.
Thu Apr 1 12:04:05 1999 Jim Wilson <>
* expr.c (store_field): When check direct_store, assume all complex
modes can be directly stored.
1999-04-01 Bruce Korb <>
* fixinc/genfixes: New shell script that runs autogen
to create the generated files.
1999-04-01 Manfred Hollstein <>
* (cppmain$(exeext)): Depend on intl.o. Link in intl.o.
Thu Apr 1 03:48:34 1999 H.J. Lu (
* i386.c (output_fp_conditional_move): Abort for LT, LE, GE, and GT
signed integer comparisons.
* i386.c (output_int_conditional_move): Use "enum rtx_code" for code
* i386.c (notice_update_cc): No need to check the INT mode for
conditional moves since FLOAT conditional moves don't affect cc0.
Thu Apr 1 02:17:18 1999 Jeffrey A Law (
* fixinc/inclhack.def (zzz_ki_syscalls, zzz_time): Fix trigger
string to only match on hpux11.
* fixinc/fixincl.x, fixinc/, fixinc/ Rebuilt.
Thu Apr 1 01:09:27 1999 Alexandre Oliva <>
* fixinc/hackshell.tpl: Complete transition to fixinc.tmp.
* fixinc/ Rebuilt.
* fixinc/inclhack.def: Fix typos in c_asm.h fix.
* fixinc/fixincl.x, fixinc/, fixinc/ Rebuilt.
Wed Mar 31 17:20:11 1999 Jeffrey A Law (
* toplev.c (rest_of_compilation): Allow dbr_schedule to write to
the dump file too.
Wed Mar 31 12:32:43 1999 Richard Henderson <>
* flow.c (find_basic_blocks): New argument `do_cleanup'.
Conditionally call delete_unreachable_blocks.
(free_basic_block_vars): Zero ENTRY/EXIT data.
(allocate_for_life_analysis): Kill. Split into...
(allocate_bb_life_data, allocate_reg_life_data): ... new functions.
(life_analysis_1): Update.
* gcse.c (gcse_main): Update find_basic_blocks call.
* toplev.c (rest_of_compilation): Likewise.
* stupid.c (stupid_life_analysis): Update life data calls.
* rtl.h, output.h: Update prototypes.
Wed Mar 31 12:10:00 1999 Bruce Korb <>
* inclhack.def (several): Added spaces in tests to ensure
correct shell syntax. Added c_asm.h fix from fixincludes.
Also corrected the corrected fix to C++ comments :-}
* inclhack.tpl: Changed method of traversing symlink trees
so that file name matching will work correctly.
* fixincl.c, hackshell.tpl: Fallout from above.
* fixincl.x,, Rebuilt.
Tue Mar 30 10:43:49 1999 Philip Blundell <>
* config/arm/aout.h (DBX_DEBUGGING_INFO): Avoid redefinition if
dbxelf.h was previously included.
(CPP_APCS_PC_DEFAULT_SPEC): No need to undefine.
* config/arm/linux-elf.h (FP_DEFAULT): Correctly override the
definition from arm.h.
Wed Mar 31 10:33:37 1999 Kaveh R. Ghazi <>
* (c-gperf.h): Generate using gperf language 'C', not
'KR-C', so gperf uses the `const' keyword on strings.
* c-parse.gperf (resword): Const-ify a char*.
Wed Mar 31 01:49:31 1999 Ian Lance Taylor <>
* t-rtems (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define.
Wed Mar 31 00:50:48 1999 Jeffrey A Law (
* system.h (STDERR_FILENO): Fix typo.
* inclhack.def (bool): Also fix bogus bool in curses_colr/curses.h.
* fixincl.x,, Rebuilt.
Tue Mar 30 20:51:40 1999 Mark Mitchell <>
* alias.c (alias_set_compare): Remove.
(record_alias_subset): Use splay_tree_compare_ints instead of
(init_alias_once): Likewise.
* cse.c: Include splay-tree.h.
(reg_qty): Remove.
(reg_tick): Likewise.
(reg_table): Likewise.
(cse_reg_info): New structure.
(cse_reg_info_free_list): New variable.
(cse_reg_info_tree): Likewise.
(cached_regno): Likewise.
(cached_cse_reg_info): Likewise.
(all_minus_one): Remove.
(consec_ints): Likewise.
(GET_CSE_REG_INFO): New macro.
(REG_TICK): Likewise. Use throughout instead of reg_tick.
(REG_IN_TABLE): Likewise. Use throughout instead of reg_in_table.
(REG_QTY): Likewise. Use throughout instead of reg_qty.
(get_cse_reg_info): New function.
(free_cse_reg_info): Likewise.
(new_basic_block): Reinitialize cse_reg_info_tree instead of
reg_tick, all_minus_one, and consec_ints.
* (cse.o): Depend on splay-tree.h
Tue Mar 30 13:19:36 1999 Jason Merrill <>
* libgcc2.c (throw_helper): Just return the SP offset, rather than
a whole udata. Include args_size in the offset.
(__throw, __rethrow): Adjust.
Tue Mar 30 11:39:27 1999 Craig Burley <>
* extend.texi (Extended Asm): Delete spurious `b' before
`@end example', which was confusing texi2html.
Tue Mar 30 00:26:34 1999 Jason Merrill <>
* dwarf2out.c (output_line_info): Don't emit redundant info.
Do start a new row if the file changes and the line # doesn't.
Mon Mar 29 15:48:39 1999 Jason Merrill <>
* invoke.texi (Invoking G++, C++ Dialect Options): Update.
Mon Mar 29 15:05:39 1999 Richard Henderson <>
* except.c (start_dynamic_handler): Force jmp_buf address to
and operand before moving to memory.
Mon Mar 29 15:11:10 1999 Craig Burley <>
* invoke.texi (Code Gen Options): Attempt to clarify
-fcheck-memory-usage. Minor edits to -fprefix-function-name.
Mon Mar 29 20:52:47 1999 J"orn Rennecke <>
* loop.c (maybe_eliminate_biv): For libcalls that set a giv, skip to
end of libcall.
Mon Mar 29 20:35:49 1999 J"orn Rennecke <>
* (mulsi3): Tag an extra REG_EQUAL note to the middle insn.
Mon Mar 29 11:50:34 1999 Jerry Quinn <>
* pa.h (HAVE_PRE_INCREMENT): Disable when optimizing for a PA8000
class machine.
Mon Mar 29 08:24:43 1999 Bruce Korb <>
* fixinc/ Fix portability problems with old shells.
* fixinc/README: Updated for release announcement
Sun Mar 28 20:26:55 1999 Kaveh R. Ghazi <>
* recog.h (insn_outfun, insn_operand_predicate): Add prototype
* rtl.h (note_stores): Likewise.
* rtlanal.c (note_stores): Likewise.
Sun Mar 28 15:34:28 1999 Richard Henderson <>
* varasm.c (output_constant_pool): Always mark the constant pool.
Sun Mar 28 16:09:01 1999 Jerry Quinn <>
* (pa7100LCshiftmem, pa7100LCalu): Change simultaneity. Use
shift/mem ops in pa7100LCalu.
* pa.c (pa_adjust_cost): Don't do cost adjustments on pa8000.
(pa_reorg): Don't call pa_combine_instructions on pa8000.
Sun Mar 28 15:27:26 1999 Jeffrey A Law (
* reload1.c (reload): Remove accidental code duplication.
Sun Mar 28 12:22:12 1999 Robert Lipe (
* i386/sysv5.h: New file to describe UnixWare7/SVR5.
* (i?86-UnixWare7*-sysv): Use it.
* i386/udk.h: Use sysv5.h. Now uses Dwarf-2.
Sun Mar 28 01:15:04 1999 Jeff Law (
* version.c: Bump for snapshot.
Sun Mar 28 00:44:27 1999 Jeffrey A Law (
* sdbout.c (sdbout_symbol): Do not call build_pointer_type, build
one on the fly and do not cache the result.
* gcc.cps, cpp.cps: Delete unwanted files.
Sat Mar 27 23:37:40 1999 John Wehle (
* (movdicc+3, movdicc+4): Rewrite using split_di.
* i386.c (output_int_conditional_move): Delete unused code.
Sat Mar 27 21:17:36 1999 David Edelsohn <>
* rs6000/{aix41.h,aix43.h} (ASM_CPU_SPEC): Add 604e.
Sat Mar 27 16:13:50 1999 Jeffrey A Law (
* flow.c (mark_used_regs): Improve handling of ASMs.
1999-03-26 Zack Weinberg <>
* (xcpp, cppspec.o): New targets.
(CPP_INSTALL_NAME): New macro.
(install-cpp): Install xcpp. Use CPP_INSTALL_NAME.
(, start.encap): Build xcpp.
* cppspec.c: New file, implements argument filtering for a
user-visible C preprocessor.
* Removed.
Fri Mar 26 20:41:46 1999 Jim Wilson <>
* (stmp-fixinc): Use tooldir instead of gcc_tooldir.
Fri Mar 26 16:02:37 1999 Nick Clifton <>
* (arm-*-vxworks*): Just include arm/vxarm.h.
* configure: Regenerate.
* config/arm/vxarm.h: Define SUBTARGET_CPU_DEFAULT before
including arm/coff.h
1999-02-16 Scott Bambrough <>
* (arm*-*-linux-gnu*): Set thread_file to 'posix' if
--enable-threads[={yes,pthreads,posix}] is passed as a command
line parameter to configure.
* configure: Regenerate.
* gcc/config/arm/t-linux (TARGET_LIBGCC2_CFLAGS): Include -fPIC.
Fri Mar 26 19:42:19 1999 J"orn Rennecke <>
* loop.c (combine_givs): Fix index into can_combine when doing
benefit adjustment for remaining givs when having combined a giv.
Fri Mar 26 11:38:01 1999 Nick Clifton <>
* config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Define.
Fri Mar 26 10:48:27 1999 Nick Clifton <>
* config/arm/linux-elf.h: Include dbxelf.h
Fri Mar 26 10:43:47 1999 Nick Clifton <>
* config/svr4.h: Include new header file dbxelf.h.
(DBX_DEBUGGING_INFO): Remove definition.
(DBX_USE_BINCL): Remove definition.
(ASM_IDENTIFY_GCC): Remove definition.
(ASM_OUTPUT_SOURCE_LINE): Remove definition.
(DBX_FUNCTION_FIRST): Remove definition.
* config/elfos.h: Include new header file dbxelf.h.
(DBX_DEBUGGING_INFO): Remove definition.
(ASM_IDENTIFY_GCC): Remove definition.
(ASM_OUTPUT_SOURCE_LINE): Remove definition.
(DBX_FUNCTION_FIRST): Remove definition.
* config/dbxelf.h: New header file.
(DBX_USE_BINCL): Define.
Fri Mar 26 01:59:15 1999 "Charles M. Hannum" <>
* fold-const.c (fold_truthop): Optimize bitfield references with
different masks as long as their size and bit position are the same.
* fold-const.c (fold_truthop): Build a type for both the lhs and
rhs and use it appropriately.
* fold-const.c (fold_truthop): Mask the lhs and rhs after merging
adjacent bitfield references.
* fold-const.c (fold_truthop): Verify that the lhs and rhs are
in the same bit position when optimizing bitfield references
which have the same mask.
Thu Mar 25 22:53:27 1999 Martin von Löwis <>
* gcc.texi (Copy Assignment): New node.
1999-03-25 Zack Weinberg <>
* gcc.c: Compile unconditionally all code formerly dependent
* gccspec.c: New file with stub lang_specific_driver,
* Link gccspec.o into xgcc. Add rule to compile
Thu Mar 25 21:08:02 1999 Jason Merrill <>
* gcc.texi (Temporaries): Update.
Thu Mar 25 16:53:53 1999 Richard Henderson <>
* combine.c (distribute_notes): Place REG_LABEL also where
REG_EQUAL indicates.
Thu Mar 25 12:46:37 1999 Jim Wilson <>
* a29k/a29k.h (TARGET_SWITCHES): Add doc strings.
* i960/i960.h (TARGET_SWITCHES): Add doc strings.
* invoke.texi (a29k): Add documentation for -mno-multm option.
Thu Mar 25 14:04:54 1999 Andrew MacLeod <>
* rtl.texi (RTX_FRAME_RELATED_P): Add documentation.
* rtl.h (struct rtx_def): Update comment for frame_related field.
(set_unique_reg_note): Declare prototype.
* dwarf2out.c (dwarf2out_frame_debug_expr): Split out from
'dwarf2out_frame_debug' to handle only expressions, and process
component parts of a PARALLEL expression.
(dwarf2out_frame_debug): Process insns only, and call
new function 'dwarf2out_frame_debug_expr' for patterns.
* emit-rtl.c (set_unique_reg_note): New function to add a reg note,
but if there is an existing one, delete it first.
* expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note.
* optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note.
(emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note.
(expand_fix): Use set_unique_reg_note.
Thu Mar 25 11:47:49 1999 Art Haas <>
* tlink.c (symbol_hash_newfunc): Remove redundant call to
(file_hash_newfunc, demangled_hash_newfunc): Likewise.
Thu Mar 25 10:05:56 1999 Richard Henderson <>
* i386.h (PREFERRED_STACK_BOUNDARY): Set to 128.
1999-03-25 Philip Blundell <>
Based on patch from Jim Studt <>:
* config/arm/linux-elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Copy
definitions from config/linux.h.
Thu Mar 25 02:12:42 1999 Finn Hakansson <>
* loop.c (strength_reduce): Correct a comment.
* rtl.h (MEM_COPY_ATTRIBUTES): Remove unnecessary ending backslash.
Thu Mar 25 02:02:13 1999 Axel Thimm <>
* (RANLIB_TEST): Improve test.
Thu Mar 25 01:15:33 1999 Donn Terry <>
* combine.c (force_to_mode, case PLUS): Use sign extended mask
when masking the low bits out of a constant.
Tue Mar 23 15:45:25 1999 Richard Earnshaw (
Jeff Law <>
* fold-const.c (make_range): If orig_type is unset, set it as soon
as we know the type. Remove now unnecessary set of orig_type for
Wed Mar 24 23:27:25 1999 Mark Elbrecht <>
Jeff Law <>
* system.h (STDIN_FILENO): Provide default definition if one is not
provided by the system header files.
* i386/xm-djgpp.h (COLLECT2_HOST_INITIALIZATION): New macro.
* collect2.c (main): Use it.
(pexecute_pid): New variable. Holds return value from call to pexecute.
(collect2_execute): Rework to use pexecute instead of fork.
(collect2_wait): Use pwait() instead of wait().
* i386/djgpp.h: Fix typo.
Wed Mar 24 23:24:30 1999 Jeffrey A Law (
* fixinc/ Recognize cygwin* instead of only
Wed Mar 24 15:44:12 1999 Nick Clifton <>
* config/m32r/m32r.c (init_idents): Accept both NAME and __NAME__
versions of attribute names and values.
(m32r_valid_machine_decl_attribute): Likewise.
(m32r_encode_section_info): Likewise.
Wed Mar 24 21:42:15 1999 J"orn Rennecke <>
* reload1.c (choose_reload_regs): If output-reloading for a
simple move insn, try to inherit an equivalence for the input.
1999-02-24 Mike Stump <>
* arm/aout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Fix quoting.
1999-03-24 Jim Blandy <>
* libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Initialize on all
Wed Mar 24 01:35:01 1999 Geoff Keating <>
* fold-const.c (fold): Recognize a rotate by an unsigned amount.
Tue Mar 23 23:32:14 1999 Jeffrey A Law (
* (rotlsi3): New expander. Synthesize a variable rotate
left using a variable rotate right. Provide anonymous pattern for
rotate left by a constant value.
* expr.c (expand_assignment): Do not try to optimize an aggregate
address which has VOIDmode.
Tue Mar 23 22:51:48 1999 Mumit Khan <>
Donn Terry <>
* protoize.c (abspath): Preserve multiple leading slashes for
_WIN32 and Interix.
1999-01-23 Mike Stump <>
* arm/vxarm.h: Split out vxWorks support into separate headerfile
and vxify.
* arm/arm.c (cpu_defaults): Allow arm710 as default.
* Split out vxWorks support for Arm.
* configure: Rebuilt.
Tue Mar 23 11:20:03 1999 Per Bothner <>
* tree.c (first_rtl_op, has_cleanups): Handle GOTO_SUBROUTINE_EXPR.
Tue Mar 23 09:00:39 1999 Nick Clifton <>
* config/arm/riscix1.h (SUBTARGET_SWITCHES): Add doc string.
* config/arm/riscix1-1.h (SUBTARGET_SWITCHES): Add doc string.
Tue Mar 23 07:50:20 1999 Mark Mitchell <>
* function.c: Include hash.h.
(insns_for_mem_entry): New struct.
(put_reg_into_stack): Take an optional hash-table mapping MEMs to
the INSNs that use them.
(fixup_var_refs): Likewise.
(put_addressof_into_stack): Likewise.
(purge_addressof_1): Likewise. Keep the hash-table up to date if
we add new instructions.
(fixup_var_refs_insns): Use it to avoid searching the entire
instruction chain.
(insns_for_mem_newfunc): New function.
(insns_for_mem_comp): Likewise.
(insns_for_mem_walk): Likewise.
(compute_insns_for_mem): Likewise.
(pop_function_context_from): Pass NULL for the hash-table.
(put_var_into_stack): Likewise.
(gen_mem_addressof): Likewise.
(flush_addressof): Likewise.
(purge_addressof): Call compute_insns_for_mem to pre-compute the
hash table.
* (OBJS): Include hash.o.
(function.o): Depend on hash.h.
Tue Mar 23 00:39:14 1999 Jeffrey A Law (
* i386/openbsd.h (TARGET_DEFAULT): Use symbolic names instead of
* i386/netbsd.h, i386/freebsd.h: Likewise.
* crtstuff.c: Use ANSI function definitions. Fix minor whitespace
* i386/openbsd.h (TARGET_DEFAULT): Define.
* Do not set TARGET_CPU_DEFAULT for x86 OpenBSD
* configure: Rebuilt.
Tue Mar 23 00:39:10 1999 John Wehle (
* i386/freebsd.h (TARGET_DEFAULT): Define instead
* i386/netbsd.h (TARGET_DEFAULT): Likewise.
Mon Mar 22 23:52:01 1999 Mumit Khan <>
Donn Terry <>
* sdbout.c (syms.h): Don't include on Interix.
* toplev.c (main): No sbrk on Interix.
* Add i386-pc-interix support.
* configure: Regenerate.
* fixinc.interix: New file.
* config/interix.h: New file.
* config/x-interix: New file.
* config/xm-interix.h: New file.
* i386/interix.h: New file.
* i386/interix.c: New file.
* i386/t-interix: New file.
Mon Mar 22 23:41:49 1999 Jeffrey A Law (
Mon Mar 22 23:41:31 1999 John Wehle (
* i386.c (ix86_compute_frame_size): New function.
(ix86_prologue, ix86_epilogue): Use it.
* reload1.c: Provide default for PREFERRED_STACK_BOUNDARY.
Mon Mar 22 18:06:59 1999 Jim Wilson <>
* mips/mips.h (TARGET_SWITCHES, TARGET_OPTIONS): Add option doc
* mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Likewise.
Mon Mar 22 16:18:27 1999 Nick Clifton <>
* config/arm/elf.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother
passing ATTRIBUTES to arm_valid_machine_decl_attribute.
* config/arm/coff.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother
passing ATTRIBUTES to arm_valid_machine_decl_attribute.
* config/arm/arm.h (DEFAULT_RTX_COSTS): Do not bother passing
OUTER_CODE to arm_rtx_costs - it is not used.
(arm_compare_fp): Delete declaration.
(FINAL_PRESCAN_INSN): Do not bother passing OPVEC or NOPERANDS to
arm_final_prescan_insn - they are not used.
(const_ok_for_op): Remove prototype.
(arm_rtx_costs): Fix prototype.
(arm_valid_machine_decl_attribute): Fix prototype.
(final_prescan_insn): Fix prototype.
* config/arm/ Remove references to arm_compare_fp.
* config/arm/arm.c (arm_compare_fp): Delete.
(const_ok_for_op): Make function static. Add prototype. Remove
mode parameter - it is unused.
(arm_rtx_costs): Remove outer_code parameter.
(reload_memory_operand): Declare mode parameter unused.
(power_of_two_operand): Declare mode parameter unused.
(equality_operator): Declare mode parameter unused.
(load_multiple_operation): Declare mode parameter unused.
(store_multiple_operation): Declare mode parameter unused.
(multi_register_push): Declare mode parameter unused.
(arm_valid_machine_decl_attribute): Remove attributes parameter -
it is unused.
(select_dominance_cc_mode): Remove op parameter - it is unused.
(gen_compare_reg): Remove fp parameter - it is unused.
(final_prescan_insn): Remove opvec and noperands parameters - they
are unused.
Mon Mar 22 14:35:28 1999 Nick Clifton <>
* tm.texi (MD_SCHED_INIT): Add missing closing parenthesis.
Mon Mar 22 22:24:30 1999 J"orn Rennecke <>
* reload1.c (reload_as_needed): Set reload_is_output_reload /
reload_has_output_reload for auto_inc expressions that could be
reloaded. Call forget_old_reloads for REG_INC notes.
Mon Mar 22 21:51:57 1999 J"orn Rennecke <>
* cse.c (cse_insn): Don't change the result register of a libcall.
Mon Mar 22 21:08:59 1999 J"orn Rennecke <>
* rtl.h (shallow_copy_rtx): Declare.
* rtl.c (shallow_copy_rtx): New function.
* reload.c (find_reloads_toplev): Use shallow_copy_rtx instead of
Mon Mar 22 10:44:33 1999 Vladimir Makarov <>
* config/h8300/ (adjust_length): New attribute.
(modhi3+1, andsi3+1, iorsi3+1, extzv+1, extzv+2): Change insn
default value of attribute "adjust_length" onto "no".
* config/h8300/h8300.c (h8300_adjust_insn_length): Adjust
length only if the attribute "adjust_length" value is "yes".
Use 0 if the shift is negative.
* final.c (shorten_branches): Check insn length after its
Sun Mar 21 17:33:48 1999 Jeffrey A Law (
* i860.h (TARGET_SWITCHES): Add documentation for default case.
* i860/paragon.h (TARGET_SWITCHES): Add documentation for default case.
* i370.h (TARGET_SWITCHES): Add documentation for default case.
* fx80.h (TARGET_SWITCHES): Add documentation for default case.
* elxsi.h (TARGET_SWITCHES): Add documentation for default case.
* clipper.h (TARGET_SWITCHES): Add documentation for default case.
* 1750a.h (TARGET_SWITCHES): Add documentation for default case.
* pa.h (TARGET_SWITCHES): Add documentation for default case.
(TARGET_OPTIONS): Likewise for default case.
* mn10300.h (TARGET_SWITCHES): Add documentation for default case.
* h8300.h (TARGET_SWITCHES): Add documentation for default case.
* gcse.c (dump_hash_table): Fix whitespace in declaration.
(compute_transpout): Renamed from pre_compute_transpout.
(compute_pre_*): Deleted.
(pre_expr_reaches_here_p): New argument, CHECK_PRE_COMP. All
callers changed.
(insert_insn_end_bb): Renamed from pre_insert_insn.
(pre_*): Delete unused variables. Only leave local properties and
global redundant/optimal computation points.
(alloc_pre_mem, free_pre_mem): Corresponding changes.
(compute_pre_data): Simplify and call pre_lcm to run the lazy
code motion dataflow analysis.
(pre_insert, pre_insert_copies, pre_delete): Revamp to use LCM
based redundant and optimal computation points.
* basic-block.h (pre_lcm, pre_rev_lcm): Declare.
* toplev.c (main): A debug option without a level defaults to
level 2.
Sun Mar 21 12:13:01 1999 Nick Clifton <>
* flow.c (can_delete_label_p): Do not allow user specified
labels to be deleted.
* dwarf2out.c (gen_label_die): Generate addresses for deleted
(programmer specified) labels.
* dwarfout.c (output_label_die): Generate addresses for deleted
(programmer specified) labels.
1999-03-21 Manfred Hollstein <>
* (xgcc$(exeext)): Add intl.o to list of files to be
linked with.
Sun Mar 21 01:15:03 1999 Jeff Law (
* version.c: Bump for snapshot.
Sat Mar 20 22:26:23 1999 Kaveh R. Ghazi <>
* sparc.h (TARGET_SWITCHES): Add null description to default case.
Sat Mar 20 21:46:06 1999 Kaveh R. Ghazi <>
* c-lex.c (yylex): Remove unused variable `bytes'.
* flow.c (print_rtl_with_bb): Cast the return value of alloca.
* function.c (assign_parms): Wrap variable `varargs_setup' in
(thread_prologue_and_epilogue_insns): Mark parameter `f' with
* local-alloc.c (no_equiv): Likewise for parameter `store'.
* sched.c (schedule_insns): Remove unused variables `insn' and `next'.
* tlink.c (symbol_hash_newfunc, symbol_hash_lookup,
file_hash_newfunc, file_hash_lookup, demangled_hash_newfunc,
demangled_hash_lookup, symbol_push, symbol_pop, file_push,
file_pop, tlink_init, tlink_execute, frob_extension,
obstack_fgets, tfgets, pfgets, freadsym, read_repo_file,
maybe_tweak, recompile_files, read_repo_files,
demangle_new_symbols, scan_linker_output): Add static prototype.
(symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc):
Make the third argument a `hash_table_key'.
* toplev.c (debug_start_source_file): Mark parameter `filename'
Sun Mar 21 02:28:21 1999 Andreas Schwab <>
* tm.texi (Varargs): Don't split argument of @item across lines.
* invoke.texi: Fix use of @item vs @itemx.
Sun Mar 21 09:59:54 1999 Michael Hayes <>
* config/c4x/c4x.h (TARGET_SWITCHES): Add null description to
default case.
Sat Mar 20 23:33:54 1999 Michael Hayes <>
* loop.c (check_dbra_loop): Fix debug message.
Sat Mar 20 15:54:35 1999 Michael Hayes <>
* config/c4x/ (decrement_and_branch_on_count): Emit rptb_end
pattern instead of decrement_and_branch_until_zero pattern.
Sat Mar 20 11:39:58 1999 Michael Hayes <>
* config/c4x/c4x.h (TARGET_SWITCHES): Add documentation.
* config/c4x/c4x.h (TARGET_OPTIONS): Add documentation.
Fri Mar 19 23:26:29 1999 Martin von Löwis <>
* expr.c (expand_expr): Handle ERROR_MARK much earlier.
Fri Mar 19 15:28:38 1999 Kaveh R. Ghazi <>
* cccp.c (create_definition): Cast to U_CHAR* when assigning to one.
* cppfiles.c (read_and_prescan): Likewise.
Start a #define in column 0.
* cpplib.c (cpp_define): Cast to U_CHAR* when assigning to one.
(cpp_push_buffer): Likewise for cpp_buffer*.
(do_include): Change the type of `fbeg' and `fend' to unsigned char*.
(do_endif): Cast to char* when assigning to one.
(do_assert): Likewise.
(do_unassert): Likewise.
(cpp_read_check_assertion): Change the type of `name' to U_CHAR*.
Don't do unnecessary cast to char* anymore.
* genrecog.c (make_insn_sequence): Cast to char** when assigning
to one. Cast the first argument of bzero to PTR.
* loop.c (strength_reduce): Remove unused variable `note'.
* reload1.c (new_insn_chain): Cast to struct insn_chain* when
assigning to one.
* rtl.c (copy_rtx): Use memcpy instead of bcopy.
Fri Mar 19 11:19:31 1999 Kaveh R. Ghazi <>
* calls.c (initialize_argument_information): Mark parameters
`num_actuals' and `n_named_args' with ATTRIBUTE_UNUSED.
* dbxout.c (dbxout_start_new_source_file): Likewise for parameter
(dbxout_finish): Likewise for parameters `file' and `filename'.
(dbxout_prepare_symbol): Likewise for parameter `decl'.
(dbxout_begin_function): Likewise.
* explow.c (hard_function_value): Likewise for parameter `func'.
* function.c (locate_and_pad_parm): Likewise for parameter `fndecl'.
* expmed.c (expand_divmod): Omit unused argument to `expand_abs'.
* expr.c (expand_expr): Likewise.
* expr.h (expand_abs): Delete unused argument from prototype.
* optabs.c (expand_abs): Remove unused parameter `unsignedp'.
* sdbout.c (sdbout_init): Mark parameter `syms' with ATTRIBUTE_UNUSED.
(sdbout_end_block): Likewise for parameter `n'.
* toplev.c (debug_define): Likewise for parameters `lineno' and
(debug_undef): Likewise.
* varasm.c (named_section): Likewise for parameter 'reloc'.
(assemble_external): Likewise for parameter `decl'.
(assemble_alias): Likewise for parameter `target'.
Fri Mar 19 01:54:30 1999 Theodore Papadopoulo <>
* toplev.c (read_integral_parameter): Constify. Better control of
error messages.
(main): Use read_integral_parameter to set optimize, id_clash_len,
larger_than_size, and the debugging level.
* toplev.h (read_integral_parameter): Update prototype.
Fri Mar 19 01:42:05 1999 Zack Weinberg <>
* system.h: Use putc_unlocked, fputc_unlocked, and
fputs_unlocked only if putc_unlocked has a prototype already.
Prototype fputs_unlocked if necessary.
* Check for prototypes of putc_unlocked and
* acconfig.h: Updated.
*, configure: Rebuilt.
Fri Mar 19 02:45:12 1999 Alexandre Oliva <>
* (INTL_TARGETS): New macro.
($(INTL_TARGETS)): Depend on generated sources; drop dependencies
on cp/parse.c and objc/objc-parse.c.
($(srcdir)/cp/parse.c): Move to cp/
* objc/ ($(INTL_TARGETS)): Depend on objc/objc-parse.c.
Thu Mar 18 22:28:53 1999 Jeffrey A Law (
* i860.h (TARGET_SWITCHES): Add documentation.
* i860/paragon.h (TARGET_SWITCHES): Add documentation.
* i370.h (TARGET_SWITCHES): Add documentation.
* fx80.h (TARGET_SWITCHES): Add documentation.
* elxsi.h (TARGET_SWITCHES): Add documentation.
* clipper.h (TARGET_SWITCHES): Add documentation.
* 1750a.h (TARGET_SWITCHES): Add documentation.
* pa.h (TARGET_SWITCHES): Add documentation.
* mn10300.h (TARGET_SWITCHES): Add documentation.
* h8300.h (TARGET_SWITCHES): Add documentation.
Thu Mar 18 15:58:26 1999 Nick Clifton <>
* loop.c (strength_reduce): Do not perform pseudo replacements
if the loop contains volatile memory references.
Thu Mar 18 19:09:50 1999 J"orn Rennecke <>
* reload.c (find_reloads_toplev): When processing X recursively,
don't alter it destructively except by filling in constants.
Thu Mar 18 10:14:18 1999 Kaveh R. Ghazi <>
* cccp.c (default_include): Initialize structure members.
(pass_thru_directive): Change the type of 'keyword_length' to int.
(main): Cast `bindtextdomain' and `textdomain' to (void).
* collect2.c (main): Likewise.
* cppmain.c (main): Likewise.
* gcc.c (main): Likewise.
* gcov.c (main): Likewise.
* protoize.c (main): Likewise.
* toplev.c (main): Likewise.
1999-03-18 Gavin Romig-Koch <>
* config/mips/mips.c (mips_explicit_type_size_string): Correct
its type.
Thu Mar 18 01:24:25 1999 Jeffrey A Law (
* Use "exit 1", not "exit (1)".
* configure: Rebuilt.
Wed Mar 17 23:17:42 1999 Mark Kettenis <>
* config/t-gnu (SYSTEM_HEADER_DIR): New variable. Set to
`/include' in order to find the system's limits.h.
Wed Mar 17 23:00:18 1999 Robert Lipe <>
* fixinc/fixincl.c: Include auto-host.h instead of config.h.
* fixinc/procopen.c: Likewise.
* fixinc/regex.c: Likewise.
* fixinc/server.c: Likewise.
Wed Mar 17 22:46:13 1999 Mark Elbrecht <
* config/i386/go32.h: Delete.
* config/i386/djgpp.h: New. Renamed from go32.h.
* config/i386/go32-rtems.h: Delete.
* config/i386/djgpp-rtems.h: New. Renamed from go32-rtems.h.
* config/i386/xm-go32.h: Delete.
* config/i386/xm-djgpp.h: New. Renamed from xm-go32.h.
* config/i386/x-go32: Delete.
* config/i386/x-djgpp: New. Renamed from x-go32.
* config/i386/t-go32: Delete.
* config/i386/t-djgpp: New. Renamed from t-go32.
* Set xm_file to i386/xm-djgpp.h.
Set tm_file to i386/djgpp.h. Set tmake_file to i386/t-djgpp.
Set xmake_file to i386/x-djgpp.
(*-go32-msdos, *-go32*): Remove entries. Warn that GO32/DJGPP V1.X
is now unsupported and *-pc-msdosdjgpp for DJGPP V2.X should be
used instead.
* configure: Rebuilt.
* gcc.c (process_command): Dump link_command_spec too.
Wed Mar 17 20:38:08 1999 Jerry Quinn <>
Jeff Law <>
* Add real PA8000 scheduling information.
* pa.h (processor_type): Add PROCESSOR_8000 symbol.
(ISSUE_RATE): Revamp, including PA8000 support.
* pa.c (override_options): Add 8000 as -mschedule= option.
Do not call strcmp if pa_cpu_string is null.
* (attr cpu): Add 8000.
* invoke.texi: Add documentation for PA8000 scheduling.
Wed Mar 17 18:20:24 1999 David S. Miller <>
* config/sparc/sparc.h (TARGET_SWITCHES, TARGET_OPTIONS):
Add descriptions.
* config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
* config/sparc/splet.h (SUBTARGET_SWITCHES): Likewise.
Wed Mar 17 14:51:19 1999 Richard Henderson <>
* flow.c (compute_immediate_dominators): New function.
* basic-block.h (compute_immediate_dominators): Declare it.
* alpha.h (HARD_REGNO_MODE_OK): Allow only 4 and 8 byte unit modes
in FP regs.
(MODES_TIEABLE_P): Define asymmetricly wrt modes illegal in FP regs.
Wed Mar 17 14:41:41 1999 Nick Clifton <>
* config/arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Fix compile
time warning.
* config/arm/ Fix various compile time warnings.
* config/arm/arm.h: Fix various compile time warnings. Add
function prototypes.
* config/arm/arm.c: Fix various compile time warnings.
(arm_override_options): Reorganize to separate tuning from
(bit_count): New function: Return a count of the number of bits
set in a word.
Wed Mar 17 21:29:12 1999 J"orn Rennecke <>
* reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for
things that were eliminated.
Wed Mar 17 12:16:26 1999 Richard Henderson <>
* function.c (fixup_var_refs_1): First try moving the expression
directly into a register. Don't separate cc0 setter and user.
Wed Mar 17 11:20:29 1999 Dave Brolley <>
* cppfiles.c (PIPE_BUF): #define PIPE_BUF if not defined already.
Wed Mar 17 09:25:06 1999 Kaveh R. Ghazi <>
* c-lex.c: Don't include setjmp.h.
(parse_float): New static function.
(pf_args): New struct.
(yylex): Use them in call to `do_float_handler'.
1999-03-16 Andreas Schwab <>
* cexp.y (yyerror): Call verror to get a useful error message.
* cexp.c: Rebuilt.
* .gdbinit: Move command to put breakpoint at abort to end of file
so that gdb does not bail out early.
Tue Mar 16 15:30:19 1999 Nick Clifton <>
* rtl.h: Rename prototype for free_bb_memory to free_bb_mem.
Tue Mar 16 23:40:09 1999 J"orn Rennecke <>
* (movsi_i): Move t/r alternative after r/rI alternative.
Tue Mar 16 13:44:50 1999 Jim Wilson <>
* mn10200/ (addsi3, subsi3, ashlsi3, lshrsi3, ashrsi3):
Delete emit_library_call_value declaration.
1999-03-16 Zack Weinberg <>
* cppfiles.c (read_and_prescan): Map backslash-newline to '\r'
(which cannot otherwise appear in the processed buffer) and
move it out of tokens that it appears in the middle of.
Improve performance.
(find_position): New function.
* cpplib.c: \r (one character) indicates backslash
newline, not \\\n (two characters). It cannot appear in the
middle of a token. Call CPP_BUMP_LINE (pfile) whenever
parsing moves past \n or \r. Increment pfile->lineno whenever
a \n is placed into token_buffer. Only one mark can exist at
a time, and CPP_BUMP_LINE must not be used while it is
active. It is automatically cleared by cpp_pop_buffer and
parse_goto_mark. \r is not in is_hor_space or is_space.
(NEWLINE_FIX, NEWLINE_FIX1, adjust_position,
update_position, count_newlines, parse_move_mark): Removed.
(parse_string, copy_comment): New functions.
(parse_name): Returns void.
(parse_set_mark, parse_clear_mark, parse_goto_mark): Take only
one argument, a cpp_reader *. Change for new marking scheme.
(skip_comment): Handle CHILL line comments too. Second
argument is now first character of comment marker; all callers
changed. Issue error for unterminated block comment here.
(cpp_skip_hspace): Recognize CHILL comments.
(copy_rest_of_line): Likewise. Call skip_comment and
parse_string directly, don't go through cpp_get_token. Emit
"/**/" for block comments if -traditional (create_definition
needs this).
(do_define): Don't play with put_out_comments.
(cpp_push_buffer): Initialize ->mark to -1.
(cpp_buf_line_and_col): Just read out the values in the buffer
(output_line_command): Use cpp_buf_line_and_col. Fix
formatting. Remove stale code.
(cpp_get_token): Break out string parsing code to
parse_string. Use skip_comment for CHILL comments too. Use
copy_comment for put_out_comments instead of dinking with
marks. Remove stale code. Don't call output_line_command
unless it's necessary.
* cpplib.h (parse_marker): Removed.
(struct cpp_buffer): Line_base is now a unsigned char *; add
`mark' [long], remove `marks' [struct parse_marker *].
(parse_set_mark, parse_clear_mark, parse_goto_mark): Update
* cppinit.c (is_hor_space, is_space): '\r' is not considered
* cppexp.c (cpp_parse_expression): Use cpp_skip_hspace, not
* cpphash.c (macarg): Disable line commands while expanding.
Tue Mar 16 11:30:19 1999 Gavin Romig-Koch <>
* c-lex.c (yylex) : Remove warning for integer literals being
larger than the largest target int. Add warning for integer
literal being larger than than its chosen type.
Tue Mar 16 10:53:17 1999 Gavin Romig-Koch <>
* invoke.texi: Add -mlong32 documentation.
* config/mips/mips.h (mips_explicit_type_size_string): New.
(TARGET_SWITCHES): Add 'long32'.
(TARGET_OPTIONS): Add 'explicit-type-size'.
(CC1_SPECS): Set -mexplicit-type-size.
(LONG_MAX_SPEC): Change a use of 'no-long64' to 'long32'.
* config/mips/abi64.h (LONG_MAX_SPEC): Same. Add 'mabi=32'.
* config/mips/mips.c (mips_explicit_type_size_string): New.
(override_options): Use it.
* config/mips/osfrose.h (CC1_SPECS): Set -mexplicit-type-size.
* config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC):
Pointer size now depends on both size longs and size of GP
Tue Mar 16 10:22:22 1999 Gavin Romig-Koch <>
dtors_section): Use Pmode == DImode rather than TARGET_LONG64.
* config/mips/mips.c (override_options): Allow -mlong64 and
-mint64 with -mips2 or less.
* config/mips/mips.h (MASK_LONG64): Fix comment.
(POINTER_SIZE): Use Pmode == DImode rather than TARGET_LONG64.
(Pmode): Make Pmode the smaller of longs or gp registers.
* invoke.texi: Note the new size for pointers.
Mon Mar 15 22:45:25 1999 David Edelsohn <>
* rs6000.h (ASM_OUTPUT_{DOUBLE,FLOAT}): Always generate IEEE 754
bit-pattern directly.
* rs6000.c (first_reg_to_save): If profiling and context needed,
allocate a reg to save static chain for all ABIs. For AIX
profiling, calculate parameter registers to save based on need.
(output_function_profiler): Save and restore static chain around
profile call for all ABIs.
1999-03-15 Zack Weinberg <>
* cppinit.c: Instead of one pending list, keep separate lists
for each category of pending option: -D/-U, -A, -include,
-imacros. Move the four partial include-path lists into the
pending block. Use head and tail pointers so we don't ever
have to reverse the lists.
(cpp_start_read): Break out blocks of code to their own
functions: install_predefs and initialize_dependency_output.
Use path_include for C_INCLUDE_PATH and friends as well as
CPATH. Remove include_defaults gunk. Warn about the
combination of -lang-chill and -trigraphs. Optimize string
bashing. Walk each pending list once, deallocating as we go.
(append_include_chain): Brought over from cppfiles.c. Mark
dirs as system include dirs if and only if appending to
system include path. If opts->verbose, print a notice when a
dir is dropped from the include path because it doesn't
exist. Fix memory leak: this function is not supposed to copy
its DIR argument.
(nreverse_pending, push_pending): Removed.
(APPEND): New macro for adding to pending lists.
(path_include): Can now add to any partial include path.
(base_name): Bring over from cccp.c.
(cpp_options_init): Allocate the pending block.
(cpp_handle_option): Add --version. Exit after --help. Fix
formatting. Order -ifoo options by frequency of usage.
(install_predefs): New function, simplified version of code
that was in cpp_start_read.
(initialize_dependency_output): Likewise. Understand OBJECT_SUFFIX.
* cppfiles.c (simplify_pathname): Export.
(merge_include_chains): Don't nreverse the lists. If
opts->verbose, print a notice when a duplicate dir is detected
and dropped from the include path.
(finclude): Fix excessive cleverness in setting
(actual_directory): Set x->sysp from
CPP_BUFFER (pfile)->system_header_p so that one system header
may include another with "".
(deps_output): Fix double adjustment of deps_size which would
cause all dependencies after the first two lines to be lost.
* cpplib.c (cpp_unassert): New function.
* cpplib.h: Lay out struct cpp_pending here. Adjust
prototypes. Add include_prefix_len to struct cpp_options.
Mon Mar 15 16:01:52 1999 Jim Wilson <>
* config/misp/mips.h (REGISTER_MOVE_COST): Make the cost of moving
from HI/LO/HILO/MD into general registers the same as for one
of moving general registers to HI/LO/HILO/MD.
Mon Mar 15 12:39:38 1999 Nick Clifton <>
* config/m32r/m32r.c (init_idents): New function. Initialize
static tree nodes for m32r specific attribute identifiers. Remove
leading and trailing double underscores from the attribute names.
(m32r_valid_machine_decl_attribute): Call init_idents.
(m32r_encode_section_info): Call init_idents.
Mon Mar 15 10:20:20 1999 Mark Mitchell <>
* reload.c (find_reloads): Add a REG_LABEL note if we substitute a
LABEL_REF for something else.
Mon Mar 15 08:24:17 1999 Kaveh R. Ghazi <>
* fold-const.c (exact_real_inverse): Move variable `float_error'
into the scope where it is used.
(const_binop_1): New static function.
(cb_args): New struct.
(const_binop): Use them in call to `do_float_handler'.
(fold_convert_1): New static function.
(fc_args): New struct.
(fold_convert): Use them in call to `do_float_handler'.
Mon Mar 15 22:50:18 1999 Michael Hayes <>
* rtlanal.c (auto_inc_p): New function.
* rtl.h (auto_inc_p): Prototype it.
* reload1.c (add_auto_inc_notes): New function.
(reload): Strip REG_INC notes and call add_auto_inc_notes
for each insn to restore them correctly.
1999-03-15 Manfred Hollstein <>
* fixinc/ (procopen.o): List the actual
Sun Mar 14 16:22:10 1999 Kaveh R. Ghazi <>
* cse.c (check_fold_consts): New static function.
(cfc_args): New struct.
(simplify_relational_operation): Use them in call to
* toplev.c (do_float_handler): New function to wrap calls to
* toplev.h (do_float_handler): Add extern prototype.
* tree.c (build_real_from_int_cst_1): New static function.
(brfic_args): New struct.
(build_real_from_int_cst): Use them in call to
Sun Mar 14 01:15:06 1999 Jeff Law (
* version.c: Bump for snapshot.
Sat Mar 13 17:37:18 1999 Richard Henderson <>
* haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET.
Sat Mar 13 11:36:16 1999 Richard Earnshaw (
* arm.c (arm_split_constant): Don't try to force a constant to
memory after arm_reorg has run.
(after_arm_reorg): New static variable.
(arm_reorg): Set it.
(output_func_epilogue): Clear it.
Fri Mar 12 20:26:32 1999 David Edelsohn <>
* ({rs6000,powerpc}-ibm-aix*): Set float_format to none.
* configure: Rebuilt.
Fri Mar 12 20:45:30 1999 J"orn Rennecke <>
* unroll.c (loop_iterations): Don't return a final value for EQ
comparison loops.
Fri Mar 12 12:35:01 1999 Jim Wilson <>
* reload1.c (calculate_needs_all_insns): When ignore equivalence
setting insn, clear need_elim, need_reload, and need_operand_change.
Fri Mar 12 07:54:43 1999 Bruce Korb <>
* fixinc/fixinc.*: Some changes from the fixincl-branch
were not applied (??!!). Corrected.
* fixinc/ Same thing.
Fri Mar 12 00:51:43 1999 Jeffrey A Law (
* expr.c (expand_expr): Allow a CALL_EXPR with a mode wider than
Thu Mar 11 14:00:58 1999 Richard Henderson <>
* alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs.
* (ev5_e0): Conflict loads and stores.
Thu Mar 11 13:55:52 1999 Richard Henderson <>
* machmode.h (smallest_mode_for_size): Prototype.
* stor-layout.c (smallest_mode_for_size): Remove static.
Thu Mar 11 21:25:59 1999 J"orn Rennecke <>
* loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv
conversion if we don't know the lifetime.
Thu Mar 11 20:37:59 1999 J"orn Rennecke <>
* reload.1c (delete_address_reloads_1): Check for reloads of
CURRENT_INSN even if it sets DST.
Thu Mar 11 10:29:50 1999 Jason Merrill <>
* dwarf2out.c (add_AT_lbl_offset): Rename from add_AT_section_offset.
(print_die, size_of_die, value_format, output_die): Adjust.
Thu Mar 11 10:27:42 1999 Robert Lipe <>
text_section_label, debug_line_section_label,
debug_info_section_label, abbrev_section_label): New.
(output_compilation_unit_header): Emit label associated
with section instead of section name itself.
(out_pubnames, output_aranges, output_line_info,
dwarf2out_finish): Likewise.
(dwarf2out_init): Build internal label names for sections
from static labels.
Thu Mar 11 17:28:32 1999 J"orn Rennecke <>
* (mulsi3): End mul.l sequence with a no-op move.
Thu Mar 11 08:52:02 1999 Bruce Korb <>
* Activated fixinc/
* Activated fixinc/
Thu Mar 11 01:38:02 1999 Mumit Khan <>
* cppfiles.c (INO_T_EQ): Handle UWIN.
* c-common.c (decl_attributes): Flag unrecognized attribute
functions as warnings instead of as errors.
Support for i386-pc-uwin.
* i386/uwin.h: New file.
* i386/xm-uwin.h: New file.
* i386/t-uwin: New file.
* i386/uwin.asm: New file.
* (i[3456]86-*-uwin*): Define.
Add Workaround for vfork bug when hosted on uwin.
* configure: Regenerate.
* cccp.c (INO_T_EQ): Undefine. UWIN has inodes.
(absolute_filename): UWIN uses POSIX pathnames only.
* libgcc2.c (getpagesize): Do not define for UWIN.
(mprotect): Likewise.
* protoize.c (dirent.h): Conditionally include.
(fputc): Prototype only if it's not a macro.
Wed Mar 10 02:49:04 1999 Jason Merrill <>
* Remove init_priority stuff.
1999-03-11 Colin Smith <>
* sdbout.c (plain_type_1): Make boolean types work better with sdb.
Thu Mar 11 00:20:52 1999 Alexandre Oliva <>
* gcc.texi: Update bug reporting instructions to match
current ezmlm list reality.
Wed Mar 10 23:11:19 1999 Kaveh R. Ghazi <>
* gcc.c (print_file_name, print_prog_name, spec_machine,
read_specs, set_spec, lookup_compiler, build_search_list,
putenv_from_prefixes, find_a_file, record_temp_file,
delete_if_ordinary, handle_braces, do_spec, do_spec_1, find_file,
is_directory, validate_switches, used_arg, default_arg,
pfatal_with_name, perror_with_name, pfatal_pexecute, fatal, error,
notice, add_preprocessor_option, add_assembler_option,
add_linker_option, process_command, execute,
unused_prefix_warnings, clear_args, fatal_error,
lang_specific_driver, user_specs, compiler, link_command_spec,
option_map, translate_options, make_temp_file, temp_name,
programname, path_prefix, machine_suffix, just_machine_suffix,
gcc_exec_prefix, standard_exec_prefix, standard_exec_prefix_1,
md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1,
standard_startfile_prefix, standard_startfile_prefix_1,
standard_startfile_prefix_2, tooldir_base_prefix, tooldir_prefix,
multilib_dir, temp_filename, temp_file, command, switchstr,
infile, outfiles, input_filename, input_basename, input_suffix,
check_live_switch, main): Qualify a char* with the `const' keyword.
Wed Mar 10 20:28:29 1999 Jeffrey A Law (
* lcm.c: New file.
* (OBJS): Add lcm.o.
(lcm.o): Add dependencies.
* gcse.c (compute_pre_local_properties): Delete.
(compute_pre_data): Use compute_local_properties instead of
* gcse.c: More comments, whitespace and similar fixes.
(dump_cuid_table, maybe_set_rd_gen, dump_cprop_data): Delete.
(dump_pre_data, compute_cprop_local_properties): Likewise.
(one_classic_gcse_pass): Lose unused argument. All callers changed.
(compute_hash_table, compute_expr_hash_table): Likewise.
(compute_set_hash_table, one_pre_gcse_pass, mark_call): Likewise.
(cprop_insn, cprop, one_cprop_pass): Add new argument ALTER_JUMPS.
All callers changed. Only alter jumps if ALTER_JUMPS is nonzero.
Lose unused argument.
(gcse_main): Always run a cprop pass after finishing global cse.
(compute_local_properties): New function.
(hash_scan_pat, hash_scan_insn): No longer call maybe_set_rd_gen.
(compute_cprop_data): Use compute_local_properties.
* gcse.c: Update various comments.
(current_function_calls_longjmp): Delete declaration.
* gcse.c (run_jump_opt_after_gcse): New variable.
(gcse_main): Returns an integer.
(hash_scan_set): Record initializations from CONST_DOUBLEs too.
(try_replace_reg): Update some comments.
(cprop_insn): Allow propagation into some JUMP_INSNs too.
* rtl.h (gcse_main): Update prototype.
* toplev.c (rest_of_compilation): If gcse_main returns nonzero,
then run a jump optimization pass.
* jump.c (delete_barrier_successors): Delete nop jumps too.
Wed Mar 10 19:04:31 1999 J"orn Rennecke <>
* sh.c (fp_arith_reg_operand): Actually test if reg is suitable
for FP arithmetic. Changed caller.
* (subsf3, subsf_i): Use fp_arith_reg_operand.
Wed Mar 10 18:56:31 1999 J"orn Rennecke <>
* reload1.c (choose_reload_regs): When inheriting from the frame
pointer, don't clobber it.
Wed Mar 10 08:01:52 1999 Bruce Korb <>
* fixinc/fixinc.*: Resync-ed with the files in this
* fixinc/ The machine case elements were
out-of-order. (the ix86-*-linux-gnu* entry needed to
be earlier).
Wed Mar 10 00:01:24 1999 J"orn Rennecke <>
* reload1.c (reload_combine_note_store): Fix calculation of number
of affected registers.
Tue Mar 9 15:48:15 1999 Richard Henderson <>
* flow.c (tidy_fallthru_edge): Be more careful finding the last
BARRIER of a list. Delete the cc0 setter as well as a cond jump.
Tue Mar 9 15:26:02 1999 Hans-Peter Nilsson <>
* (ashlsi3 splitter): Fix typo in last change.
Tue Mar 9 11:35:20 1999 Richard Henderson <>
* reg-stack.c (stack_reg_life_analysis): Use returnjump_p
instead of an explicit test for RETURN.
Tue Mar 9 09:33:16 1999 Kaveh R. Ghazi <>
* (toplev.o): Depend on $(BASIC_BLOCK_H).
* toplev.c: Include basic-block.h.
Tue Mar 9 02:08:17 1999 Jeffrey A Law (
* calls.c (load_register_parameters): New function.
(expand_call): Use it.
* calls.c (expand_call): Slightly reorganize code.
* calls.c (compute_argument_addresses): New function.
(rtx_for_function_call): New function.
(expand_call): Use them.
* (zero_extendhisi2): Split into an expander and anonymous
pattern. Add new anonymous pattern for use when optimizing for
size or for the PPro.
(zero_extendqihi2, zero_extendqisi2): Likewise.
Mon Mar 8 23:43:47 1999 Richard Henderson <>
* haifa-sched.c (sched_analyze_1): Fix last change -- add clobber
dependencies to sets in the non-hard-reg case too.
Mon Mar 8 18:55:21 1999 Marc Espie <>
* config/openbsd.h (HANDLE_SYSV_PRAGMA): Define.
Mon Mar 8 16:04:44 1999 Jim Wilson <>
* local-alloc.c (combine_regs): Don't combine if we have a hard reg
for which CLASS_LIKELY_SPILLED_P is true.
* unroll.c (loop_iterations): Only call loop_find_equiv_value if we
have a REG or SUBREG.
Mon Mar 8 15:27:42 1999 Jeffrey A Law (
* (ashlsi3): Revise comments. Provide new anonymous
pattern for Pentium and PPro/PII. Reverse constraints in
generic ashlsi3 anonymous pattern.
* calls.c (initialize_argument_info): Accept a pointer to
(expand_call): Pass the address of CUMULATIVE_ARGS.
* rs6000/xm-sysv4.h (HOST_BITS_PER_LONGLONG): Remove #if 0.
* mn10300.h (CASE_DROPS_THROUGH): Delete.
* mn10200.h (CASE_DROPS_THROUGH): Delete.
* h8300.h (CASE_DROPS_THROUGH): Delete.
* flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure
to also delete the cc0 setter when deleting a conditional branch
to the next block.
Mon Mar 8 18:47:11 1999 J"orn Rennecke <>
* regmove.c (copy_src_to_dest): New argument max_old_uid.
Mon Mar 8 08:23:00 1999 Bruce Korb <>
* ChangeLog: Merged entries from fixincl-branch.
Sun Mar 7 11:48:56 1999 Richard Henderson <>
* haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far.
(print_exp): Special case addition of a constant.
Sun Mar 7 11:21:02 1999 Richard Henderson <>
* haifa-sched.c (reg_last_clobbers): New.
(reg_pending_clobbers, bb_reg_last_clobbers): New.
(compute_block_backward_dependences): Allocate memory for them.
(schedule_region): Likewise.
(sched_analyze_1): Clobbers don't interfere with one another.
They do interfere with sets ...
(sched_analyze_2): ... and uses.
(sched_analyze): Likewise.
(sched_analyze_insn): Update reg_last_clobbers appropriately.
Sun Mar 7 08:30:37 1999 Kaveh R. Ghazi <>
* gmon-sol2.c: Include config.h and system.h. Don't redundantly
include system header files.
(sccsid): Remove.
(moncontrol, monstartup, _mcleanup, internal_mcount): Prototype.
(_mcleanup): Add the `const' keyword to a char*.
(internal_mcount): Declare `etext' as a char[] not a function.
Cast `etext' to char* when calling `monstartup'.
* sparc.c (frame_base_name, save_regs, restore_regs,
build_big_number, sparc_cmodel_string, sparc_align_loops_string,
sparc_align_jumps_string, sparc_align_funcs_string, code_model,
cpu_default, cpu_table, output_function_prologue,
output_function_epilogue, output_return,
sparc_flat_output_function_prologue, ultra_code_names,
sparc_flat_output_function_epilogue): Constify a char*.
(hypersparc_adjust_cost): Add a default case in a switch.
* sparc.h (sparc_cmodel_string, OVERRIDE_OPTIONS,
sparc_cpu_select, sparc_align_loops_string,
sparc_align_jumps_string, sparc_align_funcs_string,
output_return): Constify a char*.
* (movdi): Change the comparison of HOST_BITS_PER_WIDE_INT
so that we check "== 32", instead of "!= 64". Cast a value to
HOST_WIDE_INT when comparing against one. Hide the declaration
for variable `chain'.
Sun Mar 7 08:05:27 1999 Kaveh R. Ghazi <>
* system.h (const, inline): Move the stage2 handling of these
keywords-as-macros from here...
* gansidecl.h (const, inline): here.
Sun Mar 7 02:44:15 1999 Richard Henderson <>
* recog.c (push_operand, pop_operand): VOIDmode needn't match modes.
Sun Mar 7 01:58:47 1999 Richard Henderson <>
* cse.c (canon_hash): Never reject hard regs in CCmode.
Sun Mar 7 01:15:04 1999 Jeff Law (
* version.c: Bump for snapshot.
Sat Mar 6 17:18:44 1999 Richard Earnshaw (
Richard Henderson <>
* flow.c (make_edges): Handle casesi that jump to default branch.
If CASE_DROPS_THROUGH, force fallthru to block after casesi.
Sat Mar 6 07:49:23 1999 Kaveh R. Ghazi <>
* c-aux-info.c (data_type, affix_data_type, gen_decl,
gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type):
Qualify a char* with the `const' keyword.
* c-common.c (declare_hidden_char_array, add_attribute, if_elt,
declare_function_name, decl_attributes, format_char_info,
check_format_info, binary_op_error): Likewise.
* cexp.y (yyerror, error, pedwarn, warning, token): Likewise.
* gcse.c (dump_hash_table): Likewise.
* integrate.c (function_cannot_inline_p): Likewise.
* optabs.c: Include insn-config.h earlier.
(init_libfuncs, init_integral_libfuncs, init_floating_libfuncs):
Qualify a char* with the `const' keyword.
* real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe,
asctoeg, mtherr, ereal_atof): Likewise.
* real.h (ereal_atof): Likewise.
* sbitmap.c (dump_sbitmap_vector): Likewise.
* sbitmap.h (dump_sbitmap_vector): Likewise.
* stmt.c (nesting, n_occurrences, expand_start_case): Likewise.
* toplev.c (rest_of_compilation): Likewise.
* tree.h (function_cannot_inline_p, expand_start_case): Likewise.
Fri Mar 5 23:16:42 1999 David Edelsohn <>
* rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do
not overwrite AIX link register save area.
Fri Mar 5 23:08:01 1999 J"orn Rennecke <>
* reload.c (find_reloads_subreg_address): Actually create the USE
for the register, not the new memory location.
Fri Mar 5 21:41:07 1999 J"orn Rennecke <>
* reload1.c (emit_reload_insns): If pseudo that can't be replaced
with its equivalent constant, fall back to reload_in.
Fri Mar 5 13:20:39 1999 Richard Henderson <>
* Delete .flow2 debugging files.
Fri Mar 5 11:36:11 1999 Nick Clifton <>
* config/arm/arm.c (arm_override_options): Change default target
cpu selection so that enabling TARGET_APCS_32 does not override
default target CPU.
Fri Mar 5 19:26:23 1999 J"orn Rennecke <>
* sh.h (SLOW_BYTE_ACCESS): Define to 1.
Fri Mar 5 02:14:54 1999 John Wehle (
* function.c (assign_stack_temp_for_type): Abort
if mode == Blkmode and align is less than
(assign_stack_temp_for_type): Round the size parameter
passed to assign_stack_local instead of size itself.
Thu Mar 4 15:00:35 1999 Richard Henderson <>
* flow.c (delete_unreachable_blocks): Mark blocks as they
are put on to the worklist, not as they are taken off.
Thu Mar 4 00:05:44 1999 Jeffrey A Law (
* function.c (current_function_has_computed_jump): Remove duplicate
Wed Mar 3 19:09:11 1999 Jim Wilson <>
* m68k/m68020-elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undef.
(STARTFILE_SPEC, ENDFILE_SPEC): Define to empty string.
(INIT_SUBTARGET_OPTABS): Define to empty.
Wed Mar 3 00:00:37 1999 J"orn Rennecke <>
* sh.c (force_into): New function.
(expand_block_move): Use it.
Tue Mar 2 10:39:43 1999 Nick Clifton <>
* cccp.c (struct default_include): Add 'included' field.
(main): Set 'included' field when a default include directory
is added to the chain. If -v is specified list all default
include directories which do not get appended to the chain.
Tue Mar 2 09:24:10 1999 Nick Clifton <>
* (gxx_include_dir): Rename to
gcc_gxx_include_dir in order to prevent it being overridden by
a top level Makefile.
(gcc_tooldir): If $exec_prefix != $prefix then use the
difference between the two as the basis for gcc_tooldir.
* configure: Rebuild.
* Rename gxx_include_dir to gcc_gxx_include_dir.
Tue Mar 2 16:45:31 1999 J"orn Rennecke <>
* unroll.c (copy_loop_body): Don't make extra copies of
Tue Mar 2 07:44:56 1999 Mark Mitchell <>
* tree.c (save_tree_status): Don't treat functions with no context
as nested.
Tue Mar 2 09:37:05 1999 Robert Lipe <>
* (MAKEINFO): Use makeinfo built from sibling
tree when available.
Tue Mar 2 10:12:48 1999 Kaveh R. Ghazi <>
* alpha.c (alpha_cpu_name, alpha_cpu_string, alpha_tp_string,
alpha_fprm_string, alpha_fptm_string, alpha_mlat_string,
current_function_file): Add the `const' keyword.
(normal_memory_operand): Mark parameter `mode' with
(alpha_expand_unaligned_load): Add a default case to a switch.
* alpha.h (alpha_cpu_string, alpha_fprm_string, alpha_fptm_string,
alpha_tp_string, alpha_mlat_string): Add the `const' keyword.
(normal_memory_operand): Add prototype.
* Cast an expression to `unsigned HOST_WIDE_INT' when
comparing against one.
Tue Mar 2 10:00:21 1999 Kaveh R. Ghazi <>
* mips.c (abort_with_insn): Make function static, add a prototype,
constify 2nd parameter and mark with ATTRIBUTE_NORETURN.
(current_function_file, mips_cpu_string, mips_isa_string,
mips_abi_string, mips_no_mips16_string, mips_entry_string,
mips_move_1word, mips_move_2words, output_block_move, load_store,
override_options, make_temp_file, mips16_fp_args): Qualify a char*
with the `const' keyword.
* mips.h (current_function_file, mips_cpu_string, mips_isa_string,
mips_abi_string, mips_entry_string, mips_no_mips16_string,
mips_move_1word, mips_move_2words, output_block_move): Likewise.
(abort_with_insn): Remove extern prototype.
* Qualify a char* with the `const' keyword.
Remove many unused variables named `label'.
Tue Mar 2 01:27:52 1999 H.J. Lu (
* (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New
(install-cpp, uninstall-cpp): New targets.
(install-normal): Depend on $(INSTALL_CPP).
(uninstall): Depend on $(UNINSTALL_CPP).
* (cpp_install_dir): New, substitute.
(tmake_file): Added t-install-cpp for --enable-cpp.
* configure: Rebuilt.
* New cpp script.
* config/t-install-cpp: New target fragment.
Tue Mar 2 01:40:01 1999 Franz Sirl <>
Jeffrey A Law (
* cse.c (fold_rtx): Update comments for (const (minus (label) (label)))
(cse_insn): Avoid creating a bogus REG_EQUAL note for
(const (minus (label) (label)))
(record_jump_cond): Fix mismatched paren in comment.
Tue Mar 2 01:07:12 1999 Dan Nicolaescu <>
* final.c (end_final): There are 11 words in the "main header"
structure, not 10.
Tue Mar 2 00:09:18 1999 Marc Espie <>
* extend.texi: Reference __extension__ in the index.
Mon Mar 1 19:09:32 1999 Jim Wilson <>
* (CROSS_FLOAT_H): Delete.
(FLOAT_H): Use float_h_file.
(rest.cross, stmp-int-hdrs): Delete gfloat.h dependency.
(gfloat.h): Delete.
(stmp-int-hdrs): Use FLOAT_H instead of gfloat.h.
(mostlyclean): Delete gloat.h reference.
(install-cross-rest, install-float-h-cross, stmp-headers): Update
* (sparcv9-*-solaris2*): Set float_format to none.
(sparc-*-solaris2*): Set float_format to none for 2.5 and higher.
(float_h_file): Set from float_format. Substitute into
(float_format): No longer substitute into
* cross-make (FLOAT_H): Delete.
* config/mips/t-cross64 (FLOAT_H): Delete.
* configure: Rebuilt.
Mon Mar 1 16:36:18 1999 Jeffrey A Law (
* (div_trap_normal, div_trap_mips16): Require the dependent
insn to be an INSN before looking at its pattern.
Mon Mar 1 15:03:51 1999 Jim Wilson <>
* config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs. Fix comments.
* config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of
HImode reg when TARGET_5200.
Mon Mar 1 21:44:30 1999 J"orn Rennecke <>
From Toshiyasu Morita:
* sh.h (CACHE_LOG): SH2 has cache, too.
Mon Mar 1 14:23:36 1999 Catherine Moore <>
* toplev.c (compile_file): Disable -ffunction-sections and
debugging warning if the object format is elf.
Mon Mar 1 11:46:25 1999 Vladimir N. Makarov <>
* config/h8300/h8300.c (print_operand): Use 16 bit addressing
when the data in 8-bit area and can not be addressed by 8-bit.
Sun Feb 28 16:40:00 1999 Richard Henderson <>
* flow.c (create_basic_block): Disregard integrated bb notes.
Sun Feb 28 15:57:06 1999 Richard Henderson <>
* (blockage, nonlocal_goto_receiver): Set length to 0.
Sun Feb 28 14:47:53 1999 Arturo Montes <>
* config/i386/t-sco5gas (crti.o): New target.
Sun Feb 28 15:10:17 1999 David Edelsohn <>
* (elf_high, movsi_got, *movsi_got_internal,
*movsi_got_internal_mem, GOT splitter, movdf_hardfloat32,
movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64,
load_multiple, allocate_stack, call_indirect_aix32,
call_indirect_aix64, call_value_indirect_aix32,
call_value_indirect_aix64, call_indirect_nt,
call_value_indirect_nt): Use gpc_reg_operand instead of
Sun Feb 28 15:10:17 1999 Michael Meissner <>
* (one_cmplsi2, andsi3, iorsi3, xorsi3, *eqvsi3,
*andcsi3, *iorcsi3, *nandsi3, *norsi3): Add alternatives to use CR
other than cr0.
* rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't
allow andi. or andis. which always set cr0.
Sun Feb 28 01:15:04 1999 Jeff Law (
* version.c: Bump for snapshot.
Sun Feb 28 02:00:38 1999 Jeffrey A Law (
* invoke.texi: Update information for PA scheduling.
Sat Feb 27 23:21:47 1999 Jerry Quinn <>
Mike Stump <>
* pa.c (override_options): Change default to 7100LC.
* pa.h (REG_ALLOC_ORDER): Change order to allocate left half of
float regs before right half of float regs.
Sat Feb 27 22:48:38 1999 H.J. Lu (
Jeffrey A Law (
* frame.h: Update some comments.
* defaults.h (TARGET_ATTRIBUTE_WEAK): Define.
* crtstuff.c (__register_frame_info, __deregister_frame_info): Declare
(__do_global_dtors_aux): Check if __deregister_frame_info is
zero before calling it.
(__do_global_dtors): Likewise.
(frame_dummy): Check if __register_frame_info is zero before
calling it.
(__frame_dummy): Likewise.
Sat Feb 27 19:18:24 1999 Jeffrey A Law (
* SERVICE: Update from the FSF.
Sat Feb 27 14:31:22 1999 Arturo Montes <>
* config/i386/t-sco5 (crti.o): New target.
* config/i386/sco5.h (STARTFILE_SPEC): Include crti.o when
linking -shared.
* (i[34567]86-*-sco3.2v5*): Add crti.o.
Sat Feb 27 01:12:40 1999 Jeffrey A Law (
* md.texi (prologue,epilogue): Document named patterns.
Fri Feb 26 19:31:25 1999 Dave Love <>
* md.texi, invoke.texi: Fix unterminated @xrefs.
Fri Feb 26 15:33:45 1999 Richard Henderson <>
* genattrtab.c (simplify_knowing): Fix uninitialized read
in Feb 21 change.
* genextract.c (main): Clear recog_operands before extracting.
Fri Feb 26 02:24:57 1999 Jeffrey A Law (
* c-pragma.c (add_weak); Delete. Moved into...
* varasm.c (add_weak): New external function.
(declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to
the list of weak functions.
* c-pragma (add_weak): Declare.
Thu Feb 25 23:43:59 1999 Richard Henderson <>
Flow rewrite to use basic block structures and edge lists:
* basic-block.h (x_basic_block_head, x_basic_block_end): Kill.
(basic_block_computed_jump_target, basic_block_live_at_start): Kill.
(struct edge_def): New.
(struct basic_block_def): New.
(basic_block_info): New.
(uid_block_number): Kill.
(basic_block_for_insn, BLOCK_FOR_INSN): New.
(BLOCK_NUM): Update.
* flow.c (XNMALLOC): Kill.
(max_uid_for_flow): Kill.
(uid_block_number): Kill.
(uid_volatile): Turn into a bitmap.
(basic_block_info): New.
(entry_exit_blocks): New.
(x_basic_block_head, x_basic_block_end): Kill.
(basic_block_computed_jump_target, basic_block_live_at_start): Kill.
(flow_int_list_blocks, basic_block_succ, basic_block_pred): Kill.
(basic_block_loop_depth): Kill.
(basic_block_for_insn): New.
(find_basic_blocks): Split out initial block counting into
count_basic_blocks. Call functions split out of find_basic_blocks_1.
(count_basic_blocks): New.
(find_basic_blocks_1): Split out edge recognition, unreachable
block deletion.
(create_basic_block): New.
(compute_bb_for_insn): New.
(clear_edges): New.
(free_bb_memory): Kill.
(add_edge, add_edge_to_label): Kill.
(mark_label_ref): Kill.
(make_edges): Rewrite to use edge lists.
(make_edge, make_label_edge): New.
(mark_critical_edges): New.
(split_edge, insert_insn_on_edge): New.
(commit_one_edge_insertion, commit_edge_insertions): New.
(delete_unreachable_blocks): Rewrite to use edge lists.
Split out EH region manipulation into delete_eh_regions.
Call tidy_fallthru_edge and merge_blocks.
(delete_eh_regions): New.
(delete_note_p): New.
(delete_insn_chain): New.
(delete_block): Split out code into delete_insn_chain and
tidy_fallthru_edge. Update edge lists.
(expunge_block): New.
(flow_delete_insn): New?
(can_delete_label_p): New?
(merge_blocks_nomove, merge_blocks): New.
(tidy_fallthru_edge): New.
(calculate_loop_depth): New.
(life_analysis): Allocate and free uid_volatile.
(free_basic_block_vars): Update for new structures.
(record_volatile_insns): Use SET_INSN_VOLATILE.
(mark_regs_live_at_end): Tidy EXIT_IGNORE_STACK usage.
(mark_used_regs): Likewise.
(life_analysis_1): Use bb global_live_at_start, global_live_at_end,
local_set regsets. Use bb->aux to store new_live_at_end. Begin
life propagation from EXIT_BLOCK rather than last block. Clear
regs_ever_live after mark_regs_live_at_end.
(allocate_for_life_analysis): Update for new structures.
(propagate_block): Split out loop depth calculation to
(regno_uninitialized): Use bb->global_live_at_start.
(regno_clobbered_at_setjmp): Likewise.
(dump_bb_data): Likewise.
(find_auto_inc): Use BLOCK_FOR_INSN instead of BLOCK_NUM.
(dump_flow_info): Update for new structures.
(dump_edge_info): New.
(print_rtl_with_bb): Update for new structures.
(compute_preds_succs): Do no work -- convert edge lists.
(set_block_for_insn): From corpse of old set_block_num.
(set_block_num): Call it.
* rtl.c (note_insn_name): Add NOTE_INSN_BASIC_BLOCK.
* rtl.h (rtunion_def): Add bb entry.
* varray.h (varray_data_tag): Add bb entry.
* emit-rtl.c (emit_label_before): New.
* except.c (expand_rethrow): Delete insns following the call to
rethrow. Put the REG_EH_RETHROW on the call.
* jump.c (returnjump_p, returnjump_p_1): New.
* expr.h (nonlocal_goto_handler_labels): New declaration.
* function.c (nonlocal_goto_handler_labels): Define it.
(push_function_context_to): Save it.
(pop_function_context_from): Restore it.
(init_function_start): Clear it.
(nonlocal_label_rtx_list): Kill.
* function.h (struct function): Add storage space for it.
* stmt.c (expand_nl_handler_label): Return the new label.
(expand_nl_goto_receivers): Collect a list of them in
* (print-rtl.o): Depend on basic-block.h.
(flow.o): Depend on insn-flags.h.
* function.c (thread_prologue_and_epilogue_insns): Do not
half-heartedly update bb structures.
* toplev.c: Add flow2 dump as -dw.
(rest_of_compilation): Finish .greg before flow2.
* graph.c (draw_edge): Handle class 3.
(print_rtl_graph_with_bb): Make abnormal edges red class 2,
change non-fall-thru but adjacent to green class 3. Update
to use new structures.
* print-rtl.c (print_rtx): Handle NOTE_INSN_BASIC_BLOCK.
* reg-stack.c (BLOCK_NUM): Convert to function. Abort if
block_number is -1.
(reg_to_stack): Initialize block_num to -1.
* combine.c (set_nonzero_bits_and_sign_copies): Update reference
to basic_block_live_at_start to bb->global_live_at_start.
(try_combine): Likewise.
(reg_dead_at_p): Likewise.
* global.c (global_conflicts): Likewise.
Handle stack regs on all abnormal edges, not just computed jumps.
(mark_elimination): Update reference to basic_block_live_at_start.
(build_insn_chain): Likewise.
* haifa-sched.c (haifa_edge): Rename from edge for conflict.
(is_cfg_nonregular): Look at nonlocal_goto_handler_labels instead
of nonlocal_label_rtx_list.
(check_live_1): Update reference to basic_block_live_at_start.
(update_live_1): Likewise.
(find_pre_sched_live): Likewise.
(find_post_sched_live): Likewise.
* local-alloc.c (update_equiv_regs): Likewise.
(block_alloc): Likewise.
* reload1.c (reload, reload_combine): Likewise.
* regmove.c (mark_flags_life_zones): Likewise.
* resource.c (mark_target_live_regs): Likewise.
* sched.c (schedule_block): Likewise.
* regclass.c (regset_release_memory): Don't free
* unroll.c (copy_loop_body): Don't duplicate NOTE_INSN_BASIC_BLOCK.
Thu Feb 25 21:32:34 1999 Jason Merrill <>
* fixinc.wrap: Also handle struct queue in sys/stream.h.
* fixinc.svr4: Likewise.
* dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die
rather than asserting it.
Thu Feb 25 23:33:06 1999 Kaveh R. Ghazi <>
* cppexp.c (left_shift, right_shift, parse_charconst, COMPARE,
cpp_parse_expr): Replace uses of long/HOST_BITS_PER_LONG with
* (cppmain.o, cpplib.o, cpphash.o, cppalloc.o,
cpperror.o, cppexp.o, cppfiles.o, cppinit.o, fix-header.o,
scan-decls.o): Don't depend on machmode.h.
* cppexp.c: Don't define CHAR_BIT or HOST_BITS_PER_WIDE_INT anymore.
Replace all instances of HOST_WIDE_INT with HOST_WIDEST_INT.
* cppfiles.c: Likewise.
* cpplib.c: Likewise.
* cpplib.h: Likewise. Also don't include machmode.h anymore.
Thu Feb 25 18:46:26 1999 Richard Henderson <>
* gcc.c (default_compilers): Define __FAST_MATH__ when appropriate.
* objc/lang-specs.h: Likewise.
Thu Feb 25 16:19:43 1999 Jeffrey A Law (
* (call patterns): Lose unused argument to output_call.
* print-rtl.c (print_rtl): Print /j and /c for the jump/call flags.
1999-02-25 Zack Weinberg <>
* cpphash.c (install): Rename to cpp_install, add cpp_reader*
first argument. All callers changed.
(hashtab): Removed.
(cpp_lookup, cpp_install): Change all refs to hashtab to
(cpp_hash_cleanup): Removed.
* cpphash.h: Adjust prototypes.
* cpplib.h (struct cpp_reader): Add hashtab pointer.
* cppinit.c (cpp_reader_init): Also allocate space for the
(cpp_cleanup): Delete all macros and free the hashtab.
Thu Feb 25 21:52:54 1999 J"orn Rennecke <>
* sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures
in registers.
* expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
* function.c (assign_parms): Honor PRETEND_OUTGOING_VARARGS_NAMED.
* calls.c (expand_call): Likewise.
* sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
stdarg arguments.
* sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
(FUNCTION_ARG): For TARGET_HITACHI, don't pass unnamed
arguments in registers.
* va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
flavor varargs.
Thu Feb 25 14:32:40 1999 Kaveh R. Ghazi <>
* cse.c (dump_class): Revert last change and make the prototype
Thu Feb 25 19:13:42 1999 J"orn Rennecke <>
* rtl.h (insn_first_p): Don't declare.
* rtlanal.c (insn_first_p): Delete.
* loop.c (loop_insn_first_p): Faster implementation.
Thu Feb 25 10:44:35 1999 Richard Earnshaw (
* arm.h (TARGET_SWITCHES): Delete deprecated switches -m[236].
(TARGET_3, TARGET_6): Delete.
(ARM_FLAG_ARM[36]): Delete.
(CPP_CPU_ARCH_SPEC): No need to handle -m[236] any more.