Page MenuHomePhabricator

tolziplohu (Sam Dirkswager)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 1 2021, 10:17 AM (8 w, 4 d)

Recent Activity

Jun 30 2021

tolziplohu updated the summary of D103732: [RS4GC] Check that GC pointers are non-integral.
Jun 30 2021, 2:11 PM · Restricted Project
tolziplohu updated the diff for D103732: [RS4GC] Check that GC pointers are non-integral.

Update for newly allowed non-integral inttoptr

Jun 30 2021, 2:10 PM · Restricted Project

Jun 7 2021

tolziplohu added a comment to D103492: [RS4GC] Treat inttoptr as base pointer.

When reviewing your https://reviews.llvm.org/D103732 (in particular, the constants.ll test which had inttoptr constant expressions), I realized that this patch is necessary due to unreachable code. I went ahead and landed a slightly tweaked version of this change. I believe you should now be able to rebase your D103732 without needing to XFAIL a test.

Jun 7 2021, 11:26 AM · Restricted Project

Jun 5 2021

tolziplohu updated the diff for D103732: [RS4GC] Check that GC pointers are non-integral.

Reformat following clang-format's suggestions

Jun 5 2021, 3:41 PM · Restricted Project

Jun 4 2021

tolziplohu added a comment to D103492: [RS4GC] Treat inttoptr as base pointer.

Good idea, post a patch and it'd be a quick LGTM.

Jun 4 2021, 7:44 PM · Restricted Project
tolziplohu requested review of D103732: [RS4GC] Check that GC pointers are non-integral.
Jun 4 2021, 7:28 PM · Restricted Project
tolziplohu added a comment to D103492: [RS4GC] Treat inttoptr as base pointer.

I think you've got a deeper issue here. RS4GC is intended to lower from the abstract machine model to the physical machine model. In the abstract machine model, references (i.e. gc pointers) *must* be non-integral. You don't have to use address space 1 (there are code hooks to change that), but abstract machine model requires non-integral pointers for the address space being rewritten.

Jun 4 2021, 2:11 PM · Restricted Project

Jun 1 2021

tolziplohu added a comment to D103492: [RS4GC] Treat inttoptr as base pointer.

It tuns out the problem only occurs when addrspace(1) isn't specified as non-integral, because inttoptr instructions are ill-typed when it's non-integral. But when addrspace(1) isn't specified as non-integral, RewriteStatepointsForGC still assumes that it is, and that inttoptr isn't allowed. If it's not non-integral, statepoints are only well-defined if the collector is non-moving, so inttoptr isn't a problem. So RS4GC only encounters inttoptr if GC pointers are integral, and thus the collector isn't moving (or the user is risking UB), and accepting it isn't a problem.

Jun 1 2021, 3:51 PM · Restricted Project
tolziplohu requested review of D103492: [RS4GC] Treat inttoptr as base pointer.
Jun 1 2021, 2:33 PM · Restricted Project