aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Evaluate/intrinsics.cpp
diff options
context:
space:
mode:
authorMehdi Amini <joker.eph@gmail.com>2024-05-15 23:26:07 -0700
committerGitHub <noreply@github.com>2024-05-15 23:26:07 -0700
commit6706aebefac3c89d8df55bade022f3aeb55cfeb9 (patch)
tree127646ccda609e739c9698161bf309abb80305fe /flang/lib/Evaluate/intrinsics.cpp
parent5c35b63da3c2e3c773580f748129fdec76354ede (diff)
downloadllvm-6706aebefac3c89d8df55bade022f3aeb55cfeb9.zip
llvm-6706aebefac3c89d8df55bade022f3aeb55cfeb9.tar.gz
llvm-6706aebefac3c89d8df55bade022f3aeb55cfeb9.tar.bz2
Revert "[flang] Add ETIME runtime and lowering intrinsics implementation" (#92354)
Reverts llvm/llvm-project#90578 This broke the premerge linux buildbot.
Diffstat (limited to 'flang/lib/Evaluate/intrinsics.cpp')
-rw-r--r--flang/lib/Evaluate/intrinsics.cpp26
1 files changed, 2 insertions, 24 deletions
diff --git a/flang/lib/Evaluate/intrinsics.cpp b/flang/lib/Evaluate/intrinsics.cpp
index ded2778..441a762 100644
--- a/flang/lib/Evaluate/intrinsics.cpp
+++ b/flang/lib/Evaluate/intrinsics.cpp
@@ -454,10 +454,6 @@ static const IntrinsicInterface genericIntrinsicFunction[]{
{"erf", {{"x", SameReal}}, SameReal},
{"erfc", {{"x", SameReal}}, SameReal},
{"erfc_scaled", {{"x", SameReal}}, SameReal},
- {"etime",
- {{"values", TypePattern{RealType, KindCode::exactKind, 4}, Rank::vector,
- Optionality::required, common::Intent::Out}},
- TypePattern{RealType, KindCode::exactKind, 4}},
{"exp", {{"x", SameFloating}}, SameFloating},
{"exp", {{"x", SameFloating}}, SameFloating},
{"exponent", {{"x", AnyReal}}, DefaultInt},
@@ -1346,12 +1342,6 @@ static const IntrinsicInterface intrinsicSubroutine[]{
{"values", AnyInt, Rank::vector, Optionality::optional,
common::Intent::Out}},
{}, Rank::elemental, IntrinsicClass::impureSubroutine},
- {"etime",
- {{"values", TypePattern{RealType, KindCode::exactKind, 4}, Rank::vector,
- Optionality::required, common::Intent::Out},
- {"time", TypePattern{RealType, KindCode::exactKind, 4},
- Rank::scalar, Optionality::required, common::Intent::Out}},
- {}, Rank::elemental, IntrinsicClass::impureSubroutine},
{"execute_command_line",
{{"command", DefaultChar, Rank::scalar},
{"wait", AnyLogical, Rank::scalar, Optionality::optional},
@@ -2494,7 +2484,6 @@ public:
bool IsIntrinsic(const std::string &) const;
bool IsIntrinsicFunction(const std::string &) const;
bool IsIntrinsicSubroutine(const std::string &) const;
- bool IsDualIntrinsic(const std::string &) const;
IntrinsicClass GetIntrinsicClass(const std::string &) const;
std::string GetGenericIntrinsicName(const std::string &) const;
@@ -2556,17 +2545,6 @@ bool IntrinsicProcTable::Implementation::IsIntrinsic(
const std::string &name) const {
return IsIntrinsicFunction(name) || IsIntrinsicSubroutine(name);
}
-bool IntrinsicProcTable::Implementation::IsDualIntrinsic(
- const std::string &name) const {
- // Collection for some intrinsics with function and subroutine form,
- // in order to pass the semantic check.
- static const std::string dualIntrinsic[]{{"etime"}};
-
- return std::find_if(std::begin(dualIntrinsic), std::end(dualIntrinsic),
- [&name](const std::string &dualName) {
- return dualName == name;
- }) != std::end(dualIntrinsic);
-}
IntrinsicClass IntrinsicProcTable::Implementation::GetIntrinsicClass(
const std::string &name) const {
@@ -3105,7 +3083,7 @@ std::optional<SpecificCall> IntrinsicProcTable::Implementation::Probe(
return specificCall;
}
}
- if (IsIntrinsicFunction(call.name) && !IsDualIntrinsic(call.name)) {
+ if (IsIntrinsicFunction(call.name)) {
context.messages().Say(
"Cannot use intrinsic function '%s' as a subroutine"_err_en_US,
call.name);
@@ -3240,7 +3218,7 @@ std::optional<SpecificCall> IntrinsicProcTable::Implementation::Probe(
}
if (specificBuffer.empty() && genericBuffer.empty() &&
- IsIntrinsicSubroutine(call.name) && !IsDualIntrinsic(call.name)) {
+ IsIntrinsicSubroutine(call.name)) {
context.messages().Say(
"Cannot use intrinsic subroutine '%s' as a function"_err_en_US,
call.name);