void added inline comments.
================ Comment at: clang/docs/ReleaseNotes.rst:199 + guaranteed (and necessary to support outputs along indirect edges, which is + now supported as of this release). + ---------------- Is it worth it to mention that this change makes Clang's behavior with regards to your example here consistent with GCC's behavior? ================ Comment at: clang/lib/CodeGen/CGStmt.cpp:2814 + // A 2D vector, indexed by indirect destination, then ResultReg. + std::vector<std::vector<llvm::Value *>> CBRRegResults; if (IsGCCAsmGoto) { ---------------- It seems as if you really want a map indexed by the `BasicBlock*`. So something like this: ``` DenseMap<BasicBlock *, SmallVector<Value *, 4>> // 4 should be enough for anyone. ``` That way you can iterate over `CBR->getIndirectDests()` instead of having to use an iterator. ================ Comment at: clang/lib/CodeGen/CGStmt.cpp:2868 + // CBRRegResults rather than RegResults. + if (IsGCCAsmGoto && CBRRegResults.size()) { + for (unsigned i = 0, e = CBR->getNumIndirectDests(); i != e; ++i) { ---------------- Could probably use `!CBRRegResults.empty()` instead of `.size()`. The first should be `O(1)` (granted `.size()` probably should be too, but `.empty()` is more explicit anyway). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136497/new/ https://reviews.llvm.org/D136497 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits