Tim Armstrong has posted comments on this change. Change subject: Reduce LLVM module's preparation time by lazily creating the IRFunction::Type to LLVM::Function* mappings. ......................................................................
Patch Set 1: (5 comments) I didn't realise that we spent so much time doing this. Change looks good, just could be cleaned up. http://gerrit.cloudera.org:8080/#/c/4691/1/be/src/codegen/gen_ir_descriptions.py File be/src/codegen/gen_ir_descriptions.py: Line 104: ["HASH_CRC", "IrCrcHash"], It's weird (but harmless, I guess) that we don't use C++ mangling for these. http://gerrit.cloudera.org:8080/#/c/4691/1/be/src/codegen/llvm-codegen.cc File be/src/codegen/llvm-codegen.cc: Line 206: for (int i = IRFunction::FN_START; i < IRFunction::FN_END; ++i) { Maybe should be a new function like ValidateFunctionMappings()? Line 209: if (init_codegen->module_->getFunction(fn_name) == NULL) { We shouldn't hit this unless we messed up the build or the function names right? Could just be a DCHECK. PS1, Line 407: StringRef Should be able to construct the StringRef from the std::string directly without c_str(). It should be automatically converted I think if you just have getFunction(fn_name). We do this in LinkModule() - it works because of http://en.cppreference.com/w/cpp/language/converting_constructor Line 668: StringRef fn_name(FN_MAPPINGS[ir_type].fn_name.c_str()); This conversion shouldn't be necessary either. -- To view, visit http://gerrit.cloudera.org:8080/4691 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I61ab9fa8cca5a0909bb716c3c62819da3e3b3041 Gerrit-PatchSet: 1 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Michael Ho <[email protected]> Gerrit-Reviewer: Tim Armstrong <[email protected]> Gerrit-HasComments: Yes
