Commit Graph

2216 Commits

Author SHA1 Message Date
Richard Kenner
01ca1b9182 (jump_optimize): Tighten up test for when we can't delete a set of CC0.
Don't insert insns between set and use of CC0.

From-SVN: r2217
1992-09-23 19:24:25 -04:00
Richard Kenner
b6c9b49af9 (shorten_branches): Correctly access insn needing delay slot.
From-SVN: r2216
1992-09-23 19:23:47 -04:00
Richard Kenner
c3c2cb3741 (significant_bits, num_sign_bit_copies): Handle SUBREGs made for promoted
variables.

From-SVN: r2215
1992-09-23 19:23:19 -04:00
Richard Kenner
d6749decf6 (fill_simple_delay_slots): Don't make copy of insn that references CC0.
From-SVN: r2214
1992-09-23 19:22:40 -04:00
Richard Kenner
fd8c9e1cb9 (define_attr "type"): New type "ibranch".
(define_attr "length"): Set length for "ibranch" type.
(define_attr "in_delay_slot"): Add new type "ibranch"; for "branch", only has
delay slot if length is 4.
(define_attr "cc_type"): Add new type "ibranch".
(indirect branches): Now type "ibranch".

From-SVN: r2213
1992-09-23 19:21:45 -04:00
Michael Meissner
305aa9e2b1 Undo most of 9/22 changes
From-SVN: r2212
1992-09-23 15:25:23 +00:00
Richard Stallman
65a6dd9a32 Finish changing _ANSI_H to _ANSI_H_.
From-SVN: r2211
1992-09-23 04:12:08 +00:00
Richard Stallman
b81fd0f4f2 (basic_induction_var): Inside PLUS, when looking for promoted
var, make sure it's a REG.

From-SVN: r2210
1992-09-23 03:46:26 +00:00
Richard Stallman
8c153768f4 (perform_fixdfsi): Copy arg to memory variable.
From-SVN: r2209
1992-09-23 03:39:59 +00:00
Michael Meissner
a48bb578b4 Eliminate -fbuiltin/-fno-builtin hacks & enable OSF/rose shared libs.
From-SVN: r2208
1992-09-22 21:03:23 +00:00
Michael Meissner
9bbd6c3abe Eliminate -fbuiltin/-fno-builtin hacks.
From-SVN: r2207
1992-09-22 21:02:54 +00:00
Michael Meissner
3928229258 Put correct source into tree.
From-SVN: r2206
1992-09-22 16:31:20 +00:00
Michael Meissner
6cb6c3b358 Fix varardic function returning a structure or union.
From-SVN: r2205
1992-09-22 16:20:16 +00:00
Richard Stallman
372e033b8f (choose_reload_regs): When setting reg_has_output_reload,
loop over multiple regs only for hard reg.  Set reg_is_output_reload
in separate loop.

From-SVN: r2204
1992-09-22 07:13:24 +00:00
Jeff Law
4323a0e11e reorg.c (mark_set_resources, case REG): A register is set iff "in_dest" is nonzero.
* reorg.c (mark_set_resources, case REG): A register is set iff
	"in_dest" is nonzero.

From-SVN: r2203
1992-09-21 10:21:38 -06:00
Richard Stallman
cc4710825d (make_extraction): Make test whether to use AND or
{SIGN,ZERO}_EXTRACT depend on UNSIGNEDP.

From-SVN: r2202
1992-09-21 13:33:38 +00:00
Richard Kenner
e404a39a9c (reload): Print the needs to the dump file.
(reload): If we can't get a register that we know won't interfere with groups,
get one that might instead of giving up.

From-SVN: r2201
1992-09-21 08:26:33 -04:00
Richard Stallman
8ed694b11a Get alloca using ALLOCA, not libucb.a.
From-SVN: r2200
1992-09-21 07:08:50 +00:00
Richard Stallman
8005495c45 Initial revision
From-SVN: r2199
1992-09-21 07:08:28 +00:00
Richard Stallman
2baccce2f7 (put_var_into_stack): Check REG != 0 before dereference.
From-SVN: r2198
1992-09-21 06:46:22 +00:00
Richard Stallman
13c9910fdd (find_comparison_args): New args PMODE1, PMODE2.
(fold_rtx, record_jump_equiv): Use them to get modes of comparison.
(fold_rtx): Associate MINUS with nested PLUS.

From-SVN: r2197
1992-09-21 03:51:25 +00:00
Richard Stallman
e64ff1039c (subst): Set and compare extend_op with 0, not NULL.
From-SVN: r2196
1992-09-21 03:08:45 +00:00
Richard Stallman
8fed83ffd0 (LPREFIX): Overridden as `.L'.
(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.

From-SVN: r2195
1992-09-21 01:19:24 +00:00
Richard Kenner
22609cbf24 (try_combine): Always call set_significant on new patterns, so don't call
just in split case.

(subst): Move sign extension inside arithmetic when we have a constant
computation inside another computation.

From-SVN: r2194
1992-09-20 20:05:40 -04:00
Richard Stallman
80b0e34e58 Fix indentation. Carry out renamings from hash.h.
Rename args and locals also.

From-SVN: r2193
1992-09-20 23:43:50 +00:00
Richard Stallman
d0bd180dfb Fix indentation, clean up comments.
Rename structure fields and typedefs.

From-SVN: r2192
1992-09-20 23:42:24 +00:00
Richard Kenner
2156dfe383 (jump_optimize): Delete insns that set registers that are not used elsewhere.
Fix some bugs in "if (...) x = a; else x = b;" code.
Remove uses of reorder_insns.
Add code to make scc insns for "if (...) x = exp;" if EXP is simple enough.
Optimize "if (...) x = b;" if jumps very expensive; don't use a REG as the
older value of X since it doesn't help and can hurt.
Correctly place generated insns in above case.

From-SVN: r2191
1992-09-20 05:53:06 -04:00
Richard Kenner
255680cfb0 (emit_insn_after_with_line_notes): New function.
From-SVN: r2190
1992-09-20 05:52:26 -04:00
Richard Kenner
457816e2e2 (subst, simplify_and_const_int, significant_bits): Treat BYTE_LOADS_SIGN_EXTEND just like BYTE_LOADS_ZERO_EXTEND.
(subst, simplify_and_const_int, significant_bits): Treat
BYTE_LOADS_SIGN_EXTEND just like BYTE_LOADS_ZERO_EXTEND.
(num_sign_bit_copies, case MEM): New case for BYTE_LOADS_SIGN_EXTEND.
(num_sign_bit_copies, case SUBREG): Handle just like significant_bits.

From-SVN: r2189
1992-09-20 05:51:37 -04:00
Richard Kenner
46da6b3a5a (find_reloads, find_reloads_toplev): Treat BYTE_LOADS_SIGN_EXTEND just
like BYTE_LOADS_ZERO_EXTEND.

From-SVN: r2188
1992-09-20 05:50:34 -04:00
Richard Stallman
3934c98b30 Add comment in find_reloads.
From-SVN: r2187
1992-09-20 07:25:26 +00:00
Richard Stallman
ec35ef5057 (SIZE_TYPE): Defined.
From-SVN: r2186
1992-09-19 22:02:28 +00:00
Richard Kenner
9e87cc8929 (walk_insn_part, case IF_THEN_ELSE): Refine when HAVE_CMOVE_FLAG gets set.
From-SVN: r2185
1992-09-19 15:55:22 -04:00
Richard Kenner
9571f07974 (delete_insn): Don't change labels to NOTEs if we would not really have
deleted them.

From-SVN: r2184
1992-09-19 15:54:32 -04:00
Richard Kenner
8cfef35ae2 (note_insn_name): Fix typo: had NOT_INSN_DELETED_LABEL.
From-SVN: r2183
1992-09-19 15:54:05 -04:00
Richard Kenner
1a26b032d0 (try_combine): When removing REG_UNUSED note, update reg_n_deaths.
Likewise, when making new REG_DEAD notes for distribute_notes.
(remove_death, move_deaths): Update reg_n_deaths.
(distribute_notes): When placing second REG_DEAD or REG_UNUSED note or
ignoring such a note, update reg_n_deaths.

(simplify_comparison, case ASHIFT): Fix typo.

(try_combine): The insns made by a DEFINE_SPLIT might contain a PARALLEL and
the call to recog_for_combine might add it.


(combine_instructions): Clear significant_valid at end of combine pass for
a function.
(find_split_point, case MEM): See if first operand of the PLUS that makes
up an address is complex.
(subst): Add missing arg to recursive calls when IF_THEN_ELSE is an arg
of an operator.
(subst, case IF_THEN_ELSE): Generalize code to propagate comparison result
into arms by using known_cond.
If an arm is the first operand of the comparison, make it the true arm.
Remove unneeded comparison when arms are identical.
Try to convert IF_THEN_ELSE to ABS, (neg (abs X)), [US]MIN, [US]MAX.
Convert (if_then_else (ne A 0) (OP X C) X) to (OP X (mult A C)).
(subst, case SET): If we don't have conditional moves, convert IF_THEN_ELSE
into logical operations.
(subst, case AND): Always make conditional moves, even if we don't support
them on the machine.
(known_cond, extended_count): New functions.
(gen_binary): For commutative operations, put constant last.

From-SVN: r2182
1992-09-19 15:53:26 -04:00
Richard Kenner
0e91429a56 (find_splittable_regs): If any BIV update isn't simple, don't split it.
(final_giv_value): Look for biv updates by matching insns; don't try to
reparse the insn.

From-SVN: r2181
1992-09-19 15:50:23 -04:00
Richard Kenner
98f3b47110 (tail_recursion_args): Use mode of DECL_RTL, not DECL_MODE.
(expand_decl): Promote modes of scalar variables when useful on target.

From-SVN: r2180
1992-09-19 15:49:48 -04:00
Richard Kenner
f3f391d75b (expand_binop, expand_unop): Don't make SUBREG for promoted variables as
operands.

From-SVN: r2179
1992-09-19 15:49:13 -04:00
Richard Kenner
09d7f5a53f (basic_induction_var): Add new parameter P.
Check for bivs that are set over multiple insns and also allow a SIGN_EXTEND
to be used; remove check for MINUS since we don't make MINUS with a constant
2nd operand any more.

From-SVN: r2178
1992-09-19 15:48:43 -04:00
Richard Kenner
4b7cb39e62 (expand_inline_function): Convert actual to formal's mode (in case formal
was promoted).

From-SVN: r2177
1992-09-19 15:47:55 -04:00
Richard Kenner
c56d91f8e7 (struct var_refs_queue): Remove unused field ORIGINAL.
Add new fields PROMOTED_MODE and UNSIGNEDP.

From-SVN: r2176
1992-09-19 15:47:28 -04:00
Richard Kenner
00d8a4c187 (fixup_var_refs{,_insns}): Add new parms for promoted mode and signedness;
all callers changed.
Insert mode conversions when required.
(fixup_var_refs_1): Add new parms for mode and signedness; handle SUBREGs
for promoted values.
(assign_parms): Promote the mode of parameters when useful for the target
machine.

From-SVN: r2175
1992-09-19 15:47:00 -04:00
Richard Kenner
1499e0a89f (convert_move, convert_to_mode): Strip off a SUBREG made for variables with promoted modes.
(convert_move, convert_to_mode): Strip off a SUBREG made for variables with
promoted modes.
(store_expr): Store into variables with promoted modes by doing the
appropriate extension operation.
(expand_expr, case VAR_DECL): Generate SUBREGs for promoted objects.
(expand_expr, case SAVE_EXPR): Likewise for SAVE_EXPRs.
(expand_increment): Handle increment of promoted objects.

From-SVN: r2174
1992-09-19 15:45:55 -04:00
Richard Kenner
601ce03b17 (PROMOTE_MODE): Provide default definition.
From-SVN: r2173
1992-09-19 15:44:58 -04:00
Richard Kenner
17c7332100 (DECL_MODE, DECL_RTL): Update comments.
From-SVN: r2172
1992-09-19 15:44:33 -04:00
Richard Kenner
07be3989ad (SUBREG_PROMOTED_{VAR,UNSIGNED}_P): New macros.
From-SVN: r2171
1992-09-19 15:44:05 -04:00
Richard Kenner
4d9d7d9d35 (reg_set_last): Allow old value to be a SUBREG.
From-SVN: r2170
1992-09-19 15:42:53 -04:00
Richard Kenner
95ac8e67bc (smax, smin, umax, umin): Add define_splits.
From-SVN: r2169
1992-09-19 15:42:00 -04:00
Richard Kenner
df3d94ed38 (print_operand, case 'h', 'H', 'w'): Minor cleanups.
From-SVN: r2168
1992-09-19 15:41:16 -04:00