<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVEtvnDAQ_jXsZQQCdtldDhyabCJFSqVKjdpjZfAAboyNbLOPf9-xYZNslFslhB_z-ma-GdeaX6qXXljgGi0o7YCNIzIDTkON4MSAYEdUDoQC1yNIoV7RgHAWZRvl97QDizjYqwXpRNu0kUx1tAI34kj6p140PVAcx16F6qBI09lEqKN-xRvXc6BWGOtglKzBJEoPUfpt_j9Bz44IDCz5kV5Phog4jO6SND7mSbg--Gg0DzJB-AcmVJTvo7yEaHcHBt1kFKTR-o7OB1JK4KmFJ7IZRu-S8rr6sYTvpL1kYIrbaL1AIaPlC8eQM8QNLFAg1stWf1RYrt6leMYv_b1QBhYbrbgvDfrSEUfR7qEoqHgLXKGsQ8bBTGpJOYCE0VDSyKG-vNHxZWSIj75k70zQyRMRUHn-hMHGyctCtVby8gGIx3FLTofUQnLQxB2embcMsCyjRjJoJ-ksTJ46HyhuJ4ux5NH6IOlP4Y6U1yz2Vnpy4-SgNXoI6leoPlmPU_L4K6w3kBZWYupCK7R6I2--X24hWydpcq07M5QFKcJ5v_2z3cRjE5-E4vpk48Eemys7xtd9oBaTXnfUVpyXKhAnTErkB2G86N4HLe5_GN0ZNsAjtZel8_Pzr--01NSXNyVsmHqjM9SNGB7t3I0z6iz1aMHz7Ov9ucCeKzw3OLpPlG08YW8to1ugTkrgp_4wxP4tGI2uJQ5wYpa49Gle6I7GgMaIrshuBuDj1FMI0tN9p51DBSdtaGCIwyaMtUpWvFrzcl2yFZtcr01Fz4yapKTlqAVfTUZWvXNjGKz8kb6OUp3qhHqZDlIer0tMyP4SxXQU1k5UxfyxyPdpueorxtIW2a7d8Xq7zbKm2GS7uqx3ecHLXZ6ylWQ1SltFxV2U5wpPEFzQPioOq_9HIKo8zbMsz9OsTMuiTNpdmaclsiLb1Ntsz6INvVFMyMT7SbTpVqYKLuupsySUwjr7LmTWik4hBsCE0AknsZr5XwZw_ZAmxfJEhMfUDwN1xTzdnsbQb9Tev-f2XQXMVQD8D_0z8Ro>52809</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang takes >0.5 seconds to link an empty program on Windows
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          notnullnotvoid
      </td>
    </tr>
</table>

<pre>
    This does not appear to be time spent in the linker itself, it seems to be the `clang` driver which is taking 500ms to invoke the linker in the first place.

I have a single file `empty.c` with the code `int main() { return 0; }`. If I compile it with these two commands:
```
clang -c empty.c -o empty.o
clang empty.o -o empty.exe
```
The second line takes ~550ms. If I instead run the command printed by `clang empty.o -o empty.exe -v` to invoke `link.exe` directly, it only takes ~50ms.

I get almost exactly the same results using `-fuse-ld=lld` vs. using the output from `-v` to run `lld-link.exe` directly.

clang --version:
clang version 13.0.0
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin

I can run the same steps with clang 10.0.0 and get the same results, except it only takes 450ms instead of 550. So it seems this problem was already present as of 10.0.0, but it has gotten worse since then.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtVNuOmzAQ_RryMgIRJyThgYfuZldaaStVatU-VgYP4K6xkW1y-fuODdmbVkL4Npczc45dG3GtfvXSgTDoQBsPfByRW_AGagQvBwQ3ovYgNfgeQUn9ghakd6jahN3TDBzi4G4eZJPs8kZx3dEIwsoT2Z972fRAeTx_kbqDIs9nF6lP5gU_hJ4TtdI6D6PiDWZJfkzyb_P_CXp-QuDgKI4KdipmxGH016wJOc_S9zFGY0Q8k4R_4FIn7JCwEpL9HVj0k9WQJ5s7Wh_JKIOnFp7IZxhDSKrrFscRvrMJJwPXwiWbBQo5LV9cxpohbWCBAqlZpua9wbL1dooX_DLeL6rAYWO0CK3B0DriKNk_FAU1b4ErtfPIBdhJLyVHkDBaKhoF1NdXOr7MDOkptOyNCVoFIiKqwJ-02Hh1Xag2Wl3fAQk4PpLTIUlIDYa4wwsPnhGW4yQki25S3sEUqAuJ0nZymCqRbI6K_pTuRHXNx8HLTH6cPLTWDNH8BjUUG3AqkX6F9QOkhZWUVOik0a_kzfvLLqw3WZ7d-s4tVUGGcDns_u626dikZ6mFObt0cKfmxo4NfR9IYirYjsbJy9IF4oQrheIobTi6D0mL-x_WdJYP8EjycrR-fv79nYaadPmhhQ3Xr3TGvhHDo5vVOKNe5wEtBJ5Dvz83OHCFlwZH_4mybSDsVTKmBVJSBj_Nu0sc3oLRmlrhAGfuiMtQ5pX26BrQNaIt8psBhDz1FJP0tN8Z71HD2Vi6MMRhE6-1zlai2ohyU_KVl15hNdewiGjzkGfFIvP4IARCqbJZoQFK7BlR9GemYDVZVfXej_Eeskf6OurMVGckfVoodboNKXn_I0XQUjo3UdPZY8EOebnqq_V-J7hAtm14UdZ13RasYNu6OeTtXmxYsVK8RuWqpLhLGNN4hhiC5klxXMmK5Wy9Zixfl3lZlFm7L1leIi_W23q3PvBkSw8SlyoLODJju5WtIqR66hwdKum8ezvkzslOI8Z0FJ9Pvje2ovdYT0rRcDJSrCKCKlbwH3ie29E">