From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luc Van Oostenryck Subject: Re: [GIT PULL] llvm fixes Date: Sun, 12 Nov 2017 06:05:15 +0100 Message-ID: References: <20170918095135.12066-1-luc.vanoostenryck@gmail.com> <20171105171013.mktkihyuuagqthaq@ltop.local> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Return-path: Received: from mail-it0-f46.google.com ([209.85.214.46]:52204 "EHLO mail-it0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750765AbdKLFFQ (ORCPT ); Sun, 12 Nov 2017 00:05:16 -0500 Received: by mail-it0-f46.google.com with SMTP id x28so235275ita.0 for ; Sat, 11 Nov 2017 21:05:16 -0800 (PST) In-Reply-To: Sender: linux-sparse-owner@vger.kernel.org List-Id: linux-sparse@vger.kernel.org To: Christopher Li Cc: Linux-Sparse On Sun, Nov 12, 2017 at 2:04 AM, Christopher Li 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 >>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