https://llvm.org/bugs/show_bug.cgi?id=26214
Bug ID: 26214 Summary: IR verifier slows down linking Chrome with LTO by 2.5x Product: new-bugs Version: unspecified Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: new bugs Assignee: unassignedb...@nondot.org Reporter: kra...@google.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified IR verifier added in http://reviews.llvm.org/rL257825 and http://reviews.llvm.org/rL257823 significantly slows down LTO build. The larger the target, the higher ratio of the slowdown. Linking Chrome with LTO is 27 mins before the changes, and 88 minutes after them. Here is the profile: + 40.50% ld.gold LLVMgold.so [.] bool llvm::function_ref<bool (llvm::Value const*)>::callback_fn<(anonymous namespace)::Verifier::visitGlobalValue(llvm::GlobalValue const&)::{lambda(llvm::Valu + 19.61% ld.gold LLVMgold.so [.] llvm::Use::getImpliedUser() const + 7.20% ld.gold LLVMgold.so [.] llvm::IRMover::move(llvm::Module&, llvm::ArrayRef<llvm::GlobalValue*>, std::function<void (llvm::GlobalValue&, std::function<void (llvm::GlobalValue&)>)>, llvm + 2.63% ld.gold LLVMgold.so [.] llvm::SmallPtrSetImplBase::FindBucketFor(void const*) const + 1.92% ld.gold [kernel.kallsyms] [k] 0xffffffff81180fa0 + 1.60% ld.gold LLVMgold.so [.] forEachUser(llvm::Value const*, llvm::SmallPtrSet<llvm::Value const*, 32u>&, llvm::function_ref<bool (llvm::Value const*)>) [clone .constprop.1086] + 1.58% ld.gold libc-2.19.so [.] _int_malloc + 1.18% ld.gold LLVMgold.so [.] llvm::Use::getUser() const + 0.82% ld.gold LLVMgold.so [.] llvm::SmallPtrSetImplBase::insert_imp(void const*) + 0.76% ld.gold LLVMgold.so [.] llvm::NamedMDNode::getOperand(unsigned int) const This regression is severe for our use case (deploying Control Flow Integrity in Chrome), but I don't think it's limited just to us. Anyone who uses LTO is affected. -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs