Files
llvm-project/clang/test/CodeGen/alloc-token-module-flags.c
Marco Elver 3c6864ab88 [Clang][CodeGen] Remove explicit insertion of AllocToken pass (#169360)
Remove explicit insertion of the AllocTokenPass, which is now handled by
the PassBuilder. Emit AllocToken configuration as LLVM module flags to
persist into the backend.

Specifically, this also means it will now be handled by LTO backend
phases; this avoids interference with other optimizations (e.g. PGHO)
and enable late heap-allocation optimizations with LTO enabled.
2025-12-02 16:13:45 +01:00

23 lines
1.3 KiB
C

// RUN: %clang_cc1 -fsanitize=alloc-token -emit-llvm -o - %s | FileCheck %s --check-prefix=DEFAULT
// RUN: %clang_cc1 -fsanitize=alloc-token -falloc-token-mode=increment -emit-llvm -o - %s | FileCheck %s --check-prefix=INCREMENT
// RUN: %clang_cc1 -fsanitize=alloc-token -falloc-token-max=100 -emit-llvm -o - %s | FileCheck %s --check-prefix=MAX
// RUN: %clang_cc1 -fsanitize=alloc-token -fsanitize-alloc-token-fast-abi -emit-llvm -o - %s | FileCheck %s --check-prefix=FASTABI
// RUN: %clang_cc1 -fsanitize=alloc-token -fsanitize-alloc-token-extended -emit-llvm -o - %s | FileCheck %s --check-prefix=EXTENDED
// DEFAULT-NOT: !"alloc-token-mode"
// DEFAULT-NOT: !"alloc-token-max"
// DEFAULT-NOT: !"alloc-token-fast-abi"
// DEFAULT-NOT: !"alloc-token-extended"
// INCREMENT: !llvm.module.flags = !{{{.*}}![[FLAG:[0-9]+]]{{.*}}}
// INCREMENT: ![[FLAG]] = !{i32 1, !"alloc-token-mode", !"increment"}
// MAX: !llvm.module.flags = !{{{.*}}![[FLAG:[0-9]+]]{{.*}}}
// MAX: ![[FLAG]] = !{i32 1, !"alloc-token-max", i64 100}
// FASTABI: !llvm.module.flags = !{{{.*}}![[FLAG:[0-9]+]]{{.*}}}
// FASTABI: ![[FLAG]] = !{i32 1, !"alloc-token-fast-abi", i32 1}
// EXTENDED: !llvm.module.flags = !{{{.*}}![[FLAG:[0-9]+]]{{.*}}}
// EXTENDED: ![[FLAG]] = !{i32 1, !"alloc-token-extended", i32 1}