Author: yhs Date: Tue Aug 22 21:26:17 2017 New Revision: 311523 URL: http://llvm.org/viewvc/llvm-project?rev=311523&view=rev Log: bpf: add -mcpu=# support for bpf
-mcpu=# will support: . generic: the default insn set . v1: insn set version 1, the same as generic . v2: insn set version 2, version 1 + additional jmp insns . probe: the compiler will probe the underlying kernel to decide proper version of insn set. Examples: $ clang -target bpf -mcpu=v1 -c t.c $ clang -target bpf -mcpu=v2 -c t.c $ clang -target bpf -mcpu=generic -c t.c $ clang -target bpf -mcpu=probe -c t.c $ clang -target bpf -mcpu=v3 -c t.c error: unknown target CPU 'v3' Signed-off-by: Yonghong Song <y...@fb.com> Acked-by: Alexei Starovoitov <a...@kernel.org> Modified: cfe/trunk/lib/Basic/Targets/BPF.h cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Modified: cfe/trunk/lib/Basic/Targets/BPF.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/BPF.h?rev=311523&r1=311522&r2=311523&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets/BPF.h (original) +++ cfe/trunk/lib/Basic/Targets/BPF.h Tue Aug 22 21:26:17 2017 @@ -76,6 +76,18 @@ public: return CCCR_OK; } } + + bool isValidCPUName(StringRef Name) const override { + if (Name == "generic" || Name == "v1" || + Name == "v2" || Name == "probe") + return true; + return false; + } + + bool setCPU(const std::string &Name) override { + StringRef CPUName(Name); + return isValidCPUName(CPUName); + } }; } // namespace targets } // namespace clang Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=311523&r1=311522&r2=311523&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Tue Aug 22 21:26:17 2017 @@ -320,6 +320,8 @@ std::string tools::getCPUName(const ArgL return TargetCPUName; } + case llvm::Triple::bpfel: + case llvm::Triple::bpfeb: case llvm::Triple::sparc: case llvm::Triple::sparcel: case llvm::Triple::sparcv9: _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits