Quick compiler: complete switch support
With this CL, all Dex opcodes are handled. We pass 79 run-tests,
and fail 12. Temporarily going single-threaded for the Quick
compiler (llvm's ir-builder dies otherwise - will figure out what I
need to do for multi-threaded operation in a later CL).
Change-Id: I389e94d9a831096d4e7493460729933fb45e649e
diff --git a/src/compiler/codegen/MethodCodegenDriver.cc b/src/compiler/codegen/MethodCodegenDriver.cc
index 62939ba..d49b329 100644
--- a/src/compiler/codegen/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/MethodCodegenDriver.cc
@@ -447,7 +447,7 @@
break;
case Instruction::SPARSE_SWITCH:
- genSparseSwitch(cUnit, vB, rlSrc[0], labelList);
+ genSparseSwitch(cUnit, vB, rlSrc[0]);
break;
case Instruction::CMPL_FLOAT:
@@ -878,7 +878,7 @@
bool methodBlockCodeGen(CompilationUnit* cUnit, BasicBlock* bb)
{
MIR* mir;
- LIR* labelList = (LIR*) cUnit->blockLabelList;
+ LIR* labelList = cUnit->blockLabelList;
int blockId = bb->id;
cUnit->curBlock = bb;
@@ -992,7 +992,7 @@
/* Set basic block labels */
bool labelBlocks(CompilationUnit* cUnit, BasicBlock* bb)
{
- LIR* labelList = (LIR*) cUnit->blockLabelList;
+ LIR* labelList = cUnit->blockLabelList;
int blockId = bb->id;
cUnit->curBlock = bb;
@@ -1037,7 +1037,7 @@
{
/* Used to hold the labels of each block */
cUnit->blockLabelList =
- (void *) oatNew(cUnit, sizeof(LIR) * cUnit->numBlocks, true, kAllocLIR);
+ (LIR*) oatNew(cUnit, sizeof(LIR) * cUnit->numBlocks, true, kAllocLIR);
oatDataFlowAnalysisDispatcher(cUnit, methodBlockCodeGen,
kPreOrderDFSTraversal, false /* Iterative */);