aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-08-24Merge branch 'maint'Lars Thorsen
* maint: Updated OTP version Prepare release Updated the engine load functionality inets: Prepare for release inets: Use status code 501 when no mod_* handles the request ssl: Prepare for release ssl: Make sure that a correct cipher suite is selected ssl: Make sure that a correct cipher suite is selected
2018-08-24Merge branch 'maint-21' into maintLars Thorsen
* maint-21: Updated OTP version Prepare release Updated the engine load functionality inets: Prepare for release inets: Use status code 501 when no mod_* handles the request ssl: Prepare for release ssl: Make sure that a correct cipher suite is selected ssl: Make sure that a correct cipher suite is selected
2018-08-24Travis CI: Run the SSA linter in the Linux64SmokeTest buildBjörn Gustavsson
2018-08-24Remove retired compiler passesBjörn Gustavsson
2018-08-24Introduce a new SSA-based intermediate formatBjörn Gustavsson
v3_codegen is replaced by three new passes: * beam_kernel_to_ssa which translates the Kernel Erlang format to a new SSA-based intermediate format. * beam_ssa_pre_codegen which prepares the SSA-based format for code generation, including register allocation. Registers are allocated using the linear scan algorithm. * beam_ssa_codegen which generates BEAM assembly code from the SSA-based format. It easier and more effective to optimize the SSA-based format before X and Y registers have been assigned. The current optimization passes constantly have to make sure no "holes" in the X register assignments are created (that is, that no X register becomes undefined that an allocation instruction depends on). This commit also introduces the following optimizations: * Replacing of tuple matching of records with the is_tagged_tuple instruction. (Replacing beam_record.) * Sinking of get_tuple_element instructions to just before the first use of the extracted values. As well as potentially avoiding extracting tuple elements when they are not actually used on all executions paths, this optimization could also reduce the number values that will need to be stored in Y registers. (Similar to beam_reorder, but more effective.) * Live optimizations, removing the definition of a variable that is not subsequently used (provided that the operation has no side effects), as well strength reduction of binary matching by replacing the extraction of value from a binary with a skip instruction. (Used to be done by beam_block, beam_utils, and v3_codegen.) * Removal of redundant bs_restore2 instructions. (Formerly done by beam_bs.) * Type-based optimizations across branches. More effective than the old beam_type pass that only did type-based optimizations in basic blocks. * Optimization of floating point instructions. (Formerly done by beam_type.) * Optimization of receive statements to introduce recv_mark and recv_set instructions. More effective with far fewer restrictions on what instructions are allowed between creating the reference and entering the receive statement. * Common subexpression elimination. (Formerly done by beam_block.)
2018-08-23Merge branch 'maint'Ingela Anderton Andin
Conflicts: lib/ssl/src/tls_v1.erl
2018-08-23Merge branch 'ingela/ssl/correct-specs' into maintIngela Anderton Andin
* ingela/ssl/correct-specs: ssl: Correct dialyzer specs
2018-08-23ssl: Correct dialyzer specsIngela Anderton Andin
2018-08-23Updated OTP versionOTP-21.0.6Erlang/OTP
2018-08-23Prepare releaseErlang/OTP
2018-08-23Merge branch 'lars/crypto/multiple-engine-load-21/OTP-15233' into maint-21Erlang/OTP
* lars/crypto/multiple-engine-load-21/OTP-15233: Updated the engine load functionality
2018-08-23Merge branch 'ingela/maint-21/inets/status-501/ERIERL-218/OTP-15215' into ↵Erlang/OTP
maint-21 * ingela/maint-21/inets/status-501/ERIERL-218/OTP-15215: inets: Prepare for release inets: Use status code 501 when no mod_* handles the request ssl: Make sure that a correct cipher suite is selected
2018-08-23Merge branch 'ingela/ssl/maint-21/ECC/ERIERL-210/OTP-15203' into maint-21Erlang/OTP
* ingela/ssl/maint-21/ECC/ERIERL-210/OTP-15203: ssl: Prepare for release ssl: Make sure that a correct cipher suite is selected
2018-08-23Merge branch 'maint'Hans Nilsson
* maint: crypto: doc x25519 & x448 crypto: Test vectors for ecdh x25519 and x448 crypto: Remove the term 'eddh' crypto: Enable EDDH all OpenSSL cryptolib over beta version 1.1.1-pre8 ssh: Doc updates ssh: spec curve25519 & curve448 ssh: Fix non-conforming key generation in kex for x25519 and x448 ssh: Enable curve448-sha512 and curve25519-sha256 ssh: Remove the term 'eddh' crypto: Disable non-working SHA3_224 and SHA3_256 crypto: doc SHA3 (hash & hmac) crypto: Tests for SHA3 crypto: SHA3 hash on OpenSSL-1.1.1
2018-08-23Merge branch 'hans/ssh/x25519_x448/OTP-15133' into maintHans Nilsson
* hans/ssh/x25519_x448/OTP-15133: ssh: Doc updates ssh: spec curve25519 & curve448 ssh: Fix non-conforming key generation in kex for x25519 and x448 ssh: Enable curve448-sha512 and curve25519-sha256 ssh: Remove the term 'eddh'
2018-08-23Merge branch 'hans/crypto/x25519_x448/OTP-15240' into maintHans Nilsson
* hans/crypto/x25519_x448/OTP-15240: crypto: doc x25519 & x448 crypto: Test vectors for ecdh x25519 and x448 crypto: Remove the term 'eddh' crypto: Enable EDDH all OpenSSL cryptolib over beta version 1.1.1-pre8
2018-08-23Merge pull request #1932 from josevalim/jv-sb-bm/OTP-15238Lukas Larsson
Do not allocate good and bad shifts for single byte lookups
2018-08-23Merge branch 'hans/crypto/SHA3/OTP-15153' into maintHans Nilsson
* hans/crypto/SHA3/OTP-15153: crypto: Disable non-working SHA3_224 and SHA3_256 crypto: doc SHA3 (hash & hmac) crypto: Tests for SHA3 crypto: SHA3 hash on OpenSSL-1.1.1
2018-08-23Merge branch 'maint'Hans Nilsson
* maint: ssh: Doc updates ssh: some benchmarking of [email protected] ssh: -spec ssh: Add [email protected] cipher crypto: doc poly1305 crypto: doc chacha20 crypto: Error in test case crypto: chacha20 test case crypto: poly1305 test case crypto: -spec crypto: chacha20 cipher crypto: Mac POLY1305 if >=OpenSSL 1.1.1-pre8
2018-08-23Merge branch 'hans/ssh/[email protected]/OTP-15209' into maintHans Nilsson
* hans/ssh/[email protected]/OTP-15209: ssh: Doc updates ssh: some benchmarking of [email protected] ssh: -spec ssh: Add [email protected] cipher
2018-08-23Merge branch 'hans/crypto/poly1305_and_chacha20/OTP-15164' into maintHans Nilsson
* hans/crypto/poly1305_and_chacha20/OTP-15164: crypto: doc poly1305 crypto: doc chacha20 crypto: Error in test case crypto: chacha20 test case crypto: poly1305 test case crypto: -spec crypto: chacha20 cipher crypto: Mac POLY1305 if >=OpenSSL 1.1.1-pre8
2018-08-23crypto: doc x25519 & x448Hans Nilsson
2018-08-23crypto: Test vectors for ecdh x25519 and x448Hans Nilsson
2018-08-23crypto: Remove the term 'eddh'Hans Nilsson
2018-08-23crypto: Enable EDDH all OpenSSL cryptolib over beta version 1.1.1-pre8Hans Nilsson
2018-08-23ssh: Doc updatesHans Nilsson
2018-08-23ssh: spec curve25519 & curve448Hans Nilsson
2018-08-23ssh: Fix non-conforming key generation in kex for x25519 and x448Hans Nilsson
That is, curve25519-sha256, [email protected] and curve448-sha512
2018-08-23ssh: Enable curve448-sha512 and curve25519-sha256Hans Nilsson
2018-08-23ssh: Remove the term 'eddh'Hans Nilsson
2018-08-23crypto: Disable non-working SHA3_224 and SHA3_256Hans Nilsson
2018-08-23crypto: doc SHA3 (hash & hmac)Hans Nilsson
2018-08-23crypto: Tests for SHA3Hans Nilsson
2018-08-23crypto: SHA3 hash on OpenSSL-1.1.1Hans Nilsson
crypto:hash/2, crypto:hash_init/1, crypto:hash_update/2, crypto:hash_final/1
2018-08-23ssh: Doc updatesHans Nilsson
2018-08-23ssh: some benchmarking of [email protected]Hans Nilsson
2018-08-23ssh: -specHans Nilsson
2018-08-23ssh: Add [email protected] cipherHans Nilsson
2018-08-23crypto: doc poly1305Hans Nilsson
2018-08-23crypto: doc chacha20Hans Nilsson
2018-08-23crypto: Error in test caseHans Nilsson
2018-08-23crypto: chacha20 test caseHans Nilsson
2018-08-23crypto: poly1305 test caseHans Nilsson
2018-08-23crypto: -specHans Nilsson
2018-08-23crypto: chacha20 cipherHans Nilsson
2018-08-23crypto: Mac POLY1305 if >=OpenSSL 1.1.1-pre8Hans Nilsson
2018-08-23Merge branch 'maint'Lars Thorsen
* maint: Updated OTP version Prepare release Updated the engine load functionality Clean up bag index tables
2018-08-23Merge branch 'maint-20' into maintLars Thorsen
* maint-20: Updated OTP version Prepare release Updated the engine load functionality Clean up bag index tables Conflicts: OTP_VERSION lib/crypto/c_src/crypto.c lib/crypto/doc/src/notes.xml lib/crypto/vsn.mk lib/mnesia/doc/src/notes.xml lib/mnesia/vsn.mk otp_versions.table
2018-08-23Merge branch 'maint'Björn Gustavsson
* maint: map_SUITE: Test is_map_key/2 followed by a map update beam_validator: Infer the type of the map argument for is_map_key/2 map_SUITE: Cover map_get optimizations in beam_dead
2018-08-23Merge branch 'bjorn/compiler/fix-is_map_key-issues/OTP-15227' into maintBjörn Gustavsson
* bjorn/compiler/fix-is_map_key-issues/OTP-15227: map_SUITE: Test is_map_key/2 followed by a map update beam_validator: Infer the type of the map argument for is_map_key/2 map_SUITE: Cover map_get optimizations in beam_dead