[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