This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

const_tiny_rtx vi BImode


A consequence of not including BImode in GET_CLASS_NARROWEST_MODE,
the wisdom of which I'm beginning to question.  It's a sticky
problem, since there are many places in which I don't want the
compiler deciding on its own to use BImode quantities...

Missing this meant that get_condition failed to do anything useful,
which meant we got no loop optimizations and static branch prediction
failed.


r~

        * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
        for BImode.

Index: emit-rtl.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/emit-rtl.c,v
retrieving revision 1.146
diff -c -p -d -r1.146 emit-rtl.c
*** emit-rtl.c	2000/09/11 01:50:46	1.146
--- emit-rtl.c	2000/09/18 23:46:53
*************** init_emit_once (line_numbers)
*** 4178,4183 ****
--- 4178,4187 ----
      if (GET_MODE_CLASS (mode) == MODE_CC)
        const_tiny_rtx[0][(int) mode] = const0_rtx;
  
+   const_tiny_rtx[0][(int) BImode] = const0_rtx;
+   if (STORE_FLAG_VALUE == 1)
+     const_tiny_rtx[1][(int) BImode] = const1_rtx;
+ 
    /* For bounded pointers, `&const_tiny_rtx[0][0]' is not the same as
       `(rtx *) const_tiny_rtx'.  The former has bounds that only cover
       `const_tiny_rtx[0]', whereas the latter has bounds that cover all.  */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]