More SSE infrastructure

Richard Henderson
Mon Jul 3 14:02:00 GMT 2000

[ For the GDB list, we're discussing what needs to be emitted for
  debug information for 128-bit integers used with SSE.

  Note that this is not the same as when a user has declared a proper
  128-bit vector type, which is given in the debugging information as
  a struct, but rather to the Intel API defined __m128, which does not
  define the shape of the vector (float[4], int[4], short[8], ...) and
  so is represented as a plain int.  ]

On Mon, Jul 03, 2000 at 09:14:52PM +0100, Bernd Schmidt wrote:
> On Mon, 3 Jul 2000, Richard Henderson wrote:
> > On Mon, Jul 03, 2000 at 07:08:34PM +0100, Bernd Schmidt wrote:
> > > ... the only place in the compiler I've found so far that relies
> > > on it is debugging output (where TImode constants are used for
> > > TYPE_{MIN,MAX}_VALUE of 128 bit integers.
> > 
> > I wonder if we can just bail on that?
> Possibly.  I don't know for what the debugger could use this information.

Neither do I.  It seems relatively certain that the debugger isn't going
to allow us to evaluate 128-bit int expressions; what other use of the
bounds of the type I don't know.  Why it would even need to be told the
bounds, given the size of the type and its signedness I don't know. 
(Possibly to represent pascal-like integer subranges?)

> If you think that's OK, we could leave out that part for now.

I don't think we can do nothing right now.  We need to come to agreement
with the gdb folks what would be acceptible. 

If we need to emit *something*, it would be possible for us to put
code in at this point to recognize that TYPE_{SIZE,PRECISION} is out
of range for what an INTEGER_CST could represent, and emit the max
bounds by hand, in octal, based on the known size of the type.


PS: Oh, you'll have to watch type_for_mode, which does 

	  if (mode == TYPE_MODE (intTI_type_node))

and possibly a few other places in the compiler.  What I'd like you
to do while we're sorting out the debugging thing is to hack the debug
code to not crash (or just use -g0) and see where else you run into
problems compiling SSE code with HOST_BITS_PER_WIDE_INT=32.  Because
you'll probably need to have TYPE_{MIN,MAX}_VALUE=NULL, which could
well give fold-const (among other places) indigestion.

More information about the Gdb mailing list