diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0dc55b7a366b640da42558b862b0bf1837550b52..bf8f895ded625123c4a8c8ec1f2485b35abb2668 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -28,6 +28,9 @@
 	* config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
 	edge cases with local functions and TARGET_ID_SHARED_LIBRARY.
 
+	* tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially
+	inflate costs for addresses with an out-of-bounds address.
+
 2006-11-19  Andrew Pinski  <pinskia@gmail.com>
 
 	PR rtl-opt/29879
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 29885f2fac7e0165103f64657c4985582787a245..6642b5d828cf1d282b5d3b5bb1e9e2cfd19eddb8 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -3561,10 +3561,7 @@ get_address_cost (bool symbol_present, bool var_present,
     cost += multiply_by_cost (ratio, Pmode);
 
   if (s_offset && !offset_p && !symbol_present)
-    {
-      cost += add_cost (Pmode);
-      var_present = true;
-    }
+    cost += add_cost (Pmode);
 
   acost = costs[mem_mode][symbol_present][var_present][offset_p][ratio_p];
   return cost + acost;