[llvm-commits] [llvm] r169459 - in /llvm/trunk: include/llvm/Target/TargetLowering.h lib/CodeGen/SelectionDAG/SelectionDAG.cpp lib/CodeGen/SelectionDAG/TargetLowering.cpp lib/Target/ARM/ARMISelLowering.cpp lib/Target/ARM/ARMISelLowering.h lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86ISelLowering.h test/CodeGen/ARM/extload-knownzero.ll

Evan Cheng evan.cheng at apple.com
Thu Dec 6 11:14:41 PST 2012


r169536

Evan

On Dec 6, 2012, at 9:00 AM, Evan Cheng <evan.cheng at apple.com> wrote:

> I think you are right. It's not safe to compute known zero for anyext until just before selection time. I'll look into solving this deficiency another way. 
> 
> Thanks,
> 
> Evan
> 
> On Dec 6, 2012, at 1:00 AM, Duncan Sands <baldrick at free.fr> wrote:
> 
>> Hi Evan,
>> 
>> On 06/12/12 02:28, Evan Cheng wrote:
>>> Author: evancheng
>>> Date: Wed Dec  5 19:28:01 2012
>>> New Revision: 169459
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=169459&view=rev
>>> Log:
>>> Let targets provide hooks that compute known zero and ones for any_extend
>>> and extload's. If they are implemented as zero-extend, or implicitly
>>> zero-extend, then this can enable more demanded bits optimizations. e.g.
>> 
>> is this correct?  All kinds of DAG combines exploit that anyext means "any",
>> eg: any_extend(trunc X) -> X.  On a target where any_extend does zero-extend,
>> won't your patch say that all the upper bits of "any_extend(trunc X)" are
>> zero, causing all kinds of oddness when they turned later into the bits of X,
>> which may not be zero.
>> 
>> Ciao, Duncan.
>> _______________________________________________
>> 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