Closed Quuxplusone closed 14 years ago
Attached interp.bc
(434324 bytes, application/octet-stream): llc interp.bc
Attached interp.i
(86998 bytes, application/octet-stream): interp.i
I think this happens because there are lots of large live intervals, see
oprofile output below:
CPU: Core 2, speed 2000 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask
of 0x00 (Unhalted core cycles) count 400000
samples % image name app name symbol name
26958 20.8757 llc llc
llvm::SimpleRegisterCoalescing::RemoveUnnecessaryKills(unsignedint,
llvm::LiveInterval&)
21483 16.6359 no-vmlinux no-vmlinux (no symbols)
11104 8.5987 llc llc
llvm::SimpleRegisterCoalescing::JoinIntervals(llvm::LiveInterval&,
llvm::LiveInterval&, bool&)
7863 6.0889 llc llc
llvm::LiveInterval::FindLiveRangeContaining(unsigned int) const
6607 5.1163 llc llc
llvm::LiveIntervals::getInstructionIndex(llvm::MachineInstr*) const
5557 4.3032 libc-2.9.so libc-2.9.so (no symbols)
4329 3.3523 llc llc
llvm::X86InstrInfo::isMoveInstr(llvm::MachineInstr const&, unsigned int&,
unsigned int&, unsigned int&, unsigned int&) const
3145 2.4354 llc llc
llvm::LiveIntervals::getVNInfoSourceReg(llvm::VNInfo const*) const
I'd like to point out in the usual -O0 path, this code is never used.
Is this still an issue?
(In reply to comment #4)
> Is this still an issue?
>
No, this one is fixed.
However the coalescer still has issues on other large files (see PR5708).
interp.bc
(434324 bytes, application/octet-stream)interp.i
(86998 bytes, application/octet-stream)