##integer>float


Vocabulary
compiler.cfg.instructions

Definition
IN: compiler.cfg.instructions

TUPLE: ##integer>float < foldable-insn dst src insn# ;


Methods
USING: accessors compiler.cfg.gvn.avail
compiler.cfg.instructions kernel ;

M: ##integer>float >avail-insn-defs [ ] change-dst drop ;


USING: accessors compiler.cfg.gvn.avail
compiler.cfg.instructions kernel ;

M: ##integer>float >avail-insn-uses
[ dup >avail-vreg swap or ] change-src drop ;


USING: accessors arrays compiler.cfg.instructions
compiler.cfg.value-numbering.expressions
compiler.cfg.value-numbering.graph kernel sequences.private ;

M: ##integer>float >expr
\ ##integer>float swap [ src>> vreg>vn ] keep drop
2 f <array> 1 swap [ set-array-nth ] keep 0 swap
[ set-array-nth ] keep ;


USING: accessors arrays compiler.cfg.gvn.expressions
compiler.cfg.gvn.graph compiler.cfg.instructions kernel
sequences.private ;

M: ##integer>float >expr
\ ##integer>float swap [ src>> vreg>vn ] keep drop
2 f <array> 1 swap [ set-array-nth ] keep 0 swap
[ set-array-nth ] keep ;


USING: accessors compiler.cfg.instructions
compiler.cfg.linear-scan.assignment kernel ;

M: ##integer>float assign-insn-defs
[ vreg>reg ] change-dst drop ;


USING: accessors compiler.cfg.instructions
compiler.cfg.linear-scan.assignment kernel ;

M: ##integer>float assign-insn-uses
[ vreg>reg ] change-src drop ;


USING: compiler.cfg.build-stack-frame compiler.cfg.instructions
cpu.architecture kernel ;

M: ##integer>float compute-stack-frame*
drop integer-float-needs-stack-frame?
[ frame-required ] when ;


USING: accessors compiler.cfg.instructions
compiler.cfg.representations.rewrite kernel ;

M: ##integer>float convert-insn-defs
[ converted-value ] change-dst drop ;


USING: accessors compiler.cfg.instructions
compiler.cfg.representations.rewrite kernel ;

M: ##integer>float convert-insn-uses
[ converted-value ] change-src drop ;


USING: compiler.cfg.instructions
compiler.cfg.representations.preferred cpu.architecture kernel
;

M: ##integer>float defs-vreg-reps drop { double-rep } ;


USING: accessors arrays compiler.cfg.def-use
compiler.cfg.instructions ;

M: ##integer>float defs-vregs dst>> 1array ;


USING: accessors compiler.cfg.instructions compiler.codegen
cpu.architecture kernel ;

M: ##integer>float generate-insn
[ dst>> ] keep [ src>> ] keep drop %integer>float ;


USING: accessors compiler.cfg.instructions
compiler.cfg.renaming kernel ;

M: ##integer>float rename-insn-defs
[ rename-value ] change-dst drop ;


USING: accessors compiler.cfg.instructions
compiler.cfg.renaming kernel ;

M: ##integer>float rename-insn-uses
[ rename-value ] change-src drop ;


USING: accessors compiler.cfg.instructions
compiler.cfg.ssa.construction.private kernel ;

M: ##integer>float ssa-rename-insn-defs
[ gen-name ] change-dst drop ;


USING: accessors compiler.cfg.instructions
compiler.cfg.ssa.construction.private kernel ;

M: ##integer>float ssa-rename-insn-uses
[ top-name ] change-src drop ;


USING: compiler.cfg.instructions
compiler.cfg.representations.preferred cpu.architecture kernel
;

M: ##integer>float uses-vreg-reps drop { int-rep } ;


USING: accessors arrays compiler.cfg.def-use
compiler.cfg.instructions ;

M: ##integer>float uses-vregs src>> 1array ;