[stage1][PATCH] Change semantics of -frecord-gcc-switches and add -frecord-gcc-switches-format.

Qing Zhao QING.ZHAO@ORACLE.COM
Fri Sep 25 19:36:41 GMT 2020



> On Sep 25, 2020, at 9:55 AM, Martin Liška <mliska@suse.cz> wrote:
> 
> PING^5
> 

Thanks a lot for ping this patch again.

Hopefully it can be committed into GCC 11 very soon.

Qing
> On 7/21/20 6:24 PM, Qing Zhao wrote:
>> PING^4.
>> Our company is waiting for this patch to be committed to upstream.
>> Thanks a lot.
>> Qing
>>> On Jun 16, 2020, at 7:49 AM, Martin Liška <mliska@suse.cz> wrote:
>>> 
>>> PING^3
>>> 
>>> On 6/2/20 11:16 AM, Martin Liška wrote:
>>>> PING^2
>>>> On 5/15/20 11:58 AM, Martin Liška wrote:
>>>>> We're in stage1: PING^1
>>>>> 
>>>>> On 4/3/20 8:15 PM, Egeyar Bagcioglu wrote:
>>>>>> 
>>>>>> 
>>>>>> On 3/18/20 10:05 AM, Martin Liška wrote:
>>>>>>> On 3/17/20 7:43 PM, Egeyar Bagcioglu wrote:
>>>>>>>> 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.
>>>>>>> 
>>>>>>> Hello.
>>>>>>> 
>>>>>>> Thank you for the support.
>>>>>>> 
>>>>>>>> 
>>>>>>>> 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?
>>>>>>> 
>>>>>>> Sure, sorry I forgot.
>>>>>> 
>>>>>> Hi Martin,
>>>>>> 
>>>>>> I noticed that some comments in the patch were still referring to --record-gcc-command-line, the option I suggested earlier. I updated those comments to mention -frecord-gcc-switches-format instead and also added my name to the patch as you agreed above. I attached the updated patch. We are starting to use this patch in the specific domain where we need its functionality.
>>>>>> 
>>>>>> Regards
>>>>>> Egeyar
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> Martin
>>>>>>> 
>>>>>>>> 
>>>>>>>> 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
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>> 
> 



More information about the Gcc-patches mailing list