今天碰到一个gcc优化相关的问题,为了让一个页变成脏页(页表中dirty位被置上),需要执行下面这段代码: uint32_t * page; // ... page[ 0 ] = page[ 0 ]; 最后一行代码很有可能被gcc优化掉,因为这段代码看起来没有任何实际的作用。那么如何防止gcc对这段代码做优化呢? 设置gcc编译时优化级别为-O0肯定是不合适的,这样对程序性能影响会比较大。stac…
今天碰到一个gcc优化相关的问题,为了让一个页变成脏页(页表中dirty位被置上),需要执行下面这段代码: uint32_t * page; // ... page[ 0 ] = page[ 0 ]; 最后一行代码很有可能被gcc优化掉,因为这段代码看起来没有任何实际的作用。那么如何防止gcc对这段代码做优化呢? 设置gcc编译时优化级别为-O0肯定是不合适的,这样对程序性能影响会比较大。stac…
讨论
登录后参与讨论
还没有评论,来说第一句吧。