Query : Profile Guided Basic Block Placement Pass

Hello,

Can some one please provide the file name that implements -block-placement pass?

Suggestions required :
I have been reading about Patterson’s branch prediction with VRP. So is it possible to use this prediction information in Pettis and Hansen 's basic block placement ( -basic-placement pass in llvm ) instead of profile guided feedback and thus eliminating profiling from -block-palcement pass ?
As far as coding part is concern it requires Patterson’s VRP and branch prediction implementation in LLVM ( I think which is not implemented in LLVM ) and then modifying -block-placement pass.
This VRP implementation can be used to improve other optimizations too as mentioned in Patterson’s paper.

I am thinking to apply for this as GSoC 2016 project under llvm.org .
Please provide thoughts about this.

Sincerely,
Vivek Pandya

Hello,

Can some one please provide the file name that implements
*-block-placement* pass?

MachineBlockPlacement.cpp

Suggestions required :
I have been reading about Patterson's branch prediction with VRP. So is it
possible to use this prediction information in Pettis and Hansen 's basic
block placement ( -basic-placement pass in llvm ) instead of profile guided
feedback and thus eliminating profiling from -block-palcement pass ?

Block placement pass is a user of the branch probability information which
can be obtained from profile feedback or static branch prediction. Saying
'eliminating' profling from block-placement pass does not make sense.

As far as coding part is concern it requires Patterson's VRP and branch
prediction implementation in LLVM ( I think which is not implemented in
LLVM ) and then modifying -block-placement pass.
This VRP implementation can be used to improve other optimizations too as
mentioned in Patterson's paper.

The place where static branch prediction is done is in
BranchProbabilityInfo.cpp which implements a couple of simple heuristics.
The VRP based branch prediction fits better there.

David