mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-02 08:26:29 +00:00
LoopUnroll: Use the optsize threshold for minsize as well
Currently we're unrolling loops more in minsize than in optsize, which means -Oz will have a larger code size than -Os. That doesn't make any sense. This resolves the FIXME about this in LoopUnrollPass and extends the optsize test to make sure we use the smaller threshold for minsize as well. llvm-svn: 257402
This commit is contained in:
parent
68ad8ce279
commit
98deb31a78
@ -209,10 +209,7 @@ namespace {
|
||||
? CurrentDynamicCostSavingsDiscount
|
||||
: UP.DynamicCostSavingsDiscount;
|
||||
|
||||
if (!UserThreshold &&
|
||||
// FIXME: Use Function::optForSize().
|
||||
L->getHeader()->getParent()->hasFnAttribute(
|
||||
Attribute::OptimizeForSize)) {
|
||||
if (!UserThreshold && L->getHeader()->getParent()->optForSize()) {
|
||||
Threshold = UP.OptSizeThreshold;
|
||||
PartialThreshold = UP.PartialOptSizeThreshold;
|
||||
}
|
||||
|
@ -1,4 +1,6 @@
|
||||
; RUN: opt < %s -S -loop-unroll -unroll-allow-partial | FileCheck %s
|
||||
; RUN: sed -e 's/optsize/minsize/' %s | opt -S -loop-unroll -unroll-allow-partial | FileCheck %s
|
||||
|
||||
; Loop size = 3, when the function has the optsize attribute, the
|
||||
; OptSizeUnrollThreshold, i.e. 50, is used, hence the loop should be unrolled
|
||||
; by 32 times because (1 * 32) + 2 < 50 (whereas (1 * 64 + 2) is not).
|
||||
@ -49,4 +51,3 @@ exit:
|
||||
; CHECK-NEXT: add
|
||||
; CHECK-NEXT: add
|
||||
; CHECK-NEXT: icmp
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user