search for: interferencedata

Displaying 7 results from an estimated 7 matches for "interferencedata".

2007 Aug 28
2
[LLVMdev] [patch] Pluggable Coalescers
...e" copies that should not be > > coalesced > > because doing so might cause spilling. You don't want the coalescer > > touching > > these because if it does the data structures will be inconsistent. > > Ok. But that means this method doesn't belong to the InterferenceData > class. Shouldn't the allocator query the coalescer instead? No, it's the other way around. The coalescer needs to decide whether it can coalesce something. It must ask the allocator if it's ok. This is part of InterferenceData to decouple the coalescer from the allocator so the...
2007 Aug 27
2
[LLVMdev] [patch] Pluggable Coalescers
...register coalescing is a prime example. It wants to "freeze" copies that should not be coalesced because doing so might cause spilling. You don't want the coalescer touching these because if it does the data structures will be inconsistent. > 4. Is it necessary to separate class InterferenceData out from > RegisterCoalescer.h? Good point. Originally I had thought that InterferenceData might be more general-purpose but it is rather coalescing-specific at the moment. If this changes in the future we can break it out. I'll keep it in RegisterCoalecer.h. > 5. > + /// Run t...
2007 Aug 28
0
[LLVMdev] [patch] Pluggable Coalescers
...It wants to "freeze" copies that should not be > coalesced > because doing so might cause spilling. You don't want the coalescer > touching > these because if it does the data structures will be inconsistent. Ok. But that means this method doesn't belong to the InterferenceData class. Shouldn't the allocator query the coalescer instead? Thanks, Evan > > >> 4. Is it necessary to separate class InterferenceData out from >> RegisterCoalescer.h? > > Good point. Originally I had thought that InterferenceData might be > more general-purpose...
2007 Aug 29
0
[LLVMdev] [patch] Pluggable Coalescers
...should not be >>> coalesced >>> because doing so might cause spilling. You don't want the coalescer >>> touching >>> these because if it does the data structures will be inconsistent. >> >> Ok. But that means this method doesn't belong to the InterferenceData >> class. Shouldn't the allocator query the coalescer instead? > > No, it's the other way around. The coalescer needs to decide > whether it can > coalesce something. It must ask the allocator if it's ok. > > This is part of InterferenceData to decouple the c...
2007 Aug 27
0
[LLVMdev] [patch] Pluggable Coalescers
...(const MachineInstr &inst) const { + return(true); + } I think we discussed this early but please remind me. Why is this necessary? Why isn't interfere() sufficient test? Also, I would prefer a name like isLegalToCoalesce over okToCoalesce. 4. Is it necessary to separate class InterferenceData out from RegisterCoalescer.h? 5. + /// Run the coalescer on this function, providing interference + /// data to query. Return whether we removed any copies. + virtual bool coalesceFunction(MachineFunction &mf, InterferenceData &ifd) = 0; 80 col violation. 6. + /// doWork...
2007 Aug 20
4
[LLVMdev] [patch] Pluggable Coalescers
...or analysis group implementation selection by the pass managers (all coalescers must have a common interface to be part of the analysis group). The patch realizes the second goal through this common interface, which has methods for invoking the coalescer, possibly repeatedly. There is an abstract InterferenceData interface for the register allocator to provide information to the coalescer in an opaque manner. I've implemented these interfaces in a compiler with the current linear scan allocator as well as a graph coloring allocator, with the current coalescer as well as one based on George and Appel&...
2007 Sep 05
2
[LLVMdev] Updated Pluggable Coalescers Patch
I incorporated Evan's suggested changes and testing seems to go well. Ok to commit? -Dave -------------- next part -------------- A non-text attachment was scrubbed... Name: pluggable_coalescer.patch Type: text/x-diff Size: 14338 bytes Desc: not available URL: