@@ -756,14 +756,6 @@ class OmpAttributeVisitor : DirectiveAttributeVisitor<llvm::omp::Directive> {
756
756
void CollectAssociatedLoopLevelsFromInnerLoopContruct (
757
757
const parser::OpenMPLoopConstruct &, llvm::SmallVector<std::int64_t > &,
758
758
llvm::SmallVector<const parser::OmpClause *> &);
759
- template <typename T>
760
- void CollectAssociatedLoopLevelFromClauseValue (
761
- const parser::OmpClause &clause, llvm::SmallVector<std::int64_t > &,
762
- llvm::SmallVector<const parser::OmpClause *> &);
763
- template <typename T>
764
- void CollectAssociatedLoopLevelFromClauseSize (const parser::OmpClause &,
765
- llvm::SmallVector<std::int64_t > &,
766
- llvm::SmallVector<const parser::OmpClause *> &);
767
759
void CollectAssociatedLoopLevelsFromClauses (const parser::OmpClauseList &,
768
760
llvm::SmallVector<std::int64_t > &,
769
761
llvm::SmallVector<const parser::OmpClause *> &);
@@ -1995,40 +1987,34 @@ void OmpAttributeVisitor::CollectAssociatedLoopLevelsFromInnerLoopContruct(
1995
1987
}
1996
1988
}
1997
1989
1998
- template <typename T>
1999
- void OmpAttributeVisitor::CollectAssociatedLoopLevelFromClauseValue (
2000
- const parser::OmpClause &clause, llvm::SmallVector<std::int64_t > &levels,
2001
- llvm::SmallVector<const parser::OmpClause *> &clauses) {
2002
- if (const auto tclause{std::get_if<T>(&clause.u )}) {
2003
- std::int64_t level = 0 ;
2004
- if (const auto v{EvaluateInt64 (context_, tclause->v )}) {
2005
- level = *v;
2006
- }
2007
- levels.push_back (level);
2008
- clauses.push_back (&clause);
2009
- }
2010
- }
2011
-
2012
- template <typename T>
2013
- void OmpAttributeVisitor::CollectAssociatedLoopLevelFromClauseSize (
2014
- const parser::OmpClause &clause, llvm::SmallVector<std::int64_t > &levels,
2015
- llvm::SmallVector<const parser::OmpClause *> &clauses) {
2016
- if (const auto tclause{std::get_if<T>(&clause.u )}) {
2017
- levels.push_back (tclause->v .size ());
2018
- clauses.push_back (&clause);
2019
- }
2020
- }
2021
-
2022
1990
void OmpAttributeVisitor::CollectAssociatedLoopLevelsFromClauses (
2023
1991
const parser::OmpClauseList &x, llvm::SmallVector<std::int64_t > &levels,
2024
1992
llvm::SmallVector<const parser::OmpClause *> &clauses) {
2025
1993
for (const auto &clause : x.v ) {
2026
- CollectAssociatedLoopLevelFromClauseValue<parser::OmpClause::Ordered>(
2027
- clause, levels, clauses);
2028
- CollectAssociatedLoopLevelFromClauseValue<parser::OmpClause::Collapse>(
2029
- clause, levels, clauses);
2030
- CollectAssociatedLoopLevelFromClauseSize<parser::OmpClause::Sizes>(
2031
- clause, levels, clauses);
1994
+ if (const auto oclause{
1995
+ std::get_if<parser::OmpClause::Ordered>(&clause.u )}) {
1996
+ std::int64_t level = 0 ;
1997
+ if (const auto v{EvaluateInt64 (context_, oclause->v )}) {
1998
+ level = *v;
1999
+ }
2000
+ levels.push_back (level);
2001
+ clauses.push_back (&clause);
2002
+ }
2003
+
2004
+ if (const auto cclause{
2005
+ std::get_if<parser::OmpClause::Collapse>(&clause.u )}) {
2006
+ std::int64_t level = 0 ;
2007
+ if (const auto v{EvaluateInt64 (context_, cclause->v )}) {
2008
+ level = *v;
2009
+ }
2010
+ levels.push_back (level);
2011
+ clauses.push_back (&clause);
2012
+ }
2013
+
2014
+ if (const auto tclause{std::get_if<parser::OmpClause::Sizes>(&clause.u )}) {
2015
+ levels.push_back (tclause->v .size ());
2016
+ clauses.push_back (&clause);
2017
+ }
2032
2018
}
2033
2019
}
2034
2020
0 commit comments