on master help sign in
Skeleton of stub-generating LLVM codegen
commit14ee023e4cdeec0953cf41793055fd497e9e4252 authorBenjamin Saunders <besaunde@sfu.ca> dateSat 22 Jun 2013, 21:32 (13 years ago) parentfb8cc6a
4 files changed+7−3
idris.cabal+2−2 src/IRTS/Compiler.hs+3−1 src/Idris/AbsSyntaxTree.hs+1 src/Idris/REPL.hs+1
idris.cabal+2−2
@@ -110,7 +110,7 @@ Executable idris
110110 IRTS.Lang, IRTS.LParser, IRTS.Bytecode, IRTS.Simplified,
111111 IRTS.CodegenC, IRTS.Defunctionalise, IRTS.Inliner,
112112 IRTS.Compiler, IRTS.CodegenJava, IRTS.BCImp,
113− IRTS.CodegenJavaScript,
113+ IRTS.CodegenJavaScript, IRTS.CodegenLLVM,
114114 IRTS.CodegenCommon, IRTS.DumpBC
115115
116116 Paths_idris
@@ -119,7 +119,7 @@ Executable idris
119119 haskeline>=0.7, split, directory,
120120 containers, process, transformers, filepath,
121121 directory, binary, bytestring, text, pretty,
122− language-java>=0.2.2, libffi
122+ language-java>=0.2.2, libffi, llvm-general>=3.3 && <3.4
123123
124124 Extensions: MultiParamTypeClasses, FunctionalDependencies,
125125 FlexibleInstances, TemplateHaskell
src/IRTS/Compiler.hs+3−1
@@ -10,6 +10,7 @@ import IRTS.CodegenC
1010import IRTS.CodegenJava
1111import IRTS.DumpBC
1212import IRTS.CodegenJavaScript
13+import IRTS.CodegenLLVM
1314import IRTS.Inliner
1415
1516import Idris.AbsSyntax
@@ -74,8 +75,9 @@ compile target f tm
7475 codegenJava [] c f hdrs libs outty
7576 ViaJavaScript ->
7677 codegenJavaScript JavaScript c f outty
77− ViaNode ->
78+ ViaNode ->
7879 codegenJavaScript Node c f outty
80+ ViaLLVM -> codegenLLVM c f outty
7981
8082 Bytecode -> dumpBC c f
8183 Error e -> fail $ show e
src/Idris/AbsSyntaxTree.hs+1
@@ -175,6 +175,7 @@ data Target = ViaC
175175 | ViaJava
176176 | ViaNode
177177 | ViaJavaScript
178+ | ViaLLVM
178179 | Bytecode
179180 deriving (Show, Eq)
180181
src/Idris/REPL.hs+1
@@ -566,6 +566,7 @@ parseTarget "Java" = ViaJava
566566parseTarget "bytecode" = Bytecode
567567parseTarget "javascript" = ViaJavaScript
568568parseTarget "node" = ViaNode
569+parseTarget "llvm" = ViaLLVM
569570parseTarget _ = error "unknown target" -- FIXME: partial function
570571
571572parseArgs :: [String] -> [Opt]