[llvm] r186667 - Cleanup the stats counters for the new implementation. These actually
Nick Kledzik
kledzik at apple.com
Wed Jul 31 13:47:03 PDT 2013
On Jul 27, 2013, at 3:19 AM, Chandler Carruth <chandlerc at gmail.com> wrote:
> On Tue, Jul 23, 2013 at 9:15 PM, Chandler Carruth <chandlerc at gmail.com> wrote:
> On Tue, Jul 23, 2013 at 4:23 PM, Nick Kledzik <kledzik at apple.com> wrote:
> Chandler,
>
> This change broke one of the lld build bots. I’m not sure why more build bots are not failing. Some of the statistics variables are only used inside #if conditionals. So when you build with those conditions false, the compiler warns the variable is never used.
>
> Sorry. I should have seen it in my own builds but missed it in the noise from a bad warning in Clang that interacts poorly with LLD and libstdc++v4.8... I'll fix...
>
> And somehow I forgot to actually commit the fix! =[ Really sorry this stayed broken so long, really do feel free to complain loudly if I ever leave bots broken so badly... =[
>
> Anyways, fixed in r187297.
>
> Also, how can I configure my own build to see this? I don't even see the warnings in my builds with a recent bootstrap of Clang.
I don’t know. The built bot logs do not show what command line options are used when building, so I can’t tell why one bot gets the error and others don’t.
-Nick
> <http://lab.llvm.org:8011/builders/lld-x86_64-darwin11/builds/2384/steps/build_Lld/logs/stdio>
>
>
>
> [ 27%] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SROA.cpp.o
>
> /Volumes/Macintosh_HD2/buildbots/lld-x86_64-darwin11/llvm.src/lib/Transforms/Scalar/SROA.cpp:61:11: error: unused variable 'NumAllocaPartitions' [-Werror,-Wunused-variable]
> STATISTIC(NumAllocaPartitions, "Number of alloca partitions formed");
> ^
> /Volumes/Macintosh_HD2/buildbots/lld-x86_64-darwin11/llvm.src/include/llvm/ADT/Statistic.h:165:26: note: expanded from macro 'STATISTIC'
> static llvm::Statistic VARNAME = { DEBUG_TYPE, DESC, 0, 0 }
> ^
> /Volumes/Macintosh_HD2/buildbots/lld-x86_64-darwin11/llvm.src/lib/Transforms/Scalar/SROA.cpp:62:11: error: unused variable 'MaxPartitionsPerAlloca' [-Werror,-Wunused-variable]
> STATISTIC(MaxPartitionsPerAlloca, "Maximum number of partitions per alloca");
> ^
> /Volumes/Macintosh_HD2/buildbots/lld-x86_64-darwin11/llvm.src/include/llvm/ADT/Statistic.h:165:26: note: expanded from macro 'STATISTIC'
> static llvm::Statistic VARNAME = { DEBUG_TYPE, DESC, 0, 0 }
>
>
>
> On Jul 19, 2013, at 3:57 AM, Chandler Carruth <chandlerc at gmail.com> wrote:
> > Author: chandlerc
> > Date: Fri Jul 19 05:57:36 2013
> > New Revision: 186667
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=186667&view=rev
> > Log:
> > Cleanup the stats counters for the new implementation. These actually
> > count the right things and have the right names.
> >
> > Modified:
> > llvm/trunk/lib/Transforms/Scalar/SROA.cpp
> >
> > Modified: llvm/trunk/lib/Transforms/Scalar/SROA.cpp
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SROA.cpp?rev=186667&r1=186666&r2=186667&view=diff
> > ==============================================================================
> > --- llvm/trunk/lib/Transforms/Scalar/SROA.cpp (original)
> > +++ llvm/trunk/lib/Transforms/Scalar/SROA.cpp Fri Jul 19 05:57:36 2013
> > @@ -59,9 +59,9 @@ using namespace llvm;
> >
> > STATISTIC(NumAllocasAnalyzed, "Number of allocas analyzed for replacement");
> > STATISTIC(NumAllocaPartitions, "Number of alloca partitions formed");
> > -STATISTIC(MaxPartitionsPerAlloca, "Maximum number of partitions");
> > -STATISTIC(NumAllocaPartitionUses, "Number of alloca partition uses found");
> > -STATISTIC(MaxPartitionUsesPerAlloca, "Maximum number of partition uses");
> > +STATISTIC(MaxPartitionsPerAlloca, "Maximum number of partitions per alloca");
> > +STATISTIC(NumAllocaPartitionUses, "Number of alloca partition uses rewritten");
> > +STATISTIC(MaxUsesPerAllocaPartition, "Maximum number of uses of a partition");
> > STATISTIC(NumNewAllocas, "Number of new, smaller allocas introduced");
> > STATISTIC(NumPromoted, "Number of allocas promoted to SSA values");
> > STATISTIC(NumLoadsSpeculated, "Number of loads speculated to allow promotion");
> > @@ -682,15 +682,6 @@ AllocaSlices::AllocaSlices(const DataLay
> >
> > Slices.erase(std::remove_if(Slices.begin(), Slices.end(), IsSliceDead()),
> > Slices.end());
> > -
> > - // Record how many slices we end up with.
> > - NumAllocaPartitions += Slices.size();
> > - MaxPartitionsPerAlloca =
> > - std::max<unsigned>(Slices.size(), MaxPartitionsPerAlloca);
> > -
> > - NumAllocaPartitionUses += Slices.size();
> > - MaxPartitionUsesPerAlloca =
> > - std::max<unsigned>(Slices.size(), MaxPartitionUsesPerAlloca);
> > }
> >
> > #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
> > @@ -3045,6 +3036,10 @@ bool SROA::rewritePartition(AllocaInst &
> > unsigned SPOldSize = SpeculatablePHIs.size();
> > unsigned SSOldSize = SpeculatableSelects.size();
> >
> > +#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
> > + unsigned NumUses = 0;
> > +#endif
> > +
> > AllocaSliceRewriter Rewriter(*DL, S, *this, AI, *NewAI, BeginOffset,
> > EndOffset, IsVectorPromotable,
> > IsIntegerPromotable);
> > @@ -3055,13 +3050,25 @@ bool SROA::rewritePartition(AllocaInst &
> > DEBUG(dbgs() << " rewriting split ");
> > DEBUG(S.printSlice(dbgs(), *SUI, ""));
> > Promotable &= Rewriter.visit(*SUI);
> > +#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
> > + ++NumUses;
> > +#endif
> > }
> > for (AllocaSlices::iterator I = B; I != E; ++I) {
> > DEBUG(dbgs() << " rewriting ");
> > DEBUG(S.printSlice(dbgs(), I, ""));
> > Promotable &= Rewriter.visit(I);
> > +#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
> > + ++NumUses;
> > +#endif
> > }
> >
> > +#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
> > + NumAllocaPartitionUses += NumUses;
> > + MaxUsesPerAllocaPartition =
> > + std::max<unsigned>(NumUses, MaxUsesPerAllocaPartition);
> > +#endif
> > +
> > if (Promotable && (SpeculatablePHIs.size() > SPOldSize ||
> > SpeculatableSelects.size() > SSOldSize)) {
> > // If we have a promotable alloca except for some unspeculated loads below
> > @@ -3135,6 +3142,10 @@ bool SROA::splitAlloca(AllocaInst &AI, A
> > if (S.begin() == S.end())
> > return false;
> >
> > +#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
> > + unsigned NumPartitions = 0;
> > +#endif
> > +
> > bool Changed = false;
> > SmallVector<AllocaSlices::iterator, 4> SplitUses;
> > uint64_t MaxSplitUseEndOffset = 0;
> > @@ -3181,6 +3192,9 @@ bool SROA::splitAlloca(AllocaInst &AI, A
> > // Rewrite a sequence of overlapping slices.
> > Changed |=
> > rewritePartition(AI, S, SI, SJ, BeginOffset, MaxEndOffset, SplitUses);
> > +#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
> > + ++NumPartitions;
> > +#endif
> >
> > removeFinishedSplitUses(SplitUses, MaxSplitUseEndOffset, MaxEndOffset);
> > }
> > @@ -3220,6 +3234,10 @@ bool SROA::splitAlloca(AllocaInst &AI, A
> >
> > Changed |= rewritePartition(AI, S, SJ, SJ, MaxEndOffset, PostSplitEndOffset,
> > SplitUses);
> > +#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
> > + ++NumPartitions;
> > +#endif
> > +
> > if (SJ == SE)
> > break; // Skip the rest, we don't need to do any cleanup.
> >
> > @@ -3230,6 +3248,12 @@ bool SROA::splitAlloca(AllocaInst &AI, A
> > BeginOffset = SJ->beginOffset();
> > }
> >
> > +#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
> > + NumAllocaPartitions += NumPartitions;
> > + MaxPartitionsPerAlloca =
> > + std::max<unsigned>(NumPartitions, MaxPartitionsPerAlloca);
> > +#endif
> > +
> > return Changed;
> > }
> >
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130731/f4830791/attachment.html>
More information about the llvm-commits
mailing list