From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) by sourceware.org (Postfix) with ESMTPS id B0ECB3871026 for ; Tue, 17 Mar 2020 18:43:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B0ECB3871026 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 02HIgmpX159295; Tue, 17 Mar 2020 18:43:31 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by userp2130.oracle.com with ESMTP id 2yrppr6r1m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Mar 2020 18:43:31 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 02HIgYfe188721; Tue, 17 Mar 2020 18:43:31 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userp3030.oracle.com with ESMTP id 2ys8rfeu5t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Mar 2020 18:43:31 +0000 Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 02HIhTCZ007193; Tue, 17 Mar 2020 18:43:30 GMT Received: from [10.175.1.160] (/10.175.1.160) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 17 Mar 2020 11:43:29 -0700 Subject: Re: [stage1][PATCH] Change semantics of -frecord-gcc-switches and add -frecord-gcc-switches-format. To: =?UTF-8?Q?Martin_Li=c5=a1ka?= , Jakub Jelinek Cc: Richard Biener , GCC Patches , nickc@redhat.com References: <1583246660-6390-1-git-send-email-egeyar.bagcioglu@oracle.com> <1583246660-6390-4-git-send-email-egeyar.bagcioglu@oracle.com> <20200304173322.GR2156@tucnak> <648767d6-68ff-cb3c-811b-c20ee2202b41@oracle.com> <63cd2ac4-bd04-929d-98c3-2762da882e9c@suse.cz> <92bec310-4955-6fe0-df51-ed39f82f5c3b@suse.cz> From: Egeyar Bagcioglu Message-ID: <290802a0-d979-c46a-8042-6a9ff7be8f5b@oracle.com> Date: Tue, 17 Mar 2020 19:43:25 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: <92bec310-4955-6fe0-df51-ed39f82f5c3b@suse.cz> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9563 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 phishscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003170072 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9563 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 spamscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003170072 X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2020 18:43:34 -0000 Hi Martin, I like the patch. It definitely serves our purposes at Oracle and provides another way to do what my previous patches did as well. 1) It keeps the backwards compatibility regarding -frecord-gcc-switches; therefore, removes my related doubts about your previous patch. 2) It still makes use of -frecord-gcc-switches. The new option is only to control the format. This addresses some previous objections to having a new option doing something similar. Now the new option controls the behaviour of the existing one and that behaviour can be further extended. 3) It uses an environment variable as Jakub suggested. The patch looks good and I confirm that it works for our purposes. Having said that, I have to ask for recognition in this patch for my and my company's contributions. Can you please keep my name and my work email in the changelog and in the commit message? Thanks Egeyar On 3/17/20 2:53 PM, Martin Liška wrote: > Hi. > > I'm sending enhanced patch that makes the following changes: > - a new option -frecord-gcc-switches-format is added; the option >   selects format (processed, driver) for all options that record >   GCC command line > - Dwarf gen_produce_string is now used in -fverbose-asm > - The .s file is affected in the following way: > > BEFORE: > > # GNU C17 (SUSE Linux) version 9.2.1 20200128 [revision > 83f65674e78d97d27537361de1a9d74067ff228d] (x86_64-suse-linux) > #    compiled by GNU C version 9.2.1 20200128 [revision > 83f65674e78d97d27537361de1a9d74067ff228d], GMP version 6.2.0, MPFR > version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP > > # GGC heuristics: --param ggc-min-expand=100 --param > ggc-min-heapsize=131072 > # options passed:  -fpreprocessed test.i -march=znver1 -mmmx -mno-3dnow > # -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe -maes -msha > # -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi > -mno-sgx > # -mbmi2 -mno-pconfig -mno-wbnoinvd -mno-tbm -mavx -mavx2 -msse4.2 > -msse4.1 > # -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mrdseed -mprfchw > # -madx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er > -mno-avx512cd > # -mno-avx512pf -mno-prefetchwt1 -mclflushopt -mxsavec -mxsaves > # -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma > -mno-avx512vbmi > # -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mmwaitx -mclzero > -mno-pku > # -mno-rdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni > # -mno-vaes -mno-vpclmulqdq -mno-avx512bitalg -mno-movdiri -mno-movdir64b > # -mno-waitpkg -mno-cldemote -mno-ptwrite --param l1-cache-size=32 > # --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=znver1 > # -grecord-gcc-switches -g -fverbose-asm -frecord-gcc-switches > # options enabled:  -faggressive-loop-optimizations -fassume-phsa > # -fasynchronous-unwind-tables -fauto-inc-dec -fcommon > # -fdelete-null-pointer-checks -fdwarf2-cfi-asm -fearly-inlining > # -feliminate-unused-debug-types -ffp-int-builtin-inexact -ffunction-cse > # -fgcse-lm -fgnu-runtime -fgnu-unique -fident -finline-atomics > # -fipa-stack-alignment -fira-hoist-pressure -fira-share-save-slots > # -fira-share-spill-slots -fivopts -fkeep-static-consts > # -fleading-underscore -flifetime-dse -flto-odr-type-merging -fmath-errno > # -fmerge-debug-strings -fpeephole -fplt -fprefetch-loop-arrays > # -frecord-gcc-switches -freg-struct-return > -fsched-critical-path-heuristic > # -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock > # -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec > # -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fschedule-fusion > # -fsemantic-interposition -fshow-column -fshrink-wrap-separate > # -fsigned-zeros -fsplit-ivs-in-unroller -fssa-backprop -fstdarg-opt > # -fstrict-volatile-bitfields -fsync-libcalls -ftrapping-math > -ftree-cselim > # -ftree-forwprop -ftree-loop-if-convert -ftree-loop-im > -ftree-loop-ivcanon > # -ftree-loop-optimize -ftree-parallelize-loops= -ftree-phiprop > # -ftree-reassoc -ftree-scev-cprop -funit-at-a-time -funwind-tables > # -fverbose-asm -fzero-initialized-in-bss -m128bit-long-double -m64 > -m80387 > # -mabm -madx -maes -malign-stringops -mavx -mavx2 > # -mavx256-split-unaligned-store -mbmi -mbmi2 -mclflushopt -mclzero > -mcx16 > # -mf16c -mfancy-math-387 -mfma -mfp-ret-in-387 -mfsgsbase -mfxsr -mglibc > # -mieee-fp -mlong-double-80 -mlzcnt -mmmx -mmovbe -mmwaitx -mpclmul > # -mpopcnt -mprfchw -mpush-args -mrdrnd -mrdseed -mred-zone -msahf -msha > # -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -msse4a -mssse3 -mstv > # -mtls-direct-seg-refs -mvzeroupper -mxsave -mxsavec -mxsaveopt -mxsaves > > AFTER: > > # GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 > # GNU C17 10.0.1 20200317 (experimental) -march=znver1 -mmmx > -mno-3dnow -msse -msse2 -msse3 -mssse3 -msse4a -mcx16 -msahf -mmovbe > -maes -msha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop > -mbmi -mno-sgx -mbmi2 -mno-pconfig -mno-wbnoinvd -mno-tbm -mavx -mavx2 > -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase > -mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mno-avx512f > -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 > -mclflushopt -mxsavec -mxsaves -mno-avx512dq -mno-avx512bw > -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps > -mno-avx5124vnniw -mno-clwb -mmwaitx -mclzero -mno-pku -mno-rdpid > -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni -mno-vaes > -mno-vpclmulqdq -mno-avx512bitalg -mno-movdiri -mno-movdir64b > -mno-waitpkg -mno-cldemote -mno-ptwrite -mno-avx512bf16 -mno-enqcmd > -mno-avx512vp2intersect --param=l1-cache-size=32 > --param=l1-cache-line-size=64 --param=l2-cache-size=512 -mtune=znver1 -g > > That's the biggest change I made, but I hope it's acceptable. > Apart from that the patch simplifies and unifies places where > save_decoded_options > options are transformed back to string representation. > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > > Ready to be installed in next stage1? > Thanks, > Martin