From patchwork Thu Aug 10 03:30:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christopher Li X-Patchwork-Id: 9892707 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 93A2160236 for ; Thu, 10 Aug 2017 03:31:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9691628AAF for ; Thu, 10 Aug 2017 03:31:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8B9E828AB9; Thu, 10 Aug 2017 03:31:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AD0812891F for ; Thu, 10 Aug 2017 03:31:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752169AbdHJDau (ORCPT ); Wed, 9 Aug 2017 23:30:50 -0400 Received: from mail-yw0-f196.google.com ([209.85.161.196]:33266 "EHLO mail-yw0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752095AbdHJDau (ORCPT ); Wed, 9 Aug 2017 23:30:50 -0400 Received: by mail-yw0-f196.google.com with SMTP id u207so5420621ywc.0 for ; Wed, 09 Aug 2017 20:30:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:from:date:message-id:subject:to:cc; bh=MgQUAxMm4ZeQQGXb9klhmHatJfuD6We25jQDv4hvQ4Q=; b=KuLFu+3wJHNpfWvmllwi8NSu7yGUCxqAtV1GJPbfBi3jBBIK/f5Hbspuk5JZsdZ97H 4yZv6UJLleC8SUajFWD6u9XiD88/SVpcZOS75casvRgSTrJdETparWTZlKe5ff6+vwkA 6Tw6sB/s6FQXGs+jUMN/S+FNrvp4DRM87PbpuW6vrQTkqtFHao40dxcxmFxzRsdHCAFu VcfOkdM9R3URIY4WWTd0UDqOewibQaILWjU6HMkFMlYVRHpUEPjcqcetrowMmYoP9pyR wrV0FzCdt/ptz9gOc2AT2MuMLCuFgUEpTowyXZqfEwf8lQWl0JdWUW4dyitaeTYpMIU8 GVig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to:cc; bh=MgQUAxMm4ZeQQGXb9klhmHatJfuD6We25jQDv4hvQ4Q=; b=ZeWcsa22YxBi/Qr1gIE6jgF2/RbNKnjKIlhsrT8ZlcPBvXjN2MwkBuKuJyu+3YgGa7 oDiQOl3FZNGjZQqBgk/EHIFp0L/wN21O6Dz4baQmw336s6sP/JClUOeqq7qWB5SyWpqM aj9SmqZ0QGgn8fdAl/G9dTeWGkubt3WDDnXDEIvNYpC/jXHH+uUxH9gv8DbRC/rM2k8z LjqKUFO+49zGZVJ9zUKIN3b//7JrIW/xoKsqM6mSz2ZHyIVzl5cfTNQY/MdfuXv0YRTD KoH+4u2LFwM1UkFNH1SN5IqIBIYNvyVN6+h49GnvaUTn64GDxGKG0D8gQrpwDJSDRDIw hHTQ== X-Gm-Message-State: AHYfb5hnAg0S34fY47IH6x64pXPg8SPnYGJ+kH8AQbuKDH2mZLVtXHwK suPYUxgcMAzmuRVBC+ahgZ2BxGxpm+IH X-Received: by 10.37.89.85 with SMTP id n82mr8531261ybb.112.1502335849113; Wed, 09 Aug 2017 20:30:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.129.68.39 with HTTP; Wed, 9 Aug 2017 20:30:48 -0700 (PDT) From: Christopher Li Date: Wed, 9 Aug 2017 23:30:48 -0400 X-Google-Sender-Auth: jzZ92Q9MKiteNDEeXWIDKmE1XWU Message-ID: Subject: [PATCH 2/2] Documents: project ideas To: Linux-Sparse Cc: Luc Van Oostenryck , Dibyendu Majumdar Sender: linux-sparse-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sparse@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Adding project idea to improve sparse. Signed-off-by: Christopher Li --- Documentation/project-ideas.md | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Documentation/project-ideas.md +* emit x86/arm machine level code + diff --git a/Documentation/project-ideas.md b/Documentation/project-ideas.md new file mode 100644 index 0000000..9adce20 --- /dev/null +++ b/Documentation/project-ideas.md @@ -0,0 +1,52 @@ +Why hacking on sparse +===================== + +1. sparse is small. + The full project compiles in less than * seconds on old and not performing laptop. +2. sparse is fast. + Typically, sparse can check on C file ** of time it take for gcc to generate object files. +3. sparse can digest the full kernel source file. + With sparse-llvm, sparse use llvm as back end to emit real machine code. + +New developer hacking on sparse +============================== + + +* Sparse all sparse warning message should include the option how + to disable it. + e.g. "pre-process.c:20*:28: warning: Variable length array is used." + should be something like + "pre-process.c:20*:28: warning: Variable length array is +used. (-Wno-vla)" +* extend test-inspect to inspect more AST fields. +* Addd inspect to inspect instructions. +* adding architecture handling in sparse similar to cgcc +* parallel processing of test-suit +* Howto: fix the kernel rcu related checker warnings +* option to disable AST level inline. +* debug: debug version of sparse do all the verification double +* testsuit: verify and compare IR (suggested by Dibyendu Majumdar) + +For experienced developers +========================== + +* merge C type on incremental declare of C type and function prototype. +* move attribute out of ctype to allow easier to add new attribute. +* serialize, general object walking driven by data structures. +* serialize, write sparse byte code into file +* serialize, load sparse byte code from file. +* symbol index/linker, know which symbol in which byte code file. +* inline function in instruction level +* cross function checking +* checker error output database +* debug: optimization step by step log +* debug: fancy animation of CFG +* phi node location (Luc has patch) +* revisit crazy programmer warning, invalid SSA form. +* ptrlist, looping while modify inside the loop. +* dead code eliminate using ssa +* constant propagation using ssa. +* x86/arm back end instruction set define +* register allocation.