├── .gitignore ├── .travis.yml ├── ChangeLog.md ├── LICENSE ├── README.md ├── Setup.hs ├── docs ├── absint.html ├── baseir.html ├── graph.html ├── index.html ├── ir.html ├── irinterpreter.html ├── language.html ├── main.html ├── mipsasm.html ├── mipsinterpreter.html ├── orderedmap.html ├── pandoc.css ├── parser.html ├── prettyutils.html ├── programtoir.html ├── scev.html ├── transformconstantfolding.html ├── transformirtomips.html ├── transformmem2reg.html └── transformregisterallocate.html ├── imperative-compiler.cabal ├── make-docs.py ├── pandoc.css ├── programs ├── direct-int-if.c ├── direct-int-return.c ├── force-spill.c ├── if.c ├── nontrivial-dom-frontier.c ├── simple-store.c ├── store-load.c ├── test-constant-folding.c ├── while-2-nest.c └── while.c ├── reading ├── STOKE-superoptimizer.pdf └── stochastic-program-optimization.pdf ├── src ├── Absint.lhs ├── BaseIR.lhs ├── Graph.lhs ├── IR.lhs ├── IRInterpreter.lhs ├── ISL │ ├── Native.hs │ ├── Native │ │ ├── C2Hs.chs │ │ ├── Context.hs │ │ └── Types.chs │ └── Types.hs ├── Index.lhs ├── Language.lhs ├── MIPSAsm.lhs ├── MIPSInterpreter.lhs ├── Main.lhs ├── OrderedMap.lhs ├── Parser.lhs ├── PrettyUtils.lhs ├── ProgramToIR.lhs ├── SCEV.lhs ├── TransformConstantFolding.lhs ├── TransformIRToMIPS.lhs ├── TransformMem2Reg.lhs └── TransformRegisterAllocate.lhs ├── stack.yaml └── test └── Spec.hs /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/.travis.yml -------------------------------------------------------------------------------- /ChangeLog.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/ChangeLog.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/README.md -------------------------------------------------------------------------------- /Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /docs/absint.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/absint.html -------------------------------------------------------------------------------- /docs/baseir.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/baseir.html -------------------------------------------------------------------------------- /docs/graph.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/graph.html -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/index.html -------------------------------------------------------------------------------- /docs/ir.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/ir.html -------------------------------------------------------------------------------- /docs/irinterpreter.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/irinterpreter.html -------------------------------------------------------------------------------- /docs/language.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/language.html -------------------------------------------------------------------------------- /docs/main.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/main.html -------------------------------------------------------------------------------- /docs/mipsasm.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/mipsasm.html -------------------------------------------------------------------------------- /docs/mipsinterpreter.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/mipsinterpreter.html -------------------------------------------------------------------------------- /docs/orderedmap.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/orderedmap.html -------------------------------------------------------------------------------- /docs/pandoc.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/pandoc.css -------------------------------------------------------------------------------- /docs/parser.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/parser.html -------------------------------------------------------------------------------- /docs/prettyutils.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/prettyutils.html -------------------------------------------------------------------------------- /docs/programtoir.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/programtoir.html -------------------------------------------------------------------------------- /docs/scev.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/scev.html -------------------------------------------------------------------------------- /docs/transformconstantfolding.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/transformconstantfolding.html -------------------------------------------------------------------------------- /docs/transformirtomips.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/transformirtomips.html -------------------------------------------------------------------------------- /docs/transformmem2reg.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/transformmem2reg.html -------------------------------------------------------------------------------- /docs/transformregisterallocate.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/docs/transformregisterallocate.html -------------------------------------------------------------------------------- /imperative-compiler.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/imperative-compiler.cabal -------------------------------------------------------------------------------- /make-docs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/make-docs.py -------------------------------------------------------------------------------- /pandoc.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/pandoc.css -------------------------------------------------------------------------------- /programs/direct-int-if.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/programs/direct-int-if.c -------------------------------------------------------------------------------- /programs/direct-int-return.c: -------------------------------------------------------------------------------- 1 | return 10 2 | -------------------------------------------------------------------------------- /programs/force-spill.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/programs/force-spill.c -------------------------------------------------------------------------------- /programs/if.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/programs/if.c -------------------------------------------------------------------------------- /programs/nontrivial-dom-frontier.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/programs/nontrivial-dom-frontier.c -------------------------------------------------------------------------------- /programs/simple-store.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/programs/simple-store.c -------------------------------------------------------------------------------- /programs/store-load.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/programs/store-load.c -------------------------------------------------------------------------------- /programs/test-constant-folding.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/programs/test-constant-folding.c -------------------------------------------------------------------------------- /programs/while-2-nest.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/programs/while-2-nest.c -------------------------------------------------------------------------------- /programs/while.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/programs/while.c -------------------------------------------------------------------------------- /reading/STOKE-superoptimizer.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/reading/STOKE-superoptimizer.pdf -------------------------------------------------------------------------------- /reading/stochastic-program-optimization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/reading/stochastic-program-optimization.pdf -------------------------------------------------------------------------------- /src/Absint.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/Absint.lhs -------------------------------------------------------------------------------- /src/BaseIR.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/BaseIR.lhs -------------------------------------------------------------------------------- /src/Graph.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/Graph.lhs -------------------------------------------------------------------------------- /src/IR.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/IR.lhs -------------------------------------------------------------------------------- /src/IRInterpreter.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/IRInterpreter.lhs -------------------------------------------------------------------------------- /src/ISL/Native.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/ISL/Native.hs -------------------------------------------------------------------------------- /src/ISL/Native/C2Hs.chs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/ISL/Native/C2Hs.chs -------------------------------------------------------------------------------- /src/ISL/Native/Context.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/ISL/Native/Context.hs -------------------------------------------------------------------------------- /src/ISL/Native/Types.chs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/ISL/Native/Types.chs -------------------------------------------------------------------------------- /src/ISL/Types.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/ISL/Types.hs -------------------------------------------------------------------------------- /src/Index.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/Index.lhs -------------------------------------------------------------------------------- /src/Language.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/Language.lhs -------------------------------------------------------------------------------- /src/MIPSAsm.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/MIPSAsm.lhs -------------------------------------------------------------------------------- /src/MIPSInterpreter.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/MIPSInterpreter.lhs -------------------------------------------------------------------------------- /src/Main.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/Main.lhs -------------------------------------------------------------------------------- /src/OrderedMap.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/OrderedMap.lhs -------------------------------------------------------------------------------- /src/Parser.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/Parser.lhs -------------------------------------------------------------------------------- /src/PrettyUtils.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/PrettyUtils.lhs -------------------------------------------------------------------------------- /src/ProgramToIR.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/ProgramToIR.lhs -------------------------------------------------------------------------------- /src/SCEV.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/SCEV.lhs -------------------------------------------------------------------------------- /src/TransformConstantFolding.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/TransformConstantFolding.lhs -------------------------------------------------------------------------------- /src/TransformIRToMIPS.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/TransformIRToMIPS.lhs -------------------------------------------------------------------------------- /src/TransformMem2Reg.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/TransformMem2Reg.lhs -------------------------------------------------------------------------------- /src/TransformRegisterAllocate.lhs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/src/TransformRegisterAllocate.lhs -------------------------------------------------------------------------------- /stack.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/stack.yaml -------------------------------------------------------------------------------- /test/Spec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bollu/tiny-optimising-compiler/HEAD/test/Spec.hs --------------------------------------------------------------------------------