This is an archive of the discontinued LLVM Phabricator instance.

[ARM64] Ports the Cortex-A53 Machine Model description from AArch64.
ClosedPublic

Authored by cestes on Apr 18 2014, 9:31 AM.

Details

Summary

This port includes the rudimentary latencies that were provided for
the Cortex-A53 Machine Model in the AArch64 backend. It also changes
the SchedAlias for COPY in the Cyclone model to an explicit
WriteRes mapping to avoid conflicts in other subtargets.

Diff Detail

Event Timeline

Hi Dave,

This looks good to me, though someone from ARM with access to the proper data should probably take a look too.

Could I ask how you found the Read/Write classes that exist at the moment? Did they map reasonably well to Cortex-A53 or should we consider swapping things around?

Cheers.

Tim.

You might want to explicitly set MicroOpBufferSize = 0 even though it is currently the default. That means the scheduler will use a very simple in-order scheduling model where instructions are only scheduled when their latency is satisfied.

Out of curiosity, why did you need the LD/ST[1-4] regex rules?

Otherwise, looks great to me!

Thanks, Andy.

You might want to explicitly set MicroOpBufferSize = 0 even though it is currently the default. That means the scheduler will use a very simple in-order scheduling model where instructions are only scheduled when their latency is satisfied.

Will change it and run some quick tests.

Out of curiosity, why did you need the LD/ST[1-4] regex rules?

The vector loads and stores didn't have a SchedRW with a default
SchedWrite. For now, I'm not modeling the different latencies for the
vector loads, so I just created some broad InstRWs to catch those
instructions. My next patch or perhaps a subsequent should break those
out better.

I'm still thinking more about whether or not we should bolster the
SchedRWs with SchedReads for the read operands. On one hand, it would
make modeling the forwarding on the A53 much more straight forward, but
I don't really think this is as critical on superscaler parts. Following
that rationale, then maybe having A53 utilize InstRWs makes more sense.

Thanks again...
-Dave

You certainly don

cestes updated this revision to Unknown Object (????).Apr 18 2014, 2:14 PM

Explicitly set MicroOpBufferSize to zero.

cestes accepted this revision.Apr 18 2014, 2:43 PM
cestes closed this revision.