[llvm-commits] [llvm] r118702 - in /llvm/trunk/lib/CodeGen: SplitKit.cpp SplitKit.h
Evan Cheng
evan.cheng at apple.com
Wed Nov 10 18:38:48 PST 2010
On Nov 10, 2010, at 6:19 PM, Jakob Stoklund Olesen wrote:
>
> On Nov 10, 2010, at 5:52 PM, Evan Cheng wrote:
>
>>
>> On Nov 10, 2010, at 1:08 PM, Jakob Stoklund Olesen wrote:
>>
>>>
>>> On Nov 10, 2010, at 12:17 PM, Evan Cheng wrote:
>>>
>>>> Are you restricting remat to instructions with no register operands?
>>>
>>> No, I allow register operands as much as isTriviallyReMaterializable does, but I never extend live ranges of operands to do so. I require all operands to be live with the same value at the remat location. This check is implemented in LiveRangeEdit::allUsesAvailableAt().
>>
>> Ah ok. We can potentially allow more remat by extending live ranges with more analysis. But that's later.
>
> Yes, that is tricky. The extended live range must be useful for more than one remat. Otherwise register pressure stays the same.
>
>>> I wonder if 'isTriviallyReMaterializable' means that the instruction can be rematted anywhere without further checks? If so, I should perhaps be using the basic TID::isRematerializable() flag instead?
>>
>> Right. It's only meant for the existing brain dead remat.
>
> I see. X86InstrInfo::isReallyTriviallyReMaterializable in particular has many arbitrary restrictions. I'll look into something more generic.
>
> I would be useful to be able to remat loads that have been hoisted by early optimizations. Is there any way AliasAnalysis can be rigged to provide more information than AA->pointsToConstantMemory?
Dan?
Evan
>
>
More information about the llvm-commits
mailing list