mboehme added a comment.

In D158977#4623402 <https://reviews.llvm.org/D158977#4623402>, @xazax.hun wrote:

> Thanks! Sometimes I am wondering whether we actually need a full map for 
> PRValues. E.g., once we processed a `MaterializeTemporaryExpr`, we now have a 
> location for the value, and it feels like we represent the same thing twice, 
> once in `ExprToLoc + LocToVal` and once in `ExprToVal`. It is probably not 
> too bad and might be extra work to clean this up.

Yes, I think it's probably not worth it. (And note that the `Expr`s in question 
are different: In the `ExprToVal`, we map the prvalue expression to a value, 
whereas in `ExprToLoc`, we map the `MaterializeTemporaryExpr` to a location.)

I'd say this is just one example of the more general case when a prvalue is 
consumed by some other expression. For example, when two prvalue integer 
operands are consumed by a `+` `BinaryOperator`, we could also say that the 
entries in `ExprToVal` for the operands are now superfluous and could be 
removed -- but we still keep them around. They might be superfluous, but there 
aren't typically enough of them to hurt performance (I think?). And they may be 
useful for debugging.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158977/new/

https://reviews.llvm.org/D158977

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to