Age | Commit message (Collapse) | Author |
|
Needed because of the optimizations in 48f20bd589fa69.
https://bugs.erlang.org/browse/ERL-832
|
|
|
|
The common subexpression optimization accidentally caused
unnecessary spilling of live registers. A rather ugly
workaround can be found in loop_timeouts_cancel.
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-20:
Updated OTP version
Prepare release
|
|
sys_core_inline didn't kill fun annotations in variables,
which could lead to duplicated wrapper functions for funs.
That was basically harmless because the duplicated functions
were eventually discarded.
|
|
The beam_ssa_type pass would leave redundant 'succeeded' instructions,
and depend on the live optimization pass to remove them.
Update beam_ssa_type to remove redundant 'succeeded' instructions.
This will not improve the generated code, but will improve compilation
times since it eliminates instructions and variables.
|
|
Eliminate the beam_bs compiler pass
|
|
There seems to be an incorrect merge conflict resolution
in abde22933f5a that merged maint to master. Dumping of
references (and possibly other terms) were broken.
|
|
|
|
|
|
|
|
|
|
This strategy improves speed benchmarks and reduces the
amount of garbage that is produced.
More:
* Handle transition options as loop function arguments instead
of in a record.
* Shorten the state_enter loop and make it more efficient
by making it more part of the loop and less a loop restart.
* Simplify the internal timeout action handling somewhat.
|
|
Could cause ssl to claim to support 3des_ede_cbc when cryptolib does not
|
|
|
|
|
|
|
|
* rickard/dirty_scheduler_collapse/OTP-15509:
Fix bug causing dirty scheduler sleeper list inconsistency
|
|
Do the optimizations of bs_put* instructions in beam_ssa_opt
and remove the beam_bs pass. This can lead to a slight improvement
of compilation times.
|
|
There are two instructions that take string operands:
{bs_put_string,Fail,NumberOfBytes,{string,String}}
{bs_match_string,Fail,Register,NumberOfBits,{string,String}}
In the canonical BEAM code that is passed to beam_asm, string String
is currently represented as a list. (The string in bs_match_string is
a bitstring before the beam_z compiler pass.) That is wasteful,
because there will be unnecessary conversions between lists and
binaries.
Change the representation of String to be a binary.
Furthermore, bs_put_string is an optimization of a bs_put_binary
instruction with a literal binary operand. Currently, the
bs_put_string instruction is introduced in beam_bs. Delay the
introduction of bs_put_string to the beam_z pass. That will simplify
optimizations and allow us to do the optimization currently done
in beam_bs in a SSA pass in a future commit.
|
|
The optimization can be applied in a few more places if done
before ssa_opt_bsm_shortcut (for example, in unicode:cbv/2).
|
|
Also remove some compiler warnings from test suite.
|
|
* maint:
beam_type: Eliminate compiler crash when arithmetic expression fails
Conflicts:
lib/compiler/src/beam_type.erl
|
|
* bjorn/compiler/beam_type/ERL_829/OTP-15518:
beam_type: Eliminate compiler crash when arithmetic expression fails
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-21:
Updated OTP version
Prepare release
|
|
* maint:
Fix bug causing dirty scheduler sleeper list inconsistency
|
|
* rickard/dirty_scheduler_collapse/maint-21/OTP-15509:
Fix bug causing dirty scheduler sleeper list inconsistency
|
|
Improve type optimizations
|
|
|
|
* ingela/ssl/test-cuddle:
ssl: Cuddle tests
|
|
|
|
* maint:
syntax_tools: Fix pretty-printing of type funs
|
|
* hasse/syntax_tools/fun_types/ERL-815/OTP-15519:
syntax_tools: Fix pretty-printing of type funs
|
|
|
|
These are not documented, and only used in test. The test now uses
logger_olp directly instead.
|
|
|
|
This is to ensure that logger_proxy gets the same config after a
restart.
|
|
|
|
The new file logger_olp.hrl is added.
|
|
|
|
|
|
|
|
|
|
|
|
Two modules were missed when this was changed before OTP-21.
|
|
|
|
|
|
|