On 06/02/14 04:25, Ilya Enkovich wrote:
Hi,
This patch adds support for pointer bounds constants to be used as DECL_INITIAL
for constant bounds (like zero bounds).
Bootstrapped and tested on linux-x86_64.
Thanks,
Ilya
--
gcc/
2014-05-30 Ilya Enkovich <ilya.enkov...@intel.com>
* emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
(init_emit_once): Build pointer bounds zero constants.
* explow.c (trunc_int_for_mode): Likewise.
* varpool.c (ctor_for_folding): Do not fold constant
bounds vars.
* varasm.c (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
* config/i386/i386.c (ix86_legitimate_constant_p): Mark
bounds constant as not valid.
[ ... ]
@@ -5875,6 +5876,11 @@ init_emit_once (void)
if (STORE_FLAG_VALUE == 1)
const_tiny_rtx[1][(int) BImode] = const1_rtx;
+ for (mode = GET_CLASS_NARROWEST_MODE (MODE_POINTER_BOUNDS);
+ mode != VOIDmode;
+ mode = GET_MODE_WIDER_MODE (mode))
+ const_tiny_rtx[0][mode] = immed_double_const (0, 0, mode);
I'm pretty sure GET_CLASS_NARROWEST_MODE should be taking a class, not a
mode as its argument. So something is clearly wrong here...
jeff