From: kugan <kugan.vivekanandarajah@linaro.org>
To: Richard Biener <richard.guenther@gmail.com>
Cc: "gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>,
Jan Hubicka <hubicka@ucw.cz>, Martin Jambor <mjambor@suse.cz>
Subject: Re: [RFC][IPA-VRP] Re-factor tree-vrp to factor out common code
Date: Wed, 17 Aug 2016 02:50:00 -0000 [thread overview]
Message-ID: <a7f37184-294c-b551-f967-b2973ce6d3a0@linaro.org> (raw)
In-Reply-To: <df634f22-7ae6-87ae-1dde-e690635edb10@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 2450 bytes --]
Hi Richard,
On 17/08/16 08:20, kugan wrote:
> Hi,
>
> On 16/08/16 21:56, Richard Biener wrote:
>> On Tue, Aug 16, 2016 at 10:09 AM, kugan
>> <kugan.vivekanandarajah@linaro.org> wrote:
>>>
>>>
>>>
>>> On 23/07/16 20:12, kugan wrote:
>>>>
>>>> Hi Richard,
>>>>
>>>>>> As we had value_range_type in tree-ssanames.h why not put value_range
>>>>>> there?
>>>>>>
>>>>> For IPA_VRP, we now need value_range used in ipa-prop.h (in ipa-vrp
>>>>> patch). Based on this, attached patch now adds struct value_range to
>>>>> tree-ssanames.h and fixes the header files. Please note that I also had
>>>>> to add other headers in few places due to the dependency. Are you OK
>>>>> with this ?
>>>>
>>>> Here is alternate patch where we keep struct value_range and enum
>>>> value_range_type to tree-vrp.h. May be it is a better approach? Please
>>>> let me know what is your preference.
>>>>
>>>
>>> Ping?
>>>
>>> This patch places value_range_type and value_range in tree-vrp.h. May be
>>> this is better?
>>>
>>> Alternate patch which keeps value_range_type and value_range in
>>> tree-ssanames.h is in:
>>> https://gcc.gnu.org/ml/gcc-patches/2016-07/msg01491.html
>>>
>>> I also added the necessary header files changed needed for ipa-vrp as part
>>> of this patch so that changes needed are clear.
>>
>> I think tree-vrp.h is a better place. Please don't export functions
>> you don't need
>> (the _1 helpers).
I had unintentionally removed a static from a _1 helper. I think thats
what caused the confusion. I also added constant modifiers to parameters
mainly due to ipa-vrp passing second parameters to lattice operation as
const.
> Agreed.
>
> I have exported the following for now:
> +extern void vrp_intersect_ranges (value_range *vr0, value_range *vr1);
> +extern void vrp_meet (value_range *vr0, const value_range *vr1);
> +extern void dump_value_range (FILE *, const value_range *);
This again is the exported operations.
> It might be useful to add vrp_unary_op, vrp_binary_op on value_range.
> But that is for later if that is needed.
>
>>
>> I still believe sharing vrp_initialize/finalize is wrong and the
>> lattice setup / teardown
>> should be split out.
>
> I have done that too as part of the early-vrp patch in:
>
> https://gcc.gnu.org/ml/gcc-patches/2016-08/msg01155.html
>
> I just wanted to focus on the functionality required for the IPA-VRP on
> this patch.
Attaching the latest version of the patch. Is this OK?
Thanks,
Kugan
[-- Attachment #2: 0001-Factor-out-and-expose-value_range-api-for-IPA-VRP.patch --]
[-- Type: text/x-patch, Size: 16174 bytes --]
From 2fc17cbac316f5b5a8aa360e2eecdb0659abc907 Mon Sep 17 00:00:00 2001
From: Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
Date: Mon, 15 Aug 2016 09:19:52 +1000
Subject: [PATCH 1/5] Factor out and expose value_range api for IPA-VRP
---
gcc/Makefile.in | 1 +
gcc/asan.c | 1 +
gcc/builtins.c | 1 +
gcc/cgraph.c | 1 +
gcc/cgraphunit.c | 1 +
gcc/fold-const.c | 1 +
gcc/gengtype.c | 2 +-
gcc/gimple-builder.c | 1 +
gcc/gimple-laddress.c | 1 +
gcc/hsa-gen.c | 1 +
gcc/internal-fn.c | 1 +
gcc/ipa-cp.c | 1 +
gcc/ipa-devirt.c | 1 +
gcc/ipa-inline-transform.c | 1 +
gcc/ipa-inline.c | 1 +
gcc/ipa-profile.c | 1 +
gcc/ipa-utils.c | 1 +
gcc/ipa.c | 1 +
gcc/lto/lto-partition.c | 1 +
gcc/lto/lto.c | 1 +
gcc/ssa.h | 1 +
gcc/targhooks.c | 1 +
gcc/toplev.c | 1 +
gcc/tree-ssa-address.c | 1 +
gcc/tree-ssanames.h | 5 -----
gcc/tree-vrp.c | 40 ++++++----------------------------
gcc/tree-vrp.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++
27 files changed, 84 insertions(+), 40 deletions(-)
create mode 100644 gcc/tree-vrp.h
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 7a0160f..8d7cc51 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2456,6 +2456,7 @@ GTFILES = $(CPP_ID_DATA_H) $(srcdir)/input.h $(srcdir)/coretypes.h \
$(srcdir)/tree-phinodes.c \
$(srcdir)/tree-ssa-alias.h \
$(srcdir)/tree-ssanames.h \
+ $(srcdir)/tree-vrp.h \
$(srcdir)/ipa-prop.h \
$(srcdir)/trans-mem.c \
$(srcdir)/lto-streamer.h \
diff --git a/gcc/asan.c b/gcc/asan.c
index 9047e1b..4fe2447 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-pass.h"
#include "tm_p.h"
#include "stringpool.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
#include "optabs.h"
#include "emit-rtl.h"
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 03a0dc8..abc934b 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "predict.h"
#include "tm_p.h"
#include "stringpool.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
#include "expmed.h"
#include "optabs.h"
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 9bc5b6b..0a43850 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -49,6 +49,7 @@ along with GCC; see the file COPYING3. If not see
#include "value-prof.h"
#include "ipa-utils.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "ipa-inline.h"
#include "cfgloop.h"
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index d8f7903..5bb6904 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -190,6 +190,7 @@ along with GCC; see the file COPYING3. If not see
#include "toplev.h"
#include "debug.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "gimple-pretty-print.h"
#include "plugin.h"
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 30c1e0d..103ed2d 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -75,6 +75,7 @@ along with GCC; see the file COPYING3. If not see
#include "md5.h"
#include "case-cfn-macros.h"
#include "stringpool.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
#include "selftest.h"
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index 0518355..cecd552 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -1713,7 +1713,7 @@ open_base_files (void)
"explow.h", "calls.h", "cilk.h", "emit-rtl.h", "varasm.h", "stmt.h",
"expr.h", "alloc-pool.h", "cselib.h", "insn-addr.h", "optabs.h",
"libfuncs.h", "debug.h", "internal-fn.h", "gimple-fold.h", "tree-eh.h",
- "gimple-iterator.h", "gimple-ssa.h", "tree-cfg.h",
+ "gimple-iterator.h", "gimple-ssa.h", "tree-cfg.h", "tree-vrp.h",
"tree-phinodes.h", "ssa-iterators.h", "stringpool.h", "tree-ssanames.h",
"tree-ssa-loop.h", "tree-ssa-loop-ivopts.h", "tree-ssa-loop-manip.h",
"tree-ssa-loop-niter.h", "tree-into-ssa.h", "tree-dfa.h",
diff --git a/gcc/gimple-builder.c b/gcc/gimple-builder.c
index f124554..4fb21e4 100644
--- a/gcc/gimple-builder.c
+++ b/gcc/gimple-builder.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree.h"
#include "gimple.h"
#include "stringpool.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
diff --git a/gcc/gimple-laddress.c b/gcc/gimple-laddress.c
index 4cc57cf..1a3c8e1 100644
--- a/gcc/gimple-laddress.c
+++ b/gcc/gimple-laddress.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "symtab.h"
#include "tree.h"
#include "stringpool.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
#include "fold-const.h"
#include "gimple-expr.h"
diff --git a/gcc/hsa-gen.c b/gcc/hsa-gen.c
index fb6d8a2..314bb5b 100644
--- a/gcc/hsa-gen.c
+++ b/gcc/hsa-gen.c
@@ -42,6 +42,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "stringpool.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
#include "tree-dfa.h"
#include "ssa-iterators.h"
diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c
index 49f3495..cd4b625 100644
--- a/gcc/internal-fn.c
+++ b/gcc/internal-fn.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "predict.h"
#include "stringpool.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
#include "expmed.h"
#include "optabs.h"
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 5b6cb9a..e9562a5 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -114,6 +114,7 @@ along with GCC; see the file COPYING3. If not see
#include "fold-const.h"
#include "gimple-fold.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "tree-pretty-print.h"
#include "tree-inline.h"
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 2cf018b..62a08f8 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -122,6 +122,7 @@ along with GCC; see the file COPYING3. If not see
#include "ipa-utils.h"
#include "gimple-fold.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "ipa-inline.h"
#include "demangle.h"
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c
index 98c7f96..efe7421 100644
--- a/gcc/ipa-inline-transform.c
+++ b/gcc/ipa-inline-transform.c
@@ -39,6 +39,7 @@ along with GCC; see the file COPYING3. If not see
#include "cgraph.h"
#include "tree-cfg.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "ipa-inline.h"
#include "tree-inline.h"
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 5c9366a..82bb94f 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -108,6 +108,7 @@ along with GCC; see the file COPYING3. If not see
#include "params.h"
#include "profile.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "ipa-inline.h"
#include "ipa-utils.h"
diff --git a/gcc/ipa-profile.c b/gcc/ipa-profile.c
index da17bcd..e87615a 100644
--- a/gcc/ipa-profile.c
+++ b/gcc/ipa-profile.c
@@ -62,6 +62,7 @@ along with GCC; see the file COPYING3. If not see
#include "value-prof.h"
#include "tree-inline.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "ipa-inline.h"
diff --git a/gcc/ipa-utils.c b/gcc/ipa-utils.c
index 5eb7d5f..61d8dd1 100644
--- a/gcc/ipa-utils.c
+++ b/gcc/ipa-utils.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "splay-tree.h"
#include "ipa-utils.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "ipa-inline.h"
diff --git a/gcc/ipa.c b/gcc/ipa.c
index 6f4693f..b02713f 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-iterator.h"
#include "ipa-utils.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "ipa-inline.h"
#include "dbgcnt.h"
diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c
index 453343a..b52d175 100644
--- a/gcc/lto/lto-partition.c
+++ b/gcc/lto/lto-partition.c
@@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see
#include "lto-streamer.h"
#include "params.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "ipa-inline.h"
#include "lto-partition.h"
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 73d1e26..bbf02e8 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "toplev.h"
#include "stor-layout.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "common.h"
#include "debug.h"
diff --git a/gcc/ssa.h b/gcc/ssa.h
index 40bc1c7..0ec1bf0 100644
--- a/gcc/ssa.h
+++ b/gcc/ssa.h
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "stringpool.h"
#include "gimple-ssa.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 69037c1..6f67210 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -57,6 +57,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-expr.h"
#include "tm_p.h"
#include "stringpool.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
#include "optabs.h"
#include "regs.h"
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 2607904..668eccd 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -71,6 +71,7 @@ along with GCC; see the file COPYING3. If not see
#include "dwarf2out.h"
#include "ipa-reference.h"
#include "symbol-summary.h"
+#include "tree-vrp.h"
#include "ipa-prop.h"
#include "gcse.h"
#include "tree-chkp.h"
diff --git a/gcc/tree-ssa-address.c b/gcc/tree-ssa-address.c
index b04545c..30f0c32 100644
--- a/gcc/tree-ssa-address.c
+++ b/gcc/tree-ssa-address.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree.h"
#include "gimple.h"
#include "stringpool.h"
+#include "tree-vrp.h"
#include "tree-ssanames.h"
#include "expmed.h"
#include "insn-config.h"
diff --git a/gcc/tree-ssanames.h b/gcc/tree-ssanames.h
index c81b1a1..8e66ce6 100644
--- a/gcc/tree-ssanames.h
+++ b/gcc/tree-ssanames.h
@@ -62,11 +62,6 @@ struct GTY ((variable_size)) range_info_def {
#define num_ssa_names (vec_safe_length (cfun->gimple_df->ssa_names))
#define ssa_name(i) ((*cfun->gimple_df->ssa_names)[(i)])
-
-/* Type of value ranges. See value_range_d In tree-vrp.c for a
- description of these types. */
-enum value_range_type { VR_UNDEFINED, VR_RANGE, VR_ANTI_RANGE, VR_VARYING };
-
/* Sets the value range to SSA. */
extern void set_range_info (tree, enum value_range_type, const wide_int_ref &,
const wide_int_ref &);
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 6934914..ccfccef 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -61,32 +61,6 @@ along with GCC; see the file COPYING3. If not see
#include "params.h"
#include "alloc-pool.h"
-/* Range of values that can be associated with an SSA_NAME after VRP
- has executed. */
-struct value_range
-{
- /* Lattice value represented by this range. */
- enum value_range_type type;
-
- /* Minimum and maximum values represented by this range. These
- values should be interpreted as follows:
-
- - If TYPE is VR_UNDEFINED or VR_VARYING then MIN and MAX must
- be NULL.
-
- - If TYPE == VR_RANGE then MIN holds the minimum value and
- MAX holds the maximum value of the range [MIN, MAX].
-
- - If TYPE == ANTI_RANGE the variable is known to NOT
- take any values in the range [MIN, MAX]. */
- tree min;
- tree max;
-
- /* Set of SSA names whose value ranges are equivalent to this one.
- This set is only valid when TYPE is VR_RANGE or VR_ANTI_RANGE. */
- bitmap equiv;
-};
-
#define VR_INITIALIZER { VR_UNDEFINED, NULL_TREE, NULL_TREE, NULL }
/* Allocation pools for tree-vrp allocations. */
@@ -109,8 +83,6 @@ live_on_edge (edge e, tree name)
/* Local functions. */
static int compare_values (tree val1, tree val2);
static int compare_values_warnv (tree val1, tree val2, bool *);
-static void vrp_meet (value_range *, value_range *);
-static void vrp_intersect_ranges (value_range *, value_range *);
static tree vrp_evaluate_conditional_warnv_with_ops (enum tree_code,
tree, tree, bool, bool *,
bool *);
@@ -4633,7 +4605,7 @@ compare_range_with_value (enum tree_code comp, value_range *vr, tree val,
/* Debugging dumps. */
-void dump_value_range (FILE *, value_range *);
+void dump_value_range (FILE *, const value_range *);
void debug_value_range (value_range *);
void dump_all_value_ranges (FILE *);
void debug_all_value_ranges (void);
@@ -4644,7 +4616,7 @@ void debug_vr_equiv (bitmap);
/* Dump value range VR to FILE. */
void
-dump_value_range (FILE *file, value_range *vr)
+dump_value_range (FILE *file, const value_range *vr)
{
if (vr == NULL)
fprintf (file, "[]");
@@ -8586,7 +8558,7 @@ vrp_intersect_ranges_1 (value_range *vr0, value_range *vr1)
bitmap_copy (vr0->equiv, vr1->equiv);
}
-static void
+void
vrp_intersect_ranges (value_range *vr0, value_range *vr1)
{
if (dump_file && (dump_flags & TDF_DETAILS))
@@ -8611,7 +8583,7 @@ vrp_intersect_ranges (value_range *vr0, value_range *vr1)
may not be the smallest possible such range. */
static void
-vrp_meet_1 (value_range *vr0, value_range *vr1)
+vrp_meet_1 (value_range *vr0, const value_range *vr1)
{
value_range saved;
@@ -8683,8 +8655,8 @@ vrp_meet_1 (value_range *vr0, value_range *vr1)
bitmap_clear (vr0->equiv);
}
-static void
-vrp_meet (value_range *vr0, value_range *vr1)
+void
+vrp_meet (value_range *vr0, const value_range *vr1)
{
if (dump_file && (dump_flags & TDF_DETAILS))
{
diff --git a/gcc/tree-vrp.h b/gcc/tree-vrp.h
new file mode 100644
index 0000000..e514c1e
--- /dev/null
+++ b/gcc/tree-vrp.h
@@ -0,0 +1,54 @@
+/* Support routines for Value Range Propagation (VRP).
+ Copyright (C) Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Type of value ranges. See value_range_d In tree-vrp.c for a
+ description of these types. */
+enum value_range_type { VR_UNDEFINED, VR_RANGE,
+ VR_ANTI_RANGE, VR_VARYING, VR_LAST };
+
+/* Range of values that can be associated with an SSA_NAME after VRP
+ has executed. */
+struct GTY(()) value_range
+{
+ /* Lattice value represented by this range. */
+ enum value_range_type type;
+
+ /* Minimum and maximum values represented by this range. These
+ values should be interpreted as follows:
+
+ - If TYPE is VR_UNDEFINED or VR_VARYING then MIN and MAX must
+ be NULL.
+
+ - If TYPE == VR_RANGE then MIN holds the minimum value and
+ MAX holds the maximum value of the range [MIN, MAX].
+
+ - If TYPE == ANTI_RANGE the variable is known to NOT
+ take any values in the range [MIN, MAX]. */
+ tree min;
+ tree max;
+
+ /* Set of SSA names whose value ranges are equivalent to this one.
+ This set is only valid when TYPE is VR_RANGE or VR_ANTI_RANGE. */
+ bitmap equiv;
+};
+
+extern void vrp_intersect_ranges (value_range *vr0, value_range *vr1);
+extern void vrp_meet (value_range *vr0, const value_range *vr1);
+extern void dump_value_range (FILE *, const value_range *);
+
--
2.7.4
next prev parent reply other threads:[~2016-08-17 2:50 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-15 4:41 [RFC][IPA-VRP] IPA VRP Implementation kugan
2016-07-15 4:42 ` [RFC][IPA-VRP] Disable setting param of __builtin_constant_p to null kugan
2016-07-15 8:43 ` Jan Hubicka
2016-07-25 6:59 ` kugan
2016-07-25 10:02 ` Richard Biener
2016-07-15 4:43 ` [RFC][IPA-VRP] Check for POINTER_TYPE_P before accessing SSA_NAME_PTR_INFO in tree-inline kugan
2016-07-15 4:47 ` Andrew Pinski
2016-07-15 7:03 ` kugan
2016-07-15 7:03 ` Jakub Jelinek
2016-07-15 7:32 ` Richard Biener
2016-07-15 4:44 ` [RFC][IPA-VRP] Re-factor tree-vrp to factor out common code kugan
2016-07-15 4:47 ` [RFC][IPA-VRP] Add support for IPA VRP in ipa-cp/ipa-prop kugan
2016-07-15 12:23 ` Martin Jambor
2016-07-19 8:22 ` kugan
2016-07-19 21:27 ` kugan
2016-07-21 12:54 ` Jan Hubicka
2016-08-30 5:21 ` Kugan Vivekanandarajah
2016-08-30 18:12 ` Prathamesh Kulkarni
2016-08-30 21:10 ` kugan
2016-09-02 12:31 ` Jan Hubicka
2016-07-17 13:24 ` Prathamesh Kulkarni
2016-07-22 12:27 ` [RFC][IPA-VRP] Re-factor tree-vrp to factor out common code kugan
2016-07-22 12:49 ` Richard Biener
2016-07-22 14:34 ` kugan
2016-07-23 10:12 ` kugan
2016-08-16 8:09 ` kugan
2016-08-16 11:56 ` Richard Biener
2016-08-16 22:20 ` kugan
2016-08-17 2:50 ` kugan [this message]
2016-08-17 13:46 ` Richard Biener
2016-07-15 4:45 ` [RFC][IPA-VRP] Early VRP Implementation kugan
2016-07-15 4:52 ` Andrew Pinski
2016-07-15 7:08 ` kugan
2016-07-15 7:28 ` Andrew Pinski
2016-07-15 7:33 ` kugan
2016-07-18 11:51 ` Richard Biener
2016-07-22 12:10 ` kugan
2016-07-25 11:18 ` Richard Biener
2016-07-26 12:27 ` kugan
2016-07-26 13:37 ` Richard Biener
2016-07-28 7:36 ` kugan
2016-07-28 11:34 ` Richard Biener
2016-08-03 1:17 ` kugan
2016-08-12 10:43 ` Richard Biener
2016-08-16 7:39 ` [RFC][IPA-VRP] splits out the update_value_range calls from vrp_visit_stmt kugan
2016-08-16 10:58 ` Richard Biener
2016-08-17 2:27 ` kugan
2016-08-17 13:44 ` Richard Biener
2016-08-16 7:45 ` [RFC][IPA-VRP] Early VRP Implementation kugan
2016-08-19 11:41 ` Richard Biener
2016-08-23 2:12 ` Kugan Vivekanandarajah
2016-09-02 8:11 ` Kugan Vivekanandarajah
2016-09-14 12:11 ` Richard Biener
2016-09-14 21:47 ` Jan Hubicka
2016-09-15 7:23 ` Richard Biener
2016-09-15 14:57 ` Jeff Law
2016-09-16 8:59 ` Richard Biener
2016-09-16 6:37 ` kugan
2016-09-16 10:26 ` Richard Biener
2016-09-18 23:40 ` kugan
2016-09-19 13:30 ` Richard Biener
2016-09-20 5:48 ` kugan
2016-07-19 16:19 ` Jeff Law
2016-07-19 18:35 ` Richard Biener
2016-07-19 20:14 ` Jeff Law
2016-07-15 4:47 ` [RFC][IPA-VRP] Teach tree-vrp to use the VR set in params kugan
2016-07-18 11:33 ` Richard Biener
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a7f37184-294c-b551-f967-b2973ce6d3a0@linaro.org \
--to=kugan.vivekanandarajah@linaro.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=hubicka@ucw.cz \
--cc=mjambor@suse.cz \
--cc=richard.guenther@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).