Richard, While fixing ports in preparation for the new dataflow infrastructure, we found a problem with the way that the rs6000 port represents clobbers and uses of registers in call and sibcall patterns. The patterns clobber and use the rs6000 link register as a match_scratch with constraint of the link register class:
(clobber (match_scratch:SI 0 "=l")) instead of clobbering the link register hard register directly in the early insn generation. This style dates to the original rs6000 port. A naked use that starts as a pseudo causes problems for dataflow. Do you remember why you wrote the call patterns this way? Was there a problem with reload and clobbers of hard registers in a register class containing a single register or some other historical quirk? Thanks, David