================
@@ -2928,12 +2928,13 @@ static void emitUsed(CodeGenModule &CGM, StringRef Name,
   for (unsigned i = 0, e = List.size(); i != e; ++i) {
     UsedArray[i] =
         llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(
-            cast<llvm::Constant>(&*List[i]), CGM.Int8PtrTy);
----------------
AlexVlx wrote:

Ok, I'm still struggling to see why it is best create (possibly) broken IR, 
super heroic "but let us build an even more complicated devices like multiple 
intrinsics per AS, and also redo how ASCasts work etc." and rely on implicit 
knowledge about what happens with `used` and `compiler.used` (ah, because these 
are never CodeGen-ed, it's fine to do whatever). What's the actual benefit 
here? Why not make it a special global that uses AS 42, since that'd actually 
signal it's special, as opposed to Unqual/0, which do the exact contrary. I'm 
also struggling to see the backwards compat angle since we do not guarantee 
IR-level compat between LLVM versions (yes it frequently works but it's not 
guaranteed to).

https://github.com/llvm/llvm-project/pull/93601
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to