)]}' { "commit": "0cfc043a97311d6ea24f9b2f6b2b3118b05012d4", "tree": "e9941ab692525d5ba8085c4bb694b517ebd50edf", "parents": [ "54313fbf3567496ee2fae9aea86ca9df6ba65a43" ], "author": { "name": "Nicolas Capens", "email": "capn@google.com", "time": "Fri Feb 05 15:18:42 2021 -0500" }, "committer": { "name": "Nicolas Capens", "email": "nicolascapens@google.com", "time": "Sat Feb 20 03:50:35 2021 +0000" }, "message": "Implement scalar replacement of aggregates\n\nThis change implements the Scalar Replacement of Aggregates (SRoA)\noptimization. Since Reactor only supports array aggregates, this\nreplaces arrays which are only indexed by static indices with individual\nvariables for each element.\n\nThe ReactorArray test is optimized from:\n\n sub rsp,38h\n mov dword ptr [rsp],1\n mov dword ptr [rsp+4],2\n mov eax,dword ptr [rsp]\n mov ecx,dword ptr [rsp+4]\n mov dword ptr [rsp],ecx\n mov dword ptr [rsp+4],eax\n mov eax,dword ptr [rsp+4]\n add eax,dword ptr [rsp]\n add rsp,38h\n ret\n\nInto:\n\n sub rsp,20h\n mov eax,2\n add eax,1\n add rsp,20h\n ret\n\nWhich is identical to the CArray test\u0027s generated code.\n\nBug: b/179279298\nChange-Id: Ie45261f2ac783bdc22fee06adf03ebd588f3ebc3\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/52428\nPresubmit-Ready: Nicolas Capens \u003cnicolascapens@google.com\u003e\nTested-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\nReviewed-by: Antonio Maiorano \u003camaiorano@google.com\u003e\n", "tree_diff": [ { "type": "modify", "old_id": "8ec7af1bbe3c3eef0d86e2cb9a958dc5ce10cf54", "old_mode": 33188, "old_path": "src/Reactor/Optimizer.cpp", "new_id": "acc9eae3701eeb15b0351bf882294b3395858609", "new_mode": 33188, "new_path": "src/Reactor/Optimizer.cpp" }, { "type": "modify", "old_id": "ada10727ad94b4d80dbee0ce4964e75cb82e9fd5", "old_mode": 33188, "old_path": "src/Reactor/SubzeroReactor.cpp", "new_id": "1e0cf63f9d0b917a7df7e43a30e40e8bc6a65cb6", "new_mode": 33188, "new_path": "src/Reactor/SubzeroReactor.cpp" }, { "type": "modify", "old_id": "51a75319d9e45bced69c733f72a723c03d5860f0", "old_mode": 33188, "old_path": "tests/ReactorUnitTests/ReactorUnitTests.cpp", "new_id": "fc8665a881c4e09185aaccee620de390f04db04f", "new_mode": 33188, "new_path": "tests/ReactorUnitTests/ReactorUnitTests.cpp" } ] }