aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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-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-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-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-16Merge branch 'maint'Hans Bolinder
* maint: Fix erl_parse:af_constraint() Fix erl_parse:af_fun_type() Add literal character to erl_parse:abstract_type/0 type
2019-01-16Merge pull request #2074 from gomoripeti/singleton_char_typeHans Bolinder
Fixes in erl_parse:abstract_type/0 type
2019-01-16Merge branch 'maint'Hans Bolinder
* maint: Fix sorting in lists.xml
2019-01-16Merge branch 'jfw7/stdlib/fix_doc_lists/PR-2049' into maintHans Bolinder
* jfw7/stdlib/fix_doc_lists/PR-2049: Fix sorting in lists.xml
2019-01-15Updated OTP versionOTP-21.2.3Erlang/OTP
2019-01-15Prepare releaseErlang/OTP
2019-01-15Merge branch 'rickard/dirty_scheduler_collapse/maint-21/OTP-15509' into maint-21Erlang/OTP
* rickard/dirty_scheduler_collapse/maint-21/OTP-15509: Fix bug causing dirty scheduler sleeper list inconsistency
2019-01-15Merge branch 'john/erts/prim_file-init-restart/OTP-15495/ERL-821' into maint-21Erlang/OTP
* john/erts/prim_file-init-restart/OTP-15495/ERL-821: Remove an unused variable Spawn prim_file helper as a system process
2019-01-15Merge branch 'peterdmv/ssl/fix-srp-encode-decode/ERL-790/OTP-15477' into ↵Erlang/OTP
maint-21 * peterdmv/ssl/fix-srp-encode-decode/ERL-790/OTP-15477: ssl: Fix encoding/decoding of the SRP extension
2019-01-15Merge branch 'ingela/ssl/enhance-error-handling/OTP-15505' into maint-21Erlang/OTP
* ingela/ssl/enhance-error-handling/OTP-15505: ssl: Cuddle test cases ssl: Fix test case ssl: Fix two invalid gen_statem returns
2019-01-15Merge branch 'ingela/maint-21/active-once/ERL-371/OTP-15504' into maint-21Erlang/OTP
* ingela/maint-21/active-once/ERL-371/OTP-15504: ssl: Guarantee active once data delivery
2019-01-15Merge branch 'lars/xmerl/bug-in-detect-charset/OTP-15492' into maint-21Erlang/OTP
* lars/xmerl/bug-in-detect-charset/OTP-15492: [xmerl] Fix detect charset crash
2019-01-15Merge branch 'bjorn/compiler/interim-tuple-bug/OTP-15501/ERL-807' into maint-21Erlang/OTP
* bjorn/compiler/interim-tuple-bug/OTP-15501/ERL-807: Remove unsafe optimization for delaying creation of stackframe
2019-01-15Merge branch 'lukas/ssl/benchmark_basic_test'Lukas Larsson
* lukas/ssl/benchmark_basic_test: inets: Decrease benchmark TC timeout inets: Fix crypto:rand_bytes usage in benchmarks ssl: Only run a basic fast test in test cycle
2019-01-15inets: Decrease benchmark TC timeoutLukas Larsson
2019-01-15inets: Fix crypto:rand_bytes usage in benchmarksLukas Larsson
2019-01-15ssl: Only run a basic fast test in test cycleLukas Larsson
Some of the slower machines takes 20-30 minutes to run one iteration of the payload test.
2019-01-15Merge branch 'maint'Lukas Larsson
2019-01-15Merge branch 'lukas/erts/spawn_opt_max_heap_tc_fix' into maintLukas Larsson
* lukas/erts/spawn_opt_max_heap_tc_fix: erts: Fix process_SUITE:max_heap tests
2019-01-15Merge branch 'maint'Lukas Larsson
2019-01-15Merge branch 'lukas/erts/fix-seq_trace-reset_trace/OTP-15490' into maintLukas Larsson
* lukas/erts/fix-seq_trace-reset_trace/OTP-15490: erts: Remove dead gdb functions from code erts: Make sure to take main lock when dumping proc info
2019-01-15erts: Remove dead gdb functions from codeLukas Larsson
2019-01-15erts: Make sure to take main lock when dumping proc infoLukas Larsson
If the main lock is not taken then any process running on a dirty scheduler may cause all kinds of problems.
2019-01-15Merge branch 'maint'Lukas Larsson
Conflicts: erts/emulator/beam/bif.c erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/ebin/prim_file.beam
2019-01-15Merge branch 'lukas/erts/set_logger_process/OTP-15375' into maintLukas Larsson
* lukas/erts/set_logger_process/OTP-15375: Update preloaded modules erts: Add erlang:system_flag(system_logger,_)
2019-01-15Merge branch 'maint'Ingela Anderton Andin
Conflicts: lib/ssl/src/ssl.erl
2019-01-15Merge pull request #2069 from zuiderkwast/erl_parse_typesHans Bolinder
Correction of type abstract_expr -> abstract_expr() in erl_parse
2019-01-15Merge pull request #2082 from ↵Ingela Andin
IngelaAndin/ingela/ssl/save-specific-session/OTP-15369 Ingela/ssl/save specific session/otp 15369
2019-01-15Fix sorting in lists.xmljfw7
`search/2` was sorted incorrectly.
2019-01-15Merge branch 'maint'Hans Nilsson
* maint: crypto: Refresh of test case for elliptic curves crypto: Rename a testcase
2019-01-15Merge branch 'hans/crypto/cuddle_tests' into maintHans Nilsson
* hans/crypto/cuddle_tests: crypto: Refresh of test case for elliptic curves crypto: Rename a testcase
2019-01-15crypto: Refresh of test case for elliptic curvesHans Nilsson