llvm-6502/lib
Bill Wendling 7d9f2b93a3 This test case:
long test(long x) { return (x & 123124) | 3; }

Currently compiles to:

_test:
        orl     $3, %edi
        movq    %rdi, %rax
        andq    $123127, %rax
        ret

This is because instruction and DAG combiners canonicalize

  (or (and x, C), D) -> (and (or, D), (C | D))

However, this is only profitable if (C & D) != 0. It gets in the way of the
3-addressification because the input bits are known to be zero.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97616 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03 00:35:56 +00:00
..
Analysis When expanding an expression such as (A + B + C + D), sort the operands 2010-03-02 19:32:21 +00:00
Archive From PR6228: 2010-02-04 06:19:43 +00:00
AsmParser Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some 2010-02-16 14:50:09 +00:00
Bitcode Add Module functions in place of module providers. 2010-03-02 23:58:54 +00:00
CodeGen This test case: 2010-03-03 00:35:56 +00:00
CompilerDriver Input files with empty suffixes must be passed to linker. 2010-02-23 09:05:21 +00:00
ExecutionEngine Add Module functions in place of module providers. 2010-03-02 23:58:54 +00:00
Linker Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some 2010-02-16 14:50:09 +00:00
MC pass in more section kinds, enough to get the .align 0x90 2010-02-26 18:32:26 +00:00
Support Don't potentially read past the end of the fill data when making a NaN from 2010-03-01 18:38:45 +00:00
System follow-on to PR6280 2010-02-14 18:20:09 +00:00
Target Added 32-bit Thumb instructions t2DMB variants, t2DSB variants, and t2ISBsy for 2010-03-03 00:16:28 +00:00
Transforms This test case: 2010-03-03 00:35:56 +00:00
VMCore Add Module functions in place of module providers. 2010-03-02 23:58:54 +00:00
Makefile