[Bug middle-end/77546] New: [5 to 6 regression] C++ software renderer performance drop
tulipawn at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Sep 9 23:34:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77546
Bug ID: 77546
Summary: [5 to 6 regression] C++ software renderer performance
drop
Product: gcc
Version: 6.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: tulipawn at gmail dot com
Target Milestone: ---
Created attachment 39595
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39595&action=edit
Annotated assembly files
I've found a regression in the linked C++ software renderer on aarch64.
Doing a `configure && make && make bench` yields:
GCC5 Average value: 37.912720
GCC6 Average value: 35.691360
CPU: ARM Cortex-A53, speed 1536 MHz (estimated)
GCC5
samples % linenr info image name app name
symbol
2760258 67.5931 Screen.cc:76 renderer renderer
unsigned int IlluminatePixel<FatPointPhongAndSoftShadowed,
TriangleCarrier<FatPointPhongAndSoftShadowed> >(FatPointPhongAndSoftShadowed
const&, TriangleCarrier<FatPointPhongAndSoftShadowed> const&, Scene const&,
SDL_Surface*)
682926 16.7235 Rasterizers.cc:249 renderer renderer
RasterizeScene<FatPointPhongAndSoftShadowed>::DrawTriangles(int, int) const
[clone ._omp_fn.7] [clone .lto_priv.84]
155381 3.8050 (no location information) libgomp.so.1.0.0 renderer
/usr/lib/aarch64-linux-gnu/libgomp.so.1.0.0
111829 2.7385 Screen.h:349 renderer renderer
void DrawPixelBasic<4>(int, int, unsigned int)
105202 2.5762 (no location information) libSDL-1.2.so.0.11.4 renderer
/usr/lib/aarch64-linux-gnu/libSDL-1.2.so.0.11.4
89315 2.1871 ScanConverter.h:37 renderer renderer
ScanConverter<FatPointPhongAndSoftShadowed,
Screen::AccessProjectionX<FatPointPhongAndSoftShadowed>, 600>::ScanlineAdd(int,
FatPointPhongAndSoftShadowed const&)
80560 1.9727 ScanConverter.h:96 renderer renderer
ScanConverter<FatPointPhongAndSoftShadowed,
Screen::AccessProjectionX<FatPointPhongAndSoftShadowed>, 600>::InnerLoop(int,
int, FatPointPhongAndSoftShadowed const&, FatPointPhongAndSoftShadowed const&)
54032 1.3231 memset.S:56 libc-2.23.so renderer
memset
19974 0.4891 (no location information) no-vmlinux renderer
/no-vmlinux
13407 0.3283 Algebra.h:28 renderer renderer
Matrix3::multiplyRightWith(Vector3 const&) const
2771 0.0679 Light.cc:101 renderer renderer
DrawSceneInShadowBuffer::DrawTriangles(int, int) const [clone
._omp_fn.0] [clone .lto_priv.71]
2253 0.0552 vector.tcc:452 renderer renderer
std::vector<FatPointPhongAndSoftShadowed,
std::allocator<FatPointPhongAndSoftShadowed>
>::_M_fill_insert(__gnu_cxx::__normal_iterator<FatPointPhongAndSoftShadowed*,
std::vector<FatPointPhongAndSoftShadowed,
std::allocator<FatPointPhongAndSoftShadowed> > >, unsigned long,
FatPointPhongAndSoftShadowed const&)
783 0.0192 renderer.cc:169 renderer renderer
main
GCC6
samples % linenr info image name app name
symbol name
2914396 66.8866 Screen.cc:76 renderer renderer
unsigned int IlluminatePixel<FatPointPhongAndSoftShadowed,
TriangleCarrier<FatPointPhongAndSoftShadowed> >(FatPointPhongAndSoftShadowed
const&, TriangleCarrier<FatPointPhongAndSoftShadowed> const&, Scene const&,
SDL_Surface*)
708202 16.2535 Rasterizers.cc:249 renderer renderer
RasterizeScene<FatPointPhongAndSoftShadowed>::DrawTriangles(int, int) const
[clone ._omp_fn.7] [clone .lto_priv.61]
157237 3.6087 (no location information) libgomp.so.1.0.0 renderer
/usr/lib/aarch64-linux-gnu/libgomp.so.1.0.0
106485 2.4439 Screen.h:349 renderer renderer
void DrawPixelBasic<4>(int, int, unsigned int)
104818 2.4056 (no location information) libSDL-1.2.so.0.11.4 renderer
/usr/lib/aarch64-linux-gnu/libSDL-1.2.so.0.11.4
95259 2.1862 Types.h:61 renderer renderer
Vector3::length()
90035 2.0663 ScanConverter.h:37 renderer renderer
ScanConverter<FatPointPhongAndSoftShadowed,
Screen::AccessProjectionX<FatPointPhongAndSoftShadowed>, 600>::ScanlineAdd(int,
FatPointPhongAndSoftShadowed const&)
78224 1.7953 ScanConverter.h:90 renderer renderer
ScanConverter<FatPointPhongAndSoftShadowed,
Screen::AccessProjectionX<FatPointPhongAndSoftShadowed>, 600>::InnerLoop(int,
int, FatPointPhongAndSoftShadowed const&, FatPointPhongAndSoftShadowed const&)
56357 1.2934 memset.S:56 libc-2.23.so renderer
memset
21294 0.4887 (no location information) no-vmlinux renderer
/no-vmlinux
14197 0.3258 Algebra.h:28 renderer renderer
Matrix3::multiplyRightWith(Vector3 const&) const
2842 0.0652 Light.cc:101 renderer renderer
DrawSceneInShadowBuffer::DrawTriangles(int, int) const [clone
._omp_fn.0] [clone .lto_priv.71]
2159 0.0495 vector.tcc:540 renderer renderer
std::vector<FatPointPhongAndSoftShadowed,
std::allocator<FatPointPhongAndSoftShadowed> >::_M_default_append(unsigned
long) [clone .part.131] [clone .lto_priv.57]
756 0.0174 renderer.cc:169 renderer renderer
main
FLAGS used:
-Ofast -mcpu=cortex-a53 -fomit-frame-pointer -fipa-pta -march=armv8-a+crc
More information about the Gcc-bugs
mailing list