+ What UTLIP.SQL does
This script regenerates the compiled code because an action was taken that caused the old code's format to be inconsistent with what it's supposed to be. e.g., when migrating a 32 bit database to a 64 bit database or vice-versa. THIS IS THE ACTUAL SCRIPT WHICH DOES THE REGENERATION OF COMPILED CODE. The actual series of steps can be checked reading the script which has a few step by step operations
+ Any other script called within UTLIP.SQL
Yes. It calls standard, dbmsstdx
+ When it is best to run UTLIP.SQL
The best would be during WORD-SIZE conversion from 32bit to 64bit and vice-versa.
Where are these SCRIPTS located
============================
The scripts are found in the standard admin directory of the Oracle Home.
$ORACLE_HOME/rdbms/admin
Which script is better
=================
-> UTLIP.SQL - This is the actual script which does the regeneration of compiled code.
-> UTLRP.SQL - Validates all invalid objects and can be run anytime. (this in-turn is called by utlirp.sql)
-> UTLIRP.SQL - Simply calls utlip.sql and utlrp.sql(9i only) which MUST be run during WORD-SIZE conversion (If utlip.sql is not run manually) and during normal validating of invalid objects. (if utlrp.sql is not run)
Summary
========
The best would be to run UTLIRP.SQL which would do both regeneration of compiled code of PL/SQL modules (which UTLIP.SQL does) and then Recompiles all Invalid PL/SQL modules again. (which UTLRP.SQL does)