Michael.Kang
2010-Aug-17 12:13 UTC
[LLVMdev] What is the meaning of addRegisterDead function
Now I am writing a simulator by llvm IR. That is really a wonderful tools for us. Now I use gprof try to find the bottleneck of the simulator, the output as the following. And I found addRegisterDead of llvm is called too much. What is the functionality of addRegisterDead? I try to understand it by reading the related code of llvm source but no idea. % cumulative self self total time seconds seconds calls Ts/call Ts/call name 5.16 0.33 0.33 llvm::MachineInstr::addRegisterDead(unsigned int, llvm::TargetRegisterInfo const*, bool) Thanks in advance. Michael.Kang -- www.skyeye.org
Jakob Stoklund Olesen
2010-Aug-17 14:52 UTC
[LLVMdev] What is the meaning of addRegisterDead function
On Aug 17, 2010, at 5:13 AM, Michael.Kang wrote:> Now I am writing a simulator by llvm IR. That is really a wonderful > tools for us. Now I use gprof try to > find the bottleneck of the simulator, the output as the following. And > I found addRegisterDead of llvm > is called too much. What is the functionality of addRegisterDead?It is called from the LiveVariables pass. It is the first part of register allocation. I think this has been resolved on subversion trunk. Are you using 2.7? Try upgrading to svn. You can also disable it by running with -regalloc=fast. That does not produce as good code, but it is much much faster. /jakob -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 1929 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100817/b6c2b12c/attachment.bin>