1. [BPF] Permit all user instructed offset relocatiions (details)
Commit c68ee0ce70438c267f802b1c2f19cf011414c0c0 by yhs
[BPF] Permit all user instructed offset relocatiions
Currently, not all user specified relocations
(with clang intrinsic __builtin_preserve_access_index()) will turn into
In the current implementation, a __builtin_preserve_access_index() chain
is turned into relocation only if the result of the clang intrinsic is
used in a function call or a nonzero offset computation of
getelementptr. For all other cases, the relocatiion request is ignored
and the __builtin_preserve_access_index() is turned into regular
getelementptr instructions. The main reason is to mimic bpf_probe_read()
But there are other use cases where relocatable offset is generated but
not used for bpf_probe_read(). This patch relaxed previous constraints
when to generate relocations. Now, all user
__builtin_preserve_access_index() will have relocations generated.
Differential Revision:
llvm-svn: 372198
The file was addedllvm/test/CodeGen/BPF/CORE/offset-reloc-end-load.ll
The file was addedllvm/test/CodeGen/BPF/CORE/offset-reloc-end-ret.ll
The file was modifiedllvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp