Slava Pestov
46063d3925
Merge pull request #39476 from slavapestov/rqm-avoid-hashtable-lookup
...
AST: GenericSignatures point directly to their RequirementMachine
2021-09-28 00:18:03 -04:00
Slava Pestov
47ab4a9f28
AST: GenericSignatures point directly to their RequirementMachine
...
This avoids a hashtable lookup when performing queries.
2021-09-27 21:36:45 -04:00
Slava Pestov
64d1931e15
RequirementMachine: Sketch out "generating conformances" algorithm
2021-09-27 19:04:16 -04:00
Slava Pestov
c6403e65e1
RequirementMachine: RewriteStep stores both whiskers
2021-09-24 08:59:50 -04:00
Slava Pestov
e4f6128990
RequirementMachine: Don't simplify terms inside concrete substitutions when adding a rule
...
The effect of doing this is difficult to represent with homotopy generators,
so let's just not bother.
2021-09-24 08:59:50 -04:00
Slava Pestov
399a600e32
RequirementMachine: Add -debug-requirement-machine= flag to control debug output
2021-08-20 01:29:22 -04:00
Slava Pestov
eec233507b
RequirementMachine: Cache the mapping from associated type symbols to associated type declarations
2021-08-13 17:27:49 -04:00
Slava Pestov
47fc3d87ad
RequirementMachine: Speed up PropertyMap lookups with a suffix trie
...
Whereas term simplification uses a prefix trie with shortest matching,
the PropertyMap uses a suffix trie with longest matching.
2021-08-06 14:17:20 -04:00
Slava Pestov
156fa2cc04
RequirementMachine: Speed up term simplification with a prefix trie
...
Previously RewriteSystem::simplify() would attempt to apply every
rewrite rule at every position in the original term, which was
obviously a source of overhead.
The trie itself is somewhat unoptimized; for example, with a bit of
effort it could merge a node with its only child, if nodes stored
a range of elements to compare rather than a single element.
2021-08-05 21:42:50 -04:00
Slava Pestov
ed966e7337
RequirementMachine: Add histograms for symbol kinds and term length
2021-08-05 21:42:50 -04:00
Slava Pestov
cfb1595ec5
RequirementMachine: Rename Atom => Symbol
2021-07-23 15:58:50 -04:00
Slava Pestov
4184ebd0a8
RequirementMachine: Split off RewriteContext.{h,cpp} from RewriteSystem.{h,cpp}
2021-07-14 00:16:06 -04:00