test patch for computed gotos

Brad Lucier lucier@math.purdue.edu
Fri Mar 7 12:37:00 GMT 2003


> Try the below patch.  It's neither bootstrapped nor tested in any way
> (except that it compiles).

Bootstrapped and regtested on alphaev6-unknown-linux-gnu, many fewer errors
in the test-suite than without it for some reason; ah, I also upgraded
my binutils since then. (I had to apply the differences to cfg.c by hand
in my tree.)  Also, it fixes the performance problem with bb-reorder:

 cfg construction      :   1.76 ( 1%) usr   0.10 ( 3%) sys   1.86 ( 1%) wall
 cfg cleanup           :   7.57 ( 4%) usr   0.01 ( 0%) sys   7.58 ( 4%) wall
 trivially dead code   :   4.52 ( 3%) usr   0.00 ( 0%) sys   4.52 ( 2%) wall
 life analysis         :  17.73 (10%) usr   0.04 ( 1%) sys  17.77 (10%) wall
 life info update      :   6.34 ( 4%) usr   0.01 ( 0%) sys   6.35 ( 4%) wall
 alias analysis        :   2.57 ( 1%) usr   0.04 ( 1%) sys   2.61 ( 1%) wall
 register scan         :   1.42 ( 1%) usr   0.00 ( 0%) sys   1.42 ( 1%) wall
 rebuild jump labels   :   0.62 ( 0%) usr   0.00 ( 0%) sys   0.62 ( 0%) wall
 preprocessing         :   3.98 ( 2%) usr   0.41 (11%) sys   4.51 ( 2%) wall
 lexical analysis      :   5.58 ( 3%) usr   0.87 (24%) sys   6.40 ( 4%) wall
 parser                :  12.64 ( 7%) usr   0.71 (20%) sys  13.40 ( 7%) wall
 expand                :   6.38 ( 4%) usr   0.11 ( 3%) sys   6.50 ( 4%) wall
 varconst              :   0.84 ( 0%) usr   0.02 ( 0%) sys   0.85 ( 0%) wall
 integration           :   1.48 ( 1%) usr   0.02 ( 1%) sys   1.50 ( 1%) wall
 jump                  :   0.17 ( 0%) usr   0.00 ( 0%) sys   0.17 ( 0%) wall
 CSE                   :   8.56 ( 5%) usr   0.01 ( 0%) sys   8.57 ( 5%) wall
 loop analysis         :   0.09 ( 0%) usr   0.00 ( 0%) sys   0.09 ( 0%) wall
 branch prediction     :   6.34 ( 4%) usr   0.03 ( 1%) sys   6.37 ( 4%) wall
 flow analysis         :   0.45 ( 0%) usr   0.00 ( 0%) sys   0.46 ( 0%) wall
 combiner              :  14.43 ( 8%) usr   0.07 ( 2%) sys  14.49 ( 8%) wall
 if-conversion         :   2.30 ( 1%) usr   0.01 ( 0%) sys   2.31 ( 1%) wall
 local alloc           :   3.37 ( 2%) usr   0.02 ( 0%) sys   3.39 ( 2%) wall
 global alloc          :   8.79 ( 5%) usr   0.19 ( 5%) sys   8.98 ( 5%) wall
 reload CSE regs       :  15.03 ( 8%) usr   0.06 ( 2%) sys  15.09 ( 8%) wall
 flow 2                :   1.51 ( 1%) usr   0.01 ( 0%) sys   1.52 ( 1%) wall
 if-conversion 2       :   4.12 ( 2%) usr   0.01 ( 0%) sys   4.12 ( 2%) wall
 rename registers      :   3.08 ( 2%) usr   0.02 ( 0%) sys   3.09 ( 2%) wall
 scheduling 2          :  12.22 ( 7%) usr   0.04 ( 1%) sys  12.26 ( 7%) wall
 reorder blocks        :   9.70 ( 5%) usr   0.64 (18%) sys  10.33 ( 6%) wall
 shorten branches      :   1.29 ( 1%) usr   0.01 ( 0%) sys   1.30 ( 1%) wall
 final                 :   5.11 ( 3%) usr   0.09 ( 2%) sys   5.20 ( 3%) wall
 rest of compilation   :   7.18 ( 4%) usr   0.05 ( 1%) sys   7.22 ( 4%) wall
 TOTAL                 : 177.20             3.62           180.88

There is no difference in the .s file for this test.

It would be *great* to have this patch installed and -freorder-blocks
actually enabled at -O1, since this would put the computed gotos back
to their original spots.

I've included mail-report-with-warnings.log below.

Brad

cat <<'EOF' |
LAST_UPDATED: Thu Mar  6 04:24:16 UTC 2003

Native configuration is alphaev6-unknown-linux-gnu

		=== libjava tests ===


Running target unix
WARNING: program timed out.
FAIL: SyncTest execution - gij test
WARNING: program timed out.
FAIL: SyncTest execution - bytecode->native test
WARNING: program timed out.
FAIL: SyncTest execution - gij test
WARNING: program timed out.
FAIL: SyncTest -O execution - bytecode->native test
FAIL: Thread_Interrupt output - source compiled test
FAIL: Thread_Interrupt -O output - source compiled test
FAIL: initexc execution - gij test
FAIL: initexc execution - gij test

		=== libjava Summary ===

# of expected passes		2929
# of unexpected failures	8
# of expected failures		16
# of untested testcases		18
		=== libstdc++-v3 tests ===


Running target unix
FAIL: 22_locale/codecvt/always_noconv/wchar_t/3.cc execution test
FAIL: 22_locale/codecvt/encoding/wchar_t/3.cc execution test
FAIL: 22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc execution test
FAIL: 22_locale/codecvt/in/wchar_t/3.cc execution test
FAIL: 22_locale/codecvt/length/wchar_t/3.cc execution test
FAIL: 22_locale/codecvt/max_length/wchar_t/3.cc execution test
FAIL: 22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc execution test
FAIL: 22_locale/codecvt/out/wchar_t/3.cc execution test
FAIL: 22_locale/codecvt/unshift/wchar_t/3.cc execution test
FAIL: 22_locale/collate/transform/char/2.cc execution test
FAIL: 22_locale/collate/transform/char/wrapped_env.cc execution test
FAIL: 22_locale/collate/transform/char/wrapped_locale.cc execution test
FAIL: 22_locale/collate/transform/wchar_t/2.cc execution test
FAIL: 22_locale/collate/transform/wchar_t/wrapped_env.cc execution test
FAIL: 22_locale/collate/transform/wchar_t/wrapped_locale.cc execution test
FAIL: 22_locale/collate_byname/1.cc execution test
FAIL: 26_numerics/fabs_inline.cc (test for excess errors)
WARNING: 26_numerics/fabs_inline.cc compilation failed to produce executable
FAIL: 27_io/ios_init.cc execution test

		=== libstdc++-v3 Summary ===

# of expected passes		1168
# of unexpected failures	18
# of expected failures		3
		=== g77 tests ===


Running target unix
FAIL: g77.dg/f77-edit-colon-out.f (test for excess errors)
WARNING: g77.dg/f77-edit-colon-out.f compilation failed to produce executable
FAIL: g77.dg/f77-edit-colon-out.f (test for excess errors)
WARNING: g77.dg/f77-edit-colon-out.f compilation failed to produce executable
FAIL: g77.dg/f77-edit-i-in.f (test for excess errors)
WARNING: g77.dg/f77-edit-i-in.f compilation failed to produce executable
FAIL: g77.dg/f77-edit-slash-out.f (test for excess errors)
WARNING: g77.dg/f77-edit-slash-out.f compilation failed to produce executable
FAIL: g77.dg/f77-edit-slash-out.f (test for excess errors)
WARNING: g77.dg/f77-edit-slash-out.f compilation failed to produce executable
FAIL: g77.dg/f77-edit-t-in.f (test for excess errors)
WARNING: g77.dg/f77-edit-t-in.f compilation failed to produce executable
FAIL: g77.dg/f77-edit-t-in.f (test for excess errors)
WARNING: g77.dg/f77-edit-t-in.f compilation failed to produce executable
FAIL: g77.dg/f77-edit-t-in.f (test for excess errors)
WARNING: g77.dg/f77-edit-t-in.f compilation failed to produce executable
FAIL: g77.dg/f77-edit-t-out.f (test for excess errors)
WARNING: g77.dg/f77-edit-t-out.f compilation failed to produce executable
FAIL: g77.dg/fno-backslash.f (test for excess errors)
WARNING: g77.dg/fno-backslash.f compilation failed to produce executable
FAIL: g77.f-torture/execute/980520-1.f compilation,  -O0 
FAIL: g77.f-torture/noncompile/check0.f

		=== g77 Summary ===

# of expected passes		1616
# of unexpected failures	12
# of untested testcases		1
# of unsupported tests		8
/export/home/lucier/programs/gcc/objdir/gcc/testsuite/../g77 version 3.4 20030306 (experimental)

		=== gcc tests ===


Running target unix
WARNING: program timed out.
FAIL: gcc.c-torture/compile/20001226-1.c,  -O2  
WARNING: program timed out.
FAIL: gcc.c-torture/compile/20001226-1.c,  -O3 -fomit-frame-pointer  
WARNING: program timed out.
FAIL: gcc.c-torture/compile/20001226-1.c,  -O3 -g  
WARNING: program timed out.
FAIL: gcc.c-torture/compile/20001226-1.c,  -Os  
FAIL: gcc.dg/Wreturn-type.c (test for excess errors)
FAIL: gcc.dg/duff-2.c (test for excess errors)
FAIL: gcc.dg/warn-1.c  (test for warnings, line 8)
FAIL: gcc.dg/warn-1.c  (test for warnings, line 15)
FAIL: gcc.dg/pch/inline-1.c (test for excess errors)

		=== gcc Summary ===

# of expected passes		21747
# of unexpected failures	9
# of expected failures		79
# of untested testcases		1
# of unsupported tests		178
/export/home/lucier/programs/gcc/objdir/gcc/xgcc version 3.4 20030306 (experimental)

		=== g++ tests ===


Running target unix
FAIL: g++.dg/warn/Wunused-2.C  (test for warnings, line 5)
FAIL: pch/system-1.C -g assembly comparison
FAIL: pch/system-1.C -O2 -g assembly comparison
FAIL: g++.pt/repo3.C (test for excess errors)

		=== g++ Summary ===

# of expected passes		8274
# of unexpected failures	4
# of expected failures		70
# of untested testcases		22
# of unsupported tests		18
/export/home/lucier/programs/gcc/objdir/gcc/testsuite/../g++ version 3.4 20030306 (experimental)

		=== objc tests ===


Running target unix

		=== objc Summary ===

# of expected passes		1153
/export/home/lucier/programs/gcc/objdir/gcc/xgcc version 3.4 20030306 (experimental)


Compiler version: 3.4 20030306 (experimental) 
Platform: alphaev6-unknown-linux-gnu
configure flags: --prefix=/usr/local/gcc-3.4
Counting all warnings,
there are 15 warnings in stage3 of this bootstrap.

Number of warnings per file:
      6	gcc/crtstuff.c
      2	lib/bison.simple
      2	gcc/gcc.c
      2	gcc/f/sta.c
      1	insn-conditions.c
      1	gcc/objc/lang-specs.h
      1	gcc/java/jvspec.c

Number of warning types:
      6	passing arg ??? of \`???' discards qualifiers from pointer target type
      5	string length \`???' is greater than the length \`???' ISO C89 compilers are required to support
      2	dereferencing type-punned pointer will break strict-aliasing rules
      2	comparison between signed and unsigned
EOF
Mail -s "Results for 3.4 20030306 (experimental) testsuite on alphaev6-unknown-linux-gnu" gcc-testresults@gcc.gnu.org &&
true



More information about the Gcc-patches mailing list