Oz optimization level sets ForceSizeOpt attribute for each function
llvm-svn: 166744
This commit is contained in:
parent
5750c1c07e
commit
5ee5ca1dbc
|
@ -968,6 +968,8 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI,
|
|||
|
||||
if (CodeGenOpts.OptimizeSize)
|
||||
FuncAttrs.addAttribute(llvm::Attributes::OptimizeForSize);
|
||||
if (CodeGenOpts.OptimizeSize == 2)
|
||||
FuncAttrs.addAttribute(llvm::Attributes::ForceSizeOpt);
|
||||
if (CodeGenOpts.DisableRedZone)
|
||||
FuncAttrs.addAttribute(llvm::Attributes::NoRedZone);
|
||||
if (CodeGenOpts.NoImplicitFloat)
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
// RUN: %clang_cc1 -Oz -emit-llvm %s -o - | FileCheck %s -check-prefix=Oz
|
||||
// RUN: %clang_cc1 -O0 -emit-llvm %s -o - | FileCheck %s -check-prefix=OTHER
|
||||
// RUN: %clang_cc1 -O1 -emit-llvm %s -o - | FileCheck %s -check-prefix=OTHER
|
||||
// RUN: %clang_cc1 -O2 -emit-llvm %s -o - | FileCheck %s -check-prefix=OTHER
|
||||
// RUN: %clang_cc1 -O3 -emit-llvm %s -o - | FileCheck %s -check-prefix=OTHER
|
||||
// RUN: %clang_cc1 -Os -emit-llvm %s -o - | FileCheck %s -check-prefix=OTHER
|
||||
// Check that we set the forcesizeopt attribute on each function
|
||||
// when Oz optimization level is set.
|
||||
|
||||
int test1() {
|
||||
return 42;
|
||||
// Oz: @test1{{.*}}forcesizeopt
|
||||
// Oz: ret
|
||||
// OTHER: @test1
|
||||
// OTHER-NOT: forcesizeopt
|
||||
// OTHER: ret
|
||||
}
|
||||
|
||||
int test2() {
|
||||
return 42;
|
||||
// Oz: @test2{{.*}}forcesizeopt
|
||||
// Oz: ret
|
||||
// OTHER: @test2
|
||||
// OTHER-NOT: forcesizeopt
|
||||
// OTHER: ret
|
||||
}
|
Loading…
Reference in New Issue