1. A computer-implemented method comprising: selecting a nested loop within software code that includes an outer loop and an inner loop, the outer loop including an outer induction variable and the inner loop including an inner induction variable; identifying, by one or more processors, a computation included in the nested loop that generates an irregular array access, wherein the irregular array access includes an expression of both the outer induction variable and the inner induction variable; identifying, by one or more of the processors, a redundant calculation for the computation based upon the outer induction variable and the inner induction variable; generating, by one or more of the processors, a temporary variable that corresponds to the identified redundant calculation; replacing, by one or more of the processors, the computation with the temporary variable in the nested loop; and compiling the nested loop that includes the temporary variable.