From d490c2d2aee591f593ec3cabb1caed801cfe2ad8 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Tue, 11 Jan 2011 00:36:45 +0000 Subject: Fix a random missed optimization by making InstCombine more aggressive when determining which bits are demanded by a comparison against a constant. llvm-svn: 123203 --- llvm/lib/Target/README.txt | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'llvm/lib/Target') diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt index dfa00b8c951..194a19219cb 100644 --- a/llvm/lib/Target/README.txt +++ b/llvm/lib/Target/README.txt @@ -1627,21 +1627,6 @@ int bar() { return foo("abcd"); } //===---------------------------------------------------------------------===// -InstCombine should use SimplifyDemandedBits to remove the or instruction: - -define i1 @test(i8 %x, i8 %y) { - %A = or i8 %x, 1 - %B = icmp ugt i8 %A, 3 - ret i1 %B -} - -Currently instcombine calls SimplifyDemandedBits with either all bits or just -the sign bit, if the comparison is obviously a sign test. In this case, we only -need all but the bottom two bits from %A, and if we gave that mask to SDB it -would delete the or instruction for us. - -//===---------------------------------------------------------------------===// - functionattrs doesn't know much about memcpy/memset. This function should be marked readnone rather than readonly, since it only twiddles local memory, but functionattrs doesn't handle memset/memcpy/memmove aggressively: -- cgit v1.2.3