From patchwork Wed Apr 12 08:37:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luc Van Oostenryck X-Patchwork-Id: 9676809 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 E06A560383 for ; Wed, 12 Apr 2017 08:38:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D41E828338 for ; Wed, 12 Apr 2017 08:38:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C793C2858A; Wed, 12 Apr 2017 08:38:01 +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_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, 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 70F1628338 for ; Wed, 12 Apr 2017 08:38:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752689AbdDLIiA (ORCPT ); Wed, 12 Apr 2017 04:38:00 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:35436 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753409AbdDLIhx (ORCPT ); Wed, 12 Apr 2017 04:37:53 -0400 Received: by mail-wr0-f193.google.com with SMTP id l44so3071985wrc.2 for ; Wed, 12 Apr 2017 01:37:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+cvbvqqtOZLYFOnvfX8LgUHT6KUf2WW9o17IdQM8zGA=; b=GkBYJoweqXvUQiltUvFE728JKv1O1JpXIVYpegxne+vu4GnMA1FIViRD4bKVUPWFtz n88422ay17FqsY3EjSrY1gXJFnigw4b9yQScfco3hqvF6rUCNe7la//ai5bqxq7ku5t5 NOnbBluE1XdMVM8NQNI4A2pGQORxjQjM3uzuVfvj1r8svAhl+Qipej4q5AzPkcxqWMKx 4IMfVo/AaKMnXAHY0kNNNi29Ly62cS45tTkplV6NqTJuHhXY3c178GTAJch7xp3XYQ7M GpU4n+4aCv8PvlZZfazjoRwrNp7Cf97ABdEMTlyuty18hZtJu7oWN/pFaokVnUIsQwf7 A4LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+cvbvqqtOZLYFOnvfX8LgUHT6KUf2WW9o17IdQM8zGA=; b=TTjG4l5IzivUCD3qxCYeX8Yn/D0rYClPqgCNAxX7p+XonqepixqHenYo2ZbqLqD+vx +q79nV47ztV9tkD/apVCLizL6VRiCDpwYLOr3fTVekYGKEY8PDQF8NEKkllNCca4tgMr lfMAUBO7YqNx2q7m4RnEOD2z2fHzjImZcWAWTzLk36iH76eAE8ZyUfoPAp96t31LRDg2 gkS8gXNi2ZtNMRb6YV1x+dbPn1ehiVRAGjCPeNixwYRXg3Yia2BQFZ5tcEETAN02qWrb HKUtD8uWhLMFhyWvySdcAtHJDzya0xE2MZNPmkGiNhaEGVvJPMfhGSTFGzU0CU4Khiv1 k0uQ== X-Gm-Message-State: AN3rC/53TEHYlbUUBWF3S3s0eyMM9f2hWRSjix3g9BiO12WqamLeZtNKwGF6EwwTS7uk6Q== X-Received: by 10.223.147.225 with SMTP id 88mr1830353wrp.146.1491986271564; Wed, 12 Apr 2017 01:37:51 -0700 (PDT) Received: from localhost.localdomain ([2a02:a03f:8b2:dc00:6c54:829e:388a:2472]) by smtp.gmail.com with ESMTPSA id j32sm18990332wre.67.2017.04.12.01.37.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Apr 2017 01:37:51 -0700 (PDT) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Christopher Li , Luc Van Oostenryck Subject: [PATCH 5/5] use -fmem-report to report allocation stats Date: Wed, 12 Apr 2017 10:37:03 +0200 Message-Id: <20170412083703.11552-6-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170412083703.11552-1-luc.vanoostenryck@gmail.com> References: <20170412083703.11552-1-luc.vanoostenryck@gmail.com> 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 Signed-off-by: Luc Van Oostenryck --- lib.h | 1 + sparse-llvm.c | 1 + sparse.1 | 4 ++++ sparse.c | 2 ++ stats.c | 6 ++++++ test-linearize.c | 2 ++ test-unssa.c | 1 + 7 files changed, 17 insertions(+) diff --git a/lib.h b/lib.h index 14cb68af0..a0066dc57 100644 --- a/lib.h +++ b/lib.h @@ -147,6 +147,7 @@ extern struct symbol_list *sparse_initialize(int argc, char **argv, struct strin extern struct symbol_list *__sparse(char *filename); extern struct symbol_list *sparse_keep_tokens(char *filename); extern struct symbol_list *sparse(char *filename); +extern void report_stats(void); static inline int symbol_list_size(struct symbol_list *list) { diff --git a/sparse-llvm.c b/sparse-llvm.c index ecc4f032f..6319c0ae9 100644 --- a/sparse-llvm.c +++ b/sparse-llvm.c @@ -1166,5 +1166,6 @@ int main(int argc, char **argv) LLVMDisposeModule(module); + report_stats(); return 0; } diff --git a/sparse.1 b/sparse.1 index 525d3ded5..d8e53ce38 100644 --- a/sparse.1 +++ b/sparse.1 @@ -351,6 +351,10 @@ Dump the IR code of a function directly after its linearization, before any simplifications is made. If the argument \fB=only\fR is also given no further processing is done on the function. . +.TP +.B \-fmem-report +Report some statistics about memory allocation used by the tool. +. .SH OTHER OPTIONS .TP .B \-ftabstop=WIDTH diff --git a/sparse.c b/sparse.c index 6b3324cfc..02ab97743 100644 --- a/sparse.c +++ b/sparse.c @@ -302,5 +302,7 @@ int main(int argc, char **argv) FOR_EACH_PTR_NOTAG(filelist, file) { check_symbols(sparse(file)); } END_FOR_EACH_PTR_NOTAG(file); + + report_stats(); return 0; } diff --git a/stats.c b/stats.c index 5f2685733..cda18fcae 100644 --- a/stats.c +++ b/stats.c @@ -54,3 +54,9 @@ void show_allocation_stats(void) show_stats(NULL, &tot); } + +void report_stats(void) +{ + if (fmem_report) + show_allocation_stats(); +} diff --git a/test-linearize.c b/test-linearize.c index dd2eaecab..fe0673bef 100644 --- a/test-linearize.c +++ b/test-linearize.c @@ -61,5 +61,7 @@ int main(int argc, char **argv) FOR_EACH_PTR_NOTAG(filelist, file) { clean_up_symbols(sparse(file)); } END_FOR_EACH_PTR_NOTAG(file); + + report_stats(); return 0; } diff --git a/test-unssa.c b/test-unssa.c index f7a5c3a18..240d99601 100644 --- a/test-unssa.c +++ b/test-unssa.c @@ -82,5 +82,6 @@ int main(int argc, char **argv) compile(sparse(file)); } END_FOR_EACH_PTR_NOTAG(file); + report_stats(); return 0; }