Merge "header-checker: Remove dead code from IRReader"

This commit is contained in:
Logan Chien
2019-05-02 15:47:55 +00:00
committed by Gerrit Code Review

View File

@@ -49,6 +49,10 @@ class IRReader {
}; };
public: public:
static std::unique_ptr<IRReader> CreateIRReader(
TextFormatIR text_format,
const std::set<std::string> *exported_headers = nullptr);
IRReader(const std::set<std::string> *exported_headers) IRReader(const std::set<std::string> *exported_headers)
: module_(new ModuleIR(exported_headers)) {} : module_(new ModuleIR(exported_headers)) {}
@@ -64,28 +68,9 @@ class IRReader {
return std::move(module_); return std::move(module_);
} }
void Merge(IRReader &&addend) { void MergeGraphs(const IRReader &addend);
MergeElements(&module_->functions_, std::move(addend.module_->functions_));
MergeElements(&module_->global_variables_,
std::move(addend.module_->global_variables_));
MergeElements(&module_->record_types_,
std::move(addend.module_->record_types_));
MergeElements(&module_->enum_types_,
std::move(addend.module_->enum_types_));
MergeElements(&module_->pointer_types_,
std::move(addend.module_->pointer_types_));
MergeElements(&module_->lvalue_reference_types_,
std::move(addend.module_->lvalue_reference_types_));
MergeElements(&module_->rvalue_reference_types_,
std::move(addend.module_->rvalue_reference_types_));
MergeElements(&module_->array_types_,
std::move(addend.module_->array_types_));
MergeElements(&module_->builtin_types_,
std::move(addend.module_->builtin_types_));
MergeElements(&module_->qualified_types_,
std::move(addend.module_->qualified_types_));
}
private:
template <typename T> template <typename T>
MergeStatus MergeReferencingTypeInternalAndUpdateParent( MergeStatus MergeReferencingTypeInternalAndUpdateParent(
const IRReader &addend, const T *addend_node, const IRReader &addend, const T *addend_node,
@@ -177,8 +162,6 @@ class IRReader {
const FunctionIR *addend_node, const IRReader &addend, const FunctionIR *addend_node, const IRReader &addend,
AbiElementMap<MergeStatus> *local_to_global_type_id_map); AbiElementMap<MergeStatus> *local_to_global_type_id_map);
void MergeGraphs(const IRReader &addend);
void UpdateIRReaderTypeGraph( void UpdateIRReaderTypeGraph(
const TypeIR *addend_node, const std::string &added_type_id, const TypeIR *addend_node, const std::string &added_type_id,
AbiElementMap<MergeStatus> *local_to_global_type_id_map); AbiElementMap<MergeStatus> *local_to_global_type_id_map);
@@ -193,17 +176,7 @@ class IRReader {
std::string AllocateNewTypeId(); std::string AllocateNewTypeId();
static std::unique_ptr<IRReader> CreateIRReader(
TextFormatIR text_format,
const std::set<std::string> *exported_headers = nullptr);
protected: protected:
template <typename Augend, typename Addend>
inline void MergeElements(Augend *augend, Addend &&addend) {
augend->insert(std::make_move_iterator(addend.begin()),
std::make_move_iterator(addend.end()));
}
std::unique_ptr<ModuleIR> module_; std::unique_ptr<ModuleIR> module_;
uint64_t max_type_id_ = 0; uint64_t max_type_id_ = 0;