From 4ad8de279c3408d5237edd28efa08240e02b837e Mon Sep 17 00:00:00 2001 From: Peter Klausler Date: Wed, 18 Dec 2024 11:29:48 -0800 Subject: [PATCH] [flang] Don't needlessly instantiate distinct UNSIGNED cases for FINDLOC The FINDLOC runtime doesn't need to distinguish between INTEGER and UNSIGNED data, so use the code for INTEGER also for UNSIGNED. --- flang/runtime/findloc.cpp | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/flang/runtime/findloc.cpp b/flang/runtime/findloc.cpp index d05e9c58074c7..b9b1d7f7ab689 100644 --- a/flang/runtime/findloc.cpp +++ b/flang/runtime/findloc.cpp @@ -159,14 +159,9 @@ struct NumericFindlocHelper { Terminator &terminator) const { switch (targetCat) { case TypeCategory::Integer: - ApplyIntegerKind< - HELPER::template Functor, void>( - targetKind, terminator, result, x, target, kind, dim, mask, back, - terminator); - break; case TypeCategory::Unsigned: ApplyIntegerKind< - HELPER::template Functor, void>( + HELPER::template Functor, void>( targetKind, terminator, result, x, target, kind, dim, mask, back, terminator); break; @@ -235,13 +230,8 @@ void RTDEF(Findloc)(Descriptor &result, const Descriptor &x, RUNTIME_CHECK(terminator, xType.has_value() && targetType.has_value()); switch (xType->first) { case TypeCategory::Integer: - ApplyIntegerKind::template Functor, - void>(xType->second, terminator, targetType->first, targetType->second, - result, x, target, kind, 0, mask, back, terminator); - break; case TypeCategory::Unsigned: - ApplyIntegerKind::template Functor, void>(xType->second, terminator, targetType->first, targetType->second, result, x, target, kind, 0, mask, back, terminator); @@ -331,13 +321,8 @@ void RTDEF(FindlocDim)(Descriptor &result, const Descriptor &x, RUNTIME_CHECK(terminator, xType.has_value() && targetType.has_value()); switch (xType->first) { case TypeCategory::Integer: - ApplyIntegerKind::template Functor, - void>(xType->second, terminator, targetType->first, targetType->second, - result, x, target, kind, dim, mask, back, terminator); - break; case TypeCategory::Unsigned: - ApplyIntegerKind::template Functor, void>(xType->second, terminator, targetType->first, targetType->second, result, x, target, kind, dim, mask, back, terminator);