[llvm-branch-commits] [compiler-rt] PR for llvm/llvm-project#80604 (PR #80605)
https://github.com/DimitryAndric approved this pull request. https://github.com/llvm/llvm-project/pull/80605 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] release/19.x: [Clang] Fix crash due to invalid source location in __is_trivially_equality_comparable (#107815) (PR #108147)
https://github.com/DimitryAndric approved this pull request. LGTM https://github.com/llvm/llvm-project/pull/108147 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] release/19.x: [Clang] Fix crash due to invalid source location in __is_trivially_equality_comparable (#107815) (PR #108147)
DimitryAndric wrote: > Is this PR a fix for a regression or a critical issue? Regression (assertion/crash while building the chromium parts of qt webengine) > What is the risk of accepting this into the release branch? Very low. This only initializes a function parameter which was previously empty. > What is the risk of NOT accepting this into the release branch? People will file tickets that their qt webengine builds are crashing. :) https://github.com/llvm/llvm-project/pull/108147 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r257660 - Merging r257645:
Author: dim Date: Wed Jan 13 13:37:51 2016 New Revision: 257660 URL: http://llvm.org/viewvc/llvm-project?rev=257660&view=rev Log: Merging r257645: r257645 | dim | 2016-01-13 19:29:46 +0100 (Wed, 13 Jan 2016) | 22 lines Avoid undefined behavior in LinkAllPasses.h The LinkAllPasses.h file is included in several main programs, to force a large number of passes to be linked in. However, the ForcePassLinking constructor uses undefined behavior, since it calls member functions on `nullptr`, e.g.: ((llvm::Function*)nullptr)->viewCFGOnly(); llvm::RGPassManager RGM; ((llvm::RegionPass*)nullptr)->runOnRegion((llvm::Region*)nullptr, RGM); When the optimization level is -O2 or higher, the code below the first nullptr dereference is optimized away, and replaced by `ud2` (on x86). Therefore, the calls after that first dereference are never emitted. In my case, I noticed there was no call to `llvm::sys::RunningOnValgrind()`! Replace instances of dereferencing `nullptr` with either objects on the stack, or regular function calls. Differential Revision: http://reviews.llvm.org/D15996 Modified: llvm/branches/release_38/ (props changed) llvm/branches/release_38/include/llvm/LinkAllPasses.h Propchange: llvm/branches/release_38/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Jan 13 13:37:51 2016 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241 +/llvm/trunk:155241,257645 Modified: llvm/branches/release_38/include/llvm/LinkAllPasses.h URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/include/llvm/LinkAllPasses.h?rev=257660&r1=257659&r2=257660&view=diff == --- llvm/branches/release_38/include/llvm/LinkAllPasses.h (original) +++ llvm/branches/release_38/include/llvm/LinkAllPasses.h Wed Jan 13 13:37:51 2016 @@ -160,9 +160,11 @@ namespace { (void) llvm::createPostOrderFunctionAttrsPass(); (void) llvm::createReversePostOrderFunctionAttrsPass(); (void) llvm::createMergeFunctionsPass(); - (void) llvm::createPrintModulePass(*(llvm::raw_ostream*)nullptr); - (void) llvm::createPrintFunctionPass(*(llvm::raw_ostream*)nullptr); - (void) llvm::createPrintBasicBlockPass(*(llvm::raw_ostream*)nullptr); + std::string buf; + llvm::raw_string_ostream os(buf); + (void) llvm::createPrintModulePass(os); + (void) llvm::createPrintFunctionPass(os); + (void) llvm::createPrintBasicBlockPass(os); (void) llvm::createModuleDebugInfoPrinterPass(); (void) llvm::createPartialInliningPass(); (void) llvm::createLintPass(); @@ -186,10 +188,10 @@ namespace { (void)new llvm::IntervalPartition(); (void)new llvm::ScalarEvolutionWrapperPass(); - ((llvm::Function*)nullptr)->viewCFGOnly(); + llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly(); llvm::RGPassManager RGM; - ((llvm::RegionPass*)nullptr)->runOnRegion((llvm::Region*)nullptr, RGM); - llvm::AliasSetTracker X(*(llvm::AliasAnalysis*)nullptr); + llvm::AliasAnalysis AA; + llvm::AliasSetTracker X(AA); X.add(nullptr, 0, llvm::AAMDNodes()); // for -print-alias-sets (void) llvm::AreStatisticsEnabled(); (void) llvm::sys::RunningOnValgrind(); ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r258549 - Merging r258110:
Author: dim Date: Fri Jan 22 14:43:39 2016 New Revision: 258549 URL: http://llvm.org/viewvc/llvm-project?rev=258549&view=rev Log: Merging r258110: r258110 | faisalv | 2016-01-19 04:58:55 +0100 (Tue, 19 Jan 2016) | 15 lines Fix PR26134: When substituting into default template arguments, keep CurContext unchanged. Or, do not set Sema's CurContext to the template declaration's when substituting into default template arguments of said template declaration. If we do push the template declaration context on to Sema, and the template declaration is at namespace scope, Sema can get confused and try and do odr analysis when substituting into default template arguments, even though the substitution could be occurring within a dependent context. I'm not sure why this was being done, perhaps there was concern that if a default template argument referred to a previous template parameter, it might not be found during substitution - but all regression tests pass, and I can't craft a test that would cause it to fails (if some one does, please inform me, and i'll craft a different fix for the PR). This patch removes a single line of code, but unfortunately adds more than it removes, because of the tests. Some day I still hope to commit a patch that removes far more lines than it adds, while leaving clang better for it ;) Sorry that r253590 ("Change the expression evaluation context from Unevaluated to ConstantEvaluated while substituting into non-type template argument defaults") caused the PR! Modified: cfe/branches/release_38/ (props changed) cfe/branches/release_38/lib/Sema/SemaTemplate.cpp cfe/branches/release_38/test/SemaTemplate/default-arguments.cpp Propchange: cfe/branches/release_38/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jan 22 14:43:39 2016 @@ -1,4 +1,4 @@ /cfe/branches/type-system-rewrite:134693-134817 -/cfe/trunk:257652,257695 +/cfe/trunk:257652,257695,258110 /cfe/trunk/test:170344 /cfe/trunk/test/SemaTemplate:126920 Modified: cfe/branches/release_38/lib/Sema/SemaTemplate.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/lib/Sema/SemaTemplate.cpp?rev=258549&r1=258548&r2=258549&view=diff == --- cfe/branches/release_38/lib/Sema/SemaTemplate.cpp (original) +++ cfe/branches/release_38/lib/Sema/SemaTemplate.cpp Fri Jan 22 14:43:39 2016 @@ -3281,7 +3281,6 @@ SubstDefaultTemplateArgument(Sema &SemaR for (unsigned i = 0, e = Param->getDepth(); i != e; ++i) TemplateArgLists.addOuterTemplateArguments(None); - Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext()); EnterExpressionEvaluationContext ConstantEvaluated(SemaRef, Sema::ConstantEvaluated); return SemaRef.SubstExpr(Param->getDefaultArgument(), TemplateArgLists); Modified: cfe/branches/release_38/test/SemaTemplate/default-arguments.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/test/SemaTemplate/default-arguments.cpp?rev=258549&r1=258548&r2=258549&view=diff == --- cfe/branches/release_38/test/SemaTemplate/default-arguments.cpp (original) +++ cfe/branches/release_38/test/SemaTemplate/default-arguments.cpp Fri Jan 22 14:43:39 2016 @@ -179,3 +179,31 @@ struct C { C(T t = ); // expected-error {{expected expression}} }; C obj; + +namespace PR26134 { +// Make sure when substituting default template arguments we do it in the current context. +template +struct X {}; + +template struct Y { + void f() { X xy; } + static const bool value = B; +}; + +namespace ns1 { +template +struct X { + template struct XInner { static const bool value = B; }; +}; +template struct S { static const bool value = B; }; +#if __cplusplus > 199711L +template struct Y { + static constexpr bool f() { return typename X>::template XInner<>{}.value; } + static_assert(f() == B, ""); +}; +Y y; +Y y2; +#endif + +} // end ns1 +} // end ns PR26134 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r258842 - Merging r258436:
Author: dim Date: Tue Jan 26 13:43:59 2016 New Revision: 258842 URL: http://llvm.org/viewvc/llvm-project?rev=258842&view=rev Log: Merging r258436: r258436 | dim | 2016-01-21 22:57:49 +0100 (Thu, 21 Jan 2016) | 17 lines Let test-release.sh checkout subprojects directly into the target tree, instead of using symlinks Summary: In the past I have run into several problems with the way `test-release.sh` creates all the subproject directories as siblings, and then uses symlinks to stitch them all together. In some scenarios this leads to clang not being able to find header files, etc. This patch changes the script so it directly exports into the correct target locations for each subproject. Reviewers: hans Subscribers: emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D16420 Modified: llvm/branches/release_38/ (props changed) llvm/branches/release_38/utils/release/test-release.sh Propchange: llvm/branches/release_38/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Jan 26 13:43:59 2016 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257886,257902,257905,257925,257929-257930,257940,257942,257977,257979,257997,258168,258207,258221,258273,258325,258406,258416,258428,258690,258729 +/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257886,257902,257905,257925,257929-257930,257940,257942,257977,257979,257997,258168,258207,258221,258273,258325,258406,258416,258428,258436,258690,258729 Modified: llvm/branches/release_38/utils/release/test-release.sh URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/utils/release/test-release.sh?rev=258842&r1=258841&r2=258842&view=diff == --- llvm/branches/release_38/utils/release/test-release.sh (original) +++ llvm/branches/release_38/utils/release/test-release.sh Tue Jan 26 13:43:59 2016 @@ -267,56 +267,36 @@ function export_sources() { check_valid_urls for proj in $projects ; do -if [ -d $proj.src ]; then - echo "# Reusing $proj $Release-$RC sources" +case $proj in +llvm) +projsrc=$proj.src +;; +cfe) +projsrc=llvm.src/tools/clang +;; +clang-tools-extra) +projsrc=llvm.src/tools/clang/tools/extra +;; +compiler-rt|libcxx|libcxxabi|libunwind|openmp|test-suite) +projsrc=llvm.src/projects/$proj +;; +*) +echo "error: unknown project $proj" +exit 1 +;; +esac + +if [ -d $projsrc ]; then + echo "# Reusing $proj $Release-$RC sources in $projsrc" continue fi -echo "# Exporting $proj $Release-$RC sources" -if ! svn export -q $Base_url/$proj/$ExportBranch $proj.src ; then +echo "# Exporting $proj $Release-$RC sources to $projsrc" +if ! svn export -q $Base_url/$proj/$ExportBranch $projsrc ; then echo "error: failed to export $proj project" exit 1 fi done -echo "# Creating symlinks" -cd $BuildDir/llvm.src/tools -if [ ! -h clang ]; then -ln -s ../../cfe.src clang -fi - -# The autoconf and CMake builds want different symlinks here: -if [ "$use_autoconf" = "yes" ]; then - cd $BuildDir/llvm.src/tools/clang/tools - if [ ! -h extra ]; then - ln -s ../../../../clang-tools-extra.src extra - fi -else - cd $BuildDir/cfe.src/tools - if [ ! -h extra ]; then - ln -s ../../clang-tools-extra.src extra - fi -fi - -cd $BuildDir/llvm.src/projects -if [ -d $BuildDir/test-suite.src ] && [ ! -h test-suite ]; then -ln -s ../../test-suite.src test-suite -fi -if [ -d $BuildDir/compiler-rt.src ] && [ ! -h compiler-rt ]; then -ln -s ../../compiler-rt.src compiler-rt -fi -if [ -d $BuildDir/openmp.src ] && [ ! -h openmp ]; then -ln -s ../../openmp.src openmp -fi -if [ -d $BuildDir/libcxx.src ] && [ ! -h libcxx ]; then -ln -s ../../libcxx.src libcxx -fi -if [ -d $BuildDir/libcxxabi.src ] && [ ! -h libcxxabi ]; then -ln -s ../../libcxxabi.src libcxxabi -fi -if [ -d $BuildDir/libunwind.src ] && [ ! -h libunwind ]; then -ln -s ../../libunwind.src libunwind -fi - cd $BuildDir } ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r261003 - Merging r260851:
Author: dim Date: Tue Feb 16 13:56:48 2016 New Revision: 261003 URL: http://llvm.org/viewvc/llvm-project?rev=261003&view=rev Log: Merging r260851: r260851 | dim | 2016-02-14 17:08:20 +0100 (Sun, 14 Feb 2016) | 13 lines As reported in https://llvm.org/bugs/show_bug.cgi?id=25496, on FreeBSD, C++ programs compiled for profiling (using `-pg`) should be linked with `-lc++_p` (or `-lstdc++_p`, depending on the `-stdlib=` setting), not with the regular C++ libraries. Add a `FreeBSD::AddCXXStdlibLibArgs()` override to handle this, and add a test case for it. While here, extend the test case for the proper passing of -lm and -lm_p. Reviewers: compnerd, davide, dws, emaste Reviewed By: compnerd Differential Revision: http://reviews.llvm.org/D16264 Modified: cfe/branches/release_38/ (props changed) cfe/branches/release_38/lib/Driver/ToolChains.cpp cfe/branches/release_38/lib/Driver/ToolChains.h cfe/branches/release_38/test/Driver/freebsd.cpp Propchange: cfe/branches/release_38/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Feb 16 13:56:48 2016 @@ -1,4 +1,4 @@ /cfe/branches/type-system-rewrite:134693-134817 -/cfe/trunk:257652,257695,257710,257831,257838,257853,257861,257869-257871,257947,258110,258396,259183,259260,259598,259931,260370,260616,260637 +/cfe/trunk:257652,257695,257710,257831,257838,257853,257861,257869-257871,257947,258110,258396,259183,259260,259598,259931,260370,260616,260637,260851 /cfe/trunk/test:170344 /cfe/trunk/test/SemaTemplate:126920 Modified: cfe/branches/release_38/lib/Driver/ToolChains.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/lib/Driver/ToolChains.cpp?rev=261003&r1=261002&r2=261003&view=diff == --- cfe/branches/release_38/lib/Driver/ToolChains.cpp (original) +++ cfe/branches/release_38/lib/Driver/ToolChains.cpp Tue Feb 16 13:56:48 2016 @@ -3108,6 +3108,22 @@ void FreeBSD::AddClangCXXStdlibIncludeAr } } +void FreeBSD::AddCXXStdlibLibArgs(const ArgList &Args, + ArgStringList &CmdArgs) const { + CXXStdlibType Type = GetCXXStdlibType(Args); + bool Profiling = Args.hasArg(options::OPT_pg); + + switch (Type) { + case ToolChain::CST_Libcxx: +CmdArgs.push_back(Profiling ? "-lc++_p" : "-lc++"); +break; + + case ToolChain::CST_Libstdcxx: +CmdArgs.push_back(Profiling ? "-lstdc++_p" : "-lstdc++"); +break; + } +} + Tool *FreeBSD::buildAssembler() const { return new tools::freebsd::Assembler(*this); } Modified: cfe/branches/release_38/lib/Driver/ToolChains.h URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/lib/Driver/ToolChains.h?rev=261003&r1=261002&r2=261003&view=diff == --- cfe/branches/release_38/lib/Driver/ToolChains.h (original) +++ cfe/branches/release_38/lib/Driver/ToolChains.h Tue Feb 16 13:56:48 2016 @@ -722,6 +722,8 @@ public: void AddClangCXXStdlibIncludeArgs( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; + void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const override; bool UseSjLjExceptions(const llvm::opt::ArgList &Args) const override; bool isPIEDefault() const override; Modified: cfe/branches/release_38/test/Driver/freebsd.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/test/Driver/freebsd.cpp?rev=261003&r1=261002&r2=261003&view=diff == --- cfe/branches/release_38/test/Driver/freebsd.cpp (original) +++ cfe/branches/release_38/test/Driver/freebsd.cpp Tue Feb 16 13:56:48 2016 @@ -2,5 +2,12 @@ // RUN: | FileCheck --check-prefix=CHECK-TEN %s // RUN: %clangxx %s -### -o %t.o -target amd64-unknown-freebsd9.2 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-NINE %s -// CHECK-TEN: -lc++ -// CHECK-NINE: -lstdc++ +// CHECK-TEN: "-lc++" "-lm" +// CHECK-NINE: "-lstdc++" "-lm" + +// RUN: %clangxx %s -### -pg -o %t.o -target amd64-unknown-freebsd10.0 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-PG-TEN %s +// RUN: %clangxx %s -### -pg -o %t.o -target amd64-unknown-freebsd9.2 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-PG-NINE %s +// CHECK-PG-TEN: "-lc++_p" "-lm_p" +// CHECK-PG-NINE: "-lstdc++_p" "-lm_p" ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt-branch] r261123 - Merging r260839:
Author: dim Date: Wed Feb 17 12:38:59 2016 New Revision: 261123 URL: http://llvm.org/viewvc/llvm-project?rev=261123&view=rev Log: Merging r260839: r260839 | dim | 2016-02-14 01:26:32 +0100 (Sun, 14 Feb 2016) | 8 lines Fix lib/tsan/go/buildgo.sh for FreeBSD after r243051. FreeBSD also needs to have sanitizer_linux_libcdep.cc included, otherwise linking will fail with "undefined reference to `__sanitizer::GetRSS()'". While here, tabify the FreeBSD part, similar to the other parts. Modified: compiler-rt/branches/release_38/ (props changed) compiler-rt/branches/release_38/lib/tsan/go/buildgo.sh Propchange: compiler-rt/branches/release_38/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Feb 17 12:38:59 2016 @@ -1 +1 @@ -/compiler-rt/trunk:258916,259755 +/compiler-rt/trunk:258916,259755,260839 Modified: compiler-rt/branches/release_38/lib/tsan/go/buildgo.sh URL: http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_38/lib/tsan/go/buildgo.sh?rev=261123&r1=261122&r2=261123&view=diff == --- compiler-rt/branches/release_38/lib/tsan/go/buildgo.sh (original) +++ compiler-rt/branches/release_38/lib/tsan/go/buildgo.sh Wed Feb 17 12:38:59 2016 @@ -50,19 +50,20 @@ if [ "`uname -a | grep Linux`" != "" ]; ../../sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc " elif [ "`uname -a | grep FreeBSD`" != "" ]; then -SUFFIX="freebsd_amd64" -OSCFLAGS="-fno-strict-aliasing -fPIC -Werror" -OSLDFLAGS="-lpthread -fPIC -fpie" -SRCS=" -$SRCS -../rtl/tsan_platform_linux.cc -../../sanitizer_common/sanitizer_posix.cc -../../sanitizer_common/sanitizer_posix_libcdep.cc -../../sanitizer_common/sanitizer_procmaps_common.cc -../../sanitizer_common/sanitizer_procmaps_freebsd.cc -../../sanitizer_common/sanitizer_linux.cc -../../sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc -" + SUFFIX="freebsd_amd64" + OSCFLAGS="-fno-strict-aliasing -fPIC -Werror" + OSLDFLAGS="-lpthread -fPIC -fpie" + SRCS=" + $SRCS + ../rtl/tsan_platform_linux.cc + ../../sanitizer_common/sanitizer_posix.cc + ../../sanitizer_common/sanitizer_posix_libcdep.cc + ../../sanitizer_common/sanitizer_procmaps_common.cc + ../../sanitizer_common/sanitizer_procmaps_freebsd.cc + ../../sanitizer_common/sanitizer_linux.cc + ../../sanitizer_common/sanitizer_linux_libcdep.cc + ../../sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc + " elif [ "`uname -a | grep Darwin`" != "" ]; then SUFFIX="darwin_amd64" OSCFLAGS="-fPIC -Wno-unused-const-variable -Wno-unknown-warning-option" ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r265380 - Merging r264335:
Author: dim Date: Tue Apr 5 01:58:21 2016 New Revision: 265380 URL: http://llvm.org/viewvc/llvm-project?rev=265380&view=rev Log: Merging r264335: r264335 | dim | 2016-03-24 21:39:17 +0100 (Thu, 24 Mar 2016) | 17 lines Add to ThreadPool.h, since std::atomic is used Summary: Apparently, when compiling with gcc 5.3.2 for powerpc64, the order of headers is such that it gets an error about std::atomic<> use in ThreadPool.h, since this header is not included explicitly. See also: https://llvm.org/bugs/show_bug.cgi?id=27058 Fix this by including . Patch by Bryan Drewery. Reviewers: chandlerc, joker.eph Subscribers: bdrewery, llvm-commits Differential Revision: http://reviews.llvm.org/D18460 Modified: llvm/branches/release_38/ (props changed) llvm/branches/release_38/include/llvm/Support/ThreadPool.h Propchange: llvm/branches/release_38/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Apr 5 01:58:21 2016 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,257645,257648,257730,257775,257791,257864,257875,257886,257902,257905,257925,257929-257930,257940,257942,257977,257979,257997,258103,258112,258168,258184,258207,258221,258273,258325,258406,258416,258428,258436,258471,258609-258611,258616,258690,258729,258891,258971,259177-259178,259228,259236,259342,259346,259375,259381,259645,259649,259695-259696,259702,259740,259798,259835,259840,259886,259888,259958,260164,260390,260427,260587,260641,260703,260733,261033,261039,261258,261306,261360,261365,261368,261384,261387,261441,261447,261546 +/llvm/trunk:155241,257645,257648,257730,257775,257791,257864,257875,257886,257902,257905,257925,257929-257930,257940,257942,257977,257979,257997,258103,258112,258168,258184,258207,258221,258273,258325,258406,258416,258428,258436,258471,258609-258611,258616,258690,258729,258891,258971,259177-259178,259228,259236,259342,259346,259375,259381,259645,259649,259695-259696,259702,259740,259798,259835,259840,259886,259888,259958,260164,260390,260427,260587,260641,260703,260733,261033,261039,261258,261306,261360,261365,261368,261384,261387,261441,261447,261546,264335 Modified: llvm/branches/release_38/include/llvm/Support/ThreadPool.h URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/include/llvm/Support/ThreadPool.h?rev=265380&r1=265379&r2=265380&view=diff == --- llvm/branches/release_38/include/llvm/Support/ThreadPool.h (original) +++ llvm/branches/release_38/include/llvm/Support/ThreadPool.h Tue Apr 5 01:58:21 2016 @@ -33,6 +33,7 @@ #pragma warning(pop) #endif +#include #include #include #include ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt-branch] r277423 - Merging r277297:
Author: dim Date: Tue Aug 2 01:42:41 2016 New Revision: 277423 URL: http://llvm.org/viewvc/llvm-project?rev=277423&view=rev Log: Merging r277297: r277297 | dim | 2016-07-31 21:27:46 +0200 (Sun, 31 Jul 2016) | 21 lines XFAIL one sanitizer symbolizer test for FreeBSD Summary: Due to a QoI issuse in FreeBSD's libcxxrt-based demangler, one sanitizer symbolizer test consistently appears to fail: Value of: DemangleSwiftAndCXX("foo") Actual: "float" Expected: "foo" This is because libcxxrt's __cxa_demangle() incorrectly demangles the "foo" identifier to "float". It should return an error instead. For now, XFAIL this particular test for FreeBSD, until we can fix libcxxrt properly (which might take some time to coordinate with upstream). Reviewers: rnk, zaks.anna, emaste Subscribers: emaste, llvm-commits, kubabrecka Differential Revision: https://reviews.llvm.org/D23001 Modified: compiler-rt/branches/release_39/ (props changed) compiler-rt/branches/release_39/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc Propchange: compiler-rt/branches/release_39/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 2 01:42:41 2016 @@ -1 +1 @@ -/compiler-rt/trunk:275946,275948 +/compiler-rt/trunk:275946,275948,277297 Modified: compiler-rt/branches/release_39/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc URL: http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_39/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc?rev=277423&r1=277422&r2=277423&view=diff == --- compiler-rt/branches/release_39/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc (original) +++ compiler-rt/branches/release_39/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc Tue Aug 2 01:42:41 2016 @@ -62,7 +62,9 @@ TEST(Symbolizer, DemangleSwiftAndCXX) { EXPECT_STREQ("_TtSd", DemangleSwiftAndCXX("_TtSd")); // Check that the rest demangles properly. EXPECT_STREQ("f1(char*, int)", DemangleSwiftAndCXX("_Z2f1Pci")); +#if !SANITIZER_FREEBSD // QoI issue with libcxxrt on FreeBSD EXPECT_STREQ("foo", DemangleSwiftAndCXX("foo")); +#endif EXPECT_STREQ("", DemangleSwiftAndCXX("")); } #endif ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt-branch] r277424 - Merging r277300:
Author: dim Date: Tue Aug 2 01:44:37 2016 New Revision: 277424 URL: http://llvm.org/viewvc/llvm-project?rev=277424&view=rev Log: Merging r277300: r277300 | dim | 2016-07-31 22:16:59 +0200 (Sun, 31 Jul 2016) | 5 lines Fix ASan alloca_constant_size.cc test on FreeBSD. On FreeBSD does not exist: alloca(3) is defined in instead. Modified: compiler-rt/branches/release_39/ (props changed) compiler-rt/branches/release_39/test/asan/TestCases/alloca_constant_size.cc Propchange: compiler-rt/branches/release_39/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 2 01:44:37 2016 @@ -1 +1 @@ -/compiler-rt/trunk:275946,275948,277297 +/compiler-rt/trunk:275946,275948,277297,277300 Modified: compiler-rt/branches/release_39/test/asan/TestCases/alloca_constant_size.cc URL: http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_39/test/asan/TestCases/alloca_constant_size.cc?rev=277424&r1=277423&r2=277424&view=diff == --- compiler-rt/branches/release_39/test/asan/TestCases/alloca_constant_size.cc (original) +++ compiler-rt/branches/release_39/test/asan/TestCases/alloca_constant_size.cc Tue Aug 2 01:44:37 2016 @@ -10,6 +10,8 @@ // MSVC provides _alloca instead of alloca. #if defined(_MSC_VER) && !defined(alloca) # define alloca _alloca +#elif defined(__FreeBSD__) +#include #else #include #endif ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r277425 - Merging r277307:
Author: dim Date: Tue Aug 2 01:46:09 2016 New Revision: 277425 URL: http://llvm.org/viewvc/llvm-project?rev=277425&view=rev Log: Merging r277307: r277307 | dim | 2016-07-31 22:23:23 +0200 (Sun, 31 Jul 2016) | 23 lines Add more gcc compatibility names to clang's cpuid.h Summary: Some cpuid bit defines are named slightly different from how gcc's cpuid.h calls them. Define a few more compatibility names to appease software built for gcc: * `bit_PCLMUL` alias of `bit_PCLMULQDQ` * `bit_SSE4_1` alias of `bit_SSE41` * `bit_SSE4_2` alias of `bit_SSE42` * `bit_AES` alias of `bit_AESNI` * `bit_CMPXCHG8B` alias of `bit_CX8` While here, add the misssing 29th bit, `bit_F16C` (which is how gcc calls this bit). Reviewers: joerg, rsmith Subscribers: bruno, cfe-commits Differential Revision: https://reviews.llvm.org/D22010 Modified: cfe/branches/release_39/ (props changed) cfe/branches/release_39/lib/Headers/cpuid.h Propchange: cfe/branches/release_39/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 2 01:46:09 2016 @@ -1,4 +1,4 @@ /cfe/branches/type-system-rewrite:134693-134817 -/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276979,276983,277138,277141,277221 +/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276979,276983,277138,277141,277221,277307 /cfe/trunk/test:170344 /cfe/trunk/test/SemaTemplate:126920 Modified: cfe/branches/release_39/lib/Headers/cpuid.h URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/lib/Headers/cpuid.h?rev=277425&r1=277424&r2=277425&view=diff == --- cfe/branches/release_39/lib/Headers/cpuid.h (original) +++ cfe/branches/release_39/lib/Headers/cpuid.h Tue Aug 2 01:46:09 2016 @@ -82,6 +82,7 @@ /* Features in %ecx for level 1 */ #define bit_SSE30x0001 #define bit_PCLMULQDQ 0x0002 +#define bit_PCLMUL bit_PCLMULQDQ /* for gcc compat */ #define bit_DTES64 0x0004 #define bit_MONITOR 0x0008 #define bit_DSCPL 0x0010 @@ -98,15 +99,19 @@ #define bit_PCID0x0002 #define bit_DCA 0x0004 #define bit_SSE41 0x0008 +#define bit_SSE4_1 bit_SSE41 /* for gcc compat */ #define bit_SSE42 0x0010 +#define bit_SSE4_2 bit_SSE42 /* for gcc compat */ #define bit_x2APIC 0x0020 #define bit_MOVBE 0x0040 #define bit_POPCNT 0x0080 #define bit_TSCDeadline 0x0100 #define bit_AESNI 0x0200 +#define bit_AES bit_AESNI /* for gcc compat */ #define bit_XSAVE 0x0400 #define bit_OSXSAVE 0x0800 #define bit_AVX 0x1000 +#define bit_F16C0x2000 #define bit_RDRND 0x4000 /* Features in %edx for level 1 */ @@ -119,6 +124,7 @@ #define bit_PAE 0x0040 #define bit_MCE 0x0080 #define bit_CX8 0x0100 +#define bit_CMPXCHG8B bit_CX8 /* for gcc compat */ #define bit_APIC0x0200 #define bit_SEP 0x0800 #define bit_MTRR0x1000 @@ -133,7 +139,7 @@ #define bit_ACPI0x0040 #define bit_MMX 0x0080 #define bit_FXSR0x0100 -#define bit_FXSAVE bit_FXSR/* for gcc compat */ +#define bit_FXSAVE bit_FXSR/* for gcc compat */ #define bit_SSE 0x0200 #define bit_SSE20x0400 #define bit_SS 0x0800 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r294123 - Merging r294102:
Author: dim Date: Sun Feb 5 06:01:07 2017 New Revision: 294123 URL: http://llvm.org/viewvc/llvm-project?rev=294123&view=rev Log: Merging r294102: r294102 | dim | 2017-02-04 23:24:55 +0100 (Sat, 04 Feb 2017) | 13 lines Add lld to the test-release.sh script Building lld is enabled by default, but it can be disabled using the -no-lld option. Reviewers: tstellarAMD, rengolin, hans Reviewed By: hans Subscribers: grosser, wdng, emaste, llvm-commits Differential Revision: https://reviews.llvm.org/D29539 Modified: llvm/branches/release_40/ (props changed) llvm/branches/release_40/utils/release/test-release.sh Propchange: llvm/branches/release_40/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sun Feb 5 06:01:07 2017 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,291858-291859,291863,291875,291909,291918,291966,291968,291979,292117,292133,292167,292169-292170,292242,292254-292255,292280,292323,292444,292467,292516,292583,292624-292625,292641,292651,292667,292711-292713,292758,293021,293025,293230,293259,293291,293293,293309,293345,293417,293522,293542,293629,293635,293658,293673,293727,293730 +/llvm/trunk:155241,291858-291859,291863,291875,291909,291918,291966,291968,291979,292117,292133,292167,292169-292170,292242,292254-292255,292280,292323,292444,292467,292516,292583,292624-292625,292641,292651,292667,292711-292713,292758,293021,293025,293230,293259,293291,293293,293309,293345,293417,293522,293542,293629,293635,293658,293673,293727,293730,294102 Modified: llvm/branches/release_40/utils/release/test-release.sh URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_40/utils/release/test-release.sh?rev=294123&r1=294122&r2=294123&view=diff == --- llvm/branches/release_40/utils/release/test-release.sh (original) +++ llvm/branches/release_40/utils/release/test-release.sh Sun Feb 5 06:01:07 2017 @@ -36,6 +36,7 @@ do_libs="yes" do_libunwind="yes" do_test_suite="yes" do_openmp="yes" +do_lld="yes" do_lldb="no" do_polly="no" BuildDir="`pwd`" @@ -64,6 +65,7 @@ function usage() { echo " -no-libunwindDisable check-out & build libunwind" echo " -no-test-suite Disable check-out & build test-suite" echo " -no-openmp Disable check-out & build libomp" +echo " -no-lld Disable check-out & build lld" echo " -lldbEnable check-out & build lldb" echo " -no-lldb Disable check-out & build lldb (default)" echo " -polly Enable check-out & build Polly" @@ -143,6 +145,9 @@ while [ $# -gt 0 ]; do -no-openmp ) do_openmp="no" ;; +-no-lld ) +do_lld="no" +;; -lldb ) do_lldb="yes" ;; @@ -225,6 +230,9 @@ esac if [ $do_openmp = "yes" ]; then projects="$projects openmp" fi +if [ $do_lld = "yes" ]; then + projects="$projects lld" +fi if [ $do_lldb = "yes" ]; then projects="$projects lldb" fi @@ -297,7 +305,7 @@ function export_sources() { cfe) projsrc=llvm.src/tools/clang ;; -lldb|polly) +lld|lldb|polly) projsrc=llvm.src/tools/$proj ;; clang-tools-extra) ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt-branch] r295095 - Merging r294806:
Author: dim Date: Tue Feb 14 13:40:03 2017 New Revision: 295095 URL: http://llvm.org/viewvc/llvm-project?rev=295095&view=rev Log: Merging r294806: r294806 | dim | 2017-02-11 00:48:40 +0100 (Sat, 11 Feb 2017) | 15 lines Remove struct_rtentry_sz on FreeBSD Summary: Since struct rtentry is an internal kernel-only structure on FreeBSD, and SIOCADDRT and SIOCDELRT are not supported anyway, stop including socketvar.h and attempting to get at the definition of struct rtentry, and move the line with struct_rtentry_sz to the SANIZER_LINUX block. Reviewers: kcc, kutuzov.viktor.84, emaste Reviewed By: kcc, emaste Subscribers: emaste, llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D29832 Modified: compiler-rt/branches/release_40/ (props changed) compiler-rt/branches/release_40/lib/sanitizer_common/sanitizer_platform_limits_posix.cc Propchange: compiler-rt/branches/release_40/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Feb 14 13:40:03 2017 @@ -1 +1 @@ -/compiler-rt/trunk:292517,293120,293536,294886 +/compiler-rt/trunk:292517,293120,293536,294806,294886 Modified: compiler-rt/branches/release_40/lib/sanitizer_common/sanitizer_platform_limits_posix.cc URL: http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_40/lib/sanitizer_common/sanitizer_platform_limits_posix.cc?rev=295095&r1=295094&r2=295095&view=diff == --- compiler-rt/branches/release_40/lib/sanitizer_common/sanitizer_platform_limits_posix.cc (original) +++ compiler-rt/branches/release_40/lib/sanitizer_common/sanitizer_platform_limits_posix.cc Tue Feb 14 13:40:03 2017 @@ -23,11 +23,6 @@ #ifdef _FILE_OFFSET_BITS #undef _FILE_OFFSET_BITS #endif -#if SANITIZER_FREEBSD -#define _WANT_RTENTRY -#include -#include -#endif #include #include #include @@ -433,6 +428,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El unsigned struct_input_absinfo_sz = sizeof(struct input_absinfo); unsigned struct_input_id_sz = sizeof(struct input_id); unsigned struct_mtpos_sz = sizeof(struct mtpos); + unsigned struct_rtentry_sz = sizeof(struct rtentry); unsigned struct_termio_sz = sizeof(struct termio); unsigned struct_vt_consize_sz = sizeof(struct vt_consize); unsigned struct_vt_sizes_sz = sizeof(struct vt_sizes); @@ -452,7 +448,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El unsigned struct_midi_info_sz = sizeof(struct midi_info); unsigned struct_mtget_sz = sizeof(struct mtget); unsigned struct_mtop_sz = sizeof(struct mtop); - unsigned struct_rtentry_sz = sizeof(struct rtentry); unsigned struct_sbi_instrument_sz = sizeof(struct sbi_instrument); unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec); unsigned struct_synth_info_sz = sizeof(struct synth_info); ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [openmp] r323037 - Merging r322869:
Author: dim Date: Sat Jan 20 04:17:51 2018 New Revision: 323037 URL: http://llvm.org/viewvc/llvm-project?rev=323037&view=rev Log: Merging r322869: r322869 | dim | 2018-01-18 19:24:22 +0100 (Thu, 18 Jan 2018) | 3 lines Sprinkle a few includes, for libomptarget sources using malloc, free, alloca and getenv. NFCI. Modified: openmp/branches/release_60/ (props changed) openmp/branches/release_60/libomptarget/src/api.cpp openmp/branches/release_60/libomptarget/src/interface.cpp openmp/branches/release_60/libomptarget/src/rtl.cpp Propchange: openmp/branches/release_60/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Jan 20 04:17:51 2018 @@ -1 +1 @@ -/openmp/trunk:321964,322068,322160,322830 +/openmp/trunk:321964,322068,322160,322830,322869 Modified: openmp/branches/release_60/libomptarget/src/api.cpp URL: http://llvm.org/viewvc/llvm-project/openmp/branches/release_60/libomptarget/src/api.cpp?rev=323037&r1=323036&r2=323037&view=diff == --- openmp/branches/release_60/libomptarget/src/api.cpp (original) +++ openmp/branches/release_60/libomptarget/src/api.cpp Sat Jan 20 04:17:51 2018 @@ -19,6 +19,7 @@ #include #include +#include EXTERN int omp_get_num_devices(void) { RTLsMtx.lock(); Modified: openmp/branches/release_60/libomptarget/src/interface.cpp URL: http://llvm.org/viewvc/llvm-project/openmp/branches/release_60/libomptarget/src/interface.cpp?rev=323037&r1=323036&r2=323037&view=diff == --- openmp/branches/release_60/libomptarget/src/interface.cpp (original) +++ openmp/branches/release_60/libomptarget/src/interface.cpp Sat Jan 20 04:17:51 2018 @@ -19,6 +19,7 @@ #include "rtl.h" #include +#include /// adds a target shared library to the target execution image Modified: openmp/branches/release_60/libomptarget/src/rtl.cpp URL: http://llvm.org/viewvc/llvm-project/openmp/branches/release_60/libomptarget/src/rtl.cpp?rev=323037&r1=323036&r2=323037&view=diff == --- openmp/branches/release_60/libomptarget/src/rtl.cpp (original) +++ openmp/branches/release_60/libomptarget/src/rtl.cpp Sat Jan 20 04:17:51 2018 @@ -16,6 +16,7 @@ #include "rtl.h" #include +#include #include #include #include ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r323038 - Merging r322875:
Author: dim Date: Sat Jan 20 04:20:35 2018 New Revision: 323038 URL: http://llvm.org/viewvc/llvm-project?rev=323038&view=rev Log: Merging r322875: r322875 | dim | 2018-01-18 19:39:13 +0100 (Thu, 18 Jan 2018) | 9 lines Add a -no-libcxxabi option to the test-release.sh script. On FreeBSD, it is currently not possible to build libcxxabi and link against it, so we have been building releases with -no-libs for quite some time. However, libcxx and libunwind should build without problems, so provide an option to skip just libcxxabi. Merging r322879: r322879 | dim | 2018-01-18 20:30:30 +0100 (Thu, 18 Jan 2018) | 2 lines Follow-up to rL322875 by initializing the do_libcxxabi variable properly. Modified: llvm/branches/release_60/ (props changed) llvm/branches/release_60/utils/release/test-release.sh Propchange: llvm/branches/release_60/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Jan 20 04:20:35 2018 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,321751,321789,321791,321806,321862,321870,321872,321878,321980,321991,321993-321994,322003,322053,322056,322103,322106,33,322272,322313,322473,322623,322644,322724 +/llvm/trunk:155241,321751,321789,321791,321806,321862,321870,321872,321878,321980,321991,321993-321994,322003,322053,322056,322103,322106,33,322272,322313,322473,322623,322644,322724,322875,322879 Modified: llvm/branches/release_60/utils/release/test-release.sh URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_60/utils/release/test-release.sh?rev=323038&r1=323037&r2=323038&view=diff == --- llvm/branches/release_60/utils/release/test-release.sh (original) +++ llvm/branches/release_60/utils/release/test-release.sh Sat Jan 20 04:20:35 2018 @@ -33,6 +33,7 @@ do_asserts="no" do_compare="yes" do_rt="yes" do_libs="yes" +do_libcxxabi="yes" do_libunwind="yes" do_test_suite="yes" do_openmp="yes" @@ -62,6 +63,7 @@ function usage() { echo " For example -svn-path trunk or -svn-path branches/release_37" echo " -no-rt Disable check-out & build Compiler-RT" echo " -no-libs Disable check-out & build libcxx/libcxxabi/libunwind" +echo " -no-libcxxabiDisable check-out & build libcxxabi" echo " -no-libunwindDisable check-out & build libunwind" echo " -no-test-suite Disable check-out & build test-suite" echo " -no-openmp Disable check-out & build libomp" @@ -135,6 +137,9 @@ while [ $# -gt 0 ]; do -no-libs ) do_libs="no" ;; +-no-libcxxabi ) +do_libcxxabi="no" +;; -no-libunwind ) do_libunwind="no" ;; @@ -206,7 +211,10 @@ if [ $do_rt = "yes" ]; then projects="$projects compiler-rt" fi if [ $do_libs = "yes" ]; then - projects="$projects libcxx libcxxabi" + projects="$projects libcxx" + if [ $do_libcxxabi = "yes" ]; then +projects="$projects libcxxabi" + fi if [ $do_libunwind = "yes" ]; then projects="$projects libunwind" fi ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] d989ffd - Implement computeHostNumHardwareThreads() for FreeBSD
Author: Dimitry Andric Date: 2020-11-29T00:49:39+01:00 New Revision: d989ffd109b2b5e7fd7c577ea549f4d1c5f5492c URL: https://github.com/llvm/llvm-project/commit/d989ffd109b2b5e7fd7c577ea549f4d1c5f5492c DIFF: https://github.com/llvm/llvm-project/commit/d989ffd109b2b5e7fd7c577ea549f4d1c5f5492c.diff LOG: Implement computeHostNumHardwareThreads() for FreeBSD This retrieves CPU affinity via FreeBSD's cpuset(2) API, and makes LLVM respect affinity settings configured by the user via the cpuset(1) command. In particular, this allows to reduce the number of threads used on machines with high core counts, which can interact badly with parallelized build systems. This is particularly noticable with lld, which spawns lots of threads even for linking e.g. hello_world! This fix is related to PR48193, but does not adress the more fundamental problem, which is that LLVM by default grabs as many CPUs and/or threads as possible. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D92271 Added: Modified: llvm/lib/Support/Unix/Threading.inc Removed: diff --git a/llvm/lib/Support/Unix/Threading.inc b/llvm/lib/Support/Unix/Threading.inc index 2d0aacabf092..667d023fc134 100644 --- a/llvm/lib/Support/Unix/Threading.inc +++ b/llvm/lib/Support/Unix/Threading.inc @@ -28,6 +28,7 @@ #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #include +#include #include #include #include @@ -282,7 +283,13 @@ SetThreadPriorityResult llvm::set_thread_priority(ThreadPriority Priority) { #include int computeHostNumHardwareThreads() { -#ifdef __linux__ +#if defined(__FreeBSD__) + cpuset_t mask; + CPU_ZERO(&mask); + if (cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, -1, sizeof(mask), + &mask) == 0) +return CPU_COUNT(&mask); +#elif defined(__linux__) cpu_set_t Set; if (sched_getaffinity(0, sizeof(Set), &Set) == 0) return CPU_COUNT(&Set); ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
Re: [llvm-branch-commits] [libunwind] r364217 - Merging r360861:
On 24 Jun 2019, at 20:40, Tom Stellard via cfe-commits wrote: > > Author: tstellar > Date: Mon Jun 24 11:40:58 2019 > New Revision: 364217 > > URL: http://llvm.org/viewvc/llvm-project?rev=364217&view=rev > Log: > Merging r360861: > > > r360861 | mstorsjo | 2019-05-15 23:49:13 -0700 (Wed, 15 May 2019) | 13 lines > > [PPC64][libunwind] Fix r2 not properly restored > Modified: libunwind/branches/release_80/src/assembly.h > URL: > http://llvm.org/viewvc/llvm-project/libunwind/branches/release_80/src/assembly.h?rev=364217&r1=364216&r2=364217&view=diff > == > --- libunwind/branches/release_80/src/assembly.h (original) > +++ libunwind/branches/release_80/src/assembly.h Mon Jun 24 11:40:58 2019 > @@ -35,6 +35,20 @@ > #define SEPARATOR ; > #endif > > +#if defined(__powerpc64__) && (!defined(_CALL_ELF) || _CALL_ELF == 1) > +#define PPC64_OPD1 .section .opd,"aw",@progbits SEPARATOR > +#define PPC64_OPD2 SEPARATOR \ > + .p2align 3 SEPARATOR \ > + .quad .Lfunc_begin0 SEPARATOR \ > + .quad .TOC.@tocbase SEPARATOR \ > + .quad 0 SEPARATOR \ > + .text SEPARATOR \ > +.Lfunc_begin0: > +#else > +#define PPC64_OPD1 > +#define PPC64_OPD2 > +#endif > + > #define GLUE2(a, b) a ## b > #define GLUE(a, b) GLUE2(a, b) > #define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name) > @@ -95,7 +109,9 @@ > .globl SYMBOL_NAME(name) SEPARATOR \ > EXPORT_SYMBOL(name) SEPARATOR \ > SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \ > - SYMBOL_NAME(name): > + PPC64_OPD1 \ > + SYMBOL_NAME(name): \ > + PPC64_OPD2 > > #define DEFINE_LIBUNWIND_PRIVATE_FUNCTION(name) \ > .globl SYMBOL_NAME(name) SEPARATOR \ > I think this merge missed that the DEFINE_LIBUNWIND_PRIVATE_FUNCTION macro went away in r357640 ("[libunwind] Export the unw_* symbols as weak symbols"). It looks like the PPC64_OPD1 and PPC64_OPD2 lines should also be added to the expansion of DEFINE_LIBUNWIND_PRIVATE_FUNCTION? -Dimitry signature.asc Description: Message signed with OpenPGP ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libunwind] r365539 - Revert merge of r360861:
Author: dim Date: Tue Jul 9 12:14:43 2019 New Revision: 365539 URL: http://llvm.org/viewvc/llvm-project?rev=365539&view=rev Log: Revert merge of r360861: r360861 | mstorsjo | 2019-05-15 23:49:13 -0700 (Wed, 15 May 2019) | 13 lines [PPC64][libunwind] Fix r2 not properly restored This change makes each unwind step inspect the instruction at the return address and, if needed, read r2 from its saved location and modify the context appropriately. The unwind logic is able to handle both ELFv1 and ELFv2 stacks. Reported by Bug 41050 Patch by Leandro Lupori! Differential Revision: https://reviews.llvm.org/D59694 Modified: libunwind/branches/release_80/src/DwarfInstructions.hpp libunwind/branches/release_80/src/assembly.h libunwind/branches/release_80/test/lit.cfg Modified: libunwind/branches/release_80/src/DwarfInstructions.hpp URL: http://llvm.org/viewvc/llvm-project/libunwind/branches/release_80/src/DwarfInstructions.hpp?rev=365539&r1=365538&r2=365539&view=diff == --- libunwind/branches/release_80/src/DwarfInstructions.hpp (original) +++ libunwind/branches/release_80/src/DwarfInstructions.hpp Tue Jul 9 12:14:43 2019 @@ -234,31 +234,6 @@ int DwarfInstructions::stepWithDwa } #endif -#if defined(_LIBUNWIND_TARGET_PPC64) -#define PPC64_ELFV1_R2_LOAD_INST_ENCODING 0xe8410028u // ld r2,40(r1) -#define PPC64_ELFV1_R2_OFFSET 40 -#define PPC64_ELFV2_R2_LOAD_INST_ENCODING 0xe8410018u // ld r2,24(r1) -#define PPC64_ELFV2_R2_OFFSET 24 - // If the instruction at return address is a TOC (r2) restore, - // then r2 was saved and needs to be restored. - // ELFv2 ABI specifies that the TOC Pointer must be saved at SP + 24, - // while in ELFv1 ABI it is saved at SP + 40. - if (R::getArch() == REGISTERS_PPC64 && returnAddress != 0) { -pint_t sp = newRegisters.getRegister(UNW_REG_SP); -pint_t r2 = 0; -switch (addressSpace.get32(returnAddress)) { -case PPC64_ELFV1_R2_LOAD_INST_ENCODING: - r2 = addressSpace.get64(sp + PPC64_ELFV1_R2_OFFSET); - break; -case PPC64_ELFV2_R2_LOAD_INST_ENCODING: - r2 = addressSpace.get64(sp + PPC64_ELFV2_R2_OFFSET); - break; -} -if (r2) - newRegisters.setRegister(UNW_PPC64_R2, r2); - } -#endif - // Return address is address after call site instruction, so setting IP to // that does simualates a return. newRegisters.setIP(returnAddress); Modified: libunwind/branches/release_80/src/assembly.h URL: http://llvm.org/viewvc/llvm-project/libunwind/branches/release_80/src/assembly.h?rev=365539&r1=365538&r2=365539&view=diff == --- libunwind/branches/release_80/src/assembly.h (original) +++ libunwind/branches/release_80/src/assembly.h Tue Jul 9 12:14:43 2019 @@ -35,20 +35,6 @@ #define SEPARATOR ; #endif -#if defined(__powerpc64__) && (!defined(_CALL_ELF) || _CALL_ELF == 1) -#define PPC64_OPD1 .section .opd,"aw",@progbits SEPARATOR -#define PPC64_OPD2 SEPARATOR \ - .p2align 3 SEPARATOR \ - .quad .Lfunc_begin0 SEPARATOR \ - .quad .TOC.@tocbase SEPARATOR \ - .quad 0 SEPARATOR \ - .text SEPARATOR \ -.Lfunc_begin0: -#else -#define PPC64_OPD1 -#define PPC64_OPD2 -#endif - #define GLUE2(a, b) a ## b #define GLUE(a, b) GLUE2(a, b) #define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name) @@ -109,9 +95,7 @@ .globl SYMBOL_NAME(name) SEPARATOR \ EXPORT_SYMBOL(name) SEPARATOR \ SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \ - PPC64_OPD1 \ - SYMBOL_NAME(name): \ - PPC64_OPD2 + SYMBOL_NAME(name): #define DEFINE_LIBUNWIND_PRIVATE_FUNCTION(name) \ .globl SYMBOL_NAME(name) SEPARATOR \ Modified: libunwind/branches/release_80/test/lit.cfg URL: http://llvm.org/viewvc/llvm-project/libunwind/branches/release_80/test/lit.cfg?rev=365539&r1=365538&r2=365539&view=diff == --- libunwind/branches/release_80/test/lit.cfg (original) +++ libunwind/branches/release_80/test/lit.cfg Tue Jul 9 12:14:43 2019 @@ -23,9 +23,6 @@ config.suffixes = ['.cpp', '.s'] # test_source_root: The root path where tests are located. config.test_source_root = os.path.dirname(__file__) -# needed to test libunwind with code that throws exceptions -config.enable_exceptions = True - # Infer the libcxx_test_source_root for configuration import. # If libcxx_source_root isn't specified in the config, assume that the libcxx # and libunwind source directories are sibling directories.
[llvm-branch-commits] [libunwind] r365542 - Merging r360861, with an additional change to also add the PPC64_OPD1
Author: dim Date: Tue Jul 9 12:22:59 2019 New Revision: 365542 URL: http://llvm.org/viewvc/llvm-project?rev=365542&view=rev Log: Merging r360861, with an additional change to also add the PPC64_OPD1 and PPC64_OPD2 lines to the DEFINE_LIBUNWIND_PRIVATE_FUNCTION() macro, which was removed in r357640: r360861 | mstorsjo | 2019-05-15 23:49:13 -0700 (Wed, 15 May 2019) | 13 lines [PPC64][libunwind] Fix r2 not properly restored This change makes each unwind step inspect the instruction at the return address and, if needed, read r2 from its saved location and modify the context appropriately. The unwind logic is able to handle both ELFv1 and ELFv2 stacks. Reported by Bug 41050 Patch by Leandro Lupori! Differential Revision: https://reviews.llvm.org/D59694 Modified: libunwind/branches/release_80/ (props changed) libunwind/branches/release_80/src/DwarfInstructions.hpp libunwind/branches/release_80/src/assembly.h libunwind/branches/release_80/test/lit.cfg Propchange: libunwind/branches/release_80/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Jul 9 12:22:59 2019 @@ -1 +1 @@ -/libunwind/trunk:352016 +/libunwind/trunk:352016,360861 Modified: libunwind/branches/release_80/src/DwarfInstructions.hpp URL: http://llvm.org/viewvc/llvm-project/libunwind/branches/release_80/src/DwarfInstructions.hpp?rev=365542&r1=365541&r2=365542&view=diff == --- libunwind/branches/release_80/src/DwarfInstructions.hpp (original) +++ libunwind/branches/release_80/src/DwarfInstructions.hpp Tue Jul 9 12:22:59 2019 @@ -234,6 +234,31 @@ int DwarfInstructions::stepWithDwa } #endif +#if defined(_LIBUNWIND_TARGET_PPC64) +#define PPC64_ELFV1_R2_LOAD_INST_ENCODING 0xe8410028u // ld r2,40(r1) +#define PPC64_ELFV1_R2_OFFSET 40 +#define PPC64_ELFV2_R2_LOAD_INST_ENCODING 0xe8410018u // ld r2,24(r1) +#define PPC64_ELFV2_R2_OFFSET 24 + // If the instruction at return address is a TOC (r2) restore, + // then r2 was saved and needs to be restored. + // ELFv2 ABI specifies that the TOC Pointer must be saved at SP + 24, + // while in ELFv1 ABI it is saved at SP + 40. + if (R::getArch() == REGISTERS_PPC64 && returnAddress != 0) { +pint_t sp = newRegisters.getRegister(UNW_REG_SP); +pint_t r2 = 0; +switch (addressSpace.get32(returnAddress)) { +case PPC64_ELFV1_R2_LOAD_INST_ENCODING: + r2 = addressSpace.get64(sp + PPC64_ELFV1_R2_OFFSET); + break; +case PPC64_ELFV2_R2_LOAD_INST_ENCODING: + r2 = addressSpace.get64(sp + PPC64_ELFV2_R2_OFFSET); + break; +} +if (r2) + newRegisters.setRegister(UNW_PPC64_R2, r2); + } +#endif + // Return address is address after call site instruction, so setting IP to // that does simualates a return. newRegisters.setIP(returnAddress); Modified: libunwind/branches/release_80/src/assembly.h URL: http://llvm.org/viewvc/llvm-project/libunwind/branches/release_80/src/assembly.h?rev=365542&r1=365541&r2=365542&view=diff == --- libunwind/branches/release_80/src/assembly.h (original) +++ libunwind/branches/release_80/src/assembly.h Tue Jul 9 12:22:59 2019 @@ -35,6 +35,20 @@ #define SEPARATOR ; #endif +#if defined(__powerpc64__) && (!defined(_CALL_ELF) || _CALL_ELF == 1) +#define PPC64_OPD1 .section .opd,"aw",@progbits SEPARATOR +#define PPC64_OPD2 SEPARATOR \ + .p2align 3 SEPARATOR \ + .quad .Lfunc_begin0 SEPARATOR \ + .quad .TOC.@tocbase SEPARATOR \ + .quad 0 SEPARATOR \ + .text SEPARATOR \ +.Lfunc_begin0: +#else +#define PPC64_OPD1 +#define PPC64_OPD2 +#endif + #define GLUE2(a, b) a ## b #define GLUE(a, b) GLUE2(a, b) #define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name) @@ -95,13 +109,17 @@ .globl SYMBOL_NAME(name) SEPARATOR \ EXPORT_SYMBOL(name) SEPARATOR \ SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \ - SYMBOL_NAME(name): + PPC64_OPD1 \ + SYMBOL_NAME(name): \ + PPC64_OPD2 #define DEFINE_LIBUNWIND_PRIVATE_FUNCTION(name) \ .globl SYMBOL_NAME(name) SEPARATOR \ HIDDEN_SYMBOL(SYMBOL_NAME(name)) SEPARATOR \ SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \ - SYMBOL_NAME(name): + PPC64_OPD1 \ + SYMBOL_NAME(name): \ + PPC64_OPD2 #if defined(__arm__) #if !defined(__ARM_ARCH) Modified: libunwind/branches/release_80/test/lit.cfg URL: http://llvm.org/viewvc/llvm-p
Re: [llvm-branch-commits] [libunwind] r364217 - Merging r360861:
On 9 Jul 2019, at 04:54, Tom Stellard wrote: > > On 07/08/2019 11:51 AM, Dimitry Andric wrote: >> On 24 Jun 2019, at 20:40, Tom Stellard via cfe-commits >> wrote: >>> >>> Author: tstellar >>> Date: Mon Jun 24 11:40:58 2019 >>> New Revision: 364217 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=364217&view=rev >>> Log: >>> Merging r360861: >>> >>> >>> r360861 | mstorsjo | 2019-05-15 23:49:13 -0700 (Wed, 15 May 2019) | 13 lines >>> >>> [PPC64][libunwind] Fix r2 not properly restored >> >>> Modified: libunwind/branches/release_80/src/assembly.h >>> URL: >>> http://llvm.org/viewvc/llvm-project/libunwind/branches/release_80/src/assembly.h?rev=364217&r1=364216&r2=364217&view=diff >>> == >>> --- libunwind/branches/release_80/src/assembly.h (original) >>> +++ libunwind/branches/release_80/src/assembly.h Mon Jun 24 11:40:58 2019 >>> @@ -35,6 +35,20 @@ >>> #define SEPARATOR ; >>> #endif >>> >>> +#if defined(__powerpc64__) && (!defined(_CALL_ELF) || _CALL_ELF == 1) >>> +#define PPC64_OPD1 .section .opd,"aw",@progbits SEPARATOR >>> +#define PPC64_OPD2 SEPARATOR \ >>> + .p2align 3 SEPARATOR \ >>> + .quad .Lfunc_begin0 SEPARATOR \ >>> + .quad .TOC.@tocbase SEPARATOR \ >>> + .quad 0 SEPARATOR \ >>> + .text SEPARATOR \ >>> +.Lfunc_begin0: >>> +#else >>> +#define PPC64_OPD1 >>> +#define PPC64_OPD2 >>> +#endif >>> + >>> #define GLUE2(a, b) a ## b >>> #define GLUE(a, b) GLUE2(a, b) >>> #define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name) >>> @@ -95,7 +109,9 @@ >>> .globl SYMBOL_NAME(name) SEPARATOR \ >>> EXPORT_SYMBOL(name) SEPARATOR \ >>> SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \ >>> - SYMBOL_NAME(name): >>> + PPC64_OPD1 \ >>> + SYMBOL_NAME(name): \ >>> + PPC64_OPD2 >>> >>> #define DEFINE_LIBUNWIND_PRIVATE_FUNCTION(name) \ >>> .globl SYMBOL_NAME(name) SEPARATOR \ >>> >> >> I think this merge missed that the DEFINE_LIBUNWIND_PRIVATE_FUNCTION >> macro went away in r357640 ("[libunwind] Export the unw_* symbols as >> weak symbols"). >> >> It looks like the PPC64_OPD1 and PPC64_OPD2 lines should also be added >> to the expansion of DEFINE_LIBUNWIND_PRIVATE_FUNCTION? >> > > Is someone else able to try to remerge and fix this up? I don't have > a good way to test this. If we can't get this resolved by Wednesday, > I am going to revert it, because it's the only thing blocking the release > at this point. I reverted the merge in https://reviews.llvm.org/rL365539, and reapplied it with the additional lines in https://reviews.llvm.org/rL365542. I hope you don't mind. This is also going to end up in the next merge to FreeBSD's libunwind. -Dimitry signature.asc Description: Message signed with OpenPGP ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] release/18.x: [libcxx] Align `__recommend() + 1` by __endian_factor (#90292) (PR #95264)
DimitryAndric wrote: Do we need to merge this manually? GitHub's UI does not allow to merge the PR. :) https://github.com/llvm/llvm-project/pull/95264 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits