This will make it easier to teach this code about the string table.
Details
Diff Detail
- Build Status
Buildable 5510 Build 5510: arc lint + arc unit
Event Timeline
llvm/lib/Bitcode/Reader/BitcodeReader.cpp | ||
---|---|---|
388 | Why move this into BitcodeReaderBase, rather than BitcodeReader? |
llvm/lib/Bitcode/Reader/BitcodeReader.cpp | ||
---|---|---|
388 | Ok, but if this field is only ever going to be relevant to the BitcodeReader derived class, why not have a virtual method that takes the parsed version and can be used to set up whatever fields are relevant for each derived class? I would imagine this won't be the last time we end up needing to guard behavior specific to only one derived reader based on the version. |
llvm/lib/Bitcode/Reader/BitcodeReader.cpp | ||
---|---|---|
388 | Such a method would be called from {,ModuleSummaryIndex}BitcodeReader:;parseModule which is already specific to the derived class. If we do what you suggest we might as well inline the parser code into the parseModule methods, i.e. what we are already doing. Would you prefer that? I suppose I have no strong objections to it, but figured it may be better to keep track of the version evolution in one place. |
llvm/lib/Bitcode/Reader/BitcodeReader.cpp | ||
---|---|---|
388 | Actually I was thinking of a pure virtual method that would be called from BitcodeReaderBase::parseVersionRecord and passed the parsed ModuleVersion number. Then each derived reader would define this method as well as the flags specific to that reader. That way this flag could be moved into BitcodeReader, whereas something like the strtab flag being added in your other patch would be defined in BitcodeReaderBase (and set in parseVersionRecord) since it applies to all. |
llvm/lib/Bitcode/Reader/BitcodeReader.cpp | ||
---|---|---|
388 | That doesn't really seem like an improvement on the status quo, though (at least IMHO). I'd rather just set everything in the base class, as it's simpler than trying to delegate to the derived classes. That said I'd be fine with either approach, so let me know if you still want to change it. |
llvm/lib/Bitcode/Reader/BitcodeReader.cpp | ||
---|---|---|
388 | I have a preference for keeping the flags in the derived class if they are specific to it. It seems cleaner to me and avoids needing to document which flags are applicable to which class(es). |
Why move this into BitcodeReaderBase, rather than BitcodeReader?