From patchwork Thu Nov 21 08:21:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Biener X-Patchwork-Id: 1198815 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-514280-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="VZi1W5di"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47JXZn1nHZz9s7T for ; Thu, 21 Nov 2019 19:21:21 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; q=dns; s=default; b=HQiM4y24cD/hCnGbW8toddpAMjA0k/6B/o6ObCBGUIRYnysJPe jhabS8XYq61huQVMGo3Gq6yCnnoyC/iXSYM0SdqC4I+LEuFLFZ+7wa2GCScgdPXU EJ92dqvkDjiSxLqoSrKHqyG2qgM3P0MyEwZhX7FG4GRQrT9CSBd1v9Tn0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; s= default; bh=WZqtSWnpdQ9coyAxn+cvnJVjuss=; b=VZi1W5divv8txU+U2xiQ upILZ77nxzSxlibUEbmwZiPnAS/hxb6zQIO7ueMxTEMiTqcsGrtueFwHakQQsHF0 RSPwCm9ZR5ZOsMGhAiR6emSYrbLQ0ICSHdQY8QIo7k1kQqRzT0n4QQBtv/JU9o8z LGOjiBKoH6EUIvoR1uHmyK8= Received: (qmail 42756 invoked by alias); 21 Nov 2019 08:21:14 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 42748 invoked by uid 89); 21 Nov 2019 08:21:14 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-10.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.1 spammy=*insn X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 21 Nov 2019 08:21:13 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 42057AF21; Thu, 21 Nov 2019 08:21:11 +0000 (UTC) Date: Thu, 21 Nov 2019 09:21:11 +0100 (CET) From: Richard Biener To: gcc-patches@gcc.gnu.org cc: vmakarov@redhat.com Subject: [PATCH] Use alloc-pool for lra_insn_recog_data Message-ID: User-Agent: Alpine 2.21 (LSU 202 2017-01-01) MIME-Version: 1.0 This eliminates one of the top callers for malloc when building tramp3d. We're using alloc-pools for other structures already so it looks somewhat obvious to also do for lra_insn_recog_data. Bootstrapped / tested on x86_64-unknown-linux-gnu. OK? Thanks, Richard. 2019-11-21 Richard Biener * lra.c (lra_insn_recog_data_pool): New. (free_insn_recog_data): Adjust. (finish_insn_recog_data): Release lra_insn_recog_data_pool. (lra_set_insn_recog_data): Allocate from lra_insn_recog_data_pool. Index: gcc/lra.c =================================================================== --- gcc/lra.c (revision 278496) +++ gcc/lra.c (working copy) @@ -714,6 +714,10 @@ int lra_insn_recog_data_len; /* Map INSN_UID -> the insn recog data (NULL if unknown). */ lra_insn_recog_data_t *lra_insn_recog_data; +/* Alloc pool we allocate entries for lra_insn_recog_data from. */ +static object_allocator + lra_insn_recog_data_pool ("insn recog data pool"); + /* Initialize LRA data about insns. */ static void init_insn_recog_data (void) @@ -759,7 +763,7 @@ free_insn_recog_data (lra_insn_recog_dat } free_insn_regs (data->regs); data->regs = NULL; - free (data); + lra_insn_recog_data_pool.remove (data); } /* Pools for copies. */ @@ -778,6 +782,7 @@ finish_insn_recog_data (void) finish_insn_regs (); lra_copy_pool.release (); lra_insn_reg_pool.release (); + lra_insn_recog_data_pool.release (); free (lra_insn_recog_data); } @@ -952,7 +957,7 @@ lra_set_insn_recog_data (rtx_insn *insn) /* It might be a new simple insn which is not recognized yet. */ INSN_CODE (insn) = icode = recog_memoized (insn); } - data = XNEW (class lra_insn_recog_data); + data = lra_insn_recog_data_pool.allocate (); lra_insn_recog_data[uid] = data; data->insn = insn; data->used_insn_alternative = LRA_UNKNOWN_ALT;