| OLD | NEW |
| 1 //===- subzero/src/PNaClTranslator.cpp - ICE from bitcode -----------------===// | 1 //===- subzero/src/PNaClTranslator.cpp - ICE from bitcode -----------------===// |
| 2 // | 2 // |
| 3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 // | 9 // |
| 10 // This file implements the PNaCl bitcode file to Ice, to machine code | 10 // This file implements the PNaCl bitcode file to Ice, to machine code |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 switch (Kind) { | 93 switch (Kind) { |
| 94 case ExtendedType::Undefined: | 94 case ExtendedType::Undefined: |
| 95 Stream << "Undefined"; | 95 Stream << "Undefined"; |
| 96 break; | 96 break; |
| 97 case ExtendedType::Simple: | 97 case ExtendedType::Simple: |
| 98 Stream << "Simple"; | 98 Stream << "Simple"; |
| 99 break; | 99 break; |
| 100 case ExtendedType::FuncSig: | 100 case ExtendedType::FuncSig: |
| 101 Stream << "FuncSig"; | 101 Stream << "FuncSig"; |
| 102 break; | 102 break; |
| 103 default: | |
| 104 Stream << "??"; | |
| 105 break; | |
| 106 } | 103 } |
| 107 return Stream; | 104 return Stream; |
| 108 } | 105 } |
| 109 | 106 |
| 110 // Models an ICE type as an extended type. | 107 // Models an ICE type as an extended type. |
| 111 class SimpleExtendedType : public ExtendedType { | 108 class SimpleExtendedType : public ExtendedType { |
| 112 SimpleExtendedType(const SimpleExtendedType &) = delete; | 109 SimpleExtendedType(const SimpleExtendedType &) = delete; |
| 113 SimpleExtendedType &operator=(const SimpleExtendedType &) = delete; | 110 SimpleExtendedType &operator=(const SimpleExtendedType &) = delete; |
| 114 public: | 111 public: |
| 115 Ice::Type getType() const { return Signature.getReturnType(); } | 112 Ice::Type getType() const { return Signature.getReturnType(); } |
| (...skipping 1311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1427 VectorIndexNotInRange, | 1424 VectorIndexNotInRange, |
| 1428 VectorIndexNotI32, | 1425 VectorIndexNotI32, |
| 1429 VectorIndexValid | 1426 VectorIndexValid |
| 1430 }; | 1427 }; |
| 1431 | 1428 |
| 1432 void dumpVectorIndexCheckValue(raw_ostream &Stream, | 1429 void dumpVectorIndexCheckValue(raw_ostream &Stream, |
| 1433 VectorIndexCheckValue Value) const { | 1430 VectorIndexCheckValue Value) const { |
| 1434 if (!ALLOW_DUMP) | 1431 if (!ALLOW_DUMP) |
| 1435 return; | 1432 return; |
| 1436 switch (Value) { | 1433 switch (Value) { |
| 1437 default: | |
| 1438 report_fatal_error("Unknown VectorIndexCheckValue"); | |
| 1439 break; | |
| 1440 case VectorIndexNotVector: | 1434 case VectorIndexNotVector: |
| 1441 Stream << "Vector index on non vector"; | 1435 Stream << "Vector index on non vector"; |
| 1442 break; | 1436 break; |
| 1443 case VectorIndexNotConstant: | 1437 case VectorIndexNotConstant: |
| 1444 Stream << "Vector index not integer constant"; | 1438 Stream << "Vector index not integer constant"; |
| 1445 break; | 1439 break; |
| 1446 case VectorIndexNotInRange: | 1440 case VectorIndexNotInRange: |
| 1447 Stream << "Vector index not in range of vector"; | 1441 Stream << "Vector index not in range of vector"; |
| 1448 break; | 1442 break; |
| 1449 case VectorIndexNotI32: | 1443 case VectorIndexNotI32: |
| (...skipping 1032 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2482 // Add parameters. | 2476 // Add parameters. |
| 2483 for (Ice::SizeT ParamIndex = 0; ParamIndex < NumParams; ++ParamIndex) { | 2477 for (Ice::SizeT ParamIndex = 0; ParamIndex < NumParams; ++ParamIndex) { |
| 2484 Inst->addArg( | 2478 Inst->addArg( |
| 2485 getRelativeOperand(Values[ParamsStartIndex + ParamIndex], BaseIndex)); | 2479 getRelativeOperand(Values[ParamsStartIndex + ParamIndex], BaseIndex)); |
| 2486 } | 2480 } |
| 2487 | 2481 |
| 2488 // If intrinsic call, validate call signature. | 2482 // If intrinsic call, validate call signature. |
| 2489 if (IntrinsicInfo) { | 2483 if (IntrinsicInfo) { |
| 2490 Ice::SizeT ArgIndex = 0; | 2484 Ice::SizeT ArgIndex = 0; |
| 2491 switch (IntrinsicInfo->validateCall(Inst, ArgIndex)) { | 2485 switch (IntrinsicInfo->validateCall(Inst, ArgIndex)) { |
| 2492 default: | |
| 2493 Error("Unknown validation error for intrinsic call"); | |
| 2494 // TODO(kschimpf) Remove error recovery once implementation complete. | |
| 2495 break; | |
| 2496 case Ice::Intrinsics::IsValidCall: | 2486 case Ice::Intrinsics::IsValidCall: |
| 2497 break; | 2487 break; |
| 2498 case Ice::Intrinsics::BadReturnType: { | 2488 case Ice::Intrinsics::BadReturnType: { |
| 2499 std::string Buffer; | 2489 std::string Buffer; |
| 2500 raw_string_ostream StrBuf(Buffer); | 2490 raw_string_ostream StrBuf(Buffer); |
| 2501 StrBuf << "Intrinsic call expects return type " | 2491 StrBuf << "Intrinsic call expects return type " |
| 2502 << IntrinsicInfo->getReturnType() | 2492 << IntrinsicInfo->getReturnType() |
| 2503 << ". Found: " << Inst->getReturnType(); | 2493 << ". Found: " << Inst->getReturnType(); |
| 2504 Error(StrBuf.str()); | 2494 Error(StrBuf.str()); |
| 2505 // TODO(kschimpf) Remove error recovery once implementation complete. | 2495 // TODO(kschimpf) Remove error recovery once implementation complete. |
| (...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2999 | 2989 |
| 3000 if (TopLevelBlocks != 1) { | 2990 if (TopLevelBlocks != 1) { |
| 3001 errs() << IRFilename | 2991 errs() << IRFilename |
| 3002 << ": Contains more than one module. Found: " << TopLevelBlocks | 2992 << ": Contains more than one module. Found: " << TopLevelBlocks |
| 3003 << "\n"; | 2993 << "\n"; |
| 3004 ErrorStatus = true; | 2994 ErrorStatus = true; |
| 3005 } | 2995 } |
| 3006 } | 2996 } |
| 3007 | 2997 |
| 3008 } // end of namespace Ice | 2998 } // end of namespace Ice |
| OLD | NEW |