diff --git a/llvm/lib/Target/BPF/BPFInstrInfo.td b/llvm/lib/Target/BPF/BPFInstrInfo.td --- a/llvm/lib/Target/BPF/BPFInstrInfo.td +++ b/llvm/lib/Target/BPF/BPFInstrInfo.td @@ -526,7 +526,7 @@ let BPFClass = BPF_ALU64; } -let hasSideEffects = 0 in +let hasSideEffects = 0, isCodeGenOnly = 1 in def NOP : NOP_I<"nop">; class RET diff --git a/llvm/test/CodeGen/BPF/objdump_nop.ll b/llvm/test/CodeGen/BPF/objdump_nop.ll new file mode 100644 --- /dev/null +++ b/llvm/test/CodeGen/BPF/objdump_nop.ll @@ -0,0 +1,19 @@ +; RUN: llc -march=bpfel -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s +; +; Source: +; int test() { +; asm volatile("r0 = r0" ::); +; return 0; +; } +; Compilation flag: +; clang -target bpf -O2 -S -emit-llvm t.c + +; Function Attrs: nounwind +define dso_local i32 @test() local_unnamed_addr { +entry: + tail call void asm sideeffect "r0 = r0", ""() + ret i32 0 +} +; CHECK-LABEL: test +; CHECK: r0 = r0 +; CHECK: r0 = 0