aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-02-20Improve optimization of switchesBjörn Gustavsson
Part of the switch optimization done by `ssa_opt_sw` can be better done in `beam_ssa_type`.
2019-02-20Evaluate pure BIFs with literal argumentsBjörn Gustavsson
2019-02-20Refactor optimization of Bool =:= trueBjörn Gustavsson
Refactor optimization of `Bool =:= true` to make the code somewhat simpler, as well as potentially apply the optimization in more cases.
2019-02-20Always make andalso/orelse right-associativeBjörn Gustavsson
Always rewriting left-associative andalso/orelse to right-associative will not change the code (except in very rare cases), but it will make sure that the transformation is tested.
2019-02-20Update primary bootstrapBjörn Gustavsson
2019-02-20Merge pull request #2146 from bjorng/bjorn/compiler/set_tuple_elementBjörn Gustavsson
Do the destructive setelement optimization in SSA
2019-02-19Merge branch 'maint'Siri Hansen
2019-02-19Merge branch 'siri/logger/pretty-print-config/OTP-15600' into maintSiri Hansen
* siri/logger/pretty-print-config/OTP-15600: [logger] Add pretty print function for configuration
2019-02-19[logger] Add pretty print function for configurationSiri Hansen
2019-02-19Merge branch 'sverker/enif_select-docs'Sverker Eriksson
2019-02-19erts: Clarify erl_nif docsSverker Eriksson
for enif_send and enif_select_read|write.
2019-02-19Merge branch 'maint'Sverker Eriksson
2019-02-19Merge branch 'sverker/heart-nice-exit/OTP-15599' into maintSverker Eriksson
* sverker/heart-nice-exit/OTP-15599: erts: Avoid heart killing a nicely exiting emulator
2019-02-19Do the destructive setelement optimization in SSABjörn Gustavsson
The expansion of record field updates, when more than one field is updated, but not a majority of the fields, will create a sequence of calls to `erlang:setelement(Index, Value, Tuple)` where Tuple in the first call is the original record tuple, and in the subsequent calls Tuple is the result of the previous call. Furthermore, all Index values are constant positive integers, and the first call to `setelement` will have the greatest index. Thus all the following calls do not actually need to test at run-time whether Tuple has type tuple, nor that the index is within the tuple bounds. Since OTP R7, the `sys_core_dsetel` pass, run as the very last Core Erlang pass, has optimized this sequence of `setelement` calls to use a special destructive version of `setelement` (called `set_tuple_element`) for all but the very first `setelement` in the sequence. It turns out that the presence of the `set_tuple_element` in SSA code is awkward and can prevent or complicate type analysis and aggressive optimizations. Therefore, this commit removes the `sys_core_dsetel` pass and reimplements it for SSA code. The optimization will be done in the `beam_ssa_pre_codegen` pass (that is, just before code generation and after running all other SSA code optimization passes). In most cases, the resulting BEAM code is identical to previous code. For a few modules, the BEAM code is actually slightly better, with smaller stack frames.
2019-02-19Merge branch 'maint'Hans Nilsson
* maint: ssh: Refactor decryption in ssh_protocol_SUITE
2019-02-19Merge branch 'hans/ssh/cuddle_tests' into maintHans Nilsson
* hans/ssh/cuddle_tests: ssh: Refactor decryption in ssh_protocol_SUITE
2019-02-19Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Fix a bug regarding contracts
2019-02-19Merge branch 'hasse/dialyzer/fix_contract_check/OTP-15562/ERL-845' into maintHans Bolinder
* hasse/dialyzer/fix_contract_check/OTP-15562/ERL-845: dialyzer: Fix a bug regarding contracts
2019-02-19Merge branch 'john/compiler/cuddle-validator'John Högberg
* john/compiler/cuddle-validator: compiler: Allow disabling SSA passes in -compile() directives beam_validator: Infer types from result of all type test BIFs beam_validator: Infer BIF argument types beam_validator: type_test in BIFs that only fail on invalid types beam_validator: Simplify complex branches beam_validator: Explain why verify_get_map wipes dst registers beam_validator: fconv means we have a number beam_validator: Simplify update_ne/eq_types beam_validator: Remove pointless fragility propagation beam_validator: Misc cosmetic refactoring
2019-02-18Merge branch 'maint'Lukas Larsson
2019-02-18erts: Remove etp macro offsetofLukas Larsson
The macro command was added quite recently and far from all of our testmachines have this command
2019-02-18Merge branch 'maint'Lukas Larsson
2019-02-18Merge branch 'lukas/erts/fix-exit_status-netbsd/OTP-15558' into maintLukas Larsson
* lukas/erts/fix-exit_status-netbsd/OTP-15558: Fix EV_DISPATCH detection on NetBSD
2019-02-18Merge branch 'ingela/ssl/dialyzer'Ingela Anderton Andin
* ingela/ssl/dialyzer: ssl: Correct merge commit thanks to dialyzer
2019-02-18ssl: Correct merge commit thanks to dialyzerIngela Anderton Andin
Also make a weaker spec in ssl_internal.hrl for now as it creates a conflict between error handling and dialyzer warnings.
2019-02-18ssh: Refactor decryption in ssh_protocol_SUITEHans Nilsson
Previously this test suite used a short-cut that didn't work well with the new crypto API being experimented with in other branches. This commit uses the legacy decode and decryption functions in ssh_transport. It is of course normally a bad idea to test something with itself. However, other test suites test the interoperability with OpenSSH and by that implicitly of the decoding/decryption. The ssh_protocol_SUITE tests sending malformed and even malicious PDUs to the Erlang/OTP SSH implementation. Therefore the tests in this suite is not dependent on being different than thoose of the system under test.
2019-02-18compiler: Allow disabling SSA passes in -compile() directivesJohn Högberg
This fixes compiling against older OTP versions with the +r?VSN options, which often expand to disabling certain SSA passes to avoid new instructions.
2019-02-18Merge branch 'ingela/ssl-shrink-state-merge'Ingela Anderton Andin
2019-02-18Merge branch 'ingela/ssl/shrink-state' into maintIngela Anderton Andin
* ingela/ssl/shrink-state: ssl: Remove duplicate record_cb handling ssl: Add test case for continued handshake with a timeout ssl: Use gen_statem named timers to handle connection and recv timeouts ssl: Move and rename diffie_hellman_keys and srp_keys to kex_keys ssl: Move key_algorithm to handshake_env ssl: srp ssl: Rename ssl: Move diffie_hellman_params to handshake_env ssl: Move and rename psk_identity state record field ssl: Move premaster_secret to handshake_env ssl: Make flight_state DTLS specific ssl: Add private_key to connection_env ssl: Remove unused record field ssl: Add erl_dist_handle to connection_env ssl: Add negotiated_version to connection_env ssl: Add key exchange items to handshake_env ssl: Add hashsign_algorithm and cert_hashsign_algorithm to handshake_env ssl: Add downgrade handling to connection_env ssl: Create connection_env ssl: Handle renegotiation and extensions in handshake_env
2019-02-18ssl: Workaround for compiler errors, to be reverted laterIngela Anderton Andin
2019-02-18Merge branch 'maint'Ingela Anderton Andin
Conflicts: lib/ssl/src/dtls_connection.erl lib/ssl/src/ssl_connection.erl lib/ssl/src/ssl_connection.hrl lib/ssl/src/tls_connection.erl
2019-02-18Merge branch 'maint'Raimo Niskanen
* maint: Updated OTP version Prepare release
2019-02-18Merge branch 'maint-21' into maintRaimo Niskanen
* maint-21: Updated OTP version Prepare release
2019-02-18Merge pull request #2102 from dszoboszlay/optimise-ext-table-dumping-furtherDan Gudmundsson
Optimise ext table dumping OTP-15588
2019-02-18Merge branch 'maint'Dan Gudmundsson
* maint: Fix showModal crash on Mojave Add wxGCDC wx: Add wxDisplay wx: Change wxFONTWEIGHT enums Let wxwidgets check events
2019-02-18Merge branch 'dgud/wx/extend-functionality/OTP-15587' into maintDan Gudmundsson
* dgud/wx/extend-functionality/OTP-15587: Fix showModal crash on Mojave Add wxGCDC wx: Add wxDisplay wx: Change wxFONTWEIGHT enums Let wxwidgets check events
2019-02-18Merge branch 'maint'Siri Hansen
* maint: Updated OTP version Prepare release
2019-02-18Merge branch 'bjorn/compiler/cuddle-with-tests'Björn Gustavsson
* bjorn/compiler/cuddle-with-tests: inline_SUITE: Make coverage/1 test cheaper Remove compile_SUITE:big_file/1 Add test modules that disable all SSA optimizations Cover erl_bifs.erl Remove attempt to handle all bs_match_string instructions Cover exception throwing code in beam_ssa_opt Parallelize test of listing files Don't limit the number of processes when running cover
2019-02-18Merge tag 'OTP-20.3.2.1' into maintSiri Hansen
=== OTP-20.3.2.1 === Changed Applications: - common_test-1.15.4.0.1 Unchanged Applications: - asn1-5.0.5 - compiler-7.1.5 - cosEvent-2.2.2 - cosEventDomain-1.2.2 - cosFileTransfer-1.2.2 - cosNotification-1.2.3 - cosProperty-1.2.3 - cosTime-1.2.3 - cosTransactions-1.3.3 - crypto-4.2.1 - debugger-4.2.4 - dialyzer-3.2.4 - diameter-2.1.4 - edoc-0.9.2 - eldap-1.2.3 - erl_docgen-0.7.2 - erl_interface-3.10.1 - erts-9.3 - et-1.6.1 - eunit-2.3.5 - hipe-3.17.1 - ic-4.4.3 - inets-6.5 - jinterface-1.8.1 - kernel-5.4.3 - megaco-3.18.3 - mnesia-4.15.3 - observer-2.7 - odbc-2.12.1 - orber-3.8.4 - os_mon-2.4.4 - otp_mibs-1.1.2 - parsetools-2.1.6 - public_key-1.5.2 - reltool-0.7.5 - runtime_tools-1.12.5 - sasl-3.1.1 - snmp-5.2.10 - ssh-4.6.7 - ssl-8.2.5 - stdlib-3.4.5 - syntax_tools-2.1.4 - tools-2.11.2 - wx-1.8.3 - xmerl-1.3.16 * tag 'OTP-20.3.2.1': Updated OTP version Prepare release
2019-02-18Merge branch 'maint'Dan Gudmundsson
* maint: Add OBSERVER_SCALE environment variable for HiDPI support
2019-02-18Merge branch 'pr/2105' into maintDan Gudmundsson
* pr/2105: Add OBSERVER_SCALE environment variable for HiDPI support OTP-15586
2019-02-18Add OBSERVER_SCALE environment variable for HiDPI supportLoïc Hoguin
2019-02-18Updated OTP versionOTP-20.3.2.1Siri Hansen
2019-02-18Prepare releaseSiri Hansen
2019-02-18Merge branch 'siri/ct/post_end_per_testcase-change-status/ERIERL-282/OTP-15584'Siri Hansen
* siri/ct/post_end_per_testcase-change-status/ERIERL-282/OTP-15584: [ct] Allow post_end_per_testcase hook to change tc status after timetrap
2019-02-18beam_validator: Infer types from result of all type test BIFsJohn Högberg
The compiler will usually optimize these into test instructions, but they'll nevertheless pop up in some cases.
2019-02-18beam_validator: Infer BIF argument typesJohn Högberg
If we know that a BIF will badarg unless its arguments have certain types, we can infer that we have at least those types on success. Note that we can't do this in the general case as the BIF could fail for reasons other than bad arguments.
2019-02-18Merge branch 'ingela/ssl/shrink-state' into maintIngela Anderton Andin
* ingela/ssl/shrink-state: ssl: Remove duplicate record_cb handling ssl: Add test case for continued handshake with a timeout ssl: Use gen_statem named timers to handle connection and recv timeouts ssl: Move and rename diffie_hellman_keys and srp_keys to kex_keys ssl: Move key_algorithm to handshake_env ssl: srp ssl: Rename ssl: Move diffie_hellman_params to handshake_env ssl: Move and rename psk_identity state record field ssl: Move premaster_secret to handshake_env ssl: Make flight_state DTLS specific ssl: Add private_key to connection_env ssl: Remove unused record field ssl: Add erl_dist_handle to connection_env ssl: Add negotiated_version to connection_env ssl: Add key exchange items to handshake_env ssl: Add hashsign_algorithm and cert_hashsign_algorithm to handshake_env ssl: Add downgrade handling to connection_env ssl: Create connection_env ssl: Handle renegotiation and extensions in handshake_env
2019-02-18Merge branch 'maint'Hans Nilsson
* maint: crypto: Fix of engine_SUITE:engine_list test case
2019-02-18Merge branch 'hans/crypto/cuddle_tests' into maintHans Nilsson
* hans/crypto/cuddle_tests: crypto: Fix of engine_SUITE:engine_list test case