[llvm] [LAA] Prepare to handle diff type sizes (NFC) (PR #122318)

Mikael Holmen via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 24 06:39:31 PDT 2025


mikaelholmen wrote:

> We see a regression with this patch when we compile with -fno-strict-aliasing. There is a runtime memory check block added and the scalar loop remains with the patch: [fno-strict-aliasing example](https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1AB9U8lJL6yAngGVG6AMKpaAVxYM9DgDJ4GmADl3ACNMYgkAJlIAB1QFQlsGZzcPPVj4mwFffyCWUPCuKMtMa0ShAiZiAmT3Ty4LTCtMhnLKgmzAkLDIiwqqmtT6hT72v0687sKASgtUV2Jkdg4AagBSCIBmP2Q3LFWNxz8CAgBPaMwFADoEfexVjQBBe4eAN1Q8dGX%2BVAgjjYjjAQAFTLPzGaJTZ6rADsACFnstEaDBFwAGyAkFzAjgtYbAAiy1%2BKPRwKmYOi%2B3hj3WG2ixCYwBYTGWDDmDGILloCKR/GIRIIoNxBI0lMF%2B0cy3%2Borw63hEVhkMeSMRMKpD2VSKx4NWAFZYTKdQT9gTybr9bq8ZTuUiYZbqdC7Q8ODNaJwdbxPBwtKRUJwJQo5gtMGtNjxSARNM6ZgBrCQADkucakAE44xFUVJURoIjqItJXRxJB7Iz7OLwFCANOHIzM4LAkGgWNE6GFyJRG836OFkDtDMBAcRXAxo3w6AQwhWIMES8E/JUTpww7PmMQTgB5YLaEoR7i8RtsQRrhi0Bde3hYYKuYCOMS0Cu70hYJlGcRnx94YjbvAvC4lzCqEpXHHRdeCORoS1oPBgnpVdnCwEsCGIPAWBLH9iGCOJMDxTBn2ASCjBrPgDGABQADU8EwAB3Ndzk9MN%2BEEEQxHYKQZEERQVHUN9dCiAwCNMYxzEg4IK0gGZUGiZp7wAWjXDZlmkqhWWk4YkOsaSxDwJh4iMXhUDQpCsFEiAZmKUo7AgBwBjqUgfDGXJ8jSOIEgEaynIyRIOgcyYGiaMoRjcoZGi/ARWiqLyugKXo2kC6LwvsyKJFMwNFiS/Q3WLN9fRWVQ41RaTUUkZZeyMQlEKHaMpkJXBCBIEMNi4KZeB3LQphjeNLg2SQdQayQuC4DZoR1ZM%2BrjdLC14FCuA0KtPW9bLy0rasz1rGBEBAD82wgDhFOU/AFFEYh0Gkl4xFcTBpOYNgFA4EsOxbYgAlYJZcvywrir44AysHYcmsfHC%2B3oFSTjyFx729TB8CIQy9BoWhx2IDTjiQy9x3B3g4YR6T90YAh0dHeGwmki8r2kvx%2BBLTGib8VTXHMhhpLYCp0CYCpKdkJjxFYhj5CUNQSx43yQs8SyGCcFxai8MWIomKL0hcpIJcGGJnOaGXHKCvzQoCpWbLM5owtGHJEqGHWUj1kZ1cmGZEMwTAPiWyj6WiECXQy0g5r0zhvG8UiAFllgASQAJWWciqLCZZXoKoqSq%2BiByt%2B6qobqml6mWZwmwe%2BqIj%2Blqo1IWMIg0S4ImhSR/mhNNkx1OMNmTeoCyLD2SwWiwlvz1b4AgBtUCzrstvursUDjiJ%2BqrKniEnac32XecQNIOfVw3LdrAXnHD2PU9vRJ69b3vMMn0BpYd4/L8f3x/9AOAh8wILb1hJgk44JP5qkJQh80IwpRsNw/DQBWkRBkZEKLUVogvHmnMWLSB5hxfm3E9CfRAAJISUFjLiUkokGSckFJKVQCpRCeB1KaW0n4YAekDIfF/GJIW9N7Bi1inZY2st3IK1ivLNWCUWGa2FobWK%2Bt/JtCtlFYYMVdZ6FEfFZhGtkrzFSo1ca7oW5ZU4FHPKMcPp9mWGPS4XBLgaGTrVYg9VGrNRrO1LgyZLhZmTGPDQcYHGWIcaicazdPalg4ItKsndSB1nWptCg21dr4P2odY6p03AXSuhcW6b4h5hCemwTg0d3px20XovRO8AYvgugoEGGE7x/hTjDeok8kaENRr%2BN8ZSN540pmOImu8yYMAptUhpiMablXpozTAzNWZMHZoxUQXMYGyDgVxb0ugeF0NFuLc2Ut0DCNYc0dhqtPJcI1rQg2ZtJbTO2UIjZPlJHVHEabA50jrbhk/PbdAjtnau0UZlea3tfYBxDmHUBkcUmx0%2Buk3R%2BjDHQxMaQDOfdOyRzTnncxhcQARAiJcGuGZCo6h6nGFFEQHGuKeV7Tx7dvHQoLBEbFHizErRmGheIdhJBAA%3D)

Here's an opt/LAA-only reproducer for the same problem, showing that LAA now is different (I've verifed that I see a similar difference if I just revert this patch on trunk, so I don't think it's due to other changes on trunk compared to 21.1.0):
https://llvm.godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1C1aANxakl9ZATwDKjdAGFUtAK4sGexwBk8DTAA5DwAjTGIJAE5SAAdUBUI7Bhd3Tz04hNsBPwDgljCIrmirTBskoQImYgIUjy8uS0xrLIYKqoIcoNDwqMtK6tq0hoV%2Bjv8u/J6igEpLVDdiZHYOLBoAgGpTVDx0dYABflQIGIJidYZ5hlX10ROFzAUIC4Dp9YBSACYAVn8AfRjXm8AOwAITeGgAgoxTgBPEDgiHrdYhM4GMK0d7ffjEAB0IQwMIRCOxeIJICRFMpVOpNNp1LeAGYQesYsRMOgFO8GQARTFfaHEGGkPkk/HoQmQpGfH44jRfLm8mIIPDrPBcABs7y%2BzI0wulAphWu5eu1fP8yD1WJIpPFRoRUu%2BVWITBhO1UCvWwEwBCamDYghOZ38%2BLcV05DDcAHdVQyPsLA2aGP9hWrNdK8LKvva%2BRoPbRUExdnhY/HTnynS63cKxHhgAx1lxs9K0AxTB7TqHkDGPjn1kRVRqm47iM7XehVD3GbyvT76P6CAng5cOecowP1aWzumkzEUxqzZnsyMSJh13yW6ZN%2BWR5Xx3H1jW6w2hz8GF2pw/0LsI9GGApo6mB5ysKjaSnymCqIQLboDiFwEB6eDICwMTrJgACOZ7bha6yxtmKIDuBkEENBsGoAQwpok0IrWiRyD0IYbi7uslEYtKooEkSkIkrR9ERjE5J0oJQlSkyLJsiuH5sdaYoSoi6xsvBWw7ESQLcpxEIcLMtCcF8vBeBwWikKgnA%2BD4ABqACy6wAJIAErrAo8yLKenwMjwpAEJommzAA1hIGg4lwGgfJIQJcAy6oABwfJEkhcF8G7aRwki8Cw/m6vphnGRwvAKCAuqeQZmmkHAsBIGgyF0OE5CUBVMRVREqAnAAtEwChKNUSQKM1HYMD5fB0D6xB5RAIReaQIT%2BFUcLcLwk3MIKADyITaKUhXuRV86LQwtAzYZWAhG4wBOGItB5bNpBYCwhjAOIF34GyZSmA840QaUbg%2Bpw7n%2BLOX28LQeAotNLhYH9HnEHgaUXc9xD4ko3J%2BjdANGF5sxUAYwAKGZeCYJGi0xIwYP8IIIhiOwUgyIIigqOoRWkLocYGCjJjmPogN5ZAsxNS053NTEbVKAoU6fB8rI/YyJ3IEs7XNf4/CMtgIu8KgMMQ1gHMQLMJRlPYECOIM9SkL44x5AU6TxIkAgG%2BbmRJJ0ptTI0zTlKM1vDL6OutKM9vdIUfTtG7/vVD7kyFFrTlLBIWk6Xp43Zes3PrBAAvhDzfbEKGPmvBAuCECQmJudMvCFVo0yzAgmCFj0mukH5XAfDikQaBokiRRokVfMFHyRXF0hJSlpBpUFGVx5wuX5R5qMlTAiAgPMC4fTVEB1Q1gSsMsifJ%2B1qddenmdF0b%2BBEGrejE8IojiBTZ/U2o40M6QkbOvxs3RxwumkJlyucItH0xB9CdUATicJOKdOoCE5L1LOScXCVXoFuD4sYD4l28rXEAIUcQMkkHKGKTd1QaEiOFVu%2BhOAD0/kZMelgJ7INmKVWeK84FL3oT0bmHwuBBQGrQIaI0xp03mtNMGfClorTWmDTa0Jtq7XGgdI6J0TDnXcldJGyx9p4EerYZ651DJvWQB9ZY31BBNHGgDIGgoQbKOLhDKG7kYZw0wAja6RhkagCKmjDGWMcZ4wJvpdyZ9SaX2kNfJQt86a6AaEzYwZgLDGI1lzE4XVOB8xTkLHkIsxaCAlkwKWDxupy1QArJWRlVY7BepzJ2a0kgOCuIHY2uRfY20tskVwdR6ktBDmbd2zsBBtAGE0oYZTPbdLGLU0OegRgB16YbMZwcTZ1K4OHBYkc5nELfrHOm8dE6sMCrKJOudj4FzmcXVGvkog4jwRqLgQI5SRUilIEKyzSGjxypQgqU9aEQCQPPP%2B5EKDL1QLA8Ia82CcA2VwLZWij4kB2KfWQfjyYBNkDfWmhlQkPyfn9V%2B78yHZR/gveCqBAEgrBdAv59U4H7KQUc1BDIGSZkkE3duGovhhR7l8e5qysoULyi8lxr8Pjsq/k86hswYYJHsJIIAA%3D%3D

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


More information about the llvm-commits mailing list