Jim Wilson [Sat, 21 Jan 1995 02:12:01 +0000 (18:12 -0800)]
(copy_loop_body): When check for shared address givs, use new same_insn field.
(copy_loop_body): When check for shared address givs, use
new same_insn field.
(find_splittable_givs): New variable v2. Scan givs to set new
same_insn field. Use same_insn to indentify address givs to be
shared.
Jim Wilson [Sat, 21 Jan 1995 01:11:01 +0000 (17:11 -0800)]
(multcosts): Do not compute cost of constant power-of-two multiplies as if they were shifts.
(multcosts): Do not compute cost of constant power-of-two
multiplies as if they were shifts. Reduce multiply cost from 5 to 3.
Delete variable insn_cost.
Mike Stump [Fri, 20 Jan 1995 19:27:33 +0000 (19:27 +0000)]
stmt.c (expand_cleanups): Add 4th argument to indicate if code needs to be expanded for the cleanup.
* stmt.c (expand_cleanups): Add 4th argument to indicate if code
needs to be expanded for the cleanup.
(expand_goto_internal): Ditto.
(bc_expand_goto_internal): Ditto.
(fixup_gotos): Ditto.
(expand_end_bindings): Ditto. We now always call expand_cleanups,
even after BARRIERs, so that the call to the exception handling
routines is always done.
Richard Kenner [Wed, 18 Jan 1995 12:43:31 +0000 (07:43 -0500)]
(get_inner_reference): Don't ignore CONVERT_EXPR from non-UNION_TYPE to UNION_TYPE.
(get_inner_reference): Don't ignore CONVERT_EXPR from non-UNION_TYPE
to UNION_TYPE.
(expand_expr, case CONVERT_EXPR): Check for conversion to union before
checking for not changing mode.
Doug Evans [Sat, 14 Jan 1995 06:20:26 +0000 (06:20 +0000)]
(decl_attributes): Fix typo in packed ignored warning.
Fix unrecognized mode warning. Make string comparisons consistent.
Support machine attributes with arguments. Make noreturn/volatile
warnings consistent with others.
Richard Kenner [Sat, 14 Jan 1995 01:36:53 +0000 (20:36 -0500)]
(expand_binop): Do not force constant shift-count to a register, to allow possible widening...
(expand_binop): Do not force constant shift-count to a register, to
allow possible widening; do not convert_to_mode mode{1,2} or
copy_to_mode_reg if mode{1,2} is VOIDmode.
Richard Kenner [Sat, 14 Jan 1995 01:36:09 +0000 (20:36 -0500)]
(zero_extendsidi2): New pattern.
(extendqidi2, extendhidi2, extendsidi2, extendplussidi): New patterns.
(adddia_sexthishl32, adddid_sexthishl32): New patterns.
(adddi_dilshr32, adddi_dishl32, adddi_mem): New patterns.
(adddi3, subdi3): Allow more alternatives.
(subdia_sexthishl32, subdid_sexthishl32): New patterns.
(subdi_dishl32, subdi_mem): New patterns.
(negdi2): New pattern.
(ashldi_sexthi, ashldi_const32, ashldi_const, ashldi3): New patterns.
(subreg1ashrdi_const32, ashrdi_const32): New patterns.
(ashrdi_const32_mem, ashrdi_const, ashrdi3): New patterns.
(subreg1lshrdi_const32, lshrdi_const32, lshrdi_const, lshrdi3): Ditto.
(lshrsi_31): New pattern.
(lshrsi_16, lshrsi_17_24): New names for old unnamed patterns.
Richard Kenner [Sat, 14 Jan 1995 00:37:56 +0000 (19:37 -0500)]
(execute): Don't wait for just any N subprocesses...
(execute): Don't wait for just any N subprocesses, since we may have
started with some subprocesses before we started executing. Wait just
for _our_ N subprocesses.
Richard Kenner [Sun, 8 Jan 1995 01:45:37 +0000 (20:45 -0500)]
(order_regs_for_local_alloc): Add casts to bcopy call.
(print_operand, case 'f'): New case.
(sparc_initialize_trampoline): Use gen_flush instead of knowing what pattern
looks like.
Use MEM instead of address in flush insn, so virtual reg instantiation can
update.
Ensure address in flush insn is valid.
Richard Kenner [Sat, 7 Jan 1995 13:51:14 +0000 (08:51 -0500)]
(fold, case CONVERT_EXPR): Don't remove an integer conversion when outer is FP unless it doesn't change signedness...
(fold, case CONVERT_EXPR): Don't remove an integer conversion when
outer is FP unless it doesn't change signedness; rework code in this
area to be clearer.
Jeff Law [Sat, 7 Jan 1995 07:59:42 +0000 (00:59 -0700)]
pa.h (enum processor_type): New enumeration describing the processor to schedule for (700, 7100, 7100LC).
* pa.h (enum processor_type): New enumeration describing the
processor to schedule for (700, 7100, 7100LC).
(pa_cpu_attr, TARGET_OPTIONS, OVERRIDE_OPTIONS): Define.
(pa_cpu_string, pa_cpu): Provide extern decls.
* pa.c (pa_cpu, pa_cpu_string): Provide definitions.
(override_options): New function.
(pa_adjust_cost): Handle PROCESSOR_7100 and PROCESSOR_7100LC
scheduling. Handle anti-dependendy cases involving fp division
and sqrt. Handle output dependencies correctly. Break TYPE_FPMUL
into TYPE_FPMULSGL and TYPE_FPMULDBL.
* pa.md (cpu attribute): New attribute.
Clean up comments for PROCESSOR_700 scheduling info. Slightly
simplify. Make conditional on PROCESSOR_700.
Add comments and scheduling information for PROCESSOR_7100 and
PROCESSOR_7100LC. Set types for instructions which use the shifter
to "shift". Explicitly set lengths and types for all instructions.
Break type "fpmul" into "fmulsgl" and "fpmuldbl".
Jeff Law [Thu, 29 Dec 1994 03:06:00 +0000 (20:06 -0700)]
pa.h (DO_GLOBAL_DTORS_BODY): Define.
* config/pa/pa.h (DO_GLOBAL_DTORS_BODY): Define. Include a
reference to __gcc_plt_call so __gcc_plt_call always appears in
executables which reference __main.
Jim Wilson [Thu, 29 Dec 1994 02:39:10 +0000 (18:39 -0800)]
(fill_simple_delay_slots): For the epilogue case...
(fill_simple_delay_slots): For the epilogue case, set needed
to include frame pointer and stack pointer, don't include all of
end_of_function_needs. Reject insn if it sets a previously set
resource.
Mike Stump [Wed, 28 Dec 1994 00:22:13 +0000 (00:22 +0000)]
stmt.c (expand_cleanups): Add third parameter so that we can avoid marking a cleanup region if...
* stmt.c (expand_cleanups): Add third parameter so that we can
avoid marking a cleanup region if this cleanup is part of a fixup
style goto.
(expand_goto_internal): Pass a 1 to expand_cleanups.
(bc_expand_goto_internal): Ditto.
(fixup_gotos): Ditto.
(expand_end_bindings): Pass a 0 to expand_cleanups.