bring clang (and g++) back to O3
cleanup jpegenc error handling
This commit is contained in:
ac-stef
2016-09-19 18:16:19 +02:00
parent efc04fe2dc
commit 9afca836c9
3 changed files with 19 additions and 15 deletions
+3 -3
View File
@@ -26,11 +26,11 @@ ifeq ($(ACDEBUG),yes)
endif
ifneq (,$(findstring clang,$(CXX)))
CXXFLAGS= -O2 -fomit-frame-pointer
override CXXFLAGS+= -Wall -fsigned-char
CXXFLAGS= -O3 -fomit-frame-pointer
override CXXFLAGS+= -Wall -fsigned-char -fno-strict-aliasing
else
CXXFLAGS= -O3 -fomit-frame-pointer
override CXXFLAGS+= -Wall -fsigned-char -ffast-math -rdynamic -Wno-format-zero-length
override CXXFLAGS+= -Wall -fsigned-char -ffast-math -rdynamic -Wno-format-zero-length -fno-strict-aliasing
endif
INCLUDES= -I. -Ibot -I../enet/include
+10 -12
View File
@@ -210,8 +210,7 @@ class jpegenc
void writebits(bitstring bs);
void compute_Huffman_table(BYTE *nrcodes, BYTE *std_table, bitstring *HT);
void init_Huffman_tables(void);
void exitmessage(const char *error_message);
void set_numbers_category_and_bitcode();
int set_numbers_category_and_bitcode();
void precalculate_YCbCr_tables();
void prepare_quant_tables();
void fdct_and_quantization(SBYTE *data, float *fdtbl, SWORD *outdata);
@@ -567,22 +566,16 @@ void jpegenc::init_Huffman_tables()
compute_Huffman_table(std_ac_chrominance_nrcodes, std_ac_chrominance_values, CbAC_HT);
}
void jpegenc::exitmessage(const char *error_message)
{
printf("%s\n",error_message);
exit(EXIT_FAILURE);
}
void jpegenc::set_numbers_category_and_bitcode()
int jpegenc::set_numbers_category_and_bitcode()
{
SDWORD nr;
SDWORD nrlower, nrupper;
BYTE cat;
category_alloc = (BYTE *)malloc(65535*sizeof(BYTE));
if (category_alloc == NULL) exitmessage("Not enough memory.");
if (category_alloc == NULL) return -1;
category = category_alloc + 32767;
bitcode_alloc=(bitstring *)malloc(65535*sizeof(bitstring));
if (bitcode_alloc==NULL) exitmessage("Not enough memory.");
if (bitcode_alloc==NULL) { free(category_alloc); return -1; }
bitcode = bitcode_alloc + 32767;
nrlower = 1;
nrupper = 2;
@@ -603,6 +596,7 @@ void jpegenc::set_numbers_category_and_bitcode()
nrlower <<= 1;
nrupper <<= 1;
}
return 0;
}
void jpegenc::precalculate_YCbCr_tables()
@@ -836,7 +830,11 @@ int jpegenc::encode(const char *filename, SDL_Surface *image, int jpegquality)
set_DQTinfo(jpegquality);
set_DHTinfo();
init_Huffman_tables();
set_numbers_category_and_bitcode();
if(set_numbers_category_and_bitcode() < 0)
{
delete fp_jpeg_stream;
return -2;
}
precalculate_YCbCr_tables();
prepare_quant_tables();
+6
View File
@@ -179,10 +179,12 @@ struct vertmodel : model
numdyndraws = draws.length();
}
#ifdef LINUXBUGISBACK
#if defined(__GNUC__) && defined(__OPTIMIZE__) && !defined(__clang__) && !defined(__ICL) && __GNUC__ >= 4 && __GNUC_MINOR__ > 4
__attribute__((optimize(2)))
#elif defined(__clang__) && __clang_major__ >= 4
__attribute__((optnone))
#endif
#endif
dyncacheentry *gendynverts(animstate &as, anpos &cur, anpos *prev, float ai_t)
{
@@ -295,10 +297,12 @@ struct vertmodel : model
}
}
#ifdef LINUXBUGISBACK
#if defined(__GNUC__) && defined(__OPTIMIZE__) && !defined(__clang__) && !defined(__ICL) && __GNUC__ >= 4 && __GNUC_MINOR__ > 4
__attribute__((optimize(2)))
#elif defined(__clang__) && __clang_major__ >= 4
__attribute__((optnone))
#endif
#endif
shadowcacheentry *genshadowvolume(animstate &as, anpos &cur, anpos *prev, float ai_t, vec *buf)
{
@@ -360,10 +364,12 @@ struct vertmodel : model
return d;
}
#ifdef LINUXBUGISBACK
#if defined(__GNUC__) && defined(__OPTIMIZE__) && !defined(__clang__) && !defined(__ICL) && __GNUC__ >= 4 && __GNUC_MINOR__ > 4
__attribute__((optimize(2)))
#elif defined(__clang__) && __clang_major__ >= 4
__attribute__((optnone))
#endif
#endif
lightcacheentry *lightvertexes(animstate &as, anpos &cur, anpos *prev, float ai_t, vec *buf)
{