aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/rtl/hipe_rtl_lcm.erl
AgeCommit message (Collapse)Author
2018-06-11Fix a crash ih HoPE's lazy code motion passKostis Sagonas
Some change in the BEAM compiler resulted in the creation of basic blocks that differed from those previously created by the compiler. As a result, the lazy code motion pass of RTL crashed when compiling some of the new code. Crashes were privately reported by @richcarl.
2017-11-05hipe_rtl_lcm: Fix another bugMagnus Lång
During deletion, the killing of expressions was not considered.
2017-11-05hipe_rtl_lcm: Fix Lazy Code Motion bugMagnus Lång
The lazy code motion optimisation pass could violate its guarantees eliminating partial redundancy by moving an expression to before a call instruction.
2016-11-23Correct copyright on remaining hipe filesRichard Carlsson
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-05-31Code rewrites to avoid exported vars compiler warningsKostis Sagonas
2016-05-31Cleanups in hipe/main and hipe/rtlKostis Sagonas
* Rewrite matching statements in ?when_option macro to form that silences dialyzer's unmatched_return warnings * Treat compiler warnings as errors when compiling files in main
2016-03-15update copyright-yearHenrik Nord
2015-06-18Change license text to APLv2Bruce Yinhe
2011-11-17hipe: Fix bug in hipe_rtl_lcm:calc_killed_expr_bbSverker Eriksson
Bug causing hipe to crash. Only provoked when changing the RTL generation for floating point operations. hipe_rtl:defines() was called with a expression ID instead of an expression. Use expr_id_map_get_expr() to get expression from ID. Need to pass along IdMap in order to do that.
2011-09-29Update copyright yearsBjörn-Egil Dahlberg
2011-09-15Fix more misspellings of compatibilityTuncer Ayaz
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP