Issue 134521
Summary Use LEA for small immediates when optimizing for size
Labels new issue
Assignees
Reporter SeeSpring
    https://stackoverflow.com/questions/76795806/advantage-of-using-lea-over-mov-for-passing-parameters-in-assembly-compiled-from

> `lea r32, [reg+disp8]` is 3 bytes, vs. `mov r32, imm32` being 5 bytes.

> clang `-Oz` use[s] `push imm8/pop reg` for code-size optimization even at significant cost to performance; [Godbolt](https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGIM6SuADJ4DJgAcj4ARpjEIAAcpAAOqAqETgwe3r7%2ByanpAiFhkSwxcYl2mA4ZQgRMxARZPn4BldUCtfUERRHRsQm2dQ1NOa1D3aG9pf3xAJS2qF7EyOwc5gDMocjeWADUJutuyAoE%2BIIH2CYaAIJX1wBuqHjou1QQuyfoICBeoQTrZgA%2BgRdqQPqdvr9BADgaDwV8fn8YSCwZ9IUigSDZvt1lYbndHs9dgRMCd3oSXrM7iYAOx4667Rmvd5cOFmOHrOGSXbYg702kAEQ481onAArLw/BwtKRUJw3NZrB9FstMPszOseKQCJphfMANYgMU0gB08XWGkkYoAnDSaRouFJrdJRRxJJLdbLOLwFCANNrdfM4LAYIgUKgWEk6LFyJQ0JHo3F7sgkklAfcuNbAQYSSdAaoAGzSLD3PArABqeEwAHcAPJJRicLU0Wgk4i%2BiBRT1RUL1ACeTd4PeYxD7tai2iqOu4vHjbEEtYYtAH0t4WCiXmAbjEtF9M9IWBYhmA4lXB7wxCneHupM9mFUVS8JM9f0wrpltDwUWI/Y8WE9BDEHgLCDvMVAGMACiVjW9aNvu/CCCIYjsFIMiCIoKjqGeuhcPox4oIqlj6F%2BvqQPMqBJI4Ah7gA9GipiWNYXA0rsNG1mYvCoDexBAVgpEQPMbRUX4ECuCMfi4cEkwlGUegpGkwniXJ%2BTCT0Mn9LhQk1OMSmaW%2BV4dOMal9HEmk6Z4zR6CcXTGdMpmCSqKwSCK4oemecocLshbciwCjJrsGbWiaOakiCEC4IQJDqpqsy8NOWizAaRr%2Bq67qkCB6ySCa1pmPEBa5VwYqSDSkjWhoARSjKHk%2Bn6AarkGoYQEg8ZRvQZAUBALWJigBhGMCxBeAw%2BoHpgpYVlWdYNlKzZ0G2HZdmew79oOpBLaO46Tg4K1zowBCLsunrrpu260LuK2Hsep4yvgl7VDee4yvej7Pmer7vrwn7fr%2BGCrDKgHAaBfAQVBE2wdNvAIcIojiKhkMYWonq6AEvXGIRNiffx5GURke4ALS1gonHcbxt5kbY%2BntCJYkWTkkkMOgtmybh8kFJkNMSXkCkZIzGnk/YwmdMM7NWRTAtGdJJlWeZ2Qc9ZDQ8/ZCxLE5XAuRwEqkJVnGcF5eW40WuzbMeuwQIBg36ti4X4EQxDRarcWBmraUZVwJo0us8QaB7YqOtazEFkVmuetVti1fFwqkMGYZdW1sadRGrX9JBzBJAoCCoAQI1jZg0GTXBM2trE83dr2o4rWtY4TlO20RvOe1Liu12YBuW47nuWoXUYV1rheV73XeD7IE%2Bv28G9nqfT%2Bo5/iP2pASBM5gcDudgytkNITD0hw0oCPYSA6x4UYBGMURGPwFjwl47WABeROxCTmN8wZVP07pgT0wrylcwIr8s6pEt2SLfm2kuivy0oZGy/8maDBAcLMyEDiiS1VkrVUzl9CuSDu5HWqg9YG2AMgZAJszZDUthFG2dtYp1QSk7XgGV1gmnWAwxhTCmEYKqt6UO/pw6JVIIaSQZgTRcALNaIq5UzDWniPEMUGgCxoI4OsNybCOAO3qmrDirDtZKMoXqUg3E0jOEkEAA). That's also 3 bytes, but much less efficient.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to