llvm-project/llvm/test/CodeGen/BPF
Yonghong Song c88bcdec43 bpf: Extends zero extension elimination beyond comparison instructions
The current zero extension elimination was restricted to operands of
comparison. It actually could be extended to more cases.

For example:

  int *inc_p (int *p, unsigned a)
  {
    return p + a;
  }

'a' will be promoted to i64 during addition, and the zero extension could
be eliminated as well.

For the elimination optimization, it should be much better to start
recognizing the candidate sequence from the SRL instruction instead of J*
instructions.

This patch makes it an generic zero extension elimination pass instead of
one restricted with comparison.

Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
Signed-off-by: Yonghong Song <yhs@fb.com>
llvm-svn: 327367
2018-03-13 06:47:03 +00:00
..
32-bit-subreg-alu.ll bpf: New codegen testcases for 32-bit subregister support 2018-02-23 23:49:33 +00:00
32-bit-subreg-cond-select.ll bpf: New codegen testcases for 32-bit subregister support 2018-02-23 23:49:33 +00:00
32-bit-subreg-load-store.ll bpf: New codegen testcases for 32-bit subregister support 2018-02-23 23:49:33 +00:00
32-bit-subreg-peephole.ll bpf: Extends zero extension elimination beyond comparison instructions 2018-03-13 06:47:03 +00:00
alu8.ll [BPF] Return true in enableMultipleCopyHints(). 2018-02-18 10:09:54 +00:00
atomics.ll
basictest.ll [BPF] Return true in enableMultipleCopyHints(). 2018-02-18 10:09:54 +00:00
byval.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
cc_args.ll [bpf] allow direct and indirect calls 2017-11-19 01:35:00 +00:00
cc_args_be.ll [bpf] allow direct and indirect calls 2017-11-19 01:35:00 +00:00
cc_ret.ll [bpf] allow direct and indirect calls 2017-11-19 01:35:00 +00:00
cmp.ll [BPF] Return true in enableMultipleCopyHints(). 2018-02-18 10:09:54 +00:00
dwarfdump.ll [DebugInfo] Support DWARF v5 source code embedding extension 2018-02-23 23:01:06 +00:00
ex1.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
fi_ri.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
inline_asm.ll bpf: add inline-asm support 2017-09-18 23:29:36 +00:00
intrinsics.ll [BPF] Return true in enableMultipleCopyHints(). 2018-02-18 10:09:54 +00:00
lit.local.cfg
load.ll
loops.ll
many_args1.ll
many_args2.ll
mem_offset.ll
mem_offset_be.ll bpf: add " ll" in the LD_IMM64 asmstring 2017-09-11 23:43:35 +00:00
objdump_atomics.ll
objdump_cond_op.ll bpf: print backward branch target properly 2017-11-16 19:15:36 +00:00
objdump_cond_op_2.ll bpf: print backward branch target properly 2017-11-16 19:15:36 +00:00
objdump_imm_hex.ll bpf: add support for objdump -print-imm-hex 2017-12-20 19:39:58 +00:00
objdump_intrinsics.ll [BPF] Return true in enableMultipleCopyHints(). 2018-02-18 10:09:54 +00:00
objdump_trivial.ll
reloc.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
remove_truncate_1.ll bpf: remove unnecessary truncate operation 2017-06-29 15:18:54 +00:00
remove_truncate_2.ll bpf: remove unnecessary truncate operation 2017-06-29 15:18:54 +00:00
remove_truncate_3.ll [BPF] Return true in enableMultipleCopyHints(). 2018-02-18 10:09:54 +00:00
remove_truncate_4.ll [BPF] Teach DAG2DAG AND elimination about load intrinsics 2018-01-16 07:27:19 +00:00
remove_truncate_5.ll bpf: fix a bug in dag2dag optimization for loads from readonly section 2018-02-15 17:06:45 +00:00
rodata_1.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
rodata_2.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
rodata_3.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
rodata_4.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
sanity.ll [BPF] Return true in enableMultipleCopyHints(). 2018-02-18 10:09:54 +00:00
sdiv_error.ll
select_ri.ll bpf: Improve expanding logic in LowerSELECT_CC 2018-02-08 04:37:49 +00:00
setcc.ll bpf: add variants of -mcpu=# and support for additional jmp insns 2017-08-23 04:25:57 +00:00
shifts.ll [BPF] Return true in enableMultipleCopyHints(). 2018-02-18 10:09:54 +00:00
sockex2.ll Followup on Proposal to move MIR physical register namespace to '$' sigil. 2018-01-31 22:04:26 +00:00
struct_ret1.ll
struct_ret2.ll
undef.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
vararg1.ll
warn-call.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
warn-stack.ll