Message ID | 1383236801-13234-5-git-send-email-dmalcolm@redhat.com |
---|---|
State | New |
Headers | show |
On 10/31/13 10:26, David Malcolm wrote: > * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New. > (is_a_helper <gimple_statement_with_ops>::test): New. > (is_a_helper <const gimple_statement_with_memory_ops>::test): New. > (is_a_helper <gimple_statement_with_memory_ops>::test): New. OK with the usual conditions. Check with Andrew as to the location of these helpers since he's in the middle of ripping apart gimple.h. jeff
On Thu, 2013-11-14 at 00:37 -0700, Jeff Law wrote: > On 10/31/13 10:26, David Malcolm wrote: > > * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New. > > (is_a_helper <gimple_statement_with_ops>::test): New. > > (is_a_helper <const gimple_statement_with_memory_ops>::test): New. > > (is_a_helper <gimple_statement_with_memory_ops>::test): New. > OK with the usual conditions. Check with Andrew as to the location of > these helpers since he's in the middle of ripping apart gimple.h. The helpers become used in accessors such as gimple_use_ops, gimple_vuse, gimple_vdef etc as of the automated patch (patch 3 in the series [1]), so presumably the helpers need to be in the same file as those accessors. The accessors are currently in gimple.h, and hence I also put the helpers within gimple.h (earlier within the header). Andrew, do you plan to move the accessor functions out of gimple.h? If so, where should the is_a_helper fns land? Dave [1] hence these patches need to be committed at the same time, whether than means a single "revision" or not; I split them up conceptually for ease of review.
On 11/18/2013 01:54 PM, David Malcolm wrote: > On Thu, 2013-11-14 at 00:37 -0700, Jeff Law wrote: >> On 10/31/13 10:26, David Malcolm wrote: >>> * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New. >>> (is_a_helper <gimple_statement_with_ops>::test): New. >>> (is_a_helper <const gimple_statement_with_memory_ops>::test): New. >>> (is_a_helper <gimple_statement_with_memory_ops>::test): New. >> OK with the usual conditions. Check with Andrew as to the location of >> these helpers since he's in the middle of ripping apart gimple.h. > The helpers become used in accessors such as gimple_use_ops, > gimple_vuse, gimple_vdef etc as of the automated patch (patch 3 in the > series [1]), so presumably the helpers need to be in the same file as > those accessors. The accessors are currently in gimple.h, and hence I > also put the helpers within gimple.h (earlier within the header). > > Andrew, do you plan to move the accessor functions out of gimple.h? If > so, where should the is_a_helper fns land? > Not currently. They are a component of the gimple statement, and gimple.[ch] is now just the statement and related accessors. Since your changes are just for gimple-stmt, in theory everything should go there. Andrew
On 11/18/13 11:54, David Malcolm wrote: > On Thu, 2013-11-14 at 00:37 -0700, Jeff Law wrote: >> On 10/31/13 10:26, David Malcolm wrote: >>> * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New. >>> (is_a_helper <gimple_statement_with_ops>::test): New. >>> (is_a_helper <const gimple_statement_with_memory_ops>::test): New. >>> (is_a_helper <gimple_statement_with_memory_ops>::test): New. >> OK with the usual conditions. Check with Andrew as to the location of >> these helpers since he's in the middle of ripping apart gimple.h. > > The helpers become used in accessors such as gimple_use_ops, > gimple_vuse, gimple_vdef etc as of the automated patch (patch 3 in the > series [1]), so presumably the helpers need to be in the same file as > those accessors. The accessors are currently in gimple.h, and hence I > also put the helpers within gimple.h (earlier within the header). > > Andrew, do you plan to move the accessor functions out of gimple.h? If > so, where should the is_a_helper fns land? > > Dave > > [1] hence these patches need to be committed at the same time, whether > than means a single "revision" or not; I split them up conceptually for > ease of review. I'd say single commit since they are dependent upon each other. jeff
diff --git a/gcc/gimple.h b/gcc/gimple.h index f258992..710ce04 100644 --- a/gcc/gimple.h +++ b/gcc/gimple.h @@ -1756,6 +1756,21 @@ gimple_has_ops (const_gimple g) return gimple_code (g) >= GIMPLE_COND && gimple_code (g) <= GIMPLE_RETURN; } +template <> +template <> +inline bool +is_a_helper <const gimple_statement_with_ops>::test (const_gimple gs) +{ + return gimple_has_ops (gs); +} + +template <> +template <> +inline bool +is_a_helper <gimple_statement_with_ops>::test (gimple gs) +{ + return gimple_has_ops (gs); +} /* Return true if GIMPLE statement G has memory operands. */ @@ -1765,6 +1780,21 @@ gimple_has_mem_ops (const_gimple g) return gimple_code (g) >= GIMPLE_ASSIGN && gimple_code (g) <= GIMPLE_RETURN; } +template <> +template <> +inline bool +is_a_helper <const gimple_statement_with_memory_ops>::test (const_gimple gs) +{ + return gimple_has_mem_ops (gs); +} + +template <> +template <> +inline bool +is_a_helper <gimple_statement_with_memory_ops>::test (gimple gs) +{ + return gimple_has_mem_ops (gs); +} /* Return the set of USE operands for statement G. */