Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: src/PNaClTranslator.cpp

Issue 798693003: Subzero: Don't store std::string objects inside Variable. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Code review changes Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« src/IceOperand.h ('K') | « src/IceTargetLoweringX8632.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 1068 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 return; 1079 return;
1080 } 1080 }
1081 default: 1081 default:
1082 break; 1082 break;
1083 } 1083 }
1084 // If reached, don't know how to handle record. 1084 // If reached, don't know how to handle record.
1085 BlockParserBaseClass::ProcessRecord(); 1085 BlockParserBaseClass::ProcessRecord();
1086 return; 1086 return;
1087 } 1087 }
1088 1088
1089 class FunctionValuesymtabParser;
1090
1091 /// Parses function blocks in the bitcode file. 1089 /// Parses function blocks in the bitcode file.
1092 class FunctionParser : public BlockParserBaseClass { 1090 class FunctionParser : public BlockParserBaseClass {
1093 FunctionParser(const FunctionParser &) = delete; 1091 FunctionParser(const FunctionParser &) = delete;
1094 FunctionParser &operator=(const FunctionParser &) = delete; 1092 FunctionParser &operator=(const FunctionParser &) = delete;
1095 1093
1096 public: 1094 public:
1097 FunctionParser(unsigned BlockID, BlockParserBaseClass *EnclosingParser) 1095 FunctionParser(unsigned BlockID, BlockParserBaseClass *EnclosingParser)
1098 : BlockParserBaseClass(BlockID, EnclosingParser), 1096 : BlockParserBaseClass(BlockID, EnclosingParser),
1099 Timer(Ice::TimerStack::TT_parseFunctions, getTranslator().getContext()), 1097 Timer(Ice::TimerStack::TT_parseFunctions, getTranslator().getContext()),
1100 Func(isIRGenerationDisabled() 1098 Func(isIRGenerationDisabled()
(...skipping 1555 matching lines...) Expand 10 before | Expand all | Expand 10 after
2656 // (FP->getOperand will create fatal error). 2654 // (FP->getOperand will create fatal error).
2657 if (Index < getFunctionParser()->getNumGlobalIDs()) { 2655 if (Index < getFunctionParser()->getNumGlobalIDs()) {
2658 reportUnableToAssign("instruction", Index, Name); 2656 reportUnableToAssign("instruction", Index, Name);
2659 // TODO(kschimpf) Remove error recovery once implementation complete. 2657 // TODO(kschimpf) Remove error recovery once implementation complete.
2660 return; 2658 return;
2661 } 2659 }
2662 if (isIRGenerationDisabled()) 2660 if (isIRGenerationDisabled())
2663 return; 2661 return;
2664 Ice::Operand *Op = getFunctionParser()->getOperand(Index); 2662 Ice::Operand *Op = getFunctionParser()->getOperand(Index);
2665 if (Ice::Variable *V = dyn_cast<Ice::Variable>(Op)) { 2663 if (Ice::Variable *V = dyn_cast<Ice::Variable>(Op)) {
2666 std::string Nm(Name.data(), Name.size()); 2664 if (ALLOW_DUMP) {
2667 V->setName(Nm); 2665 std::string Nm(Name.data(), Name.size());
2666 V->setName(getFunctionParser()->getFunc(), Nm);
2667 }
2668 } else { 2668 } else {
2669 reportUnableToAssign("variable", Index, Name); 2669 reportUnableToAssign("variable", Index, Name);
2670 } 2670 }
2671 } 2671 }
2672 2672
2673 void FunctionValuesymtabParser::setBbName(uint64_t Index, StringType &Name) { 2673 void FunctionValuesymtabParser::setBbName(uint64_t Index, StringType &Name) {
2674 if (isIRGenerationDisabled()) 2674 if (isIRGenerationDisabled())
2675 return; 2675 return;
2676 if (Index >= getFunctionParser()->getFunc()->getNumNodes()) { 2676 if (Index >= getFunctionParser()->getFunc()->getNumNodes()) {
2677 reportUnableToAssign("block", Index, Name); 2677 reportUnableToAssign("block", Index, Name);
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
2939 2939
2940 if (TopLevelBlocks != 1) { 2940 if (TopLevelBlocks != 1) {
2941 errs() << IRFilename 2941 errs() << IRFilename
2942 << ": Contains more than one module. Found: " << TopLevelBlocks 2942 << ": Contains more than one module. Found: " << TopLevelBlocks
2943 << "\n"; 2943 << "\n";
2944 ErrorStatus = true; 2944 ErrorStatus = true;
2945 } 2945 }
2946 } 2946 }
2947 2947
2948 } // end of namespace Ice 2948 } // end of namespace Ice
OLDNEW
« src/IceOperand.h ('K') | « src/IceTargetLoweringX8632.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698