[PATCH] D86973: [IRSim] Adding wrapper pass for IRSimilarityIdentfier
    Jon Roelofs via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Sep 18 12:01:17 PDT 2020
    
    
  
jroelofs added inline comments.
================
Comment at: llvm/lib/Analysis/IRSimilarityIdentifier.cpp:685
+  Optional<SimilarityGroupList> &SimilarityCandidatesOpt = IRSI.getSimilarity();
+  assert(SimilarityCandidatesOpt.hasValue() && "SimilarityCandidates is None!");
+  SimilarityGroupList &SimilarityCandidates =
----------------
AndrewLitteken wrote:
> jroelofs wrote:
> > The accessors for Optional do this check for you, so you can just "dereference" it with `*` or `->` as needed without worrying about adding your own assertion on it.
> > 
> > If it's expected that IRSI will always have this populated once it has been constructed, then maybe getSimilarity() ought to be the one to unwrap the Optional.
> Well findSimilarity needs to have been run, or the constructor where a module has been passed to the IRSI.  So, it's possible that you can construct IRSI where the SimilarityCandidates are None.
> 
> I'm not sure if that changes what you're proposing.  I think it could still make sense to put the derefence in `getSimilarity` since you shouldn't be calling it unless you've populated the IRSI with a module already.
> I think it could still make sense to put the derefence in `getSimilarity`
agreed
================
Comment at: llvm/lib/Analysis/IRSimilarityIdentifier.cpp:689
+
+  for (std::vector<IRSimilarityCandidate> &CandVec : SimilarityCandidates) {
+    OS << CandVec.size() << " candidates of length "
----------------
So maybe this is just:
`for (std::vector<IRSimilarityCandidate> &CandVec : IRSI.getSimilarity()) {`
or
`for (std::vector<IRSimilarityCandidate> &CandVec : *IRSI.getSimilarity()) {`
depending on which way you decide to go w/ moving that dereference.
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86973/new/
https://reviews.llvm.org/D86973
    
    
More information about the llvm-commits
mailing list