From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd30.google.com (mail-io1-xd30.google.com [IPv6:2607:f8b0:4864:20::d30]) by sourceware.org (Postfix) with ESMTPS id 33926386194C for ; Fri, 29 Sep 2023 19:33:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 33926386194C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-io1-xd30.google.com with SMTP id ca18e2360f4ac-79fe6da0049so216707439f.1 for ; Fri, 29 Sep 2023 12:33:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696016034; x=1696620834; darn=gcc.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=/bo4TQyMRkpNzhj9Ty6Tn5fzotxcz8QizAgWUjX9/aQ=; b=ZyJER8wYfi3PlWsVFGr9AlfGJGcIy3BfA5L4TpEzYKCNbB2/dBJjm4anntYRASRUqT kkmX1Sse96ehcnTJ95ajD2qs/EvHPebF6SqoMbokMSeMADMstl0orcaL6x2DiGEOwKHs Np4MahJk4+WDWvIYo0AWFQjAMMU5yEyW4BCSer8bLx0bgUrzXgQ9cunWciOYiobLcHsp 3Tssrb8IgHnBx9DHo485be5F0PkIl6ZozdLAAzyEJisHdcoei7Fr+rn8mzP8pA0SGlo2 kAwc91NhmfGbjG1jUuo8BmNbYkacAgWsBAyC23aZSq6HnUd0mMnnAGKynX5+psl0LUAK WJAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696016034; x=1696620834; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/bo4TQyMRkpNzhj9Ty6Tn5fzotxcz8QizAgWUjX9/aQ=; b=TT05lwIzdmGKHs/D1HD+VLwz6NFdUBNjuBqebR1pXu5eqooEpUbAwmrdHnjrOORvgz MY1ORKQwK8XW/OTC8qEgrljkzlIVJcs9QewbcSCcrsyMGFcevA9N+v87/VxVprsKXzTo +FhnxCLrBcBufHOzHh5XUQHgSxN3K9EQbVVl7ZuqZv1IjJrzHMx+l9IX472rfF9v7D8H ynXNQ8PfkKtuzErzSQ3Tbooc/U5xGdBloCqsuQHw1V93Cg4Oro10R671HJhmneGdPe4+ Luwb/m9KqSoyUkOHCX4TV78s9TzGFAoRg1ddW1xP+QX9zW0CDwO+cDkZX+jF9ZwPZ5xK 1+aw== X-Gm-Message-State: AOJu0Yz0o3d9CwsYk/n8el1RY5FDL+Dho2q/u62Yc0VaFZfreEELYfxq vzBFsDkbi4Jl6jvmftYNEx8= X-Google-Smtp-Source: AGHT+IGkXIEPnhyenXaHfwaAqrTqyXS9JDi2Q8g0mr7bTClPSNwvAMFuK0wlrLaC3RIriKP6WGHagw== X-Received: by 2002:a05:6e02:1104:b0:351:1dfb:3e88 with SMTP id u4-20020a056e02110400b003511dfb3e88mr4636782ilk.11.1696016034354; Fri, 29 Sep 2023 12:33:54 -0700 (PDT) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id j10-20020a056e020eea00b00351579b7e4bsm2448827ilk.37.2023.09.29.12.33.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 29 Sep 2023 12:33:53 -0700 (PDT) Message-ID: Date: Fri, 29 Sep 2023 13:33:52 -0600 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6] RISC-V:Optimize the MASK opt generation Content-Language: en-US To: Feng Wang , gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com References: <20230912091805.2322-1-wangfeng@eswincomputing.com> From: Jeff Law In-Reply-To: <20230912091805.2322-1-wangfeng@eswincomputing.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,UPPERCASE_50_75 autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 9/12/23 03:18, Feng Wang wrote: > New patch add some comments and update docs for this new usage. > --- > Accoring to Kito's advice, using "MASK(name) Var(other_flag_name)" > to generate MASK and TARGET MACRO automatically. > This patch improve the MACRO generation of MASK_* and TARGET_*. > Due to the more and more riscv extensions are added, the default target_flag > is full. > Before this patch,if you want to add new MACRO,you should define the > MACRO in the riscv-opts.h manually. > After this patch, you just need two steps: > 1.Define the new TargetVariable. > 2.Define "MASK(name) Var(new_target_flag). > > gcc/ChangeLog: > > * config/riscv/riscv-opts.h (MASK_ZICSR): > (MASK_ZIFENCEI): Delete; > (MASK_ZIHINTNTL): Ditto; > (MASK_ZIHINTPAUSE): Ditto; > (TARGET_ZICSR): Ditto; > (TARGET_ZIFENCEI): Ditto; > (TARGET_ZIHINTNTL): Ditto; > (TARGET_ZIHINTPAUSE):Ditto; > (MASK_ZAWRS): Ditto; > (TARGET_ZAWRS): Ditto; > (MASK_ZBA): Ditto; > (MASK_ZBB): Ditto; > (MASK_ZBC): Ditto; > (MASK_ZBS): Ditto; > (TARGET_ZBA): Ditto; > (TARGET_ZBB): Ditto; > (TARGET_ZBC): Ditto; > (TARGET_ZBS): Ditto; > (MASK_ZFINX): Ditto; > (MASK_ZDINX): Ditto; > (MASK_ZHINX): Ditto; > (MASK_ZHINXMIN): Ditto; > (TARGET_ZFINX): Ditto; > (TARGET_ZDINX): Ditto; > (TARGET_ZHINX): Ditto; > (TARGET_ZHINXMIN): Ditto; > (MASK_ZBKB): Ditto; > (MASK_ZBKC): Ditto; > (MASK_ZBKX): Ditto; > (MASK_ZKNE): Ditto; > (MASK_ZKND): Ditto; > (MASK_ZKNH): Ditto; > (MASK_ZKR): Ditto; > (MASK_ZKSED): Ditto; > (MASK_ZKSH): Ditto; > (MASK_ZKT): Ditto; > (TARGET_ZBKB): Ditto; > (TARGET_ZBKC): Ditto; > (TARGET_ZBKX): Ditto; > (TARGET_ZKNE): Ditto; > (TARGET_ZKND): Ditto; > (TARGET_ZKNH): Ditto; > (TARGET_ZKR): Ditto; > (TARGET_ZKSED): Ditto; > (TARGET_ZKSH): Ditto; > (TARGET_ZKT): Ditto; > (MASK_ZTSO): Ditto; > (TARGET_ZTSO): Ditto; > (MASK_VECTOR_ELEN_32): Ditto; > (MASK_VECTOR_ELEN_64): Ditto; > (MASK_VECTOR_ELEN_FP_32):Ditto; > (MASK_VECTOR_ELEN_FP_64):Ditto; > (MASK_VECTOR_ELEN_FP_16):Ditto; > (TARGET_VECTOR_ELEN_32): Ditto; > (TARGET_VECTOR_ELEN_64): Ditto; > (TARGET_VECTOR_ELEN_FP_32):Ditto; > (TARGET_VECTOR_ELEN_FP_64):Ditto; > (TARGET_VECTOR_ELEN_FP_16):Ditto; > (MASK_ZVBB): Ditto; > (MASK_ZVBC): Ditto; > (TARGET_ZVBB): Ditto; > (TARGET_ZVBC): Ditto; > (MASK_ZVKG): Ditto; > (MASK_ZVKNED): Ditto; > (MASK_ZVKNHA): Ditto; > (MASK_ZVKNHB): Ditto; > (MASK_ZVKSED): Ditto; > (MASK_ZVKSH): Ditto; > (MASK_ZVKN): Ditto; > (MASK_ZVKNC): Ditto; > (MASK_ZVKNG): Ditto; > (MASK_ZVKS): Ditto; > (MASK_ZVKSC): Ditto; > (MASK_ZVKSG): Ditto; > (MASK_ZVKT): Ditto; > (TARGET_ZVKG): Ditto; > (TARGET_ZVKNED): Ditto; > (TARGET_ZVKNHA): Ditto; > (TARGET_ZVKNHB): Ditto; > (TARGET_ZVKSED): Ditto; > (TARGET_ZVKSH): Ditto; > (TARGET_ZVKN): Ditto; > (TARGET_ZVKNC): Ditto; > (TARGET_ZVKNG): Ditto; > (TARGET_ZVKS): Ditto; > (TARGET_ZVKSC): Ditto; > (TARGET_ZVKSG): Ditto; > (TARGET_ZVKT): Ditto; > (MASK_ZVL32B): Ditto; > (MASK_ZVL64B): Ditto; > (MASK_ZVL128B): Ditto; > (MASK_ZVL256B): Ditto; > (MASK_ZVL512B): Ditto; > (MASK_ZVL1024B): Ditto; > (MASK_ZVL2048B): Ditto; > (MASK_ZVL4096B): Ditto; > (MASK_ZVL8192B): Ditto; > (MASK_ZVL16384B): Ditto; > (MASK_ZVL32768B): Ditto; > (MASK_ZVL65536B): Ditto; > (TARGET_ZVL32B): Ditto; > (TARGET_ZVL64B): Ditto; > (TARGET_ZVL128B): Ditto; > (TARGET_ZVL256B): Ditto; > (TARGET_ZVL512B): Ditto; > (TARGET_ZVL1024B): Ditto; > (TARGET_ZVL2048B): Ditto; > (TARGET_ZVL4096B): Ditto; > (TARGET_ZVL8192B): Ditto; > (TARGET_ZVL16384B): Ditto; > (TARGET_ZVL32768B): Ditto; > (TARGET_ZVL65536B): Ditto; > (MASK_ZICBOZ): Ditto; > (MASK_ZICBOM): Ditto; > (MASK_ZICBOP): Ditto; > (TARGET_ZICBOZ): Ditto; > (TARGET_ZICBOM): Ditto; > (TARGET_ZICBOP): Ditto; > (MASK_ZICOND): Ditto; > (TARGET_ZICOND): Ditto; > (MASK_ZFA): Ditto; > (TARGET_ZFA): Ditto; > (MASK_ZFHMIN): Ditto; > (MASK_ZFH): Ditto; > (MASK_ZVFHMIN): Ditto; > (MASK_ZVFH): Ditto; > (TARGET_ZFHMIN): Ditto; > (TARGET_ZFH): Ditto; > (TARGET_ZVFHMIN): Ditto; > (TARGET_ZVFH): Ditto; > (MASK_ZMMUL): Ditto; > (TARGET_ZMMUL): Ditto; > (MASK_ZCA): Ditto; > (MASK_ZCB): Ditto; > (MASK_ZCE): Ditto; > (MASK_ZCF): Ditto; > (MASK_ZCD): Ditto; > (MASK_ZCMP): Ditto; > (MASK_ZCMT): Ditto; > (TARGET_ZCA): Ditto; > (TARGET_ZCB): Ditto; > (TARGET_ZCE): Ditto; > (TARGET_ZCF): Ditto; > (TARGET_ZCD): Ditto; > (TARGET_ZCMP): Ditto; > (TARGET_ZCMT): Ditto; > (MASK_SVINVAL): Ditto; > (MASK_SVNAPOT): Ditto; > (TARGET_SVINVAL): Ditto; > (TARGET_SVNAPOT): Ditto; > (MASK_XTHEADBA): Ditto; > (MASK_XTHEADBB): Ditto; > (MASK_XTHEADBS): Ditto; > (MASK_XTHEADCMO): Ditto; > (MASK_XTHEADCONDMOV): Ditto; > (MASK_XTHEADFMEMIDX): Ditto; > (MASK_XTHEADFMV): Ditto; > (MASK_XTHEADINT): Ditto; > (MASK_XTHEADMAC): Ditto; > (MASK_XTHEADMEMIDX): Ditto; > (MASK_XTHEADMEMPAIR): Ditto; > (MASK_XTHEADSYNC): Ditto; > (TARGET_XTHEADBA): Ditto; > (TARGET_XTHEADBB): Ditto; > (TARGET_XTHEADBS): Ditto; > (TARGET_XTHEADCMO): Ditto; > (TARGET_XTHEADCONDMOV):Ditto; > (TARGET_XTHEADFMEMIDX):Ditto; > (TARGET_XTHEADFMV): Ditto; > (TARGET_XTHEADINT): Ditto; > (TARGET_XTHEADMAC): Ditto; > (TARGET_XTHEADMEMIDX): Ditto; > (TARGET_XTHEADMEMPAIR):Ditto; > (TARGET_XTHEADSYNC): Ditto; > (MASK_XVENTANACONDOPS):Ditto; > (TARGET_XVENTANACONDOPS):Ditto; > * config/riscv/riscv.opt: Add new Mask defination. > * doc/options.texi: Add explanation for this new usage. > * opt-functions.awk: Add new function to find the index > of target variable from extra_target_vars. > * opt-read.awk: Add new function to store the Mask flags. > * opth-gen.awk: Add new function to output the defination of > Mask Macro and Target Macro. OK jeff