Commit Graph

8 Commits

Author SHA1 Message Date
Jordan Rose
66189ffac9 Convert many more classes to use llvm::TrailingObjects.
I only intend to do SIL instructions after this; I'm leaving the runtime alone.
2016-02-09 08:57:19 -08:00
practicalswift
50baf2e53b Use consistent formatting in top of file headers. 2016-01-04 02:17:48 +01:00
Zach Panzarino
e3a4147ac9 Update copyright date 2015-12-31 23:28:40 +00:00
John McCall
cc7938ad21 Implement a trie data structure. Specifically, implement
a ternary tree with a fixed-length per-node inline key buffer.

I plan to use this for metadata path caches, where it's useful to
be able to quickly find the most-derived point along a path that
you've already cached, but it should be useful for other things
in the compiler as well, like function-with-argument-label
lookups and possibly code completion.

This is quite a bit more space-efficient (and somewhat faster)
than doing scans after a lower_bound on a std::map<std::string, T>.

I haven't implemented balancing yet, and I don't need delete at
all for metadata paths, so I don't plan to work on that.

Swift SVN r32453
2015-10-06 01:14:30 +00:00
John McCall
7eb2e49a31 EncodedSequence: rename some functions, improve some
assertions, and fix a couple of bugs about how many bytes
to copy that were caught by ASan.

Swift SVN r29505
2015-06-19 02:54:19 +00:00
John McCall
a065ae99c8 Add a data structure for efficiently storing a byte-encoded
sequence which can be read with a forward iterator.

This will be useful for storing access paths to metadata or
protocol conformance values, which are typically very short.

Now with a fix to directly include <climits> for CHAR_BIT.
This was being transitively included on Darwin, but that's
not portable.

Swift SVN r29485
2015-06-18 07:13:15 +00:00
Ted Kremenek
4036074b56 Revert "Add a data structure for efficiently storing a byte-encoded"
This broke the Linux bot.

Swift SVN r29476
2015-06-18 04:39:30 +00:00
John McCall
c099ec8321 Add a data structure for efficiently storing a byte-encoded
sequence which can be read with a forward iterator.

This will be useful for storing access paths to metadata or
protocol conformance values, which are typically very short.

Swift SVN r29458
2015-06-17 21:34:00 +00:00