How to change the link order of .o file by myself in llvm?

  c++, llvm

enter image description here

I’m trying to know how link order affect the efficiency of program.
Currently, I can do that: test.h->test.h.gch and test.cpp/main.cpp->.ll->optimization->.s->.o file and link these two .o file to a executable file.
But is the order of these two .o files depending on my input? Or llvm compiler will determine the link order by itself?
And thus how can I change the link order?
As I know, not only these two .o files, compiler will take other .o file since I include some library(iostream… etc), so how to control these all .o files link order.
In addition, I know link order will affect the cache or branch prediction so that affect the efficiency of a program. Is there any idea for me to find a good link order?

Source: Windows Questions C++