@@ -26,7 +26,7 @@ void Block::useDefScan() {
26
26
if (i.op == MIDADD || i.op == MIDSUB || i.op == MIDMULT
27
27
|| i.op == MIDDIV || i.op == MIDLSS || i.op == MIDLEQ
28
28
|| 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 ) {
30
30
use.erase (i.target );
31
31
def.insert (i.target );
32
32
if (!i.isImmediate1 ) {
@@ -97,7 +97,7 @@ vector<vector<int>>Block::conflictEdgeAnalyze(){
97
97
if (i.op == MIDADD || i.op == MIDSUB || i.op == MIDMULT
98
98
|| i.op == MIDDIV || i.op == MIDLSS || i.op == MIDLEQ
99
99
|| 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 ) {
101
101
localActive.erase (i.target );
102
102
if (!i.isImmediate1 ) {
103
103
localActive.insert (i.operand1 );
@@ -190,6 +190,16 @@ void Block::eliminateDeadCode() {
190
190
v=eliminator.eliminateDeadCode (v);
191
191
}
192
192
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
+
193
203
set<int >Block::setUnion (set<int > a, set<int > b) {
194
204
set<int >res;
195
205
for (int i : a) {
@@ -258,10 +268,6 @@ ostream& operator<<(ostream& out, Block b) {
258
268
return out;
259
269
}
260
270
261
- void Block::blockOptimize () {
262
- BlockOptimization bop (activeOut);
263
- v = bop.propagationInBlock (v);
264
- }
265
271
266
272
void Block::activeVariableAnalyzePerLine () {
267
273
set<int >localActive = activeOut;
@@ -272,7 +278,7 @@ void Block::activeVariableAnalyzePerLine() {
272
278
if (i.op == MIDADD || i.op == MIDSUB || i.op == MIDMULT
273
279
|| i.op == MIDDIV || i.op == MIDLSS || i.op == MIDLEQ
274
280
|| 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 ) {
276
282
localActive.erase (i.target );
277
283
if (!i.isImmediate1 ) {
278
284
localActive.insert (i.operand1 );
0 commit comments