NJU Compiler Lab
cmm stands for C-- compiler.
Lab
├── Code
│ ├── Makefile
│ ├── lexical.l
│ ├── main.c
│ └── syntax.y
├── README.md
├── Test
│ ├── test1.cmm
│ └── test2.cmm
├── parser
└── report.pdf
- Stores *.c *.l *.y and Makefile.
- Complicated subdirectories are unnecessary.
- Please do not modify the Makefile.
- Please avoid unreasonable include dependencies.
- Stores *.cmm test cases.
- Uses ./parser to compile these tests.
Executable target file.
- Live Variables
- Dominators
- Reaching Definitions
- Constant Folding
- Local Value Numbering
- Dead Code Elimination
- Constant Propagation
- Copy Propagation
- Loop Invariant Code Motion
- Generic Set Container
- Better Comments
- Better Tests