summaryrefslogtreecommitdiff
path: root/src/upb_decoder.c
AgeCommit message (Collapse)Author
2011-02-18Change the API for getting the bootstrapped defs.Joshua Haberman
The symtab that contains them is now hidden, and you can look them up by name but there is no access to the symtab itself, so there is no risk of mutating it (by extending it, adding other defs to it, etc).
2011-02-17Return updated buf as second return value, to free up a reg.Joshua Haberman
2011-02-17First version of an assembly language decoder.Joshua Haberman
It is slower than the C decoder for now because it falls off the fast path too often. But it can successfully decode varints, fixed32 and fixed64.
2011-02-17Split inttable into a hash part and an array part.Joshua Haberman
upb_inttable() now supports a "compact" operation that will decide on an array size and put all entries with small enough keys into the array part for faster lookup. Also exposed the upb_itof_ent structure and put a few useful values there, so they are one fewer pointer chase away.
2011-02-17Track buffer end instead of buffer length, for a small perf improvement.Joshua Haberman
2011-02-15Remove upb_dstate and specialize upb_decode_fixed for perf improvement.Joshua Haberman
The compiler wasn't keeping upb_dstate in memory anyway (which was the original goal). This simplifies the decoder. upb_decode_fixed was intended to minimize the number of branches, but since it was calling out to memcpy as a function, this turned out to be a pessimization. Performance is encouraging: plain32.parsestream_googlemessage1.upb_table: 254 -> 242 (-4.72) plain32.parsestream_googlemessage2.upb_table: 357 -> 400 (12.04) plain32.parsetostruct_googlemessage1.upb_table_byref: 143 -> 144 (0.70) plain32.parsetostruct_googlemessage1.upb_table_byval: 122 -> 118 (-3.28) plain32.parsetostruct_googlemessage2.upb_table_byref: 189 -> 200 (5.82) plain32.parsetostruct_googlemessage2.upb_table_byval: 198 -> 200 (1.01) omitfp32.parsestream_googlemessage1.upb_table: 267 -> 265 (-0.75) omitfp32.parsestream_googlemessage2.upb_table: 377 -> 465 (23.34) omitfp32.parsetostruct_googlemessage1.upb_table_byref: 140 -> 151 (7.86) omitfp32.parsetostruct_googlemessage1.upb_table_byval: 131 -> 131 (0.00) omitfp32.parsetostruct_googlemessage2.upb_table_byref: 204 -> 214 (4.90) omitfp32.parsetostruct_googlemessage2.upb_table_byval: 200 -> 206 (3.00) plain.parsestream_googlemessage1.upb_table: 313 -> 317 (1.28) plain.parsestream_googlemessage2.upb_table: 476 -> 541 (13.66) plain.parsetostruct_googlemessage1.upb_table_byref: 189 -> 189 (0.00) plain.parsetostruct_googlemessage1.upb_table_byval: 165 -> 165 (0.00) plain.parsetostruct_googlemessage2.upb_table_byref: 263 -> 270 (2.66) plain.parsetostruct_googlemessage2.upb_table_byval: 248 -> 255 (2.82) omitfp.parsestream_googlemessage1.upb_table: 306 -> 305 (-0.33) omitfp.parsestream_googlemessage2.upb_table: 471 -> 531 (12.74) omitfp.parsetostruct_googlemessage1.upb_table_byref: 189 -> 190 (0.53) omitfp.parsetostruct_googlemessage1.upb_table_byval: 166 -> 172 (3.61) omitfp.parsetostruct_googlemessage2.upb_table_byref: 258 -> 270 (4.65) omitfp.parsetostruct_googlemessage2.upb_table_byval: 248 -> 265 (6.85)
2011-02-13Fix upbc and descriptorgen, and update descriptor.Joshua Haberman
2011-02-13Merged core/ and stream/ -> src/. The split wasn't worth it.Joshua Haberman
2010-07-09Split src/ into core/ and stream/.Joshua Haberman
2010-07-09Tweaks to upb_src/upb_sink interfaces.Joshua Haberman
2010-07-03Implemented upb_baredecoder, for bootstrapping.Joshua Haberman
2010-06-12Decoder is finally complete, now just needs testing.Joshua Haberman
2010-06-11More decoder work.Joshua Haberman
2010-06-11Work on decoder buffering.Joshua Haberman
2010-06-10Yet more.Joshua Haberman
2010-06-10More decoder work.Joshua Haberman
2010-06-10More decoder work.Joshua Haberman
2010-06-10Implement proper type checking again.Joshua Haberman
2010-06-09Decoder compiler but doesn't work yet.Joshua Haberman
2010-06-09More decoder work, first attempts at compiling it.Joshua Haberman
2010-06-09More work on upb_decoder.Joshua Haberman
2010-06-07More work on the decoder.Joshua Haberman
2010-06-05More work on the decoder.Joshua Haberman
2010-06-03More incremental work.Joshua Haberman
2010-06-03WIP: intrusive changes to upb_decoder.Joshua Haberman
2010-05-24Defined the upb_src and upb_bytesrc interfaces.Joshua Haberman
2010-01-19Add status to the sink interfaces.Joshua Haberman
2010-01-16Flesh out implementation of upb_sizebuilder.Joshua Haberman
2010-01-16Removed union tag from types.Joshua Haberman
2010-01-15Remove struct keyword from all types, use typedef instead.Joshua Haberman
2010-01-15upb_parser -> upb_decoderJoshua Haberman
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback