r214064 - Factoring DataflowWorklist out of LiveVariables and UninitializedValues analyses

Artyom Skrobov Artyom.Skrobov at arm.com
Mon Aug 4 05:31:37 PDT 2014


May I ask you for an isolated source file that would reproduce this issue?

 

options.c seems to require a whole tree of headers, including event_strings.h which is not present in the repository at all.

 

 

From: Alexander Kornienko [mailto:alexfh at google.com] 
Sent: 04 August 2014 13:25
To: Artyom Skrobov
Cc: Hal Finkel; Ted Kremenek; cfe-commits at cs.uiuc.edu Commits
Subject: Re: r214064 - Factoring DataflowWorklist out of LiveVariables and UninitializedValues analyses

 

On Mon, Aug 4, 2014 at 2:22 PM, Alexander Kornienko <alexfh at google.com> wrote:

This patch makes the deadcode.DeadStores analyzer hang on this file: https://code.google.com/p/dynamorio/source/browse/trunk/core/options.c

 

The relevant part of stack trace looks like this:

  0x00e189ed: llvm::ImutAVLFactory<llvm::ImutContainerInfo<clang::Stmt const*> >::balanceTree(llvm::ImutAVLTree<llvm::ImutContainerInfo<clang::Stmt const*> >*, clang::Stmt const*, llvm::ImutAVLTree<llvm::ImutContainerInfo<clang::Stmt const*> >*)
  0x00e18d2e: llvm::ImutAVLFactory<llvm::ImutContainerInfo<clang::Stmt const*> >::add_internal(clang::Stmt const*, llvm::ImutAVLTree<llvm::ImutContainerInfo<clang::Stmt const*> >*)
  0x00e18ec5: llvm::ImutAVLFactory<llvm::ImutContainerInfo<clang::Stmt const*> >::add_internal(clang::Stmt const*, llvm::ImutAVLTree<llvm::ImutContainerInfo<clang::Stmt const*> >*)
  0x00e1b292: llvm::ImutAVLFactory<llvm::ImutContainerInfo<clang::Stmt const*> >::add(llvm::ImutAVLTree<llvm::ImutContainerInfo<clang::Stmt const*> >*, clang::Stmt const*)
  0x00e1f2d1: clang::LiveVariables::computeLiveness(clang::AnalysisDeclContext&, bool)
  0x00673969: void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::DeadStoresChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&)

Did you notice that the DataflowWorklist class was a bit different in these two classes? 

 

I meant, "files" (UninitializedValues.cpp and LiveVariables.cpp), not "classes". 

 

Notably, the dequeue method and initialization of the enqueuedBlocks bit-vector.

 

Please fix or revert the patch.

 

Thank you!

 

On Tue, Jul 29, 2014 at 6:27 PM, Artyom Skrobov <Artyom.Skrobov at arm.com> wrote:

Hal, thank you for the suggestion! I've expanded that comment four-fold in r214183.

Ted, thank you for reviewing the original patch, and no worries it took a while.
You might want to also check that the comments I've added when committing r214064 are correct -- although they're essentially a rephrasing of comments from your own emails.



-----Original Message-----
From: Hal Finkel [mailto:hfinkel at anl.gov]
Sent: 28 July 2014 13:12
To: Artyom Skrobov
Cc: cfe-commits at cs.uiuc.edu
Subject: Re: r214064 - Factoring DataflowWorklist out of LiveVariables and UninitializedValues analyses


We should have a description here of what this code does, not just where it's used. One can get some idea by reading the comments above DataflowWorklist::enqueueSuccessors in the source file, but it is not clear that gives a complete picture.

 -Hal






_______________________________________________
cfe-commits mailing list
cfe-commits at cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

 

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140804/f510145d/attachment.html>


More information about the cfe-commits mailing list