This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Proposal for path splitting for reduction in register pressure for Loops.
- From: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>
- To: "vmakarov at redhat dot com" <vmakarov at redhat dot com>, Jeff Law <law at redhat dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Cc: Vinod Kathail <vinodk at xilinx dot com>, Shail Aditya Gupta <shailadi at xilinx dot com>, Vidhumouli Hunsigida <vidhum at xilinx dot com>, "Nagaraju Mekala" <nmekala at xilinx dot com>
- Date: Sun, 8 Mar 2015 14:39:08 +0000
- Subject: Proposal for path splitting for reduction in register pressure for Loops.
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 149.199.60.100) smtp dot mailfrom=ajit dot kumar dot agarwal at xilinx dot com; gcc.gnu.org; dkim=none (message not signed) header.d=none;
Hello All:
The path splitting that replicates the code for better Data flow Analysis available. One of the properties
of path splitting removes the joining nodes for the forked path like IF-THEN-ELSE and the Loops.
The removal of joining nodes makes the path splitted into two independent paths.
The increase in register Pressures for the loops are the performance bottleneck and sometimes
lead to spill code in loops.
The removal of joining nodes like loops and IF-THEN-ELSE makes the target independent optimization like
CSE and Partial redundancy Elimination effective. Along with ease of these optimization the path splitting
reduces the registers because Of the Liveness wont intersect because of independent splitted path. The
ease of less intersection of liveness Reduces the register pressure for the Loops, thus better register
allocation and less spilling code for Loops.
The heuristics used in IRA code for register pressure will have better impact on the splitted path and thus
optimized code.
Thoughts Please?
Thanks & Regards
Ajit