From: Michael Cree <mcree@orcon.net.nz>
To: David Malcolm <dmalcolm@redhat.com>
Cc: jit@gcc.gnu.org
Subject: Re: [committed] jit: add gcc_jit_type_get_vector
Date: Sun, 01 Jan 2017 00:00:00 -0000 [thread overview]
Message-ID: <20170816211520.GA2399@cree.waikato.ac.nz> (raw)
In-Reply-To: <1502892117.3741.15.camel@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1064 bytes --]
On Wed, Aug 16, 2017 at 10:01:57AM -0400, David Malcolm wrote:
> On Wed, 2017-08-16 at 21:58 +1200, Michael Cree wrote:
> >
> > But I have hit a problem which I suspect is a bug in the gcc
> > optimiser.
> >
> > In the vein of your example above, but working on uint8_t pixel data
> > and adding saturation, the jit compiler segfaults in the optimiser. I
> > provide below the gimple produced by the function that causes the
> > problem (I presume that is more useful than the code calling the
> > gcc_jit routines),
>
> There's actually a handy entrypoint for generating minimal reproducers
> for such crashes:
> gcc_jit_context_dump_reproducer_to_file
>
> https://gcc.gnu.org/onlinedocs/jit/topics/contexts.html#gcc_jit_context_dump_reproducer_to_file
>
> Can you add a call to that to your code (after the context is fully
> populated), and see if the resulting .c file leads to the crash when
> run? If so, can you post the .c file here please (or attach it to
> bugzilla), and hopefully I can then reproduce it at my end.
Attached.
Cheers
Michael.
[-- Attachment #2: ip-jit-reproducer-dump.c --]
[-- Type: text/x-csrc, Size: 42256 bytes --]
/* This code was autogenerated by gcc_jit_context_dump_reproducer_to_file.
libgccjit (Debian 6.3.0-18) version 6.3.0 20170516 (x86_64-linux-gnu)
compiled by GNU C version 6.3.0 20170516, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15
*/
#include <libgccjit.h>
#pragma GCC diagnostic ignored "-Wunused-variable"
static void
set_options (gcc_jit_context *ctxt_0x55a43caf3990);
static void
create_code (gcc_jit_context *ctxt_0x55a43caf3990);
int
main (int argc, const char **argv)
{
gcc_jit_context *ctxt_0x55a43caf3990;
gcc_jit_result *result;
ctxt_0x55a43caf3990 = gcc_jit_context_acquire ();
set_options (ctxt_0x55a43caf3990);
create_code (ctxt_0x55a43caf3990);
result = gcc_jit_context_compile (ctxt_0x55a43caf3990);
gcc_jit_context_release (ctxt_0x55a43caf3990);
gcc_jit_result_release (result);
return 0;
}
static void
set_options (gcc_jit_context *ctxt_0x55a43caf3990)
{
/* Set options for ctxt_0x55a43caf3990. */
/* String options. */
gcc_jit_context_set_str_option (ctxt_0x55a43caf3990,
GCC_JIT_STR_OPTION_PROGNAME,
NULL);
/* Int options. */
gcc_jit_context_set_int_option (ctxt_0x55a43caf3990,
GCC_JIT_INT_OPTION_OPTIMIZATION_LEVEL,
3);
/* Boolean options. */
gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990,
GCC_JIT_BOOL_OPTION_DEBUGINFO,
0);
gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990,
GCC_JIT_BOOL_OPTION_DUMP_INITIAL_TREE,
0);
gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990,
GCC_JIT_BOOL_OPTION_DUMP_INITIAL_GIMPLE,
0);
gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990,
GCC_JIT_BOOL_OPTION_DUMP_GENERATED_CODE,
0);
gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990,
GCC_JIT_BOOL_OPTION_DUMP_SUMMARY,
0);
gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990,
GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING,
0);
gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990,
GCC_JIT_BOOL_OPTION_SELFCHECK_GC,
0);
gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990,
GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES,
0);
gcc_jit_context_set_bool_allow_unreachable_blocks (ctxt_0x55a43caf3990, 0);
gcc_jit_context_set_bool_use_external_driver (ctxt_0x55a43caf3990, 0);
/* User-provided command-line options. */
gcc_jit_context_add_command_line_option (ctxt_0x55a43caf3990, "-mavx2");
}
static void
create_code (gcc_jit_context *ctxt_0x55a43caf3990)
{
/* Replay of API calls for ctxt_0x55a43caf3990. */
gcc_jit_type *type_void_0x55a43caf3af0 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_VOID);
gcc_jit_type *type_char_0x55a43caf3b30 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_CHAR);
gcc_jit_type *type_int_0x55a43caf3b70 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_INT);
gcc_jit_type *type_unsigned_int_0x55a43caf3bb0 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_UNSIGNED_INT);
gcc_jit_type *type_float_0x55a43caf3bf0 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_FLOAT);
gcc_jit_type *type_double_0x55a43caf3c80 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_DOUBLE);
gcc_jit_type *type_size_t_0x55a43caf3cc0 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_SIZE_T);
gcc_jit_type *type_unsigned_char_0x55a43caf3d00 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_UNSIGNED_CHAR);
gcc_jit_type *type_signed_char_0x55a43caf3d40 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_SIGNED_CHAR);
gcc_jit_type *type_unsigned_short_0x55a43caf3e10 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_UNSIGNED_SHORT);
gcc_jit_type *type_short_0x55a43caf3e50 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_SHORT);
gcc_jit_type *type_void___0x55a43caf3e90 =
gcc_jit_type_get_pointer (type_void_0x55a43caf3af0);
gcc_jit_type *type_void_____0x55a43caf3ed0 =
gcc_jit_type_get_pointer (type_void___0x55a43caf3e90);
gcc_jit_type *type_const_char___0x55a43caf3f10 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_CONST_CHAR_PTR);
gcc_jit_type *type_unsigned_char___0x55a43caf3f50 =
gcc_jit_type_get_pointer (type_unsigned_char_0x55a43caf3d00);
gcc_jit_type *type_unsigned_short___0x55a43caf3f90 =
gcc_jit_type_get_pointer (type_unsigned_short_0x55a43caf3e10);
gcc_jit_type *type_short___0x55a43caf3fd0 =
gcc_jit_type_get_pointer (type_short_0x55a43caf3e50);
gcc_jit_type *type_unsigned_int___0x55a43caf3d80 =
gcc_jit_type_get_pointer (type_unsigned_int_0x55a43caf3bb0);
gcc_jit_type *type_int___0x55a43caf3dc0 =
gcc_jit_type_get_pointer (type_int_0x55a43caf3b70);
gcc_jit_type *type_float___0x55a43caf40e0 =
gcc_jit_type_get_pointer (type_float_0x55a43caf3bf0);
gcc_jit_type *type_double___0x55a43caf4120 =
gcc_jit_type_get_pointer (type_double_0x55a43caf3c80);
gcc_jit_type *array_type_void___2__0x55a43caf3c30 =
gcc_jit_context_new_array_type (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_void___0x55a43caf3e90, /* gcc_jit_type *element_type */
2); /* int num_elements */
gcc_jit_field *field_r_0x55a43caf41a0 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_float_0x55a43caf3bf0, /* gcc_jit_type *type, */
"r"); /* const char *name */
gcc_jit_field *field_i_0x55a43caf4010 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_float_0x55a43caf3bf0, /* gcc_jit_type *type, */
"i"); /* const char *name */
gcc_jit_struct *struct_struct_ip_complex_0x55a43caf4360 =
gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
"ip_complex"); /* const char *name */
gcc_jit_field *fields_fields_0x55a43caf40a0[2] = {
field_r_0x55a43caf41a0,
field_i_0x55a43caf4010,
};
gcc_jit_struct_set_fields (struct_struct_ip_complex_0x55a43caf4360, /* gcc_jit_struct *struct_type */
NULL, /* gcc_jit_location *loc */
2, /* int num_fields */
fields_fields_0x55a43caf40a0); /* gcc_jit_field **fields */
gcc_jit_type *type_struct_ip_complex___0x55a43caf43b0 =
gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_complex_0x55a43caf4360));
gcc_jit_field *field_r_0x55a43caf4450 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_double_0x55a43caf3c80, /* gcc_jit_type *type, */
"r"); /* const char *name */
gcc_jit_field *field_i_0x55a43caf4500 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_double_0x55a43caf3c80, /* gcc_jit_type *type, */
"i"); /* const char *name */
gcc_jit_struct *struct_struct_ip_dcomplex_0x55a43caf45b0 =
gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
"ip_dcomplex"); /* const char *name */
gcc_jit_field *fields_fields_0x55a43caf4600[2] = {
field_r_0x55a43caf4450,
field_i_0x55a43caf4500,
};
gcc_jit_struct_set_fields (struct_struct_ip_dcomplex_0x55a43caf45b0, /* gcc_jit_struct *struct_type */
NULL, /* gcc_jit_location *loc */
2, /* int num_fields */
fields_fields_0x55a43caf4600); /* gcc_jit_field **fields */
gcc_jit_type *type_struct_ip_dcomplex___0x55a43caf4230 =
gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_dcomplex_0x55a43caf45b0));
gcc_jit_field *field_r_0x55a43caf42d0 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_unsigned_char_0x55a43caf3d00, /* gcc_jit_type *type, */
"r"); /* const char *name */
gcc_jit_field *field_g_0x55a43caf4850 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_unsigned_char_0x55a43caf3d00, /* gcc_jit_type *type, */
"g"); /* const char *name */
gcc_jit_field *field_b_0x55a43caf4900 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_unsigned_char_0x55a43caf3d00, /* gcc_jit_type *type, */
"b"); /* const char *name */
gcc_jit_struct *struct_struct_ip_rgb_0x55a43caf49b0 =
gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
"ip_rgb"); /* const char *name */
gcc_jit_field *fields_fields_0x55a43caf4a00[3] = {
field_r_0x55a43caf42d0,
field_g_0x55a43caf4850,
field_b_0x55a43caf4900,
};
gcc_jit_struct_set_fields (struct_struct_ip_rgb_0x55a43caf49b0, /* gcc_jit_struct *struct_type */
NULL, /* gcc_jit_location *loc */
3, /* int num_fields */
fields_fields_0x55a43caf4a00); /* gcc_jit_field **fields */
gcc_jit_type *type_struct_ip_rgb___0x55a43caf4a70 =
gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_rgb_0x55a43caf49b0));
gcc_jit_field *field_r_0x55a43caf4b10 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_unsigned_short_0x55a43caf3e10, /* gcc_jit_type *type, */
"r"); /* const char *name */
gcc_jit_field *field_g_0x55a43caf4bc0 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_unsigned_short_0x55a43caf3e10, /* gcc_jit_type *type, */
"g"); /* const char *name */
gcc_jit_field *field_b_0x55a43caf4c70 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_unsigned_short_0x55a43caf3e10, /* gcc_jit_type *type, */
"b"); /* const char *name */
gcc_jit_struct *struct_struct_ip_rgb16_0x55a43caf4670 =
gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
"ip_rgb16"); /* const char *name */
gcc_jit_field *fields_fields_0x55a43caf46c0[3] = {
field_r_0x55a43caf4b10,
field_g_0x55a43caf4bc0,
field_b_0x55a43caf4c70,
};
gcc_jit_struct_set_fields (struct_struct_ip_rgb16_0x55a43caf4670, /* gcc_jit_struct *struct_type */
NULL, /* gcc_jit_location *loc */
3, /* int num_fields */
fields_fields_0x55a43caf46c0); /* gcc_jit_field **fields */
gcc_jit_type *type_struct_ip_rgb16___0x55a43caf4730 =
gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_rgb16_0x55a43caf4670));
gcc_jit_field *field_x_0x55a43caf47d0 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_int_0x55a43caf3b70, /* gcc_jit_type *type, */
"x"); /* const char *name */
gcc_jit_field *field_y_0x55a43caf5020 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_int_0x55a43caf3b70, /* gcc_jit_type *type, */
"y"); /* const char *name */
gcc_jit_struct *struct_struct_ip_coord_0x55a43caf50d0 =
gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
"ip_coord"); /* const char *name */
gcc_jit_field *fields_fields_0x55a43caf5170[2] = {
field_x_0x55a43caf47d0,
field_y_0x55a43caf5020,
};
gcc_jit_struct_set_fields (struct_struct_ip_coord_0x55a43caf50d0, /* gcc_jit_struct *struct_type */
NULL, /* gcc_jit_location *loc */
2, /* int num_fields */
fields_fields_0x55a43caf5170); /* gcc_jit_field **fields */
gcc_jit_field *field_type_0x55a43caf5210 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_int_0x55a43caf3b70, /* gcc_jit_type *type, */
"type"); /* const char *name */
gcc_jit_field *field_size_0x55a43caf52c0 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
gcc_jit_struct_as_type (struct_struct_ip_coord_0x55a43caf50d0), /* gcc_jit_type *type, */
"size"); /* const char *name */
gcc_jit_field *field_row_size_0x55a43caf5370 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_size_t_0x55a43caf3cc0, /* gcc_jit_type *type, */
"row_size"); /* const char *name */
gcc_jit_field *field_status_0x55a43caf5420 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_unsigned_int_0x55a43caf3bb0, /* gcc_jit_type *type, */
"status"); /* const char *name */
gcc_jit_field *field_palette_0x55a43caf54d0 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_struct_ip_rgb___0x55a43caf4a70, /* gcc_jit_type *type, */
"palette"); /* const char *name */
gcc_jit_field *field_imbuff_0x55a43caf5580 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_unsigned_char___0x55a43caf3f50, /* gcc_jit_type *type, */
"imbuff"); /* const char *name */
gcc_jit_field *field_imrow_0x55a43caf5630 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_void_____0x55a43caf3ed0, /* gcc_jit_type *type, */
"imrow"); /* const char *name */
gcc_jit_field *field_num_extra_rows_0x55a43caf56e0 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_int_0x55a43caf3b70, /* gcc_jit_type *type, */
"num_extra_rows"); /* const char *name */
gcc_jit_field *field_extra_rows_0x55a43caf4d20 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_void___0x55a43caf3e90, /* gcc_jit_type *type, */
"extra_rows"); /* const char *name */
gcc_jit_field *field_fftw_plans_0x55a43caf4dd0 =
gcc_jit_context_new_field (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
array_type_void___2__0x55a43caf3c30, /* gcc_jit_type *type, */
"fftw_plans"); /* const char *name */
gcc_jit_struct *struct_struct_ip_image_0x55a43caf4e80 =
gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
"ip_image"); /* const char *name */
gcc_jit_field *fields_fields_0x55a43caf4ed0[10] = {
field_type_0x55a43caf5210,
field_size_0x55a43caf52c0,
field_row_size_0x55a43caf5370,
field_status_0x55a43caf5420,
field_palette_0x55a43caf54d0,
field_imbuff_0x55a43caf5580,
field_imrow_0x55a43caf5630,
field_num_extra_rows_0x55a43caf56e0,
field_extra_rows_0x55a43caf4d20,
field_fftw_plans_0x55a43caf4dd0,
};
gcc_jit_struct_set_fields (struct_struct_ip_image_0x55a43caf4e80, /* gcc_jit_struct *struct_type */
NULL, /* gcc_jit_location *loc */
10, /* int num_fields */
fields_fields_0x55a43caf4ed0); /* gcc_jit_field **fields */
gcc_jit_type *type_struct_ip_image___0x55a43caf5c00 =
gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_image_0x55a43caf4e80));
gcc_jit_param *param_dest_0x55a43caf4f10 =
gcc_jit_context_new_param (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_struct_ip_image___0x55a43caf5c00, /*gcc_jit_type *type */
"dest"); /* const char *name */
gcc_jit_param *param_src_0x55a43caf5d00 =
gcc_jit_context_new_param (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
type_struct_ip_image___0x55a43caf5c00, /*gcc_jit_type *type */
"src"); /* const char *name */
gcc_jit_param *params_for_func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0[2] = {
param_dest_0x55a43caf4f10,
param_src_0x55a43caf5d00,
};
gcc_jit_function *func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0 =
gcc_jit_context_new_function (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
NULL, /* gcc_jit_location *loc */
GCC_JIT_FUNCTION_EXPORTED, /* enum gcc_jit_function_kind kind */
type_void_0x55a43caf3af0, /* gcc_jit_type *return_type */
"ip_jit_im_add_clip_UBYTE", /* const char *name */
2, /* int num_params */
params_for_func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_param **params */
0); /* int is_variadic */
gcc_jit_lvalue *local_rowlen_0x55a43caf4f60 =
gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */
NULL, /* gcc_jit_location *loc */
type_int_0x55a43caf3b70, /* gcc_jit_type *type */
"rowlen"); /* const char *name */
gcc_jit_lvalue *local_numrows_0x55a43caf5f80 =
gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */
NULL, /* gcc_jit_location *loc */
type_int_0x55a43caf3b70, /* gcc_jit_type *type */
"numrows"); /* const char *name */
gcc_jit_lvalue *local_j_0x55a43caf6040 =
gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */
NULL, /* gcc_jit_location *loc */
type_int_0x55a43caf3b70, /* gcc_jit_type *type */
"j"); /* const char *name */
gcc_jit_lvalue *local_dptr_0x55a43caf6100 =
gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */
NULL, /* gcc_jit_location *loc */
type_unsigned_char___0x55a43caf3f50, /* gcc_jit_type *type */
"dptr"); /* const char *name */
gcc_jit_lvalue *local_sptr_0x55a43caf61c0 =
gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */
NULL, /* gcc_jit_location *loc */
type_unsigned_char___0x55a43caf3f50, /* gcc_jit_type *type */
"sptr"); /* const char *name */
gcc_jit_lvalue *local_i_0x55a43caf62d0 =
gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */
NULL, /* gcc_jit_location *loc */
type_int_0x55a43caf3b70, /* gcc_jit_type *type */
"i"); /* const char *name */
gcc_jit_block *block_F1_0x55a43caf6390 =
gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "F1");
gcc_jit_block *block_C1_0x55a43caf6440 =
gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "C1");
gcc_jit_block *block_L1_0x55a43caf64f0 =
gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "L1");
gcc_jit_block *block_C2_0x55a43caf65a0 =
gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "C2");
gcc_jit_block *block_L2_0x55a43caf6650 =
gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "L2");
gcc_jit_block *block_A2_0x55a43caf6750 =
gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "A2");
gcc_jit_block *block_A1_0x55a43caf6800 =
gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "A1");
gcc_jit_lvalue *lvalue_dest__size_0x55a43caf6850=
gcc_jit_rvalue_dereference_field (gcc_jit_param_as_rvalue (param_dest_0x55a43caf4f10), /* gcc_jit_rvalue *ptr */
NULL, /* gcc_jit_location *loc */
field_size_0x55a43caf52c0); /* gcc_jit_field *field */
gcc_jit_rvalue *rvalue_dest__size_x_0x55a43caf5790 =
gcc_jit_rvalue_access_field (gcc_jit_lvalue_as_rvalue (lvalue_dest__size_0x55a43caf6850), /*gcc_jit_rvalue *struct_or_union */
NULL, /*gcc_jit_location *loc */
field_x_0x55a43caf47d0);
gcc_jit_block_add_assignment (block_F1_0x55a43caf6390, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_rowlen_0x55a43caf4f60, /* gcc_jit_lvalue *lvalue */
rvalue_dest__size_x_0x55a43caf5790); /* gcc_jit_rvalue *rvalue */
gcc_jit_rvalue *rvalue_dest__size_y_0x55a43caf5840 =
gcc_jit_rvalue_access_field (gcc_jit_lvalue_as_rvalue (lvalue_dest__size_0x55a43caf6850), /*gcc_jit_rvalue *struct_or_union */
NULL, /*gcc_jit_location *loc */
field_y_0x55a43caf5020);
gcc_jit_block_add_assignment (block_F1_0x55a43caf6390, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_numrows_0x55a43caf5f80, /* gcc_jit_lvalue *lvalue */
rvalue_dest__size_y_0x55a43caf5840); /* gcc_jit_rvalue *rvalue */
gcc_jit_rvalue *rvalue__int_0_0x55a43caf58f0 =
gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */
0); /* int value */
gcc_jit_block_add_assignment (block_F1_0x55a43caf6390, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_j_0x55a43caf6040, /* gcc_jit_lvalue *lvalue */
rvalue__int_0_0x55a43caf58f0); /* gcc_jit_rvalue *rvalue */
gcc_jit_block_end_with_jump (block_F1_0x55a43caf6390, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
block_C1_0x55a43caf6440); /* gcc_jit_block *target */
gcc_jit_type *type_bool_0x55a43caf5a30 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_BOOL);
gcc_jit_rvalue *rvalue_j___numrows_0x55a43caf59d0 =
gcc_jit_context_new_comparison (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
GCC_JIT_COMPARISON_LT, /* enum gcc_jit_comparison op */
gcc_jit_lvalue_as_rvalue (local_j_0x55a43caf6040), /* gcc_jit_rvalue *a */
gcc_jit_lvalue_as_rvalue (local_numrows_0x55a43caf5f80)); /* gcc_jit_rvalue *b */
gcc_jit_block_end_with_conditional (block_C1_0x55a43caf6440, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
rvalue_j___numrows_0x55a43caf59d0, /* gcc_jit_rvalue *boolval */
block_L1_0x55a43caf64f0, /* gcc_jit_block *on_true */
block_A1_0x55a43caf6800); /* gcc_jit_block *on_false */
gcc_jit_lvalue *lvalue_dest__imrow_0x55a43caf5af0=
gcc_jit_rvalue_dereference_field (gcc_jit_param_as_rvalue (param_dest_0x55a43caf4f10), /* gcc_jit_rvalue *ptr */
NULL, /* gcc_jit_location *loc */
field_imrow_0x55a43caf5630); /* gcc_jit_field *field */
gcc_jit_lvalue *lvalue_dest__imrow_j__0x55a43caf6e70 =
gcc_jit_context_new_array_access (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
NULL, /*gcc_jit_location *loc */
gcc_jit_lvalue_as_rvalue (lvalue_dest__imrow_0x55a43caf5af0), /* gcc_jit_rvalue *ptr */
gcc_jit_lvalue_as_rvalue (local_j_0x55a43caf6040)); /* gcc_jit_rvalue *index */
gcc_jit_rvalue *rvalue__unsigned_char___dest__imrow_j__0x55a43caf6ed0 =
gcc_jit_context_new_cast (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
gcc_jit_lvalue_as_rvalue (lvalue_dest__imrow_j__0x55a43caf6e70), /* gcc_jit_rvalue *rvalue */
type_unsigned_char___0x55a43caf3f50); /* gcc_jit_type *type */
gcc_jit_block_add_assignment (block_L1_0x55a43caf64f0, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_dptr_0x55a43caf6100, /* gcc_jit_lvalue *lvalue */
rvalue__unsigned_char___dest__imrow_j__0x55a43caf6ed0); /* gcc_jit_rvalue *rvalue */
gcc_jit_lvalue *lvalue_src__imrow_0x55a43caf6fa0=
gcc_jit_rvalue_dereference_field (gcc_jit_param_as_rvalue (param_src_0x55a43caf5d00), /* gcc_jit_rvalue *ptr */
NULL, /* gcc_jit_location *loc */
field_imrow_0x55a43caf5630); /* gcc_jit_field *field */
gcc_jit_lvalue *lvalue_src__imrow_j__0x55a43caf7000 =
gcc_jit_context_new_array_access (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
NULL, /*gcc_jit_location *loc */
gcc_jit_lvalue_as_rvalue (lvalue_src__imrow_0x55a43caf6fa0), /* gcc_jit_rvalue *ptr */
gcc_jit_lvalue_as_rvalue (local_j_0x55a43caf6040)); /* gcc_jit_rvalue *index */
gcc_jit_rvalue *rvalue__unsigned_char___src__imrow_j__0x55a43caf7060 =
gcc_jit_context_new_cast (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
gcc_jit_lvalue_as_rvalue (lvalue_src__imrow_j__0x55a43caf7000), /* gcc_jit_rvalue *rvalue */
type_unsigned_char___0x55a43caf3f50); /* gcc_jit_type *type */
gcc_jit_block_add_assignment (block_L1_0x55a43caf64f0, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_sptr_0x55a43caf61c0, /* gcc_jit_lvalue *lvalue */
rvalue__unsigned_char___src__imrow_j__0x55a43caf7060); /* gcc_jit_rvalue *rvalue */
gcc_jit_rvalue *rvalue__int_0_0x55a43caf7100 =
gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */
0); /* int value */
gcc_jit_block_add_assignment (block_L1_0x55a43caf64f0, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_i_0x55a43caf62d0, /* gcc_jit_lvalue *lvalue */
rvalue__int_0_0x55a43caf7100); /* gcc_jit_rvalue *rvalue */
gcc_jit_block_end_with_jump (block_L1_0x55a43caf64f0, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
block_C2_0x55a43caf65a0); /* gcc_jit_block *target */
gcc_jit_rvalue *rvalue_i___rowlen_0x55a43caf71e0 =
gcc_jit_context_new_comparison (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
GCC_JIT_COMPARISON_LT, /* enum gcc_jit_comparison op */
gcc_jit_lvalue_as_rvalue (local_i_0x55a43caf62d0), /* gcc_jit_rvalue *a */
gcc_jit_lvalue_as_rvalue (local_rowlen_0x55a43caf4f60)); /* gcc_jit_rvalue *b */
gcc_jit_block_end_with_conditional (block_C2_0x55a43caf65a0, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
rvalue_i___rowlen_0x55a43caf71e0, /* gcc_jit_rvalue *boolval */
block_L2_0x55a43caf6650, /* gcc_jit_block *on_true */
block_A2_0x55a43caf6750); /* gcc_jit_block *on_false */
gcc_jit_lvalue *dereference__dptr_0x55a43caf72c0 =
gcc_jit_rvalue_dereference (gcc_jit_lvalue_as_rvalue (local_dptr_0x55a43caf6100), /* gcc_jit_rvalue *rvalue */
NULL); /* gcc_jit_location *loc */
gcc_jit_lvalue *dereference__sptr_0x55a43caf7310 =
gcc_jit_rvalue_dereference (gcc_jit_lvalue_as_rvalue (local_sptr_0x55a43caf61c0), /* gcc_jit_rvalue *rvalue */
NULL); /* gcc_jit_location *loc */
gcc_jit_block *block_p_C1_true_0x55a43caf73a0 =
gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "p_C1_true");
gcc_jit_block *block_p_C1_end_0x55a43caf7450 =
gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "p_C1_end");
gcc_jit_lvalue *local_ival_0x55a43caf7590 =
gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */
NULL, /* gcc_jit_location *loc */
type_int_0x55a43caf3b70, /* gcc_jit_type *type */
"ival"); /* const char *name */
gcc_jit_rvalue *rvalue__int__dptr_0x55a43caf66a0 =
gcc_jit_context_new_cast (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
gcc_jit_lvalue_as_rvalue (dereference__dptr_0x55a43caf72c0), /* gcc_jit_rvalue *rvalue */
type_int_0x55a43caf3b70); /* gcc_jit_type *type */
gcc_jit_rvalue *rvalue__int__sptr_0x55a43caf75f0 =
gcc_jit_context_new_cast (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
gcc_jit_lvalue_as_rvalue (dereference__sptr_0x55a43caf7310), /* gcc_jit_rvalue *rvalue */
type_int_0x55a43caf3b70); /* gcc_jit_type *type */
gcc_jit_rvalue *rvalue__int__dptr____int__sptr_0x55a43caf7640 =
gcc_jit_context_new_binary_op (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
GCC_JIT_BINARY_OP_PLUS, /* enum gcc_jit_binary_op op */
type_int_0x55a43caf3b70, /* gcc_jit_type *result_type */
rvalue__int__dptr_0x55a43caf66a0, /* gcc_jit_rvalue *a */
rvalue__int__sptr_0x55a43caf75f0); /* gcc_jit_rvalue *b */
gcc_jit_block_add_assignment (block_L2_0x55a43caf6650, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_ival_0x55a43caf7590, /* gcc_jit_lvalue *lvalue */
rvalue__int__dptr____int__sptr_0x55a43caf7640); /* gcc_jit_rvalue *rvalue */
gcc_jit_rvalue *rvalue__int_255_0x55a43caf7720 =
gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */
255); /* int value */
gcc_jit_rvalue *rvalue_ival____int_255_0x55a43caf7770 =
gcc_jit_context_new_comparison (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
GCC_JIT_COMPARISON_GT, /* enum gcc_jit_comparison op */
gcc_jit_lvalue_as_rvalue (local_ival_0x55a43caf7590), /* gcc_jit_rvalue *a */
rvalue__int_255_0x55a43caf7720); /* gcc_jit_rvalue *b */
gcc_jit_block_end_with_conditional (block_L2_0x55a43caf6650, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
rvalue_ival____int_255_0x55a43caf7770, /* gcc_jit_rvalue *boolval */
block_p_C1_true_0x55a43caf73a0, /* gcc_jit_block *on_true */
block_p_C1_end_0x55a43caf7450); /* gcc_jit_block *on_false */
gcc_jit_block_add_assignment (block_p_C1_true_0x55a43caf73a0, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_ival_0x55a43caf7590, /* gcc_jit_lvalue *lvalue */
rvalue__int_255_0x55a43caf7720); /* gcc_jit_rvalue *rvalue */
gcc_jit_block_end_with_jump (block_p_C1_true_0x55a43caf73a0, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
block_p_C1_end_0x55a43caf7450); /* gcc_jit_block *target */
gcc_jit_rvalue *rvalue__unsigned_char_ival_0x55a43caf78e0 =
gcc_jit_context_new_cast (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
gcc_jit_lvalue_as_rvalue (local_ival_0x55a43caf7590), /* gcc_jit_rvalue *rvalue */
type_unsigned_char_0x55a43caf3d00); /* gcc_jit_type *type */
gcc_jit_lvalue *dereference__dptr_0x55a43caf7930 =
gcc_jit_rvalue_dereference (gcc_jit_lvalue_as_rvalue (local_dptr_0x55a43caf6100), /* gcc_jit_rvalue *rvalue */
NULL); /* gcc_jit_location *loc */
gcc_jit_block_add_assignment (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
dereference__dptr_0x55a43caf7930, /* gcc_jit_lvalue *lvalue */
rvalue__unsigned_char_ival_0x55a43caf78e0); /* gcc_jit_rvalue *rvalue */
gcc_jit_rvalue *rvalue__int_1_0x55a43caf7a00 =
gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */
1); /* int value */
gcc_jit_lvalue *lvalue_dptr__int_1__0x55a43caf7a50 =
gcc_jit_context_new_array_access (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
NULL, /*gcc_jit_location *loc */
gcc_jit_lvalue_as_rvalue (local_dptr_0x55a43caf6100), /* gcc_jit_rvalue *ptr */
rvalue__int_1_0x55a43caf7a00); /* gcc_jit_rvalue *index */
gcc_jit_rvalue *address_of__dptr__int_1__0x55a43caf7ab0 =
gcc_jit_lvalue_get_address (lvalue_dptr__int_1__0x55a43caf7a50, /* gcc_jit_lvalue *lvalue */
NULL); /* gcc_jit_location *loc */
gcc_jit_block_add_assignment (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_dptr_0x55a43caf6100, /* gcc_jit_lvalue *lvalue */
address_of__dptr__int_1__0x55a43caf7ab0); /* gcc_jit_rvalue *rvalue */
gcc_jit_rvalue *rvalue__int_1_0x55a43caf7b50 =
gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */
1); /* int value */
gcc_jit_lvalue *lvalue_sptr__int_1__0x55a43caf7ba0 =
gcc_jit_context_new_array_access (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
NULL, /*gcc_jit_location *loc */
gcc_jit_lvalue_as_rvalue (local_sptr_0x55a43caf61c0), /* gcc_jit_rvalue *ptr */
rvalue__int_1_0x55a43caf7b50); /* gcc_jit_rvalue *index */
gcc_jit_rvalue *address_of__sptr__int_1__0x55a43caf7c00 =
gcc_jit_lvalue_get_address (lvalue_sptr__int_1__0x55a43caf7ba0, /* gcc_jit_lvalue *lvalue */
NULL); /* gcc_jit_location *loc */
gcc_jit_block_add_assignment (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_sptr_0x55a43caf61c0, /* gcc_jit_lvalue *lvalue */
address_of__sptr__int_1__0x55a43caf7c00); /* gcc_jit_rvalue *rvalue */
gcc_jit_rvalue *rvalue__int_1_0x55a43caf7ca0 =
gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */
1); /* int value */
gcc_jit_rvalue *rvalue_i____int_1_0x55a43caf7cf0 =
gcc_jit_context_new_binary_op (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
GCC_JIT_BINARY_OP_PLUS, /* enum gcc_jit_binary_op op */
type_int_0x55a43caf3b70, /* gcc_jit_type *result_type */
gcc_jit_lvalue_as_rvalue (local_i_0x55a43caf62d0), /* gcc_jit_rvalue *a */
rvalue__int_1_0x55a43caf7ca0); /* gcc_jit_rvalue *b */
gcc_jit_block_add_assignment (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_i_0x55a43caf62d0, /* gcc_jit_lvalue *lvalue */
rvalue_i____int_1_0x55a43caf7cf0); /* gcc_jit_rvalue *rvalue */
gcc_jit_block_end_with_jump (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
block_C2_0x55a43caf65a0); /* gcc_jit_block *target */
gcc_jit_rvalue *rvalue__int_1_0x55a43caf7e30 =
gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */
type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */
1); /* int value */
gcc_jit_rvalue *rvalue_j____int_1_0x55a43caf7e80 =
gcc_jit_context_new_binary_op (ctxt_0x55a43caf3990,
NULL, /* gcc_jit_location *loc */
GCC_JIT_BINARY_OP_PLUS, /* enum gcc_jit_binary_op op */
type_int_0x55a43caf3b70, /* gcc_jit_type *result_type */
gcc_jit_lvalue_as_rvalue (local_j_0x55a43caf6040), /* gcc_jit_rvalue *a */
rvalue__int_1_0x55a43caf7e30); /* gcc_jit_rvalue *b */
gcc_jit_block_add_assignment (block_A2_0x55a43caf6750, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
local_j_0x55a43caf6040, /* gcc_jit_lvalue *lvalue */
rvalue_j____int_1_0x55a43caf7e80); /* gcc_jit_rvalue *rvalue */
gcc_jit_block_end_with_jump (block_A2_0x55a43caf6750, /*gcc_jit_block *block */
NULL, /* gcc_jit_location *loc */
block_C1_0x55a43caf6440); /* gcc_jit_block *target */
gcc_jit_block_end_with_void_return (block_A1_0x55a43caf6800, /*gcc_jit_block *block */
NULL); /* gcc_jit_location *loc */
}
next prev parent reply other threads:[~2017-08-16 21:15 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-01 0:00 does libgccjit support vector types? Michael Cree
2017-01-01 0:00 ` David Malcolm
2017-01-01 0:00 ` Michael Cree
2017-01-01 0:00 ` [committed] jit: add gcc_jit_type_get_vector David Malcolm
2017-01-01 0:00 ` Michael Cree
2017-01-01 0:00 ` David Malcolm
2017-01-01 0:00 ` Michael Cree [this message]
2017-01-01 0:00 ` David Malcolm
2017-01-01 0:00 ` [committed] jit: fix segfault with autovectorization (PR tree-optimization/46805) David Malcolm
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=20170816211520.GA2399@cree.waikato.ac.nz \
--to=mcree@orcon.net.nz \
--cc=dmalcolm@redhat.com \
--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).