Devirtualization experiments gcc vs clang
tests | gcc-6.2 | clang-3.9 | clang-3.9 | comment |
---|---|---|---|---|
test1 | y | y | y | |
test2 | y | y | y | |
test3 | y | y | y | |
test4 | y | y | y | |
test5 | y | y | y | |
test6 | y | y | y | |
test7 | y | y | y | |
test8 | speculative | n | y | |
test9 | speculative | n | y |
multiple_calls | ||||
---|---|---|---|---|
1 | y | y | y | |
2 | n /w x loads | n /w 2 loads | n /w 1 load | |
3 | n /w x loads | n /w 2 loads | n /w 1 load |
after-inlinig | ||||
---|---|---|---|---|
1 | y | y | y | |
2 | y | n | y | |
3 | y | n | y |
inline functions | ||||
---|---|---|---|---|
1 | y | y | y | |
2 | y | n | n | vtable not available |
3 | y | n | n | vtable not available |