aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-04-29cerl_inline: Replace old-style 'catch' with 'try'...'catch'Björn Gustavsson
Using 'try'...'catch' simplifies the code and improves coverage because we don't have to re-throw accidentally caught errors.
2015-04-29sys_core_fold: Suppress warnings betterBjörn Gustavsson
86fbd6d76d strengthened type optimization in lets. As a result of the stronger optimizations, special care had to be taken to suppress false warnings. It turns out that false warnings can still slip through. Slapping on a 'compiler_generated' annotation at the top-level of a complex term such as #c_tuple{} may not suppress all warnings. We will need to go deeper into the term to eliminate all warnings.
2015-04-29beam_utils: Teach check_liveness/3 to understand get_map_elementsBjörn Gustavsson
Understanding get_map_elements improves the stack trimming done by beam_trim.
2015-04-29Teach beam_trim to handle map instructionsBjörn Gustavsson
2015-04-29beam_utils: Be less conservative about liveness for exit instructionsBjörn Gustavsson
beam_utils used to be overly conservative about liveness for exit instructions such as: call_ext erlang:exit/1 beam_utils would consider all y registers to be used, to avoid overwriting a catch or try tag. That does not seem to be a real risk. However, we miss opportunities for stack trimming if we consider y registers used by an exit instruction.
2015-04-29beam_validator: Stop validating the 'aligned' flag for binariesBjörn Gustavsson
The run-time system stopped paying attention the 'aligned' flag in bit syntax construction and matching when bitstrings were introduced in language. The beam_asm compiler pass will crash if the 'aligned' flag is given in bit syntax instructions. beam_validator still validates the 'aligned' flag. Before 912fea0b712a (which removed the possibility to validate existing BEAM files), the 'aligned' flag could actually be encountered when validating a BEAM file. Since the validation of 'aligned' no longer serves any useful purpose, remove the validation code.
2015-04-29beam_validator: Clean up updating of types for y registerBjörn Gustavsson
set_type_y/3 is far too complicated. Note that we don't need to check the #st.numy field, because we will detect the error anyway because the information for the y register will be missing in the #st.y gb_tree. There is also a clause that would never match because of a spelling error (the first "n" was missing in "uninitialized"). That clause is not needed because the default clause will do fine. Furthermore, we can break out the special case for handling catch_end and similar instructions into a new function.
2015-04-28Merge branch 'egil/opt-instructions/OTP-12690'Björn-Egil Dahlberg
* egil/opt-instructions/OTP-12690: erts: Specialize minus and plus instruction erts: Add move2 specialization for common move patterns erts: Specialize rem instruction for common case erts: Specialize band instruction for common case erts: Batch loads and stores for move_window erts: Fix loader increment from minus instruction erts: Add move window instruction erts: Add instruction move3 for xy and xx erts: Specialize compare instructions kernel: Add instruction_count helper to erts_debug
2015-04-28snmp: Remove deprecated warning for erlang:now in snmpcErland Schönbeck
2015-04-28Merge branch 'erland/OTP18/snmp/OTP-12452'Erland Schönbeck
* erland/OTP18/snmp/OTP-12452: snmp: Remove deprecated warning for erlang:now in snmp_verbority snmp: Change to random use crypto. Remove use of erlang:now
2015-04-27Fix cross compilation for AndroidJérôme de Bretagne
2015-04-27Merge branch 'x0id/jinterface_transport_factory'Zandra Hird
* x0id/jinterface_transport_factory: jinterface: transport factory implementation fix typo error from recent merge OTP-12686
2015-04-27Merge branch 'hans/ssh/improve_docs'Hans Nilsson
* hans/ssh/improve_docs: ssh: broken doc links to file functions fixed
2015-04-27ssh: broken doc links to file functions fixedHans Nilsson
2015-04-27Merge branch 'sverk/maximmai-pr640-autoconf/OTP-12646'Sverker Eriksson
* sverk/maximmai-pr640-autoconf/OTP-12646: Update config.guess and config.sub to latest versions
2015-04-27Merge branch 'derek121/gen_server_doc_grammar'Zandra Hird
* derek121/gen_server_doc_grammar: Fix grammar in docs for multi_call/*
2015-04-27Merge branch 'vinoski/dirty-sched-wakeup'Zandra Hird
OTP-12685
2015-04-27erts: Specialize minus and plus instructionBjörn-Egil Dahlberg
Seen on SSL application where substraction with x registers were prevalent: * i_minus specialization on x registers * i_plus specialization on x registers
2015-04-27erts: Add move2 specialization for common move patternsBjörn-Egil Dahlberg
Common pattern seen in SSL: move y x | move r x -> move2 move r x | move y x -> move2 Common pattern seen in SSL and Compiler: move x r | move x x -> move2
2015-04-27Merge branch 'bjorn/use-monotonic-time'Björn Gustavsson
* bjorn/use-monotonic-time: supervisor: Correct restart handling test_server: Use erlang:monotonic_time/0 compile: Teach 'time' option to show three significant decimals timer: Use monotonic_time/0 in tc/1,2,3
2015-04-27snmp: Remove deprecated warning for erlang:now in snmp_verborityErland Schönbeck
2015-04-27Merge branch 'hb/dialyzer/new_options/OTP-12682'Hans Bolinder
* hb/dialyzer/new_options/OTP-12682: dialyzer: Add new option 'unknown' dialyzer: Add new option 'no_missing_calls'
2015-04-27dialyzer: Add new option 'unknown'Hans Bolinder
Replace the undocumented option 'no_unknown' with the documented option 'unknown'.
2015-04-27dialyzer: Add new option 'no_missing_calls'Hans Bolinder
2015-04-27Merge branch 'hb/stdlib/update_gb_sets_type'Hans Bolinder
* hb/stdlib/update_gb_sets_type: stdlib: Substitute set() for gb_sets:set() in gb_sets
2015-04-27stdlib: Substitute set() for gb_sets:set() in gb_setsHans Bolinder
2015-04-24Merge branch 'egil/eprof-totality/OTP-12681'Björn-Egil Dahlberg
* egil/eprof-totality/OTP-12681: tools: Add printout of total number of calls and time in eprof
2015-04-24Merge branch 'egil/core-on-heart-tmo/OTP-12613'Björn-Egil Dahlberg
* egil/core-on-heart-tmo/OTP-12613: kernel: Document heart environment HEART_KILL_SIGNAL erts: Enable different abort signal from heart
2015-04-24Merge branch 'egil/opt-float-cmp'Björn-Egil Dahlberg
* egil/opt-float-cmp: erts: Brute force float comparisons as well
2015-04-24snmp: Change to random use crypto. Remove use of erlang:nowErland Schönbeck
2015-04-24Merge branch 'hans/ssh/improve_docs'Hans Nilsson
2015-04-24Merge branch 'ia/ssh/improve_docs'Ingela Anderton Andin
* ia/ssh/improve_docs: ssh: Move code example to Users Guide ssh: Keep dependency info in only one place ssh: Add links ssh: Align to alphabetic order ssh: Change wording to become accurate ssh: Remove extra whitespace ssh: Corrected information about error and event logging ssh: Remove legacy statement ssh: Technically correct description Editorial updates
2015-04-24erts: Specialize rem instruction for common caseBjörn-Egil Dahlberg
* i_rem specialization on x registers
2015-04-24erts: Specialize band instruction for common caseBjörn-Egil Dahlberg
* i_band specialization on x registers and constants
2015-04-23erts: Batch loads and stores for move_windowBjörn-Egil Dahlberg
May lessen load/store latency.
2015-04-23erts: Fix loader increment from minus instructionBjörn-Egil Dahlberg
A type error caused the optimization to never kick in.
2015-04-23ssh: Timeout unit and default added to some missing placesHans Nilsson
2015-04-23erts: Add move window instructionBjörn-Egil Dahlberg
Move an entire region of x registers to the stack. This reduces the dispatch pressure of move instructions. Also introduce a move2 specialization for some common move patterns: move r y | move x y -> move2 : As above, moving regions to the stack move x r | move x y -> move2 : A seemingly common pattern
2015-04-23erts: Add instruction move3 for xy and xxBjörn-Egil Dahlberg
2015-04-23erts: Specialize compare instructionsBjörn-Egil Dahlberg
* i_is_lt for r, x registers and constants * i_is_ge for x registers and constants * i_is_exact_eq for r and x registers
2015-04-23kernel: Add instruction_count helper to erts_debugBjörn-Egil Dahlberg
2015-04-23ssh: Formatting adjustmentsHans Nilsson
Some examples had encountered the space eater.
2015-04-23ssh: Add line about supported kex algorithm(s)Hans Nilsson
2015-04-23ssh: Removed missplaced empty paranthesisHans Nilsson
2015-04-23beam_validator: Remove support for removed BIF fault/1,2Björn Gustavsson
The fault/1,2 BIF was removed a long time ago.
2015-04-23beam_validator: Correct merging of statesBjörn Gustavsson
When merging two states, the following fields should be merged between the states: #st.x, #st.y, #st.numy, #st.ct. Everything else should be set to the default values in a new state.
2015-04-23beam_validator: Correct merging of y registersBjörn Gustavsson
When merging y registers, only the y registers that are found in both states should be retained.
2015-04-23Merge branch 'maint'Zandra Hird
Conflicts: OTP_VERSION
2015-04-22ssh: Move code example to Users GuideIngela Anderton Andin
2015-04-22ssh: Keep dependency info in only one placeIngela Anderton Andin