From my previous expriences with script utlrp.sql provided by Oracle, for mass-compilation of invalid objects, I recommend running this script only in STARTUP UPGRADE / MIGRATE mode. Otherwise you may end up with dictionary and or schema incosistencies especially if you use alot of schema objects (45 000+) .

$ORACLE_HOME/rdbms/admin/utlrp.sql