add partition algorithm file to llvm passes; implement hierarchical clustering; add some required things to partitioning graph