[LLVMdev] Question about coalescing
Fernando Magno Quintao Pereira
fernando at CS.UCLA.EDU
Mon Dec 17 12:06:29 PST 2007
Dear Dave, Evan, thank you for answering.
What I did was to remove the implementation of most of the methods of
SimpleRegisterCoalescing and put them in a single class
(RegisterCoalescer_Impl) that is not an analysis. Any class that wants
these methods, can extend this class privately, or can use a reference to
an RegisterCoalescer_Impl object. I wish it would be possible to go even
further: given that I know that two virtuals do not interfere, I would
like to coalesce them by simply joining their interval representation.
When I call JoinCopy, the method does that, but it checks again a lot of
information that I already know: do not overlap, are virtuals, etc.
> On Dec 15, 2007, at 4:45 PM, Fernando Magno Quintao Pereira wrote:
>> Dear guys,
>> I want to coalesce some copies, and I would like to know if
>> there is
>> any method that I can call, like JoinCopy from the old (LLVM 1.9)
>> LiveIntervals class. I found it in SimpleRegisterCoalescing (LLVM
>> but I do not want to call this analysis, as I have my own.
>> basically, I can determine that two virtuals do not overlap, and I
>> know that it is safe to join them. In the old v1.9, I simply had to do
>> this->interval_analysis_->JoinCopy(mach_inst, use_eg, def_reg);
> SimpleRegisterCoalescing::JoinCopy hasn't fundamentally changed from
> the old JoinCopy. It still does the same sort of analysis. The only
> change really is the interface.
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev