&gt; Example: you pass an object by value, and only read one field, can it optimize this?<p>Yes.<p><pre><code>    struct S { int a,b; };
    void foo(int); &#x2F;&#x2F; Some external function
    void bar(S s) { foo(s.a); }
    void baz() { bar(S{42, 55}); }
</code></pre>
compiles the baz function to (-O2 on GCC 4.9)<p><pre><code>    movl    $42, %edi
    jmp     _Z3fooi</code></pre>