Posts Tagged ‘LHS’

Why You Should Never Cast Floats To Ints

The seemingly simple act of assigning an int to a float variable, or vice versa, can be astonishingly expensive. In some architectures it may cost 40 cycles or even more! The reasons for this have to do with rounding and the load-hit-store issue, but the outcome is simple: never cast a float to an int […]

More on __restrict

The __restrict keyword doesn’t affect how the compiler itself aliases pointers: instead, it’s about what the compiler can assume you, the progammer, may or may not have aliased.

Load-hit-stores and the __restrict keyword

A load-hit-store is a large stall that occurs when the processor writes data to an address x and then tries to load that data from x again too soon. __restrict is a C++ compiler directive that helps avoid load-hit-store stalls.