BTW, we can completely delete tied dead,undef pair. But additional complexity might not worth it.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Sat, Feb 20
Tue, Feb 2
Jan 18 2021
Jan 15 2021
Add test case;
Jan 14 2021
Jan 12 2021
LGTM
LGTM.
Though, I don't see much point in having it :)
LGTM
LGTM
Jan 11 2021
LGTM
Dec 21 2020
Dec 17 2020
Dec 16 2020
Oct 23 2020
Oct 20 2020
LGTM
Oct 15 2020
Oct 13 2020
Oct 10 2020
Oct 9 2020
The way I read the lang ref this is intentional. Not to say one should not define what it means for vectors of pointers and then allow it. I feel align is not the only one missing for them though.
You want to give it a try?
Address review comments
Oct 8 2020
I wonder if align attribute is legal for vectors of pointers?
This is allowed:
define align 8 i32* @test_scalar(i32* %in) { ret i32* %in }
but this is not:
define align 8 <4 x i32*> @test_vector(<4 x i32*> %in) { ret <4 x i32*> %in }
Is it intentional behavior or just has been overlooked?
Oct 7 2020
Oct 6 2020
Add local asserts
Oct 2 2020
Oct 1 2020
Update statepoint MI description, provide link to it at parseStatepointOperands;
Fix style issues;
Sep 30 2020
Address most review comments:
- add documentation to API
- factor out some code to separate function
- fix test instead of XFAILing it
Sep 21 2020
Sep 19 2020
Sep 18 2020
Rebase on tip and use newly added API;
Slightly change GC pointer operand lowering;
Sep 15 2020
Sep 10 2020
Thanks, it reads much better for me now.
Looks good.
Sep 9 2020
Sep 8 2020
Sep 7 2020
Sep 4 2020
Can we come up with better format for gc pointer map (base/derived)?
I wish it were possible to have it in separate psude instruction glued with statepoint. Unfortunately, that seems impossible now.
Looks good for me.
The only thing that worries me is shouldn't we have broader audience since we're changing 'global' APIs?
Sep 3 2020
Aug 28 2020
All pieces has been landed, so closing it.
Unfortunately, final result (e.g. ISEL part) diverged quite a bit from this, but idea at large has not changed
Aug 27 2020
Aug 14 2020
LGTM with couple nits inline
Aug 5 2020
Aug 4 2020
Attached test will explode if isTied check is removed as suggested.
Essential part is:
%10:gr64 = MOV64rm killed %9, 1, $noreg, 0, $noreg :: (load 8 from %ir.p0, addrspace 1) %6:gr64, %7:gr64 = STATEPOINT 0, 0, 0, @foo, 2, 0, 2, 0, 2, 0, %8, %8(tied-def 0), killed %10, %0(tied-def 1), ...
It is synthetic (i.e. we do no generate such MIR from any IR), but still not invalid
Aug 3 2020
- Mark MMOs for gc register spill slots as load/store ones;
- Add assert that there is only one EHPad;
I will incorporate this into D81647, since fix will be even simpler there.
This was landed as part of larger patch (D81648) for which this was a blocker. Abandoning this review.
Jul 17 2020
In D81645#2159907, @thegameg wrote:Hi, I see CodeGen/X86/statepoint-vreg.mir failing with UBSAN enabled on our internal bots:
That EHPad reload tracking does not fit very well in existing design. I added it as a separate entity stored in StatepointProcessor and passed to
StatepointState::insertReloads.
Ideally, I would insert all reloads in a single sweep after all statepoints has been processed. But I did not find a clean way to do that without refactoring
(like merging StatepointStates functionality into`StatepointProcessor`).
Add tracking of reloads inserted in landing pads.
Jul 16 2020
Update to reflect current state of development
Another attempt
Remove accidently added test option
Add test demonstrating statepoint operand folding.
Rework slot reservation according to comments.
Add an option to disable copy propagation.
Jul 14 2020
Clear DerivedPtrMap at new statepoint.
In D81648#2146051, @reames wrote:Second, there appears to be a semantic problem around the handling of base vs derived slots unless we *always* spill the base. We can't tie both uses to a single def. This may warrant some offline discussion.
Another attempt to submit update.
Jul 10 2020
Addressed comments.
Restore accidently destroyed review.
Changed DerivedPtrMap and moved it to StatepointLowering.h as it only
needed for local gc.relocate processing;
Rebased on tip, rewrote lowerStatepointMetaArgs as been told;
Deleted test mods, will add separate test later;