------- Comment #10 from vmakarov at redhat dot com 2010-03-23 18:45 ------- (In reply to comment #5) > > Still I'll investigate a bit more why there are a lot of unexpected spills > during assignment with -mvsx for the current code. >
The problem is in that part of VSX_REGS (altivec regs) does not contain values of SFmode. The coloring algorithm does not take it into account. The problem can be solved if we check this in available register calculation. The patch I will send soon decreases # stfs(x)/lfs(x) from 332 to 246. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43413