[llvm] r217018 - Recommit "Use unique_ptr to manager FilterChooser ownership."

Justin Bogner mail at justinbogner.com
Tue Sep 2 23:45:44 PDT 2014


Craig Topper <craig.topper at gmail.com> writes:
> Author: ctopper
> Date: Wed Sep  3 01:07:54 2014
> New Revision: 217018
>
> URL: http://llvm.org/viewvc/llvm-project?rev=217018&view=revLog:
> Recommit "Use unique_ptr to manager FilterChooser ownership."
>
> Just using insert of a pair this time instead of emplace.
>
> Modified:
>     llvm/trunk/utils/TableGen/FixedLenDecoderEmitter.cpp
>
> Modified: llvm/trunk/utils/TableGen/FixedLenDecoderEmitter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/FixedLenDecoderEmitter.cpp?rev=217018&r1=217017&r2=217018&view=diff==============================================================================
> --- llvm/trunk/utils/TableGen/FixedLenDecoderEmitter.cpp (original)
> +++ llvm/trunk/utils/TableGen/FixedLenDecoderEmitter.cpp Wed Sep  3 01:07:54 2014
> @@ -230,7 +230,7 @@ protected:
>    std::vector<unsigned> VariableInstructions;
>  
>    // Map of well-known segment value to its delegate.
> -  std::map<unsigned, const FilterChooser*> FilterChooserMap;
> +  std::map<unsigned, std::unique_ptr<const FilterChooser>> FilterChooserMap;
>  
>    // Number of instructions which fall under FilteredInstructions category.
>    unsigned NumFiltered;
> @@ -530,12 +530,6 @@ Filter::Filter(FilterChooser &owner, uns
>  }
>  
>  Filter::~Filter() {
> -  std::map<unsigned, const FilterChooser*>::iterator filterIterator;
> -  for (filterIterator = FilterChooserMap.begin();
> -       filterIterator != FilterChooserMap.end();
> -       filterIterator++) {
> -    delete filterIterator->second;
> -  }
>  }
>  
>  // Divides the decoding task into sub tasks and delegates them to the
> @@ -557,14 +551,13 @@ void Filter::recurse() {
>  
>      // Delegates to an inferior filter chooser for further processing on this
>      // group of instructions whose segment values are variable.
> -    FilterChooserMap.insert(std::pair<unsigned, const FilterChooser*>(
> -                              (unsigned)-1,
> -                              new FilterChooser(Owner->AllInstructions,
> -                                                VariableInstructions,
> -                                                Owner->Operands,
> -                                                BitValueArray,
> -                                                *Owner)
> -                              ));
> +    FilterChooserMap.insert(std::make_pair(
> +                              -1U,
> +                              make_unique<FilterChooser>(Owner->AllInstructions,
> +                                                         VariableInstructions,
> +                                                         Owner->Operands,
> +                                                         BitValueArray,
> +                                                         *Owner)));

This indentation's a bit out there. Might be nice to clang-format these
while you're here.

>    }
>  
>    // No need to recurse for a singleton filtered instruction.
> @@ -590,14 +583,13 @@ void Filter::recurse() {
>  
>      // Delegates to an inferior filter chooser for further processing on this
>      // category of instructions.
> -    FilterChooserMap.insert(std::pair<unsigned, const FilterChooser*>(
> +    FilterChooserMap.insert(std::make_pair(
>                                mapIterator->first,
> -                              new FilterChooser(Owner->AllInstructions,
> -                                                mapIterator->second,
> -                                                Owner->Operands,
> -                                                BitValueArray,
> -                                                *Owner)
> -                              ));
> +                              make_unique<FilterChooser>(Owner->AllInstructions,
> +                                                         mapIterator->second,
> +                                                         Owner->Operands,
> +                                                         BitValueArray,
> +                                                         *Owner)));
>    }
>  }
>  
> @@ -632,7 +624,8 @@ void Filter::emitTableEntry(DecoderTable
>    // A new filter entry begins a new scope for fixup resolution.
>    TableInfo.FixupStack.push_back(FixupList());
>  
> -  std::map<unsigned, const FilterChooser*>::const_iterator filterIterator;
> +  std::map<unsigned,
> +           std::unique_ptr<const FilterChooser>>::const_iterator filterIterator;
>  
>    DecoderTable &Table = TableInfo.Table;
>  
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list