On Tue, May 6, 2008 at 1:47 PM, Alexey Dejneka <adejneka@...> wrote:
> > +(defun lvar-real-dx-lvar (lvar)
> > + ;; FIXME/KLUDGE: TRULY-THE introduces a cast which inhibits
> > + ;; DX allocation -- look through casts. Punt on hairier cases
> > + ;; involving multiple uses, etc, for now.
> > + (let ((uses (lvar-uses lvar)))
> > + (if (cast-p uses)
> > + (lvar-real-dx-lvar (cast-value uses))
> > + lvar)))
> It seems to be the same as PRINCIPAL-LVAR-USE.
I was wondering if it is possible to have CAST-VALUE with uses in a
different component from the component where the cast is.
That is, does
(let* ((node (node-component cast))
(uses (lvar-uses (cast-value cast))))
(every (lambda (use) (eq (node-component use) node))
(if (listp uses) uses (list uses))))
Could you comment on that, or perhaps even better, point towards the
key places in the code to understand what the invirants involved are?