aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2016-08-30hipe_sparc: Minimise CFG<->linear conversionsMagnus Lång
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_sparc_main.
2016-08-30hipe_ppc: Minimise CFG<->linear conversionsMagnus Lång
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_ppc_main.
2016-08-30hipe_arm: Minimise CFG<->linear conversionsMagnus Lång
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_arm_main.
2016-08-30hipe_x86: Use lea instead of move+addMagnus Lång
This is primarily useful for heap allocations, as a two-address 'add' can't be used to both copy the heap pointer to another register, and add the tag.
2016-08-30hipe_arm: Improve peephole optimiserMagnus Lång
2016-08-30hipe_arm: Be resilient to crappy RTLMagnus Lång
The ARM backend crashes if certain RTL optimisations were omitted, preventing it from being usable at lower optimisation levels. One of the problems were caused by shift-by-immediate-zero, which wraps to immediate-32 with some shiftops. TODO: Someplace should be modified to crash when these are generated so debuging further instances of this gets easier in the future.
2016-08-30hipe_ppc: Be resilient to crappy RTLMagnus Lång
The PowerPC backend crashes if certain RTL optimisations were omitted, preventing it from being usable at lower optimisation levels.
2016-08-30hipe_sparc: Be resilient to crappy RTLMagnus Lång
The SPARC backend crashes if certain RTL optimisations were omitted, preventing it from being usable at lower optimisation levels.
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-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-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-26Merge branch 'maint'Sverker Eriksson
2016-08-26Merge branch 'sverker/hipe-backend-bugs/PR-1146' into maintSverker Eriksson
2016-08-25Merge branch 'maint'Peter Andersson
2016-08-25Merge branch 'peppe/debugger_crash/ERL-191/OTP-13756' into maintPeter Andersson
* peppe/debugger_crash/ERL-191/OTP-13756: Make sure exit in non-interpreted code doesn't crash the debugger OTP-13756
2016-08-25Merge branch 'maint'Siri Hansen
2016-08-24[reltool] Fix dialyzer warnings introduced by OTP-11993Siri Hansen
2016-08-24Merge branch 'maint'Raimo Niskanen
2016-08-24Merge branch 'raimo/gen_statem-callback_mode/OTP-13752' into maintRaimo Niskanen
* raimo/gen_statem-callback_mode/OTP-13752: Include trap_exit in server skeletons Improve sys debug Handle exceptions in init/1 and callback_mode/0 Clarify error values Doc fixes Rewrite SSH for gen_statem M:callback_mode/0 Rewrite SSL for gen_statem M:callback_mode/0 Rewrite Tools for gen_statem M:callback_mode/0 Rewrite gen_statem docs for M:callback_mode/0 Rewrite gen_statem TCs for M:callback_mode/0 Rewrite gen_statem for M:callback_mode/0
2016-08-22hipe: Fix amd64 SSE2 encoding crashMagnus Lång
Register allocation could transform something like fmove u32, d99 to fmove $rdx, 0x20($rsp) which is an invalid instruction.
2016-08-22hipe: Fix tailcall stackarg clobber bugMagnus Lång
Since the link register/return address is restored before stack arguments are stored to the frame, we must not use it to store a stack argument. We do that by adding it to the registers clobbered by pseudo_tailcall_prepare.
2016-08-22hipe_arm: Fix translation of shift by 0Magnus Lång
The problem was caused by shift-by-immediate-zero, which wraps to immediate-32 with some shiftops. TODO: Someplace should be modified to crash when these are generated so debugging further instances of this gets easier in the future.
2016-08-22hipe_ppc: Fix PPC64 bug encoding large immediatesMagnus Lång
2016-08-22hipe_ppc: Fix incorrect encoding of shift by 0Magnus Lång
2016-08-22hipe_x86: Fix illegal inst from peephole optMagnus Lång
2016-08-22Merge branch 'gomoripeti/syntax_tools/merl-transform/PR-1123/OTP-13755' into ↵Björn Gustavsson
maint * gomoripeti/syntax_tools/merl-transform/PR-1123/OTP-13755: Fix infinite loop in merl_transform
2016-08-22Skip inflateGetDictionary test case if unsupportedGuilherme Andrade
2016-08-22Merge branch 'bjorn/compiler/binary-literal-matching'Björn Gustavsson
* bjorn/compiler/binary-literal-matching: Reinstate optimization of binary literal matching Strengthen test case added in 8b83bc0b
2016-08-22Merge branch 'maint'Ingela Anderton Andin
2016-08-22Merge remote-tracking branch 'github/pr/1144' into maintIngela Anderton Andin
2016-08-22Merge branch 'maint'Ingela Anderton Andin
2016-08-22Merge branch 'ingela/ssl/ssl_npn_hello_SUITE_precondition' into maintIngela Anderton Andin
* ingela/ssl/ssl_npn_hello_SUITE_precondition: ssl: Check precondition for ssl_npn_hello_SUITE
2016-08-21Update httpd.xmlLinus.yuan
corrected some typo
2016-08-19Reinstate optimization of binary literal matchingBjörn Gustavsson
105c5b0071 was reverted in dd1162846e because clauses that were supposed to match would not match. (See 8b83bc0b.) Reintroduce the optimization, but make sure that we only shortcut bs_context_to_binary instructions and not bs_start_match2 instructions.
2016-08-19Strengthen test case added in 8b83bc0bBjörn Gustavsson
Don't only test the case that failed; test it exhaustively.
2016-08-19Merge branch 'maint'Sverker Eriksson
2016-08-19Merge branch 'sverker/net_kernel-setopts/OTP-13564' into maintSverker Eriksson
2016-08-19Merge branch 'maint'Dan Gudmundsson
* maint: wx: Add missing specs
2016-08-19Merge branch 'dgud/wx/broken-links' into maintDan Gudmundsson
* dgud/wx/broken-links: wx: Add missing specs
2016-08-19Merge branch 'maint'Dan Gudmundsson
* maint: Request a larger stacksize for wx thread
2016-08-19Merge branch 'dgud/wx/increase_wx_stacksize' into maintDan Gudmundsson
* dgud/wx/increase_wx_stacksize: Request a larger stacksize for wx thread
2016-08-18ssl: Check precondition for ssl_npn_hello_SUITEIngela Anderton Andin
2016-08-18Include trap_exit in server skeletonsRaimo Niskanen
2016-08-18Improve sys debugRaimo Niskanen
2016-08-17Handle exceptions in init/1 and callback_mode/0Raimo Niskanen