Commit Graph

2196 Commits

Author SHA1 Message Date
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
Richard Kenner
ef457bda4a (PROMOTE_MODE): New macro.
(BRANCH_COST): Increase from 2 to 3.

From-SVN: r2167
1992-09-19 15:40:40 -04:00
Richard Kenner
2f62200546 ({load,store}_multiple): Use MATCH_PAR_DUP.
From-SVN: r2166
1992-09-19 15:38:28 -04:00
Richard Stallman
b6b19f41c6 (fold_convert): Avoid using conversion of unsigned
to floating; offset value by hand to fit in signed type.

From-SVN: r2165
1992-09-19 19:00:40 +00:00
Richard Stallman
91f9a6ede4 (find_reloads): Always use >= with FIRST_PSEUDO_REGISTER.
From-SVN: r2164
1992-09-19 18:53:18 +00:00
James Van Artsdalen
afc2c5a76f (sCOND patterns): Don't allow a MEM in the SET_DEST...
(sCOND patterns): Don't allow a MEM in the SET_DEST, because these insns
can't have input reloads, and a MEM might need an input address reload.

From-SVN: r2163
1992-09-19 11:55:33 +00:00
Richard Stallman
91594e4329 (subst_constants): Do substitute in address of MEM dest.
From-SVN: r2162
1992-09-19 05:33:47 +00:00
Charles Hannum
65701fd247 Fix typo in init_reload.
From-SVN: r2161
1992-09-19 04:52:22 +00:00
Richard Stallman
e8d76a395e (fold_rtx): For SUBREG, actually test subreg_lowpart_p in the code to handle narrowing subregs.
(fold_rtx): For SUBREG, actually test subreg_lowpart_p in the
code to handle narrowing subregs.  And exclude binary ops like DIV
where truncating the args is not valid.

From-SVN: r2160
1992-09-19 04:48:37 +00:00
Richard Stallman
f0c70ef08a (initializer_constant_valid_p): Warn about address arithmetic destined for a type that's too narrow.
(initializer_constant_valid_p): Warn about address
arithmetic destined for a type that's too narrow.
New argument ENDTYPE.

From-SVN: r2159
1992-09-19 04:47:57 +00:00
Richard Stallman
ad38743d79 (exit): Declare _exit as volatile.
(__CTOR_LIST__, __DTOR_LIST__): Moved to separate member.

From-SVN: r2158
1992-09-19 04:47:11 +00:00
Richard Stallman
7e41ffa25c (assign_parms): Set MEM_IN_STRUCT_P right in stack slots.
From-SVN: r2157
1992-09-19 04:46:22 +00:00
Richard Stallman
73bdfabc83 Don't look for *.h symlinks if the host doesn't have symlinks.
From-SVN: r2156
1992-09-19 04:43:29 +00:00
Roland McGrath
9846fee016 entered into RCS
From-SVN: r2155
1992-09-18 23:59:45 +00:00
Michael Meissner
2bba3a75c6 Allow calls to absolute addresses.
From-SVN: r2154
1992-09-18 21:33:31 +00:00
Tom Wood
a5cc4aa982 (load store patterns): Prepend loads and stores with %V and %v to track the type and address of the access.
(load store patterns): Prepend loads and stores with %V
	and %v to track the type and address of the access.
(call_movstrsi_loop): Renamed from call_block_move_loop.
	Use call-value for the block move patterns.

From-SVN: r2153
1992-09-18 10:46:32 +00:00
Tom Wood
1039fa4646 *** empty log message ***
From-SVN: r2152
1992-09-18 10:43:20 +00:00
Tom Wood
454e03485b (PERFERRED_DEBUGGING_TYPE): Compute based on m88k_version.
(PERFERRED_DEBUGGING_TYPE): Compute based on
	m88k_version.
	(CPU_DEFAULT): Make it -m88000.

From-SVN: r2151
1992-09-18 10:42:19 +00:00
Tom Wood
08e8857cbb (m88k_volatile_code): New variable.
(print_operand): Track volatile memory references and output a
	serializing instruction before a load when necessary.
(m88k_version, m88k_version_0300): New variables.

From-SVN: r2150
1992-09-18 10:41:10 +00:00
Richard Stallman
0380c535b1 (install-common-headers): Don't copy byteorder.h.
From-SVN: r2149
1992-09-18 05:09:55 +00:00
Richard Stallman
47068b86eb Don't include-next if _LIBC_LIMITS_H_ defined.
From-SVN: r2148
1992-09-17 21:28:44 +00:00