[LLVMdev] proposed change to class BasicTTI

Nadav Rotem nrotem at apple.com
Fri Mar 22 15:22:00 PDT 2013


Hi Reed, 

We will need to reconstruct the target machine and the TTI chain when the function attributes change. We currently don't have code for doing that but I suggest that you talk with Bill Wendling about the best way to implement this. 

Thanks,
Nadav

On Mar 22, 2013, at 11:30 AM, Reed Kotler <rkotler at mips.com> wrote:

> Just realized that BasicTransformInfoClass is an immutable pass.
> 
> Not sure how to reconcile this with fact that there will be different answers needed depending on the subtarget.
> 
> Seems like BasicTansformInfoClass should become a function pass that does not modify  anything.
> 
> On 03/22/2013 09:43 AM, Reed Kotler wrote:
>> Another way to do this would to be to have a reset virtual function
>> which is passed the Function, and the address of TLI so that it could be
>> modified.
>> 
>> This seems somewhat cleaner.
>> 
>> The reset virtual function would be added to base class TargetLoweringBase.
>> 
>> 
>> On 03/22/2013 09:22 AM, reed kotler wrote:
>>> For being able to change subtargets within a compilation unit, among
>>> other things, I need to be able to change the target lowering class that
>>> is used by BasicTTI
>>> 
>>> For example we have a mips16 and non mips16 version.
>>> 
>>> On the original call that creates this class, I'd like to pass the
>>> address of the address of the TargetLoweringBase class.
>>> 
>>> That way I can insert a function pass before this pass which examines
>>> the function attributes and changes the pointer.
>>> 
>>> So we would get:
>>> 
>>> ImmutablePass *
>>> llvm::createBasicTargetTransformInfoPass(const TargetLoweringBase
>>> **TLI_) {
>>>   return new BasicTTI(TLI);
>>> }
>>> 
>>> we would add the variable
>>> 
>>> TargetLoweringBase **TLI_
>>> 
>>> and at the beginning of each pass
>>> 
>>> TLI = *TLI_;
>>> 
>>> Maybe there is a more elegant way to do this but this is essentially
>>> what I need to do.
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130322/e2262deb/attachment.html>


More information about the llvm-dev mailing list