From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15372 invoked by alias); 12 Feb 2015 10:10:01 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 15357 invoked by uid 89); 12 Feb 2015 10:10:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.6 required=5.0 tests=AWL,BAYES_40,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: na01-bl2-obe.outbound.protection.outlook.com Received: from mail-bl2on0092.outbound.protection.outlook.com (HELO na01-bl2-obe.outbound.protection.outlook.com) (65.55.169.92) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA256 encrypted) ESMTPS; Thu, 12 Feb 2015 10:09:59 +0000 Received: from BL2FFO11HUB059.protection.gbl (10.173.161.159) by BL2FFO11HUB003.protection.gbl (10.173.161.21) with Microsoft SMTP Server (TLS) id 15.1.87.10; Thu, 12 Feb 2015 10:09:56 +0000 Received: from BL2FFO11FD045.protection.gbl (10.173.160.31) by BL2FFO11HUB059.protection.gbl (10.173.161.159) with Microsoft SMTP Server (TLS) id 15.1.87.10; Thu, 12 Feb 2015 10:09:55 +0000 Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BL2FFO11FD045.mail.protection.outlook.com (10.173.161.207) with Microsoft SMTP Server (TLS) id 15.1.87.10 via Frontend Transport; Thu, 12 Feb 2015 10:09:54 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1YLqev-00014w-KE for gcc@gcc.gnu.org; Thu, 12 Feb 2015 02:06:09 -0800 From: Ajit Kumar Agarwal To: "gcc@gcc.gnu.org" CC: Vinod Kathail , Shail Aditya Gupta , Vidhumouli Hunsigida , "Nagaraju Mekala" Subject: Unrolling factor heuristics for Loop Unrolling Date: Thu, 12 Feb 2015 10:10:00 -0000 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-RCIS-Action: ALLOW Message-ID: X-EOPAttributedMessage: 0 Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=ajit.kumar.agarwal@xilinx.com; X-Forefront-Antispam-Report: CIP:149.199.60.83;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(438002)(53754006)(97756001)(2656002)(104016003)(86362001)(87936001)(6806004)(102836002)(46406003)(92726002)(110136001)(74316001)(47776003)(50466002)(23726002)(450100001)(62966003)(108616004)(92566002)(106466001)(229853001)(50986999)(53416004)(2351001)(46102003)(77156002)(2501002)(54356999)(107986001)(24736002);DIR:OUT;SFP:1101;SCL:1;SRVR:BL2FFO11HUB059;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;MLV:sfv;LANG:en; X-Microsoft-Antispam: UriScan:;UriScan:; X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB059; X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004);SRVR:BL2FFO11HUB059; X-Forefront-PRVS: 0485417665 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB059; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2015 10:09:54.8966 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2FFO11HUB059 X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB003; X-OriginatorOrg: xilinx.com X-SW-Source: 2015-02/txt/msg00089.txt.bz2 Hello All: The Loop unrolling without good unrolling factor heuristics becomes the per= formance bottleneck. The Unrolling factor heuristics based on minimum=20 Initiation interval is quite useful with respect to better ILP. The minimu= m Initiation interval based on recurrence and resource calculation on Data= =20 Dependency Graph along with the register pressure can be used to add the u= nrolling factor heuristics. To achieve better ILP with the given schedule, the Loops unrolling and the scheduling are inter dependent and has been wid= ely used in Software Pipelining Literature along with the more granular List and Trace Scheduling. The recurrence calculation based on the Loop carried dependencies and the r= esource allocation based on the simultaneous access of the resources=20 Using the reservation table will give good heuristics with respect to calcu= lation of unrolling factor. This has been taken care in the MII interval Calculation. Along with MII, the register pressure should also be considered in the cal= culation of heuristics for unrolling factor. This enable better heuristics with respect to unrolling factor. The main ad= vantage of the above heuristics for unrolling factor is that it can be=20 Implemented in the Code generation Level. Currently Loop unrolling is done = much before the code generation. Let's go by the current implementation Of doing Loop unrolling optimization at the Loop optimizer level and unroll= ing happens. After the Current unrolling at the optimizer level the above h= euristics Can be used to do the unrolling at the Code generation Level with the accu= rate Register pressure calculation as done in the register allocator and the Unrolling is done at the code generation level. This looks feasible solutio= n which I am going to propose for the above unrolling heuristics. This enables the Loop unrolling done at the Optimizer Level + at the Code= Generation Level. This double level of Loop unrolling is quite useful. This will overcome the shortcomings of the Loop unrolling at the optimizer = level. The SPEC benchmarks are the better candidates for the above heuristics inst= ead of Mibench and EEMBC. Thanks & Regards Ajit