From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 767 invoked by alias); 2 May 2014 16:42:34 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 729 invoked by uid 48); 2 May 2014 16:42:31 -0000 From: "ktietz at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/59429] Missed optimization opportunity in qsort-style comparison functions Date: Fri, 02 May 2014 16:42:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: rtl-optimization X-Bugzilla-Version: 4.8.1 X-Bugzilla-Keywords: X-Bugzilla-Severity: minor X-Bugzilla-Who: ktietz at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-05/txt/msg00086.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59429 --- Comment #11 from Kai Tietz --- sure, I just shown the transformation for doing the sorting. After prioritizing the order we should transform back to initial condition and just changing comparison code plus the edges. To handle this we could use a table describing transformation rules. So we don't need to calculate anything. We have here one special-case to handle: '(a cmp1 b ? x : (a eq-neq b))' as this would be in the long form '(a cmp1 b ? (a eq-neq b ? 1 : 0))'