IBP.m is a small code generating the IBP's in Wolfram Mathematica.

To use it, load the file by Get["IBP.m"]. Then
define the loop momenta (Internal), the external
momenta (External) and the list of propagators (Propagators).
The irreducible numerators are treated the same way as propagators. Now run the
PrepareIBP[] command, that solves the system of
linear equations obtained after differentiating. Now
IBP[x,y] will produce an IBP obtained after multiplying by
y and differentiating by x.

For example, for a 2-loop tadpole with 2 massive lines and 1 massless line one
can write Internal={v,q}; External={};
Propagators={v^2-mm,q^2-mm,(v-q)^2}. Then the IBP's will be produced by
IBP[v,v], IBP[v,q], IBP[q,v] and IBP[q,q].

Download the code here.