This project implements an Intermediate Representation (IR) optimizer in Java. Follow this guide to set up, compile, and run the optimizer.
cs4240-project-1/
├── build.sh # Compilation script
├── run.sh # Execution script
├── optimizer/ # Main optimizer code
│ ├── src/ # Java source files
│ │ ├── Optimizer.java
│ │ ├── opt/ # Optimization algorithms
│ │ ├── ds/ # Data structures
│ │ └── ir/ # IR representation classes
│ ├── example/ # Example input/output files
│ └── public_test_cases/ # Test cases for validation
└── materials/ # Additional materials and examples
chmod +x build.sh run.shRun the build script to compile all Java source files:
./build.shWhat this does:
- Creates a
builddirectory in theoptimizerfolder - Finds all
.javafiles in theoptimizer/srcdirectory - Compiles them using
javacand places.classfiles inoptimizer/build
./run.sh <input_ir_file>This writes the optimized IR to a file named out.ir at the project root.
./run.sh optimizer/example/example.ir
# Output: out.ir# Optimize the quicksort IR
./run.sh optimizer/public_test_cases/quicksort/quicksort.ir
# Output: out.ir
# Optimize the sqrt IR
./run.sh optimizer/public_test_cases/sqrt/sqrt.ir
# Output: out.ir./run.sh path/to/your/program.ir
# Output: out.ir
// or set it to your desired output
./run.sh path/to/your/program.ir path/to/your/output.ir