aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-01-18beam_ssa_opt: Run ssa_opt_tuple_size earlyBjörn Gustavsson
Running ssa_opt_tuple_size early will give more opportunities for optimizations.
2019-01-18beam_ssa_codegen: Remove forgotten and unreachable clauseBjörn Gustavsson
fd682dd3b1dc corrected label generation for 'or', but forgot to remove the old incorrect clause (that can no longer be reached).
2019-01-18beam_ssa_opt: Run the type optimization pass twiceBjörn Gustavsson
The code will be significantly improved by running the type optimization pass twice. The ssa_opt_misc pass can be eliminated because everything it does is also done by the type optimization pass.
2019-01-17Make the beam_validator smarter (again)Björn Gustavsson
Needed because of the optimizations in 48f20bd589fa69. https://bugs.erlang.org/browse/ERL-832
2019-01-17Write some more comments in the engine loopRaimo Niskanen
2019-01-17Work around a compiler mis-optimizationRaimo Niskanen
The common subexpression optimization accidentally caused unnecessary spilling of live registers. A rather ugly workaround can be found in loop_timeouts_cancel.
2019-01-17Merge branch 'maint'Rickard Green
* maint: Updated OTP version Prepare release
2019-01-17Merge branch 'maint-20' into maintRickard Green
* maint-20: Updated OTP version Prepare release
2019-01-17sys_core_inline: Kill *all* fun annotations when inliningBjörn Gustavsson
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.
2019-01-17beam_ssa_type: Eliminate redundant 'succeeded' instructionsBjörn Gustavsson
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.
2019-01-17Merge pull request #2097 from bjorng/bjorn/compiler/eliminate-beam_bsBjörn Gustavsson
Eliminate the beam_bs compiler pass
2019-01-17Fix incorrect dumping of some persistent termsBjörn Gustavsson
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.
2019-01-17ssh: Adjust some calls to io:format()Hans Bolinder
2019-01-17xmerl: Adjust a call to io:format()Hans Bolinder
2019-01-17sasl: Adjust some calls to io:format()Hans Bolinder
2019-01-17common_test: Adjust some calls to io:format()Hans Bolinder
2019-01-17Move out helper functions to engine loopRaimo Niskanen
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.
2019-01-17ssl: Correct 3des_ede_cbc checkIngela Anderton Andin
Could cause ssl to claim to support 3des_ede_cbc when cryptolib does not
2019-01-16Updated OTP versionOTP-20.3.8.18Erlang/OTP
2019-01-16Prepare releaseErlang/OTP
2019-01-16Merge branch 'rickard/dirty_scheduler_collapse/OTP-15509' into maint-20Erlang/OTP
* rickard/dirty_scheduler_collapse/OTP-15509: Fix bug causing dirty scheduler sleeper list inconsistency
2019-01-16Move optimizations of bs_put* instruction to beam_ssa_optBjörn Gustavsson
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.
2019-01-16Refactor string operandsBjörn Gustavsson
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.
2019-01-16Move coalescing of bs_skip to beam_ssa_optBjörn Gustavsson
The optimization can be applied in a few more places if done before ssa_opt_bsm_shortcut (for example, in unicode:cbv/2).
2019-01-16[logger] Update bench marks to report percent instead of 0.XXSiri Hansen
Also remove some compiler warnings from test suite.
2019-01-16Merge branch 'maint'Björn Gustavsson
* maint: beam_type: Eliminate compiler crash when arithmetic expression fails Conflicts: lib/compiler/src/beam_type.erl
2019-01-16Merge branch 'bjorn/compiler/beam_type/ERL_829/OTP-15518' into maintBjörn Gustavsson
* bjorn/compiler/beam_type/ERL_829/OTP-15518: beam_type: Eliminate compiler crash when arithmetic expression fails
2019-01-16Merge branch 'maint'Rickard Green
* maint: Updated OTP version Prepare release
2019-01-16Merge branch 'maint-21' into maintRickard Green
* maint-21: Updated OTP version Prepare release
2019-01-16Merge branch 'maint'Rickard Green
* maint: Fix bug causing dirty scheduler sleeper list inconsistency
2019-01-16Merge branch 'rickard/dirty_scheduler_collapse/maint-21/OTP-15509' into maintRickard Green
* rickard/dirty_scheduler_collapse/maint-21/OTP-15509: Fix bug causing dirty scheduler sleeper list inconsistency
2019-01-16Merge pull request #2091 from bjorng/bjorn/compiler/beam_ssa_typeBjörn Gustavsson
Improve type optimizations
2019-01-16Merge branch 'maint'Ingela Anderton Andin
2019-01-16Merge branch 'ingela/ssl/test-cuddle' into maintIngela Anderton Andin
* ingela/ssl/test-cuddle: ssl: Cuddle tests
2019-01-16ssl: Cuddle testsIngela Anderton Andin
2019-01-16Merge branch 'maint'Hans Bolinder
* maint: syntax_tools: Fix pretty-printing of type funs
2019-01-16Merge branch 'hasse/syntax_tools/fun_types/ERL-815/OTP-15519' into maintHans Bolinder
* hasse/syntax_tools/fun_types/ERL-815/OTP-15519: syntax_tools: Fix pretty-printing of type funs
2019-01-16[logger] Minor fix in logger_olp_SUITE to avoid error in end_per_testcaseSiri Hansen
2019-01-16[logger] Remove info and reset functions from handler modulesSiri Hansen
These are not documented, and only used in test. The test now uses logger_olp directly instead.
2019-01-16[logger] Remove some unused variable warningsSiri Hansen
2019-01-16[logger] Store proxy config in logger ets tableSiri Hansen
This is to ensure that logger_proxy gets the same config after a restart.
2019-01-16[logger] Log mode change and flushes in logger_proxySiri Hansen
2019-01-16[logger] Move out overload protection macros from logger_h_common.hrlSiri Hansen
The new file logger_olp.hrl is added.
2019-01-16[logger] Allow logger_olp callbacks to return {stop,...}Siri Hansen
2019-01-16Add logger_stress_SUITE to benchmarks specSiri Hansen
2019-01-16[logger] Add idle timer in logger_olpSiri Hansen
2019-01-16[logger] Use persistent_term for storing proxy referenceSiri Hansen
2019-01-16Update preloadedSiri Hansen
2019-01-16Use system_time instead of monotonic_time in log eventsSiri Hansen
Two modules were missed when this was changed before OTP-21.
2019-01-16[logger] Add test for restart of logger proxySiri Hansen