public inbox for jit@gcc.gnu.org
 help / color / mirror / Atom feed
From: Petter Tomner <tomner@kth.se>
To: Antoni Boucher <bouanto@zoho.com>,
	David Malcolm <dmalcolm@redhat.com>,
	"jit@gcc.gnu.org" <jit@gcc.gnu.org>,
	"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>
Subject: SV: SV: [commited] jit: Support for global rvalue initialization and constructors
Date: Thu, 30 Dec 2021 08:14:24 +0000	[thread overview]
Message-ID: <d635f34c1c1b4721a1740b766d4d428c@kth.se> (raw)
In-Reply-To: <29d9c05526f72bcb53c55ef84f92e2bc9424c045.camel@zoho.com>

Oh ye no it is probably terrible missuse trying to write into the constructor. =)

Maybe I should look into barring that entrypoint for constructors. Kinda overlooked
that rvalue arrays could be used as lvalues.

/Petter

Från: Antoni Boucher <bouanto@zoho.com>
Skickat: den 30 december 2021 02:40
Till: Petter Tomner; David Malcolm; jit@gcc.gnu.org; gcc-patches@gcc.gnu.org
Ämne: Re: SV: [commited] jit: Support for global rvalue initialization and constructors
    
Oh, sorry, I meant when you have an array not in a local variable, and
you try to assign to an index of this array.
Something like:

    gcc_jit_rvalue *ctor = gcc_jit_context_new_array_constructor
(ctxt,0,int50arr_type,6,values);
    gcc_jit_block_add_assignment (block, 0,
gcc_jit_context_new_array_access(NULL, ctor,
gcc_jit_context_zero(int_type)), some_value);


Le jeudi 30 décembre 2021 à 01:16 +0000, Petter Tomner a écrit :
> Could you be more specific? I tried the equivalent of:
> 
> /*    int [50] foobar = {1,2,3,4};
>       int [50] foo() { int arr[50];
>                        arr = (int [50]){-1,-2,-3,-4,-5,-6};
>                        arr = foobar;
>                        arr = (int [50]){1,2,3,4,5,6};
>                        arr[6] = 1234;
>                        return arr;}
> 
>        N.B: Not a typo, returning an array.
> */
> 
> in test-local-init-rvalue.c with a global and local "arr" and it ran
> fine. (See attachment).
> 
> Regards, Petter
> 
> 
> Från: Antoni Boucher <bouanto@zoho.com>
> Skickat: den 29 december 2021 23:45
> Till: Petter Tomner; David Malcolm; jit@gcc.gnu.org;
> gcc-patches@gcc.gnu.org
> Ämne: Re: [commited] jit: Support for global rvalue initialization
> and constructors
>     
> I realized that trying to do an assignment to an array created by the
> new array constructor API will result in a "gimplification failed"
> error:
> 
> libgccjit.so: error: gimplification failed
> 0x7fa3a441e5d3 gimplify_expr(tree_node**, gimple**, gimple**, bool
> (*)(tree_node*), int)
>         ../../../gcc/gcc/gimplify.c:15964
> 0x7fa3a442b1ab gimplify_modify_expr
>         ../../../gcc/gcc/gimplify.c:5975
> 0x7fa3a441ac4c gimplify_expr(tree_node**, gimple**, gimple**, bool
> (*)(tree_node*), int)
>         ../../../gcc/gcc/gimplify.c:14951
> 0x7fa3a441e63c gimplify_stmt(tree_node**, gimple**)
>         ../../../gcc/gcc/gimplify.c:7026
> 0x7fa3a441bca3 gimplify_statement_list
>         ../../../gcc/gcc/gimplify.c:2014
> 0x7fa3a441bca3 gimplify_expr(tree_node**, gimple**, gimple**, bool
> (*)(tree_node*), int)
>         ../../../gcc/gcc/gimplify.c:15396
> 0x7fa3a441e63c gimplify_stmt(tree_node**, gimple**)
>         ../../../gcc/gcc/gimplify.c:7026
> 0x7fa3a441f000 gimplify_bind_expr
>         ../../../gcc/gcc/gimplify.c:1427
> 0x7fa3a441adc6 gimplify_expr(tree_node**, gimple**, gimple**, bool
> (*)(tree_node*), int)
>         ../../../gcc/gcc/gimplify.c:15152
> 0x7fa3a441e63c gimplify_stmt(tree_node**, gimple**)
>         ../../../gcc/gcc/gimplify.c:7026
> 0x7fa3a4420671 gimplify_body(tree_node*, bool)
>         ../../../gcc/gcc/gimplify.c:16197
> 0x7fa3a4420b3c gimplify_function_tree(tree_node*)
>         ../../../gcc/gcc/gimplify.c:16351
> 0x7fa3a419fe5e gcc::jit::playback::function::postprocess()
>         ../../../gcc/gcc/jit/jit-playback.c:1909
> 0x7fa3a41a13dc gcc::jit::playback::context::replay()
>         ../../../gcc/gcc/jit/jit-playback.c:3250
> 
> 
> Should an assignment to such a value be supported?
> 
> Le mercredi 15 décembre 2021 à 19:19 +0000, Petter Tomner a écrit :
> > Oh ye I accidentally dropped that in the merge thank you.
> > 
> > I believe there is an implicit "global:" in the top of each version
> > scope, so it shouldn't
> > matter other than looking a bit deviant.
> > 
> > Regards,
> > Petter
> > 
> > Från: Antoni Boucher <bouanto@zoho.com>
> > Skickat: den 15 december 2021 15:19
> > Till: Petter Tomner; David Malcolm; jit@gcc.gnu.org;
> > gcc-patches@gcc.gnu.org
> > Ämne: Re: [commited] jit: Support for global rvalue initialization
> > and constructors
> >     
> > Hi Petter.
> > I believe you have forgotten the line `global:` in the file
> > `gcc/jit/libgccjit.map`.
> > I'm not sure what this line does, but it is there for all other
> > ABI.
> > David: What do you think?
> > Regards.
> > 
> > Le mardi 14 décembre 2021 à 17:22 +0000, Petter Tomner via Jit a
> > écrit :
> > > Hi!
> > > 
> > > I have pushed the patch for rvalue initialization and ctors for
> > > libgccjit, for ABI 19.
> > > 
> > > Please see attached patch.
> > > 
> > > Regards,
> > > Petter
> > >           
> > 
> >     
> 
>     

    

      reply	other threads:[~2021-12-30  8:14 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-14 17:22 Petter Tomner
2021-12-15 14:19 ` Antoni Boucher
2021-12-15 19:19   ` SV: " Petter Tomner
2021-12-29 22:45     ` Antoni Boucher
2021-12-30  1:16       ` SV: " Petter Tomner
2021-12-30  1:40         ` Antoni Boucher
2021-12-30  8:14           ` Petter Tomner [this message]

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=d635f34c1c1b4721a1740b766d4d428c@kth.se \
    --to=tomner@kth.se \
    --cc=bouanto@zoho.com \
    --cc=dmalcolm@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jit@gcc.gnu.org \
    /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).