Improved support for (complex single-float) and (complex double-float)
types. Adds storage classes to the backend for these so they can be stored in registers or on the stack without consing; new primitive types etc. Also adds (simple-array (complex {single,double}-float)) array types to avoid consing and speed vectors operations. All these changes are conditional on the :complex-float feature. More work is needed to exploit these changes: improving the type dispatch in the various function; maybe compiler transforms or more VOPs to handle common functions inline.
Showing
- code/array.lisp 24 additions, 4 deletionscode/array.lisp
- code/class.lisp 27 additions, 1 deletioncode/class.lisp
- code/exports.lisp 19 additions, 4 deletionscode/exports.lisp
- code/interr.lisp 29 additions, 1 deletioncode/interr.lisp
- code/irrat.lisp 3 additions, 3 deletionscode/irrat.lisp
- code/load.lisp 22 additions, 1 deletioncode/load.lisp
- code/numbers.lisp 32 additions, 3 deletionscode/numbers.lisp
- code/pred.lisp 5 additions, 1 deletioncode/pred.lisp
- code/room.lisp 7 additions, 3 deletionscode/room.lisp
- code/x86-vm.lisp 28 additions, 1 deletioncode/x86-vm.lisp
- compiler/array-tran.lisp 5 additions, 1 deletioncompiler/array-tran.lisp
- compiler/dump.lisp 24 additions, 1 deletioncompiler/dump.lisp
- compiler/generic/interr.lisp 13 additions, 1 deletioncompiler/generic/interr.lisp
- compiler/generic/new-genesis.lisp 47 additions, 1 deletioncompiler/generic/new-genesis.lisp
- compiler/generic/objdef.lisp 24 additions, 2 deletionscompiler/generic/objdef.lisp
- compiler/generic/primtype.lisp 33 additions, 1 deletioncompiler/generic/primtype.lisp
- compiler/generic/vm-fndb.lisp 5 additions, 2 deletionscompiler/generic/vm-fndb.lisp
- compiler/generic/vm-type.lisp 3 additions, 1 deletioncompiler/generic/vm-type.lisp
- compiler/generic/vm-typetran.lisp 12 additions, 3 deletionscompiler/generic/vm-typetran.lisp
- compiler/srctran.lisp 31 additions, 1 deletioncompiler/srctran.lisp
Loading
Please register or sign in to comment