better workaround for optimizer bug in GCC >= 4.3 (stable backport)

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@2006 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Tobias Doerffel
2009-02-05 13:19:18 +00:00
parent 0d90ac3176
commit d3e6f5a348
2 changed files with 19 additions and 7 deletions

View File

@@ -1,5 +1,22 @@
2009-02-05 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
* plugins/ladspa_effect/caps/dsp/Eq.h:
better workaround for optimizer bug in GCC >= 4.3
* plugins/sid/sid_instrument.cpp:
* plugins/flp_import/unrtf.cpp:
* src/core/track.cpp:
added missing header for compilation with GCC 4.4
* include/pattern.h:
* src/tracks/pattern.cpp:
cleanups
* src/core/envelope_and_lfo_parameters.cpp:
- simplified formulas for calculating envelope array resulting in about
3x performance with traditional FPU code
- loops now can be vectorized by GCC 4.4
* include/atomic_int.h:
* include/audio_port.h:
* include/mixer.h:

View File

@@ -84,14 +84,9 @@ class Eq
{
for (int z = 0; z < 2; ++z)
{
// work-around for buggy optimizer in GCC 4.3
for (int i = 0; i < Bands-1; ++i)
y[z][i] = 0;
y[z][Bands-1] = 0;
memset( y[z], 0, Bands*sizeof( eq_sample ) );
x[z] = 0;
}
for (int i = 0; i < 2; ++i)
x[i] = 0;
}
void init (double fs, double Q)