aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-11-15hipe_rtl: unify branch and alubMagnus Lång
branch and alub overlap in their use cases, but the backends rely on knowing that the result is unused in their lowering of branch. By extending alub so that the destination is optional, it can fully replace branch. This simplifies rtl by reducing code duplication and the number of instructions. Also, in the x86 and arm backends, we can now use 'test' and {'tst','mvn','teq'} to lower some alubs without destinations. This is particularly good for x86, as sequences such as 'is_boxed' type tests now get shorter (both from not needing a mov to copy the variable, but also from the fact that 'testb' encodes shorter than 'andq').
2016-11-15hipe_x86: Fix&activate ElimCmp0 peephole ruleMagnus Lång
2016-11-15hipe_{x86,amd64}: Finish test instr implementationMagnus Lång
2016-11-11Merge branch 'siri/appups-20.0'Siri Hansen
* siri/appups-20.0: Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib Update appups in kernel, stdlib and sasl for OTP-20
2016-11-11Merge branch 'tsloughter/mod_app/PR-1222/OTP-14029'Siri Hansen
* tsloughter/mod_app/PR-1222/OTP-14029: Accept default value of 'start_phases' and 'mod' in .app
2016-11-11Merge branch 'bjorn/compiler/tests'Björn Gustavsson
* bjorn/compiler/tests: guard_SUITE: Add more test of guards compile_SUITE: Smoke test and cover more of v3_kernel_pp
2016-11-11guard_SUITE: Add more test of guardsBjörn Gustavsson
2016-11-11compile_SUITE: Smoke test and cover more of v3_kernel_ppBjörn Gustavsson
2016-11-11Merge branch 'maint'Peter Andersson
2016-11-11Merge branch 'peppe/common_test/fix_default_gl/ERL-279/OTP-13973' into maintPeter Andersson
* peppe/common_test/fix_default_gl/ERL-279/OTP-13973: Fix problem with printouts to incorrect parent group leader OTP-13973
2016-11-10Merge branch 'maint'Sverker Eriksson
# Conflicts: # lib/hipe/llvm/hipe_rtl_to_llvm.erl
2016-11-10Merge branch 'margnus1/hipe_llvm39_bugs/PR-1237/OTP-14027/OTP-14028' into maintSverker Eriksson
* margnus1/hipe_llvm39_bugs/PR-1237: hipe_rtl_to_llvm: Constants for bits per byte/word hipe_llvm: Work around LLVM 3.9 sdesc bug hipe_llvm: Fix incorrect atom alignment assumption
2016-11-10Merge branch 'maint'Ingela Anderton Andin
2016-11-10Merge branch 'ingela/ssl/ECC-certs-test' into maintIngela Anderton Andin
* ingela/ssl/ECC-certs-test: ssl: Use SHA2 for signing ECC certs if possible
2016-11-10ssl: Use SHA2 for signing ECC certs if possibleIngela Anderton Andin
ECC certs should preferably use SHA2, this is what we want to be testing. Also assembling of all available test suites must consider TLS version.
2016-11-09Accept default value of 'start_phases' and 'mod' in .appTristan Sloughter
The default value of 'mod' is '[]' and 'start_phases' is 'undefined' in .app, but this value was not accepted if given in the .app file. This is now corrected.
2016-11-09Merge branch 'maint'Ingela Anderton Andin
2016-11-09Merge branch 'ingela/ssl/tune-timeouts-packet_SUITE' into maintIngela Anderton Andin
* ingela/ssl/tune-timeouts-packet_SUITE: ssl: Change to more modest timeouts
2016-11-09Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: OTP_VERSION
2016-11-09Merge branch 'maint-19' into maintBjörn-Egil Dahlberg
2016-11-09Merge branch 'maint'Ingela Anderton Andin
2016-11-09Merge branch 'ingela/ssl/ECC-faulty-workaround' into maintIngela Anderton Andin
* ingela/ssl/ECC-faulty-workaround: ssl: Remove faulty workaround
2016-11-09ssl: Remove faulty workaroundIngela Anderton Andin
We where never really satisfied with this workaround it was a bit far fetched, so we are pleased to be able to remove it.
2016-11-09Merge branch 'maint'Raimo Niskanen
2016-11-09Merge branch ↵Raimo Niskanen
'gomoripeti/kernel/controlling_proc_badarg_doc/PR-1208/OTP-14022' into maint * gomoripeti/kernel/controlling_proc_badarg_doc/PR-1208/OTP-14022: controlling_process can return {error, badarg}
2016-11-08hipe_rtl_to_llvm: Constants for bits per byte/wordMagnus Lång
The constant ?WORD_WIDTH is renamed ?BITS_IN_WORD, and a new constant ?BITS_IN_BYTE is introduced. Additionally, a bug in a currently unused case clause of llvm_type_from_size/1 is fixed (the size of a word was hardcoded to 64 bits).
2016-11-08Merge branch 'maint'Raimo Niskanen
2016-11-08Merge branch 'raimo/gen_statem-improvements/OTP-13929' into maintRaimo Niskanen
* raimo/gen_statem-improvements/OTP-13929: Log terminate to sys debug Optimize event timeout Rework timeout handling Clarify the chapter 'Postponing Events' (ERL-284) Fix doc and type for state enter calls
2016-11-08Updated OTP versionOTP-19.1.6Erlang/OTP
2016-11-08Update release notesErlang/OTP
2016-11-08Update version numbersErlang/OTP
2016-11-08Merge branch ↵Erlang/OTP
'egil/erts/fix-configure-to-check-in-libsct-for-sctp-funcs/ERL-262/OTP-13956' into maint-19 * egil/erts/fix-configure-to-check-in-libsct-for-sctp-funcs/ERL-262/OTP-13956: Configure enable libsctp dependency Revert "Check libsctp for sctp funcs in configure.in"
2016-11-08Merge branch 'bjorn/erts/erl_prim_loader/OTP-14009' into maint-19Erlang/OTP
* bjorn/erts/erl_prim_loader/OTP-14009: Update preloaded modules Fix performance bug in erl_prim_loader:get_modules/{2,3}
2016-11-08Merge branch 'egil/19/erts/fix-crashdump-sigusr1/OTP-13997' into maint-19Erlang/OTP
* egil/19/erts/fix-crashdump-sigusr1/OTP-13997: erts: Fix SIGUSR1 crashdump generation
2016-11-08Configure enable libsctp dependencyRaimo Niskanen
2016-11-08Revert "Check libsctp for sctp funcs in configure.in"Raimo Niskanen
This reverts commit 52fae83743a6e84d719f4f82fe45e6e0efdbd6f0: Check libsctp for sctp funcs in configure.in Call AC_CHECK_LIB before calling AC_CHECK_FUNCS to check for functions in libsctp. Otherwise AC_CHECK_FUNCS will not link with libsctp to see if function exists. Reverting to the old behaviour of not checking for libsctp before checking for sctp functions. Then it works on Linux by loading libsctp and looking up the symbols i runtime, and it works on FreeBSD since there is no separate libsctp to link against - the functions are part of the default system libraries.
2016-11-08Merge branch 'maint'Björn-Egil Dahlberg
2016-11-08Merge branch 'jxck/fix-doc-typo/PR-1238' into maintBjörn-Egil Dahlberg
* jxck/fix-doc-typo/PR-1238: fix typo on doc of maps
2016-11-08Merge branch 'richcarl/mnesia-app-module/PR-1223'Dan Gudmundsson
* richcarl/mnesia-app-module/PR-1223: Make a separate application module for Mnesia
2016-11-08Merge branch 'maint'Dan Gudmundsson
* maint: New commands to ease looking up OTP documentation
2016-11-08Merge branch 'leoliu/tools/emacs-erldoc/PR-1197/OTP-14018' into maintDan Gudmundsson
* leoliu/tools/emacs-erldoc/PR-1197/OTP-14018: New commands to ease looking up OTP documentation
2016-11-08fix typo on doc of mapsJxck
typo
2016-11-07hipe_llvm: Work around LLVM 3.9 sdesc bugMagnus Lång
As of LLVM 3.9, the x86-call-frame-opt pass in LLVM's X86 backend causes the stack descriptors to contain incorrect (or even negative) frame sizes or root slot offsets. This might cause LLVM-compiled modules to be rejected during loading with a badarg exception in hipe_bifs:enter_sdecs/1 (which additionally prints a "hipe_bifs_enter_sdesc_1: bad sdesc!" message to stderr), or it might cause corruption or segmentation faults when walking stacks (f.ex. during GC) containing frames compiled with ErLLVM. As a workaround, we pass the -no-x86-call-frame-opt flag to llc when the version is at least 3.9
2016-11-07hipe_llvm: Fix incorrect atom alignment assumptionMagnus Lång
ErLLVM was declaring atoms in the following manner: @atom_ok = external constant i64 ; Used inside a function like this %var = ptrtoint i64* @atom_ok to i64 However, doing so makes LLVM think the `atom_ok` is 8-byte aligned, since it refers to a i64 value. This resulted in LLVM occasionally incorrectly optimising away type tests on atoms, causing incorrect behaviour or even segfaults. One such case is in bs_match_compiler:coverage_apply/2, in which an is_boxed test on a literal atom was optimised away, causing the code to try and load the "header" of an atom. This problem reproduces with LLVM versions 3.7 through 3.9. By declaring atoms as i8 (byte) constants instead, LLVM no longer makes these alignment assumptions, and the bug is fixed.
2016-11-07Merge branch 'sverker/distr-debug/PR-1174'Sverker Eriksson
2016-11-07Merge branch 'maint'Sverker Eriksson
2016-11-07Merge branch 'kostis/hipe-bs_match_string/PR-1234/OTP-14005' into maintSverker Eriksson
* kostis/hipe-bs_match_string/PR-1234/OTP-14005: Add a test case that should now work Fix the native code translation of bs_match_string
2016-11-07Merge branch 'maint'Ingela Anderton Andin
2016-11-07Merge branch 'ferd/ssl-allow-ecc-config/PR-1210/OTP-13959' into maintIngela Anderton Andin
* ferd/ssl-allow-ecc-config/PR-1210/OTP-13959: Add ECC curve selection order config in TLS server
2016-11-07Merge branch 'maint'Björn-Egil Dahlberg