This is the mail archive of the gcc-patches@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: PATCH: Update classification of aggregates with __m256 ([AVX]: Update x86-64 psABI for aggregates with __m256)


On Wed, Feb 11, 2009 at 10:53 AM, Jagasia, Harsha
<harsha.jagasia@amd.com> wrote:

>>> The post merger clean up ensures that, for the processors that do not
> support the __m256 type, if
>>the size of an object is larger than two eightbytes and the first
> eightbyte is not SSE or any other
>>eightbyte is not SSEUP, it still has class MEMORY.
>>>
>>> This in turn ensures that for processors that do support the __m256
> type, if the size of an
>>object is four eightbytes and the first eightbyte is SSE and all other
> eightbytes are SSEUP, it can
>>be passed in a register."
>>
>
> One has to read much forward in the docs to figure out that nothing has
> changed for processors that do not support the __m256 type. Stating
> these points separately and in some cases leaving them to implication
> will confuse readers and its best to clarify upfront.
>

Let me get this clear. The only change you want is to state

---
\item Then a post merger cleanup is done:
  \begin{enumerate}
  \item If one of the classes is MEMORY, the whole argument is passed in memory.
  \item If the size of the aggregate exceeds two \eightbytes and the first
    \eightbyte isn't SSE or any other \eightbyte isn't SSEUP, the whole
    argument is passed in memory.
  \item If SSEUP is not preceded by SSE or SSEUP and the size of the aggregate
    does not exceed four \eightbytes, it is converted to SSE.
  \end{enumerate}
---

instead of

---
\item Then a post merger cleanup is done:
  \begin{enumerate}
  \item If one of the classes is MEMORY, the whole argument is passed in memory.
  \item If the size of the aggregate exceeds two \eightbytes and the first
    \eightbyte isn't SSE or any other \eightbyte isn't SSEUP, the whole
    argument is passed in memory.
  \item If SSEUP is not preceded by SSE or SSEUP, it is converted to SSE.
  \end{enumerate}
---

I think the size limitation here is redundant. If it isn't clear to everyone, we
can add a footnote here.


-- 
H.J.


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