Applications in languages like C have heavy pointer usage and it happens that a pointer p may point to operands of an expression, i.e., it points to operand of an expression along some path. If the value contained in the pointer variable is modified then it may or may not kill the original value of expression depending upon the path taken. Thus we see that there is redundancy along some path. To remove this redundancy we will try to make the expression completely redundant. But the node containing the modification of value of pointer p will inhibit hoisting the expression out of that node. So, to remove the redundancy along all paths some code duplication has to be performed. But the cost of duplication performed may exceed the benefit derived from removing the redundancy. Thus, to get benefit from duplication, we duplicate the code only if redundancy along some frequently executed (HOT) path is being removed. Here, we present an approach to perform code duplication only if the optimization opportunity exists along some HOT path. Profile based points-to analysis is used to explore such redundancies and thus remove them.