about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorKang Seonghoon <public+git@mearie.org>2015-03-01 01:09:39 +0900
committerKang Seonghoon <public+git@mearie.org>2015-03-03 11:55:32 +0900
commit38a965a747cb5998cce85369aa30a53062dcf363 (patch)
tree40fb47b93916abac63a9c53f61796ed810c0cb52 /src/rustllvm/RustWrapper.cpp
parentac20ded1f8af6a35edf27059a6ee215d61666fef (diff)
downloadrust-38a965a747cb5998cce85369aa30a53062dcf363.tar.gz
rust-38a965a747cb5998cce85369aa30a53062dcf363.zip
metadata: New tag encoding scheme.
EBML tags are encoded in a variable-length unsigned int (vuint),
which is clever but causes some tags to be encoded in two bytes
while there are really about 180 tags or so. Assuming that there
wouldn't be, say, over 1,000 tags in the future, we can use much
more efficient encoding scheme. The new scheme should support
at most 4,096 tags anyway.

This also flattens a scattered tag namespace (did you know that
0xa9 is followed by 0xb0?) and makes a room for autoserialized tags
in 0x00 through 0x1f.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions