User Details
- User Since
- Feb 26 2015, 4:12 PM (430 w, 2 d)
Jan 26 2016
Jan 25 2016
The original diff file was from D13974 for the purpose of comparison. This is the updated diff file.
Jan 13 2016
ping...
Jan 11 2016
Jan 9 2016
Jan 8 2016
Update patch w.r.t. Philip's comments.
Jan 6 2016
Jan 5 2016
Update patch w.r.t Philip's comments.
Jan 4 2016
Dec 30 2015
Dec 25 2015
Dec 21 2015
Dec 18 2015
Dec 15 2015
Dec 14 2015
@rnk -- as for ExceptionHandling.rst, I'd prefer to update gc.statepoint document first on how they use landingpads of token type, and then add a reference in ExceptionHandling.rst. Does that sounds reasonable to you?
Update patch with initial approach as described by the updated summary.
I can imagine wanting to use some kind of relocating GC scheme in a function that uses C++ EH, and needing to name out the right __gxx_personality* symbol for the platform.
Dec 11 2015
Update patch to make the new enum similar to Unknown in all cases, except that it has landingpads of token types.
If you don't like adding your runtime's personality to the enum, perhaps we should go back to Chen's original suggestion of just checking the type of the landingpad in SelectionDAG. The reason we started going in this direction instead was "It seems a little backwards to check the landingpad's type as the first check, since the personality dictates the landingpad's type". But maybe it makes sense to allow that much variation within Unknown, since it is after all a bucket for "all the other personalities" -- if we wanted to be pedantic, SelectionDAG could allow either token or struct for Unknown, but require struct for all the known personalities that use landingpads.
Dec 10 2015
Add assertions to make sure overflow never happens.
Ah, ok. That makes sense, though it means that "similar to Unknown, except that LandingPads have token type" isn't exactly correct as a description for Token_LP. Since you're wanting both token-valued landingpads and to opt into isNoOpWithoutInvoke, I wonder if it wouldn't be better to go ahead and be specific about your runtime like the other non-Unknown enum values ... call it AzulJVM or whatever in the enum and use the name of an appropriate function in your runtime as the string. If you want the code in SelectionDAG to be more general, you could add a property like usesTokenLandingPads(EHPersonality Pers) to EHPersonalities.h which returns true for AzulJVM, and have SelectionDAG query through that.
I applied the patch locally and it worked with 0xFFFFFFFF. However, in practice, neither 0xFFFFFFFF nor 0 will flow into this function because llvm handles them with special cases. For 0, it returns a 0 directly, and for 0xFFFFFFFF, it returns 0 - (the other operand). I've hacked to bypass the special cases in order to test the overflow case could be handled correctly by this code.
Dec 9 2015
I applied the patch locally and it worked with 0xFFFFFFFF. However, in practice, neither 0xFFFFFFFF nor 0 will flow into this function because llvm handles them with special cases. For 0, it returns a 0 directly, and for 0xFFFFFFFF, it returns 0 - (the other operand). I've hacked to bypass the special cases in order to test the overflow case could be handled correctly by this code.
ping...
Dec 8 2015
Dec 7 2015
Nov 30 2015
Nov 18 2015
Nov 11 2015
Nov 10 2015
Update patch w.r.t Philip's suggestions.
Nov 6 2015
First, fix the issues mentioned by David.
Nov 5 2015
Update w.r.t Philip's and David's comments.
Nov 3 2015
Nov 2 2015
Oct 27 2015
Update patch w.r.t Sanjoy's comments.
Oct 26 2015
Update patch w.r.t Sanjoy's comments.
Correct test command line options.
Update the patch so it does not crash bug 25299.
Oct 23 2015
Update patch w.r.t Sanjoy's request.
Oct 22 2015
Update patch.
Oct 21 2015
Oct 16 2015
Update patch w.r.t Philip's comments.
Oct 15 2015
Update patch w.r.t Philip's comments