llvm/clang/test/Driver/lto-aix.c

// Test LTO path, mcpu and opt level options
// RUN: %clang --target=powerpc-ibm-aix -### %s -flto -fuse-ld=ld -O3 2>&1 \
// RUN:   | FileCheck -check-prefixes=LTOPATH,MCPUOPTLEVEL %s
//
// LTOPATH: "-bplugin:{{.*}}libLTO.{{so|dll|dylib}}"
// MCPUOPTLEVEL: "-bplugin_opt:-mcpu={{.*}}" "-bplugin_opt:-O3"

// More opt level option tests
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -O -### 2>&1 | FileCheck --check-prefix=O1 %s
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -O1 -### 2>&1 | FileCheck --check-prefix=O1 %s
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -Og -### 2>&1 | FileCheck --check-prefix=O1 %s
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -O2 -### 2>&1 | FileCheck --check-prefix=O2 %s
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -Os -### 2>&1 | FileCheck --check-prefix=O2 %s
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -Oz -### 2>&1 | FileCheck --check-prefix=O2 %s
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -O3 -### 2>&1 | FileCheck --check-prefix=O3 %s
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -Ofast -### 2>&1 | FileCheck --check-prefix=O3 %s
//
// O1: "-bplugin_opt:-O1"
// O2: "-bplugin_opt:-O2"
// O3: "-bplugin_opt:-O3"

// vec-extabi option
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -mabi=vec-extabi -### 2>&1 \
// RUN:   | FileCheck --check-prefix=VECEXTABI %s
// RUN: %clang --target=powerpc-ibm-aix --sysroot %S/Inputs/aix_ppc_tree %s \
// RUN:   -fuse-ld=ld -flto -### 2>&1 | FileCheck --check-prefix=NOVECEXTABI %s
//
// VECEXTABI: "-bplugin_opt:-vec-extabi"
// NOVECEXTABI-NOT: "-bplugin_opt:-vec-extabi"

// Test debugging options
// RUN: %clang --target=powerpc-ibm-aix -### %s -flto -fuse-ld=ld -gdbx 2>&1 \
// RUN:   | FileCheck -check-prefix=DBX %s
// RUN: %clang --target=powerpc-ibm-aix -### %s -flto -fuse-ld=ld -g 2>&1 \
// RUN:   | FileCheck -check-prefix=NODEBUGGER-TUNE %s
// RUN: %clang --target=powerpc-ibm-aix-xcoff -### %s -flto -g 2>&1 \
// RUN:   | FileCheck -check-prefixes=STRICT,NODEBUGGER-TUNE %s
// RUN: %clang --target=powerpc64-ibm-aix-xcoff -### %s -flto -g 2>&1 \
// RUN:   | FileCheck -check-prefixes=STRICT,NODEBUGGER-TUNE %s
// RUN: %clang --target=powerpc-ibm-aix-xcoff -### %s -flto -g -gdbx 2>&1 \
// RUN:   | FileCheck -check-prefix=DBX -check-prefix=STRICT %s
// RUN: %clang --target=powerpc-ibm-aix-xcoff -### %s -flto -g -ggdb 2>&1 \
// RUN:   | FileCheck -check-prefix=GDB -check-prefix=STRICT %s
// RUN: %clang --target=powerpc-ibm-aix-xcoff -### %s -flto -g -ggdb0 2>&1 \
// RUN:   | FileCheck -check-prefix=GDB -check-prefix=NOSTRICT %s
// RUN: %clang --target=powerpc-ibm-aix-xcoff -### %s -flto -g -ggdb1 2>&1 \
// RUN:   | FileCheck -check-prefix=GDB -check-prefix=STRICT %s
// RUN: %clang --target=powerpc-ibm-aix-xcoff -### %s -flto -g -g0 2>&1 \
// RUN:   | FileCheck -check-prefix=NOSTRICT %s
// RUN: %clang --target=powerpc-ibm-aix-xcoff -### %s -flto -g -gno-strict-dwarf 2>&1 \
// RUN:   | FileCheck -check-prefix=NOSTRICT %s
// RUN: %clang --target=powerpc-ibm-aix-xcoff -### %s -flto -gstrict-dwarf 2>&1 \
// RUN:   | FileCheck -check-prefix=NOSTRICT %s
//
// DBX:    "-bplugin_opt:-debugger-tune=dbx"
// GDB:    "-bplugin_opt:-debugger-tune=gdb"
// NODEBUGGER-TUNE-NOT: "-bplugin_opt:-debugger-tune="
//
// STRICT:       "-bplugin_opt:-strict-dwarf=true"
// NOSTRICT-NOT: "-bplugin_opt:-strict-dwarf=true"

// Test cspgo options
// RUN: %clang --target=powerpc-ibm-aix -### %s -flto -fuse-ld=ld \
// RUN:   -fcs-profile-generate 2>&1 | FileCheck -check-prefix=CSPGO %s
//
// CSPGO: "-bplugin_opt:-cs-profile-generate" "-bplugin_opt:-cs-profile-path=default_%m.profraw"

// Test integrated assembler options
// RUN: %clang --target=powerpc-ibm-aix -### %s -flto -fno-integrated-as \
// RUN:   -fintegrated-as 2>&1 | FileCheck --check-prefix=INTAS %s
// RUN: %clang --target=powerpc-ibm-aix -### %s -flto -fintegrated-as \
// RUN:   -fno-integrated-as 2>&1 | FileCheck --check-prefix=NOINTAS %s
// RUN: %clang --target=powerpc-ibm-aix -### %s -flto 2>&1 \
// RUN:   | FileCheck --check-prefix=INTAS %s
//
// NOINTAS: "-bplugin_opt:-no-integrated-as=1"
// INTAS-NOT: "-bplugin_opt:-no-integrated-as"