This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

How to interpret the automaton output during gcc bootstrap and -mcpu=arm926ej-s or --with-cpu=arm926ejs


Hi,
  I am trying to build gcc-4.2.2 for this CPU and am surprised or badly
*interpreting* that `arm1026ejs' code is maybe faster than `arm926ejs'?
I tried to find this in the Documentation and by Google but no luck.

$ cat /proc/cpuinfo
Processor       : ARM926EJ-Sid(wb) rev 5 (v5l)
BogoMIPS        : 99.73
Features        : swp half thumb fastmult edsp java 
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 32768
I assoc         : 4
I line length   : 32
I sets          : 256
D size          : 32768
D assoc         : 4
D line length   : 32
D sets          : 256

Hardware        : Oxsemi NAS
Revision        : 0000
Serial          : 0000000000000000
$ CFLAGS="-mcpu=arm926ejs -msoft-float -fomit-frame-pointer -pipe -O2" \
  ../configure --with-cpu=arm926ej-s --with-float=soft \
  --enable-languages=c,c++,objc --disable-nls --with-newlib
$ make bootstrap-lean
...
build/genautomata ../../gcc/config/arm/arm.md \
          insn-conditions.md > tmp-automata.c

Automaton `arm'
      444 NDFA states,           1168 NDFA arcs
      444 DFA states,            1168 DFA arcs
      116 minimal DFA states,     482 minimal DFA arcs
      123 all insns         16 insn equivalence classes
    0 locked states
  468 transition comb vector els,  1856 trans table els: use comb vect
 1856 min delay table els, compression factor 1

Automaton `arm926ejs'
       17 NDFA states,             47 NDFA arcs
       17 DFA states,              47 DFA arcs
       11 minimal DFA states,      35 minimal DFA arcs
      123 all insns          9 insn equivalence classes
    0 locked states
   39 transition comb vector els,    99 trans table els: use comb vect
   99 min delay table els, compression factor 2

Automaton `arm1020e'
     3185 NDFA states,           9075 NDFA arcs
     3185 DFA states,            9075 DFA arcs
      451 minimal DFA states,    2740 minimal DFA arcs
      123 all insns         17 insn equivalence classes
    0 locked states
 2771 transition comb vector els,  7667 trans table els: use comb vect
 7667 min delay table els, compression factor 1

Automaton `arm1026ejs'
       10 NDFA states,             27 NDFA arcs
       10 DFA states,              27 DFA arcs
        6 minimal DFA states,      19 minimal DFA arcs
      123 all insns          7 insn equivalence classes
    0 locked states
   18 transition comb vector els,    42 trans table els: use simple vect
   42 min delay table els, compression factor 2

Automaton `arm1136jfs'
       19 NDFA states,             53 NDFA arcs
       19 DFA states,              53 DFA arcs
        9 minimal DFA states,      33 minimal DFA arcs
      123 all insns          8 insn equivalence classes
    0 locked states
   35 transition comb vector els,    72 trans table els: use simple vect
   72 min delay table els, compression factor 2

Automaton `armfp'
       70 NDFA states,            147 NDFA arcs
       70 DFA states,             147 DFA arcs
       70 minimal DFA states,     147 minimal DFA arcs
      123 all insns          9 insn equivalence classes
    0 locked states
  150 transition comb vector els,   630 trans table els: use comb vect
  630 min delay table els, compression factor 1

Automaton `vfp11'
      198 NDFA states,            631 NDFA arcs
      198 DFA states,             631 DFA arcs
      198 minimal DFA states,     631 minimal DFA arcs
      123 all insns          8 insn equivalence classes
    0 locked states
  749 transition comb vector els,  1584 trans table els: use simple vect
 1584 min delay table els, compression factor 1

 4331 all allocated states,      9599 all allocated arcs
 4316 all allocated alternative states
 4230 all transition comb vector els, 11950 all trans table els
11950 all min delay table els
    0 all locked states

  transformation: 0.010000, building DFA: 5.850000
  DFA minimization: 0.830000, making insn equivalence: 0.040000
 all automaton generation: 7.650000, output: 1.990000

...
objext='.o' \
        LIB1ASMFUNCS='_udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx' \
        LIB2FUNCS_ST='_eprintf __gcc_bcmp' \
        LIB2FUNCS_EXCLUDE='' \
        LIBGCOV='_gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta _gcov_fork _gcov_execl _gcov_execlp _gcov_execle _gcov_execv _gcov_execvp _gcov_execve _gcov_interval_profiler _gcov_pow2_profiler _gcov_one_value_profiler' \
        LIB2ADD='' \
        LIB2ADD_ST='' \
        LIB2ADDEH='../../gcc/unwind-dw2.c ../../gcc/unwind-dw2-fde-glibc.c ../../gcc/unwind-sjlj.c ../../gcc/gthr-gnat.c ../../gcc/unwind-c.c' \
        LIB2ADDEHSTATIC='../../gcc/unwind-dw2.c ../../gcc/unwind-dw2-fde-glibc.c ../../gcc/unwind-sjlj.c ../../gcc/gthr-gnat.c ../../gcc/unwind-c.c' \
        LIB2ADDEHSHARED='../../gcc/unwind-dw2.c ../../gcc/unwind-dw2-fde-glibc.c ../../gcc/unwind-sjlj.c ../../gcc/gthr-gnat.c ../../gcc/unwind-c.c' \
        LIB2ADDEHDEP='unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c' \
        LIB2_SIDITI_CONV_FUNCS='' \
        LIBUNWIND='' \
        LIBUNWINDDEP='' \
        SHLIBUNWIND_LINK='' \
        SHLIBUNWIND_INSTALL='' \
        FPBIT='' \
        FPBIT_FUNCS='_pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf _sf_to_df _sf_to_tf _thenan_sf _sf_to_usi _usi_to_sf' \
        LIB2_DIVMOD_FUNCS='_divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4' \
        DPBIT='' \
        DPBIT_FUNCS='_pack_df _unpack_df _addsub_df _mul_df _div_df _fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df _df_to_sf _df_to_tf _thenan_df _df_to_usi _usi_to_df' \
        TPBIT='' \
        TPBIT_FUNCS='_pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf _fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf _lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf _tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf' \
        DFP_ENABLE='' \
        DFP_CFLAGS='' \
        D32PBIT='' \
        D32PBIT_FUNCS='_addsub_sd _div_sd _mul_sd _plus_sd _minus_sd _eq_sd _ne_sd _lt_sd _gt_sd _le_sd _ge_sd _sd_to_si _sd_to_di _sd_to_usi _sd_to_udi _si_to_sd _di_to_sd _usi_to_sd _udi_to_sd _sd_to_sf _sd_to_df _sd_to_xf _sf_to_sd _df_to_sd _xf_to_sd _sd_to_dd _sd_to_td _unord_sd _conv_sd' \
        D64PBIT='' \
        D64PBIT_FUNCS='_addsub_dd _div_dd _mul_dd _plus_dd _minus_dd _eq_dd _ne_dd _lt_dd _gt_dd _le_dd _ge_dd _dd_to_si _dd_to_di _dd_to_usi _dd_to_udi _si_to_dd _di_to_dd _usi_to_dd _udi_to_dd _dd_to_sf _dd_to_df _dd_to_xf _sf_to_dd _df_to_dd _xf_to_dd _dd_to_sd _dd_to_td _unord_dd _conv_dd' \
        D128PBIT='' \
        D128PBIT_FUNCS='_addsub_td _div_td _mul_td _plus_td _minus_td _eq_td _ne_td _lt_td _gt_td _le_td _ge_td _td_to_si _td_to_di _td_to_usi _td_to_udi _si_to_td _di_to_td _usi_to_td _udi_to_td _td_to_sf _td_to_df _td_to_xf _sf_to_td _df_to_td _xf_to_td _td_to_sd _td_to_dd _unord_td _conv_td' \
        MULTILIBS=`/scratch/gcc-4.2.2/objdir/./gcc/xgcc -B/scratch/gcc-4.2.2/objdir/./gcc/ -B/usr/local/armv5tejl-unknown-linux-gnu/bin/ -B/usr/local/armv5tejl-unknown-linux-gnu/lib/ -isystem /usr/local/armv5tejl-unknown-linux-gnu/include -isystem /usr/local/armv5tejl-unknown-linux-gnu/sys-include --print-multi-lib` \
        EXTRA_MULTILIB_PARTS='' \
        SHLIB_LINK='/scratch/gcc-4.2.2/objdir/./gcc/xgcc -B/scratch/gcc-4.2.2/objdir/./gcc/ -B/usr/local/armv5tejl-unknown-linux-gnu/bin/ -B/usr/local/armv5tejl-unknown-linux-gnu/lib/ -isystem /usr/local/armv5tejl-unknown-linux-gnu/include -isystem /usr/local/armv5tejl-unknown-linux-gnu/sys-include -O2  -O2 -mcpu=arm926ejs -msoft-float -fomit-frame-pointer -pipe -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fomit-frame-pointer -fPIC -g0 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -shared -nodefaultlibs -Wl,--soname=@shlib_base_name@.so.1 -Wl,--version-script=@shlib_map_file@ -o @multilib_dir@/@shlib_base_name@.so.1.tmp @multilib_flags@ @shlib_objs@ -lc && rm -f @multilib_dir@/@shlib_base_name@.so && if [ -f @multilib_dir@/@shlib_base_name@.so.1 ]; then mv -f @multilib_dir@/@shlib_base_name@.so.1 @multilib_dir@/@shlib_base_name@.so.1.backup; else true; fi && mv @multi
lib_dir@/@shlib_base_name@.so.1.tmp @multilib_dir@/@shlib_base_name@.so.1 && ln -s @shlib_base_name@.so.1 @multilib_dir@/@shlib_base_name@.so' \
        SHLIB_INSTALL='$(mkinstalldirs) $(DESTDIR)$(slibdir)@shlib_slibdir_qual@; /usr/bin/install -c -m 644 @multilib_dir@/@shlib_base_name@.so.1 $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so.1; rm -f $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so; ln -s @shlib_base_name@.so.1 $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so' \
        SHLIB_EXT='.so' \
        SHLIB_MULTILIB='' \
        SHLIB_MKMAP='../../gcc/mkmap-symver.awk' \
        SHLIB_MKMAP_OPTS='' \
        SHLIB_MAPFILES='../../gcc/libgcc-std.ver ../../gcc/config/libgcc-glibc.ver ../../gcc/config/libgcc-glibc.ver' \
        SHLIB_NM_FLAGS='-pg' \
        MULTILIB_OSDIRNAMES='' \
        ASM_HIDDEN_OP='' \
        GCC_FOR_TARGET='/scratch/gcc-4.2.2/objdir/./gcc/xgcc -B/scratch/gcc-4.2.2/objdir/./gcc/ -B/usr/local/armv5tejl-unknown-linux-gnu/bin/ -B/usr/local/armv5tejl-unknown-linux-gnu/lib/ -isystem /usr/local/armv5tejl-unknown-linux-gnu/include -isystem /usr/local/armv5tejl-unknown-linux-gnu/sys-include' \
        mkinstalldirs='/bin/sh ../../gcc/../mkinstalldirs' \
          /bin/sh mklibgcc > tmp-libgcc.mk
mv tmp-libgcc.mk libgcc.mk
TARGET_CPU_DEFAULT="" \
        HEADERS="auto-host.h ansidecl.h" DEFINES="USED_FOR_TARGET " \
        /bin/sh ../../gcc/mkconfig.sh tconfig.h
/scratch/gcc-4.2.2/objdir/./gcc/xgcc -B/scratch/gcc-4.2.2/objdir/./gcc/ -B/usr/local/armv5tejl-unknown-linux-gnu/bin/ -B/usr/local/armv5tejl-unknown-linux-gnu/lib/ -isystem /usr/local/armv5tejl-unknown-linux-gnu/include -isystem /usr/local/armv5tejl-unknown-linux-gnu/sys-include -O2 -O2 -mcpu=arm926ejs -msoft-float -fomit-frame-pointer -pipe -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I../../gcc/../libcpp/include  -I../../gcc/../libdecnumber -I../libdecnumber  -g0 -finhibit-size-directive -fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss -fno-toplevel-reorder -Dinhibit_libc  \
          -c ../../gcc/crtstuff.c -DCRT_BEGIN \
          -o crtbegin.o
../../gcc/crtstuff.c:1: error: bad value (arm926ejs) for -mcpu= switch
make[3]: *** [crtbegin.o] Error 1
make[3]: Leaving directory `/scratch/gcc-4.2.2/objdir/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/scratch/gcc-4.2.2/objdir'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/scratch/gcc-4.2.2/objdir'
make: *** [bootstrap-lean] Error 2
$ # gcc -v
Using built-in specs.
Configured with: /data/releases/v1.18/buildroot/toolchain_build_arm_nofpu/gcc-3.4.2/configure --prefix=/usr --build=i386-pc-linux-gnu --host=arm-linux-uclibc --target=arm-linux-uclibc --enable-languages=c,c++ --enable-shared --with-gxx-include-dir=/usr/include/c++ --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --disable-nls --enable-threads --enable-multilib --with-float=soft
Thread model: posix
gcc version 3.4.2
$ /scratch/gcc-4.2.2/objdir/./gcc/xgcc -v
Using built-in specs.
Target: armv5tejl-unknown-linux-gnu
Configured with: ../configure --with-cpu=arm926ej-s --with-float=soft --enable-languages=c,c++,objc --disable-nls --with-newlib
Thread model: posix
gcc version 4.2.2
$

So which -mcpu values should I pass to configure and as C*FLAGS to bootstrap
to yield a compiler optimized and running only at this processor? It seems
gcc 3.4.2 and 4.2.2 accept either 'arm926ejs' or 'arm926ej-s', and configure
again just one of these?
Thanks for your help
Martin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]