Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-03-15 | update copyright-year | Henrik Nord | |
2015-09-28 | Move select_val optimization from beam_clean to beam_peep | Björn Gustavsson | |
There is an optimization in beam_clean that will remove values having the same label as the failure label in a select_val instruction. Conceptually, this optimization is in the wrong module since ideally beam_clean is a mandatory pass that should not do optimizations. Furthermore, this part of beam_clean is called three times (from beam_dead, beam_peep, and as a compiler pass from the 'compile' module), but it only does useful one of the times it is called. Therefore, move this optimization to the beam_peep pass. The same optimization is done in beam_dead, but unfortunately it misses some opportunities for optimization because the code sharing optimization in beam_jump (share/1) runs after beam_dead. It would be more satisfactory to have this optimization only in beam_dead, but it turned out not to be trivial. If we try to run beam_jump:share/1 before beam_dead, some optimizations will no longer work in beam_dead because fallthroughs have been eliminated. For the moment, the possible solutions to this problem seems to involve more work and more complicated code than the gain from eliminating the duplicated optimization would gain. | |||
2015-08-21 | Move rewriting of select_val to is_boolean from beam_peep to beam_dead | Björn Gustavsson | |
We can rewrite more instances of select_val to is_boolean because it is not necessary that a particular label follows the select_val. | |||
2015-06-18 | Change license text to APLv2 | Bruce Yinhe | |
2015-03-09 | beam_peep: Optimize away redundant use of is_boolean tests | Björn Gustavsson | |
2013-01-25 | Update copyright years | Björn-Egil Dahlberg | |
2012-10-10 | Rewrite select_val and select_tuple_arity to a select instruction | Björn Gustavsson | |
Eliminate some code bloat. | |||
2010-06-02 | Merge branch 'bg/compiler' into dev | Erlang/OTP | |
* bg/compiler: beam_peep: Remove optimization already done by beam_dead beam_dead: Combine is_eq_exact instructions into select_val instructions Evaluate is_record/3 at compile-time using type information Evaluate element/2 at compile-time using type information erl_expand_records: Replace is_record() with matching OTP-8668 bg/compiler The compiler optimizes record operations better. | |||
2010-06-02 | beam_peep: Remove optimization already done by beam_dead | Björn Gustavsson | |
2009-11-20 | The R13B03 release.OTP_R13B03 | Erlang/OTP | |