aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-02-08Optimize non-strict equality check of binaries differing in sizePhilip Stears
This commit brings the perform of a non-strict equality check of binaries into the same range as strict ones. Currently, these checks can be significantly slower because they go through the general comparison code which doesn't have an optimization to check the size before comparing contents in the case that it's checking equality.
2018-02-06grisp/fix-powerpc-rtems-build/PR-1692/OTP-14909Lukas Larsson
Fix the build on targets with small data area
2018-02-06Merge pull request #1704 from fxn/patch-2Lukas Larsson
Reword docs related to the runtime system mode
2018-02-05Merge branch 'emj/stdlib/tar-repro/PR-1608/OTP-14834'Hans Bolinder
* emj/stdlib/tar-repro/PR-1608/OTP-14834: Add options for creating reproducible tars Return error when unable to make dir
2018-02-02Add options for creating reproducible tarsEric Meadows-Jönsson
2018-02-02Reword docs related to the runtime system modeXavier Noria
The existing wording may be interpreted as saying that embedded mode eager loads all modules. This revision makes clear embedded mode only disables module auto loading. Since I was on it, I have reordered a couple of places to describe interactive first, and then embedded. It feels natural to cover first the default and positive mode (auto loads), and then its negation.
2018-02-01Merge pull request #1701 from bjorng/bjorn/get_hd_tlBjörn Gustavsson
Eliminate get_list/3 internally in the compiler
2018-01-31Merge pull request #1696 from bjorng/bjorn/compiler/fix-beam_block-bug/ERL-555Björn Gustavsson
Fix incorrect handling of floating point instructions
2018-01-31Merge branch 'maint'Björn Gustavsson
* maint: Fix incorrect type interference of integer ranges Conflicts: lib/compiler/src/beam_type.erl
2018-01-31Merge branch 'bjorn/compiler/fix-beam_type-bug/OTP-14898' into maintBjörn Gustavsson
* bjorn/compiler/fix-beam_type-bug/OTP-14898: Fix incorrect type interference of integer ranges
2018-01-30Merge hipe-amd64-trampoline/PR-1669/OTP-14903Sverker Eriksson
2018-01-30Fix incorrect handling of floating point instructionsBjörn Gustavsson
1a029efd1ad47f started to run the beam_block pass a second time. Since it is run after introduction of the optimized floating point instructions, it must handle those instructions correctly. In particular, it must be careful when hoisting allocation instructions. For example, the following code: {test_heap,{alloc,[{words,0},{floats,1}]},5}. . . . {fmove,{fr,2},{x,0}}. {allocate_zero,1,4}. must not be rewritten to: {test_heap,{alloc,[{words,0},{floats,1}]},5}. . . . {allocate_zero,1,4}. {fmove,{fr,2},{x,0}}. because beam_validator will not consider it safe. (The code may actually be safe depending on what the code between the two allocation instructions do.) https://bugs.erlang.org/browse/ERL-555
2018-01-29Merge PR-1639 from sverker/scheduler_utilization OTP-14904Sverker Eriksson
runtime_tools: Add scheduler module
2018-01-29runtime_tools: Add scheduler moduleSverker Eriksson
2018-01-29erts: Refactor hipe x86_64 trampolinesSverker Eriksson
2018-01-29Update primary bootstrapSverker Eriksson
for hipe_unified_loader
2018-01-29make HiPE work on x86_64 when PIE is enabledbhuztez
Currently HiPE amd64 assumes the runtime system code is loaded into the low 2G of the address space. However, this is not the case when PIE is enabled, it is loaded into a random location. So trampolines are required to call BIFs, and also we have first to load the address of sse2_fnegate_mask to a regisiter before xorpd in fchs.
2018-01-29Merge branch 'maint'Sverker Eriksson
2018-01-29Merge branch 'sverker/ets-match_spec_run-spec/OTP-14889' into maintSverker Eriksson
2018-01-29Merge PR-1685 from sverker/sverker/hipe-verify-gcsafe OTP-14900Sverker Eriksson
Make hipe compile option verify_gcsafe the default
2018-01-29Merge branch 'bjorn/compiler/integer-encoding'Björn Gustavsson
* bjorn/compiler/integer-encoding: Speed up misc_SUITE:integer_encoding/1 beam_asm: Encode big numbers as literals
2018-01-29Fix incorrect type interference of integer rangesBjörn Gustavsson
2018-01-29Merge branch 'maint'Hans Nilsson
* maint: ssh: Disable test failing if docker command exists ssh: Skeleton of build scripts for DropBear image ssh: Can use DropBear SSH dockers ssh: Remove duplicate test cases from ssh_to_openssh_SUITE ssh: Add more tests ssh: Change the default list of ssh and ssl version images ssh: Enable building openssh 0.9.8[a-l] ssh: Add LibreSSL to compat tests
2018-01-29Merge branch 'hans/ssh/docker_compat_tests/OTP-14194' into maintHans Nilsson
* hans/ssh/docker_compat_tests/OTP-14194: ssh: Disable test failing if docker command exists ssh: Skeleton of build scripts for DropBear image ssh: Can use DropBear SSH dockers ssh: Remove duplicate test cases from ssh_to_openssh_SUITE ssh: Add more tests ssh: Change the default list of ssh and ssl version images ssh: Enable building openssh 0.9.8[a-l] ssh: Add LibreSSL to compat tests
2018-01-26Eliminate get_list/3 internally in the compilerBjörn Gustavsson
Instructions that produce more than one result complicate optimizations. get_list/3 is one of two instructions that produce multiple results (get_map_elements/3 is the other). Introduce the get_hd/2 and get_tl/2 instructions that return the head and tail of a cons cell, respectively, and use it internally in all optimization passes. For efficiency, we still want to use get_list/3 if both head and tail are used, so we will translate matching pairs of get_hd and get_tl back to get_list instructions.
2018-01-26Merge branch 'maint'Ingela Anderton Andin
2018-01-26Merge branch 'ingela/ssl/no-dsa-libressl' into maintIngela Anderton Andin
* ingela/ssl/no-dsa-libressl: ssl: Check OpenSSL version for DSS (DSA) support
2018-01-26ssh: Disable test failing if docker command existsHans Nilsson
This test is just to get a marking in test result listings where a docker system is installed
2018-01-26ssh: Skeleton of build scripts for DropBear imageHans Nilsson
2018-01-26ssh: Can use DropBear SSH dockersHans Nilsson
2018-01-26Speed up misc_SUITE:integer_encoding/1Björn Gustavsson
misc_SUITE:integer_encoding/1 was written to make sure that big integers were encoding correctly in a reasonable amount of time. Now that beam_asm will encode big integers as literals, we can reduce the scope of integer_encode/1. That will make it significantly faster, especially when cover is running.
2018-01-26Merge branch 'maint'Peter Andersson
2018-01-26Merge branch 'peppe/common_test/skip_groups_in_spec' into maintPeter Andersson
* peppe/common_test/skip_groups_in_spec: Fix skip_groups option in combination with all suites in test spec
2018-01-26Fix skip_groups option in combination with all suites in test specPeter Andersson
2018-01-26beam_asm: Encode big numbers as literalsBjörn Gustavsson
Numbers that clearly are not smalls can be encoded as literals. Conservatively, we assume that integers whose absolute value is greater than 1 bsl 128 are bignums and that they can be encoded as literals. Literals are slightly easier for the loader to handle than huge integers.
2018-01-26Merge pull request #1691 from bjorng/bjorn/compiler/local-cseBjörn Gustavsson
Do local common sub expression elimination (CSE)
2018-01-26Merge pull request #1690 from bjorng/bjorn/compiler/binary-matching/OTP-14774Björn Gustavsson
Do some minor optimizations of binary matching
2018-01-25ssh: Remove duplicate test cases from ssh_to_openssh_SUITEHans Nilsson
2018-01-25ssh: Add more testsHans Nilsson
2018-01-25ssh: Change the default list of ssh and ssl version imagesHans Nilsson
2018-01-25ssh: Enable building openssh 0.9.8[a-l]Hans Nilsson
2018-01-25ssh: Add LibreSSL to compat testsHans Nilsson
2018-01-25Merge branch 'ingela/DTLS-supported'Ingela Anderton Andin
* ingela/DTLS-supported: ssl: Fix typo dtls: Add DTLS handling to utility functions ssl: Document enhancment ssl: Document DTLS
2018-01-25ssl: Fix typoIngela Anderton Andin
2018-01-25ssl: Check OpenSSL version for DSS (DSA) supportIngela Anderton Andin
LibreSSL-2.6.3 dropped DSS (DSA) support
2018-01-25Merge branch 'dgud/wx/fix-driver-usage'Dan Gudmundsson
* dgud/wx/fix-driver-usage: wx: open_port doesn't allow 0 terminated strings anymore
2018-01-25beam_type: Optimize away unnecessary test_unit instructionsBjörn Gustavsson
Optimize away unnecessary test_unit instructions that verify that binaries are byte-aligned. In a tight loop, eliminating an instruction can have a small but measurable improvement of the execution time.
2018-01-25beam_type: Refactor simplify_basic/2 and friendsBjörn Gustavsson
Separate the simplification of instructions from updating of the type data base.
2018-01-24Add missing extern storage class in global.h headerSebastien Merle
2018-01-24erts_allctr_wrappers should be declared extern in headerPeer Stritzinger