This is the mail archive of the 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]
Other format: [Raw text]

[RFC][IPA-VRP] Disable setting param of __builtin_constant_p to null


VRP assumes that it is run after inlining. Therefore, if there is a call to __builtin_constant_p with function parameter, it resolve it to false to avoid bogus warnings. Since we use this as an early vrp before inling, it leads to wrong code. As a workaround I have disabled it for the time being. That is, this patch is not intended for committing but just to get the VRP tested.

Original patch which introduced this also talks about doing it earlier.


>From 99f8e7884d582cfae2d7cb50ad59dab7ac6772fc Mon Sep 17 00:00:00 2001
From: Kugan Vivekanandarajah <>
Date: Sat, 25 Jun 2016 11:52:57 +1000
Subject: [PATCH 1/6] Hack-Prevent setting __builtin_constant_p of param to
 null before inlining in Early VRP

 gcc/tree-vrp.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index ecfab1f..23c12b5 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -3759,8 +3759,10 @@ extract_range_basic (value_range *vr, gimple *stmt)
 	      && SSA_NAME_IS_DEFAULT_DEF (arg)
 	      && TREE_CODE (SSA_NAME_VAR (arg)) == PARM_DECL)
+#if 0
 	      set_value_range_to_null (vr, type);
 	  /* Both __builtin_ffs* and __builtin_popcount return

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