aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2017-09-01Merge pull request #1550 from bjorng/bjorn/erts/unique-literalsBjörn Gustavsson
De-duplicate bignums in the literal pool
2017-09-01Merge branch 'bjorn/erts/improve-beam-ops'Björn Gustavsson
* bjorn/erts/improve-beam-ops: Optimize dispatch of loop_rec from recv_set Add missing -no_next directives Eliminate three arguments for erts_hibernate() Eliminate three arguments for the apply() helper Assign machine registers for X86-64 Annotate arithmetic instructions with likely/unlikely Add annotations for likely/unlikely ops.tab: Mark infrequently used instructions as %cold Introduce '%warm' and beam_warm.h
2017-08-31Optimize dispatch of loop_rec from recv_setBjörn Gustavsson
We KNOW that recv_set instruction is immediately followed by a loop_rec instruction.
2017-08-31Add missing -no_next directivesBjörn Gustavsson
2017-08-31Eliminate three arguments for erts_hibernate()Björn Gustavsson
We don't need to pass x(0), x(1), and x(2) because they can already be found in the register array.
2017-08-31Eliminate three arguments for the apply() helperBjörn Gustavsson
We don't need to pass x(0), x(1), and x(2) because they can already be found in the register array.
2017-08-31Assign machine registers for X86-64Björn Gustavsson
Keep frequently used variables in machine registers.
2017-08-31Annotate arithmetic instructions with likely/unlikelyBjörn Gustavsson
We expect that: * An arithmetic instruction is more likely to succeed than to fail. * An arithmetic instruction is more likely to have small operands than bignum operands.
2017-08-31Add annotations for likely/unlikelyBjörn Gustavsson
In a correct Erlang programs, we can expect that: * A GC test instruction (such as test_heap) is more likely not to do the GC. * A BIF is more likely to succeed than to fail. * A BIF is more likely to fail in a guard than in a body. * An apply or fun call is likely to succeed. Annotate conditions accordingly.
2017-08-31ops.tab: Mark infrequently used instructions as %coldBjörn Gustavsson
Instructions that used to be implemented in beam_emu.c were not marked as cold as it would make no difference.
2017-08-31Introduce '%warm' and beam_warm.hBjörn Gustavsson
The bit syntax instructions are mixed among other instructions in beam_hot.h and beam_cold.h. Introduce a new hotness level called '%warm' with is associated file beam_warm.h. Mark all bit syntax instructions as '%warm'.
2017-08-31Merge branch 'maint'Rickard Green
* maint: Upgrade to PCRE 8.41 from PCRE 8.40
2017-08-31Merge branch 'rickard/pcre-8.41' into maintRickard Green
OTP-14574 * rickard/pcre-8.41: Upgrade to PCRE 8.41 from PCRE 8.40
2017-08-31Merge branch 'maint'Lukas Larsson
2017-08-31Merge branch 'lukas/erts/port_SUITE_dropped_commands_fix' into maintLukas Larsson
* lukas/erts/port_SUITE_dropped_commands_fix: erts: Fix port_SUITE:dropped_commands tc
2017-08-31Merge branch 'dszoboszlay/run-dropped_commands-test' into maintLukas Larsson
* dszoboszlay/run-dropped_commands-test: Execute the dropped_commands test case in port_SUITE
2017-08-30Merge pull request #1548 from bjorng/bjorn/erts/remove-float-constant-bcBjörn Gustavsson
Remove backward compatibility support for float literals OTP-14575
2017-08-29Upgrade to PCRE 8.41 from PCRE 8.40Rickard Green
2017-08-29erts: Fix port_SUITE:dropped_commands tcLukas Larsson
We start the port in the started process in order to get the messages in the correct place and also so that unloading the port driver does not kill the test process.
2017-08-29De-duplicate bignums in the literal poolBjörn Gustavsson
Duplicate literals in the literal pool is a waste of memory. Also, having unique literals can simplify some loader optimizations, because we can known that if two literal indices are distinct, the values must be distcint too.
2017-08-28Merge branch 'rickard/dist/OTP-14459' into rickard/dist/master/OTP-14459Rickard Green
Conflicts: erts/emulator/beam/bif.c erts/emulator/beam/dist.c erts/emulator/beam/dist.h erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_node_tables.c erts/emulator/beam/erl_node_tables.h erts/emulator/beam/external.c
2017-08-28Introduce sender in distributed signals and dflag configurationRickard Green
2017-08-28Optimize dist entry managementRickard Green
2017-08-28Support for running test suites with gen_tcp_distRickard Green
2017-08-28Example of using distribution controller processesRickard Green
2017-08-28Support for distribution controller processesRickard Green
2017-08-28Remove backward compatibility support for float literalsBjörn Gustavsson
Starting from R16B, floating point constants are stored in the literal pool. The backward compatibility support for the old representation of floats has been kept long enough. Also, we might want to ensure that all literals are unique in the future, and we certainly don't want to update this code to ensure uniqueness.
2017-08-28Merge branch 'maint'Björn Gustavsson
* maint: Remove time-consuming ethread_SUITE from smoke tests
2017-08-28Remove time-consuming ethread_SUITE from smoke testsBjörn Gustavsson
The ethread_SUITE is unlikely to ever find a real bug introduced in a pull request, but it frequently times out when run by Travis CI.
2017-08-25Merge branch 'maint'Henrik Nord
2017-08-25Merge branch 'maint-20' into maintHenrik Nord
* maint-20: Updated OTP version Prepare release dialyzer: Fix a bug where merging PLT:s could lose info
2017-08-25Prepare releaseErlang/OTP
2017-08-25Merge branch 'rickard/btm-auto-cleanup-bug/OTP-14554' into maint-20Erlang/OTP
* rickard/btm-auto-cleanup-bug/OTP-14554: Fix BIF timer race between timeout and auto cleanup
2017-08-25Merge branch 'rickard/timer-sid-bug/OTP-14548' into maint-20Erlang/OTP
* rickard/timer-sid-bug/OTP-14548: Fix scheduler id field in timers # Conflicts: # erts/emulator/beam/erl_hl_timer.c
2017-08-24Merge branch 'maint'Rickard Green
* maint: Fix BIF timer race between timeout and auto cleanup Conflicts: erts/emulator/beam/erl_hl_timer.c
2017-08-24Merge branch 'rickard/btm-auto-cleanup-bug/OTP-14554' into maintRickard Green
* rickard/btm-auto-cleanup-bug/OTP-14554: Fix BIF timer race between timeout and auto cleanup
2017-08-24Merge branch 'maint'Rickard Green
* maint: Fix scheduler id field in timers Conflicts: erts/emulator/beam/erl_hl_timer.c
2017-08-24Merge branch 'rickard/timer-sid-bug/OTP-14548' into maintRickard Green
* rickard/timer-sid-bug/OTP-14548: Fix scheduler id field in timers Conflicts: erts/emulator/beam/erl_hl_timer.c
2017-08-24Merge branch 'bjorn/erts/improve-beam-ops'Björn Gustavsson
* bjorn/erts/improve-beam-ops: arith_instrs.tab: Clean up bsl/bsr beam_makeops: Stop using the Arg() macro Eliminate the beam_instrs.h file Add the 'S' type for a register source Introduce more packable types Pack cold instructions too Pack instructions using 'q', 'c', and 's' beam_makeops: Rewrite the packer, fixing several bugs Make map update instruction functions indepedent of instruction format beam_makeops: Introduce the new type 'W' (machine word) Use the wait_timeout_{un}locked_int instructions beam_makeops: Remove the unused aliases 'N' and 'U' beam_makeops: Add an additional sanity check beam_makeops: Prevent truncation when packing 'I' values Improve performance for bsl/bsr arith_instrs.tab: Eliminate warning for uninitialized value beam_emu: Remove unused macros beam_makeops: Remove unused subroutine save_c_code Add missing -no_next for badarg instruction
2017-08-24Merge branch 'maint'Raimo Niskanen
Conflicts: OTP_VERSION
2017-08-24Merge branch 'maint-20' into maintRaimo Niskanen
* maint-20: Updated OTP version Prepare release Accept non-binary options as socket-options Bump version Fix broken handling of default values in extensions for PER compiler: Fix live regs update on allocate in validator Take fail labels into account when determining liveness in block ops Check for overflow when appending binaries, and error out with system_limit
2017-08-23Fix BIF timer race between timeout and auto cleanupRickard Green
2017-08-23Fix scheduler id field in timersRickard Green
2017-08-23arith_instrs.tab: Clean up bsl/bsrBjörn Gustavsson
Eliminate the all-purpose variable 'ires'. Replace it with several variables used that are used for their specific purpose. Narrow the scope of the variables. Do this to improve readability. It is not expected that it should any impact on performance.
2017-08-23Merge branch 'maint'Rickard Green
* maint: Unicode support for erlang:display_string/1
2017-08-23Merge branch 'rickard/unicode-display_string/OTP-14545' into maintRickard Green
* rickard/unicode-display_string/OTP-14545: Unicode support for erlang:display_string/1
2017-08-23Unicode support for erlang:display_string/1Rickard Green
2017-08-23Merge branch 'maint'Sverker Eriksson
2017-08-23Merge branch 'lukas/erts/fix_dirty_trace_message_flush/OTP-14538'Lukas Larsson
* lukas/erts/fix_dirty_trace_message_flush/OTP-14538: erts: Fix incorrect merge of dirty_trace_message_flush fix to master
2017-08-23Merge branch 'sverker/halt-unicode-slogan/OTP-14553' into maintSverker Eriksson
* sverker/halt-unicode-slogan/OTP-14553: erts: Allow any unicode string as crash dump slogan erts: Generate crash_dump slogan string as UTF8 erts: Refactor erts_unicode_list_to_buf