Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 //===- NaClBitcodeReader.cpp ----------------------------------------------===// | 1 //===- NaClBitcodeReader.cpp ----------------------------------------------===// |
| 2 // Internal NaClBitcodeReader implementation | 2 // Internal NaClBitcodeReader implementation |
| 3 // | 3 // |
| 4 // The LLVM Compiler Infrastructure | 4 // The LLVM Compiler Infrastructure |
| 5 // | 5 // |
| 6 // This file is distributed under the University of Illinois Open Source | 6 // This file is distributed under the University of Illinois Open Source |
| 7 // License. See LICENSE.TXT for details. | 7 // License. See LICENSE.TXT for details. |
| 8 // | 8 // |
| 9 //===----------------------------------------------------------------------===// | 9 //===----------------------------------------------------------------------===// |
| 10 | 10 |
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 335 | 335 |
| 336 namespace { | 336 namespace { |
| 337 | 337 |
| 338 // Class to process globals in two passes. In the first pass, build | 338 // Class to process globals in two passes. In the first pass, build |
| 339 // the corresponding global variables with no initializers. In the | 339 // the corresponding global variables with no initializers. In the |
| 340 // second pass, add initializers. The purpose of putting off | 340 // second pass, add initializers. The purpose of putting off |
| 341 // initializers is to make sure that we don't need to generate | 341 // initializers is to make sure that we don't need to generate |
| 342 // placeholders for relocation records, and the corresponding cost | 342 // placeholders for relocation records, and the corresponding cost |
| 343 // of duplicating initializers when these placeholders are replaced. | 343 // of duplicating initializers when these placeholders are replaced. |
| 344 class ParseGlobalsHandler { | 344 class ParseGlobalsHandler { |
| 345 ParseGlobalsHandler(const ParseGlobalsHandler &H) LLVM_DELETED_FUNCTION; | 345 ParseGlobalsHandler(const ParseGlobalsHandler &H) = delete; |
| 346 void operator=(const ParseGlobalsHandler &H) LLVM_DELETED_FUNCTION; | 346 void operator=(const ParseGlobalsHandler &H) = delete; |
| 347 | 347 |
| 348 NaClBitcodeReader &Reader; | 348 NaClBitcodeReader &Reader; |
| 349 NaClBitcodeReaderValueList &ValueList; | 349 NaClBitcodeReaderValueList &ValueList; |
| 350 NaClBitstreamCursor &Stream; | 350 NaClBitstreamCursor &Stream; |
| 351 LLVMContext &Context; | 351 LLVMContext &Context; |
| 352 Module *TheModule; | 352 Module *TheModule; |
| 353 | 353 |
| 354 // Holds read data record. | 354 // Holds read data record. |
| 355 SmallVector<uint64_t, 64> Record; | 355 SmallVector<uint64_t, 64> Record; |
| 356 // True when processing a global variable. Stays true until all records | 356 // True when processing a global variable. Stays true until all records |
| (...skipping 1466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1823 if (!I->first->use_empty()) | 1823 if (!I->first->use_empty()) |
| 1824 I->first->replaceAllUsesWith(I->second); | 1824 I->first->replaceAllUsesWith(I->second); |
| 1825 I->first->eraseFromParent(); | 1825 I->first->eraseFromParent(); |
| 1826 } | 1826 } |
| 1827 } | 1827 } |
| 1828 std::vector<std::pair<Function*, Function*> >().swap(UpgradedIntrinsics); | 1828 std::vector<std::pair<Function*, Function*> >().swap(UpgradedIntrinsics); |
| 1829 | 1829 |
| 1830 return std::error_code(); | 1830 return std::error_code(); |
| 1831 } | 1831 } |
| 1832 | 1832 |
| 1833 std::vector<StructType *> NaClBitcodeReader::getIdentifiedStructTypes() const { | |
| 1834 // MERGETODO(dschuff): does this need to contain anything for TypeFinder? | |
|
jvoung (off chromium)
2015/05/26 20:39:45
can this TODO be removed now -- replace with comme
Derek Schuff
2015/05/26 22:01:32
Done.
| |
| 1835 return std::vector<StructType *>(); | |
| 1836 } | |
| 1837 | |
| 1833 std::error_code NaClBitcodeReader::InitStream() { | 1838 std::error_code NaClBitcodeReader::InitStream() { |
| 1834 if (LazyStreamer) | 1839 if (LazyStreamer) |
| 1835 return InitLazyStream(); | 1840 return InitLazyStream(); |
| 1836 return InitStreamFromBuffer(); | 1841 return InitStreamFromBuffer(); |
| 1837 } | 1842 } |
| 1838 | 1843 |
| 1839 std::error_code NaClBitcodeReader::InitStreamFromBuffer() { | 1844 std::error_code NaClBitcodeReader::InitStreamFromBuffer() { |
| 1840 const unsigned char *BufPtr = (const unsigned char*)Buffer->getBufferStart(); | 1845 const unsigned char *BufPtr = (const unsigned char*)Buffer->getBufferStart(); |
| 1841 const unsigned char *BufEnd = BufPtr+Buffer->getBufferSize(); | 1846 const unsigned char *BufEnd = BufPtr+Buffer->getBufferSize(); |
| 1842 | 1847 |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1934 if (std::error_code EC = M->materializeAllPermanently()) { | 1939 if (std::error_code EC = M->materializeAllPermanently()) { |
| 1935 delete M; | 1940 delete M; |
| 1936 return EC; | 1941 return EC; |
| 1937 } | 1942 } |
| 1938 | 1943 |
| 1939 // TODO: Restore the use-lists to the in-memory state when the bitcode was | 1944 // TODO: Restore the use-lists to the in-memory state when the bitcode was |
| 1940 // written. We must defer until the Module has been fully materialized. | 1945 // written. We must defer until the Module has been fully materialized. |
| 1941 | 1946 |
| 1942 return M; | 1947 return M; |
| 1943 } | 1948 } |
| OLD | NEW |