diff options
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64TargetMachine.cpp')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64TargetMachine.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp index 7de9071476e7..37ce07d4a09d 100644 --- a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp +++ b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp @@ -187,6 +187,11 @@ static cl::opt<unsigned> SVEVectorBitsMinOpt( "with zero meaning no minimum size is assumed."), cl::init(0), cl::Hidden); +static cl::opt<bool> ForceStreaming( + "force-streaming", + cl::desc("Force the use of streaming code for all functions"), + cl::init(false), cl::Hidden); + static cl::opt<bool> ForceStreamingCompatible( "force-streaming-compatible", cl::desc("Force the use of streaming-compatible code for all functions"), @@ -412,11 +417,11 @@ AArch64TargetMachine::getSubtargetImpl(const Function &F) const { StringRef FS = FSAttr.isValid() ? FSAttr.getValueAsString() : TargetFS; bool HasMinSize = F.hasMinSize(); - bool IsStreaming = F.hasFnAttribute("aarch64_pstate_sm_enabled") || + bool IsStreaming = ForceStreaming || + F.hasFnAttribute("aarch64_pstate_sm_enabled") || F.hasFnAttribute("aarch64_pstate_sm_body"); - bool IsStreamingCompatible = - F.hasFnAttribute("aarch64_pstate_sm_compatible") || - ForceStreamingCompatible; + bool IsStreamingCompatible = ForceStreamingCompatible || + F.hasFnAttribute("aarch64_pstate_sm_compatible"); unsigned MinSVEVectorSize = 0; unsigned MaxSVEVectorSize = 0; @@ -549,8 +554,7 @@ public: } // end anonymous namespace -void AArch64TargetMachine::registerPassBuilderCallbacks( - PassBuilder &PB, bool PopulateClassToPassNames) { +void AArch64TargetMachine::registerPassBuilderCallbacks(PassBuilder &PB) { PB.registerLateLoopOptimizationsEPCallback( [=](LoopPassManager &LPM, OptimizationLevel Level) { |
