(combine_instructions): Initialize it. (set_significant): Set it. (try_combine): Set subst_low_cuid immediately before calling `subst' to the INSN_CUID of the lowest insn involved in the call. Change XOR with out-of-range constant to (not (xor ...)). Call both split_insns and find_split_point; pass extra parm to find_split_point. Record I2DEST's value if I2 now sets it; similarly for I1DEST. (find_split_point): Add new arg INSN. If AND'ing with a large single-bit constant and we only care about equality with zero, replace with bit extraction. Make two shifts for ZERO_EXTRACTs unless very narrow. (subst): Move RESTART label earlier. If we have a simple operation applied to IF_THEN_ELSE, move the operation inside the two arms. (subst, case SUBREG): Use force_to_mode. (subst, case NOT): Change (not (xor X C)) to (xor X ~C). (subst, case NEG): Remove (neg (abs X)); redundant. Convert (neg (xor A 1)) to (plus A -1) if A is known to be 0 or 1. (subst, case IF_THEN_ELSE): Simplify if an arm contains a register being tested by substiting the known value. Put constant integer in last arm if can reverse comparison. (subst, case SET): Use gen_lowpart_for_combine. (subst, case AND): Make IF_THEN_ELSE when appropriate. (subst, case IOR): (ior A C) can sometimes be just C. (subst, case XOR): Go back and restart when canonicalizing. (subst, case ABS): Use num_sign_bit_copies. (make_extraction): Call force_to_mode. (make_compound_operation): Look at optabs rather that explicitly checking for operations and assuming we have SImode. Handle (ashiftrt (OP (ashift foo C1) C3) C2). (force_to_mode): Only change mode of arithmetic if optab says we have operation in that mode. Remove unneeded ASHIFTRT; add handling for IF_THEN_ELSE. (significant_bits, case NEG): Call num_sign_bit_copies. (significant_bits, case ABS, case [US]{MIN,MAX}, IF_THEN_ELSE): New. (num_sign_bit_copies): New function. (simplify_shift_const): Remove ASHIFTRT if value is known -1 or 0. Use num_sign_bit_copies to simplify (ashiftrt (ashift ...) ...) and (ashiftrt (neg ...) ...). Remove now redundant case when VAROP is a PLUS. (simplify_comparison): If A is known to be -1 or 0, A != -1 is A == 0. Simplify unsigned tests that really check the sign bit. (simplify_comparison, case ASHIFTRT): Convert to LSHIFTRT if equality comparison with zero. (get_last_value): Check if the desired register is set in the insn before the one whose INSN_CUID is subst_low_cuid. From-SVN: r1746
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
config | Loading commit data... | |
ginclude | Loading commit data... | |
objc | Loading commit data... | |
Makefile.in | Loading commit data... | |
PROBLEMS | Loading commit data... | |
README-fixinc | Loading commit data... | |
README.TRAD | Loading commit data... | |
assert.h | Loading commit data... | |
basic-block.h | Loading commit data... | |
c-aux-info.c | Loading commit data... | |
c-common.c | Loading commit data... | |
c-convert.c | Loading commit data... | |
c-decl.c | Loading commit data... | |
c-lang.c | Loading commit data... | |
c-lex.c | Loading commit data... | |
c-lex.h | Loading commit data... | |
c-parse.gperf | Loading commit data... | |
c-pragma.c | Loading commit data... | |
c-tree.h | Loading commit data... | |
c-typeck.c | Loading commit data... | |
caller-save.c | Loading commit data... | |
calls.c | Loading commit data... | |
cccp.c | Loading commit data... | |
cexp.y | Loading commit data... | |
collect2.c | Loading commit data... | |
combine.c | Loading commit data... | |
conditions.h | Loading commit data... | |
config.sub | Loading commit data... | |
configure.bat | Loading commit data... | |
cpp.1 | Loading commit data... | |
cross-make | Loading commit data... | |
crtstuff.c | Loading commit data... | |
cse.c | Loading commit data... | |
dbxout.c | Loading commit data... | |
dbxstclass.h | Loading commit data... | |
defaults.h | Loading commit data... | |
dostage2 | Loading commit data... | |
dwarf.h | Loading commit data... | |
dwarfout.c | Loading commit data... | |
emit-rtl.c | Loading commit data... | |
enquire.c | Loading commit data... | |
explow.c | Loading commit data... | |
expmed.c | Loading commit data... | |
expr.c | Loading commit data... | |
expr.h | Loading commit data... | |
final.c | Loading commit data... | |
fixcpp | Loading commit data... | |
fixinc.svr4 | Loading commit data... | |
fixincludes | Loading commit data... | |
flags.h | Loading commit data... | |
flow.c | Loading commit data... | |
fold-const.c | Loading commit data... | |
function.c | Loading commit data... | |
function.h | Loading commit data... | |
gbl-ctors.h | Loading commit data... | |
gcc.c | Loading commit data... | |
genattr.c | Loading commit data... | |
genattrtab.c | Loading commit data... | |
gencodes.c | Loading commit data... | |
genconfig.c | Loading commit data... | |
genemit.c | Loading commit data... | |
genextract.c | Loading commit data... | |
genflags.c | Loading commit data... | |
genoutput.c | Loading commit data... | |
genpeep.c | Loading commit data... | |
genrecog.c | Loading commit data... | |
glimits.h | Loading commit data... | |
global.c | Loading commit data... | |
gsyms.h | Loading commit data... | |
halfpic.c | Loading commit data... | |
halfpic.h | Loading commit data... | |
hard-reg-set.h | Loading commit data... | |
input.h | Loading commit data... | |
integrate.c | Loading commit data... | |
integrate.h | Loading commit data... | |
jump.c | Loading commit data... | |
libgcc1.c | Loading commit data... | |
libgcc2.c | Loading commit data... | |
limitx.h | Loading commit data... | |
limity.h | Loading commit data... | |
local-alloc.c | Loading commit data... | |
longlong.h | Loading commit data... | |
loop.c | Loading commit data... | |
loop.h | Loading commit data... | |
machmode.def | Loading commit data... | |
machmode.h | Loading commit data... | |
make-cc1.com | Loading commit data... | |
make-cccp.com | Loading commit data... | |
make-gcc.com | Loading commit data... | |
make-l2.com | Loading commit data... | |
mips-tdump.c | Loading commit data... | |
mips-tfile.c | Loading commit data... | |
optabs.c | Loading commit data... | |
output.h | Loading commit data... | |
pcp.h | Loading commit data... | |
print-rtl.c | Loading commit data... | |
print-tree.c | Loading commit data... | |
protoize.c | Loading commit data... | |
real.h | Loading commit data... | |
recog.c | Loading commit data... | |
recog.h | Loading commit data... | |
reg-stack.c | Loading commit data... | |
regclass.c | Loading commit data... | |
regs.h | Loading commit data... | |
reload.c | Loading commit data... | |
reload.h | Loading commit data... | |
reload1.c | Loading commit data... | |
reorg.c | Loading commit data... | |
rtl.c | Loading commit data... | |
rtl.def | Loading commit data... | |
rtl.h | Loading commit data... | |
rtlanal.c | Loading commit data... | |
sched.c | Loading commit data... | |
sdbout.c | Loading commit data... | |
sort-protos | Loading commit data... | |
stack.h | Loading commit data... | |
stmt.c | Loading commit data... | |
stor-layout.c | Loading commit data... | |
stupid.c | Loading commit data... | |
sys-protos.h | Loading commit data... | |
sys-types.h | Loading commit data... | |
toplev.c | Loading commit data... | |
tree.c | Loading commit data... | |
tree.h | Loading commit data... | |
typeclass.h | Loading commit data... | |
unprotoize.c | Loading commit data... | |
unroll.c | Loading commit data... | |
varasm.c | Loading commit data... | |
vmsconfig.com | Loading commit data... | |
xcoffout.c | Loading commit data... | |
xcoffout.h | Loading commit data... |