llvm-project/clang/test/CodeGen/pragma-msvc-optimize.c
Stephen Long 186bea3750 [MSVC] Add initial support for MSVC pragma optimize
MSVC's pragma optimize turns optimizations on or off based on the list
passed. At the moment, we only support an empty optimization list.

i.e. `#pragma optimize("", on | off)`

From MSVC's docs:

| Parameter | Type of optimization                             |
|-----------|--------------------------------------------------|
| g         | Enable global optimizations. Deprecated          |
| s or t    | Specify short or fast sequences of machine code  |
| y         | Generate frame pointers on the program stack     |

https://docs.microsoft.com/en-us/cpp/preprocessor/optimize?view=msvc-170

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D125723
2022-06-24 08:03:42 -07:00

21 lines
550 B
C

// RUN: %clang_cc1 -O2 -emit-llvm -fms-extensions -o - %s | FileCheck %s
#pragma optimize("", off)
// CHECK: define{{.*}} void @f0(){{.*}} #[[OPTNONE:[0-9]+]]
void f0() {}
// CHECK: define{{.*}} void @f1(){{.*}} #[[OPTNONE]]
void f1() {}
#pragma optimize("", on)
// CHECK: define{{.*}} void @f2(){{.*}} #[[NO_OPTNONE:[0-9]+]]
void f2() {}
// CHECK: define{{.*}} void @f3(){{.*}} #[[NO_OPTNONE]]
void f3() {}
// CHECK: attributes #[[OPTNONE]] = {{{.*}}optnone{{.*}}}
// CHECK-NOT: attributes #[[NO_OPTNONE]] = {{{.*}}optnone{{.*}}}