This is a basic block scheduler implemented as an expert system for CLIPS.
It schedules converted Itanium assembly instructions. It will only schedule a basic block correctly. It is not perfect but works well.
I wrote this as my final project for my expert systems class in my masters program. I was trying to see if it was possible to use an expert system as a viable way to schedule code.
I have rewritten it extensively since then (I have a tag marked for the original code) and it is really fast now.
Oh! You also need clips 630 or higher for this expert system to work.
Running this program:
clips -f main.clp
Then follow the instructions and remember that paths are relative.