Re: Is PRE architecture dependent? aarch64 vs x86_64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/13/25 15:53, Segher Boessenkool wrote:

Of course it is somewhat dependent on the architecture.  The number of
available general registers, for example!  And aarch is way more
orthogonal than x86 in pretty much every way imaginable, so there is a
lot more freedom to the compiler always, so if it wants to exhaustively
search the possibilities (or even just try out many options) it has a
lot more possibilities, so more work to do.
Well, I tried it again on X86_64 and reduced max-gcse-memory to 400 (i.e., to nothing) and got no warning.

I've included below the cc1 process call; setting "--param=max-gcse-memory=400" is near the end. (I presume passing this to cc1 is derived from passing "--param max-gcse-memory=400" to gcc.) There is no warning.

This is not that important, it's just that I like to understand what gcc is doing to the (machine-generated) code.

Thanks.

Brad

/pkgs/gcc-15.1.0/libexec/gcc/x86_64-pc-linux-gnu/15.1.0/cc1 -quiet -I /home/lucier/programs/gambit/gambit/include -imultiarch x86_64-linux-gnu -D ___SINGLE_HOST -D ___TRUST_C_TCO -D ___CAN_IMPORT_CLIB_DYNAMICALLY -D ___CAN_IMPORT_SETJMP_DYNAMICALLY -D ___DYNAMIC _irregex.c -march=haswell -mmmx -mpopcnt -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mno-sse4a -mno-fma4 -mno-xop -mfma -mno-avx512f -mbmi -mbmi2 -maes -mpclmul -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512cd -mno-avx512vbmi -mno-avx512ifma -mno-avx512vpopcntdq -mno-avx512vbmi2 -mno-gfni -mno-vpclmulqdq -mno-avx512vnni -mno-avx512bitalg -mno-avx512bf16 -mno-avx512vp2intersect -mno-3dnow -mno-adx -mabm -mno-cldemote -mno-clflushopt -mno-clwb -mno-clzero -mcx16 -mno-enqcmd -mf16c -mfsgsbase -mfxsr -mno-hle -msahf -mno-lwp -mlzcnt -mmovbe -mno-movdir64b -mno-movdiri -mno-mwaitx -mno-pconfig -mno-pku -mno-prfchw -mno-ptwrite -mno-rdpid -mrdrnd -mno-rdseed -mno-rtm -mno-serialize -mno-sgx -mno-sha -mno-shstk -mno-tbm -mno-tsxldtrk -mno-vaes -mno-waitpkg -mno-wbnoinvd -mxsave -mno-xsavec -mxsaveopt -mno-xsaves -mno-amx-tile -mno-amx-int8 -mno-amx-bf16 -mno-uintr -mno-hreset -mno-kl -mno-widekl -mno-avxvnni -mno-avx512fp16 -mno-avxifma -mno-avxvnniint8 -mno-avxneconvert -mno-cmpccxadd -mno-amx-fp16 -mno-prefetchi -mno-raoint -mno-amx-complex -mno-avxvnniint16 -mno-sm3 -mno-sha512 -mno-sm4 -mno-apxf -mno-usermsr -mno-avx10.2 -mno-amx-avx512 -mno-amx-tf32 -mno-amx-transpose -mno-amx-fp8 -mno-movrs -mno-amx-movrs --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell -quiet -dumpdir _irregex.o1- -dumpbase _irregex.c -dumpbase-ext .c -mpc64 -O1 -Wno-unused -Wno-write-strings -Wdisabled-optimization -fexpensive-optimizations -fno-gcse -fwrapv -fno-strict-aliasing -fno-trapping-math -fno-math-errno -fschedule-insns2 -foptimize-sibling-calls -fomit-frame-pointer -fipa-ra -fmove-loop-invariants -fPIC -fno-common --param=max-gcse-memory=400 -o /tmp/cccMyXeh.s




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux