question: public void eliminate ( Instruction s ) { int i = 0 ; for ( Enumeration < Operand > defs = s . getDefs ( ) ; defs . hasMoreElements ( ) ; ) { Operand def = defs . nextElement ( ) ; if ( def instanceof RegisterOperand ) { eliminate ( ( RegisterOperand ) def ) ; } } if ( doMemory ) { if ( LocalCSE . isStoreInstruction ( s ) || ( options . READS_KILL && LocalCSE . isLoadInstruction ( s ) ) ) { LocationOperand sLocation = LocationCarrier . getLocation ( s ) ; while ( i < cache . size ( ) ) { AvailableExpression ae = cache . get ( i ) ; if ( ae . inst != s ) { boolean killIt = false ; if ( ae . isLoadOrStore ( ) ) { if ( ( sLocation == null ) && ( ae . location == null ) ) { killIt = true ; } else if ( ( sLocation != null ) && ( ae . location != null ) ) { killIt = LocationOperand . mayBeAliased ( sLocation , ae . location ) ; } } if ( killIt ) { cache . remove ( i ) ; continue ; } } i ++ ; } } } }
target:  Eliminate all AE tuples that are killed by a given instruction