ghc llvmbackend workshop (this set of slides is just a draft)

11

Click here to load reader

Upload: ujihisa

Post on 06-May-2015

908 views

Category:

Technology


0 download

DESCRIPTION

http://cotocoto.jp/event/39693

TRANSCRIPT

Page 1: GHC LLVMBackend Workshop (This set of slides is just a draft)

GHC LLVMBackend Workshop

May 8, 2010Osaka, Japan

Tatsuhiro Ujihisahttp://ujihisa.blogspot.com/

Page 2: GHC LLVMBackend Workshop (This set of slides is just a draft)

GHC?

•The most common Haskell compiler

•More features than Haskell98 specification

Page 3: GHC LLVMBackend Workshop (This set of slides is just a draft)

LLVM?

•Low Level Virtual Machine

•A virtual machine for arbitrary environments

•(like JVM for C)

Page 4: GHC LLVMBackend Workshop (This set of slides is just a draft)

GHC × LLVM

Page 5: GHC LLVMBackend Workshop (This set of slides is just a draft)

Demo

Page 6: GHC LLVMBackend Workshop (This set of slides is just a draft)

☜ What I did?

• "fib" app on normal GHC

• "fib" app on LLVM GHC

• benchmarks of them

Page 7: GHC LLVMBackend Workshop (This set of slides is just a draft)

Differences

•What do they change from and to?

•GHC:

•Haskell -> Executable

•LLVM GHC:

•Haskell -> LLVM Assembly Language

Page 8: GHC LLVMBackend Workshop (This set of slides is just a draft)

LLVM Assemby Language (1/2)

•Platform-independent Assembly Language

• Infinite number of (virtual) registers

•All registers are referential transparent

Page 9: GHC LLVMBackend Workshop (This set of slides is just a draft)

LLVM Assemby Language (2/2)

•Can call all C functions

•other features are almost same as other common assembly languages such as IA-32

Page 10: GHC LLVMBackend Workshop (This set of slides is just a draft)

Advantage?☞ Optimizer!

Page 11: GHC LLVMBackend Workshop (This set of slides is just a draft)

(to be continued...)