diff options
author | Björn Gustavsson <[email protected]> | 2013-11-18 19:48:53 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2014-01-20 12:35:54 +0100 |
commit | 7699312823b259c3735d7045b4224a50d1256ec5 (patch) | |
tree | 6f2322254aba32b278200fa62dbfa97a05f048dd /lib/et | |
parent | a2090a64f88f0e7b8932c2b751a911316f2a0df0 (diff) | |
download | otp-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