On Sun, Nov 12, 2017 at 2:04 AM, Christopher Li <sparse@xxxxxxxxxxx> wrote: > OK, this is the most difficult review for me to write, the OP_PUSH patch: > I have think this long and hard. > >>commit 92fed40628f932a20a6cc95a67e4e5b03d280757 >>Author: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> >>Date: Fri Mar 17 11:49:42 2017 +0100 >> >> give function's arguments a type via OP_PUSH >> >> The linearized code, sparse's IR, have no use of C's complex type >> system. Those types are checked in previous phases and the pseudos >> doesn't a type directly attached to them as all needed type info >> are now conveyed by the instructions (like (register) size, >> signedness (OP_DIVU vs OP_DIVS), ...). >> >> In particular, PSEUDO_VAL (used for integer and address constants) >> are completely typeless. > > I think the PSEUDO_VAL being typeless is the problem here. And it has already been explained to you why they are typeless and why it's fine. > > OP_PUSH: > - break sparse IR compatibility. What compatibility are you talking about? > > So far I see PSEUDO_VAL with size has advantage over > OP_PUSH. If I am wrong, please correct me, I am listening. The OP_PUSH solution has at least the advantage to work, to be integrated with all the other IR generation fixes and to be tested. -- Luc -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html