diff options
author | Chris Lattner <sabre@nondot.org> | 2007-05-01 05:52:21 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-05-01 05:52:21 +0000 |
commit | 980e5aad4cfaa32e13b297f4201eb1088ca96cc4 (patch) | |
tree | 96f4393b1f18ad2bf9502ccd1ba9256a35be58c0 /lib/Bitcode/Reader/BitcodeReader.h | |
parent | 2bbb703e4f84c68a9603838c32eba7423ed54b71 (diff) |
implement materializeModule, force deallocation of vector memory when we
are done with them, start implementing ParseFunctionBody
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36617 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bitcode/Reader/BitcodeReader.h')
-rw-r--r-- | lib/Bitcode/Reader/BitcodeReader.h | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/Bitcode/Reader/BitcodeReader.h b/lib/Bitcode/Reader/BitcodeReader.h index 0e407697aa..65c495b669 100644 --- a/lib/Bitcode/Reader/BitcodeReader.h +++ b/lib/Bitcode/Reader/BitcodeReader.h @@ -44,7 +44,7 @@ public: void pop_back() { Uses.pop_back(); --NumOperands; } bool empty() const { return NumOperands == 0; } void shrinkTo(unsigned N) { - assert(N < NumOperands && "Invalid shrinkTo request!"); + assert(N <= NumOperands && "Invalid shrinkTo request!"); Uses.resize(N); NumOperands = N; } @@ -69,6 +69,10 @@ class BitcodeReader : public ModuleProvider { std::vector<std::pair<GlobalVariable*, unsigned> > GlobalInits; std::vector<std::pair<GlobalAlias*, unsigned> > AliasInits; + /// FunctionBBs - While parsing a function body, this is a list of the basic + /// blocks for the function. + std::vector<BasicBlock*> FunctionBBs; + // When reading the module header, this list is populated with functions that // have bodies later in the file. std::vector<Function*> FunctionsWithBodies; @@ -96,13 +100,7 @@ public: } virtual bool materializeFunction(Function *F, std::string *ErrInfo = 0); - - virtual Module *materializeModule(std::string *ErrInfo = 0) { - // FIXME: TODO - //if (ParseAllFunctionBodies(ErrMsg)) - // return 0; - return TheModule; - } + virtual Module *materializeModule(std::string *ErrInfo = 0); bool Error(const char *Str) { ErrorString = Str; @@ -121,7 +119,8 @@ private: bool ParseTypeSymbolTable(); bool ParseValueSymbolTable(); bool ParseConstants(); - bool ParseFunction(); + bool RememberAndSkipFunctionBody(); + bool ParseFunctionBody(Function *F); bool ResolveGlobalAndAliasInits(); }; |