Index: src/PNaClTranslator.cpp |
diff --git a/src/PNaClTranslator.cpp b/src/PNaClTranslator.cpp |
index bdb524c4394d90f9bcaef5697fa1b4cdba3c7f9e..ddf6342e32b9fd50a8da74a43dda925c88d80d92 100644 |
--- a/src/PNaClTranslator.cpp |
+++ b/src/PNaClTranslator.cpp |
@@ -250,11 +250,6 @@ public: |
size_t getNumTypeIDValues() const { return TypeIDValues.size(); } |
- /// Returns true if generation of Subzero IR is disabled. |
- bool isIRGenerationDisabled() const { |
- return Translator.getFlags().getDisableIRGeneration(); |
- } |
- |
/// Returns the undefined type associated with type ID. Note: Returns extended |
/// type ready to be defined. |
ExtendedType *getTypeByIDForDefining(NaClBcIndexSize_t ID) { |
@@ -534,11 +529,8 @@ private: |
for (const Ice::FunctionDeclaration *Func : FunctionDeclarations) { |
if (!Func->verifyLinkageCorrect(Ctx)) |
reportLinkageError("Function", *Func); |
- Ice::Constant *C = nullptr; |
- if (!isIRGenerationDisabled()) { |
- C = getConstantSym(Func->getName(), Func->getSuppressMangling(), |
- Func->isProto()); |
- } |
+ Ice::Constant *C = getConstantSym( |
+ Func->getName(), Func->getSuppressMangling(), Func->isProto()); |
ValueIDConstants.push_back(C); |
} |
} |
@@ -549,11 +541,9 @@ private: |
for (const Ice::VariableDeclaration *Decl : *VariableDeclarations) { |
if (!Decl->verifyLinkageCorrect(Ctx)) |
reportLinkageError("Global", *Decl); |
- Ice::Constant *C = nullptr; |
- if (!isIRGenerationDisabled()) { |
- C = getConstantSym(Decl->getName(), Decl->getSuppressMangling(), |
- !Decl->hasInitializer()); |
- } |
+ Ice::Constant *C = |
+ getConstantSym(Decl->getName(), Decl->getSuppressMangling(), |
+ !Decl->hasInitializer()); |
ValueIDConstants.push_back(C); |
} |
} |
@@ -681,10 +671,6 @@ protected: |
const Ice::ClFlags &getFlags() const { return getTranslator().getFlags(); } |
- bool isIRGenerationDisabled() const { |
- return getTranslator().getFlags().getDisableIRGeneration(); |
- } |
- |
// Default implementation. Reports that block is unknown and skips its |
// contents. |
bool ParseBlock(unsigned BlockID) override; |
@@ -1145,11 +1131,9 @@ void GlobalsParser::ProcessRecord() { |
uint32_t Alignment = |
Context->extractAlignment(this, "Global variable", Values[0]); |
CurGlobalVar = getGlobalVarByID(NextGlobalID); |
- if (!isIRGenerationDisabled()) { |
- InitializersNeeded = 1; |
- CurGlobalVar->setAlignment(Alignment); |
- CurGlobalVar->setIsConstant(Values[1] != 0); |
- } |
+ InitializersNeeded = 1; |
+ CurGlobalVar->setAlignment(Alignment); |
+ CurGlobalVar->setIsConstant(Values[1] != 0); |
++NextGlobalID; |
return; |
} |
@@ -1169,16 +1153,12 @@ void GlobalsParser::ProcessRecord() { |
Error(StrBuf.str()); |
return; |
} |
- if (isIRGenerationDisabled()) |
- return; |
InitializersNeeded = Values[0]; |
return; |
case naclbitc::GLOBALVAR_ZEROFILL: { |
// ZEROFILL: [size] |
if (!isValidRecordSize(1, "zerofill")) |
return; |
- if (isIRGenerationDisabled()) |
- return; |
CurGlobalVar->addInitializer( |
Ice::VariableDeclaration::ZeroInitializer::create(Values[0])); |
return; |
@@ -1187,8 +1167,6 @@ void GlobalsParser::ProcessRecord() { |
// DATA: [b0, b1, ...] |
if (!isValidRecordSizeAtLeast(1, "data")) |
return; |
- if (isIRGenerationDisabled()) |
- return; |
CurGlobalVar->addInitializer( |
Ice::VariableDeclaration::DataInitializer::create(Values)); |
return; |
@@ -1197,8 +1175,6 @@ void GlobalsParser::ProcessRecord() { |
// RELOC: [val, [addend]] |
if (!isValidRecordSizeInRange(1, 2, "reloc")) |
return; |
- if (isIRGenerationDisabled()) |
- return; |
NaClBcIndexSize_t Index = Values[0]; |
NaClBcIndexSize_t IndexLimit = SpecifiedNumberVars + NumFunctionIDs; |
if (Index >= IndexLimit) { |
@@ -1365,22 +1341,16 @@ public: |
// TODO(kschimpf) Clean up API to add a function signature to a CFG. |
const Ice::FuncSigType &Signature = FuncDecl->getSignature(); |
- if (isIRGenerationDisabled()) { |
- CurrentNode = nullptr; |
- for (Ice::Type ArgType : Signature.getArgList()) { |
- (void)ArgType; |
- setNextLocalInstIndex(nullptr); |
- } |
- } else { |
- Func->setFunctionName(FuncDecl->getName()); |
- Func->setReturnType(Signature.getReturnType()); |
- Func->setInternal(FuncDecl->getLinkage() == GlobalValue::InternalLinkage); |
- CurrentNode = installNextBasicBlock(); |
- Func->setEntryNode(CurrentNode); |
- for (Ice::Type ArgType : Signature.getArgList()) { |
- Func->addArg(getNextInstVar(ArgType)); |
- } |
+ |
+ Func->setFunctionName(FuncDecl->getName()); |
+ Func->setReturnType(Signature.getReturnType()); |
+ Func->setInternal(FuncDecl->getLinkage() == GlobalValue::InternalLinkage); |
+ CurrentNode = installNextBasicBlock(); |
+ Func->setEntryNode(CurrentNode); |
+ for (Ice::Type ArgType : Signature.getArgList()) { |
+ Func->addArg(getNextInstVar(ArgType)); |
} |
+ |
bool ParserResult = ParseThisBlock(); |
// Temporarily end per-function timing, which will be resumed by the |
@@ -1424,8 +1394,6 @@ public: |
if (Index < CachedNumGlobalValueIDs) { |
return Context->getGlobalConstantByID(Index); |
} |
- if (isIRGenerationDisabled()) |
- return nullptr; |
NaClBcIndexSize_t LocalIndex = Index - CachedNumGlobalValueIDs; |
if (LocalIndex >= LocalOperands.size()) |
reportGetOperandUndefined(Index); |
@@ -1480,14 +1448,12 @@ private: |
// Creates and appends a new basic block to the list of basic blocks. |
Ice::CfgNode *installNextBasicBlock() { |
- assert(!isIRGenerationDisabled()); |
Ice::CfgNode *Node = Func->makeNode(); |
return Node; |
} |
// Returns the Index-th basic block in the list of basic blocks. |
Ice::CfgNode *getBasicBlock(NaClBcIndexSize_t Index) { |
- assert(!isIRGenerationDisabled()); |
if (Index >= Func->getNumNodes()) { |
std::string Buffer; |
raw_string_ostream StrBuf(Buffer); |
@@ -1503,7 +1469,6 @@ private: |
// Index corresponds to a branch instruction. Hence, if the branch references |
// the entry block, it also generates a corresponding error. |
Ice::CfgNode *getBranchBasicBlock(NaClBcIndexSize_t Index) { |
- assert(!isIRGenerationDisabled()); |
if (Index == 0) { |
Error("Branch to entry block not allowed"); |
} |
@@ -1512,7 +1477,6 @@ private: |
// Generate an instruction variable with type Ty. |
Ice::Variable *createInstVar(Ice::Type Ty) { |
- assert(!isIRGenerationDisabled()); |
if (Ty == Ice::IceType_void) { |
Error("Can't define instruction value using type void"); |
// Recover since we can't throw an exception. |
@@ -1523,7 +1487,6 @@ private: |
// Generates the next available local variable using the given type. |
Ice::Variable *getNextInstVar(Ice::Type Ty) { |
- assert(!isIRGenerationDisabled()); |
assert(NextLocalInstIndex >= CachedNumGlobalValueIDs); |
// Before creating one, see if a forwardtyperef has already defined it. |
NaClBcIndexSize_t LocalIndex = NextLocalInstIndex - CachedNumGlobalValueIDs; |
@@ -1566,7 +1529,7 @@ private: |
// Sets element Index (in the local operands list) to Op. |
void setOperand(NaClBcIndexSize_t Index, Ice::Operand *Op) { |
- assert(Op || isIRGenerationDisabled()); |
+ assert(Op); |
// Check if simple push works. |
NaClBcIndexSize_t LocalIndex = Index - CachedNumGlobalValueIDs; |
if (LocalIndex == LocalOperands.size()) { |
@@ -2134,8 +2097,6 @@ void FunctionParser::ExitBlock() { |
// Check if the last instruction in the function was terminating. |
if (!InstIsTerminating) { |
Error("Last instruction in function not terminator"); |
- if (isIRGenerationDisabled()) |
- return; |
// Recover by inserting an unreachable instruction. |
CurrentNode->appendInst(Ice::InstUnreachable::create(Func.get())); |
} |
@@ -2147,8 +2108,6 @@ void FunctionParser::ExitBlock() { |
<< " basic blocks, but defined " << CurrentBbIndex << "."; |
Error(StrBuf.str()); |
} |
- if (isIRGenerationDisabled()) |
- return; |
// Before translating, check for blocks without instructions, and insert |
// unreachable. This shouldn't happen, but be safe. |
size_t Index = 0; |
@@ -2183,8 +2142,7 @@ void FunctionParser::ProcessRecord() { |
if (InstIsTerminating) { |
InstIsTerminating = false; |
++CurrentBbIndex; |
- if (!isIRGenerationDisabled()) |
- CurrentNode = getBasicBlock(CurrentBbIndex); |
+ CurrentNode = getBasicBlock(CurrentBbIndex); |
} |
// The base index for relative indexing. |
NaClBcIndexSize_t BaseIndex = getNextInstIndex(); |
@@ -2217,8 +2175,6 @@ void FunctionParser::ProcessRecord() { |
} |
DeclaredNumberBbs = NumBbs; |
- if (isIRGenerationDisabled()) |
- return; |
// Install the basic blocks, skipping bb0 which was created in the |
// constructor. |
for (size_t i = 1; i < NumBbs; ++i) |
@@ -2231,11 +2187,6 @@ void FunctionParser::ProcessRecord() { |
return; |
Ice::Operand *Op1 = getRelativeOperand(Values[0], BaseIndex); |
Ice::Operand *Op2 = getRelativeOperand(Values[1], BaseIndex); |
- if (isIRGenerationDisabled()) { |
- assert(Op1 == nullptr && Op2 == nullptr); |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
Ice::Type Type1 = Op1->getType(); |
Ice::Type Type2 = Op2->getType(); |
if (Type1 != Type2) { |
@@ -2263,11 +2214,6 @@ void FunctionParser::ProcessRecord() { |
Ice::Operand *Src = getRelativeOperand(Values[0], BaseIndex); |
Ice::Type CastType = Context->getSimpleTypeByID(Values[1]); |
Ice::InstCast::OpKind CastKind; |
- if (isIRGenerationDisabled()) { |
- assert(Src == nullptr); |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
if (!convertCastOpToIceOp(Values[2], Src->getType(), CastType, CastKind)) { |
appendErrorInstruction(CastType); |
return; |
@@ -2283,11 +2229,6 @@ void FunctionParser::ProcessRecord() { |
Ice::Operand *ThenVal = getRelativeOperand(Values[0], BaseIndex); |
Ice::Operand *ElseVal = getRelativeOperand(Values[1], BaseIndex); |
Ice::Operand *CondVal = getRelativeOperand(Values[2], BaseIndex); |
- if (isIRGenerationDisabled()) { |
- assert(ThenVal == nullptr && ElseVal == nullptr && CondVal == nullptr); |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
Ice::Type ThenType = ThenVal->getType(); |
Ice::Type ElseType = ElseVal->getType(); |
if (ThenType != ElseType) { |
@@ -2331,11 +2272,6 @@ void FunctionParser::ProcessRecord() { |
return; |
Ice::Operand *Vec = getRelativeOperand(Values[0], BaseIndex); |
Ice::Operand *Index = getRelativeOperand(Values[1], BaseIndex); |
- if (isIRGenerationDisabled()) { |
- assert(Vec == nullptr && Index == nullptr); |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
Ice::Type VecType = Vec->getType(); |
VectorIndexCheckValue IndexCheckValue = validateVectorIndex(Vec, Index); |
if (IndexCheckValue != VectorIndexValid) { |
@@ -2359,11 +2295,6 @@ void FunctionParser::ProcessRecord() { |
Ice::Operand *Vec = getRelativeOperand(Values[0], BaseIndex); |
Ice::Operand *Elt = getRelativeOperand(Values[1], BaseIndex); |
Ice::Operand *Index = getRelativeOperand(Values[2], BaseIndex); |
- if (isIRGenerationDisabled()) { |
- assert(Vec == nullptr && Elt == nullptr && Index == nullptr); |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
Ice::Type VecType = Vec->getType(); |
VectorIndexCheckValue IndexCheckValue = validateVectorIndex(Vec, Index); |
if (IndexCheckValue != VectorIndexValid) { |
@@ -2397,11 +2328,6 @@ void FunctionParser::ProcessRecord() { |
return; |
Ice::Operand *Op1 = getRelativeOperand(Values[0], BaseIndex); |
Ice::Operand *Op2 = getRelativeOperand(Values[1], BaseIndex); |
- if (isIRGenerationDisabled()) { |
- assert(Op1 == nullptr && Op2 == nullptr); |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
Ice::Type Op1Type = Op1->getType(); |
Ice::Type Op2Type = Op2->getType(); |
Ice::Type DestType = getCompareResultType(Op1Type); |
@@ -2463,15 +2389,9 @@ void FunctionParser::ProcessRecord() { |
if (!isValidRecordSizeInRange(0, 1, "return")) |
return; |
if (Values.empty()) { |
- if (isIRGenerationDisabled()) |
- return; |
CurrentNode->appendInst(Ice::InstRet::create(Func.get())); |
} else { |
Ice::Operand *RetVal = getRelativeOperand(Values[0], BaseIndex); |
- if (isIRGenerationDisabled()) { |
- assert(RetVal == nullptr); |
- return; |
- } |
CurrentNode->appendInst(Ice::InstRet::create(Func.get(), RetVal)); |
} |
return; |
@@ -2480,8 +2400,6 @@ void FunctionParser::ProcessRecord() { |
InstIsTerminating = true; |
if (Values.size() == 1) { |
// BR: [bb#] |
- if (isIRGenerationDisabled()) |
- return; |
Ice::CfgNode *Block = getBranchBasicBlock(Values[0]); |
if (Block == nullptr) |
return; |
@@ -2491,10 +2409,6 @@ void FunctionParser::ProcessRecord() { |
if (!isValidRecordSize(3, "branch")) |
return; |
Ice::Operand *Cond = getRelativeOperand(Values[2], BaseIndex); |
- if (isIRGenerationDisabled()) { |
- assert(Cond == nullptr); |
- return; |
- } |
if (Cond->getType() != Ice::IceType_i1) { |
std::string Buffer; |
raw_string_ostream StrBuf(Buffer); |
@@ -2535,10 +2449,7 @@ void FunctionParser::ProcessRecord() { |
Ice::SizeT BitWidth = Ice::getScalarIntBitWidth(CondTy); |
Ice::Operand *Cond = getRelativeOperand(Values[1], BaseIndex); |
- const bool isIRGenDisabled = isIRGenerationDisabled(); |
- if (isIRGenDisabled) { |
- assert(Cond == nullptr); |
- } else if (CondTy != Cond->getType()) { |
+ if (CondTy != Cond->getType()) { |
std::string Buffer; |
raw_string_ostream StrBuf(Buffer); |
StrBuf << "Case condition expects type " << CondTy |
@@ -2546,8 +2457,7 @@ void FunctionParser::ProcessRecord() { |
Error(StrBuf.str()); |
return; |
} |
- Ice::CfgNode *DefaultLabel = |
- isIRGenDisabled ? nullptr : getBranchBasicBlock(Values[2]); |
+ Ice::CfgNode *DefaultLabel = getBranchBasicBlock(Values[2]); |
if (DefaultLabel == nullptr) |
return; |
uint64_t NumCasesRaw = Values[3]; |
@@ -2564,9 +2474,7 @@ void FunctionParser::ProcessRecord() { |
if (!isValidRecordSize(4 + NumCases * 4, "switch")) |
return; |
std::unique_ptr<Ice::InstSwitch> Switch( |
- isIRGenDisabled ? nullptr |
- : Ice::InstSwitch::create(Func.get(), NumCases, Cond, |
- DefaultLabel)); |
+ Ice::InstSwitch::create(Func.get(), NumCases, Cond, DefaultLabel)); |
unsigned ValCaseIndex = 4; // index to beginning of case entry. |
for (uint32_t CaseIndex = 0; CaseIndex < NumCases; |
++CaseIndex, ValCaseIndex += 4) { |
@@ -2580,15 +2488,11 @@ void FunctionParser::ProcessRecord() { |
} |
BitcodeInt Value(BitWidth, |
NaClDecodeSignRotatedValue(Values[ValCaseIndex + 2])); |
- if (isIRGenDisabled) |
- continue; |
Ice::CfgNode *Label = getBranchBasicBlock(Values[ValCaseIndex + 3]); |
if (Label == nullptr) |
return; |
Switch->addBranch(CaseIndex, Value.getSExtValue(), Label); |
} |
- if (isIRGenDisabled) |
- return; |
CurrentNode->appendInst(Switch.release()); |
return; |
} |
@@ -2597,8 +2501,6 @@ void FunctionParser::ProcessRecord() { |
InstIsTerminating = true; |
if (!isValidRecordSize(0, "unreachable")) |
return; |
- if (isIRGenerationDisabled()) |
- return; |
CurrentNode->appendInst(Ice::InstUnreachable::create(Func.get())); |
return; |
} |
@@ -2620,15 +2522,6 @@ void FunctionParser::ProcessRecord() { |
Error("Phi record using type void not allowed"); |
return; |
} |
- if (isIRGenerationDisabled()) { |
- // Verify arguments are defined before quitting. |
- for (unsigned i = 1; i < Values.size(); i += 2) { |
- assert(getRelativeOperand(NaClDecodeSignRotatedValue(Values[i]), |
- BaseIndex) == nullptr); |
- } |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
Ice::Variable *Dest = getNextInstVar(Ty); |
Ice::InstPhi *Phi = |
Ice::InstPhi::create(Func.get(), Values.size() >> 1, Dest); |
@@ -2655,11 +2548,6 @@ void FunctionParser::ProcessRecord() { |
return; |
Ice::Operand *ByteCount = getRelativeOperand(Values[0], BaseIndex); |
uint32_t Alignment = Context->extractAlignment(this, "Alloca", Values[1]); |
- if (isIRGenerationDisabled()) { |
- assert(ByteCount == nullptr); |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
Ice::Type PtrTy = Ice::getPointerType(); |
if (ByteCount->getType() != Ice::IceType_i32) { |
std::string Buffer; |
@@ -2680,11 +2568,6 @@ void FunctionParser::ProcessRecord() { |
Ice::Operand *Address = getRelativeOperand(Values[0], BaseIndex); |
Ice::Type Ty = Context->getSimpleTypeByID(Values[2]); |
uint32_t Alignment = Context->extractAlignment(this, "Load", Values[1]); |
- if (isIRGenerationDisabled()) { |
- assert(Address == nullptr); |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
if (!isValidPointerType(Address, "Load")) { |
appendErrorInstruction(Ty); |
return; |
@@ -2704,10 +2587,6 @@ void FunctionParser::ProcessRecord() { |
Ice::Operand *Address = getRelativeOperand(Values[0], BaseIndex); |
Ice::Operand *Value = getRelativeOperand(Values[1], BaseIndex); |
uint32_t Alignment = Context->extractAlignment(this, "Store", Values[2]); |
- if (isIRGenerationDisabled()) { |
- assert(Address == nullptr && Value == nullptr); |
- return; |
- } |
if (!isValidPointerType(Address, "Store")) |
return; |
if (!isValidLoadStoreAlignment(Alignment, Value->getType(), "Store")) |
@@ -2785,19 +2664,17 @@ void FunctionParser::ProcessRecord() { |
} else { // Record.GetCode() == naclbitc::FUNC_CODE_INST_CALL_INDIRECT |
// There is no signature. Assume defined by parameter types. |
ReturnType = Context->getSimpleTypeByID(Values[2]); |
- if (!isIRGenerationDisabled() && Callee != nullptr) |
+ if (Callee != nullptr) |
isValidPointerType(Callee, "Call indirect"); |
} |
- if (Callee == nullptr && !isIRGenerationDisabled()) |
+ if (Callee == nullptr) |
return; |
// Extract out the the call parameters. |
SmallVector<Ice::Operand *, 8> Params; |
for (Ice::SizeT Index = ParamsStartIndex; Index < Values.size(); ++Index) { |
Ice::Operand *Op = getRelativeOperand(Values[Index], BaseIndex); |
- if (isIRGenerationDisabled()) |
- continue; |
if (Op == nullptr) { |
std::string Buffer; |
raw_string_ostream StrBuf(Buffer); |
@@ -2821,12 +2698,6 @@ void FunctionParser::ProcessRecord() { |
ReturnType = Ice::IceType_i32; |
} |
- if (isIRGenerationDisabled()) { |
- if (ReturnType != Ice::IceType_void) |
- setNextLocalInstIndex(nullptr); |
- return; |
- } |
- |
// Type check call parameters. |
for (Ice::SizeT Index = 0; Index < Params.size(); ++Index) { |
Ice::Operand *Op = Params[Index]; |
@@ -2883,8 +2754,7 @@ void FunctionParser::ProcessRecord() { |
if (!isValidRecordSize(2, "forward type ref")) |
return; |
Ice::Type OpType = Context->getSimpleTypeByID(Values[1]); |
- setOperand(Values[0], |
- isIRGenerationDisabled() ? nullptr : createInstVar(OpType)); |
+ setOperand(Values[0], createInstVar(OpType)); |
return; |
} |
default: |
@@ -2949,10 +2819,6 @@ void ConstantsParser::ProcessRecord() { |
return; |
if (!isValidNextConstantType()) |
return; |
- if (isIRGenerationDisabled()) { |
- FuncParser->setNextConstantID(nullptr); |
- return; |
- } |
FuncParser->setNextConstantID( |
getContext()->getConstantUndef(NextConstantType)); |
return; |
@@ -2963,10 +2829,6 @@ void ConstantsParser::ProcessRecord() { |
return; |
if (!isValidNextConstantType()) |
return; |
- if (isIRGenerationDisabled()) { |
- FuncParser->setNextConstantID(nullptr); |
- return; |
- } |
if (Ice::isScalarIntegerType(NextConstantType)) { |
BitcodeInt Value(Ice::getScalarIntBitWidth(NextConstantType), |
NaClDecodeSignRotatedValue(Values[0])); |
@@ -2989,10 +2851,6 @@ void ConstantsParser::ProcessRecord() { |
return; |
if (!isValidNextConstantType()) |
return; |
- if (isIRGenerationDisabled()) { |
- FuncParser->setNextConstantID(nullptr); |
- return; |
- } |
switch (NextConstantType) { |
case Ice::IceType_f32: { |
const BitcodeInt Value(32, static_cast<uint32_t>(Values[0])); |
@@ -3067,8 +2925,6 @@ void FunctionValuesymtabParser::setValueName(NaClBcIndexSize_t Index, |
reportUnableToAssign("Global value", Index, Name); |
return; |
} |
- if (isIRGenerationDisabled()) |
- return; |
Ice::Operand *Op = getFunctionParser()->getOperand(Index); |
if (auto *V = dyn_cast<Ice::Variable>(Op)) { |
if (Ice::BuildDefs::dump()) { |
@@ -3084,8 +2940,6 @@ void FunctionValuesymtabParser::setBbName(NaClBcIndexSize_t Index, |
StringType &Name) { |
if (!Ice::BuildDefs::dump()) |
return; |
- if (isIRGenerationDisabled()) |
- return; |
if (Index >= getFunctionParser()->getFunc()->getNumNodes()) { |
reportUnableToAssign("Basic block", Index, Name); |
return; |