[LLVMdev] [LLVM, llvm-diff] Question about FunctionDifferenceEngine and DiffConsumer::printValue

Stepan Dyatkovskiy stpworld at narod.ru
Mon Nov 7 03:37:38 PST 2011


ping.
-Stepan.

Stepan Dyatkovskiy wrote:
> ping.
>
> -Stepan.
>
> Stepan Dyatkovskiy wrote:
>> Hi,
>>
>> Please find the attached patch for review.
>>
>> -Stepan.
>>
>> John McCall wrote:
>>> On Oct 28, 2011, at 2:00 AM, Stepan Dyatkovskiy wrote:
>>>> I found next code when switch instruction differs:
>>>>
>>>> Engine.logf("right switch has extra case %r")<<  CaseValue;
>>>>
>>>> Where CaseValue is a ConstantInt object. Looking how logf works I found
>>>> that it invokes DiffConsumer::printValue method for CaseValue. And here
>>>> I found that CaseValue itself will never printed. On first look how
>>>> DiffConsumer::printValue works it seems that for all constants "object
>>>> numbering" should be printed:
>>>>
>>>> out<<  '%'<<  ctxt.RNumbering[V]; // V = CaseValue in our case.
>>>> // RNumbering is instance of
>>>> DenseMap<Value*,unsigned>.
>>>>
>>>> Then I look into DiffConsumer.cpp, ComputeNumbering method that fills
>>>> RNumbering and LNumbering. Well, numbering computed for function
>>>> arguments, basic blocks and instructions only.
>>>>
>>>> It means that for Constants "%0" will be printed always. If so, I
>>>> propose to add case for constants in DiffConsumer::printValue method,
>>>> that will print constant itself.
>>>
>>> Patches welcome!
>>>
>>> John.
>>
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list