Unable to Split critical edges


I am having a problem while splitting the critical edges for carrying out path profiling. Actually, I am using the function ‘SplitCriticalEdge’ from the file ‘BreakCriticalEdges.cpp’ file but it just returns NULL pointer while splitting to a landing pad block. Here is the comment from the code:

 // Splitting the critical edge to a landing pad block is non-trivial. Don't do
00140   // it in this generic function.
00141   if (DestBB->[isLandingPad](http://llvm.org/docs/doxygen/html/classllvm_1_1BasicBlock.html#a3075a9eef753018bed561df31f38dc23)()) return nullptr;

Can anyone please provide a solution for breaking such critical edges?

Is there an implementation available for it?