@@ -26,7 +26,7 @@ void Block::useDefScan() {
2626 if (i.op == MIDADD || i.op == MIDSUB || i.op == MIDMULT
2727 || i.op == MIDDIV || i.op == MIDLSS || i.op == MIDLEQ
2828 || i.op == MIDGRE || i.op == MIDGEQ || i.op == MIDEQL
29- || i.op == MIDNEQ||i.op ==MIDARRAYGET) {
29+ || i.op == MIDNEQ||i.op ==MIDARRAYGET||i. op ==MIDREM ) {
3030 use.erase (i.target );
3131 def.insert (i.target );
3232 if (!i.isImmediate1 ) {
@@ -97,7 +97,7 @@ vector<vector<int>>Block::conflictEdgeAnalyze(){
9797 if (i.op == MIDADD || i.op == MIDSUB || i.op == MIDMULT
9898 || i.op == MIDDIV || i.op == MIDLSS || i.op == MIDLEQ
9999 || i.op == MIDGRE || i.op == MIDGEQ || i.op == MIDEQL
100- || i.op == MIDNEQ || i.op == MIDARRAYGET) {
100+ || i.op == MIDNEQ || i.op == MIDARRAYGET||i. op ==MIDREM ) {
101101 localActive.erase (i.target );
102102 if (!i.isImmediate1 ) {
103103 localActive.insert (i.operand1 );
@@ -190,6 +190,16 @@ void Block::eliminateDeadCode() {
190190 v=eliminator.eliminateDeadCode (v);
191191}
192192
193+ void Block::blockOptimize () {
194+ BlockOptimization bop (activeOut);
195+ v = bop.propagationInBlock (v);
196+ }
197+
198+ void Block::peepholeOptimize () {
199+ PeepHoleOptimization opt;
200+ v = opt.peepHoleOptimization (v);
201+ }
202+
193203set<int >Block::setUnion (set<int > a, set<int > b) {
194204 set<int >res;
195205 for (int i : a) {
@@ -258,10 +268,6 @@ ostream& operator<<(ostream& out, Block b) {
258268 return out;
259269}
260270
261- void Block::blockOptimize () {
262- BlockOptimization bop (activeOut);
263- v = bop.propagationInBlock (v);
264- }
265271
266272void Block::activeVariableAnalyzePerLine () {
267273 set<int >localActive = activeOut;
@@ -272,7 +278,7 @@ void Block::activeVariableAnalyzePerLine() {
272278 if (i.op == MIDADD || i.op == MIDSUB || i.op == MIDMULT
273279 || i.op == MIDDIV || i.op == MIDLSS || i.op == MIDLEQ
274280 || i.op == MIDGRE || i.op == MIDGEQ || i.op == MIDEQL
275- || i.op == MIDNEQ || i.op == MIDARRAYGET) {
281+ || i.op == MIDNEQ || i.op == MIDARRAYGET||i. op ==MIDREM ) {
276282 localActive.erase (i.target );
277283 if (!i.isImmediate1 ) {
278284 localActive.insert (i.operand1 );
0 commit comments