[clang] [clang][CodeGen] Add range metadata for atomic load of boolean type. #131476 (PR #133546)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 10 17:18:37 PDT 2025


Jan =?utf-8?q?Górski?= <jan.a.gorski at wp.pl>,
Jan =?utf-8?q?Górski?= <jan.a.gorski at wp.pl>,
Jan =?utf-8?q?Górski?= <jan.a.gorski at wp.pl>,
Jan =?utf-8?q?Górski?= <jan.a.gorski at wp.pl>,
Jan =?utf-8?q?Górski?= <jan.a.gorski at wp.pl>,
Jan =?utf-8?q?Górski?= <jan.a.gorski at wp.pl>,
Jan =?utf-8?q?Górski?= <jan.a.gorski at wp.pl>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/133546 at github.com>


================
@@ -590,6 +590,16 @@ static void EmitAtomicOp(CodeGenFunction &CGF, AtomicExpr *E, Address Dest,
     llvm::LoadInst *Load = CGF.Builder.CreateLoad(Ptr);
     Load->setAtomic(Order, Scope);
     Load->setVolatile(E->isVolatile());
+    QualType Ty = E->getValueType();
+    if (CGF.EmitScalarRangeCheck(Load, Ty, E->getExprLoc())) {
+    } else if (CGF.CGM.getCodeGenOpts().OptimizationLevel > 0) {
----------------
efriedma-quic wrote:

Can you refactor more of the code?  Instead of just getRangeForLoadFromType, make a helper that calls EmitScalarRangeCheck() and add the metadata.

https://github.com/llvm/llvm-project/pull/133546


More information about the cfe-commits mailing list