This is the mail archive of the
mailing list for the GCC project.
Re: gimple build interface
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Diego Novillo <dnovillo at google dot com>
- Cc: Andrew MacLeod <amacleod at redhat dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 20 Sep 2013 15:28:49 +0200
- Subject: Re: gimple build interface
- Authentication-results: sourceware.org; auth=none
- References: <523AFAFE dot 7020808 at redhat dot com> <523B2CC4 dot 6050007 at redhat dot com> <CAFiYyc1rtTFENNw70h-MELX7oGK72AfUHd4SRg-_xU9Vx5soag at mail dot gmail dot com> <CAD_=9DQnMtyKjWBaoRN2vfQDP3k-bO1_g9OS6neNrcZWJRFPWw at mail dot gmail dot com>
On Fri, Sep 20, 2013 at 3:07 PM, Diego Novillo <email@example.com> wrote:
> On Fri, Sep 20, 2013 at 4:08 AM, Richard Biener
> <firstname.lastname@example.org> wrote:
>> On Thu, Sep 19, 2013 at 6:56 PM, Andrew MacLeod <email@example.com> wrote:
>>> On 09/19/2013 09:24 AM, Andrew MacLeod wrote:
>>>> I think this is of most use to ssa passes that need to construct code
>>>> snippets, so I propose we make this ssa specific and put it in tree-ssa.c
>>>> (renaming it ssa_build_assign), *OR* we could leave it general purpose and
>>>> put it in its own set of files, gimple-ssa-build.[ch] or something that
>>>> crosses the border between the two representations.
>>>> I'd also suggest that the final optional parameter be changed to tree *lhs
>>>> = NULL_TREE, which would allow the caller to specify the LHS if they want,
>>>> otherwise make_ssa_name would be called. If we want to leave it supporting
>>>> both gimple and ssa, then anyone from gimple land could pass in a gimple LHS
>>>> variable thus avoiding the call to make_ssa_name....
>>> Anyway, here is a patch which does that and a bit more. I didn't rename
>>> build_assign() to ssa_build_assign().. even though those are the only kind
>>> actually created right now. we can leave that for the day someone actually
>>> decides to flush this interface out, and maybe we'll want to pass in
>>> gimple_tmps and call them from front ends or other places... then it would
>>> have to be renamed again. So I just left it as is for the moment, but that
>>> could be changed.
>>> I also moved gimple_replace_lhs() to tree-ssa.c and renamed it
>>> ssa_replace_lhs(). It calls insert_debug_temp_for_var_def() from tree-ssa.c
>>> and that only works with the immediate use operands.. so that is an SSA
>>> specific routine, which makes this one SSA specific as well.
>>> Those 2 changes allow tree-ssa.h to no longer be included, it is replaced
>>> with tree-flow.h. Some preliminary work to enable removing immediate use
>>> routines out of tree-flow.h include:
>>> struct count_ptr_d, count_ptr_derefs(), count_uses_and_derefs() also get
>>> moved to tree-ssa.c since those are also require the immediate use
>>> mechanism, and thus is also SSA dependent.
>>> This bootstraps on x86_64-unknown-linux-gnu and has no new regressions.
>> Can you move the builders to asan.c please?
> No. They don't belong there. This is a high-level wrapper for the
> low-level instruction builders.
>> to have various issues so it shouldn't be used (I wonder who approved them
>> in the end ... maybe it was even me).
> Not really. I put it in and still need to flush it out a bit more.
> I'll work on it.
Maybe put it into a separate .c/.h file combo then?