)]}' { "commit": "31c3f8c4ae6cc980405a3b90e7e88db00249eba5", "tree": "90f0ae0afce74cdb437a47403047007968737c39", "parents": [ "38cf48dce97bb0f566bea198877babec7269b591" ], "author": { "name": "Francis Visoiu Mistrih", "email": "francisvm@yahoo.com", "time": "Thu Jul 25 22:23:48 2019 +0000" }, "committer": { "name": "Yi Kong", "email": "yikong@google.com", "time": "Fri Nov 22 15:35:23 2019 -0800" }, "message": "[CodeGen] Don\u0027t resolve the stack protector frame accesses until PEI\n\nCurrently, stack protector loads and stores are resolved during\nLocalStackSlotAllocation (if the pass needs to run). When this is the\ncase, the base register assigned to the frame access is going to be one\nof the vregs created during LocalStackSlotAllocation. This means that we\nare keeping a pointer to the stack protector slot, and we\u0027re using this\npointer to load and store to it.\n\nIn case register pressure goes up, we may end up spilling this pointer\nto the stack, which can be a security concern.\n\nInstead, leave it to PEI to resolve the frame accesses. In order to do\nthat, we make all stack protector accesses go through frame index\noperands, then PEI will resolve this using an offset from sp/fp/bp.\n\nDifferential Revision: https://reviews.llvm.org/D64759\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@367068 91177308-0d34-0410-b5e6-96231b3b80d8\n", "tree_diff": [ { "type": "modify", "old_id": "b14d76a585f73198f807b9dcbf064a15b6310d4e", "old_mode": 33188, "old_path": "lib/CodeGen/LocalStackSlotAllocation.cpp", "new_id": "69ceacd0c18c3efbc13d8d8eefaea85e3f8332b1", "new_mode": 33188, "new_path": "lib/CodeGen/LocalStackSlotAllocation.cpp" }, { "type": "modify", "old_id": "632774c970eae2e47e681ea915f0d6e071fdafbc", "old_mode": 33188, "old_path": "test/CodeGen/AArch64/stack-guard-reassign.ll", "new_id": "a48384047339e8b2d19a43f82b745e9783477b2e", "new_mode": 33188, "new_path": "test/CodeGen/AArch64/stack-guard-reassign.ll" }, { "type": "modify", "old_id": "2ce1d1588a44f91ae5f48efb88274ce93e11f997", "old_mode": 33188, "old_path": "test/CodeGen/ARM/stack-guard-reassign.ll", "new_id": "02ee9c067f22346dc26294fbb57f552b21bf7b87", "new_mode": 33188, "new_path": "test/CodeGen/ARM/stack-guard-reassign.ll" }, { "type": "modify", "old_id": "8128b63d598249477a52b3d1a540f4c48eb27556", "old_mode": 33188, "old_path": "test/CodeGen/PowerPC/stack-guard-reassign.ll", "new_id": "e20a8cd11bb8af0757b0d633d25ffbffb5034d3d", "new_mode": 33188, "new_path": "test/CodeGen/PowerPC/stack-guard-reassign.ll" }, { "type": "modify", "old_id": "294c6a6bd45451ee33a330fc580498459fbbc179", "old_mode": 33188, "old_path": "test/CodeGen/Thumb/stack_guard_remat.ll", "new_id": "9b199ef407bed7d77234857aafd7c0a851b1e66b", "new_mode": 33188, "new_path": "test/CodeGen/Thumb/stack_guard_remat.ll" } ] }