This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
const_tiny_rtx vi BImode
- To: gcc-patches at gcc dot gnu dot org
- Subject: const_tiny_rtx vi BImode
- From: Richard Henderson <rth at cygnus dot com>
- Date: Mon, 18 Sep 2000 16:57:54 -0700
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. */