mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-02 16:38:41 +00:00
Enable IPO/LTO by default except for debug builds (#14198)
Test case: ``` $ cmake . -DRUN_IN_PLACE=TRUE -DCMAKE_BUILD_TYPE=Release -DBUILD_SERVER=TRUE -DENABLE_TOUCH=FALSE minetest minetestserver W/o LTO: 13M 7.3M W/ LTO: 11M 5.9M difference: 15% 19% ``` Also fixes various compiler warnings resulting from compilation using LTO. --------- Signed-off-by: David Heidelberg <david@ixit.cz>
This commit is contained in:
parent
adaa4cc2f3
commit
eb52a149a0
7 changed files with 49 additions and 33 deletions
|
@ -213,10 +213,10 @@ void Particle::step(float dtime)
|
|||
|
||||
if (m_p.animation.type != TAT_NONE) {
|
||||
m_animation_time += dtime;
|
||||
int frame_length_i, frame_count;
|
||||
int frame_length_i = 0;
|
||||
m_p.animation.determineParams(
|
||||
m_material.getTexture(0)->getSize(),
|
||||
&frame_count, &frame_length_i, NULL);
|
||||
NULL, &frame_length_i, NULL);
|
||||
float frame_length = frame_length_i / 1000.0;
|
||||
while (m_animation_time > frame_length) {
|
||||
m_animation_frame++;
|
||||
|
|
|
@ -210,7 +210,7 @@ void GUITable::setTable(const TableOptions &options,
|
|||
s32 colcount = columns.size();
|
||||
assert(colcount >= 1);
|
||||
// rowcount = ceil(cellcount / colcount) but use integer arithmetic
|
||||
s32 rowcount = (content.size() + colcount - 1) / colcount;
|
||||
s32 rowcount = std::min(((u32)content.size() + colcount - 1) / colcount, (u32)S32_MAX);
|
||||
assert(rowcount >= 0);
|
||||
// Append empty strings to content if there is an incomplete row
|
||||
s32 cellcount = rowcount * colcount;
|
||||
|
|
|
@ -734,7 +734,7 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer,
|
|||
int frame_count = 1;
|
||||
if (layer->material_flags & MATERIAL_FLAG_ANIMATION) {
|
||||
assert(layer->texture);
|
||||
int frame_length_ms;
|
||||
int frame_length_ms = 0;
|
||||
tiledef.animation.determineParams(layer->texture->getOriginalSize(),
|
||||
&frame_count, &frame_length_ms, NULL);
|
||||
layer->animation_frame_count = frame_count;
|
||||
|
|
|
@ -167,26 +167,6 @@ int ModApiServer::l_get_player_information(lua_State *L)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
Be careful not to introduce a depdendency on the connection to
|
||||
the peer here. This function is >>REQUIRED<< to still be able to return
|
||||
values even when the peer unexpectedly disappears.
|
||||
Hence all the ConInfo values here are optional.
|
||||
*/
|
||||
|
||||
auto getConInfo = [&] (con::rtt_stat_type type, float *value) -> bool {
|
||||
return server->getClientConInfo(player->getPeerId(), type, value);
|
||||
};
|
||||
|
||||
float min_rtt, max_rtt, avg_rtt, min_jitter, max_jitter, avg_jitter;
|
||||
bool have_con_info =
|
||||
getConInfo(con::MIN_RTT, &min_rtt) &&
|
||||
getConInfo(con::MAX_RTT, &max_rtt) &&
|
||||
getConInfo(con::AVG_RTT, &avg_rtt) &&
|
||||
getConInfo(con::MIN_JITTER, &min_jitter) &&
|
||||
getConInfo(con::MAX_JITTER, &max_jitter) &&
|
||||
getConInfo(con::AVG_JITTER, &avg_jitter);
|
||||
|
||||
ClientInfo info;
|
||||
if (!server->getClientInfo(player->getPeerId(), info)) {
|
||||
warningstream << FUNCTION_NAME << ": no client info?!" << std::endl;
|
||||
|
@ -211,6 +191,26 @@ int ModApiServer::l_get_player_information(lua_State *L)
|
|||
}
|
||||
lua_settable(L, table);
|
||||
|
||||
/*
|
||||
Be careful not to introduce a depdendency on the connection to
|
||||
the peer here. This function is >>REQUIRED<< to still be able to return
|
||||
values even when the peer unexpectedly disappears.
|
||||
Hence all the ConInfo values here are optional.
|
||||
*/
|
||||
|
||||
auto getConInfo = [&] (con::rtt_stat_type type, float *value) -> bool {
|
||||
return server->getClientConInfo(player->getPeerId(), type, value);
|
||||
};
|
||||
|
||||
float min_rtt, max_rtt, avg_rtt, min_jitter, max_jitter, avg_jitter;
|
||||
bool have_con_info =
|
||||
getConInfo(con::MIN_RTT, &min_rtt) &&
|
||||
getConInfo(con::MAX_RTT, &max_rtt) &&
|
||||
getConInfo(con::AVG_RTT, &avg_rtt) &&
|
||||
getConInfo(con::MIN_JITTER, &min_jitter) &&
|
||||
getConInfo(con::MAX_JITTER, &max_jitter) &&
|
||||
getConInfo(con::AVG_JITTER, &avg_jitter);
|
||||
|
||||
if (have_con_info) { // may be missing
|
||||
lua_pushstring(L, "min_rtt");
|
||||
lua_pushnumber(L, min_rtt);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue