Branch fusing
A belated birthday gift for irogers. Fuse cmp-long/if-XXz,
cmp[lg]-[float|double]/if-XXz.
Change-Id: I8fa87f620fcf4e6bcf291bbc7a0ea6c8f5535467
diff --git a/src/compiler/CompilerIR.h b/src/compiler/CompilerIR.h
index 25fc89e..621cccc 100644
--- a/src/compiler/CompilerIR.h
+++ b/src/compiler/CompilerIR.h
@@ -161,10 +161,16 @@
enum ExtendedMIROpcode {
kMirOpFirst = kNumPackedOpcodes,
kMirOpPhi = kMirOpFirst,
+ kMirOpCopy,
+ kMirOpFusedCmplFloat,
+ kMirOpFusedCmpgFloat,
+ kMirOpFusedCmplDouble,
+ kMirOpFusedCmpgDouble,
+ kMirOpFusedCmpLong,
+ kMirOpNop,
kMirOpNullNRangeUpCheck,
kMirOpNullNRangeDownCheck,
kMirOpLowerBound,
- kMirOpCopy,
kMirOpLast,
};
@@ -343,7 +349,8 @@
MIR* phiList;
/* Use counts of ssa names */
- GrowableList useCounts;
+ GrowableList useCounts; // Weighted by nesting depth
+ GrowableList rawUseCounts; // Not weighted
/* Optimization support */
GrowableList loopHeaders;