Stop processing invalidated instructions in dataflow
This commit is contained in:
parent
9129d48429
commit
bb007ddefc
@ -885,6 +885,7 @@ void BB::findBBExps(LOCAL_ID &locals,Function *fnc)
|
|||||||
auto valid_and_highlevel = instructions | filtered(ICODE::TypeAndValidFilter<HIGH_LEVEL>());
|
auto valid_and_highlevel = instructions | filtered(ICODE::TypeAndValidFilter<HIGH_LEVEL>());
|
||||||
for (auto picode = valid_and_highlevel.begin(); picode != valid_and_highlevel.end(); picode++)
|
for (auto picode = valid_and_highlevel.begin(); picode != valid_and_highlevel.end(); picode++)
|
||||||
{
|
{
|
||||||
|
ICODE &_ic(*picode);
|
||||||
HLTYPE &_icHl(*picode->hlU());
|
HLTYPE &_icHl(*picode->hlU());
|
||||||
numHlIcodes++;
|
numHlIcodes++;
|
||||||
if (picode->du1.getNumRegsDef() == 1) /* uint8_t/uint16_t regs */
|
if (picode->du1.getNumRegsDef() == 1) /* uint8_t/uint16_t regs */
|
||||||
@ -1115,6 +1116,10 @@ void BB::findBBExps(LOCAL_ID &locals,Function *fnc)
|
|||||||
} /* eos */
|
} /* eos */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( not _ic.valid())
|
||||||
|
continue; // instruction was invalidated, try the next one
|
||||||
|
|
||||||
/* HLI_PUSH doesn't define any registers, only uses registers.
|
/* HLI_PUSH doesn't define any registers, only uses registers.
|
||||||
* Push the associated expression to the register on the local
|
* Push the associated expression to the register on the local
|
||||||
* expression stack */
|
* expression stack */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user