Diego Novillo wrote: > What if you treated subregs as total writes (like we do arrays) and > libcalls as clobbering points? Though I guess that may not be > sufficient. > > it is more productive to spend the cycles getting rid of the libcalls rather than figuring out the edge cases. as steven implied, we have been on the verge of getting rid of them for years and just have just not fixed the last reason. The amount of time that we spent in 4.3 fixing the last two libcall bugs could have been much better spent just ditching them.
subcall writes are not total kills and we are careful to model them correctly when we see them individually. The question that i have is when you see a join where one arm modifies the the first byte and the other arm modifies the 4th byte. there is no store to the second and third bytes and no way in rtl to exactly model it as a single move. I just do not know. It may be that you just assume that you move the entire reg and be done with it. kenny > Diego. >