[llvm] [RISCV] Only convert volatile i64 load/store to Zilsd in SelectionDAG. (PR #169529)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 23 19:25:18 PST 2025


topperc wrote:

> embench-iot 1.0:
> 
> <img alt="image" width="2000" height="1013" src="https://private-user-images.githubusercontent.com/101172126/519228596-bf9c7551-adeb-4963-82fc-59fb048df0b3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY1MzY2ODUsIm5iZiI6MTc2NjUzNjM4NSwicGF0aCI6Ii8xMDExNzIxMjYvNTE5MjI4NTk2LWJmOWM3NTUxLWFkZWItNDk2My04MmZjLTU5ZmIwNDhkZjBiMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNFQwMDMzMDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mMWE0OTZiOGZhN2NhYzk2MTQ1ZGFiYzNlY2ZhMGJhYWZjMjI2NWRjNWI0NjBmOWFlMDU2MTJiMTFiZGZmNmYzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.YWHzP3bGCu9vawyHSAFAFGzqrtSUV1q1-Vcw0dXuE5s">
> The cubic benchmark seems to be exposing a weakness in both approaches. Might be worthwhile to dive deeper into that.
> 
> eembc:
> 
> <img alt="image" width="2000" height="1013" src="https://private-user-images.githubusercontent.com/101172126/519229637-20eb6969-d521-4a66-b26c-5ee6bf7b4e6e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjY1MzY2ODUsIm5iZiI6MTc2NjUzNjM4NSwicGF0aCI6Ii8xMDExNzIxMjYvNTE5MjI5NjM3LTIwZWI2OTY5LWQ1MjEtNGE2Ni1iMjZjLTVlZTZiZjdiNGU2ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjI0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIyNFQwMDMzMDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02OTM1MjQzNTIyZTEwYTk0NDM1MDhiM2MzOWEzYzNjZjJjY2RkMTk1Njg3NzhmY2I2MTBjZjM2MDU2ZDc2OTg5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WOH5H3jQm5YQLJenRxKnl_TBMzVTgGzusYPdDZz0sm4">

The cubic benchmark regress because it has loads and stores to stack frame objects and the Zilsd optimizer doesn't support stack frame objects.

https://github.com/llvm/llvm-project/pull/169529


More information about the llvm-commits mailing list