================ @@ -3614,29 +3614,35 @@ void CodeGenFunction::EmitCheck( llvm::Value *RecoverableCond = nullptr; llvm::Value *TrapCond = nullptr; bool NoMerge = false; + // Expand checks into: + // (Check1 || !allow_ubsan_check) && (Check2 || !allow_ubsan_check) ... + // We need separate allow_ubsan_check intrinsics because they have separately + // specified cutoffs. + // This expression looks expensive but will be simplified after + // LowerAllowCheckPass. + static const double SanitizerMaskCutoffsEps = 0.000000001f; for (auto &[Check, Ord] : Checked) { + llvm::Value *GuardedCheck = Check; ---------------- vitalybuka wrote:
We don't do SSA here. `Check = Builder.CreateOr(Check, Builder.CreateNot(Allow));` is easier to follow https://github.com/llvm/llvm-project/pull/124857 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits