Slava Pestov
044611dddc
RequirementMachine: Another cycle-breaking hack for associated type inference
2021-12-08 00:53:35 -05:00
Slava Pestov
8e7a9b0f9f
RequirementMachine: Add a couple of histograms
2021-12-07 15:31:47 -05:00
Slava Pestov
0571b65cb8
RequirementMachine: Move protocol linear order from ProtocolGraph to RewriteContext
2021-10-21 19:00:10 -04:00
Slava Pestov
56439726ab
RequirementMachine: Move some code from PropertyMap.cpp to RewriteContext.cpp
2021-10-14 15:03:26 -04:00
Slava Pestov
c3270742dc
RequirementMachine: Compute strongly connected components from the protocol dependency graph
2021-10-05 21:30:57 -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
399a600e32
RequirementMachine: Add -debug-requirement-machine= flag to control debug output
2021-08-20 01:29:22 -04:00
Slava Pestov
0935952038
RequirementMachine: Cache result of mergeAssociatedTypes()
2021-08-19 22:14:58 -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