[PATCH] SimplifyCFG: turn recursive GatherConstantCompares into iterative

Michael Ilseman milseman at apple.com
Wed Nov 19 22:28:16 PST 2014


> On Nov 19, 2014, at 10:03 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
> 
> 
>> On Nov 19, 2014, at 8:42 PM, Michael Ilseman <milseman at apple.com> wrote:
>> 
>> The git-diff got a little convoluted in it’s +'s and -'s, so I’ll trust that you kept the functionality the same.
>> 
>> +  /// Don't want to copy this
>> +  ConstantComparesGatherer(const ConstantComparesGatherer &) = delete;
>> +
>> 
>> If that’s the case, you also probably want to delete the assignment operator.
> 
> It is not that important, it was just to avoid any mistake, but it is a private class. I removed it.

Sorry, I was unclear. By “delete” I meant the “= delete” pattern. I think having the copy constructor be deleted by adding “= delete” is a good idea. I was saying to also do “ConstantComparesGatherer &operator=(const ConstantComparesGatherer &) = delete;” to get rid of the assignment operator, which like the copy constructor, will get created for you.

> 
>> 
>> +  bool match(Instruction *I, const DataLayout *DL, bool isEQ) {
>> 
>> Especially given that “match" now conflicts with the match from PatternMatchers.h, is there a more descriptive name? I believe this does matching as well as comparison with an optional CompValue.
> 
> What about matchInstruction() ?
> 

Sure, I have no desire to bikeshed :-)

> I updated the patch: http://reviews.llvm.org/D6333
> 

LGTM

> Mehdi
> 
> 
>> 
>> All in all, I think this switch to a struct and methods is an improvement over the many parameters and state that were there previously. LGTM.
>> 
>> 
>>> On Nov 19, 2014, at 8:00 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>>> 
>>> <0001-SimplifyCFG-Refactor-GatherConstantCompares-result-i.patch>
>> 
> 





More information about the llvm-commits mailing list