[LLVMdev] selection dag speedups / llc speedups
Nick Lewycky
nicholas at mxc.ca
Tue May 18 22:44:46 PDT 2010
Jan Voung wrote:
> Here are some recent stats of the fast vs local vs linear scan at O0 on
> "opt -std-compile-opts" processed bitcode files. The fast regalloc is
> still certainly faster at codegen than local with such bitcode files.
> Let me know if the link doesn't work:
>
> https://spreadsheets.google.com/a/google.com/ccc?key=0At5EJFcCBf-wdDgtd2FoZjU4bFBzcFBtT25rQkgzMEE&hl=en
> <https://spreadsheets.google.com/a/google.com/ccc?key=0At5EJFcCBf-wdDgtd2FoZjU4bFBzcFBtT25rQkgzMEE&hl=en>
Hi Jan,
See the "/a/google.com/" part of the URL? Yeah, people without
google.com logins can't read that.
There's no way to use docs to produce a document with your work account
that is readable to the outside world, I've complained about it before.
Export it instead.
Nick
> Misc stuff: I ran into an "UNREACHABLE executed" using linear scan on
> revision 104021, so I used an older version for that.
>
> 0 llc.hg 0x0000000000af4d7f
> 1 llc.hg 0x0000000000af54fa
> 2 libpthread.so.0 0x00007fb1734b67d0
> 3 libc.so.6 0x00007fb1725d2095 gsignal + 53
> 4 libc.so.6 0x00007fb1725d3af0 abort + 272
> 5 llc.hg 0x0000000000ad4932
> llvm::llvm_unreachable_internal(char const*, char const*, unsigned int)
> + 370
> 6 llc.hg 0x0000000000886426
> llvm::LiveIntervals::handleVirtualRegisterDef(llvm::MachineBasicBlock*,
> llvm::ilist_iterator<llvm::MachineInstr>, llvm::SlotIndex,
> llvm::MachineOperand&, unsigned int, llvm::LiveInterval&) + 3910
> 7 llc.hg 0x0000000000888429
> llvm::LiveIntervals::handleRegisterDef(llvm::MachineBasicBlock*,
> llvm::ilist_iterator<llvm::MachineInstr>, llvm::SlotIndex,
> llvm::MachineOperand&, unsigned int) + 409
> 8 llc.hg 0x000000000088ade0
> llvm::LiveIntervals::computeIntervals() + 2496
> 9 llc.hg 0x000000000088b56f
> llvm::LiveIntervals::runOnMachineFunction(llvm::MachineFunction&) + 447
> 10 llc.hg 0x00000000007b3493
> llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 115
> 11 llc.hg 0x0000000000a79ec0
> llvm::FPPassManager::runOnFunction(llvm::Function&) + 688
> 12 llc.hg 0x0000000000a79f13
> llvm::FPPassManager::runOnModule(llvm::Module&) + 67
> 13 llc.hg 0x0000000000a79a63
> llvm::MPPassManager::runOnModule(llvm::Module&) + 515
> 14 llc.hg 0x0000000000a79b42
> llvm::PassManagerImpl::run(llvm::Module&) + 114
> 15 llc.hg 0x0000000000a79bdd
> llvm::PassManager::run(llvm::Module&) + 13
> 16 llc.hg 0x00000000004d3112 main + 2802
> 17 libc.so.6 0x00007fb1725be1c4 __libc_start_main + 244
> 18 llc.hg 0x00000000004d0b09
>
>
> Stack dump:
> 0. Program arguments: llc.hg -asm-verbose=false -O0
> 32/403.gcc/403.gcc.linked.bc -o
> 32/403.gcc/output/403.gcc.linked.bc.llc_O0.s
> 1. Running pass 'Function Pass Manager' on module
> '32/403.gcc/403.gcc.linked.bc'.
> 2. Running pass 'Live Interval Analysis' on function
> '@nonlocal_mentioned_p'
>
> - Jan
>
> On Mon, May 17, 2010 at 9:33 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk
> <mailto:stoklund at 2pi.dk>> wrote:
>
>
> On May 17, 2010, at 9:09 PM, Rafael Espindola wrote:
>
> >> The fast and local register allocators are meant to be used on
> unoptimized code, a 'Debug build'. While they do work on optimized
> code, they do not give good results. Their primary goal is compile
> time, not code quality.
> >
> > Yes, we have a somewhat uncommon use case. It is fine to spend time
> > optimizing bitcode (LTO is a OK), but we want to make the final IL ->
> > Executable translation as fast as possible.
>
> Do you know how the fast allocator performs in these conditions?
> Have you compared it to the local allocator? I really focused my
> efforts on unoptimized code.
>
> /jakob
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list