Skip to content
Snippets Groups Projects
  • Prathamesh Kulkarni's avatar
    38900247
    Partially support streaming of poly_int for offloading. · 38900247
    Prathamesh Kulkarni authored
    
    When offloading is enabled, the patch streams out host
    NUM_POLY_INT_COEFFS, and changes streaming in as follows:
    
    if (host_num_poly_int_coeffs <= NUM_POLY_INT_COEFFS)
    {
      for (i = 0; i < host_num_poly_int_coeffs; i++)
        poly_int.coeffs[i] = stream_in coeff;
      for (; i < NUM_POLY_INT_COEFFS; i++)
        poly_int.coeffs[i] = 0;
    }
    else
    {
      for (i = 0; i < NUM_POLY_INT_COEFFS; i++)
        poly_int.coeffs[i] = stream_in coeff;
    
      /* Ensure that degree of poly_int <= accel NUM_POLY_INT_COEFFS.  */
      for (; i < host_num_poly_int_coeffs; i++)
        {
          val = stream_in coeff;
          if (val != 0)
    	error ();
        }
    }
    
    gcc/ChangeLog:
    	PR ipa/96265
    	PR ipa/111937
    	* data-streamer-in.cc (streamer_read_poly_uint64): Remove code for
    	streaming, and call poly_int_read_common instead.
    	(streamer_read_poly_int64): Likewise.
    	* data-streamer.cc (host_num_poly_int_coeffs): Conditionally define
    	new variable if ACCEL_COMPILER is defined.
    	* data-streamer.h (host_num_poly_int_coeffs): Declare.
    	(poly_int_read_common): New function template.
    	(bp_unpack_poly_value): Remove code for streaming and call
    	poly_int_read_common instead.
    	* lto-streamer-in.cc (lto_input_mode_table): Stream-in host
    	NUM_POLY_INT_COEFFS into host_num_poly_int_coeffs if ACCEL_COMPILER
    	is defined.
    	* lto-streamer-out.cc (lto_write_mode_table): Stream out
    	NUM_POLY_INT_COEFFS if offloading is enabled.
    	* poly-int.h (MAX_NUM_POLY_INT_COEFFS_BITS): New macro.
    	* tree-streamer-in.cc (lto_input_ts_poly_tree_pointers): Adjust
    	streaming-in of poly_int.
    
    Signed-off-by: default avatarPrathamesh Kulkarni <prathameshk@nvidia.com>
    38900247
    History
    Partially support streaming of poly_int for offloading.
    Prathamesh Kulkarni authored
    
    When offloading is enabled, the patch streams out host
    NUM_POLY_INT_COEFFS, and changes streaming in as follows:
    
    if (host_num_poly_int_coeffs <= NUM_POLY_INT_COEFFS)
    {
      for (i = 0; i < host_num_poly_int_coeffs; i++)
        poly_int.coeffs[i] = stream_in coeff;
      for (; i < NUM_POLY_INT_COEFFS; i++)
        poly_int.coeffs[i] = 0;
    }
    else
    {
      for (i = 0; i < NUM_POLY_INT_COEFFS; i++)
        poly_int.coeffs[i] = stream_in coeff;
    
      /* Ensure that degree of poly_int <= accel NUM_POLY_INT_COEFFS.  */
      for (; i < host_num_poly_int_coeffs; i++)
        {
          val = stream_in coeff;
          if (val != 0)
    	error ();
        }
    }
    
    gcc/ChangeLog:
    	PR ipa/96265
    	PR ipa/111937
    	* data-streamer-in.cc (streamer_read_poly_uint64): Remove code for
    	streaming, and call poly_int_read_common instead.
    	(streamer_read_poly_int64): Likewise.
    	* data-streamer.cc (host_num_poly_int_coeffs): Conditionally define
    	new variable if ACCEL_COMPILER is defined.
    	* data-streamer.h (host_num_poly_int_coeffs): Declare.
    	(poly_int_read_common): New function template.
    	(bp_unpack_poly_value): Remove code for streaming and call
    	poly_int_read_common instead.
    	* lto-streamer-in.cc (lto_input_mode_table): Stream-in host
    	NUM_POLY_INT_COEFFS into host_num_poly_int_coeffs if ACCEL_COMPILER
    	is defined.
    	* lto-streamer-out.cc (lto_write_mode_table): Stream out
    	NUM_POLY_INT_COEFFS if offloading is enabled.
    	* poly-int.h (MAX_NUM_POLY_INT_COEFFS_BITS): New macro.
    	* tree-streamer-in.cc (lto_input_ts_poly_tree_pointers): Adjust
    	streaming-in of poly_int.
    
    Signed-off-by: default avatarPrathamesh Kulkarni <prathameshk@nvidia.com>