This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question on aggregates and GIMPLE


    If we decide to support matrix operations for the sake of the
    vectorizer, we will need to evaluate what that means in terms of
    temporaries.  

I'm not talking about matrix operations, but about copying and comparing
large objects.

I should say that I've made a little bit of progress in the last few hours
of work but now have to leave for a flight.

> I hope this is readable.  The only executable line becomes:
> 
> 	<MODIFY_EXPR <INDIRECT_EXPR <PARM_DECL pt2>>
> 		     <VIEW_CONVERT_EXPR <INDIRECT_REF <PARM_DECL pt1>>>>

    Really?  VIEW_CONVERT_EXPR <> is a valid GIMPLE RHS.  Show me the
    gimplified form of this function?

It blows up making it.  Yes, VIEW_CONVERT_EXPR is a valid RHS, but its
operand must be a simple variable and is an INDIRECT_REF, so that's
where it tries to make the copy.

I "fixed" this by gimplifying VIEW_CONVERT expr that's from and to
BLKmode into the corresponding pointer punning.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]