Chromium Code Reviews| 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 1156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1167 void popTimerIfTimingEachFunction() const { | 1167 void popTimerIfTimingEachFunction() const { |
| 1168 if (ALLOW_DUMP && getFlags().TimeEachFunction) { | 1168 if (ALLOW_DUMP && getFlags().TimeEachFunction) { |
| 1169 getTranslator().getContext()->popTimer( | 1169 getTranslator().getContext()->popTimer( |
| 1170 getTranslator().getContext()->getTimerID( | 1170 getTranslator().getContext()->getTimerID( |
| 1171 Ice::GlobalContext::TSK_Funcs, Func->getFunctionName()), | 1171 Ice::GlobalContext::TSK_Funcs, Func->getFunctionName()), |
| 1172 Ice::GlobalContext::TSK_Funcs); | 1172 Ice::GlobalContext::TSK_Funcs); |
| 1173 } | 1173 } |
| 1174 } | 1174 } |
| 1175 | 1175 |
| 1176 // Extracts the corresponding Alignment to use, given the AlignPower | 1176 // Extracts the corresponding Alignment to use, given the AlignPower |
| 1177 // (i.e. 2**AlignPower, or 0 if AlignPower == 0). InstName is the | 1177 // (i.e. 2**(AlignPower-1), or 0 if AlignPower == 0). InstName is the |
| 1178 // name of the instruction the alignment appears in. | 1178 // name of the instruction the alignment appears in. |
| 1179 void extractAlignment(const char *InstName, uint32_t AlignPower, | 1179 void extractAlignment(const char *InstName, uint32_t AlignPower, |
| 1180 uint32_t &Alignment) { | 1180 uint32_t &Alignment) { |
| 1181 if (AlignPower <= AlignPowerLimit) { | 1181 if (AlignPower <= AlignPowerLimit + 1) { |
| 1182 Alignment = (1 << AlignPower) >> 1; | 1182 Alignment = (1 << AlignPower) >> 1; |
| 1183 return; | 1183 return; |
| 1184 } | 1184 } |
| 1185 std::string Buffer; | 1185 std::string Buffer; |
| 1186 raw_string_ostream StrBuf(Buffer); | 1186 raw_string_ostream StrBuf(Buffer); |
| 1187 StrBuf << InstName << " alignment greater than 2**" << AlignPowerLimit | 1187 StrBuf << InstName << " alignment greater than 2**" << AlignPowerLimit |
| 1188 << ". Found: 2**" << AlignPower; | 1188 << ". Found: 2**" << AlignPower; |
|
jvoung (off chromium)
2015/01/12 18:10:06
"2**... AlignPower - 1"
Karl
2015/01/14 22:03:07
Done.
| |
| 1189 Error(StrBuf.str()); | 1189 Error(StrBuf.str()); |
| 1190 // Error recover with value that is always acceptable. | 1190 // Error recover with value that is always acceptable. |
| 1191 Alignment = 1; | 1191 Alignment = 1; |
| 1192 } | 1192 } |
| 1193 | 1193 |
| 1194 bool ParseBlock(unsigned BlockID) override; | 1194 bool ParseBlock(unsigned BlockID) override; |
| 1195 | 1195 |
| 1196 void ProcessRecord() override; | 1196 void ProcessRecord() override; |
| 1197 | 1197 |
| 1198 void ExitBlock() override; | 1198 void ExitBlock() override; |
| (...skipping 1802 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3001 | 3001 |
| 3002 if (TopLevelBlocks != 1) { | 3002 if (TopLevelBlocks != 1) { |
| 3003 errs() << IRFilename | 3003 errs() << IRFilename |
| 3004 << ": Contains more than one module. Found: " << TopLevelBlocks | 3004 << ": Contains more than one module. Found: " << TopLevelBlocks |
| 3005 << "\n"; | 3005 << "\n"; |
| 3006 ErrorStatus = true; | 3006 ErrorStatus = true; |
| 3007 } | 3007 } |
| 3008 } | 3008 } |
| 3009 | 3009 |
| 3010 } // end of namespace Ice | 3010 } // end of namespace Ice |
| OLD | NEW |