Date: Mon, 20 Jan 2020 20:27:51 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r356931 - in projects/clang1000-import: contrib/llvm-project/clang/lib/Basic/Targets contrib/llvm-project/clang/lib/Driver/ToolChains/Arch contrib/llvm-project/llvm/include/llvm/ADT con... Message-ID: <202001202027.00KKRpIk008789@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Mon Jan 20 20:27:51 2020 New Revision: 356931 URL: https://svnweb.freebsd.org/changeset/base/356931 Log: Merge ^/head r356920 through r356930. Modified: projects/clang1000-import/contrib/llvm-project/clang/lib/Basic/Targets/PPC.cpp projects/clang1000-import/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h projects/clang1000-import/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/PPC.cpp projects/clang1000-import/contrib/llvm-project/llvm/include/llvm/ADT/Triple.h projects/clang1000-import/contrib/llvm-project/llvm/lib/Support/Triple.cpp projects/clang1000-import/contrib/llvm-project/llvm/lib/Target/PowerPC/PPC.td projects/clang1000-import/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCSubtarget.cpp projects/clang1000-import/lib/libc/stdlib/qsort.3 projects/clang1000-import/share/misc/committers-ports.dot projects/clang1000-import/sys/kern/vfs_cache.c projects/clang1000-import/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: projects/clang1000-import/ (props changed) projects/clang1000-import/contrib/llvm-project/ (props changed) projects/clang1000-import/contrib/llvm-project/clang/ (props changed) projects/clang1000-import/contrib/llvm-project/compiler-rt/ (props changed) projects/clang1000-import/contrib/llvm-project/libcxx/ (props changed) projects/clang1000-import/contrib/llvm-project/libunwind/ (props changed) projects/clang1000-import/contrib/llvm-project/lld/ (props changed) projects/clang1000-import/contrib/llvm-project/lldb/ (props changed) projects/clang1000-import/contrib/llvm-project/llvm/ (props changed) projects/clang1000-import/contrib/llvm-project/openmp/ (props changed) Modified: projects/clang1000-import/contrib/llvm-project/clang/lib/Basic/Targets/PPC.cpp ============================================================================== --- projects/clang1000-import/contrib/llvm-project/clang/lib/Basic/Targets/PPC.cpp Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/contrib/llvm-project/clang/lib/Basic/Targets/PPC.cpp Mon Jan 20 20:27:51 2020 (r356931) @@ -157,6 +157,8 @@ void PPCTargetInfo::getTargetDefines(const LangOptions Builder.defineMacro("_ARCH_A2Q"); Builder.defineMacro("_ARCH_QP"); } + if (ArchDefs & ArchDefineE500) + Builder.defineMacro("__NO_LWSYNC__"); if (getTriple().getVendor() == llvm::Triple::BGQ) { Builder.defineMacro("__bg__"); @@ -312,6 +314,11 @@ bool PPCTargetInfo::initFeatureMap( .Case("pwr8", true) .Default(false); + Features["spe"] = llvm::StringSwitch<bool>(CPU) + .Case("8548", true) + .Case("e500", true) + .Default(false); + if (!ppcUserFeaturesCheck(Diags, FeaturesVec)) return false; @@ -449,16 +456,16 @@ ArrayRef<TargetInfo::AddlRegName> PPCTargetInfo::getGC } static constexpr llvm::StringLiteral ValidCPUNames[] = { - {"generic"}, {"440"}, {"450"}, {"601"}, {"602"}, - {"603"}, {"603e"}, {"603ev"}, {"604"}, {"604e"}, - {"620"}, {"630"}, {"g3"}, {"7400"}, {"g4"}, - {"7450"}, {"g4+"}, {"750"}, {"970"}, {"g5"}, - {"a2"}, {"a2q"}, {"e500mc"}, {"e5500"}, {"power3"}, - {"pwr3"}, {"power4"}, {"pwr4"}, {"power5"}, {"pwr5"}, - {"power5x"}, {"pwr5x"}, {"power6"}, {"pwr6"}, {"power6x"}, - {"pwr6x"}, {"power7"}, {"pwr7"}, {"power8"}, {"pwr8"}, - {"power9"}, {"pwr9"}, {"powerpc"}, {"ppc"}, {"powerpc64"}, - {"ppc64"}, {"powerpc64le"}, {"ppc64le"}, + {"generic"}, {"440"}, {"450"}, {"601"}, {"602"}, + {"603"}, {"603e"}, {"603ev"}, {"604"}, {"604e"}, + {"620"}, {"630"}, {"g3"}, {"7400"}, {"g4"}, + {"7450"}, {"g4+"}, {"750"}, {"8548"}, {"970"}, + {"g5"}, {"a2"}, {"a2q"}, {"e500"}, {"e500mc"}, + {"e5500"}, {"power3"}, {"pwr3"}, {"power4"}, {"pwr4"}, + {"power5"}, {"pwr5"}, {"power5x"}, {"pwr5x"}, {"power6"}, + {"pwr6"}, {"power6x"}, {"pwr6x"}, {"power7"}, {"pwr7"}, + {"power8"}, {"pwr8"}, {"power9"}, {"pwr9"}, {"powerpc"}, + {"ppc"}, {"powerpc64"}, {"ppc64"}, {"powerpc64le"}, {"ppc64le"}, }; bool PPCTargetInfo::isValidCPUName(StringRef Name) const { Modified: projects/clang1000-import/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h ============================================================================== --- projects/clang1000-import/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h Mon Jan 20 20:27:51 2020 (r356931) @@ -44,7 +44,8 @@ class LLVM_LIBRARY_VISIBILITY PPCTargetInfo : public T ArchDefinePwr8 = 1 << 12, ArchDefinePwr9 = 1 << 13, ArchDefineA2 = 1 << 14, - ArchDefineA2q = 1 << 15 + ArchDefineA2q = 1 << 15, + ArchDefineE500 = 1 << 16 } ArchDefineTypes; @@ -85,8 +86,7 @@ class LLVM_LIBRARY_VISIBILITY PPCTargetInfo : public T // Note: GCC recognizes the following additional cpus: // 401, 403, 405, 405fp, 440fp, 464, 464fp, 476, 476fp, 505, 740, 801, - // 821, 823, 8540, 8548, e300c2, e300c3, e500mc64, e6500, 860, cell, - // titan, rs64. + // 821, 823, 8540, e300c2, e300c3, e500mc64, e6500, 860, cell, titan, rs64. bool isValidCPUName(StringRef Name) const override; void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override; @@ -145,6 +145,7 @@ class LLVM_LIBRARY_VISIBILITY PPCTargetInfo : public T ArchDefinePwr9 | ArchDefinePwr8 | ArchDefinePwr7 | ArchDefinePwr6 | ArchDefinePwr5x | ArchDefinePwr5 | ArchDefinePwr4 | ArchDefinePpcgr | ArchDefinePpcsq) + .Cases("8548", "e500", ArchDefineE500) .Default(ArchDefineNone); } return CPUKnown; Modified: projects/clang1000-import/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/PPC.cpp ============================================================================== --- projects/clang1000-import/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/PPC.cpp Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/PPC.cpp Mon Jan 20 20:27:51 2020 (r356931) @@ -52,10 +52,12 @@ std::string ppc::getPPCTargetCPU(const ArgList &Args) .Case("7450", "7450") .Case("G4+", "g4+") .Case("750", "750") + .Case("8548", "e500") .Case("970", "970") .Case("G5", "g5") .Case("a2", "a2") .Case("a2q", "a2q") + .Case("e500", "e500") .Case("e500mc", "e500mc") .Case("e5500", "e5500") .Case("power3", "pwr3") @@ -100,6 +102,9 @@ const char *ppc::getPPCAsmModeForCPU(StringRef Name) { void ppc::getPPCTargetFeatures(const Driver &D, const llvm::Triple &Triple, const ArgList &Args, std::vector<StringRef> &Features) { + if (Triple.getSubArch() == llvm::Triple::PPCSubArch_spe) + Features.push_back("+spe"); + handleTargetFeaturesGroup(Args, Features, options::OPT_m_ppc_Features_Group); ppc::FloatABI FloatABI = ppc::getPPCFloatABI(D, Args); Modified: projects/clang1000-import/contrib/llvm-project/llvm/include/llvm/ADT/Triple.h ============================================================================== --- projects/clang1000-import/contrib/llvm-project/llvm/include/llvm/ADT/Triple.h Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/contrib/llvm-project/llvm/include/llvm/ADT/Triple.h Mon Jan 20 20:27:51 2020 (r356931) @@ -128,7 +128,9 @@ class Triple { (public) KalimbaSubArch_v4, KalimbaSubArch_v5, - MipsSubArch_r6 + MipsSubArch_r6, + + PPCSubArch_spe }; enum VendorType { UnknownVendor, Modified: projects/clang1000-import/contrib/llvm-project/llvm/lib/Support/Triple.cpp ============================================================================== --- projects/clang1000-import/contrib/llvm-project/llvm/lib/Support/Triple.cpp Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/contrib/llvm-project/llvm/lib/Support/Triple.cpp Mon Jan 20 20:27:51 2020 (r356931) @@ -389,7 +389,7 @@ static Triple::ArchType parseArch(StringRef ArchName) // FIXME: Do we need to support these? .Cases("i786", "i886", "i986", Triple::x86) .Cases("amd64", "x86_64", "x86_64h", Triple::x86_64) - .Cases("powerpc", "ppc", "ppc32", Triple::ppc) + .Cases("powerpc", "powerpcspe", "ppc", "ppc32", Triple::ppc) .Cases("powerpc64", "ppu", "ppc64", Triple::ppc64) .Cases("powerpc64le", "ppc64le", Triple::ppc64le) .Case("xscale", Triple::arm) @@ -562,6 +562,9 @@ static Triple::SubArchType parseSubArch(StringRef SubA if (SubArchName.startswith("mips") && (SubArchName.endswith("r6el") || SubArchName.endswith("r6"))) return Triple::MipsSubArch_r6; + + if (SubArchName == "powerpcspe") + return Triple::PPCSubArch_spe; StringRef ARMSubArch = ARM::getCanonicalArchName(SubArchName); Modified: projects/clang1000-import/contrib/llvm-project/llvm/lib/Target/PowerPC/PPC.td ============================================================================== --- projects/clang1000-import/contrib/llvm-project/llvm/lib/Target/PowerPC/PPC.td Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/contrib/llvm-project/llvm/lib/Target/PowerPC/PPC.td Mon Jan 20 20:27:51 2020 (r356931) @@ -378,7 +378,7 @@ def : ProcessorModel<"g5", G5Model, def : ProcessorModel<"e500", PPCE500Model, [DirectiveE500, FeatureICBT, FeatureBookE, - FeatureISEL, FeatureMFTB]>; + FeatureISEL, FeatureMFTB, FeatureSPE]>; def : ProcessorModel<"e500mc", PPCE500mcModel, [DirectiveE500mc, FeatureSTFIWX, FeatureICBT, FeatureBookE, Modified: projects/clang1000-import/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCSubtarget.cpp ============================================================================== --- projects/clang1000-import/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCSubtarget.cpp Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCSubtarget.cpp Mon Jan 20 20:27:51 2020 (r356931) @@ -126,6 +126,8 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU // If cross-compiling with -march=ppc64le without -mcpu if (TargetTriple.getArch() == Triple::ppc64le) CPUName = "ppc64le"; + else if (TargetTriple.getSubArch() == Triple::PPCSubArch_spe) + CPUName = "e500"; else CPUName = "generic"; } Modified: projects/clang1000-import/lib/libc/stdlib/qsort.3 ============================================================================== --- projects/clang1000-import/lib/libc/stdlib/qsort.3 Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/lib/libc/stdlib/qsort.3 Mon Jan 20 20:27:51 2020 (r356931) @@ -32,7 +32,7 @@ .\" @(#)qsort.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd January 14, 2020 +.Dd January 20, 2020 .Dt QSORT 3 .Os .Sh NAME @@ -342,6 +342,13 @@ to replace with .Fn qsort_s to work around this problem. +.Pp +.Fn qsort_s +is part of the +.Em optional +Annex K portion of +.St -isoC-2011 +and may not be portable to other standards-conforming platforms. .Pp Previous versions of .Fn qsort Modified: projects/clang1000-import/share/misc/committers-ports.dot ============================================================================== --- projects/clang1000-import/share/misc/committers-ports.dot Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/share/misc/committers-ports.dot Mon Jan 20 20:27:51 2020 (r356931) @@ -193,6 +193,7 @@ meta [label="Koichiro Iwao\nmeta@FreeBSD.org\n2018/03/ mezz [label="Jeremy Messenger\nmezz@FreeBSD.org\n2004/04/30"] mfechner [label="Matthias Fechner\nmfechner@FreeBSD.org\n2018/03/01"] mharo [label="Michael Haro\nmharo@FreeBSD.org\n1999/04/13"] +mikael [label="Mikael Urankar\nmikael@FreeBSD.org\n2020/01/16"] milki [label="Jonathan Chu\nmilki@FreeBSD.org\n2013/12/15"] misha [label="Mikhail Pchelin\nmisha@FreeBSD.org\n2016/11/15"] miwi [label="Martin Wilke\nmiwi@FreeBSD.org\n2006/06/04"] @@ -539,6 +540,8 @@ lwhsu -> yzlin maho -> stephen maho -> tota + +manu -> mikael marcus -> ahze marcus -> bland Modified: projects/clang1000-import/sys/kern/vfs_cache.c ============================================================================== --- projects/clang1000-import/sys/kern/vfs_cache.c Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/sys/kern/vfs_cache.c Mon Jan 20 20:27:51 2020 (r356931) @@ -1701,7 +1701,6 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, uint32_t hash; int flag; int len; - bool held_dvp; u_long lnumcache; CTR3(KTR_VFS, "cache_enter(%p, %p, %s)", dvp, vp, cnp->cn_nameptr); @@ -1738,13 +1737,6 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, ndd = NULL; ncp_ts = NULL; - held_dvp = false; - if (LIST_EMPTY(&dvp->v_cache_src) && flag != NCF_ISDOTDOT) { - vhold(dvp); - counter_u64_add(numcachehv, 1); - held_dvp = true; - } - /* * Calculate the hash key and setup as much of the new * namecache entry as possible before acquiring the lock. @@ -1834,21 +1826,8 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, if (flag != NCF_ISDOTDOT) { if (LIST_EMPTY(&dvp->v_cache_src)) { - if (!held_dvp) { - vhold(dvp); - counter_u64_add(numcachehv, 1); - } - } else { - if (held_dvp) { - /* - * This will not take the interlock as someone - * else already holds the vnode on account of - * the namecache and we hold locks preventing - * this from changing. - */ - vdrop(dvp); - counter_u64_add(numcachehv, -1); - } + vhold(dvp); + counter_u64_add(numcachehv, 1); } LIST_INSERT_HEAD(&dvp->v_cache_src, ncp, nc_src); } @@ -1883,10 +1862,6 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, out_unlock_free: cache_enter_unlock(&cel); cache_free(ncp); - if (held_dvp) { - vdrop(dvp); - counter_u64_add(numcachehv, -1); - } return; } Modified: projects/clang1000-import/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- projects/clang1000-import/tools/build/mk/OptionalObsoleteFiles.inc Mon Jan 20 20:26:04 2020 (r356930) +++ projects/clang1000-import/tools/build/mk/OptionalObsoleteFiles.inc Mon Jan 20 20:27:51 2020 (r356931) @@ -1141,58 +1141,15 @@ OLD_DIRS+=usr/tests/usr.bin/calendar .endif .if ${MK_CASPER} == no -OLD_FILES+=etc/casper/system.dns -OLD_FILES+=etc/casper/system.grp -OLD_FILES+=etc/casper/system.pwd -OLD_FILES+=etc/casper/system.random -OLD_FILES+=etc/casper/system.sysctl -OLD_DIRS+=etc/casper -OLD_FILES+=etc/rc.d/casperd -OLD_LIBS+=lib/libcapsicum.so.0 -OLD_LIBS+=lib/libcasper.so.0 -OLD_FILES+=libexec/casper/dns -OLD_FILES+=libexec/casper/grp -OLD_FILES+=libexec/casper/pwd -OLD_FILES+=libexec/casper/random -OLD_FILES+=libexec/casper/sysctl -OLD_FILES+=sbin/casper -OLD_FILES+=sbin/casperd -OLD_FILES+=usr/include/libcapsicum.h -OLD_FILES+=usr/include/libcapsicum_dns.h -OLD_FILES+=usr/include/libcapsicum_grp.h -OLD_FILES+=usr/include/libcapsicum_pwd.h -OLD_FILES+=usr/include/libcapsicum_random.h -OLD_FILES+=usr/include/libcapsicum_service.h -OLD_FILES+=usr/include/libcapsicum_sysctl.h -OLD_FILES+=usr/include/libcasper.h -OLD_FILES+=usr/lib/libcapsicum.a -OLD_FILES+=usr/lib/libcapsicum.so -OLD_FILES+=usr/lib/libcapsicum_p.a -OLD_FILES+=usr/lib/libcasper.a -OLD_FILES+=usr/lib/libcasper.so -OLD_FILES+=usr/lib/libcasper_p.a -OLD_FILES+=usr/lib32/libcapsicum.a -OLD_FILES+=usr/lib32/libcapsicum.so -OLD_LIBS+=usr/lib32/libcapsicum.so.0 -OLD_FILES+=usr/lib32/libcapsicum_p.a -OLD_FILES+=usr/lib32/libcasper.a -OLD_FILES+=usr/lib32/libcasper.so -OLD_LIBS+=usr/lib32/libcasper.so.0 -OLD_FILES+=usr/lib32/libcasper_p.a -OLD_FILES+=usr/share/man/man3/cap_clone.3.gz -OLD_FILES+=usr/share/man/man3/cap_close.3.gz -OLD_FILES+=usr/share/man/man3/cap_init.3.gz -OLD_FILES+=usr/share/man/man3/cap_limit_get.3.gz -OLD_FILES+=usr/share/man/man3/cap_limit_set.3.gz -OLD_FILES+=usr/share/man/man3/cap_recv_nvlist.3.gz -OLD_FILES+=usr/share/man/man3/cap_send_nvlist.3.gz -OLD_FILES+=usr/share/man/man3/cap_service_open.3.gz -OLD_FILES+=usr/share/man/man3/cap_sock.3.gz -OLD_FILES+=usr/share/man/man3/cap_unwrap.3.gz -OLD_FILES+=usr/share/man/man3/cap_wrap.3.gz -OLD_FILES+=usr/share/man/man3/cap_xfer_nvlist.3.gz -OLD_FILES+=usr/share/man/man3/libcapsicum.3.gz -OLD_FILES+=usr/share/man/man8/casperd.8.gz +OLD_LIBS+=lib/libcasper.so.1 +OLD_LIBS+=lib/casper/libcap_dns.so.2 +OLD_LIBS+=lib/casper/libcap_fileargs.so.1 +OLD_LIBS+=lib/casper/libcap_grp.so.1 +OLD_LIBS+=lib/casper/libcap_net.so.1 +OLD_LIBS+=lib/casper/libcap_pwd.so.1 +OLD_LIBS+=lib/casper/libcap_sysctl.so.1 +OLD_LIBS+=lib/casper/libcap_sysctl.so.2 +OLD_LIBS+=lib/casper/libcap_syslog.so.1 .endif .if ${MK_CCD} == no
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001202027.00KKRpIk008789>