Index: lib/Target/R600/AMDGPUTargetTransformInfo.cpp =================================================================== --- lib/Target/R600/AMDGPUTargetTransformInfo.cpp +++ lib/Target/R600/AMDGPUTargetTransformInfo.cpp @@ -101,6 +101,12 @@ void AMDGPUTTI::getUnrollingPreferences(Loop *L, UnrollingPreferences &UP) const { + UP.Threshold = 300; // Twice the default. + UP.Count = UINT_MAX; + UP.Partial = true; + + // TODO: Do we want runtime unrolling? + for (const BasicBlock *BB : L->getBlocks()) { for (const Instruction &I : *BB) { const GetElementPtrInst *GEP = dyn_cast(&I); @@ -120,7 +126,7 @@ // // Don't use the maximum allowed value here as it will make some // programs way too big. - UP.Threshold = 500; + UP.Threshold = 800; } } }