llvm-project/llvm/lib/Target/BPF
Yonghong Song e91802f336 bpf: New post-RA peephole optimization pass to eliminate bad RA codegen
This new pass eliminate identical move:

  MOV rA, rA

This is particularly possible to happen when sub-register support
enabled. The special type cast insn MOV_32_64 involves different
register class on src (i32) and dst (i64), RA could generate useless
instruction due to this.

This pass also could serve as the bast for further post-RA optimization.

Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
Signed-off-by: Yonghong Song <yhs@fb.com>
llvm-svn: 327370
2018-03-13 06:47:06 +00:00
..
AsmParser [Asm] Add debug tracing in table-generated assembly matcher 2017-10-11 09:17:43 +00:00
Disassembler bpf: New decoder namespace for 32-bit subregister load/store 2018-02-23 23:49:31 +00:00
InstPrinter bpf: add support for objdump -print-imm-hex 2017-12-20 19:39:58 +00:00
MCTargetDesc bpf: introduce -mattr=dwarfris to disable DwarfUsesRelocationsAcrossSections 2018-03-01 23:04:59 +00:00
TargetInfo Add backend name to Target to enable runtime info to be fed back into TableGen 2017-11-15 23:55:44 +00:00
BPF.h bpf: New post-RA peephole optimization pass to eliminate bad RA codegen 2018-03-13 06:47:06 +00:00
BPF.td bpf: introduce -mattr=dwarfris to disable DwarfUsesRelocationsAcrossSections 2018-03-01 23:04:59 +00:00
BPFAsmPrinter.cpp bpf: add inline-asm support 2017-09-18 23:29:36 +00:00
BPFCallingConv.td bpf: New calling convention for 32-bit subregisters 2018-02-23 23:49:23 +00:00
BPFFrameLowering.cpp
BPFFrameLowering.h Move TargetFrameLowering.h to CodeGen where it's implemented 2017-11-03 22:32:11 +00:00
BPFISelDAGToDAG.cpp bpf: New instruction patterns for 32-bit subregister load and store 2018-02-23 23:49:28 +00:00
BPFISelLowering.cpp bpf: Don't expand BSWAP on i32, promote it 2018-03-13 06:47:05 +00:00
BPFISelLowering.h bpf: Support i32 in getScalarShiftAmountTy method 2018-02-23 23:49:26 +00:00
BPFInstrFormats.td bpf: add new insns for bswap_to_le and negation 2017-09-28 02:46:11 +00:00
BPFInstrInfo.cpp bpf: Support 32-bit subregister in various InstrInfo hooks 2018-02-23 23:49:29 +00:00
BPFInstrInfo.h Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
BPFInstrInfo.td bpf: New instruction patterns for 32-bit subregister load and store 2018-02-23 23:49:28 +00:00
BPFMCInstLower.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
BPFMCInstLower.h [bpf] error when unknown bpf helper is called 2017-01-17 07:26:17 +00:00
BPFMIPeephole.cpp bpf: New post-RA peephole optimization pass to eliminate bad RA codegen 2018-03-13 06:47:06 +00:00
BPFRegisterInfo.cpp bpf: Use markSuperRegs to mark reserved registers 2018-02-23 23:49:18 +00:00
BPFRegisterInfo.h [BPF] Return true in enableMultipleCopyHints(). 2018-02-18 10:09:54 +00:00
BPFRegisterInfo.td bpf: add 32bit register set 2017-09-22 04:36:35 +00:00
BPFSubtarget.cpp bpf: introduce -mattr=dwarfris to disable DwarfUsesRelocationsAcrossSections 2018-03-01 23:04:59 +00:00
BPFSubtarget.h bpf: introduce -mattr=dwarfris to disable DwarfUsesRelocationsAcrossSections 2018-03-01 23:04:59 +00:00
BPFTargetMachine.cpp bpf: New post-RA peephole optimization pass to eliminate bad RA codegen 2018-03-13 06:47:06 +00:00
BPFTargetMachine.h Revert "TargetMachine: Merge TargetMachine and LLVMTargetMachine" 2017-10-12 22:57:28 +00:00
CMakeLists.txt bpf: New optimization pass for eliminating unnecessary i32 promotions 2018-02-23 23:49:32 +00:00
LLVMBuild.txt bpf: Add BPF AsmParser support in LLVM 2017-09-12 17:55:23 +00:00