aboutsummaryrefslogtreecommitdiffstats
path: root/lib/et
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2013-11-18 19:48:53 +0100
committerBjörn Gustavsson <[email protected]>2014-01-20 12:35:54 +0100
commit7699312823b259c3735d7045b4224a50d1256ec5 (patch)
tree6f2322254aba32b278200fa62dbfa97a05f048dd /lib/et
parenta2090a64f88f0e7b8932c2b751a911316f2a0df0 (diff)
downloadotp-7699312823b259c3735d7045b4224a50d1256ec5.tar.gz
otp-7699312823b259c3735d7045b4224a50d1256ec5.tar.bz2
otp-7699312823b259c3735d7045b4224a50d1256ec5.zip
Optimize code surrounding calls to complete/1
complete/1 is used when encoding open types (as well as in the encode/2 function in a generated module). The use of complete/1 for encoding open types used to be optimized in two different places. One place was in the alignment optimization pass, where we attempted to replace the call to complete/1 with a call to iolist_to_binary/1. That optimization was taken out in a previous commit that introduced the {list,_,_} intermediate instruction. The other place was when creating the intermediate representation for the encoding of the open type. When attempting to wrap primitive types in an open type, we would attempt to optimize the encoding of the length decscriptor. We will remove that optimization in this commit. Since the previous two optimizations did not optimize encoding of open types as much as we would want, we will introduce a new optimization in a separate pass that will go further than the previous optimizations.
Diffstat (limited to 'lib/et')
0 files changed, 0 insertions, 0 deletions