From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19789 invoked by alias); 15 Oct 2015 19:31:01 -0000 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 Received: (qmail 19775 invoked by uid 89); 15 Oct 2015 19:31:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.4 required=5.0 tests=AWL,BAYES_50,FREEMAIL_FROM,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-oi0-f54.google.com Received: from mail-oi0-f54.google.com (HELO mail-oi0-f54.google.com) (209.85.218.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 15 Oct 2015 19:30:59 +0000 Received: by oiar126 with SMTP id r126so52110518oia.0 for ; Thu, 15 Oct 2015 12:30:57 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.202.73.66 with SMTP id w63mr6629550oia.94.1444937457090; Thu, 15 Oct 2015 12:30:57 -0700 (PDT) Received: by 10.60.138.6 with HTTP; Thu, 15 Oct 2015 12:30:56 -0700 (PDT) In-Reply-To: References: Date: Thu, 15 Oct 2015 19:31:00 -0000 Message-ID: Subject: Re: [PATCH] Fix pr67963 From: Uros Bizjak To: "H.J. Lu" Cc: Yulia Koval , GCC Patches Content-Type: multipart/mixed; boundary=001a113db644da8ad2052229b7db X-SW-Source: 2015-10/txt/msg01513.txt.bz2 --001a113db644da8ad2052229b7db Content-Type: text/plain; charset=UTF-8 Content-length: 3059 On Thu, Oct 15, 2015 at 9:21 PM, H.J. Lu wrote: > On Thu, Oct 15, 2015 at 12:16 PM, Uros Bizjak wrote: >> On Thu, Oct 15, 2015 at 6:59 PM, H.J. Lu wrote: >>> On Thu, Oct 15, 2015 at 9:57 AM, Uros Bizjak wrote: >>>> On Thu, Oct 15, 2015 at 1:45 PM, Uros Bizjak wrote: >>>>> On Wed, Oct 14, 2015 at 5:08 PM, Yulia Koval wrote: >>>>>> Hi, >>>>>> >>>>>> This patch fixes the issue: >>>>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67963 >>>>>> >>>>>> gcc/config/i386/i386.c (ix86_option_override_internal) Disable >>>>>> 80387 mask if lakemont target is set. >>>>>> >>>>>> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c >>>>>> index 4c25c9e..db722aa 100644 >>>>>> --- a/gcc/config/i386/i386.c >>>>>> +++ b/gcc/config/i386/i386.c >>>>>> @@ -4943,6 +4943,12 @@ ix86_option_override_internal (bool main_args_p, >>>>>> break; >>>>>> } >>>>>> >>>>>> + if (!strcmp (opts->x_ix86_arch_string, "lakemont")) >>>>>> + { >>>>>> + opts->x_target_flags &= ~MASK_80387; >>>>>> + opts_set->x_target_flags |= MASK_80387; >>>>>> + } >>>>>> + >>>>>> if (TARGET_X32 && (opts->x_ix86_isa_flags & OPTION_MASK_ISA_MPX)) >>>>>> error ("Intel MPX does not support x32"); >>>>>> >>>>>> Ok for trunk? >>>>> >>>>> The problem is in TARGET_SUBTARGET{32,64}_DEFAULT, that will override >>>>> set target flags, unless relevant bit of opts_set->x_target_flags is >>>>> set. However, we can't just set x_target_flag, because >>>>> __attribute__((target("arch=...."))) won't work. Unfortunately, my >>>>> proposed patch in the PR violates this last requirement. >>>>> >>>>> This can probably be solved by adding local "x_target_flags_mask" and >>>>> use it after TARGET_SUBTARGET processing. >>>> >>>> Attached is a final patch I plan to commit to mainline soon. >>>> >>>> 2015-10-15 Uros Bizjak >>>> >>>> PR target/67963 >>>> * config/i386/i386.c (ix86_option_override_internal): Add PTA_NO_80387. >>>> Add PTA_NO_80387 to "lakemont". Disable MASK_80387 target flag >>>> after target flags were initialized to target defaults. >>>> >>>> testsuite/ChangeLog: >>>> >>>> 2015-10-15 Uros Bizjak >>>> >>>> PR target/67963 >>>> * gcc.target/i386/pr67963-1.c: New test. >>>> * gcc.target/i386/pr67963-2.c: Ditto. >>>> >>>> Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. >>>> >>>> Uros. >>> >>> Do we support -O2 -march=lakemont with >>> >>> __attribute__((target("arch=silvermont"))) >> >> Hm, no. >> > > Do we issue an error or silently ignore > __attribute__((target("arch=silvermont")))? > If we don't support it, should we support > > -O2 -march=silvermont > > __attribute__((target("arch=lakemont"))) Actually, we have to re-initialize: opts->x_target_flags |= (TARGET_DEFAULT | TARGET_SUBTARGET_DEFAULT) & ~opts_set->x_target_flags; just before TARGET_SUBTARGET{32,64}_DEFAULT processing, and it will work. Uros. --001a113db644da8ad2052229b7db Content-Type: text/plain; charset=US-ASCII; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ifsmga8y0 Content-length: 4612 SW5kZXg6IGNvbmZpZy9pMzg2L2kzODYuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBjb25maWcvaTM4Ni9pMzg2LmMJKHJldmlzaW9uIDIyODg0MykK KysrIGNvbmZpZy9pMzg2L2kzODYuYwkod29ya2luZyBjb3B5KQpAQCAtNDI0 Nyw2ICs0MjQ3LDcgQEAgaXg4Nl9vcHRpb25fb3ZlcnJpZGVfaW50ZXJuYWwg KGJvb2wgbWFpbl9hcmdzX3AsCiB7CiAgIGludCBpOwogICB1bnNpZ25lZCBp bnQgaXg4Nl9hcmNoX21hc2s7CisgIGludCBpeDg2X3RhcmdldF9mbGFnc19t YXNrID0gMDsKICAgY29uc3QgYm9vbCBpeDg2X3R1bmVfc3BlY2lmaWVkID0g KG9wdHMtPnhfaXg4Nl90dW5lX3N0cmluZyAhPSBOVUxMKTsKICAgY29uc3Qg Y2hhciAqcHJlZml4OwogICBjb25zdCBjaGFyICpzdWZmaXg7CkBAIC00MzEx LDYgKzQzMTIsNyBAQCBpeDg2X29wdGlvbl9vdmVycmlkZV9pbnRlcm5hbCAo Ym9vbCBtYWluX2FyZ3NfcCwKICNkZWZpbmUgUFRBX1BDT01NSVQJCShIT1NU X1dJREVfSU5UXzEgPDwgNTYpCiAjZGVmaW5lIFBUQV9NV0FJVFgJCShIT1NU X1dJREVfSU5UXzEgPDwgNTcpCiAjZGVmaW5lIFBUQV9DTFpFUk8JCShIT1NU X1dJREVfSU5UXzEgPDwgNTgpCisjZGVmaW5lIFBUQV9OT184MDM4NwkJKEhP U1RfV0lERV9JTlRfMSA8PCA1OSkKIAogI2RlZmluZSBQVEFfQ09SRTIgXAog ICAoUFRBXzY0QklUIHwgUFRBX01NWCB8IFBUQV9TU0UgfCBQVEFfU1NFMiB8 IFBUQV9TU0UzIHwgUFRBX1NTU0UzIFwKQEAgLTQzNTUsNyArNDM1Nyw3IEBA IGl4ODZfb3B0aW9uX292ZXJyaWRlX2ludGVybmFsIChib29sIG1haW5fYXJn c19wLAogICAgICAgeyJpNDg2IiwgUFJPQ0VTU09SX0k0ODYsIENQVV9OT05F LCAwfSwKICAgICAgIHsiaTU4NiIsIFBST0NFU1NPUl9QRU5USVVNLCBDUFVf UEVOVElVTSwgMH0sCiAgICAgICB7InBlbnRpdW0iLCBQUk9DRVNTT1JfUEVO VElVTSwgQ1BVX1BFTlRJVU0sIDB9LAotICAgICAgeyJsYWtlbW9udCIsIFBS T0NFU1NPUl9MQUtFTU9OVCwgQ1BVX1BFTlRJVU0sIDB9LAorICAgICAgeyJs YWtlbW9udCIsIFBST0NFU1NPUl9MQUtFTU9OVCwgQ1BVX1BFTlRJVU0sIFBU QV9OT184MDM4N30sCiAgICAgICB7InBlbnRpdW0tbW14IiwgUFJPQ0VTU09S X1BFTlRJVU0sIENQVV9QRU5USVVNLCBQVEFfTU1YfSwKICAgICAgIHsid2lu Y2hpcC1jNiIsIFBST0NFU1NPUl9JNDg2LCBDUFVfTk9ORSwgUFRBX01NWH0s CiAgICAgICB7IndpbmNoaXAyIiwgUFJPQ0VTU09SX0k0ODYsIENQVV9OT05F LCBQVEFfTU1YIHwgUFRBXzNETk9XIHwgUFRBX1BSRkNIV30sCkBAIC00OTM1 LDcgKzQ5MzcsOSBAQCBpeDg2X29wdGlvbl9vdmVycmlkZV9pbnRlcm5hbCAo Ym9vbCBtYWluX2FyZ3NfcCwKIAlpZiAocHJvY2Vzc29yX2FsaWFzX3RhYmxl W2ldLmZsYWdzICYgUFRBX01XQUlUWAogCSAgICAmJiAhKG9wdHMtPnhfaXg4 Nl9pc2FfZmxhZ3NfZXhwbGljaXQgJiBPUFRJT05fTUFTS19JU0FfTVdBSVRY KSkKIAkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MgfD0gT1BUSU9OX01BU0tf SVNBX01XQUlUWDsKLQorCWlmIChwcm9jZXNzb3JfYWxpYXNfdGFibGVbaV0u ZmxhZ3MgJiBQVEFfTk9fODAzODcKKwkgICAgJiYgIShvcHRzX3NldC0+eF90 YXJnZXRfZmxhZ3MgJiBNQVNLXzgwMzg3KSkKKwkgIGl4ODZfdGFyZ2V0X2Zs YWdzX21hc2sgfD0gTUFTS184MDM4NzsKIAlicmVhazsKICAgICAgIH0KIApA QCAtNTA5NCw2ICs1MDk4LDkgQEAgaXg4Nl9vcHRpb25fb3ZlcnJpZGVfaW50 ZXJuYWwgKGJvb2wgbWFpbl9hcmdzX3AsCiAgIGlmICghb3B0c19zZXQtPnhf aXg4Nl9icmFuY2hfY29zdCkKICAgICBvcHRzLT54X2l4ODZfYnJhbmNoX2Nv c3QgPSBpeDg2X3R1bmVfY29zdC0+YnJhbmNoX2Nvc3Q7CiAKKyAgb3B0cy0+ eF90YXJnZXRfZmxhZ3MKKyAgICB8PSAoVEFSR0VUX0RFRkFVTFQgfCBUQVJH RVRfU1VCVEFSR0VUX0RFRkFVTFQpICYgfm9wdHNfc2V0LT54X3RhcmdldF9m bGFnczsKKwogICBpZiAoVEFSR0VUXzY0QklUX1AgKG9wdHMtPnhfaXg4Nl9p c2FfZmxhZ3MpKQogICAgIHsKICAgICAgIG9wdHMtPnhfdGFyZ2V0X2ZsYWdz CkBAIC01MTI2LDYgKzUxMzMsOSBAQCBpeDg2X29wdGlvbl9vdmVycmlkZV9p bnRlcm5hbCAoYm9vbCBtYWluX2FyZ3NfcCwKICAgICAgICAgb3B0cy0+eF90 YXJnZXRfZmxhZ3MgfD0gTUFTS19OT19SRURfWk9ORTsKICAgICB9CiAKKyAg LyogRGlzYWJsZSBzcGVjaWZpYyBwcm9jZXNzb3IgZGVwZW5kYW50IGZlYXR1 cmVzIGFmdGVyIHRhcmdldCBkZWZhdWx0cy4gICovCisgIG9wdHMtPnhfdGFy Z2V0X2ZsYWdzICY9IH5peDg2X3RhcmdldF9mbGFnc19tYXNrOworCiAgIC8q IEtlZXAgbm9ubGVhZiBmcmFtZSBwb2ludGVycy4gICovCiAgIGlmIChvcHRz LT54X2ZsYWdfb21pdF9mcmFtZV9wb2ludGVyKQogICAgIG9wdHMtPnhfdGFy Z2V0X2ZsYWdzICY9IH5NQVNLX09NSVRfTEVBRl9GUkFNRV9QT0lOVEVSOwpJ bmRleDogdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjY3OTYzLTEuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L3ByNjc5NjMtMS5jCShyZXZpc2lvbiAwKQorKysgdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9wcjY3OTYzLTEuYwkod29ya2luZyBjb3B5KQpA QCAtMCwwICsxLDkgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCBp YTMyIH0gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLW1hcmNoPWxha2Vt b250IiB9ICovCisKK2Zsb2F0IGZvbyAodm9pZCkKK3sKKyAgcmV0dXJuIDAu MGY7Cit9CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg ImZsZHoiIH0gfSAqLwpJbmRleDogdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9wcjY3OTYzLTIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNjc5NjMtMi5jCShyZXZpc2lvbiAw KQorKysgdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjY3OTYzLTIuYwko d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACisvKiB7IGRnLWRvIGNv bXBpbGUgeyB0YXJnZXQgaWEzMiB9IH0gKi8KKy8qIHsgZGctb3B0aW9ucyAi LU8yIC1tYXJjaD1wZW50aXVtIiB9ICovCisKK2Zsb2F0CitfX2F0dHJpYnV0 ZV9fKCh0YXJnZXQoImFyY2g9bGFrZW1vbnQiKSkpCitmb28gKHZvaWQpCit7 CisgIHJldHVybiAwLjBmOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItbm90ICJmbGR6IiB9IH0gKi8K --001a113db644da8ad2052229b7db--