http://llvm.org/bugs/show_bug.cgi?id=2925
Summary: mem2reg Painfully Slow on Large BasicBlocks
Product: libraries
Version: trunk
Platform: Other
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Scalar Optimizations
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]
CC: [email protected]
mem2reg has a serious slowdown in RewriteSingleStoreAlloca when working on
large blocks. The search loops to find matching load and store instructions
dominate compile time.
Flat profile:
% cumulative self self total
time seconds seconds calls s/call s/call name
93.23 1.24 1.24 1 1.24 1.25 (anonymous
namespace)::PromoteMem2Reg::run()
0.75 1.25 0.01 9425833 0.00 0.00
llvm::cast_retty<llvm::LoadInst, llvm::ilist_iterator<llvm::Instruction>
>::ret_type llvm::cast<llvm::LoadInst, llvm::ilist_iterator<llvm::Instruction>
>(llvm::ilist_iterator<llvm::Instruction> const&)
The call graph profile does not dive beneath the run() method, presmably
because calls have been inlined. Profiling of third-party compilers indictes
that RewriteSingleStoreAlloca is the culprit.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs