String optimisations gone?
Dave Korn
dk@artimi.com
Wed Mar 24 19:23:00 GMT 2004
Afternoon all,
Could someone tell me if the compile-time string optimisations were
deliberately disabled between 3.2 and 3.3? I've been working with a custom
backend in 3.2, and just tried up-porting it to 3.3.3; now I see lots of
diffs like this in the testsuite runs:
@@ -10181,16 +10181,16 @@ PASS: gcc.c-torture/execute/string-opt-8
PASS: gcc.c-torture/execute/string-opt-8.c execution, -Os
FAIL: gcc.c-torture/execute/string-opt-9.c compilation, -O0
UNRESOLVED: gcc.c-torture/execute/string-opt-9.c execution, -O0
-PASS: gcc.c-torture/execute/string-opt-9.c compilation, -O1
-PASS: gcc.c-torture/execute/string-opt-9.c execution, -O1
-PASS: gcc.c-torture/execute/string-opt-9.c compilation, -O2
-PASS: gcc.c-torture/execute/string-opt-9.c execution, -O2
-PASS: gcc.c-torture/execute/string-opt-9.c compilation, -O3
-fomit-frame-pointer
-PASS: gcc.c-torture/execute/string-opt-9.c execution, -O3
-fomit-frame-pointer
-PASS: gcc.c-torture/execute/string-opt-9.c compilation, -O3 -g
-PASS: gcc.c-torture/execute/string-opt-9.c execution, -O3 -g
-PASS: gcc.c-torture/execute/string-opt-9.c compilation, -Os
-PASS: gcc.c-torture/execute/string-opt-9.c execution, -Os
+FAIL: gcc.c-torture/execute/string-opt-9.c compilation, -O1
+UNRESOLVED: gcc.c-torture/execute/string-opt-9.c execution, -O1
+FAIL: gcc.c-torture/execute/string-opt-9.c compilation, -O2
+UNRESOLVED: gcc.c-torture/execute/string-opt-9.c execution, -O2
+FAIL: gcc.c-torture/execute/string-opt-9.c compilation, -O3
-fomit-frame-pointer
+UNRESOLVED: gcc.c-torture/execute/string-opt-9.c execution, -O3
-fomit-frame-pointer
+FAIL: gcc.c-torture/execute/string-opt-9.c compilation, -O3 -g
+UNRESOLVED: gcc.c-torture/execute/string-opt-9.c execution, -O3 -g
+FAIL: gcc.c-torture/execute/string-opt-9.c compilation, -Os
+UNRESOLVED: gcc.c-torture/execute/string-opt-9.c execution, -Os
Now, on my small embedded target we don't have any string functions (in
fact, we barely have a runtime lib at all), and all those FAILed
compilations were failing with 'cannot resolve _strlen' or similar at
linktime. But it worked ok for 3.2 at all levels above -O0, because the
functions were operating on constant strings and so were optimised away.
I've had a look through the list archives and I can't find anything obvious
(using search terms such as 'disable string optimisation'), so I'd just like
it if someone could confirm or deny to me that they've been deliberately
disabled; then I'll know whether my backend is doing something disasterously
wrong.
cheers,
DaveK
--
Can't think of a witty .sigline today....
More information about the Gcc
mailing list