Skip to content

Commit 2b97bf8

Browse files
committed
[Evaluator] Stop canonicalizing requests
This is unnecessary given we now only create AnyRequests when caching, or when building the dependency graph.
1 parent 4b698a5 commit 2b97bf8

File tree

1 file changed

+2
-13
lines changed

1 file changed

+2
-13
lines changed

include/swift/AST/Evaluator.h

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ class Evaluator {
308308
typename std::enable_if<!Request::hasExternalCache>::type* = nullptr>
309309
void cacheOutput(const Request &request,
310310
typename Request::OutputType &&output) {
311-
cache.insert({getCanonicalRequest(request), std::move(output)});
311+
cache.insert({AnyRequest(request), std::move(output)});
312312
}
313313

314314
/// Clear the cache stored within this evaluator.
@@ -324,17 +324,6 @@ class Evaluator {
324324
}
325325

326326
private:
327-
template <typename Request>
328-
const AnyRequest &getCanonicalRequest(const Request &request) {
329-
// FIXME: DenseMap ought to let us do this with one hash lookup.
330-
auto iter = dependencies.find_as(request);
331-
if (iter != dependencies.end())
332-
return iter->first;
333-
auto insertResult = dependencies.insert({AnyRequest(request), {}});
334-
assert(insertResult.second && "just checked if the key was already there");
335-
return insertResult.first->first;
336-
}
337-
338327
/// Diagnose a cycle detected in the evaluation of the given
339328
/// request.
340329
void diagnoseCycle(const ActiveRequest &request);
@@ -423,7 +412,7 @@ class Evaluator {
423412
return result;
424413

425414
// Cache the result.
426-
cache.insert({getCanonicalRequest(request), *result});
415+
cache.insert({AnyRequest(request), *result});
427416
return result;
428417
}
429418

0 commit comments

Comments
 (0)