aboutsummaryrefslogtreecommitdiff
path: root/src/lux/optimizer.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/lux/optimizer.clj')
-rw-r--r--src/lux/optimizer.clj394
1 files changed, 5 insertions, 389 deletions
diff --git a/src/lux/optimizer.clj b/src/lux/optimizer.clj
index 6f4fd27bd..09faa73fb 100644
--- a/src/lux/optimizer.clj
+++ b/src/lux/optimizer.clj
@@ -26,6 +26,7 @@
("declare-macro" 1)
("var" 1)
("captured" 1)
+ ("host" 2)
("jvm-getstatic" 1)
("jvm-getfield" 1)
@@ -46,113 +47,7 @@
("jvm-monitorenter" 1)
("jvm-monitorexit" 1)
("jvm-program" 1)
-
- ("jvm-znewarray" 1)
- ("jvm-zastore" 1)
- ("jvm-zaload" 1)
- ("jvm-bnewarray" 1)
- ("jvm-bastore" 1)
- ("jvm-baload" 1)
- ("jvm-snewarray" 1)
- ("jvm-sastore" 1)
- ("jvm-saload" 1)
- ("jvm-inewarray" 1)
- ("jvm-iastore" 1)
- ("jvm-iaload" 1)
- ("jvm-lnewarray" 1)
- ("jvm-lastore" 1)
- ("jvm-laload" 1)
- ("jvm-fnewarray" 1)
- ("jvm-fastore" 1)
- ("jvm-faload" 1)
- ("jvm-dnewarray" 1)
- ("jvm-dastore" 1)
- ("jvm-daload" 1)
- ("jvm-cnewarray" 1)
- ("jvm-castore" 1)
- ("jvm-caload" 1)
- ("jvm-anewarray" 1)
- ("jvm-aastore" 1)
- ("jvm-aaload" 1)
- ("jvm-arraylength" 1)
-
- ("jvm-iadd" 1)
- ("jvm-isub" 1)
- ("jvm-imul" 1)
- ("jvm-idiv" 1)
- ("jvm-irem" 1)
- ("jvm-ieq" 1)
- ("jvm-ilt" 1)
- ("jvm-igt" 1)
-
- ("jvm-ceq" 1)
- ("jvm-clt" 1)
- ("jvm-cgt" 1)
-
- ("jvm-ladd" 1)
- ("jvm-lsub" 1)
- ("jvm-lmul" 1)
- ("jvm-ldiv" 1)
- ("jvm-lrem" 1)
- ("jvm-leq" 1)
- ("jvm-llt" 1)
- ("jvm-lgt" 1)
-
- ("jvm-fadd" 1)
- ("jvm-fsub" 1)
- ("jvm-fmul" 1)
- ("jvm-fdiv" 1)
- ("jvm-frem" 1)
- ("jvm-feq" 1)
- ("jvm-flt" 1)
- ("jvm-fgt" 1)
-
- ("jvm-dadd" 1)
- ("jvm-dsub" 1)
- ("jvm-dmul" 1)
- ("jvm-ddiv" 1)
- ("jvm-drem" 1)
- ("jvm-deq" 1)
- ("jvm-dlt" 1)
- ("jvm-dgt" 1)
-
- ("jvm-d2f" 1)
- ("jvm-d2i" 1)
- ("jvm-d2l" 1)
-
- ("jvm-f2d" 1)
- ("jvm-f2i" 1)
- ("jvm-f2l" 1)
-
- ("jvm-i2b" 1)
- ("jvm-i2c" 1)
- ("jvm-i2d" 1)
- ("jvm-i2f" 1)
- ("jvm-i2l" 1)
- ("jvm-i2s" 1)
-
- ("jvm-l2d" 1)
- ("jvm-l2f" 1)
- ("jvm-l2i" 1)
-
- ("jvm-c2b" 1)
- ("jvm-c2s" 1)
- ("jvm-c2i" 1)
- ("jvm-c2l" 1)
-
- ("jvm-iand" 1)
- ("jvm-ior" 1)
- ("jvm-ixor" 1)
- ("jvm-ishl" 1)
- ("jvm-ishr" 1)
- ("jvm-iushr" 1)
-
- ("jvm-land" 1)
- ("jvm-lor" 1)
- ("jvm-lxor" 1)
- ("jvm-lshl" 1)
- ("jvm-lshr" 1)
- ("jvm-lushr" 1))
+ )
;; [Exports]
(defn optimize-token [analysis]
@@ -205,6 +100,9 @@
(&-base/$captured value)
(return ($captured value))
+
+ (&-base/$host ?proc-ident ?args)
+ (return ($host ?proc-ident ?args))
(&-base/$jvm-getstatic value)
(return ($jvm-getstatic value))
@@ -263,288 +161,6 @@
(&-base/$jvm-program value)
(return ($jvm-program value))
- (&-base/$jvm-znewarray value)
- (return ($jvm-znewarray value))
-
- (&-base/$jvm-zastore value)
- (return ($jvm-zastore value))
-
- (&-base/$jvm-zaload value)
- (return ($jvm-zaload value))
-
- (&-base/$jvm-bnewarray value)
- (return ($jvm-bnewarray value))
-
- (&-base/$jvm-bastore value)
- (return ($jvm-bastore value))
-
- (&-base/$jvm-baload value)
- (return ($jvm-baload value))
-
- (&-base/$jvm-snewarray value)
- (return ($jvm-snewarray value))
-
- (&-base/$jvm-sastore value)
- (return ($jvm-sastore value))
-
- (&-base/$jvm-saload value)
- (return ($jvm-saload value))
-
- (&-base/$jvm-inewarray value)
- (return ($jvm-inewarray value))
-
- (&-base/$jvm-iastore value)
- (return ($jvm-iastore value))
-
- (&-base/$jvm-iaload value)
- (return ($jvm-iaload value))
-
- (&-base/$jvm-lnewarray value)
- (return ($jvm-lnewarray value))
-
- (&-base/$jvm-lastore value)
- (return ($jvm-lastore value))
-
- (&-base/$jvm-laload value)
- (return ($jvm-laload value))
-
- (&-base/$jvm-fnewarray value)
- (return ($jvm-fnewarray value))
-
- (&-base/$jvm-fastore value)
- (return ($jvm-fastore value))
-
- (&-base/$jvm-faload value)
- (return ($jvm-faload value))
-
- (&-base/$jvm-dnewarray value)
- (return ($jvm-dnewarray value))
-
- (&-base/$jvm-dastore value)
- (return ($jvm-dastore value))
-
- (&-base/$jvm-daload value)
- (return ($jvm-daload value))
-
- (&-base/$jvm-cnewarray value)
- (return ($jvm-cnewarray value))
-
- (&-base/$jvm-castore value)
- (return ($jvm-castore value))
-
- (&-base/$jvm-caload value)
- (return ($jvm-caload value))
-
- (&-base/$jvm-anewarray value)
- (return ($jvm-anewarray value))
-
- (&-base/$jvm-aastore value)
- (return ($jvm-aastore value))
-
- (&-base/$jvm-aaload value)
- (return ($jvm-aaload value))
-
- (&-base/$jvm-arraylength value)
- (return ($jvm-arraylength value))
-
- (&-base/$jvm-iadd value)
- (return ($jvm-iadd value))
-
- (&-base/$jvm-isub value)
- (return ($jvm-isub value))
-
- (&-base/$jvm-imul value)
- (return ($jvm-imul value))
-
- (&-base/$jvm-idiv value)
- (return ($jvm-idiv value))
-
- (&-base/$jvm-irem value)
- (return ($jvm-irem value))
-
- (&-base/$jvm-ieq value)
- (return ($jvm-ieq value))
-
- (&-base/$jvm-ilt value)
- (return ($jvm-ilt value))
-
- (&-base/$jvm-igt value)
- (return ($jvm-igt value))
-
- (&-base/$jvm-ceq value)
- (return ($jvm-ceq value))
-
- (&-base/$jvm-clt value)
- (return ($jvm-clt value))
-
- (&-base/$jvm-cgt value)
- (return ($jvm-cgt value))
-
- (&-base/$jvm-ladd value)
- (return ($jvm-ladd value))
-
- (&-base/$jvm-lsub value)
- (return ($jvm-lsub value))
-
- (&-base/$jvm-lmul value)
- (return ($jvm-lmul value))
-
- (&-base/$jvm-ldiv value)
- (return ($jvm-ldiv value))
-
- (&-base/$jvm-lrem value)
- (return ($jvm-lrem value))
-
- (&-base/$jvm-leq value)
- (return ($jvm-leq value))
-
- (&-base/$jvm-llt value)
- (return ($jvm-llt value))
-
- (&-base/$jvm-lgt value)
- (return ($jvm-lgt value))
-
- (&-base/$jvm-fadd value)
- (return ($jvm-fadd value))
-
- (&-base/$jvm-fsub value)
- (return ($jvm-fsub value))
-
- (&-base/$jvm-fmul value)
- (return ($jvm-fmul value))
-
- (&-base/$jvm-fdiv value)
- (return ($jvm-fdiv value))
-
- (&-base/$jvm-frem value)
- (return ($jvm-frem value))
-
- (&-base/$jvm-feq value)
- (return ($jvm-feq value))
-
- (&-base/$jvm-flt value)
- (return ($jvm-flt value))
-
- (&-base/$jvm-fgt value)
- (return ($jvm-fgt value))
-
- (&-base/$jvm-dadd value)
- (return ($jvm-dadd value))
-
- (&-base/$jvm-dsub value)
- (return ($jvm-dsub value))
-
- (&-base/$jvm-dmul value)
- (return ($jvm-dmul value))
-
- (&-base/$jvm-ddiv value)
- (return ($jvm-ddiv value))
-
- (&-base/$jvm-drem value)
- (return ($jvm-drem value))
-
- (&-base/$jvm-deq value)
- (return ($jvm-deq value))
-
- (&-base/$jvm-dlt value)
- (return ($jvm-dlt value))
-
- (&-base/$jvm-dgt value)
- (return ($jvm-dgt value))
-
- (&-base/$jvm-d2f value)
- (return ($jvm-d2f value))
-
- (&-base/$jvm-d2i value)
- (return ($jvm-d2i value))
-
- (&-base/$jvm-d2l value)
- (return ($jvm-d2l value))
-
- (&-base/$jvm-f2d value)
- (return ($jvm-f2d value))
-
- (&-base/$jvm-f2i value)
- (return ($jvm-f2i value))
-
- (&-base/$jvm-f2l value)
- (return ($jvm-f2l value))
-
- (&-base/$jvm-i2b value)
- (return ($jvm-i2b value))
-
- (&-base/$jvm-i2c value)
- (return ($jvm-i2c value))
-
- (&-base/$jvm-i2d value)
- (return ($jvm-i2d value))
-
- (&-base/$jvm-i2f value)
- (return ($jvm-i2f value))
-
- (&-base/$jvm-i2l value)
- (return ($jvm-i2l value))
-
- (&-base/$jvm-i2s value)
- (return ($jvm-i2s value))
-
- (&-base/$jvm-l2d value)
- (return ($jvm-l2d value))
-
- (&-base/$jvm-l2f value)
- (return ($jvm-l2f value))
-
- (&-base/$jvm-l2i value)
- (return ($jvm-l2i value))
-
- (&-base/$jvm-c2b value)
- (return ($jvm-c2b value))
-
- (&-base/$jvm-c2s value)
- (return ($jvm-c2s value))
-
- (&-base/$jvm-c2i value)
- (return ($jvm-c2i value))
-
- (&-base/$jvm-c2l value)
- (return ($jvm-c2l value))
-
- (&-base/$jvm-iand value)
- (return ($jvm-iand value))
-
- (&-base/$jvm-ior value)
- (return ($jvm-ior value))
-
- (&-base/$jvm-ixor value)
- (return ($jvm-ixor value))
-
- (&-base/$jvm-ishl value)
- (return ($jvm-ishl value))
-
- (&-base/$jvm-ishr value)
- (return ($jvm-ishr value))
-
- (&-base/$jvm-iushr value)
- (return ($jvm-iushr value))
-
- (&-base/$jvm-land value)
- (return ($jvm-land value))
-
- (&-base/$jvm-lor value)
- (return ($jvm-lor value))
-
- (&-base/$jvm-lxor value)
- (return ($jvm-lxor value))
-
- (&-base/$jvm-lshl value)
- (return ($jvm-lshl value))
-
- (&-base/$jvm-lshr value)
- (return ($jvm-lshr value))
-
- (&-base/$jvm-lushr value)
- (return ($jvm-lushr value))
-
_
(assert false (prn-str 'optimize-token (&/adt->text analysis)))
))