~AArch64TargetMachine() override;
const AArch64Subtarget *getSubtargetImpl(const Function &F) const override;
- // The no argument getSubtargetImpl, while it exists on some, targets is
- // deprecated and should not be used.
+ // DO NOT IMPLEMENT: There is no such thing as a valid default subtarget,
+ // subtargets are per-function entities based on the target-specific
+ // attributes of each function.
const AArch64Subtarget *getSubtargetImpl() const = delete;
// Pass Pipeline Configuration
~ARMBaseTargetMachine() override;
const ARMSubtarget *getSubtargetImpl(const Function &F) const override;
- // The no argument getSubtargetImpl, while it exists on some targets, is
- // deprecated and should not be used.
+ // DO NOT IMPLEMENT: There is no such thing as a valid default subtarget,
+ // subtargets are per-function entities based on the target-specific
+ // attributes of each function.
const ARMSubtarget *getSubtargetImpl() const = delete;
bool isLittleEndian() const { return isLittle; }
~PPCTargetMachine() override;
const PPCSubtarget *getSubtargetImpl(const Function &F) const override;
- // The no argument getSubtargetImpl, while it exists on some targets, is
- // deprecated and should not be used.
+ // DO NOT IMPLEMENT: There is no such thing as a valid default subtarget,
+ // subtargets are per-function entities based on the target-specific
+ // attributes of each function.
const PPCSubtarget *getSubtargetImpl() const = delete;
// Pass Pipeline Configuration
~X86TargetMachine() override;
const X86Subtarget *getSubtargetImpl(const Function &F) const override;
- // The no argument getSubtargetImpl, while it exists on some targets, is
- // deprecated and should not be used.
+ // DO NOT IMPLEMENT: There is no such thing as a valid default subtarget,
+ // subtargets are per-function entities based on the target-specific
+ // attributes of each function.
const X86Subtarget *getSubtargetImpl() const = delete;
TargetIRAnalysis getTargetIRAnalysis() override;