llvm-project/llvm/test
Yonghong Song 71d81e5c8f bpf: new option -bpf-expand-memcpy-in-order to expand memcpy in order
Some BPF JIT backends would want to optimize memcpy in their own
architecture specific way.

However, at the moment, there is no way for JIT backends to see memcpy
semantics in a reliable way. This is due to LLVM BPF backend is expanding
memcpy into load/store sequences and could possibly schedule them apart from
each other further. So, BPF JIT backends inside kernel can't reliably
recognize memcpy semantics by peephole BPF sequence.

This patch introduce new intrinsic expand infrastructure to memcpy.

To get stable in-order load/store sequence from memcpy, we first lower
memcpy into BPF::MEMCPY node which then expanded into in-order load/store
sequences in expandPostRAPseudo pass which will happen after instruction
scheduling. By this way, kernel JIT backends could reliably recognize
memcpy through scanning BPF sequence.

This new memcpy expand infrastructure is gated by a new option:

  -bpf-expand-memcpy-in-order

Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
Signed-off-by: Yonghong Song <yhs@fb.com>
llvm-svn: 337977
2018-07-25 22:40:02 +00:00
..
Analysis Fix llvm::ComputeNumSignBits with some operations and llvm.assume 2018-07-25 16:39:24 +00:00
Assembler [ThinLTO] Only emit referenced type id records in index files 2018-07-19 22:25:56 +00:00
Bindings
Bitcode [FileCheck] Add -allow-deprecated-dag-overlap to failing llvm tests 2018-07-11 20:25:49 +00:00
BugPoint
CodeGen bpf: new option -bpf-expand-memcpy-in-order to expand memcpy in order 2018-07-25 22:40:02 +00:00
DebugInfo Revert "[DebugInfo] Generate DWARF debug information for labels." 2018-07-24 06:17:45 +00:00
Demangle Fix a few warnings and style issues in MS demangler. 2018-07-20 18:07:33 +00:00
Examples
ExecutionEngine Re-land r335297 "[X86] Implement more of x86-64 large and medium PIC code models" 2018-07-23 21:14:35 +00:00
Feature
FileCheck [FileCheck] Provide an option for FileCheck to dump original input to stderr on failure 2018-07-20 20:21:57 +00:00
Instrumentation Use SCEV to avoid inserting some bounds checks. 2018-07-24 15:21:54 +00:00
Integer
JitListener
LTO [LTO] Handle __imp_ (dllimport) symbols consistently with lld 2018-07-23 22:33:57 +00:00
Linker
MC [mips] Replace custom parsing logic for data directives by the `addAliasForDirective` 2018-07-25 07:07:43 +00:00
Object [ELF] Change isSectionData to exclude SHF_EXECINSTR 2018-06-23 00:15:33 +00:00
ObjectYAML
Other Revert r337904: [IPSCCP] Use PredicateInfo to propagate facts from cmp instructions. 2018-07-25 19:44:19 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen [json, test] Fix the json.td test - the path to python could contain spaces 2018-07-13 15:10:53 +00:00
ThinLTO/X86 [ThinLTO] Only emit referenced type id records in index files 2018-07-19 22:25:56 +00:00
Transforms [GlobalMerge] Handle llvm.compiler.used correctly. 2018-07-25 22:03:35 +00:00
Unit
Verifier Recommit r335794 "Add support for generating a call graph profile from Branch Frequency Info." with fix for removed functions. 2018-07-16 00:28:24 +00:00
YAMLParser
tools [llvm-objdump] Add dynamic section printing to private-headers option 2018-07-25 11:09:20 +00:00
.clang-format
CMakeLists.txt Make check-llvm depend on llvm-undname 2018-07-20 18:42:19 +00:00
TestRunner.sh
lit.cfg.py And add a lit substitution for llvm-undname, as the comment says to 2018-07-20 18:45:01 +00:00
lit.site.cfg.py.in