HomePhabricator

[ARM] Add bank conflict hazarding

Authored by dpenry on Dec 23 2020, 6:00 AM.

Description

[ARM] Add bank conflict hazarding

Adds ARMBankConflictHazardRecognizer. This hazard recognizer
looks for a few situations where the same base pointer is used and
then checks whether the offsets lead to a bank conflict. Two
parameters are also added to permit overriding of the target
assumptions:

arm-data-bank-mask=<int> - Mask of bits which are to be checked for
conflicts. If all these bits are equal in the offsets, there is a
conflict.
arm-assume-itcm-bankconflict=<bool> - Assume that there will be bank
conflicts on any loads to a constant pool.

This hazard recognizer is enabled for Cortex-M7, where the Technical
Reference Manual states that there are two DTCM banks banked using bit
2 and one ITCM bank.

Differential Revision: https://reviews.llvm.org/D93054

Details

Committed
dmgreenDec 23 2020, 6:00 AM
Differential Revision
D93054: [ARM] Add bank conflict hazarding
Parents
rGacaa6e4260cb: [NFC] Uniquify 'const' in TargetTransformInfoImpl.h
Branches
Unknown
Tags
Unknown