[PATCH] D142388: [clang] Add builtin_nondeterministic_value

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 1 07:20:01 PST 2023


erichkeane added inline comments.


================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:3070
+
+    if(Ty->isStructTy()){
+      Address StructAddr = ReturnValue.getValue();
----------------
ManuelJBrito wrote:
> erichkeane wrote:
> > This gets REALLY complicated, you can't just create a store, this might end up hitting conversion operators/etc, and is subject to triviality/etc, and also probably needs to go through a constructor.  I suspect you're going to prefer to just decide this isn't a valid builtin for structs instead of getting bogged down in that mess.
> The motivation for this builtin was to match intel's definition of undefined in the lowering of intrinsics such as  https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm256_castsi128_si256&expand=628&ig_expand=755,  so struct support isn't critical.
> So if everyone else agrees i'll drop struct support, do as you suggest and if there are use cases for nondeterministic values of other types add support for them later?
I suspect I speak for all with my suggestion.  I don't think Aaron/Shafik are concerned with struct support here.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142388



More information about the cfe-commits mailing list