I compile a C++ program, using for example the following.
clang++ -O4 -emit-llvm file1.cpp -c -o file1.bc clang++ -O4 -emit-llvm file2.cpp -c -o file2.bc
Use opt:
opt
clang++ -O4 -emit-llvm file1.cpp -c -o file1.bc clang++ -O4 -emit-llvm file2.cpp -c -o file2.bc llvm-link file1.bc file2.bc -o all.bc opt -std-compile-opts -std-link-opts -O3 all.bc -o optimized.bc