llvm-project/llvm/lib/Target/BPF
Yonghong Song 5898979387 BPF: support inlining __builtin_memcmp intrinsic call
Delyan Kratunov reported an issue where __builtin_memcmp is
not inlined into simple load/compare instructions.
This is a known issue. In the current state, __builtin_memcmp
will be converted to memcmp call which won't work for
bpf programs.

This patch added support for expanding __builtin_memcmp with
actual loads and compares up to currently maximum 128 total loads.
The implementation is identical to PowerPC.

Differential Revision: https://reviews.llvm.org/D122676
2022-03-29 15:03:26 -07:00
..
AsmParser Cleanup MCParser headers 2022-02-11 10:39:29 +01:00
Disassembler [Disassember][NFCI] Use strong type for instruction decoder 2022-03-25 18:53:59 -07:00
MCTargetDesc [NFC][MC] remove unused argument `MCRegisterInfo` in `MCCodeEmitter` 2022-02-16 13:10:09 +08:00
TargetInfo Fix shlib builds for all lib/Target/*/TargetInfo libs 2021-10-08 15:21:13 -07:00
BPF.h Cleanup includes: LLVMTarget 2022-03-10 10:00:29 +01:00
BPF.td
BPFAbstractMemberAccess.cpp [BPF] Don't fetch alignment of llvm.preserve.union.access.index argument 2022-03-25 09:53:30 +01:00
BPFAdjustOpt.cpp [BPF] handle unsigned icmp ops in BPFAdjustOpt pass 2022-03-17 16:24:39 -07:00
BPFAsmPrinter.cpp Move TargetRegistry.(h|cpp) from Support to MC 2021-10-08 14:51:48 -07:00
BPFCORE.h
BPFCallingConv.td
BPFCheckAndAdjustIR.cpp BPF: Workaround an InstCombine ICmp transformation with llvm.bpf.compare builtin 2021-11-01 14:46:20 -07:00
BPFFrameLowering.cpp
BPFFrameLowering.h
BPFIRPeephole.cpp BPF: fix a bug in IRPeephole pass 2021-10-18 10:18:24 -07:00
BPFISelDAGToDAG.cpp
BPFISelLowering.cpp BPF: support inlining __builtin_memcmp intrinsic call 2022-03-29 15:03:26 -07:00
BPFISelLowering.h BPF: implement isLegalAddressingMode() properly 2021-09-30 16:41:15 -07:00
BPFInstrFormats.td
BPFInstrInfo.cpp
BPFInstrInfo.h
BPFInstrInfo.td
BPFMCInstLower.cpp [Target] Use range-based for loops (NFC) 2021-11-26 08:23:01 -08:00
BPFMCInstLower.h
BPFMIChecking.cpp Cleanup codegen includes 2022-03-16 08:43:00 +01:00
BPFMIPeephole.cpp Cleanup codegen includes 2022-03-16 08:43:00 +01:00
BPFMISimplifyPatchable.cpp Cleanup codegen includes 2022-03-16 08:43:00 +01:00
BPFPreserveDIType.cpp Reduce dependencies on llvm/BinaryFormat/Dwarf.h 2022-02-04 11:44:03 +01:00
BPFRegisterInfo.cpp
BPFRegisterInfo.h
BPFRegisterInfo.td BPF: make 32bit register spill with 64bit alignment 2021-09-20 21:00:25 -07:00
BPFSelectionDAGInfo.cpp
BPFSelectionDAGInfo.h
BPFSubtarget.cpp [Target] Remove redundant member initialization (NFC) 2022-01-06 22:01:44 -08:00
BPFSubtarget.h
BPFTargetMachine.cpp mark getTargetTransformInfo and getTargetIRAnalysis as const 2022-02-25 14:30:44 -05:00
BPFTargetMachine.h mark getTargetTransformInfo and getTargetIRAnalysis as const 2022-02-25 14:30:44 -05:00
BPFTargetTransformInfo.h BPF: support inlining __builtin_memcmp intrinsic call 2022-03-29 15:03:26 -07:00
BTF.def BPF: Support btf_type_tag attribute 2021-11-04 17:01:36 -07:00
BTF.h BPF: Support btf_type_tag attribute 2021-11-04 17:01:36 -07:00
BTFDebug.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
BTFDebug.h [BPF] Fix a bug in BTF_KIND_TYPE_TAG generation 2022-02-14 19:43:57 -08:00
CMakeLists.txt BPF: remove intrindics @llvm.stacksave() and @llvm.stackrestore() 2021-10-18 09:51:19 -07:00