aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-08-30hipe: Reuse liveness info for spillminMagnus Lång
For x86, additionally reuse liveness from float LSRA for the GP LSRA.
2016-08-30hipe_x86: Minimise CFG<->linear conversionsMagnus Lång
Most x86 passes were either linearise(pass(to_cfg(Code))) or trivially rewritable to process a CFG. This saves a great deal of time and memory churn when compiling large programs. Now, there will only ever be a single Linear->CFG conversion, just after lowering from RTL, and only ever a single CFG->Linear conversion, just before the finalise pass. Both of these now happen in hipe_x86_main.
2016-08-30Fix is-dirty-cpu/is-dirty-io scheduler predicatesRickard Green
2016-08-30Merge branch 'maint'Sverker Eriksson
2016-08-30Merge branch 'sverker/erl_interface/vxworks-socklen_t' into maintSverker Eriksson
2016-08-30hipe: Fix o0 and o1Magnus Lång
These options would not do anything, because they would not supress the 'o2' in ?COMPILE_DEFAULTS. Such behaviour is added to expand_options/2.
2016-08-30hipe: Add o0 and o1 to testsMagnus Lång
Now that x86 is no longer broken with these optimisation levels, we add them to the test suite to ensure they do not break again. Bump timeout to 6min since tests are run twice as many times. The option set of o1 was changed to all optimisations that run fast on both big and small programs, incurring only a slight compile time increase compared to the old set, but with a, presumably, significant improvement to speed of compiled code. Change o0 register allocator to linear_scan.
2016-08-30hipe_rtl_binary:get_word_integer/4: Handle immsMagnus Lång
Immediate arguments to get_word_integer/4 would lead to bad but unreachable RTL being generated. We omit its generation by testing for immediates and performing the logic at compile time.
2016-08-30hipe_x86: Be resilient to crappy RTLMagnus Lång
The x86 backend crashes if certain RTL optimisations were omitted, preventing it from being usable at lower optimisation levels.
2016-08-30hipe_x86: LSRA for SSE2Magnus Lång
There is little point offering LSRA for x86 if we're still going to call hipe_graph_coloring_regalloc for the floats. In particular, all allocators except LSRA allocates an N^2 interference matrix, making them unusable for really large functions.
2016-08-30Ensure correct mbuf_sz value in process structureRickard Green
2016-08-30Merge branch 'maint'Sverker Eriksson
2016-08-30Merge branch 'sverker/erl_interface-win-home/OTP-13849' into maintSverker Eriksson
* sverker/erl_interface-win-home: erl_interface: Look for .erlang.cookie in windows directory erl_interface: Refactor get_home()
2016-08-30Merge branch 'rickard/time-unit/OTP-13735' into maintRickard Green
* rickard/time-unit/OTP-13735: Update test-cases to use new symbolic time units Replace misspelled symbolic time units Conflicts: erts/doc/src/erlang.xml erts/emulator/test/long_timers_test.erl
2016-08-30Merge branch 'maint'Sverker Eriksson
2016-08-30erts: Improve z_SUITE:core_filesSverker Eriksson
to print name of test log dir in same dir as core, which will indicate offending application.
2016-08-30Merge branch 'maint'Rickard Green
* maint: Fix dirty schedulers build on windows
2016-08-30Merge branch 'rickard/ds-win-32bit/OTP-13759' into maintRickard Green
* rickard/ds-win-32bit/OTP-13759: Fix dirty schedulers build on windows
2016-08-30Merge branch 'maint'Rickard Green
* maint: Fix dirty_nif_SUITE:dirty_call_while_terminated test case Adjust process_SUITE:no_priority_inversion2 Allow larger timeout delay in driver_SUITE Ignore long time failures during high CPU utilization Cleanup in statistics_SUITE:runtime_update test Improve timer tests in driver_SUITE Fix statistics_SUITE:scheduler_wall_time test Fix scheduler_SUITE:scheduler_suspend test Fix scheduler_SUITE:scheduler_threads test Fix scheduler_SUITE:update_cpu_info test Skip nif_SUITE:consume_timeslice test when debug compiled Increase time margin in timer_bif_SUITE:start_timer_1 test
2016-08-30Merge branch 'rickard/test-cuddle' into maintRickard Green
* rickard/test-cuddle: Fix dirty_nif_SUITE:dirty_call_while_terminated test case Adjust process_SUITE:no_priority_inversion2 Allow larger timeout delay in driver_SUITE Ignore long time failures during high CPU utilization Cleanup in statistics_SUITE:runtime_update test Improve timer tests in driver_SUITE Fix statistics_SUITE:scheduler_wall_time test Fix scheduler_SUITE:scheduler_suspend test Fix scheduler_SUITE:scheduler_threads test Fix scheduler_SUITE:update_cpu_info test Skip nif_SUITE:consume_timeslice test when debug compiled Increase time margin in timer_bif_SUITE:start_timer_1 test
2016-08-30Fix dirty_nif_SUITE:dirty_call_while_terminated test caseRickard Green
Prevent binary from being prematurely GCed
2016-08-30Adjust process_SUITE:no_priority_inversion2Rickard Green
2016-08-30Merge branch 'maint'Sverker Eriksson
2016-08-30Merge branch 'sverker/load-corrupt-beam/ERL-216/OTP-13848' into maintSverker Eriksson
* sverker/load-corrupt-beam/ERL-216: erts:: Unsignify a bunch of loader variables erts: Reject an invalid beam code header size erts: Fix load of beam with invalid imports and atom numbers
2016-08-30Forgot ticket OTP-13846Sverker Eriksson
for PR-1146 merged at f3e018dc3bb3c74b88c7454f6a1888938215f912
2016-08-30make, ct_make: Handle warning attributes in source filesBjörn Gustavsson
epp learned to handle the -warning() directive in 14d72f02, but make and ct_make were not updated to expect a {warning,_} return value from epp:parse_erl_form/1.
2016-08-29Merge branch 'maint'Rickard Green
* maint: Fix tracing of processes executing dirty Perform check_process_code while process is executing dirty Fix purge of code Reclaim literal area after purge has completed Separate literal area from code Conflicts: erts/emulator/beam/global.h
2016-08-29Merge branch 'rickard/ds-trace/OTP-13822' into maintRickard Green
* rickard/ds-trace/OTP-13822: Fix tracing of processes executing dirty
2016-08-29Merge branch 'rickard/ds-purge-module/OTP-13808' into maintRickard Green
* rickard/ds-purge-module/OTP-13808: Perform check_process_code while process is executing dirty Conflicts: erts/doc/src/erl_nif.xml
2016-08-29Merge branch 'rickard/fun-purge-bug/OTP-13809' and ↵Rickard Green
'rickard/new-purge-strategy/OTP-13833' into maint * rickard/fun-purge-bug/OTP-13809: Fix purge of code Reclaim literal area after purge has completed Separate literal area from code Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/beam_bif_load.c erts/emulator/beam/erl_init.c erts/preloaded/ebin/init.beam
2016-08-29ssh: reduce random padding to 15 bytesHans Nilsson
This is to get rid of some warnings in Codenomicon/Defensics. It also speeds up the communications.
2016-08-29ssl: Remove clause that postponed unexpected messagesIngela Anderton Andin
2016-08-29ssh: Add non-blocking sendHans Nilsson
This is to try to fix ssh_connection_SUITE:interrupted_send problem. On machines with small buffers (<65k) like some Windows and *BSDs, this test case could deadlock with both sides having filled tcp receice buffers but stuck in prim_inet:send. This commit fixes this.
2016-08-29ssh: fix Codenomicon/Defensics auth problem with incomplete pduHans Nilsson
Trailing pdu values being 0 or empty strings are just excluded from the pdu by Codenomicon/Defensics. This is wrong but some kind of habit "out there". This commit makes Erlang SSH accept such pdu in one place because Defensics is king of security tests ...
2016-08-29ssh: fix changed badmatch error msg in ssh_algorithms_SUITEHans Nilsson
2016-08-29Fix tracing of processes executing dirtyRickard Green
2016-08-29Perform check_process_code while process is executing dirtyRickard Green
2016-08-29Fix purge of codeRickard Green
Ensure that we cannot get any dangling pointers into code that has been purged. This is done by a two phase purge. At first phase all fun entries pointing into the code to purge are marked for purge. All processes trying to call these funs will be suspended and by this we avoid getting new direct references into the code. When all processes has been checked, these processes are resumed. The new purge strategy now also completely ignore the existence of indirect references to the code (funs). If such exist, they will cause bad fun exceptions to the caller, but will not prevent a soft purge or cause a kill of a process having such live references during a hard purge. This since it is impossible to give any guarantees that no processes in the system have such indirect references. Even when the system is completely clean from such references, new ones can appear via distribution and/or disk.
2016-08-29Merge branch 'maint'Sverker Eriksson
2016-08-29Merge branch bugfix/ets-docs-typo/PR-1150Sverker Eriksson
of https://github.com/parndt/otp into maint * 'bugfix/ets-docs-typo' of https://github.com/parndt/otp: Fix typo: specificationc -> specification
2016-08-27Fix typo: specificationc -> specificationPhilip Arndt
2016-08-26Merge branch 'g-andrade/kernel/fetch_ztream_dictionary/PR-1139/OTP-13842'Lukas Larsson
* g-andrade/kernel/fetch_ztream_dictionary/PR-1139/OTP-13842: Update preloaded modules Specify min zlib ver on inflateGetDictionary doc Skip inflateGetDictionary test case if unsupported zlib: Only link inflateGetDictionary if available zlib: Add test case for inflateGetDictionary zlib: support extraction of inflation dictionary
2016-08-26Reclaim literal area after purge has completedRickard Green
2016-08-26Merge branch 'maint'Sverker Eriksson
2016-08-26Merge branch 'sverker/hipe-backend-bugs/PR-1146' into maintSverker Eriksson
2016-08-26Eliminate catch-all clause from two functionsKostis Sagonas
A stronger version of Dialyzer complained that some case clauses in functions xaluop_is_shift/1 and xaluop_normalise/1 are unreachable. These clauses are now commented out. While at it, I thought that it would be better to eliminate the catch-all clauses in order to be certain we properly handle all RTL instructions that are used as inputs to these functions. Note: The code will now crash if there are unhandled cases.
2016-08-25Update test-cases to use new symbolic time unitsRickard Green
2016-08-25Replace misspelled symbolic time unitsRickard Green
Besides using two words for 'milliseconds' et. al. they are also changed from plural to singular.
2016-08-25ssl: Upgrade suite testing skipped if stdlib upgrade is requiredIngela Anderton Andin
2016-08-25Increase the time limit used by the test suiteKostis Sagonas
This is required in some really old SPARC machines running Solaris we still have access to.