[llvm-commits] [llvm] r55886 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Bill Wendling
isanbard at gmail.com
Sun Sep 7 17:35:09 PDT 2008
It's not a bug in that this wasn't being done. I was doing a static
analysis of the DAG combiner and noticed that this wasn't doing what
the comment claimed it should be doing. If this transformation is
performed in the selection DAG code, then it should probably be
removed from here entirely (along with the analogous "ADD"
transformation). What do you think?
-bw
On Sep 7, 2008, at 5:19 PM, Evan Cheng wrote:
> Is this fixing a bug? getNode should be performing constant folding.
> See SelectionDAG.cpp line 2441. If somehow that wasn't happening,
> please fix it there and provide a test case.
>
> Thanks,
>
> Evan
>
> On Sep 7, 2008, at 4:34 AM, Bill Wendling wrote:
>
>> Author: void
>> Date: Sun Sep 7 06:34:47 2008
>> New Revision: 55886
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=55886&view=rev
>> Log:
>> Convert
>>
>> // fold (sub c1, c2) -> c1-c2
>>
>> from a no-op into an actual transformation.
>>
>> Modified:
>> llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
>>
>> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=55886&r1=55885&r2=55886&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Sun Sep 7
>> 06:34:47 2008
>> @@ -1111,7 +1111,7 @@
>> return DAG.getConstant(0, N->getValueType(0));
>> // fold (sub c1, c2) -> c1-c2
>> if (N0C && N1C)
>> - return DAG.getNode(ISD::SUB, VT, N0, N1);
>> + return DAG.getConstant(N0C->getAPIntValue() - N1C-
>>> getAPIntValue(), VT);
>> // fold (sub x, c) -> (add x, -c)
>> if (N1C)
>> return DAG.getNode(ISD::ADD, VT, N0,
>>
>>
>> _______________________________________________
>> 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
More information about the llvm-commits
mailing list