Comments (3)
When -O2 is replaced with -O0 it works. Perhaps some buggy optimization in GCC?
Original comment by [email protected]
on 31 May 2010 at 12:14
from fog.
Is this issue still valid?
I did some changes, but I don't know if it's affected.
Original comment by kobalicek.petr
on 22 Jul 2010 at 4:45
from fog.
Still valid.
I replaced some of the macros with the code, added some printf()s there and
this is what I got:
L1 - cMaskOpaque_small_begin: w = -11
L2 - cMaskOpaque_small_skip: w = -14
A3 - about to goto cMaskOpaque_main_skip, w = -18
L3 - cMaskOpaque_main_skip: w = -18
A4 - about to goto cMaskOpaque_small_begin, w = -14
L1 - cMaskOpaque_small_begin: w = -14
L2 - cMaskOpaque_small_skip: w = -18
A3 - about to goto cMaskOpaque_main_skip, w = -22
L3 - cMaskOpaque_main_skip: w = -22
A4 - about to goto cMaskOpaque_small_begin, w = -18
L1 - cMaskOpaque_small_begin: w = -18
L2 - cMaskOpaque_small_skip: w = -22
A3 - about to goto cMaskOpaque_main_skip, w = -26
L3 - cMaskOpaque_main_skip: w = -26
A4 - about to goto cMaskOpaque_small_begin, w = -22
L1 - cMaskOpaque_small_begin: w = -22
L2 - cMaskOpaque_small_skip: w = -26
A3 - about to goto cMaskOpaque_main_skip, w = -30
L3 - cMaskOpaque_main_skip: w = -30
A4 - about to goto cMaskOpaque_small_begin, w = -26
L1 - cMaskOpaque_small_begin: w = -26
L2 - cMaskOpaque_small_skip: w = -30
A3 - about to goto cMaskOpaque_main_skip, w = -34
L3 - cMaskOpaque_main_skip: w = -34
A4 - about to goto cMaskOpaque_small_begin, w = -30
L1 - cMaskOpaque_small_begin: w = -30
L2 - cMaskOpaque_small_skip: w = -34
A3 - about to goto cMaskOpaque_main_skip, w = -38
L3 - cMaskOpaque_main_skip: w = -38
A4 - about to goto cMaskOpaque_small_begin, w = -34
L1 - cMaskOpaque_small_begin: w = -34
L2 - cMaskOpaque_small_skip: w = -38
A3 - about to goto cMaskOpaque_main_skip, w = -42
L3 - cMaskOpaque_main_skip: w = -42
A4 - about to goto cMaskOpaque_small_begin, w = -38
// -- still decreasing w, lots and lots of printf()s here
L1 - cMaskOpaque_small_begin: w = -303766
L2 - cMaskOpaque_small_skip: w = -303770
A3 - about to goto cMaskOpaque_main_skip, w = -303774
L3 - cMaskOpaque_main_skip: w = -303774
A4 - about to goto cMaskOpaque_small_begin, w = -303770
L1 - cMaskOpaque_small_begin: w = -303770
L2 - cMaskOpaque_small_skip: w = -303774
A3 - about to goto cMaskOpaque_main_skip, w = -303778
L3 - cMaskOpaque_main_skip: w = -303778
A4 - about to goto cMaskOpaque_small_begin, w = -303774
// !!! Crash here !!! gdb output:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b4cd2d in
Fog::RasterEngine::CompositeBaseFuncsSSE2<Fog::RasterEngine::CompositeScreenSSE2
>::xrgb32_cblit_prgb32_span(unsigned char*, Fog::RasterSolid const*, Fog::Span
const*, Fog::RasterClosure const*) ()
from /home/jardik/Projects/fog-build/libFog.so
Looking at the output of DEBUG build (which works) there is not that much
printf()s in a single function execution and "w" never decreases that much. For
me it looks like some kind of compiler failure when there is lots of inlining -
and gcc failes to inline some functions:
[ 73%] Building CXX object
CMakeFiles/Fog.dir/Fog/Graphics/RasterEngine/Init_SSE2.cpp.o
In file included from
/home/jardik/Projects/fog/Fog/Fog/Graphics/RasterEngine/Init_SSE2.cpp:51:0:
/home/jardik/Projects/fog/Fog/Fog/Graphics/RasterEngine/Composite_SSE2_Clear_p.h
: In static member function ‘static void
Fog::RasterEngine::CompositeClearSSE2::prgb32_vblit_span(uint8_t*, const
Fog::Span*, const Fog::RasterClosure*)’:
/home/jardik/Projects/fog/Fog/Fog/Graphics/RasterEngine/Composite_SSE2_Clear_p.h
:71:28: warning: inlining failed in call to ‘static void
Fog::RasterEngine::CompositeClearSSE2::prgb32_cblit_span(uint8_t*, const
Fog::RasterSolid*, const Fog::Span*, const Fog::RasterClosure*)’: --param
max-inline-insns-single limit reached
/home/jardik/Projects/fog/Fog/Fog/Graphics/RasterEngine/Composite_SSE2_Clear_p.h
:253:48: warning: called from here
/home/jardik/Projects/fog/Fog/Fog/Graphics/RasterEngine/Composite_SSE2_Clear_p.h
: In static member function ‘static void
Fog::RasterEngine::CompositeClearSSE2::xrgb32_vblit_span(uint8_t*, const
Fog::Span*, const Fog::RasterClosure*)’:
/home/jardik/Projects/fog/Fog/Fog/Graphics/RasterEngine/Composite_SSE2_Clear_p.h
:269:28: warning: inlining failed in call to ‘static void
Fog::RasterEngine::CompositeClearSSE2::xrgb32_cblit_span(uint8_t*, const
Fog::RasterSolid*, const Fog::Span*, const Fog::RasterClosure*)’: --param
max-inline-insns-single limit reached
/home/jardik/Projects/fog/Fog/Fog/Graphics/RasterEngine/Composite_SSE2_Clear_p.h
:457:48: warning: called from here
Original comment by [email protected]
on 31 Oct 2010 at 9:00
Attachments:
from fog.
Related Issues (20)
- Compilation Failed on MinGW HOT 2
- About onPrepare,onPrepare,onPattern HOT 2
- A patch to improve 64-bit and standards compliance for MingW64 target HOT 1
- A Patch for Image Codecs to compile under MingW64 GCC 4.6.2 HOT 4
- Forcing inlining gives an error with MingW64 compiler HOT 12
- windows MinGW release version can't compile HOT 14
- how to render images in skia ] HOT 2
- about layout and button HOT 3
- Framework not compiling on Mac Platform HOT 3
- Linux error when compile HOT 5
- Support Qt4 bench also on other OSs than Linux HOT 2
- Several files reference files with names in wrong letter case HOT 3
- Compilation errors with OTCore.h HOT 2
- OSX build fails because of two _FOG_NO_COPY() uses HOT 1
- Windows compile error HOT 1
- Image_writeToStream leaks reference to stream HOT 1
- control87 errors on MinGW HOT 2
- Many errors HOT 3
- _FOG_RASTER_IMAGE_PARAMS is incorrect HOT 1
- ‘__m64’ does not name a type on Linux HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fog.