aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/x86/hipe_x86_ra_postconditions.erl
AgeCommit message (Collapse)Author
2017-03-16hipe: Add pseudo_spill_f?move instructionsMagnus Lång
These pseudo instructions are added to all backends and allow spill slot to spill slot move coalescing in a clean way. They have regular move semantics, but contain an additional scratch register to be used if both source and destination are spilled, and can not be move coalesced. Additionally, a register allocator callback Target:is_spill_move(Instr, Context) is added which allows the spill slot allocators to check for these instructions and try to coalesce the spill slots the two temporaries are allocated to.
2016-11-23Correct copyright on remaining hipe filesRichard Carlsson
2016-11-15hipe_{x86,amd64}: Finish test instr implementationMagnus Lång
2016-09-05hipe: Refactor ra callbacks to accept context argMagnus Lång
This allows us to pass around the context data that hipe_regalloc_prepass needs cleanly, without using process dictionary or parameterised modules (like it was previous to this change).
2016-09-02hipe_x86: Simplify ra_postconditions is_mem_opndMagnus Lång
This is due to the improvements in hipe_temp_map, removing the need for duplicated logic in the backends.
2016-09-02hipe_x86: Extra sanity assertionsMagnus Lång
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_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-03-15update copyright-yearHenrik Nord
2015-06-18Change license text to APLv2Bruce Yinhe
2013-01-09Prepare OTP files for Unicode as default encodingHans Bolinder
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP