cse.c (cse_main): Converts ifdefs on PIC_OFFSET_TABLE_REGNUM to conditionals.
authorJan Hubicka <jh@suse.cz>
Tue, 13 Feb 2001 20:17:45 +0000 (21:17 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 13 Feb 2001 20:17:45 +0000 (20:17 +0000)
* cse.c (cse_main): Converts ifdefs on PIC_OFFSET_TABLE_REGNUM to
conditionals.
* defaults.h (PIC_OFFSET_TABLE_REGNUM): Default to INVALID_REGNUM.
* emit-rtl.c (init_emit_once): Convert ifdefs to conditionals.
* flow.c (mark_regs_live_at_end): Likewise.
(calculate_global_regs_live): Likewise.
* gcse.c (compute_hash_table): Likewise.
(compute_kill_rd): Likewise.
* resource.c (mark_target_live_regs): Likewise.
* rtl.h (INVALID_REGNUM): New macro.

From-SVN: r39643

gcc/ChangeLog
gcc/cse.c
gcc/defaults.h
gcc/emit-rtl.c
gcc/flow.c
gcc/gcse.c
gcc/resource.c
gcc/rtl.h

index 7876cc4b79db1c040765f61f0268f4666d66f192..f48ac5403e6ef4d707f44c816c6786f16ba9420f 100644 (file)
@@ -1,3 +1,16 @@
+Tue Feb 13 21:09:11 CET 2001  Jan Hubicka  <jh@suse.cz>
+
+       * cse.c (cse_main): Converts ifdefs on PIC_OFFSET_TABLE_REGNUM to
+       conditionals.
+       * defaults.h (PIC_OFFSET_TABLE_REGNUM): Default to INVALID_REGNUM.
+       * emit-rtl.c (init_emit_once): Convert ifdefs to conditionals.
+       * flow.c (mark_regs_live_at_end): Likewise.
+       (calculate_global_regs_live): Likewise.
+       * gcse.c (compute_hash_table): Likewise.
+       (compute_kill_rd): Likewise.
+       * resource.c (mark_target_live_regs): Likewise.
+       * rtl.h (INVALID_REGNUM): New macro.
+
 Tue Feb 13 20:59:22 CET 2001  Jan Hubicka  <jh@suse.cz>
 
        * i386.md (fixsfsi2, fixdfdi2): Fix previous patch.
index e69bb634ebb039cd18da3a260c98003eb2c85dee..aacc7750fb64960bf2869cafbd430f173fa87bab 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7119,7 +7119,7 @@ cse_main (f, nregs, after_loop, file)
 #if ARG_POINTER_REGNUM != FRAME_POINTER_REGNUM
         && ! (i == ARG_POINTER_REGNUM && fixed_regs[i])
 #endif
-#if defined (PIC_OFFSET_TABLE_REGNUM) && !defined (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED)
+#if !defined (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED)
         && ! (i == PIC_OFFSET_TABLE_REGNUM && flag_pic)
 #endif
         )
index 20ea99ab62c431e8ae2dad90a60aee3c93265c9e..098beae440a2c5543eb9391c5c5e74ae7656f03b 100644 (file)
@@ -296,6 +296,10 @@ do {                                                               \
 #define BUILD_VA_LIST_TYPE(X) ((X) = ptr_type_node)
 #endif
 
+#ifndef PIC_OFFSET_TABLE_REGNUM
+#define PIC_OFFSET_TABLE_REGNUM INVALID_REGNUM
+#endif
+
 /* By default, the preprocessor should be invoked the same way in C++
    as in C.  */
 #ifndef CPLUSPLUS_CPP_SPEC
index 0b9e4aa9e51ccc75fa8dbd4644de173fe17c5452..96fea2ccf27e2fa4e05e6d10e8eb19554e8a45d3 100644 (file)
@@ -4197,9 +4197,8 @@ init_emit_once (line_numbers)
 #endif
 #endif
 
-#ifdef PIC_OFFSET_TABLE_REGNUM
-  pic_offset_table_rtx = gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM);
-#endif
+  if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM)
+    pic_offset_table_rtx = gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM);
 
   ggc_add_rtx_root (&pic_offset_table_rtx, 1);
   ggc_add_rtx_root (&struct_value_rtx, 1);
index aff84451e8d37b275e2b0f24983580b5791cd862..d22540e28010504c5be4b822a3b072da50e7b801 100644 (file)
@@ -3345,14 +3345,13 @@ mark_regs_live_at_end (set)
 #endif
     }
 
-#ifdef PIC_OFFSET_TABLE_REGNUM
 #ifndef PIC_OFFSET_TABLE_REG_CALL_CLOBBERED
   /* Many architectures have a GP register even without flag_pic.
      Assume the pic register is not in use, or will be handled by
      other means, if it is not fixed.  */
-  if (fixed_regs[PIC_OFFSET_TABLE_REGNUM])
+  if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM
+      && fixed_regs[PIC_OFFSET_TABLE_REGNUM])
     SET_REGNO_REG_SET (set, PIC_OFFSET_TABLE_REGNUM);
-#endif
 #endif
 
   /* Mark all global registers, and all registers used by the epilogue
@@ -3484,12 +3483,11 @@ calculate_global_regs_live (blocks_in, blocks_out, flags)
            SET_REGNO_REG_SET (new_live_at_end, ARG_POINTER_REGNUM);
 #endif
 
-#ifdef PIC_OFFSET_TABLE_REGNUM
          /* Any constant, or pseudo with constant equivalences, may
             require reloading from memory using the pic register.  */
-         if (fixed_regs[PIC_OFFSET_TABLE_REGNUM])
+         if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM
+             && fixed_regs[PIC_OFFSET_TABLE_REGNUM])
            SET_REGNO_REG_SET (new_live_at_end, PIC_OFFSET_TABLE_REGNUM);
-#endif
        }
 
       /* Regs used in phi nodes are not included in
index f423c5ec27d7d2971d80741515f091dac91b575f..a0eece4ae7ac5d2c1fc2de2e463df53b02720f05 100644 (file)
@@ -2208,7 +2208,7 @@ compute_hash_table (set_p)
 #if ARG_POINTER_REGNUM != FRAME_POINTER_REGNUM
                     && ! (regno == ARG_POINTER_REGNUM && fixed_regs[regno])
 #endif
-#if defined (PIC_OFFSET_TABLE_REGNUM) && !defined (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED)
+#if !defined (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED)
                     && ! (regno == PIC_OFFSET_TABLE_REGNUM && flag_pic)
 #endif
 
@@ -2641,7 +2641,7 @@ compute_kill_rd ()
                       && ! (regno == ARG_POINTER_REGNUM
                             && fixed_regs[regno])
 #endif
-#if defined (PIC_OFFSET_TABLE_REGNUM) && !defined (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED)
+#if !defined (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED)
                       && ! (regno == PIC_OFFSET_TABLE_REGNUM && flag_pic)
 #endif
                       && regno != FRAME_POINTER_REGNUM)
index fa7e95730612cd55e6231138ed40aa32fee29dff..772dad765f523fde5e7374af6a06db14aacc17fc 100644 (file)
@@ -1029,7 +1029,7 @@ mark_target_live_regs (insns, target, res)
 #if ARG_POINTER_REGNUM != FRAME_POINTER_REGNUM
                    && ! (i == ARG_POINTER_REGNUM && fixed_regs[i])
 #endif
-#if defined (PIC_OFFSET_TABLE_REGNUM) && !defined (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED)
+#if !defined (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED)
                    && ! (i == PIC_OFFSET_TABLE_REGNUM && flag_pic)
 #endif
                    )
index 9db7a37183c915dbeb7f8f463858aec8e50a6cb1..003e92dc31664867d26ce9bc2de3baebf61f60b5 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1606,6 +1606,9 @@ extern rtx gen_rtx_MEM PARAMS ((enum machine_mode, rtx));
 
 #define LAST_VIRTUAL_REGISTER          ((FIRST_VIRTUAL_REGISTER) + 4)
 
+/* REGNUM never really appearing in the INSN stream.  */
+#define INVALID_REGNUM                 (~(unsigned int)0)
+
 extern rtx find_next_ref               PARAMS ((rtx, rtx));
 extern rtx *find_single_use            PARAMS ((rtx, rtx, rtx *));