http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50775
--- Comment #4 from Vladimir Makarov <vmakarov at redhat dot com> 2011-11-28 21:48:20 UTC --- (In reply to comment #2) > > Also, I have a question about the following fields of `ira_allocno': > /* The number of objects tracked in the following array. */ > int num_objects; > /* An array of structures describing conflict information and live > ranges for each object associated with the allocno. There may be > more than one such object in cases where the allocno represents a > multi-word register. */ > ira_object_t objects[2]; > --------------------------^^^^^ > The SImode for AVR consists of 4 words, but only 2 objects in allocno > structure. > Is this right ? > > Yes, that is right. IRA objects were introduced by By Bernd Schmidt. Unfortunately, I did not review his patch. Probably, Bernd decided that 2 hard regs allocno covers most cases (and may be he is right). Other multi regs allocno is processed as one object (it means that all one register parts conflict with all another one register parts even if in reality one part does not conflict with another allocno part). Wrong profitable hard regs calculation for register files requiring aligned start register was a merging problem with a patch for allocation without cover classes. I'll try make a patch this week to solve the problem. Dennis, thanks for detail analysis of the problem. It saved my time.