diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 841002068fbb334727c0f1fc3e36a7a4509e8594..eb8865e4130a52f7c23df635998d0ffbd4d76757 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2002-01-30  Steve Ellcey  <sje@cup.hp.com>
+
+	* loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
+
 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
 
 	* c-decl.c (grokdeclarator): Handle type being a typedef for an
diff --git a/gcc/loop.c b/gcc/loop.c
index 5df086689776f577d993fa3ddcd7a1490944f0c4..a65595f2a447ee30f7453287d1edd9fb32f1d292 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -3230,7 +3230,7 @@ loop_invariant_p (loop, x)
 	 since the reg might be set by initialization within the loop.  */
 
       if ((x == frame_pointer_rtx || x == hard_frame_pointer_rtx
-	   || x == arg_pointer_rtx)
+	   || x == arg_pointer_rtx || x == pic_offset_table_rtx)
 	  && ! current_function_has_nonlocal_goto)
 	return 1;