[llvm-dev] getCacheSize() implementation (retrieving subtarget id)

Nemanja Ivanovic via llvm-dev llvm-dev at lists.llvm.org
Thu Nov 30 02:38:48 PST 2017


Hi Jonas,
on PPC we store the "ID for the CPU" in what we call a "DarwinDirective"
(the name is likely to change in the future). The idea is that the CPU
identifies itself to the Subtarget through a feature. Then you can easily
query the CPU ID through that feature.

For details, you can see `PPCTTIImpl::getCacheLineSize()`.
P.S. I imagine that after so long, you've found the solution yourself (or
come up with a different one). I am sorry, but I've been falling behind on
llvm-dev emails this fall so some have slipped by.

On Tue, Oct 17, 2017 at 4:48 PM, Jonas Paulsson via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi,
>
> While trying to implement the SystemZTTI::getCacheSize() method, it became
> clear that a simple way of retrieving the machine ID is somehow missing.
>
> It seems that the Subtarget should set a variable during initialization
> perhaps by looking at the CPU string.
>
> I would like to hear any opinion on how this would actually be best
> implemented.
>
> * Comparing the CPU string seems to duplicate SystemZProcessors.td in the
> sense that it would ideally be sufficient to only specify the CPU string
> once.
>
> * Extend ProcessorModel with a "processor model ID" that the Subtarget
> could later retrieve?
>
> * Or instead extend MCSchedModel with the ID, or even store the cache size
> / assosiativity in MCSchedModel?
>
> / Jonas
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171130/e4a1c6f2/attachment.html>


More information about the llvm-dev mailing list