* expmed.c (const_mult_add_overflow_p): New.
* expr.h: Declare it.
* loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
Don't eliminate the biv if the giv has a constant multiplier and
the rhs argument of the comparison does satisfy the predicate.
Use expand_mult_add to compute the replacement constant.
From-SVN: r54075
* flow.c (propagate_one_insn): Revise yesterday's patch. Delete
a dead insn with a REG_RETVAL note when the entire libcall is not
dead and remove the associated REG_LIBCALL note at the same time.
From-SVN: r54065
* lcm.c (output.h): #include.
(compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
as an ordinary block.
(optimize_mode_switching): Don't pretend that the exit block is
an ordinary block, or handle sucessors of entry block specially.
Instead, split edges from entry block and to exit block, and
put a computing definition on the thus gained post-entry-block,
and a need on the pre-exit-block.
From-SVN: r54064
* ada.h: Add MI guard macro.
(SUBTYPE): Define constants with an anonymous enum, not static
const variables.
(IN): Cast constants to appropriate type before use.
From-SVN: r54063
* config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
at run-time.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
From-SVN: r54059
* config/h8300/h8300-protos.h: Remove prototypes for
ok_for_bclr and small_power_of_two.
* config/h8300/h8300.c (small_power_of_two): Remove.
(ok_for_blcr): Likewise.
(fix_bit_operand): Make WHAT deal with an integer instead of a
constraint character.
* config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
(CONST_OK_FOR_P): Likewise.
(CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
CONST_OK_FOR_P any more.
* config/h8300/h8300.md (andqi3): Adjust to the new prototype
of fix_bit_operand.
(iorqi3): Likewise.
(xorqi3): Likewise.
From-SVN: r54037
* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
(CPP_PREDEFINES): Make sure this is undefined.
(CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
since it is no longer in CPP_PREDEFINES. Don't -U__MIPSEL__
or -U__MIPSEB__ before defining one or the other. Instead,
use %(subtarget_endian_default) if neither -EB nor -EL are
specified.
(SUBTARGET_EXTRA_SPECS): Define.
(SUBTARGET_CPP_SPEC): Remove __LONG64 handling. Use
%(netbsd_cpp_spec).
From-SVN: r54036
2002-05-29 Aldy Hernandez <aldyh@redhat.com>
* rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
when TARGET_ALTIVEC. Move handling of generic unary, binary, and
ternary operations from here...
(rs6000_expand_builtin): ...to here.
New argument expandedp.
Change all instances of altivec_expand_binop_builtin to
rs6000_expand_binop_builtin.
(altivec_expand_unop_builtin): Rename to
rs6000_expand_unop_builtin.
(altivec_expand_binop_builtin): Rename to
rs6000_expand_binop_builtin.
(altivec_expand_ternop_builtin): Rename to
rs6000_expand_ternop_builtin.
From-SVN: r54034
* config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
(TARGET_BI_ARCH): Likewise.
* config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
(TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
(TARGET_64BIT_DEFAULT): Default to 0.
(TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
From-SVN: r54032
* config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
(get_pc_thunk_name): New.
(output_set_got): Use it.
(ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
into linkonce sections.
From-SVN: r54031
* config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
(CPP_PREDEFINES): Make sure this is undefined.
(CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
(CPP_SUBTARGET_SPEC): Don't provide different versions for
default-32 and default-64. Just always use %(netbsd_cpp_spec).
(SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
cpp_subtarget_spec64. Add netbsd_cpp_spec.
* config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
(CPP_PREDEFINES): Make sure this is undefined.
(SUBTARGET_EXTRA_SPECS): Define.
(CPP_SPEC): Use %(netbsd_cpp_spec).
From-SVN: r54030
* config/i386/i386.c (ix86_output_function_epilogue): New.
(TARGET_ASM_FUNCTION_EPILOGUE): New.
(pic_label_name): Remove.
(pic_labels_used): New.
(ix86_asm_file_end): Emit one pc load stub for each register used.
(output_set_got): Generate deep pc load to any register.
(ix86_select_alt_pic_regnum): New.
(ix86_save_reg): Don't save pic register if we can find a valid
call-clobbered replacement.
(ix86_expand_prologue): If we found a valid replacement, renumber
pic_offset_table_rtx.
* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
pic_offset_table_rtx after reload.
(REAL_PIC_OFFSET_TABLE_REGNUM): New.
* config/i386/i386.md (set_got): Make insn, not expander.
(set_got_nopic, set_got_deep, set_got_nodeep): Remove.
From-SVN: r54021
* config/i386/i386.c (output_pic_addr_const): Lowercase rip.
(print_operand_address): Only add rip for symbolic addresses
for which we do not have another relocation type.
From-SVN: r54017
- * haifa-sched.c (schedule_block): Do not count USE and CLOBBER
- insns against the issue rate.
-
- * sched-deps.c (sched_create_groups_for_libcalls): New function.
- (sched_analyze): Use it.
From-SVN: r54015
* configure.host [s390*-linux*]: Set can_unwind_signal=yes.
* configure.in [s390*-*-linux*]: Do not define HAVE_BACKTRACE.
Set SIGNAL_HANDLER=include/s390-linux.h.
* configure: Regenerate.
* include/s390-linux.h: New file.
From-SVN: r54012
2002-05-29 Eric Christopher <echristo@redhat.com>
* config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
From-SVN: r54011
* config/fr30/fr30.md: Remove previous restriction on splits.
Enforce conformance through gen_lowpart and cont_int_operand.
* config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
as the assembler does not support ".bss".
From-SVN: r54010
* haifa-sched.c (schedule_block): Do not count USE and CLOBBER
insns against the issue rate.
* sched-deps.c (sched_create_groups_for_libcalls): New function.
(sched_analyze): Use it.
From-SVN: r54004