From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12730 invoked by alias); 1 Nov 2012 05:03:16 -0000 Received: (qmail 12722 invoked by uid 22791); 1 Nov 2012 05:03:15 -0000 X-SWARE-Spam-Status: No, hits=-5.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-pb0-f47.google.com (HELO mail-pb0-f47.google.com) (209.85.160.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 01 Nov 2012 05:03:11 +0000 Received: by mail-pb0-f47.google.com with SMTP id ro12so1430893pbb.20 for ; Wed, 31 Oct 2012 22:03:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :x-system-of-record:x-gm-message-state; bh=5CPvvPCiOn5qwnIojkSrtso2B43VDrgeRpEjHZOWCyE=; b=nC+NH2lCbHYtwnjFAeGGLAbCIa13/q4TXjc+dnZwd3oiMb+HYOL0JNf5PFre1p/D4F qMgq9LIQlp8gKTva+9C7obHHsDR4T56GjI/CJS3Jgo9nOHfYXe4fiQTcoklCC1QzMvST Z3G2lTBuUDRkak2FYo2p6R42jeJgaocsWYyMy5nD19arDt0G2cv0HxwkNKQSLLvJtWpv QO3HLkQ91zlqib/7uYKL/m2pl1CnIxlUz/ax4CoSlKEsu83HIjj3qYmCJY8uFY2eqG3e 69dMnJi7Xtor12+7Tv1UnodTwqHuiTVTUSrFtWKBJLc/SNOmYjPb6xIVlyHtunvMzSRj WS6g== MIME-Version: 1.0 Received: by 10.68.241.133 with SMTP id wi5mr118763981pbc.48.1351746191065; Wed, 31 Oct 2012 22:03:11 -0700 (PDT) Received: by 10.68.49.232 with HTTP; Wed, 31 Oct 2012 22:03:10 -0700 (PDT) Date: Thu, 01 Nov 2012 05:03:00 -0000 Message-ID: Subject: [PATCH] Reset source location for instructions moved out of its original residing basic block From: Dehao Chen To: GCC Patches Content-Type: multipart/mixed; boundary=047d7b339cd58b823604cd67ef26 X-System-Of-Record: true X-Gm-Message-State: ALoCoQmbNWtFe8qh63o0M+FqfzQvK7TQ8qN2xOllF625JedyYsYUULpe2jlPq02qStTCzQNRS91bfSMx1D0+jKWjrtspOjvrRzyKkFMcLzDQkfivb8LRDZQNX4YTph0zcDspXUqn0yXIrEwL2yPP8T9RF6Hd5hWTAgQlUNNuSnOBqeVdWwtv11LLuZ/oWB5XTPB5xWTfYL5T X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2012-11/txt/msg00009.txt.bz2 --047d7b339cd58b823604cd67ef26 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1006 Hi, When debugging optimized code, it is always confusing when gdb jumped to a place that has never been executed. This is because compiler performs some aggressive code motion that moves an instruction outside of its original residing basic block. This patch tries to fix this problem by resetting the source location when moving instructions to another BB. This can greatly improve the debuggability of optimized code. For the attached unittest. Without the patch, the debugger will always jump into line 14 even when the branch at line 13 is not taken. With the patch, the problem is fixed. Bootstrapped and passed gcc regression test. Is it okay for trunk? Thanks, Dehao gcc/ChangeLog: 2012-10-31 Dehao Chen * emit-rtl.c (reorder_insns): Reset the source location for instructions moved out of its original residing basic block. gcc/testsuite/ChangeLog: 2012-10-31 Dehao Chen * gcc.dg/debug/dwarf2/code-motion.c: New testcase. --047d7b339cd58b823604cd67ef26 Content-Type: application/octet-stream; name="code-motion.patch" Content-Disposition: attachment; filename="code-motion.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h8zeps660 Content-length: 1672 SW5kZXg6IGdjYy9lbWl0LXJ0bC5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIGdjYy9lbWl0LXJ0bC5jCShyZXZpc2lvbiAxOTMwNTYpCisrKyBnY2Mv ZW1pdC1ydGwuYwkod29ya2luZyBjb3B5KQpAQCAtNDExMSw4ICs0MTExLDEy IEBAIHJlb3JkZXJfaW5zbnMgKHJ0eCBmcm9tLCBydHggdG8sIHJ0eCBhZnRl cikKIAlCQl9FTkQgKGJiKSA9IHRvOwogCiAgICAgICBmb3IgKHggPSBmcm9t OyB4ICE9IE5FWFRfSU5TTiAodG8pOyB4ID0gTkVYVF9JTlNOICh4KSkKLQlp ZiAoIUJBUlJJRVJfUCAoeCkpCi0JICBkZl9pbnNuX2NoYW5nZV9iYiAoeCwg YmIpOworCXsKKwkgIGlmICghQkFSUklFUl9QICh4KSkKKwkgICAgZGZfaW5z bl9jaGFuZ2VfYmIgKHgsIGJiKTsKKwkgIGlmIChHRVRfQ09ERSAoYWZ0ZXIp ID09IElOU04gJiYgR0VUX0NPREUgKHgpID09IElOU04pCisJICAgIElOU05f TE9DQVRJT04gKHgpID0gSU5TTl9MT0NBVElPTiAoYWZ0ZXIpOworCX0KICAg ICB9CiB9CiAKSW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL2R3 YXJmMi9jb2RlLW1vdGlvbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL2R3YXJmMi9jb2RlLW1vdGlv bi5jCShyZXZpc2lvbiAwKQorKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZGVi dWcvZHdhcmYyL2NvZGUtbW90aW9uLmMJKHJldmlzaW9uIDApCkBAIC0wLDAg KzEsMjAgQEAKKy8vIFRoaXMgdGVzdCBtYWtlcyBzdXJlIGNvZGUgbW90aW9u IHdpbGwgbm90IHBvbGx1dGUgZGVidWcgaW5mby4KKy8vIHsgZGctZG8gY29t cGlsZSB7IHRhcmdldCB7IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9IH0KKy8v IHsgZGctb3B0aW9ucyAiLU8yIC1nIC1kQSIgfQorZXh0ZXJuIGludCBiYXIo aW50KTsKKworaW50IGZvbyhpbnQgKmEsIGludCB4KQoreworICBpbnQgeSA9 IDU7CisgIGludCByZXQgPSAxMDsKKworICBhWzBdID0gcmV0ICogeTsKKwor ICBpZiAoeCA+IDUpCisgICAgeSA9IGFbYVszXV07CisgIHkgPSB5ICogMiAr IGFbM107CisgIHJldCArPSBiYXIoeSk7CisKKyAgcmV0dXJuIHJldDsKK30K Ky8vIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiY29kZS1t b3Rpb24uYzoxNCIgMX0gfQo= --047d7b339cd58b823604cd67ef26--