diff --git a/llvm/lib/SYCLNativeCPUUtils/compiler_passes/vecz/source/vecz_pass_builder.cpp b/llvm/lib/SYCLNativeCPUUtils/compiler_passes/vecz/source/vecz_pass_builder.cpp index bcbeabbf9766b..1a18a1f7718f2 100644 --- a/llvm/lib/SYCLNativeCPUUtils/compiler_passes/vecz/source/vecz_pass_builder.cpp +++ b/llvm/lib/SYCLNativeCPUUtils/compiler_passes/vecz/source/vecz_pass_builder.cpp @@ -123,12 +123,11 @@ void VeczPassMachinery::addClassToPassNames() { // Register a callback which skips all passes once we've failed to vectorize // a function. - PIC.registerShouldRunOptionalPassCallback([&](StringRef, llvm::Any IR) { - const Function *const *FPtr = any_cast(&IR); - const Function *F = FPtr ? *FPtr : nullptr; + PIC.registerShouldRunOptionalPassCallback([&](StringRef, llvm::IRUnitRef IR) { + const Function *F = dyn_cast(IR); if (!F) { - if (const auto *const *L = any_cast(&IR)) { - F = (*L)->getHeader()->getParent(); + if (const auto *const L = dyn_cast(IR)) { + F = L->getHeader()->getParent(); } else { // Always run module passes return true;