"couldn't allocate output register for constraint 'r' " means that inline asm was used. Try preprocessing C and look for inline asm usage.
On Fri, Jan 6, 2017 at 1:30 PM, William Tu via iovisor-dev <iovisor-dev@lists.iovisor.org> wrote: > thanks > the code is at > https://gist.github.com/williamtu/7e41392a34672d7b4574aee063ea4a3b > > > On Fri, Jan 6, 2017 at 1:21 PM, Brenden Blanco <bbla...@gmail.com> wrote: >> Yes, it would be helpful to share the code. >> >> On Fri, Jan 6, 2017 at 12:34 PM, William Tu via iovisor-dev >> <iovisor-dev@lists.iovisor.org> wrote: >>> >>> Hi, >>> >>> I'm adding parser and extra map lookup into the xdp1_kern.c and >>> encounter this LLVM error. My environment: >>> clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final) >>> LLVM version 4.0.0svn >>> >>> I think it might be related to bpf map access, if I comment out the >>> map access code, then the problem goes away. Looking at similar error >>> in bcc, I have no clue about how to debug this issue. >>> https://github.com/iovisor/bcc/issues/220 >>> https://github.com/iovisor/bcc/issues/237 >>> I can share the code if it is more helpful. Any comments are appreciated! >>> >>> $ clang -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include >>> -I./arch/x86/include -I./arch/x86/include/generated/uapi >>> -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi >>> -I./include/uapi -I./include/generated/uapi -include >>> ./include/linux/kconfig.h \ >>> -D__KERNEL__ -D__ASM_SYSREG_H -Wno-unused-value -Wno-pointer-sign \ >>> -Wno-compare-distinct-pointer-types \ >>> -Wno-gnu-variable-sized-type-not-at-end \ >>> -Wno-address-of-packed-member -Wno-tautological-compare \ >>> -O2 -emit-llvm -c /root/net-next/samples/bpf/xdp1_kern.c -o -| llc >>> -march=bpf -filetype=obj -o /root/net-next/samples/bpf/xdp1_kern.o >>> warning: unknown warning option '-Wno-address-of-packed-member' >>> [-Wunknown-warning-option] >>> 1 warning generated. >>> error: couldn't allocate output register for constraint 'r' at line 473618 >>> >>> Thanks >>> William >>> _______________________________________________ >>> iovisor-dev mailing list >>> iovisor-dev@lists.iovisor.org >>> https://lists.iovisor.org/mailman/listinfo/iovisor-dev >> >> > _______________________________________________ > iovisor-dev mailing list > iovisor-dev@lists.iovisor.org > https://lists.iovisor.org/mailman/listinfo/iovisor-dev _______________________________________________ iovisor-dev mailing list iovisor-dev@lists.iovisor.org https://lists.iovisor.org/mailman/listinfo/iovisor-dev