diff --git a/llvm/lib/Target/BPF/BPFInstrInfo.td b/llvm/lib/Target/BPF/BPFInstrInfo.td index 0f39294daa2b..6781d09b846e 100644 --- a/llvm/lib/Target/BPF/BPFInstrInfo.td +++ b/llvm/lib/Target/BPF/BPFInstrInfo.td @@ -526,7 +526,7 @@ class NOP_I 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 index 000000000000..6df2699f2e74 --- /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