[PATCH] Introduce an example statepoint GC strategy
Nick Lewycky
nicholas at mxc.ca
Mon Jan 5 23:10:41 PST 2015
On 01/05/2015 03:49 PM, Sean Silva wrote:
>
>
> On Mon, Dec 29, 2014 at 11:23 PM, David Majnemer
> <david.majnemer at gmail.com <mailto:david.majnemer at gmail.com>> wrote:
>
> ================
> Comment at: include/llvm/CodeGen/GCStrategy.h:71-73
> @@ -69,1 +70,5 @@
> protected:
> + bool UseStatepoints; /// Uses gc.statepoints as opposed
> to gc.roots,
> + /// if set, none of the other
> options can be
> + /// anything but their default values.
> +
> ----------------
> The other comments are formatted using ///<
>
> Also, the layout of GCStrategy might be a little more compact if you
> shifted this field down.
>
> ================
> Comment at: lib/CodeGen/SelectionDAG/StatepointLowering.cpp:429
> @@ +428,3 @@
> + GCStrategy &S = Builder.GFI->getStrategy();
> + for(const Value *V : Bases) {
> + auto Opt = S.isGCManagedPointer(V);
> ----------------
> There should be a space between the for and the (
>
> ================
> Comment at: lib/CodeGen/StatepointExampleGC.cpp:29
> @@ +28,3 @@
> + StatepointGC() {
> + UseStatepoints=true;
> + // These options are all gc.root specific, we specify them so
> that the
> ----------------
> Space before and after =
>
> ================
> Comment at: lib/CodeGen/StatepointExampleGC.cpp:39-40
> @@ +38,4 @@
> + Optional<bool> isGCManagedPointer(const Value *V) const override {
> + PointerType *PT = dyn_cast<PointerType>(V->getType());
> + assert(PT && "method is only valid on pointer typed values");
> + // For the sake of this example GC, we arbitrarily pick
> addrspace(1) as our
> ----------------
> If this is the case, why not just cast<PointerType> ?
>
> ================
> Comment at: lib/CodeGen/StatepointExampleGC.cpp:44
> @@ +43,3 @@
> + // updated and that no other pointer does.
> + return (1 == PT->getAddressSpace());
> + }
> ----------------
> Address space 1 has a special meaning in LLVM, it's identical to
> address space 0 except for the fact that "null" may be
> dereferenced. You might want to consider a different address space.
>
>
> Is this documented? I can't find anything in LangRef.
I don't think it ever made it down in writing. Please fix!
Nick
>
> -- Sean Silva
>
>
> http://reviews.llvm.org/D6808
>
> EMAIL PREFERENCES
> http://reviews.llvm.org/settings/panel/emailpreferences/
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu <mailto:llvm-commits at cs.uiuc.edu>
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list