pmatos added a comment.

I will be splitting the part enabling the target feature through clang into a 
separate revision as suggested by @tlively



================
Comment at: clang/lib/Basic/Targets/WebAssembly.cpp:43
       .Case("exception-handling", HasExceptionHandling)
+      .Case("reference-types", HasReferenceTypes)
       .Case("bulk-memory", HasBulkMemory)
----------------
tlively wrote:
> I would split the target-features changes out into a separate patch that we 
> can land right away. There is utility in having the feature flag available to 
> be put into the target-features section even if LLVM cannot itself emit 
> reference types usage yet.
Sure - I will create a separate revision for this bit then. 


================
Comment at: clang/lib/Basic/Targets/WebAssembly.cpp:183
+      HasReferenceTypes = true;
+      resetDataLayout("e-m:e-p:32:32-i64:64-n32:64-S128-ni:256");
+      continue;
----------------
tlively wrote:
> It would be good to have a comment about what is different in this data 
> layout string. Also, is it really necessary to have a different data layout 
> string when reference types are enabled?
ni will define 256 as a non-integral address space. This is required for 
externref but I don't think it hurts to have it even if reference types is 
disabled but it feels cleaner to not have it if not needed.


================
Comment at: llvm/include/llvm/CodeGen/ValueTypes.td:169
 def exnref: ValueType<0, 134>;      // WebAssembly's exnref type
+def externref: ValueType<0, 135>;   // WebAssembly's externref type
 def token  : ValueType<0  , 248>;   // TokenTy
----------------
tlively wrote:
> Do we need `funcref` here as well, or do we just use `externref` everywhere 
> and infer separate `funcref` types later?
That's the plan for now. I think I haven't seen the use of having funcref here 
as well so I haven't added it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66035/new/

https://reviews.llvm.org/D66035

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to