This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Multi-version IF-THEN-ELSE conditional
- From: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>
- To: "law at redhat dot com" <law at redhat dot com>, Richard Biener <richard dot guenther at gmail 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: Sat, 27 Jun 2015 12:10:19 +0000
- Subject: Multi-version IF-THEN-ELSE conditional
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; gcc.gnu.org; dkim=none (message not signed) header.d=none;
All:
The presence of aliases disables many optimizations like CCP(conditional constant propagation) , PRE(Partial Redundancy Elimination),
Scalar Replacements for conditional IF-THEN-ELSE. The presence of aliasing also disables the IF-conversion.
I am proposing the Multi-version IF-THEN-ELSE where the different version of the IF-THEN-ELSE is one without aliasing and other
versions with the aliasing. Thus converting the different Multi-version IF-THEN-ELSE enables the CCP, PRE, Scalar replacements
and IF-conversions for the version of the IF-THEN-ELSE that does not have aliasing on the pointer variables and the versions that
has alias information will not be affected with such optimizations.
I don't have examples on hand currently but I am working on currently to provide the examples.
Thoughts?
Thanks & Regards
Ajit