Object file questions

Artur Skawina via D.gnu d.gnu at puremagic.com
Sun Aug 17 04:46:05 PDT 2014


On 08/17/14 09:57, Timo Sintonen via D.gnu wrote:

> What is the purpose of volatile_dummy? Even if it is not used,

Ensuring ordering, w/o it the compiler could reorder operations
on different volatile objects. (Which isn't necessarily a bad thing,
but people expect certain semantics of 'volatile', so it would be
a bad and dangerous default)

> the address for it is calculated in several places.

It's completely optimized away for me (I'm testing on x86). Can you
show the emitted code?

> The struct members are defined saparately. This means the address
> of every member is stored and fetched separately. The compiler
> seems to remove some of these and use the pointer, but I am not
> sure what happens when the structs are bigger.

Yes, the compiler does not to generate optimal code, but so far I've
only seen dead immediate-constant->register loads; so it's not a
huge problem.

artur


More information about the D.gnu mailing list