BPF: Workaround InstCombine trunc+icmp => mask+icmp Optimization
Patch [1] added further InstCombine trunc+icmp => mask+icmp optimization and this caused a couple of bpf selftest failure. Previous llvm BPF backend patch [2] introduced llvm.bpf.compare builtin to handle such situations. This patch further added support ">" and ">=" icmp opcodes. Tested with bpf selftests and all tests are passed including two previously failed ones. Note Patch [1] also added optimization if the to-be-compared constant is negative-power-of-2 (-C) or not-of-power-of-2 (~C). This patch didn't implement these two cases as typical bpf program compares a scalar to a positive length or boundary value, and this scalar later is used as a index into an array buffer or packet buffer. [1] https://reviews.llvm.org/D112634 [2] https://reviews.llvm.org/D112938 Differential Revision: https://reviews.llvm.org/D114215
Loading
Please sign in to comment