https://bugs.kde.org/show_bug.cgi?id=381553
--- Comment #6 from Ivo Raisr <iv...@ivosh.net> --- It turns out the current version has a design flaw because it does not track rreg live ranges. This manifests for example in this vcode: 82 movq $0x14,%rdi 83 movq %vR12,%rsi 84 movq $0x0,%rdx 85 movq 0xA8(%rbp),%rcx 86 call[4,RLPri_Int] 0x58147900 87 movq %rax,%vR191 88 movq %vR189,%rdi 89 movq %vR28,%rsi 90 movq %vR190,%rdx 91 movq %vR191,%rcx 92 call[4,RLPri_Int] 0x58147900 Imagine that register allocator processes instruction #89 and that %vReg28 is currently spilled. So it will: 1. allocate a "free" register - %rdi 2. generate reload into %rdi: movq (spill_slot), %rdi 3. register allocate "movq %vR28,%rsi" -> "movq %rdi,%rsi" I think it is needed to track rreg live ranges. I will try something simpler than does reg_alloc v2; rreg live ranges will be tracked individually per rreg. -- You are receiving this mail because: You are watching all bug changes.