[clang] [flang] [mlir] [flang] Add basic -mtune support (PR #95043)
ns.cpp +++ b/flang/lib/Frontend/FrontendActions.cpp @@ -293,7 +293,7 @@ bool CodeGenAction::beginSourceFileAction() { kindMap, ci.getInvocation().getLoweringOpts(), ci.getInvocation().getFrontendOpts().envDefaults, ci.getInvocation().getFrontendOpts().features, targetMachine, - ci.getInvocation().getTargetOpts().tuneCPU); + ci.getInvocation().getTargetOpts().cpuToTuneFor); // Fetch module from lb, so we can set mlirModule = std::make_unique(lb.getModule()); >From 0fe4f9237bffca18f7b5499a1897d3ecc3054ba3 Mon Sep 17 00:00:00 2001 From: Alexis Perry-Holby Date: Wed, 12 Jun 2024 13:02:28 -0600 Subject: [PATCH 07/11] added mlir import/export tests for tune-cpu --- mlir/test/Target/LLVMIR/Import/tune-cpu.ll | 9 + mlir/test/Target/LLVMIR/tune-cpu.mlir | 7 +++ 2 files changed, 16 insertions(+) create mode 100644 mlir/test/Target/LLVMIR/Import/tune-cpu.ll create mode 100644 mlir/test/Target/LLVMIR/tune-cpu.mlir diff --git a/mlir/test/Target/LLVMIR/Import/tune-cpu.ll b/mlir/test/Target/LLVMIR/Import/tune-cpu.ll new file mode 100644 index 0..9607da82c298a --- /dev/null +++ b/mlir/test/Target/LLVMIR/Import/tune-cpu.ll @@ -0,0 +1,9 @@ +; RUN: mlir-translate -import-llvm -split-input-file %s | FileCheck %s + +; CHECK-LABEL: llvm.func @tune_cpu() +; CHECK-SAME: tune_cpu = "pentium4" +define void @tune_cpu() #0 { + ret void +} + +attributes #0 = { "tune-cpu"="pentium4" } diff --git a/mlir/test/Target/LLVMIR/tune-cpu.mlir b/mlir/test/Target/LLVMIR/tune-cpu.mlir new file mode 100644 index 0..06268022fb235 --- /dev/null +++ b/mlir/test/Target/LLVMIR/tune-cpu.mlir @@ -0,0 +1,7 @@ +// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s + +// CHECK: define void @tune_cpu() #[[ATTRS:.*]] { +// CHECK: attributes #[[ATTRS]] = { "tune-cpu"="pentium4" } +llvm.func @tune_cpu() attributes {tune_cpu = "pentium4"} { + llvm.return +} >From bc07fbc575489db8aee856169e5fd6032803e654 Mon Sep 17 00:00:00 2001 From: Alexis Perry-Holby Date: Wed, 12 Jun 2024 13:09:49 -0600 Subject: [PATCH 08/11] Address review comments - increase clarity in bbc default lowering --- flang/tools/bbc/bbc.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp index c01dbd200af49..c027627975776 100644 --- a/flang/tools/bbc/bbc.cpp +++ b/flang/tools/bbc/bbc.cpp @@ -367,11 +367,12 @@ static mlir::LogicalResult convertFortranSourceToMLIR( loweringOptions.setLowerToHighLevelFIR(useHLFIR || emitHLFIR); loweringOptions.setNSWOnLoopVarInc(setNSW); std::vector envDefaults = {}; + constexpr const char* tuneCPU = ""; auto burnside = Fortran::lower::LoweringBridge::create( ctx, semanticsContext, defKinds, semanticsContext.intrinsics(), semanticsContext.targetCharacteristics(), parsing.allCooked(), targetTriple, kindMap, loweringOptions, envDefaults, - semanticsContext.languageFeatures(), targetMachine, ""); + semanticsContext.languageFeatures(), targetMachine, tuneCPU); mlir::ModuleOp mlirModule = burnside.getModule(); if (enableOpenMP) { if (enableOpenMPGPU && !enableOpenMPDevice) { >From affc4a1900531bc26cec69c07e83c7e30f83447a Mon Sep 17 00:00:00 2001 From: Alexis Perry-Holby Date: Wed, 12 Jun 2024 14:32:58 -0600 Subject: [PATCH 09/11] clang-format --- flang/tools/bbc/bbc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp index c027627975776..0a149be0c0597 100644 --- a/flang/tools/bbc/bbc.cpp +++ b/flang/tools/bbc/bbc.cpp @@ -367,7 +367,7 @@ static mlir::LogicalResult convertFortranSourceToMLIR( loweringOptions.setLowerToHighLevelFIR(useHLFIR || emitHLFIR); loweringOptions.setNSWOnLoopVarInc(setNSW); std::vector envDefaults = {}; - constexpr const char* tuneCPU = ""; + constexpr const char *tuneCPU = ""; auto burnside = Fortran::lower::LoweringBridge::create( ctx, semanticsContext, defKinds, semanticsContext.intrinsics(), semanticsContext.targetCharacteristics(), parsing.allCooked(), >From b8bf52462aae9f63b393016591cc2ec933e53b85 Mon Sep 17 00:00:00 2001 From: Alexis Perry-Holby Date: Thu, 20 Jun 2024 15:35:08 -0600 Subject: [PATCH 10/11] Address reviewer comments - remove strcmp usage --- clang/lib/Driver/ToolChains/Flang.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index fa5ad1e50bc66..98fe7cace058f 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -414,7 +414,7 @@ void Flang::addTargetOptions(const ArgList , // TODO: Add target specific flags, ABI, mtune option etc. if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) { CmdArgs.push_back("-tune-cpu"); -if (strcmp(A->getValue(), "native") == 0) +if (A->getValue() == StringRef{"native"}) CmdArgs.push_back(Args.MakeArgString(llvm::sys::getHostCPUName())); else CmdArgs.push_back(A->getValue()); @@ -810,7 +810,7 @@ void Flang::ConstructJob(Compilation , const JobAction , case CodeGenOptions::FramePointerKind::None: FPKeepKindStr = "-mframe-pointer=none"; break; - case CodeGenOptions::FramePointerKind::Reserved: + case CodeGenOptions::FramePointerKind::Reserved: FPKeepKindStr = "-mframe-pointer=reserved"; break; case CodeGenOptions::FramePointerKind::NonLeaf: >From eb42995206e4f15634984476923e00cbf1dcc4de Mon Sep 17 00:00:00 2001 From: Alexis Perry-Holby Date: Mon, 24 Jun 2024 13:46:46 -0600 Subject: [PATCH 11/11] Address review comments - move test from Lower to Driver --- flang/test/{Lower => Driver}/tune-cpu-fir.f90 | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename flang/test/{Lower => Driver}/tune-cpu-fir.f90 (100%) diff --git a/flang/test/Lower/tune-cpu-fir.f90 b/flang/test/Driver/tune-cpu-fir.f90 similarity index 100% rename from flang/test/Lower/tune-cpu-fir.f90 rename to flang/test/Driver/tune-cpu-fir.f90 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[jenkins-infra/jenkins.io] 18fc50: Automated changelog for 2.464
Branch: refs/heads/automated-weekly-changelog/2.464 Home: https://github.com/jenkins-infra/jenkins.io Commit: 18fc506a7d8d1b9603d2ba60f56275a785f595f4 https://github.com/jenkins-infra/jenkins.io/commit/18fc506a7d8d1b9603d2ba60f56275a785f595f4 Author: jenkins-infra-changelog-generator <86592549+jenkins-infra-changelog-generator[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M content/_data/changelogs/weekly.yml Log Message: --- Automated changelog for 2.464 To unsubscribe from these emails, change your notification settings at https://github.com/jenkins-infra/jenkins.io/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkins-infra/jenkins.io/push/refs/heads/automated-weekly-changelog/2.464/8646ad-18fc50%40github.com.
[clang-tools-extra] reapply [clang-doc] Add --asset option to clang-doc (PR #96358)
ert( CDCtx.UserStylesheets.begin(), "../share/clang/clang-doc-default-stylesheet.css"); @@ -66,6 +66,7 @@ TEST(HTMLGeneratorTest, emitNamespaceHTML) { namespace Namespace + test-project @@ -176,6 +177,7 @@ TEST(HTMLGeneratorTest, emitRecordHTML) { class r + test-project @@ -290,6 +292,7 @@ TEST(HTMLGeneratorTest, emitFunctionHTML) { + test-project @@ -337,6 +340,7 @@ TEST(HTMLGeneratorTest, emitEnumHTML) { + test-project @@ -422,6 +426,7 @@ TEST(HTMLGeneratorTest, emitCommentHTML) { + test-project >From 76ce46ef6232afed395b88dbbfa8304b695dfcf3 Mon Sep 17 00:00:00 2001 From: PeterChou1 Date: Mon, 24 Jun 2024 15:44:41 -0400 Subject: [PATCH 4/4] [clang][clang-doc] remove test tool --- clang-tools-extra/CMakeLists.txt | 4 +-- clang-tools-extra/test-tool/CmakeLists.txt | 15 - clang-tools-extra/test-tool/testfile.cpp | 36 -- 3 files changed, 1 insertion(+), 54 deletions(-) delete mode 100644 clang-tools-extra/test-tool/CmakeLists.txt delete mode 100644 clang-tools-extra/test-tool/testfile.cpp diff --git a/clang-tools-extra/CMakeLists.txt b/clang-tools-extra/CMakeLists.txt index 4226ac69477d5..ab83671b88ba8 100644 --- a/clang-tools-extra/CMakeLists.txt +++ b/clang-tools-extra/CMakeLists.txt @@ -48,6 +48,4 @@ if(CLANG_INCLUDE_TESTS) add_subdirectory(test) add_subdirectory(unittests) umbrella_lit_testsuite_end(check-clang-tools) -endif() - -add_subdirectory(test-tool) \ No newline at end of file +endif() \ No newline at end of file diff --git a/clang-tools-extra/test-tool/CmakeLists.txt b/clang-tools-extra/test-tool/CmakeLists.txt deleted file mode 100644 index 0fc082f304ada..0 --- a/clang-tools-extra/test-tool/CmakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -set(LLVM_LINK_COMPONENTS support) - -add_clang_executable(loop-convert -testfile.cpp -) - -target_link_libraries(loop-convert -PRIVATE -clangAST -clangASTMatchers -clangBasic -clangFrontend -clangSerialization -clangTooling -) \ No newline at end of file diff --git a/clang-tools-extra/test-tool/testfile.cpp b/clang-tools-extra/test-tool/testfile.cpp deleted file mode 100644 index ddd9f1017520f..0 --- a/clang-tools-extra/test-tool/testfile.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include "clang/Frontend/FrontendActions.h" -#include "clang/Tooling/CommonOptionsParser.h" -#include "clang/Tooling/Tooling.h" -#include "llvm/Support/CommandLine.h" -#include "clang/Tooling/Execution.h" - -using namespace clang::tooling; -using namespace llvm; - -class MapASTVisitor : public clang::ASTConsumer { -public: - explicit MapASTVisitor() {} - void HandleTranslationUnit(clang::ASTContext ) override {} -}; -class MyAction : public clang::ASTFrontendAction { -public: - MyAction() {} - std::unique_ptr - CreateASTConsumer(clang::CompilerInstance , -llvm::StringRef InFile) override { -return std::make_unique(); - } -}; - -static llvm::cl::OptionCategory MyToolCategory("my-tool"); -int main(int argc, const char **argv) { - const char *Overview = ""; - auto Executor = clang::tooling::createExecutorFromCommandLineArgs( - argc, argv, MyToolCategory, Overview); - if (!Executor) { -llvm::errs() << toString(Executor.takeError()) << "\n"; -return 1; - } - auto Err = Executor->get()->execute(newFrontendActionFactory()); - return 0; -} \ No newline at end of file ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [flang] [mlir] [flang] Add basic -mtune support (PR #95043)
@@ -0,0 +1,9 @@ +; RUN: mlir-translate -import-llvm -split-input-file %s | FileCheck %s + +; CHECK-LABEL: llvm.func @tune_cpu() +; CHECK-SAME: tune_cpu = "pentium4" AlexisPerry wrote: Alright, after some digging, I can confirm that `tune-cpu` is listed among the `kExplicitAttributes` and that these attributes are expressly excluded from being added to the passthrough dictionary based on the code in `processPassthroughAttrs` in `ModuleImport.cpp`. https://github.com/llvm/llvm-project/pull/95043 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[jenkins-infra/jenkins.io] 8646ad: Automated changelog for 2.464
Branch: refs/heads/automated-weekly-changelog/2.464 Home: https://github.com/jenkins-infra/jenkins.io Commit: 8646ad148afeb6fcb5456932c2543586ef42ead2 https://github.com/jenkins-infra/jenkins.io/commit/8646ad148afeb6fcb5456932c2543586ef42ead2 Author: jenkins-infra-changelog-generator <86592549+jenkins-infra-changelog-generator[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M content/_data/changelogs/weekly.yml Log Message: --- Automated changelog for 2.464 To unsubscribe from these emails, change your notification settings at https://github.com/jenkins-infra/jenkins.io/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkins-infra/jenkins.io/push/refs/heads/automated-weekly-changelog/2.464/638e5e-8646ad%40github.com.
[jenkinsci/active-choices-plugin] 82f5dc: Bump webpack from 5.92.0 to 5.92.1
Branch: refs/heads/dependabot/npm_and_yarn/webpack-5.92.1 Home: https://github.com/jenkinsci/active-choices-plugin Commit: 82f5dcf7114072289aa39bc9592e1437947855bb https://github.com/jenkinsci/active-choices-plugin/commit/82f5dcf7114072289aa39bc9592e1437947855bb Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M package.json M yarn.lock Log Message: --- Bump webpack from 5.92.0 to 5.92.1 Bumps [webpack](https://github.com/webpack/webpack) from 5.92.0 to 5.92.1. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.92.0...v5.92.1) --- updated-dependencies: - dependency-name: webpack dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/active-choices-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/active-choices-plugin/push/refs/heads/dependabot/npm_and_yarn/webpack-5.92.1/00-82f5dc%40github.com.
[clang-tools-extra] reapply [clang-doc] Add --asset option to clang-doc (PR #96358)
uts/test-assets/test.js b/clang-tools-extra/test/clang-doc/Inputs/test-assets/test.js new file mode 100644 index 0..06f320c59b9b0 --- /dev/null +++ b/clang-tools-extra/test/clang-doc/Inputs/test-assets/test.js @@ -0,0 +1 @@ +console.log("Hello, world!"); \ No newline at end of file diff --git a/clang-tools-extra/test/clang-doc/assets.cpp b/clang-tools-extra/test/clang-doc/assets.cpp new file mode 100644 index 0..4b439f0048537 --- /dev/null +++ b/clang-tools-extra/test/clang-doc/assets.cpp @@ -0,0 +1,22 @@ +// RUN: rm -rf %t && mkdir -p %t/docs %t/build +// RUN: clang-doc --format=html --output=%t/docs --asset=%S/Inputs/test-assets --executor=standalone %s --output=%t/docs +// RUN: FileCheck %s -input-file=%t/docs/index.html -check-prefix=INDEX +// RUN: FileCheck %s -input-file=%t/docs/test.css -check-prefix=CSS +// RUN: FileCheck %s -input-file=%t/docs/test.js -check-prefix=JS + +// INDEX: +// INDEX-NEXT: +// INDEX-NEXT: Index +// INDEX-NEXT: +// INDEX-NEXT: +// INDEX-NEXT: +// INDEX-NEXT: +// INDEX-NEXT: +// INDEX-NEXT: +// INDEX-NEXT: + +// CSS: body { +// CSS-NEXT: padding: 0; +// CSS-NEXT: } + +// JS: console.log("Hello, world!"); \ No newline at end of file diff --git a/clang-tools-extra/test/clang-doc/basic-project.test b/clang-tools-extra/test/clang-doc/basic-project.test index 0898acaea3a33..3118c20495987 100644 --- a/clang-tools-extra/test/clang-doc/basic-project.test +++ b/clang-tools-extra/test/clang-doc/basic-project.test @@ -57,8 +57,8 @@ // HTML-SHAPE-NEXT: // HTML-SHAPE-NEXT: class Shape // HTML-SHAPE-NEXT: -// HTML-SHAPE-NEXT: -// HTML-SHAPE-NEXT: +// HTML-SHAPE-NEXT: +// HTML-SHAPE-NEXT: // HTML-SHAPE-NEXT: // HTML-SHAPE-NEXT: // HTML-SHAPE-NEXT: @@ -122,8 +122,8 @@ // HTML-CALC-NEXT: // HTML-CALC-NEXT: class Calculator // HTML-CALC-NEXT: -// HTML-CALC-NEXT: // HTML-CALC-NEXT: +// HTML-CALC-NEXT: // HTML-CALC-NEXT: // HTML-CALC-NEXT: // HTML-CALC-NEXT: @@ -139,25 +139,25 @@ // HTML-CALC-NEXT: // HTML-CALC-NEXT: add // HTML-CALC-NEXT: public int add(int a, int b) -// HTML-CALC-NEXT: Defined at line 4 of file {{.*}}Calculator.cpp +// HTML-CALC-NEXT: Defined at line 3 of file {{.*}}Calculator.cpp // HTML-CALC-NEXT: // HTML-CALC-NEXT: // HTML-CALC-NEXT: // HTML-CALC-NEXT: subtract // HTML-CALC-NEXT: public int subtract(int a, int b) -// HTML-CALC-NEXT: Defined at line 8 of file {{.*}}Calculator.cpp +// HTML-CALC-NEXT: Defined at line 7 of file {{.*}}Calculator.cpp // HTML-CALC-NEXT: // HTML-CALC-NEXT: // HTML-CALC-NEXT: // HTML-CALC-NEXT: multiply // HTML-CALC-NEXT: public int multiply(int a, int b) -// HTML-CALC-NEXT: Defined at line 12 of file {{.*}}Calculator.cpp +// HTML-CALC-NEXT: Defined at line 11 of file {{.*}}Calculator.cpp // HTML-CALC-NEXT: // HTML-CALC-NEXT: // HTML-CALC-NEXT: // HTML-CALC-NEXT: divide // HTML-CALC-NEXT: public double divide(int a, int b) -// HTML-CALC-NEXT: Defined at line 16 of file {{.*}}Calculator.cpp +// HTML-CALC-NEXT: Defined at line 15 of file {{.*}}Calculator.cpp // HTML-CALC-NEXT: // HTML-CALC-NEXT: // HTML-CALC-NEXT: @@ -200,8 +200,8 @@ // HTML-RECTANGLE-NEXT: // HTML-RECTANGLE-NEXT: class Rectangle // HTML-RECTANGLE-NEXT: -// HTML-RECTANGLE-NEXT: // HTML-RECTANGLE-NEXT: +// HTML-RECTANGLE-NEXT: // HTML-RECTANGLE-NEXT: // HTML-RECTANGLE-NEXT: // HTML-RECTANGLE-NEXT: @@ -281,8 +281,8 @@ // HTML-CIRCLE-NEXT: // HTML-CIRCLE-NEXT: class Circle // HTML-CIRCLE-NEXT: -// HTML-CIRCLE-NEXT: // HTML-CIRCLE-NEXT: +// HTML-CIRCLE-NEXT: // HTML-CIRCLE-NEXT: // HTML-CIRCLE-NEXT: // HTML-CIRCLE-NEXT: diff --git a/clang-tools-extra/test/clang-doc/single-source-html.cpp b/clang-tools-extra/test/clang-doc/single-source-html.cpp deleted file mode 100644 index 32f232b9c45a0..0 --- a/clang-tools-extra/test/clang-doc/single-source-html.cpp +++ /dev/null @@ -1,2 +0,0 @@ -// RUN: clang-doc --format=html --executor=standalone %s -output=%t/docs | FileCheck %s -// CHECK: Using default asset: {{.*}}{{[\/]}}share{{[\/]}}clang \ No newline at end of file diff --git a/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp b/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp index 9aabb1ed30e42..e4a7340318b93 100644 --- a/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp +++ b/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp @@ -30,7 +30,7 @@ ClangDocContext getClangDocContext(std::vector UserStylesheets = {}, StringRef RepositoryUrl = "") { ClangDocContext CDCtx{ - {}, "test-project", {}, {}, {}, RepositoryUrl, UserStylesheets, {}}; + {}, "test-project", {}, {}, {}, RepositoryUrl, UserStylesheets}; CDCtx.UserStylesheets.insert( CDCtx.UserStylesheets.begin(), "../share/clang/clang-doc-default-stylesheet.css"); @@ -66,6 +66,7 @@ TEST(HTMLGeneratorTest, emitNamespaceHTML) { namespace Namespace + test-project @@ -176,6 +177,7 @@ TEST(HTMLGeneratorTest, emitRecordHTML) { class r + test-project @@ -290,6 +292,7 @@ TEST(HTMLGeneratorTest, emitFunctionHTML) { + test-project @@ -337,6 +340,7 @@ TEST(HTMLGeneratorTest, emitEnumHTML) { + test-project @@ -422,6 +426,7 @@ TEST(HTMLGeneratorTest, emitCommentHTML) { + test-project ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[jenkinsci/active-choices-plugin] f3be78: Bump typescript from 5.4.5 to 5.5.2
Branch: refs/heads/dependabot/npm_and_yarn/typescript-5.5.2 Home: https://github.com/jenkinsci/active-choices-plugin Commit: f3be78b6692fbb33866fc74fc885eec1a72314af https://github.com/jenkinsci/active-choices-plugin/commit/f3be78b6692fbb33866fc74fc885eec1a72314af Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M package.json M yarn.lock Log Message: --- Bump typescript from 5.4.5 to 5.5.2 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.5 to 5.5.2. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.2) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/active-choices-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/active-choices-plugin/push/refs/heads/dependabot/npm_and_yarn/typescript-5.5.2/00-f3be78%40github.com.
[clang] [llvm] [mlir] [polly] [IR][NFC] Update IRBuilder to use InsertPosition (PR #96497)
SLTozer wrote: > Looks like using InsertPosition in IRBuilder has some overhead: Hm, we're adding an extra pointer chase when we give up passing a basicblock - I think then it makes sense to keep the option to pass BB+It, and do so when the caller already knows the BB (while removing the need to pass the BB around for functions that only need an insert point). https://github.com/llvm/llvm-project/pull/96497 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[jenkinsci/lockable-resources-plugin] 0e8631: Bump io.jenkins.tools.bom:bom-2.440.x
Branch: refs/heads/dependabot/maven/io.jenkins.tools.bom-bom-2.440.x-3143.v347db_7c6db_6e Home: https://github.com/jenkinsci/lockable-resources-plugin Commit: 0e8631012f405566e104c68a67f1a3d9b3a9627f https://github.com/jenkinsci/lockable-resources-plugin/commit/0e8631012f405566e104c68a67f1a3d9b3a9627f Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M pom.xml Log Message: --- Bump io.jenkins.tools.bom:bom-2.440.x Bumps [io.jenkins.tools.bom:bom-2.440.x](https://github.com/jenkinsci/bom) from 3135.v6d6c1f6b_3572 to 3143.v347db_7c6db_6e. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.440.x dependency-type: direct:production ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/lockable-resources-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/lockable-resources-plugin/push/refs/heads/dependabot/maven/io.jenkins.tools.bom-bom-2.440.x-3143.v347db_7c6db_6e/00-0e8631%40github.com.
[jenkinsci/simple-theme-plugin] 601eb5: Bump io.jenkins.tools.bom:bom-2.426.x
Branch: refs/heads/dependabot/maven/io.jenkins.tools.bom-bom-2.426.x-3143.v347db_7c6db_6e Home: https://github.com/jenkinsci/simple-theme-plugin Commit: 601eb5df93d0d0337fd15d583e92f4e68dee8be0 https://github.com/jenkinsci/simple-theme-plugin/commit/601eb5df93d0d0337fd15d583e92f4e68dee8be0 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M pom.xml Log Message: --- Bump io.jenkins.tools.bom:bom-2.426.x Bumps [io.jenkins.tools.bom:bom-2.426.x](https://github.com/jenkinsci/bom) from 2675.v1515e14da_7a_6 to 3143.v347db_7c6db_6e. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.426.x dependency-type: direct:production ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/simple-theme-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/simple-theme-plugin/push/refs/heads/dependabot/maven/io.jenkins.tools.bom-bom-2.426.x-3143.v347db_7c6db_6e/00-601eb5%40github.com.
[clang] [clang][OpenMP] Fix error handling of the adjust_args clause (PR #94696)
https://github.com/jyu2-git approved this pull request. LGTM. Thanks! https://github.com/llvm/llvm-project/pull/94696 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 09c0337 - [Clang][SveEmitter] Split up TargetGuard into SVE and SME component. (#96482)
Author: Sander de Smalen Date: 2024-06-24T20:31:22+01:00 New Revision: 09c0337a581dfd8f39df131786cfc7f675adf483 URL: https://github.com/llvm/llvm-project/commit/09c0337a581dfd8f39df131786cfc7f675adf483 DIFF: https://github.com/llvm/llvm-project/commit/09c0337a581dfd8f39df131786cfc7f675adf483.diff LOG: [Clang][SveEmitter] Split up TargetGuard into SVE and SME component. (#96482) One reason to want to split this up is to simplify the code added in #93802, where it checks the SME streaming-mode requirements for a builtin by checking for the absence of SVE. If the target guards are separate, we can generate a table and make the Sema code to verify the runtime mode simpler. Another reason is to avoid an issue with a check in SveEmitter.cpp where it ensures that the 'VerifyRuntimeMode' is set correctly for functions that have both SVE and SME target guards: if (!Def->isFlagSet(VerifyRuntimeMode) && Def->getGuard().contains("sve") && Def->getGuard().contains("sme")) llvm_unreachable("Missing VerifyRuntimeMode flag"); However, if we ever add a new feature with "sme" in the name, even though it is unrelated to FEAT_SME, then this code no longer works. Note that the arm_sve.td and arm_sme.td files could do with a bit of restructuring after this but it seems better to follow that up in an NFC patch. Added: Modified: clang/include/clang/Basic/arm_sme.td clang/include/clang/Basic/arm_sve.td clang/include/clang/Basic/arm_sve_sme_incl.td clang/test/Sema/aarch64-sve-intrinsics/acle_sve_bfloat.cpp clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_bfloat.cpp clang/utils/TableGen/SveEmitter.cpp Removed: diff --git a/clang/include/clang/Basic/arm_sme.td b/clang/include/clang/Basic/arm_sme.td index 564a58e4eb670..1580331ea603c 100644 --- a/clang/include/clang/Basic/arm_sme.td +++ b/clang/include/clang/Basic/arm_sme.td @@ -15,11 +15,13 @@ include "arm_sve_sme_incl.td" +let SVETargetGuard = InvalidMode in { + // Loads multiclass ZALoad ch> { - let TargetGuard = "sme" in { + let SMETargetGuard = "sme" in { def NAME # _H : MInst<"svld1_hor_" # n_suffix, "vimPQ", t, [IsLoad, IsOverloadNone, IsStreaming, IsInOutZA], MemEltTyDefault, i_prefix # "_horiz", ch>; @@ -44,7 +46,7 @@ defm SVLD1_ZA32 : ZALoad<"za32", "i", "aarch64_sme_ld1w", [ImmCheck<0, ImmCheck0 defm SVLD1_ZA64 : ZALoad<"za64", "l", "aarch64_sme_ld1d", [ImmCheck<0, ImmCheck0_7>]>; defm SVLD1_ZA128 : ZALoad<"za128", "q", "aarch64_sme_ld1q", [ImmCheck<0, ImmCheck0_15>]>; -let TargetGuard = "sme" in { +let SMETargetGuard = "sme" in { def SVLDR_VNUM_ZA : MInst<"svldr_vnum_za", "vmQl", "", [IsOverloadNone, IsStreamingCompatible, IsInOutZA], MemEltTyDefault, "aarch64_sme_ldr">; @@ -58,7 +60,7 @@ def SVLDR_ZA : MInst<"svldr_za", "vmQ", "", // Stores multiclass ZAStore ch> { - let TargetGuard = "sme" in { + let SMETargetGuard = "sme" in { def NAME # _H : MInst<"svst1_hor_" # n_suffix, "vimP%", t, [IsStore, IsOverloadNone, IsStreaming, IsInZA], MemEltTyDefault, i_prefix # "_horiz", ch>; @@ -83,7 +85,7 @@ defm SVST1_ZA32 : ZAStore<"za32", "i", "aarch64_sme_st1w", [ImmCheck<0, ImmCheck defm SVST1_ZA64 : ZAStore<"za64", "l", "aarch64_sme_st1d", [ImmCheck<0, ImmCheck0_7>]>; defm SVST1_ZA128 : ZAStore<"za128", "q", "aarch64_sme_st1q", [ImmCheck<0, ImmCheck0_15>]>; -let TargetGuard = "sme" in { +let SMETargetGuard = "sme" in { def SVSTR_VNUM_ZA : MInst<"svstr_vnum_za", "vm%l", "", [IsOverloadNone, IsStreamingCompatible, IsInZA], MemEltTyDefault, "aarch64_sme_str">; @@ -97,7 +99,7 @@ def SVSTR_ZA : MInst<"svstr_za", "vm%", "", // Read horizontal/vertical ZA slices multiclass ZARead ch> { - let TargetGuard = "sme" in { + let SMETargetGuard = "sme" in { def NAME # _H : SInst<"svread_hor_" # n_suffix # "[_{d}]", "ddPim", t, MergeOp1, i_prefix # "_horiz", [IsReadZA, IsStreaming, IsInZA], ch>; @@ -118,7 +120,7 @@ defm SVREAD_ZA128 : ZARead<"za128", "csilUcUsUiUlhbfd", "aarch64_sme_readq", [Im // Write horizontal/vertical ZA slices multiclass ZAWrite ch> { - let TargetGuard = "sme" in { + let SMETargetGuard = "sme" in { def NAME # _H : SInst<"svwrite_hor_" # n_suffix # "[_{d}]", "vimPd", t, MergeOp1, i_prefix # "_horiz", [IsWriteZA, IsStreaming, IsInOutZA], ch>; @@ -138,7 +140,7 @@ defm SVWRITE_ZA128 : ZAWrite<"za128", "csilUcUsUiUlhbfd", "aarch64_sme_writeq", // SME - Zero -let TargetGuard =
[clang] [Clang][SveEmitter] Split up TargetGuard into SVE and SME component. (PR #96482)
https://github.com/sdesmalen-arm closed https://github.com/llvm/llvm-project/pull/96482 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] Clang: convert `__m64` intrinsics to unconditionally use SSE2 instead of MMX. (PR #96540)
github-actions[bot] wrote: :warning: C/C++ code formatter, clang-format found issues in your code. :warning: You can test this locally with the following command: ``bash git-clang-format --diff af6acd7442646fde56de919964bd52d7bb7922b2 a17a0df1c3551693283dd806b901d3020f33e67f --extensions 'c,h,cpp' -- mmx-tests/test.c clang/lib/CodeGen/CGBuiltin.cpp clang/lib/Headers/emmintrin.h clang/lib/Headers/mmintrin.h clang/lib/Headers/tmmintrin.h clang/lib/Headers/xmmintrin.h clang/test/CodeGen/X86/mmx-builtins.c clang/test/CodeGen/X86/mmx-inline-asm.c clang/test/CodeGen/X86/mmx-shift-with-immediate.c clang/test/CodeGen/attr-target-x86-mmx.c clang/test/Headers/xmmintrin.c clang/test/Sema/x86-builtin-palignr.c `` View the diff from clang-format here. ``diff diff --git a/clang/lib/Headers/emmintrin.h b/clang/lib/Headers/emmintrin.h index 02160285d5..a3176570a4 100644 --- a/clang/lib/Headers/emmintrin.h +++ b/clang/lib/Headers/emmintrin.h @@ -49,10 +49,15 @@ typedef __bf16 __m128bh __attribute__((__vector_size__(16), __aligned__(16))); #endif /* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse2,no-evex512"), __min_vector_width__(128))) - -#define __trunc64(x) (__m64)__builtin_shufflevector((__v2di)(x), __extension__ (__v2di){}, 0) -#define __anyext128(x) (__m128i)__builtin_shufflevector((__v2si)(x), __extension__ (__v2si){}, 0, 1, -1, -1) +#define __DEFAULT_FN_ATTRS \ + __attribute__((__always_inline__, __nodebug__, \ + __target__("sse2,no-evex512"), __min_vector_width__(128))) + +#define __trunc64(x) \ + (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0) +#define __anyext128(x) \ + (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \ +1, -1, -1) /// Adds lower double-precision values in both operands and returns the ///sum in the lower 64 bits of the result. The upper 64 bits of the result diff --git a/clang/lib/Headers/mmintrin.h b/clang/lib/Headers/mmintrin.h index 71d7487673..d4ccb3c92f 100644 --- a/clang/lib/Headers/mmintrin.h +++ b/clang/lib/Headers/mmintrin.h @@ -22,8 +22,8 @@ typedef short __v4hi __attribute__((__vector_size__(8))); typedef char __v8qi __attribute__((__vector_size__(8))); /* Unsigned types */ -typedef unsigned long long __v1du __attribute__ ((__vector_size__ (8))); -typedef unsigned int __v2su __attribute__ ((__vector_size__ (8))); +typedef unsigned long long __v1du __attribute__((__vector_size__(8))); +typedef unsigned int __v2su __attribute__((__vector_size__(8))); typedef unsigned short __v4hu __attribute__((__vector_size__(8))); typedef unsigned char __v8qu __attribute__((__vector_size__(8))); @@ -33,17 +33,23 @@ typedef signed char __v8qs __attribute__((__vector_size__(8))); /* SSE/SSE2 types */ typedef long long __m128i __attribute__((__vector_size__(16), __aligned__(16))); -typedef long long __v2di __attribute__ ((__vector_size__ (16))); +typedef long long __v2di __attribute__((__vector_size__(16))); typedef int __v4si __attribute__((__vector_size__(16))); typedef short __v8hi __attribute__((__vector_size__(16))); typedef char __v16qi __attribute__((__vector_size__(16))); /* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS_SSE2 __attribute__((__always_inline__, __nodebug__, __target__("sse2,no-evex512"), __min_vector_width__(64))) - -#define __trunc64(x) (__m64)__builtin_shufflevector((__v2di)(x), __extension__ (__v2di){}, 0) -#define __anyext128(x) (__m128i)__builtin_shufflevector((__v2si)(x), __extension__ (__v2si){}, 0, 1, -1, -1) -#define __extract2_32(a) (__m64)__builtin_shufflevector((__v4si)(a), __extension__ (__v4si){}, 0, 2); +#define __DEFAULT_FN_ATTRS_SSE2 \ + __attribute__((__always_inline__, __nodebug__, \ + __target__("sse2,no-evex512"), __min_vector_width__(64))) + +#define __trunc64(x) \ + (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0) +#define __anyext128(x) \ + (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \ +1, -1, -1) +#define __extract2_32(a) \ + (__m64) __builtin_shufflevector((__v4si)(a), __extension__(__v4si){}, 0, 2); /// Clears the MMX state by setting the state of the x87 stack registers ///to empty. @@ -69,10 +75,8 @@ _mm_empty(void) { ///A 32-bit integer
[clang] [llvm] Clang: convert `__m64` intrinsics to unconditionally use SSE2 instead of MMX. (PR #96540)
quot;_mm_hadd_pi32", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_hadds_pi16", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_hsub_pi16", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_hsub_pi32", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_hsubs_pi16", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_maddubs_pi16", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_mulhrs_pi16", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_shuffle_pi8", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_sign_pi8", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_sign_pi16", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_sign_pi32", +"__m64", +( +"__m64", +"__m64", +), +target="ssse3", +) +fn( +"_mm_alignr_pi8", +"__m64", +( +"__m64", +"__m64", +"int", +), +imm_range=(0, 18), +target="ssse3", +) + # Generate a file full of wrapper functions for each of the above mmx # functions. # # If use_xmm is set, pass/return arguments as __m128 rather than of # __m64. def define_wrappers(prefix, use_xmm=True, header=False): - if header: -print('#pragma once') - - print('#include ') - if use_xmm and not header: -print('#define m128_to_m64(x) ((__m64)((__v2di)(x))[0])') -print('#define m64_to_m128(x) ((__m128)(__v2di){(long long)(__m64)(x), 0})') - - def fn(name, ret_ty, arg_tys, imm_range=None, target=None, condition=None): -if condition: - print(f'#if {condition}') -convert_ret = False -if use_xmm and ret_ty == '__m64': - ret_ty = '__v2di' - convert_ret = True - -if target: - attr = f'__attribute__((target("{target}"))) ' -else: - attr = '' - -if imm_range: - arg_tys = arg_tys[:-1] -def translate_type(t): - if use_xmm and t == '__m64': -return '__m128' - return t -def translate_arg(t, a): - if use_xmm and t == '__m64': -return f'm128_to_m64({a})' - return a - -arg_decl = ', '.join(f'{translate_type(v[1])} arg_{v[0]}' for v in enumerate(arg_tys)) or 'void' -call_args = ', '.join(translate_arg(v[1], f'arg_{v[0]}') for v in enumerate(arg_tys)) - -def create_fn(suffix, extraarg): - if header: -print(f'{ret_ty} {prefix}_{name}{suffix}({arg_decl});') - else: -print(f'{attr}{ret_ty} {prefix}_{name}{suffix}({arg_decl})') -if use_xmm and convert_ret: - print(f'{{ return ({ret_ty})m64_to_m128({name}({call_args}{extraarg})); }}') +if header: +print("#pragma once") + +print("#include ") +if use_xmm and not header: +print("#define m128_to_m64(x) ((__m64)((__v2di)(x))[0])") +print("#define m64_to_m128(x) ((__m128)(__v2di){(long long)(__m64)(x), 0})") + +def fn(name, ret_ty, arg_tys, imm_range=None, target=None, condition=None): +if condition: +print(f"#if {condition}") +convert_ret = False +if use_xmm and ret_ty == "__m64": +ret_ty = "__v2di" +convert_ret = True + +if target: +attr = f'__attribute__((target("{target}"))) ' else: - print(f'{{ return {name}({call_args}{extraarg}); }}') - -if imm_range: - for i in range(imm_range[0], imm_range[1]+1): -create_fn(f'_{i}', f', {i}') - else
[clang] [clang-format] Add SpacesInParensOption for filtering repeated parens (PR #77522)
https://github.com/owenca approved this pull request. https://github.com/llvm/llvm-project/pull/77522 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] Clang: convert `__m64` intrinsics to unconditionally use SSE2 instead of MMX. (PR #96540)
parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi8(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2); +return (__m64)(((__v8qu)__m1) + ((__v8qu)__m2)); } /// Adds each 16-bit integer element of the first 64-bit integer vector @@ -358,10 +384,10 @@ _mm_add_pi8(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the sums of both ///parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi16(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2); +return (__m64)(((__v4hu)__m1) + ((__v4hu)__m2)); } /// Adds each 32-bit integer element of the first 64-bit integer vector @@ -379,10 +405,10 @@ _mm_add_pi16(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [2 x i32]. /// \returns A 64-bit integer vector of [2 x i32] containing the sums of both ///parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi32(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2); +return (__m64)(((__v2su)__m1) + ((__v2su)__m2)); } /// Adds, with saturation, each 8-bit signed integer element of the first @@ -403,10 +429,10 @@ _mm_add_pi32(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [8 x i8]. /// \returns A 64-bit integer vector of [8 x i8] containing the saturated sums ///of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi8(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2); +return (__m64)__builtin_elementwise_add_sat((__v8qs)__m1, (__v8qs)__m2); } /// Adds, with saturation, each 16-bit signed integer element of the first @@ -427,10 +453,10 @@ _mm_adds_pi8(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the saturated sums ///of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi16(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2); +return (__m64)__builtin_elementwise_add_sat((__v4hi)__m1, (__v4hi)__m2); } /// Adds, with saturation, each 8-bit unsigned integer element of the first @@ -450,10 +476,10 @@ _mm_adds_pi16(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [8 x i8]. /// \returns A 64-bit integer vector of [8 x i8] containing the saturated ///unsigned sums of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu8(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2); +return (__m64)__builtin_elementwise_add_sat((__v8qu)__m1, (__v8qu)__m2); } /// Adds, with saturation, each 16-bit unsigned integer element of the first @@ -473,10 +499,10 @@ _mm_adds_pu8(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the saturated /// unsigned sums of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu16(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddusw(... [truncated] `` https://github.com/llvm/llvm-project/pull/96540 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] Clang: convert `__m64` intrinsics to unconditionally use SSE2 instead of MMX. (PR #96540)
containing the sums of both ///parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi8(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2); +return (__m64)(((__v8qu)__m1) + ((__v8qu)__m2)); } /// Adds each 16-bit integer element of the first 64-bit integer vector @@ -358,10 +384,10 @@ _mm_add_pi8(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the sums of both ///parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi16(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2); +return (__m64)(((__v4hu)__m1) + ((__v4hu)__m2)); } /// Adds each 32-bit integer element of the first 64-bit integer vector @@ -379,10 +405,10 @@ _mm_add_pi16(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [2 x i32]. /// \returns A 64-bit integer vector of [2 x i32] containing the sums of both ///parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi32(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2); +return (__m64)(((__v2su)__m1) + ((__v2su)__m2)); } /// Adds, with saturation, each 8-bit signed integer element of the first @@ -403,10 +429,10 @@ _mm_add_pi32(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [8 x i8]. /// \returns A 64-bit integer vector of [8 x i8] containing the saturated sums ///of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi8(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2); +return (__m64)__builtin_elementwise_add_sat((__v8qs)__m1, (__v8qs)__m2); } /// Adds, with saturation, each 16-bit signed integer element of the first @@ -427,10 +453,10 @@ _mm_adds_pi8(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the saturated sums ///of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi16(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2); +return (__m64)__builtin_elementwise_add_sat((__v4hi)__m1, (__v4hi)__m2); } /// Adds, with saturation, each 8-bit unsigned integer element of the first @@ -450,10 +476,10 @@ _mm_adds_pi16(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [8 x i8]. /// \returns A 64-bit integer vector of [8 x i8] containing the saturated ///unsigned sums of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu8(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2); +return (__m64)__builtin_elementwise_add_sat((__v8qu)__m1, (__v8qu)__m2); } /// Adds, with saturation, each 16-bit unsigned integer element of the first @@ -473,10 +499,10 @@ _mm_adds_pu8(__m64 __m1, __m64 __m2) ///A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the saturated /// unsigned sums of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS +static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu16(__m64 __m1, __m64 __m2) { -return (__m64)__builtin_ia32_paddusw(... [truncated] `` https://github.com/llvm/llvm-project/pull/96540 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[Lldb-commits] [lldb] [lldb] Support new libc++ __compressed_pair layout (PR #96538)
r +# children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter children=[ValueCheck(name="pointer")], ) self.assertNotEqual(valobj.child[0].unsigned, 0) valobj = self.expect_var_path( "up_str", type=self.make_expected_basic_string_ptr(), summary='"hello"', -#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter +# children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter children=[ValueCheck(name="pointer")], ) valobj = self.expect_var_path("up_user", type=self.make_expected_type("User")) self.assertRegex(valobj.summary, "^User @ 0x0*[1-9a-f][0-9a-f]+$") `` https://github.com/llvm/llvm-project/pull/96538 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb/DWARF] Remove parsing recursion when searching for definition DIEs (PR #96484)
dwblaikie wrote: > > This patch as-is is NFC? > > NFC_**I**_, I would say :) I don't think this should change the behavior in > any way, but it's pretty hard to guarantee that. Sure enough - I take any claim as a statement of intent/belief, not of something mathematically proved, etc. > > (no tests) but without this patch, the other delay-definition-die patch > > would have had a problem? > > Is it possible to add a test in this patch that would exercise the thing > > that would become buggy if the delay-definition-die patch were to be > > recommitted? > > Sort of. The situation is a bit complicated, because this touches pretty much > the same code as the other patch, so the other patch will not apply cleanly > or become magically correct. It's more like a building block that enables us > to rewrite the other patch in a more robust manner -- which brings us to the > second way this is complicated: It's not that the other patch was wrong on > its own. It was just very sensitive to the other bugs. Previously, if we > failed to unique the types correctly, we would "just" get the wrong type (or > maybe no type). With the patch, that situation would trigger a hard assert. > On its own, that might even be considered a good thing (easier to find bugs), > we're it not for the fact that this made the logic of the patch very hard to > follow. So, this is my attempt to make it more straight-forward. > > As for tests, it is possible to write a test which would reproduce a crash > with the original patch, but that test is contingent on the existence of > another bug. When I reverted that patch, I added a test (in > [de3f1b6](https://github.com/llvm/llvm-project/commit/de3f1b6d68ab8a0e827db84b328803857a4f60df)) > which triggered the crash. Having a bit of a hard time following this - is the test you added the same as the test you speculated is possible to write in the prior sentence? > However, now that that bug is fixed (#95905), it does not crash anymore. Now, > I happen to know of another bug (which happens to be triggered by the same > code, only compiled with type units), but the same thing will happen once > that bug is fixed. OK - I think I'm following. > Given all of that, I don't think another test case is needed with this > particular patch. It might be interesting for the final delay patch, if we > don't fix the type unit thing by then, but I think of this patch mostly as a > cleanup. Perhaps a separate commit could add another RUN line to the existing test you added to demonstrate the reason for the revert? Rather than worrying about which comes first (the type unit patch or the delay patch) But in any case, I /think/ I understand why this patch doesn't need a test (because this patch avoids the delay patch causing a crash (yeah, more complex than that because the patch doesn't apply cleanly over this one) and that crash already has a test committed) - thanks for the explanation. https://github.com/llvm/llvm-project/pull/96484 _______ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] [lldb] Support new libc++ __compressed_pair layout (PR #96538)
pected_type("int"), summary="nullptr", +#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter children=[ValueCheck(name="pointer")], ) self.assertEqual( @@ -59,6 +60,7 @@ def test_unique_ptr_variables(self): "up_int", type=self.make_expected_type("int"), summary="10", +#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter children=[ValueCheck(name="pointer")], ) self.assertNotEqual(valobj.child[0].unsigned, 0) @@ -67,6 +69,7 @@ def test_unique_ptr_variables(self): "up_int_ref", type=self.make_expected_type("int", qualifiers="&"), summary="10", +#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter children=[ValueCheck(name="pointer")], ) self.assertNotEqual(valobj.child[0].unsigned, 0) @@ -75,6 +78,7 @@ def test_unique_ptr_variables(self): "up_int_ref_ref", type=self.make_expected_type("int", qualifiers="&&"), summary="10", +#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter children=[ValueCheck(name="pointer")], ) self.assertNotEqual(valobj.child[0].unsigned, 0) @@ -83,7 +87,8 @@ def test_unique_ptr_variables(self): "up_str", type=self.make_expected_basic_string_ptr(), summary='"hello"', -children=[ValueCheck(name="pointer", summary='"hello"')], +#children=[ValueCheck(name="pointer"), ValueCheck(name="deleter")], # TODO: shouldn't be printing deleter +children=[ValueCheck(name="pointer")], ) valobj = self.expect_var_path("up_user", type=self.make_expected_type("User")) ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] Reapply PR/87550 (again) (PR #95571)
@@ -65,16 +58,67 @@ DAP::DAP() DAP::~DAP() = default; +void DAP::PopulateExceptionBreakpoints() { + llvm::call_once(initExceptionBreakpoints, [this]() { +exception_breakpoints = std::vector {}; + +if (lldb::SBDebugger::SupportsLanguage(lldb::eLanguageTypeC_plus_plus)) { + exception_breakpoints->emplace_back("cpp_catch", "C++ Catch", + lldb::eLanguageTypeC_plus_plus); + exception_breakpoints->emplace_back("cpp_throw", "C++ Throw", + lldb::eLanguageTypeC_plus_plus); +} +if (lldb::SBDebugger::SupportsLanguage(lldb::eLanguageTypeObjC)) { + exception_breakpoints->emplace_back("objc_catch", "Objective-C Catch", + lldb::eLanguageTypeObjC); + exception_breakpoints->emplace_back("objc_throw", "Objective-C Throw", + lldb::eLanguageTypeObjC); +} +if (lldb::SBDebugger::SupportsLanguage(lldb::eLanguageTypeSwift)) { + exception_breakpoints->emplace_back("swift_catch", "Swift Catch", + lldb::eLanguageTypeSwift); + exception_breakpoints->emplace_back("swift_throw", "Swift Throw", + lldb::eLanguageTypeSwift); +} +assert(exception_breakpoints.has_value() && "should have been initted"); +assert(!exception_breakpoints->empty() && "should not be empty"); + }); +} + ExceptionBreakpoint *DAP::GetExceptionBreakpoint(const std::string ) { - for (auto : exception_breakpoints) { + // PopulateExceptionBreakpoints() is called after g_dap.debugger is created + // in a request-initialize. + // + // But this GetExceptionBreakpoint() method may be called before attaching, in + // which case, we may not have populated the filter yet. + // + // We also cannot call PopulateExceptionBreakpoints() in DAP::DAP() because + // we need SBDebugger::Initialize() to have been called before this. + // + // So just calling PopulateExceptionBreakoints(),which does lazy-populating + // seems easiest. Two other options include: + // + call g_dap.PopulateExceptionBreakpoints() in lldb-dap.cpp::main() + //right after the call to SBDebugger::Initialize() + // + Just call PopulateExceptionBreakpoints() to get a fresh list everytime + //we query (a bit overkill since it's not likely to change?) + PopulateExceptionBreakpoints(); + assert(exception_breakpoints.has_value() && + "exception_breakpoints must have been populated"); oontvoo wrote: done - i've removed the unnecessary asserts(but keeping the method name to make it clearer that this function's job is to popualte the list) https://github.com/llvm/llvm-project/pull/95571 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] Reapply PR/87550 (again) (PR #95571)
ditional check on language to prevent potential check failed --- lldb/source/Symbol/TypeSystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/source/Symbol/TypeSystem.cpp b/lldb/source/Symbol/TypeSystem.cpp index 5d56d9b1829da..931ce1b0203a9 100644 --- a/lldb/source/Symbol/TypeSystem.cpp +++ b/lldb/source/Symbol/TypeSystem.cpp @@ -337,7 +337,7 @@ TypeSystemMap::GetTypeSystemForLanguage(lldb::LanguageType language, } bool TypeSystem::SupportsLanguageStatic(lldb::LanguageType language) { - if (language == eLanguageTypeUnknown) + if (language == eLanguageTypeUnknown || language >= eNumLanguageTypes) return false; LanguageSet languages = >From 04e6b5fd467233481edd2048b5dd96c7b9972e17 Mon Sep 17 00:00:00 2001 From: Vy Nguyen Date: Thu, 13 Jun 2024 15:00:09 -0400 Subject: [PATCH 3/5] check for empty vs un-initted --- lldb/tools/lldb-dap/DAP.cpp | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lldb/tools/lldb-dap/DAP.cpp b/lldb/tools/lldb-dap/DAP.cpp index 263e841b7254d..e4fb3181a2d99 100644 --- a/lldb/tools/lldb-dap/DAP.cpp +++ b/lldb/tools/lldb-dap/DAP.cpp @@ -60,7 +60,8 @@ DAP::~DAP() = default; void DAP::PopulateExceptionBreakpoints() { llvm::call_once(initExceptionBreakpoints, [this]() { -exception_breakpoints = {}; +exception_breakpoints = std::vector {}; + if (lldb::SBDebugger::SupportsLanguage(lldb::eLanguageTypeC_plus_plus)) { exception_breakpoints->emplace_back("cpp_catch", "C++ Catch", lldb::eLanguageTypeC_plus_plus); @@ -79,6 +80,8 @@ void DAP::PopulateExceptionBreakpoints() { exception_breakpoints->emplace_back("swift_throw", "Swift Throw", lldb::eLanguageTypeSwift); } +assert(exception_breakpoints.has_value() && "should have been initted"); +assert(!exception_breakpoints->empty() && "should not be empty"); }); } >From c0bd1d8271ccf6102f704f1898a9b3de7d9c026d Mon Sep 17 00:00:00 2001 From: Vy Nguyen Date: Fri, 21 Jun 2024 12:51:16 -0400 Subject: [PATCH 4/5] remove some assert since it's already done inside PopulateExceptionBreakpoint --- lldb/tools/lldb-dap/DAP.cpp | 4 1 file changed, 4 deletions(-) diff --git a/lldb/tools/lldb-dap/DAP.cpp b/lldb/tools/lldb-dap/DAP.cpp index e4fb3181a2d99..aebe0692da6bb 100644 --- a/lldb/tools/lldb-dap/DAP.cpp +++ b/lldb/tools/lldb-dap/DAP.cpp @@ -102,8 +102,6 @@ ExceptionBreakpoint *DAP::GetExceptionBreakpoint(const std::string ) { // + Just call PopulateExceptionBreakpoints() to get a fresh list everytime //we query (a bit overkill since it's not likely to change?) PopulateExceptionBreakpoints(); - assert(exception_breakpoints.has_value() && - "exception_breakpoints must have been populated"); for (auto : *exception_breakpoints) { if (bp.filter == filter) @@ -115,8 +113,6 @@ ExceptionBreakpoint *DAP::GetExceptionBreakpoint(const std::string ) { ExceptionBreakpoint *DAP::GetExceptionBreakpoint(const lldb::break_id_t bp_id) { // See comment in the other GetExceptionBreakpoint(). PopulateExceptionBreakpoints(); - assert(exception_breakpoints.has_value() && - "exception_breakpoints must have been populated"); for (auto : *exception_breakpoints) { if (bp.bp.GetID() == bp_id) >From 53df0d332e0e183c992e1f124b9156b51777ba03 Mon Sep 17 00:00:00 2001 From: Vy Nguyen Date: Mon, 24 Jun 2024 15:20:44 -0400 Subject: [PATCH 5/5] rename flag --- lldb/tools/lldb-dap/DAP.cpp | 3 +-- lldb/tools/lldb-dap/DAP.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lldb/tools/lldb-dap/DAP.cpp b/lldb/tools/lldb-dap/DAP.cpp index aebe0692da6bb..0196aed819f2b 100644 --- a/lldb/tools/lldb-dap/DAP.cpp +++ b/lldb/tools/lldb-dap/DAP.cpp @@ -59,7 +59,7 @@ DAP::DAP() DAP::~DAP() = default; void DAP::PopulateExceptionBreakpoints() { - llvm::call_once(initExceptionBreakpoints, [this]() { + llvm::call_once(init_exception_breakpoints_flag, [this]() { exception_breakpoints = std::vector {}; if (lldb::SBDebugger::SupportsLanguage(lldb::eLanguageTypeC_plus_plus)) { @@ -80,7 +80,6 @@ void DAP::PopulateExceptionBreakpoints() { exception_breakpoints->emplace_back("swift_throw", "Swift Throw", lldb::eLanguageTypeSwift); } -assert(exception_breakpoints.has_value() && "should have been initted"); assert(!exception_breakpoints->empty() && "should not be empty"); }); } diff --git a/lldb/tools/lldb-dap/DAP.h b/lldb/tools/lldb-dap/DAP.h index daa0d9f1aa7f0..37e57d58968d9 100644 --- a/lldb/tools/lldb-dap/DAP.h +++ b/lldb/tools/lldb-dap/DAP.h @@ -157,7 +157,7 @@ struct DAP { llvm::StringMap source_breakpoints; FunctionBreakpointMap function_breakpoints; std::optional> exception_breakpoints; - llvm::once_flag initExceptionBreakpoints; + llvm::once_flag init_exception_breakpoints_flag; std::vector init_commands; std::vector pre_run_commands; std::vector post_run_commands; ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[jenkinsci/oic-auth-plugin] f6f0ce: Bump org.openrewrite.recipe:rewrite-jenkins from 0...
Branch: refs/heads/master Home: https://github.com/jenkinsci/oic-auth-plugin Commit: f6f0ceaa1601a32516136386a60bc7dbcee8c3e2 https://github.com/jenkinsci/oic-auth-plugin/commit/f6f0ceaa1601a32516136386a60bc7dbcee8c3e2 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M pom.xml Log Message: --- Bump org.openrewrite.recipe:rewrite-jenkins from 0.7.0 to 0.8.1 Bumps [org.openrewrite.recipe:rewrite-jenkins](https://github.com/openrewrite/rewrite-jenkins) from 0.7.0 to 0.8.1. - [Release notes](https://github.com/openrewrite/rewrite-jenkins/releases) - [Commits](https://github.com/openrewrite/rewrite-jenkins/compare/v0.7.0...v0.8.1) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-jenkins dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/oic-auth-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/oic-auth-plugin/push/refs/heads/master/f3d35b-f6f0ce%40github.com.
[clang] [clang] [MinGW] Set a predefined __GXX_TYPEINFO_EQUALITY_INLINE=0 for… (PR #96062)
silverqx wrote: Thx https://github.com/llvm/llvm-project/pull/96062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[jenkinsci/oic-auth-plugin] f3d35b: Bump org.openrewrite.maven:rewrite-maven-plugin fr...
Branch: refs/heads/master Home: https://github.com/jenkinsci/oic-auth-plugin Commit: f3d35b40c148d691d1181a306df8cff67771612a https://github.com/jenkinsci/oic-auth-plugin/commit/f3d35b40c148d691d1181a306df8cff67771612a Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M pom.xml Log Message: --- Bump org.openrewrite.maven:rewrite-maven-plugin from 5.33.0 to 5.34.1 Bumps [org.openrewrite.maven:rewrite-maven-plugin](https://github.com/openrewrite/rewrite-maven-plugin) from 5.33.0 to 5.34.1. - [Release notes](https://github.com/openrewrite/rewrite-maven-plugin/releases) - [Commits](https://github.com/openrewrite/rewrite-maven-plugin/compare/v5.33.0...v5.34.1) --- updated-dependencies: - dependency-name: org.openrewrite.maven:rewrite-maven-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/oic-auth-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/oic-auth-plugin/push/refs/heads/master/579cce-f3d35b%40github.com.
[clang] [clang][OpenMP] Fix teams nesting of region check (PR #94806)
https://github.com/jyu2-git approved this pull request. LGTM. Thanks for fixing! https://github.com/llvm/llvm-project/pull/94806 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang] [MinGW] Set a predefined __GXX_TYPEINFO_EQUALITY_INLINE=0 for… (PR #96062)
mstorsjo wrote: > Do you already know in which Clang versions this will be fixed? Also thx for > fixing this The fix will be in the upcoming 19.x which is going to release candidates in August and might be released in September/October. (Although, downstreams may pick it up and backport the patch to earlier releases - msys2 does this if the fix is relevant to them.) https://github.com/llvm/llvm-project/pull/96062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[jenkinsci/dingtalk-plugin] d44a18: chore(deps): bump io.jenkins.tools.bom:bom-2.426.x
Branch: refs/heads/dependabot/maven/io.jenkins.tools.bom-bom-2.426.x-3143.v347db_7c6db_6e Home: https://github.com/jenkinsci/dingtalk-plugin Commit: d44a18d961d203d592b87704451550d5513e91f8 https://github.com/jenkinsci/dingtalk-plugin/commit/d44a18d961d203d592b87704451550d5513e91f8 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M pom.xml Log Message: --- chore(deps): bump io.jenkins.tools.bom:bom-2.426.x Bumps [io.jenkins.tools.bom:bom-2.426.x](https://github.com/jenkinsci/bom) from 2884.vc36b_64ce114a_ to 3143.v347db_7c6db_6e. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.426.x dependency-type: direct:production ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/dingtalk-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/dingtalk-plugin/push/refs/heads/dependabot/maven/io.jenkins.tools.bom-bom-2.426.x-3143.v347db_7c6db_6e/00-d44a18%40github.com.
[clang] 2ae0905 - [C23] Claim we do not conform to N2819
Author: Aaron Ballman Date: 2024-06-24T15:09:20-04:00 New Revision: 2ae09052477e1a966afbc5482d88585f95694c53 URL: https://github.com/llvm/llvm-project/commit/2ae09052477e1a966afbc5482d88585f95694c53 DIFF: https://github.com/llvm/llvm-project/commit/2ae09052477e1a966afbc5482d88585f95694c53.diff LOG: [C23] Claim we do not conform to N2819 This paper clarified the lifetime of compound literal objects in odd scopes, such as use at function prototype scope. We do not currently implement this paper, as the new test demonstrates. Added: clang/test/C/C2x/n2819.c Modified: clang/www/c_status.html Removed: diff --git a/clang/test/C/C2x/n2819.c b/clang/test/C/C2x/n2819.c new file mode 100644 index 0..c428fbba80245 --- /dev/null +++ b/clang/test/C/C2x/n2819.c @@ -0,0 +1,57 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 3 +// RUN: %clang_cc1 -triple=x86_64 -emit-llvm -o - -std=c23 %s | FileCheck %s + +/* WG14 N2819: No + * Disambiguate the storage class of some compound literals + */ + +int *escaped; +// CHECK-LABEL: define dso_local i32 @f( +// CHECK-SAME: ptr noundef [[PTR:%.*]]) #[[ATTR0:[0-9]+]] { +// CHECK-NEXT: entry: +// CHECK-NEXT:[[PTR_ADDR:%.*]] = alloca ptr, align 8 +// CHECK-NEXT:store ptr [[PTR]], ptr [[PTR_ADDR]], align 8 +// CHECK-NEXT:[[TMP0:%.*]] = load ptr, ptr [[PTR_ADDR]], align 8 +// CHECK-NEXT:store ptr [[TMP0]], ptr @escaped, align 8 +// CHECK-NEXT:ret i32 1 +// +int f(int *ptr) { escaped = ptr; return 1; } + +// CHECK-LABEL: define dso_local i32 @g( +// CHECK-SAME: ptr noundef [[PARA:%.*]]) #[[ATTR0]] { +// CHECK-NEXT: entry: +// CHECK-NEXT:[[PARA_ADDR:%.*]] = alloca ptr, align 8 +// CHECK-NEXT:store ptr [[PARA]], ptr [[PARA_ADDR]], align 8 +// CHECK-NEXT:[[CALL:%.*]] = call i32 @f(ptr noundef @.compoundliteral) +// CHECK-NEXT:[[TMP0:%.*]] = zext i32 [[CALL]] to i64 +// CHECK-NEXT:ret i32 0 +// +// FIXME: notice the we are using the global .compoundliteral object, not +// allocating a new object on each call to g(). That's what was clarified by +// N2819. +int g(char *para [f(( int [27]) { 0 })]) { + return 0; +} + +// CHECK-LABEL: define dso_local i32 @main( +// CHECK-SAME: ) #[[ATTR0]] { +// CHECK-NEXT: entry: +// CHECK-NEXT:[[RETVAL:%.*]] = alloca i32, align 4 +// CHECK-NEXT:store i32 0, ptr [[RETVAL]], align 4 +// CHECK-NEXT:[[CALL:%.*]] = call i32 @g(ptr noundef null) +// CHECK-NEXT:[[TMP0:%.*]] = load ptr, ptr @escaped, align 8 +// CHECK-NEXT:store i32 12, ptr [[TMP0]], align 4 +// CHECK-NEXT:[[TMP1:%.*]] = load ptr, ptr @escaped, align 8 +// CHECK-NEXT:[[TMP2:%.*]] = load i32, ptr [[TMP1]], align 4 +// CHECK-NEXT:ret i32 [[TMP2]] +// +int main() { + // Sets 'escaped' to the address of the array created by the compound literal. + g(nullptr); + + // The lifetime of that object should have ended when g() returned, so this + // should be a use-after-free. + *escaped = 12; + return *escaped; +} + diff --git a/clang/www/c_status.html b/clang/www/c_status.html index 434c9e20011d4..25656c0304da1 100644 --- a/clang/www/c_status.html +++ b/clang/www/c_status.html @@ -1025,7 +1025,7 @@ C23 implementation status Disambiguate the storage class of some compound literals https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2819.pdf;>N2819 - Unknown + No Add annotations for unreachable control flow v2 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[Lldb-commits] [lldb] [lldb/DWARF] Remove parsing recursion when searching for definition DIEs (PR #96484)
labath wrote: > This patch as-is is NFC? NFC**I**, I would say :) I don't think this should change the behavior in any way, but it's pretty hard to guarantee that. > (no tests) but without this patch, the other delay-definition-die patch would > have had a problem? > > Is it possible to add a test in this patch that would exercise the thing that > would become buggy if the delay-definition-die patch were to be recommitted? Sort of. The situation is a bit complicated, because this touches pretty much the same code as the other patch, so the other patch will not apply cleanly or become magically correct. It's more like a building block that enables us to rewrite the other patch in a more robust manner -- which brings us to the second way this is complicated: It's not that the other patch was wrong on its own. It was just very sensitive to the other bugs. Previously, if we failed to unique the types correctly, we would "just" get the wrong type (or maybe no type). With the patch, that situation would trigger a hard assert. On its own, that might even be considered a good thing (easier to find bugs), we're it not for the fact that this made the logic of the patch very hard to follow. So, this is my attempt to make it more straight-forward. As for tests, it is possible to write a test which would reproduce a crash with the original patch, but that test is contingent on the existence of another bug. When I reverted that patch, I added a test (in de3f1b6d68ab8a0e827db84b328803857a4f60df) which triggered the crash. However, now that that bug is fixed (#95905), it does not crash anymore. Now, I happen to know of another bug (which happens to be triggered by the same code, only compiled with type units), but the same thing will happen once that bug is fixed. Given all of that, I don't think another test case is needed with this particular patch. It might be interesting for the final delay patch, if we don't fix the type unit thing by then, but I think of this patch mostly as a cleanup. https://github.com/llvm/llvm-project/pull/96484 _______ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[clang] [compiler-rt] [llvm] [PAC][AArch64] Support init/fini array signing (PR #96478)
kovdan01 wrote: > Can we have LLVM IR test as well? I've added llvm/test/CodeGen/AArch64/ptrauth-init-fini.ll, thanks for suggestion. https://github.com/llvm/llvm-project/pull/96478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[jenkinsci/active-choices-plugin] 770172: Bump org.seleniumhq.selenium:selenium-java from 4....
Branch: refs/heads/dependabot/maven/org.seleniumhq.selenium-selenium-java-4.22.0 Home: https://github.com/jenkinsci/active-choices-plugin Commit: 7701729b2ae3bdf7e85547ddcfe70ac332f18166 https://github.com/jenkinsci/active-choices-plugin/commit/7701729b2ae3bdf7e85547ddcfe70ac332f18166 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M pom.xml Log Message: --- Bump org.seleniumhq.selenium:selenium-java from 4.21.0 to 4.22.0 Bumps [org.seleniumhq.selenium:selenium-java](https://github.com/SeleniumHQ/selenium) from 4.21.0 to 4.22.0. - [Release notes](https://github.com/SeleniumHQ/selenium/releases) - [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.21.0...selenium-4.22.0) --- updated-dependencies: - dependency-name: org.seleniumhq.selenium:selenium-java dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/active-choices-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/active-choices-plugin/push/refs/heads/dependabot/maven/org.seleniumhq.selenium-selenium-java-4.22.0/00-770172%40github.com.
[jenkinsci/active-choices-plugin] d3cd66: Bump io.github.bonigarcia:webdrivermanager from 5....
Branch: refs/heads/dependabot/maven/io.github.bonigarcia-webdrivermanager-5.9.1 Home: https://github.com/jenkinsci/active-choices-plugin Commit: d3cd66eb486d0cdf1b1176863eec15fb7c8bb65c https://github.com/jenkinsci/active-choices-plugin/commit/d3cd66eb486d0cdf1b1176863eec15fb7c8bb65c Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M pom.xml Log Message: --- Bump io.github.bonigarcia:webdrivermanager from 5.8.0 to 5.9.1 Bumps [io.github.bonigarcia:webdrivermanager](https://github.com/bonigarcia/webdrivermanager) from 5.8.0 to 5.9.1. - [Release notes](https://github.com/bonigarcia/webdrivermanager/releases) - [Changelog](https://github.com/bonigarcia/webdrivermanager/blob/master/CHANGELOG.md) - [Commits](https://github.com/bonigarcia/webdrivermanager/compare/webdrivermanager-5.8.0...webdrivermanager-5.9.1) --- updated-dependencies: - dependency-name: io.github.bonigarcia:webdrivermanager dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/active-choices-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/active-choices-plugin/push/refs/heads/dependabot/maven/io.github.bonigarcia-webdrivermanager-5.9.1/00-d3cd66%40github.com.
[jenkinsci/active-choices-plugin] 4b8466: Bump org.jenkins-ci.plugins:scriptler
Branch: refs/heads/dependabot/maven/org.jenkins-ci.plugins-scriptler-363.vd97ef616cb_f9 Home: https://github.com/jenkinsci/active-choices-plugin Commit: 4b8466ce5522d9dbcff73edcd177d1c7be0ef6f0 https://github.com/jenkinsci/active-choices-plugin/commit/4b8466ce5522d9dbcff73edcd177d1c7be0ef6f0 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M pom.xml Log Message: --- Bump org.jenkins-ci.plugins:scriptler Bumps [org.jenkins-ci.plugins:scriptler](https://github.com/jenkinsci/scriptler-plugin) from 348.v5d461e205da_a_ to 363.vd97ef616cb_f9. - [Release notes](https://github.com/jenkinsci/scriptler-plugin/releases) - [Changelog](https://github.com/jenkinsci/scriptler-plugin/blob/main/CHANGELOG.md) - [Commits](https://github.com/jenkinsci/scriptler-plugin/commits) --- updated-dependencies: - dependency-name: org.jenkins-ci.plugins:scriptler dependency-type: direct:production ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/active-choices-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/active-choices-plugin/push/refs/heads/dependabot/maven/org.jenkins-ci.plugins-scriptler-363.vd97ef616cb_f9/00-4b8466%40github.com.
[jenkinsci/active-choices-plugin] d92bc7: Bump io.jenkins.tools.bom:bom-2.426.x
Branch: refs/heads/dependabot/maven/io.jenkins.tools.bom-bom-2.426.x-3143.v347db_7c6db_6e Home: https://github.com/jenkinsci/active-choices-plugin Commit: d92bc76072412324e00e3b193133098a3c2ef42e https://github.com/jenkinsci/active-choices-plugin/commit/d92bc76072412324e00e3b193133098a3c2ef42e Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M pom.xml Log Message: --- Bump io.jenkins.tools.bom:bom-2.426.x Bumps [io.jenkins.tools.bom:bom-2.426.x](https://github.com/jenkinsci/bom) from 3135.v6d6c1f6b_3572 to 3143.v347db_7c6db_6e. - [Release notes](https://github.com/jenkinsci/bom/releases) - [Commits](https://github.com/jenkinsci/bom/commits) --- updated-dependencies: - dependency-name: io.jenkins.tools.bom:bom-2.426.x dependency-type: direct:production ... Signed-off-by: dependabot[bot] To unsubscribe from these emails, change your notification settings at https://github.com/jenkinsci/active-choices-plugin/settings/notifications -- You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-commits/jenkinsci/active-choices-plugin/push/refs/heads/dependabot/maven/io.jenkins.tools.bom-bom-2.426.x-3143.v347db_7c6db_6e/00-d92bc7%40github.com.
[clang] Update Clang extension criteria (PR #96532)
https://github.com/AaronBallman closed https://github.com/llvm/llvm-project/pull/96532 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [compiler-rt] [llvm] [PAC][AArch64] Support init/fini array signing (PR #96478)
4 // Name length is always 4 ("GNU") .long end - begin // Data length @@ -123,15 +123,15 @@ begin: .long 0xc001 // Type: GNU_PROPERTY_AARCH64_FEATURE_PAUTH .long 16 // Data size .quad 0x1002 // PAuth ABI platform - .quad 128 // PAuth ABI version + .quad 256 // PAuth ABI version .p2align 3// Align to 8 byte for 64 bit end: -# RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x1002-128.s -o gnu-0x1002-128.o -# RUN: llvm-readelf --notes gnu-0x1002-128.o | \ -# RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x1002 (llvm_linux)" -DVERSION="0x80 (unknown)" %s -# RUN: llvm-readobj --notes gnu-0x1002-128.o | \ -# RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x1002 (llvm_linux)" -DVERSION="0x80 (unknown)" %s +# RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x1002-256.s -o gnu-0x1002-256.o +# RUN: llvm-readelf --notes gnu-0x1002-256.o | \ +# RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x1002 (llvm_linux)" -DVERSION="0x100 (unknown)" %s +# RUN: llvm-readobj --notes gnu-0x1002-256.o | \ +# RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x1002 (llvm_linux)" -DVERSION="0x100 (unknown)" %s #--- gnu-short.s .section ".note.gnu.property", "a" diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index c696934a959b2..e53db899c5f41 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -5216,8 +5216,10 @@ static bool printAArch64PAuthABICoreInfo(raw_ostream , uint32_t DataSize, Flags[AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_VPTRTYPEDISCR] = "VTPtrTypeDiscrimination"; Flags[AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_INITFINI] = "InitFini"; +Flags[AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_INITFINIADDRDISC] = +"InitFiniAddressDiscrimination"; -static_assert(AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_INITFINI == +static_assert(AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_INITFINIADDRDISC == AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_LAST, "Update when new enum items are defined"); ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] d6a3bd1 - Update Clang extension criteria (#96532)
Author: Aaron Ballman Date: 2024-06-24T15:06:11-04:00 New Revision: d6a3bd1325c5c54ef59e8a612451757c86186355 URL: https://github.com/llvm/llvm-project/commit/d6a3bd1325c5c54ef59e8a612451757c86186355 DIFF: https://github.com/llvm/llvm-project/commit/d6a3bd1325c5c54ef59e8a612451757c86186355.diff LOG: Update Clang extension criteria (#96532) This updates Clang's extension criteria to explicitly mention impacts on other projects within the monorepo. These changes were discussed in the following RFC: https://discourse.llvm.org/t/rfc-require-discussion-of-impact-to-monorepo-stakeholders-when-adding-new-clang-extensions/79613 Added: Modified: clang/www/get_involved.html Removed: diff --git a/clang/www/get_involved.html b/clang/www/get_involved.html index 3fc688837d0bc..99fa03abb6234 100755 --- a/clang/www/get_involved.html +++ b/clang/www/get_involved.html @@ -126,6 +126,12 @@ Contributing Extensions to Clang extension is not broken by ongoing maintenance in Clang. The test suite should be complete enough that another compiler vendor could conceivably validate their implementation of the feature against it. + + A support story for other impacted projects within the monorepo: If the + extension can impact other parts of the project (libc++, lldb, compiler-rt, + etc), the proposal needs to document the impact for these projects to fully + support the extension and what level of support is expected. The impacted + project communities need to agree with that plan. ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [compiler-rt] [llvm] [PAC][AArch64] Support init/fini array signing (PR #96478)
turns, !PointerAuthAuthTraps, PointerAuthVTPtrAddressDiscrimination, !PointerAuthVTPtrTypeDiscrimination, PointerAuthInitFini, !PointerAuthInitFiniAddressDiscrimination)" %s # RUN: llvm-readobj --notes gnu-0x1002-85.o | \ # RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x1002 (llvm_linux)" \ -# RUN: -DVERSION="0x55 (PointerAuthIntrinsics, !PointerAuthCalls, PointerAuthReturns, !PointerAuthAuthTraps, PointerAuthVTPtrAddressDiscrimination, !PointerAuthVTPtrTypeDiscrimination, PointerAuthInitFini)" %s +# RUN: -DVERSION="0x55 (PointerAuthIntrinsics, !PointerAuthCalls, PointerAuthReturns, !PointerAuthAuthTraps, PointerAuthVTPtrAddressDiscrimination, !PointerAuthVTPtrTypeDiscrimination, PointerAuthInitFini, !PointerAuthInitFiniAddressDiscrimination)" %s -#--- gnu-0x1002-128.s +#--- gnu-0x1002-256.s .section ".note.gnu.property", "a" .long 4 // Name length is always 4 ("GNU") .long end - begin // Data length @@ -123,15 +123,15 @@ begin: .long 0xc001 // Type: GNU_PROPERTY_AARCH64_FEATURE_PAUTH .long 16 // Data size .quad 0x1002 // PAuth ABI platform - .quad 128 // PAuth ABI version + .quad 256 // PAuth ABI version .p2align 3// Align to 8 byte for 64 bit end: -# RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x1002-128.s -o gnu-0x1002-128.o -# RUN: llvm-readelf --notes gnu-0x1002-128.o | \ -# RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x1002 (llvm_linux)" -DVERSION="0x80 (unknown)" %s -# RUN: llvm-readobj --notes gnu-0x1002-128.o | \ -# RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x1002 (llvm_linux)" -DVERSION="0x80 (unknown)" %s +# RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x1002-256.s -o gnu-0x1002-256.o +# RUN: llvm-readelf --notes gnu-0x1002-256.o | \ +# RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x1002 (llvm_linux)" -DVERSION="0x100 (unknown)" %s +# RUN: llvm-readobj --notes gnu-0x1002-256.o | \ +# RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x1002 (llvm_linux)" -DVERSION="0x100 (unknown)" %s #--- gnu-short.s .section ".note.gnu.property", "a" diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index c696934a959b2..e53db899c5f41 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -5216,8 +5216,10 @@ static bool printAArch64PAuthABICoreInfo(raw_ostream , uint32_t DataSize, Flags[AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_VPTRTYPEDISCR] = "VTPtrTypeDiscrimination"; Flags[AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_INITFINI] = "InitFini"; +Flags[AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_INITFINIADDRDISC] = +"InitFiniAddressDiscrimination"; -static_assert(AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_INITFINI == +static_assert(AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_INITFINIADDRDISC == AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_LAST, "Update when new enum items are defined"); ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang] [MinGW] Set a predefined __GXX_TYPEINFO_EQUALITY_INLINE=0 for… (PR #96062)
silverqx wrote: Do you already know in which Clang versions this will be fixed? https://github.com/llvm/llvm-project/pull/96062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[Qemu-commits] [qemu/qemu] 9bf212: hw/s390x/ccw: Make s390_ccw_get_dev_info() return ...
Branch: refs/heads/staging Home: https://github.com/qemu/qemu Commit: 9bf21277c4edabaef3346e2cb566040331fbc6e3 https://github.com/qemu/qemu/commit/9bf21277c4edabaef3346e2cb566040331fbc6e3 Author: Cédric Le Goater Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M hw/s390x/s390-ccw.c Log Message: --- hw/s390x/ccw: Make s390_ccw_get_dev_info() return a bool Since s390_ccw_get_dev_info() takes an 'Error **' argument, best practices suggest to return a bool. See the qapi/error.h Rules section. While at it, modify the call in s390_ccw_realize(). Signed-off-by: Cédric Le Goater Reviewed-by: Zhenzhong Duan Reviewed-by: Anthony Krowiak Reviewed-by: Eric Farman Reviewed-by: Thomas Huth Message-ID: <20240522170107.289532-2-...@redhat.com> Signed-off-by: Thomas Huth Commit: 4a6a90f30fa3b2973bbb6faf985466b4338f903f https://github.com/qemu/qemu/commit/4a6a90f30fa3b2973bbb6faf985466b4338f903f Author: Cédric Le Goater Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M hw/s390x/ccw-device.c M hw/s390x/ccw-device.h M hw/s390x/s390-ccw.c Log Message: --- s390x/css: Make CCWDeviceClass::realize return bool Since the realize() handler of CCWDeviceClass takes an 'Error **' argument, best practices suggest to return a bool. See the api/error.h Rules section. While at it, modify the call in s390_ccw_realize(). Signed-off-by: Cédric Le Goater Reviewed-by: Zhenzhong Duan Reviewed-by: Anthony Krowiak Reviewed-by: Eric Farman Reviewed-by: Thomas Huth Message-ID: <20240522170107.289532-3-...@redhat.com> Signed-off-by: Thomas Huth Commit: 19a1740fd3eb31ffc5b73ed101f1e3847c546631 https://github.com/qemu/qemu/commit/19a1740fd3eb31ffc5b73ed101f1e3847c546631 Author: Cédric Le Goater Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M hw/s390x/s390-ccw.c Log Message: --- hw/s390x/ccw: Remove local Error variable from s390_ccw_realize() Use the 'Error **errp' argument of s390_ccw_realize() instead and remove the error_propagate() call. Signed-off-by: Cédric Le Goater Reviewed-by: Zhenzhong Duan Reviewed-by: Anthony Krowiak Reviewed-by: Eric Farman Reviewed-by: Thomas Huth Message-ID: <20240522170107.289532-4-...@redhat.com> Signed-off-by: Thomas Huth Commit: 45f4218784ce20b2c303dd07b1fa3aa6838eca73 https://github.com/qemu/qemu/commit/45f4218784ce20b2c303dd07b1fa3aa6838eca73 Author: Cédric Le Goater Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M hw/s390x/s390-ccw.c M hw/vfio/ccw.c M include/hw/s390x/s390-ccw.h Log Message: --- s390x/css: Make S390CCWDeviceClass::realize return bool Since the realize() handler of S390CCWDeviceClass takes an 'Error **' argument, best practices suggest to return a bool. See the api/error.h Rules section. While at it, modify the call in vfio_ccw_realize(). Signed-off-by: Cédric Le Goater Reviewed-by: Zhenzhong Duan Reviewed-by: Anthony Krowiak Reviewed-by: Eric Farman Reviewed-by: Thomas Huth Message-ID: <20240522170107.289532-5-...@redhat.com> Signed-off-by: Thomas Huth Commit: 1aeebbd6213af1aef09b4906c487f9079a5d8947 https://github.com/qemu/qemu/commit/1aeebbd6213af1aef09b4906c487f9079a5d8947 Author: Cédric Le Goater Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M hw/vfio/ccw.c Log Message: --- vfio/ccw: Use the 'Error **errp' argument of vfio_ccw_realize() The local error variable is kept for vfio_ccw_register_irq_notifier() because it is not considered as a failing condition. We will change how error reporting is done in following changes. Remove the error_propagate() call. Cc: Zhenzhong Duan Signed-off-by: Cédric Le Goater Reviewed-by: Zhenzhong Duan Reviewed-by: Anthony Krowiak Reviewed-by: Eric Farman Reviewed-by: Thomas Huth Message-ID: <20240522170107.289532-6-...@redhat.com> Signed-off-by: Thomas Huth Commit: fa8053841efebab7fcdc76252b953f8dafe7a343 https://github.com/qemu/qemu/commit/fa8053841efebab7fcdc76252b953f8dafe7a343 Author: Zhenzhong Duan Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M hw/vfio/ccw.c Log Message: --- vfio/ccw: Fix the missed unrealize() call in error path When get name failed, we should call unrealize() so that vfio_ccw_realize() is self contained. Fixes: 909a6254eda ("vfio/ccw: Make vfio cdev pre-openable by passing a file handle") Signed-off-by: Zhenzhong Duan Reviewed-by: Cédric Le Goater Reviewed-by: Eric Farman Reviewed-by: Thomas Huth Message-ID: <20240522170107.289532-7-...@redhat.com> Signed-off-by: Thomas Huth Commit: d48a54042f25d6f1fe442e3a524b1f2b7afd6d8e https://github.com/qemu/qemu/commit/d48a54042f25d6f1fe442e3a524b1f2b7afd6d8e Author: Cédric Le Goater Date: 2024-06-24 (Mon, 24 Jun 2024) Changed paths: M hw/vfio/ap.c M hw/vfio/ccw.c Log Message: --- vfio/{ap, ccw}: Use warn_report_err() for IRQ
[clang-tools-extra] [clang-tidy] Fix assert in performance-unnecessary-copy-init. (PR #96506)
https://github.com/PiotrZSL approved this pull request. https://github.com/llvm/llvm-project/pull/96506 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Update Clang extension criteria (PR #96532)
https://github.com/nikic approved this pull request. https://github.com/llvm/llvm-project/pull/96532 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Update Clang extension criteria (PR #96532)
https://github.com/MaskRay approved this pull request. https://github.com/llvm/llvm-project/pull/96532 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[llvm-branch-commits] [mlir] [mlir][Transforms][NFC] Dialect Conversion: Move argument materialization logic (PR #96329)
https://github.com/ftynse approved this pull request. https://github.com/llvm/llvm-project/pull/96329 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[clang] [libclang/python] Refactor enum usage (PR #95608)
Endilll wrote: Also worth pinging @linux4life798 https://github.com/llvm/llvm-project/pull/95608 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [mlir] [polly] [IR][NFC] Update IRBuilder to use InsertPosition (PR #96497)
nikic wrote: Looks like using InsertPosition in IRBuilder has some overhead: https://llvm-compile-time-tracker.com/compare.php?from=317277e4f961edf13132914a58a26408db4ab0aa=6481dc57612671ebe77fe9c34214fba94e1b3b27=instructions:u So it might make sense to keep some explicit overloads for IRBuilder (not sure which ones are hot though). https://github.com/llvm/llvm-project/pull/96497 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[Lldb-commits] [lldb] [lldb] Fix failing TestFind(Ranges)InMemory.py tests. (PR #96511)
https://github.com/JDevlieghere closed https://github.com/llvm/llvm-project/pull/96511 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] 33a9c57 - [lldb] Fix failing TestFind(Ranges)InMemory.py tests. (#96511)
Author: Miro Bucko Date: 2024-06-24T11:38:05-07:00 New Revision: 33a9c57b89c3ea901a057c3fcc9c9160eaf5a625 URL: https://github.com/llvm/llvm-project/commit/33a9c57b89c3ea901a057c3fcc9c9160eaf5a625 DIFF: https://github.com/llvm/llvm-project/commit/33a9c57b89c3ea901a057c3fcc9c9160eaf5a625.diff LOG: [lldb] Fix failing TestFind(Ranges)InMemory.py tests. (#96511) This is to unblock #95007. Will investigate why the assertion is failing on some arch. Added: Modified: lldb/test/API/python_api/find_in_memory/address_ranges_helper.py Removed: diff --git a/lldb/test/API/python_api/find_in_memory/address_ranges_helper.py b/lldb/test/API/python_api/find_in_memory/address_ranges_helper.py index 0544100f97b29..2c11fba80766f 100644 --- a/lldb/test/API/python_api/find_in_memory/address_ranges_helper.py +++ b/lldb/test/API/python_api/find_in_memory/address_ranges_helper.py @@ -35,7 +35,6 @@ def GetRangeFromAddrValue(test_base, addr): ) test_base.assertTrue(region.IsReadable()) -test_base.assertFalse(region.IsExecutable()) address_start = lldb.SBAddress(region.GetRegionBase(), test_base.target) stack_size = region.GetRegionEnd() - region.GetRegionBase() ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[clang] Add flag to opt out of wasm-opt (PR #95208)
sbc100 wrote: I wonder if there is some why to avoiding adding this new option globally like this and instead limit it in scope the wasm target in some way? https://github.com/llvm/llvm-project/pull/95208 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Update Clang extension criteria (PR #96532)
https://github.com/JDevlieghere approved this pull request. https://github.com/llvm/llvm-project/pull/96532 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Update Clang extension criteria (PR #96532)
llvmbot wrote: @llvm/pr-subscribers-clang Author: Aaron Ballman (AaronBallman) Changes This updates Clang's extension criteria to explicitly mention impacts on other projects within the monorepo. These changes were discussed in the following RFC: https://discourse.llvm.org/t/rfc-require-discussion-of-impact-to-monorepo-stakeholders-when-adding-new-clang-extensions/79613 --- Full diff: https://github.com/llvm/llvm-project/pull/96532.diff 1 Files Affected: - (modified) clang/www/get_involved.html (+6) ``diff diff --git a/clang/www/get_involved.html b/clang/www/get_involved.html index 3fc688837d0bc..99fa03abb6234 100755 --- a/clang/www/get_involved.html +++ b/clang/www/get_involved.html @@ -126,6 +126,12 @@ Contributing Extensions to Clang extension is not broken by ongoing maintenance in Clang. The test suite should be complete enough that another compiler vendor could conceivably validate their implementation of the feature against it. + + A support story for other impacted projects within the monorepo: If the + extension can impact other parts of the project (libc++, lldb, compiler-rt, + etc), the proposal needs to document the impact for these projects to fully + support the extension and what level of support is expected. The impacted + project communities need to agree with that plan. `` https://github.com/llvm/llvm-project/pull/96532 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Update Clang extension criteria (PR #96532)
https://github.com/AaronBallman created https://github.com/llvm/llvm-project/pull/96532 This updates Clang's extension criteria to explicitly mention impacts on other projects within the monorepo. These changes were discussed in the following RFC: https://discourse.llvm.org/t/rfc-require-discussion-of-impact-to-monorepo-stakeholders-when-adding-new-clang-extensions/79613 >From a9663aca9fd5454eef2ea36284c6c690d1e44a12 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Mon, 24 Jun 2024 14:25:39 -0400 Subject: [PATCH] Update Clang extension criteria This updates Clang's extension criteria to explicitly mention impacts on other projects within the monorepo. These changes were discussed in the following RFC: https://discourse.llvm.org/t/rfc-require-discussion-of-impact-to-monorepo-stakeholders-when-adding-new-clang-extensions/79613 --- clang/www/get_involved.html | 6 ++ 1 file changed, 6 insertions(+) diff --git a/clang/www/get_involved.html b/clang/www/get_involved.html index 3fc688837d0bc..99fa03abb6234 100755 --- a/clang/www/get_involved.html +++ b/clang/www/get_involved.html @@ -126,6 +126,12 @@ Contributing Extensions to Clang extension is not broken by ongoing maintenance in Clang. The test suite should be complete enough that another compiler vendor could conceivably validate their implementation of the feature against it. + + A support story for other impacted projects within the monorepo: If the + extension can impact other parts of the project (libc++, lldb, compiler-rt, + etc), the proposal needs to document the impact for these projects to fully + support the extension and what level of support is expected. The impacted + project communities need to agree with that plan. ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang][CGRecordLayout] Remove dependency on isZeroSize (PR #96422)
efriedma-quic wrote: (Please move out of "draft" when you think this is ready.) https://github.com/llvm/llvm-project/pull/96422 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Add flag to opt out of wasm-opt (PR #95208)
github-actions[bot] wrote: @mh4ck-Thales Congratulations on having your first Pull Request (PR) merged into the LLVM Project! Your changes will be combined with recent changes from other authors, then tested by our [build bots](https://lab.llvm.org/buildbot/). If there is a problem with a build, you may receive a report in an email or a comment on this PR. Please check whether problems have been caused by your change specifically, as the builds can include changes from many authors. It is not uncommon for your change to be included in a build that fails due to someone else's changes, or infrastructure issues. How to do this, and the rest of the post-merge process, is covered in detail [here](https://llvm.org/docs/MyFirstTypoFix.html#myfirsttypofix-issues-after-landing-your-pr). If your change does cause a problem, it may be reverted, or you can revert it yourself. This is a normal part of [LLVM development](https://llvm.org/docs/DeveloperPolicy.html#patch-reversion-policy). You can fix your changes and open a new PR to merge them again. If you don't get any reports, no action is required from you. Your changes are working as expected, well done! https://github.com/llvm/llvm-project/pull/95208 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Add flag to opt out of wasm-opt (PR #95208)
https://github.com/sunfishcode closed https://github.com/llvm/llvm-project/pull/95208 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] 962d7ac - Add flag to opt out of wasm-opt (#95208)
ngList OptArgs; -OptArgs.push_back(Output.getFilename()); -OptArgs.push_back(Args.MakeArgString(llvm::Twine("-O") + OOpt)); -OptArgs.push_back("-o"); -OptArgs.push_back(Output.getFilename()); -C.addCommand(std::make_unique( -JA, *this, ResponseFileSupport::AtFileCurCP(), WasmOpt, OptArgs, -Inputs, Output)); + CmdArgs.push_back("--keep-section=target_features"); +} + +C.addCommand(std::make_unique(JA, *this, + ResponseFileSupport::AtFileCurCP(), + Linker, CmdArgs, Inputs, Output)); + +if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { + if (!WasmOptPath.empty()) { +StringRef OOpt = "s"; +if (A->getOption().matches(options::OPT_O4) || +A->getOption().matches(options::OPT_Ofast)) + OOpt = "4"; +else if (A->getOption().matches(options::OPT_O0)) + OOpt = "0"; +else if (A->getOption().matches(options::OPT_O)) + OOpt = A->getValue(); + +if (OOpt != "0") { + const char *WasmOpt = Args.MakeArgString(WasmOptPath); + ArgStringList OptArgs; + OptArgs.push_back(Output.getFilename()); + OptArgs.push_back(Args.MakeArgString(llvm::Twine("-O") + OOpt)); + OptArgs.push_back("-o"); + OptArgs.push_back(Output.getFilename()); + C.addCommand(std::make_unique( + JA, *this, ResponseFileSupport::AtFileCurCP(), WasmOpt, OptArgs, + Inputs, Output)); +} } } } ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [flang] [Flang][Driver] Add -print-resource-dir command line flag to emit Flang's resource directory (PR #90886)
mjklemm wrote: Yeah, go ahead and revert. I can create a new PR from it just print the resource dir. https://github.com/llvm/llvm-project/pull/90886 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang] inherit GD to let the codegen add kcfi type for ifunc (PR #96400)
efriedma-quic wrote: Please fix buildbot failure (it looks like clang/test/CodeGen/ifunc.c is failing). https://github.com/llvm/llvm-project/pull/96400 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang] use const references for function parameters in operator== and operator!= overloads in Redeclarable.h (PR #92963)
https://github.com/a-tarasyuk updated https://github.com/llvm/llvm-project/pull/92963 >From c94e7cbe04c0f23094a7f2a3d2a7cbd103750301 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Tue, 21 May 2024 22:56:06 +0300 Subject: [PATCH] [Clang] use const references for function parameters in operator== and operator!= overloads in Redeclarable.h --- clang/include/clang/AST/Redeclarable.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/include/clang/AST/Redeclarable.h b/clang/include/clang/AST/Redeclarable.h index 091bb886f2d49..74ccd74ed60d6 100644 --- a/clang/include/clang/AST/Redeclarable.h +++ b/clang/include/clang/AST/Redeclarable.h @@ -281,10 +281,10 @@ class Redeclarable { return tmp; } -friend bool operator==(redecl_iterator x, redecl_iterator y) { +friend bool operator==(const redecl_iterator , const redecl_iterator ) { return x.Current == y.Current; } -friend bool operator!=(redecl_iterator x, redecl_iterator y) { +friend bool operator!=(const redecl_iterator , const redecl_iterator ) { return x.Current != y.Current; } }; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang] improve RewriteModernObjC code quality by using const reference for function parameters (PR #93252)
https://github.com/a-tarasyuk updated https://github.com/llvm/llvm-project/pull/93252 >From d160eb6c869d41ac64ff27442d2f8d964beb3ebf Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Fri, 24 May 2024 01:39:35 +0300 Subject: [PATCH] [Clang] improve RewriteModernObjC code quality by using const reference for function parameters --- .../Frontend/Rewrite/RewriteModernObjC.cpp| 37 +-- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp b/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp index 6ae955a2380b7..764cdc6f07cf6 100644 --- a/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp +++ b/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp @@ -465,15 +465,15 @@ namespace { std::string SynthesizeByrefCopyDestroyHelper(VarDecl *VD, int flag); std::string SynthesizeBlockHelperFuncs(BlockExpr *CE, int i, - StringRef funcName, std::string Tag); -std::string SynthesizeBlockFunc(BlockExpr *CE, int i, - StringRef funcName, std::string Tag); -std::string SynthesizeBlockImpl(BlockExpr *CE, -std::string Tag, std::string Desc); -std::string SynthesizeBlockDescriptor(std::string DescTag, - std::string ImplTag, - int i, StringRef funcName, - unsigned hasCopy); + StringRef funcName, + const std::string ); +std::string SynthesizeBlockFunc(BlockExpr *CE, int i, StringRef funcName, +const std::string ); +std::string SynthesizeBlockImpl(BlockExpr *CE, const std::string , +const std::string ); +std::string SynthesizeBlockDescriptor(const std::string , + const std::string , int i, + StringRef funcName, unsigned hasCopy); Stmt *SynthesizeBlockCall(CallExpr *Exp, const Expr* BlockExp); void SynthesizeBlockLiterals(SourceLocation FunLocStart, StringRef FunName); @@ -4037,7 +4037,7 @@ static bool HasLocalVariableExternalStorage(ValueDecl *VD) { std::string RewriteModernObjC::SynthesizeBlockFunc(BlockExpr *CE, int i, StringRef funcName, - std::string Tag) { + const std::string ) { const FunctionType *AFT = CE->getFunctionType(); QualType RT = AFT->getReturnType(); std::string StructRef = "struct " + Tag; @@ -4131,9 +4131,8 @@ std::string RewriteModernObjC::SynthesizeBlockFunc(BlockExpr *CE, int i, return S; } -std::string RewriteModernObjC::SynthesizeBlockHelperFuncs(BlockExpr *CE, int i, - StringRef funcName, - std::string Tag) { +std::string RewriteModernObjC::SynthesizeBlockHelperFuncs( +BlockExpr *CE, int i, StringRef funcName, const std::string ) { std::string StructRef = "struct " + Tag; std::string S = "static void __"; @@ -4175,8 +4174,9 @@ std::string RewriteModernObjC::SynthesizeBlockHelperFuncs(BlockExpr *CE, int i, return S; } -std::string RewriteModernObjC::SynthesizeBlockImpl(BlockExpr *CE, std::string Tag, - std::string Desc) { +std::string RewriteModernObjC::SynthesizeBlockImpl(BlockExpr *CE, + const std::string , + const std::string ) { std::string S = "\nstruct " + Tag; std::string Constructor = " " + Tag; @@ -4290,10 +4290,9 @@ std::string RewriteModernObjC::SynthesizeBlockImpl(BlockExpr *CE, std::string Ta return S; } -std::string RewriteModernObjC::SynthesizeBlockDescriptor(std::string DescTag, - std::string ImplTag, int i, - StringRef FunName, - unsigned hasCopy) { +std::string RewriteModernObjC::SynthesizeBlockDescriptor( +const std::string , const std::string , int i, +StringRef FunName, unsigned hasCopy) { std::string S = "\nstatic struct " + DescTag; S += " {\n size_t reserved;\n"; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[llvm-branch-commits] [sanitizer] Rename DEFINE_REAL_PTHREAD_FUNCTIONS (PR #96527)
https://github.com/fmayer approved this pull request. https://github.com/llvm/llvm-project/pull/96527 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[clang] [llvm] [PowerPC] Diagnose musttail instead of crash inside backend (PR #93267)
@@ -5751,8 +5751,29 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo , if (llvm::CallInst *Call = dyn_cast(CI)) { if (TargetDecl && TargetDecl->hasAttr()) Call->setTailCallKind(llvm::CallInst::TCK_NoTail); -else if (IsMustTail) +else if (IsMustTail) { + if (getTarget().getTriple().isPPC()) { +if (getTarget().getTriple().isOSAIX()) + CGM.getDiags().Report(Loc, diag::err_aix_musttail_unsupported); +else if (!getTarget().hasFeature("pcrelative-memops")) { + if (getTarget().hasFeature("longcall")) +CGM.getDiags().Report(Loc, diag::err_ppc_impossible_musttail) << 0; + else if (Call->isIndirectCall()) +CGM.getDiags().Report(Loc, diag::err_ppc_impossible_musttail) << 1; + else if (isa_and_nonnull(TargetDecl) && + cast(TargetDecl)->isWeak()) efriedma-quic wrote: This isn't the right way to check the definition is "weak", I think. In addition to explicit weak attributes, you need some check for inline functions (both C and C++, which have different semantics). Not sure what the CodeGen API for this is off the top of my head. I think you also need to check for weak definitions in MustTailCallUndefinedGlobals. https://github.com/llvm/llvm-project/pull/93267 _______ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [ParserHLSL] Attempt to parse HLSL annotations on Field Decls. (PR #96346)
https://github.com/python3kgae approved this pull request. https://github.com/llvm/llvm-project/pull/96346 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [ObjC][CodeGen] Assume a for-in loop is in bounds and cannot overflow (PR #94885)
rjmccall wrote: I don't usually do that for people, sorry. https://github.com/llvm/llvm-project/pull/94885 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [libclang/python] Refactor enum usage (PR #95608)
DeinAlptraum wrote: @Endilll done with the TokenKind refactoring, so this is ready to go from my side. Regarding reviewers, can you recommend any others? Since I assume I'll open a couple more PRs for the Python bindings after this https://github.com/llvm/llvm-project/pull/95608 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang] fix cast failures by adjusting the resolution of record declaration contexts to handle semantic and lexical distinctions (PR #96228)
https://github.com/a-tarasyuk edited https://github.com/llvm/llvm-project/pull/96228 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[llvm-branch-commits] [llvm] AMDGPU: Add a subtarget feature for fine-grained remote memory support (PR #96442)
@@ -788,6 +788,14 @@ def FeatureFlatAtomicFaddF32Inst "Has flat_atomic_add_f32 instruction" >; +def FeatureAgentScopeFineGrainedRemoteMemoryAtomics + : SubtargetFeature<"agent-scope-fine-grained-remote-memory-atomics", + "HasAgentScopeFineGrainedRemoteMemoryAtomics", + "true", + "Agent (device) scoped atomic operations not directly supported by " yxsamliu wrote: I feel the description is a little bit confusing, at least for me. how about "Agent (device) scoped atomic operations, excluding those directly supported by PCIe (i.e., integer atomic add, exchange, and compare-and-swap), are functional for allocations in host or peer PCIe device memory." https://github.com/llvm/llvm-project/pull/96442 _______ 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] [sanitizer] Rename DEFINE_REAL_PTHREAD_FUNCTIONS (PR #96527)
https://github.com/vitalybuka edited https://github.com/llvm/llvm-project/pull/96527 ___ 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] [sanitizer] Rename DEFINE_REAL_PTHREAD_FUNCTIONS (PR #96527)
gnals. ScopedBlockSignals block(nullptr); void *th; - real_pthread_create(, nullptr, func, arg); + internal_pthread_create(, nullptr, func, arg); return th; } void internal_join_thread(void *th) { - if (_pthread_join) -real_pthread_join(th, nullptr); + if (_pthread_join) +internal_pthread_join(th, nullptr); } # else void *internal_start_thread(void *(*func)(void *), void *arg) { return 0; } diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_posix.h index c5811dffea94b..14617e4771bec 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_posix.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_posix.h @@ -74,21 +74,21 @@ int internal_sysctlbyname(const char *sname, void *oldp, uptr *oldlenp, // These functions call appropriate pthread_ functions directly, bypassing // the interceptor. They are weak and may not be present in some tools. SANITIZER_WEAK_ATTRIBUTE -int real_pthread_create(void *th, void *attr, void *(*callback)(void *), -void *param); +int internal_pthread_create(void *th, void *attr, void *(*callback)(void *), +void *param); SANITIZER_WEAK_ATTRIBUTE -int real_pthread_join(void *th, void **ret); - -#define DEFINE_REAL_PTHREAD_FUNCTIONS \ - namespace __sanitizer { \ - int real_pthread_create(void *th, void *attr, void *(*callback)(void *), \ - void *param) { \ -return REAL(pthread_create)(th, attr, callback, param); \ - } \ - int real_pthread_join(void *th, void **ret) { \ -return REAL(pthread_join(th, ret)); \ - } \ - } // namespace __sanitizer +int internal_pthread_join(void *th, void **ret); + +# define DEFINE_INTERNAL_PTHREAD_FUNCTIONS \ +namespace __sanitizer { \ +int internal_pthread_create(void *th, void *attr, \ +void *(*callback)(void *), void *param) { \ + return REAL(pthread_create)(th, attr, callback, param); \ +} \ +int internal_pthread_join(void *th, void **ret) { \ + return REAL(pthread_join(th, ret)); \ +} \ +} // namespace __sanitizer int internal_pthread_attr_getstack(void *attr, void **addr, uptr *size); diff --git a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp index 151693112158b..034ae3d322b56 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp +++ b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp @@ -1088,14 +1088,14 @@ TSAN_INTERCEPTOR(int, pthread_join, void *th, void **ret) { return res; } -// DEFINE_REAL_PTHREAD_FUNCTIONS +// DEFINE_INTERNAL_PTHREAD_FUNCTIONS namespace __sanitizer { -int real_pthread_create(void *th, void *attr, void *(*callback)(void *), -void *param) { +int internal_pthread_create(void *th, void *attr, void *(*callback)(void *), +void *param) { ScopedIgnoreInterceptors ignore; return REAL(pthread_create)(th, attr, callback, param); } -int real_pthread_join(void *th, void **ret) { +int internal_pthread_join(void *th, void **ret) { ScopedIgnoreInterceptors ignore; return REAL(pthread_join(th, ret)); } `` https://github.com/llvm/llvm-project/pull/96527 ___________ 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] [sanitizer] Rename DEFINE_REAL_PTHREAD_FUNCTIONS (PR #96527)
https://github.com/vitalybuka created https://github.com/llvm/llvm-project/pull/96527 We use REAL() calls in interceptors, but DEFINE_REAL_PTHREAD_FUNCTIONS has nothing to do with them and only used for internal maintenance threads. ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[clang] [PAC][clang][Driver] Add signed GOT flag (PR #96160)
https://github.com/kovdan01 milestoned https://github.com/llvm/llvm-project/pull/96160 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [PAC][ELF][AArch64] Encode signed GOT flag in PAuth core info (PR #96159)
https://github.com/kovdan01 milestoned https://github.com/llvm/llvm-project/pull/96159 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [llvm][misexpect] Update MisExpect to use provenance tracking metadata (PR #86610)
ilovepi wrote: Ping. Now that the metadata patches have landed, I think we can start discussing using that in MisExpect. https://github.com/llvm/llvm-project/pull/86610 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[Lldb-commits] [lldb] [llvm] [LLDB][Minidump] Add 64b support to LLDB's minidump file builder. (PR #95312)
https://github.com/clayborg closed https://github.com/llvm/llvm-project/pull/95312 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[llvm-branch-commits] [clang][misexpect] Add support to clang for profitable annotation diagnostics (PR #96525)
ocation::CreateFromArgsImpl( } } + if(Args.hasArg(OPT_fdiagnostics_missing_annotations)) +Res.getCodeGenOpts().MissingAnnotations = true; + if (LangOpts.CUDA) { // During CUDA device-side compilation, the aux triple is the // triple used for host compilation. diff --git a/clang/test/Profile/Inputs/missing-annotation.proftext b/clang/test/Profile/Inputs/missing-annotation.proftext new file mode 100644 index 0..0bf7158702e28 --- /dev/null +++ b/clang/test/Profile/Inputs/missing-annotation.proftext @@ -0,0 +1,18 @@ +bar +# Func Hash: +11262309464 +# Num Counters: +2 +# Counter Values: +20 +1 + +fizz +# Func Hash: +11262309464 +# Num Counters: +2 +# Counter Values: +20 +1 + diff --git a/clang/test/Profile/missing-annotation.c b/clang/test/Profile/missing-annotation.c new file mode 100644 index 0..5cf2a87a94c8d --- /dev/null +++ b/clang/test/Profile/missing-annotation.c @@ -0,0 +1,35 @@ +/// Test that missing annotation diagnostics are suggested for hot branches + +// note test diagnostics are issued when profiling data mis-matches annotations +// RUN: llvm-profdata merge %S/Inputs/missing-annotation.proftext -o %t.profdata +// RUN: %clang %s -O2 -c -S -emit-llvm -o - -fprofile-instr-use=%t.profdata -Xclang -verify=exact -fdiagnostics-missing-annotations -debug-info-kind=line-tables-only -Rpass=missing-annotations + +// foo-no-diagnostics + +int foo(int); +int baz(int); +int buzz(); + +const int inner_loop = 100; +const int outer_loop = 2000; +int bar() { + int rando = buzz(); + int x = 0; + if (rando % (outer_loop * inner_loop) == 0) { // exact-remark {{Extremely hot condition. Consider adding llvm.expect intrinsic}} +x = baz(rando); + } else { +x = foo(50); + } + return x; +} + +int fizz() { + int rando = buzz(); + int x = 0; + if (rando % (outer_loop * inner_loop) == 0) { // exact-remark {{Extremely hot condition. Consider adding llvm.expect intrinsic}} +x = baz(rando); + } else { +x = foo(50); + } + return x; +} diff --git a/llvm/lib/Transforms/Utils/MisExpect.cpp b/llvm/lib/Transforms/Utils/MisExpect.cpp index 1d88f867971e8..1becd32cde968 100644 --- a/llvm/lib/Transforms/Utils/MisExpect.cpp +++ b/llvm/lib/Transforms/Utils/MisExpect.cpp @@ -108,6 +108,8 @@ uint64_t getScaledThreshold(const ProfDataSummary ) { bool isAnnotationDiagEnabled(LLVMContext ) { LLVM_DEBUG(dbgs() << "PGOMissingAnnotations = " << PGOMissingAnnotations << "\n"); + LLVM_DEBUG(dbgs() << "getAnnotationDiagsRequested = " << Ctx.getAnnotationDiagsRequested() +<< "\n"); return PGOMissingAnnotations || Ctx.getAnnotationDiagsRequested(); } @@ -304,10 +306,8 @@ void checkMissingAnnotations(Instruction , if (IsFrontendInstr) { verifyMissingAnnotations(I, ExistingWeights); } else { -SmallVector ExpectedWeights; -if (extractBranchWeights(I, ExpectedWeights)) - return; -verifyMissingAnnotations(I, ExistingWeights); +if (!hasBranchWeightOrigin(I)) + verifyMissingAnnotations(I, ExistingWeights); } } `` https://github.com/llvm/llvm-project/pull/96525 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[Lldb-commits] [lldb] a27164c - [LLDB][Minidump] Add 64b support to LLDB's minidump file builder. (#95312)
ontents, remember where it is so we don't have // to duplicate it in the exception data. - std::map m_tid_to_reg_ctx; + std::unordered_map + m_tid_to_reg_ctx; + lldb::FileUP m_core_file; }; #endif // LLDB_SOURCE_PLUGINS_OBJECTFILE_MINIDUMP_MINIDUMPFILEBUILDER_H diff --git a/lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp b/lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp index 1af5d99f0b160..3668c37c5191d 100644 --- a/lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp +++ b/lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp @@ -15,8 +15,10 @@ #include "lldb/Core/Section.h" #include "lldb/Target/Process.h" #include "lldb/Utility/LLDBLog.h" +#include "lldb/Utility/Log.h" #include "llvm/Support/FileSystem.h" +#include using namespace lldb; using namespace lldb_private; @@ -65,56 +67,70 @@ bool ObjectFileMinidump::SaveCore(const lldb::ProcessSP _sp, if (!process_sp) return false; - MinidumpFileBuilder builder; - - Target = process_sp->GetTarget(); + llvm::Expected maybe_core_file = FileSystem::Instance().Open( + outfile, File::eOpenOptionWriteOnly | File::eOpenOptionCanCreate); + if (!maybe_core_file) { +error = maybe_core_file.takeError(); +return false; + } + MinidumpFileBuilder builder(std::move(maybe_core_file.get()), process_sp); Log *log = GetLog(LLDBLog::Object); - error = builder.AddSystemInfo(target.GetArchitecture().GetTriple()); + error = builder.AddHeaderAndCalculateDirectories(); if (error.Fail()) { -LLDB_LOG(log, "AddSystemInfo failed: %s", error.AsCString()); +LLDB_LOGF(log, "AddHeaderAndCalculateDirectories failed: %s", + error.AsCString()); +return false; + }; + error = builder.AddSystemInfo(); + if (error.Fail()) { +LLDB_LOGF(log, "AddSystemInfo failed: %s", error.AsCString()); return false; } - error = builder.AddModuleList(target); + error = builder.AddModuleList(); if (error.Fail()) { -LLDB_LOG(log, "AddModuleList failed: %s", error.AsCString()); +LLDB_LOGF(log, "AddModuleList failed: %s", error.AsCString()); return false; } - - builder.AddMiscInfo(process_sp); - - error = builder.AddThreadList(process_sp); + error = builder.AddMiscInfo(); if (error.Fail()) { -LLDB_LOG(log, "AddThreadList failed: %s", error.AsCString()); +LLDB_LOGF(log, "AddMiscInfo failed: %s", error.AsCString()); return false; } - // Add any exceptions but only if there are any in any threads. - builder.AddExceptions(process_sp); + error = builder.AddThreadList(); + if (error.Fail()) { +LLDB_LOGF(log, "AddThreadList failed: %s", error.AsCString()); +return false; + } - error = builder.AddMemoryList(process_sp, core_style); + error = builder.AddLinuxFileStreams(); if (error.Fail()) { -LLDB_LOG(log, "AddMemoryList failed: %s", error.AsCString()); +LLDB_LOGF(log, "AddLinuxFileStreams failed: %s", error.AsCString()); return false; } - if (target.GetArchitecture().GetTriple().getOS() == - llvm::Triple::OSType::Linux) { -builder.AddLinuxFileStreams(process_sp); + // Add any exceptions but only if there are any in any threads. + error = builder.AddExceptions(); + if (error.Fail()) { +LLDB_LOGF(log, "AddExceptions failed: %s", error.AsCString()); +return false; } - llvm::Expected maybe_core_file = FileSystem::Instance().Open( - outfile, File::eOpenOptionWriteOnly | File::eOpenOptionCanCreate); - if (!maybe_core_file) { -error = maybe_core_file.takeError(); + // Note: add memory HAS to be the last thing we do. It can overflow into 64b + // land and many RVA's only support 32b + error = builder.AddMemoryList(core_style); + if (error.Fail()) { +LLDB_LOGF(log, "AddMemoryList failed: %s", error.AsCString()); return false; } - lldb::FileUP core_file = std::move(maybe_core_file.get()); - error = builder.Dump(core_file); - if (error.Fail()) + error = builder.DumpFile(); + if (error.Fail()) { +LLDB_LOGF(log, "DumpFile failed: %s", error.AsCString()); return false; + } return true; } diff --git a/llvm/include/llvm/BinaryFormat/Minidump.h b/llvm/include/llvm/BinaryFormat/Minidump.h index bc303929498d0..9669303252615 100644 --- a/llvm/include/llvm/BinaryFormat/Minidump.h +++ b/llvm/include/llvm/BinaryFormat/Minidump.h @@ -70,6 +70,11 @@ struct MemoryDescriptor { }; static_assert(sizeof(MemoryDescriptor) == 16); +struct MemoryDescriptor_64 { + support::ulittle64_t StartOfMemoryRange; + support::ulittle64_t DataSize; +}; + struct MemoryInfoListHeader { support::ulittle32_t SizeOfHeader; support::ulittle32_t SizeOfEntry; ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[llvm-branch-commits] [misexpect] Support diagnostics from frontend profile data (PR #96524)
llvmbot wrote: @llvm/pr-subscribers-pgo @llvm/pr-subscribers-llvm-transforms Author: Paul Kirth (ilovepi) Changes --- Full diff: https://github.com/llvm/llvm-project/pull/96524.diff 3 Files Affected: - (modified) llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp (+18) - (modified) llvm/lib/Transforms/Utils/MisExpect.cpp (+1-2) - (modified) llvm/test/Transforms/PGOProfile/missing-annotation.ll (+1-1) ``diff diff --git a/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp b/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp index 17c5a4ee1fd0b..4075749d0d574 100644 --- a/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp +++ b/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp @@ -369,9 +369,21 @@ static bool lowerExpectIntrinsic(Function ) { if (BranchInst *BI = dyn_cast(BB.getTerminator())) { if (handleBranchExpect(*BI)) ExpectIntrinsicsHandled++; + else { +SmallVector Weights; +if (extractBranchWeights(*BI, Weights)) + misexpect::checkMissingAnnotations(*BI, Weights, + /*IsFrontendInstr=*/false); + } } else if (SwitchInst *SI = dyn_cast(BB.getTerminator())) { if (handleSwitchExpect(*SI)) ExpectIntrinsicsHandled++; + else { +SmallVector Weights; +if (extractBranchWeights(*SI, Weights)) + misexpect::checkMissingAnnotations(*SI, Weights, + /*isFrontend=*/false); + } } // Remove llvm.expect intrinsics. Iterate backwards in order @@ -383,6 +395,12 @@ static bool lowerExpectIntrinsic(Function ) { if (SelectInst *SI = dyn_cast()) { if (handleBrSelExpect(*SI)) ExpectIntrinsicsHandled++; + else { +SmallVector Weights; +if (extractBranchWeights(*SI, Weights)) + misexpect::checkMissingAnnotations(*SI, Weights, + /*isFrontend=*/false); + } } continue; } diff --git a/llvm/lib/Transforms/Utils/MisExpect.cpp b/llvm/lib/Transforms/Utils/MisExpect.cpp index 933d9a146533d..1d88f867971e8 100644 --- a/llvm/lib/Transforms/Utils/MisExpect.cpp +++ b/llvm/lib/Transforms/Utils/MisExpect.cpp @@ -302,8 +302,7 @@ void checkMissingAnnotations(Instruction , return; if (IsFrontendInstr) { -// TODO: Frontend checking will have to be thought through, since we need -// to do the check on branches that don't have expect intrinsics +verifyMissingAnnotations(I, ExistingWeights); } else { SmallVector ExpectedWeights; if (extractBranchWeights(I, ExpectedWeights)) diff --git a/llvm/test/Transforms/PGOProfile/missing-annotation.ll b/llvm/test/Transforms/PGOProfile/missing-annotation.ll index 6b52302449900..03b0b3bb5cc54 100644 --- a/llvm/test/Transforms/PGOProfile/missing-annotation.ll +++ b/llvm/test/Transforms/PGOProfile/missing-annotation.ll @@ -3,7 +3,7 @@ ; RUN: llvm-profdata merge %S/Inputs/misexpect-branch-correct.proftext -o %t.profdata -; RUN: opt < %s -passes="function(lower-expect),pgo-instr-use" -pgo-test-profile-file=%t.profdata -pgo-missing-annotations -pass-remarks=missing-annotation -S 2>&1 | FileCheck %s --check-prefix=MISSING_ANNOTATION +; RUN: opt < %s -passes="function(lower-expect),pgo-instr-use" -pgo-test-profile-file=%t.profdata -pgo-missing-annotations -pass-remarks=missing-annotations -S 2>&1 | FileCheck %s --check-prefix=MISSING_ANNOTATION ; MISSING_ANNOTATION: remark: misexpect-branch.c:22:0: Extremely hot condition. Consider adding llvm.expect intrinsic `` https://github.com/llvm/llvm-project/pull/96524 ___ 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][misexpect] Add support to clang for profitable annotation diagnostics (PR #96525)
https://github.com/ilovepi created https://github.com/llvm/llvm-project/pull/96525 Add basic plumbing to clang so that diagnostics can be surfaced to users. ___ 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][misexpect] Enable diagnostics for profitable llvm.expect annotations (PR #96523)
ule.flags = !{!3, !4} +!llvm.ident = !{!5} + +!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 10.0.0 (trunk c20270bfffc9d6965219de339d66c61e9fe7d82d)", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2, nameTableKind: None) +!1 = !DIFile(filename: "", directory: ".") +!2 = !{} +!3 = !{i32 2, !"Debug Info Version", i32 3} +!4 = !{i32 1, !"wchar_size", i32 4} +!5 = !{!"clang version 10.0.0 (trunk c20270bfffc9d6965219de339d66c61e9fe7d82d)"} +!6 = distinct !DISubprogram(name: "bar", scope: !7, file: !7, line: 19, type: !8, scopeLine: 19, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) +!7 = !DIFile(filename: "misexpect-branch.c", directory: ".") +!8 = !DISubroutineType(types: !2) +!9 = !DILocation(line: 20, scope: !6) +!10 = !{!11, !11, i64 0} +!11 = !{!"int", !12, i64 0} +!12 = !{!"omnipotent char", !13, i64 0} +!13 = !{!"Simple C/C++ TBAA"} +!14 = !DILocation(line: 21, scope: !6) +!15 = !DILocation(line: 22, scope: !6) +!16 = !DILocation(line: 23, scope: !6) +!17 = !DILocation(line: 24, scope: !6) +!18 = !DILocation(line: 25, scope: !6) +!19 = !DILocation(line: 27, scope: !6) +!20 = !DILocation(line: 28, scope: !6) `` https://github.com/llvm/llvm-project/pull/96523 ___ 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] [misexpect] Support diagnostics from frontend profile data (PR #96524)
https://github.com/ilovepi created https://github.com/llvm/llvm-project/pull/96524 None ___ 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][misexpect] Enable diagnostics for profitable llvm.expect annotations (PR #96523)
https://github.com/ilovepi created https://github.com/llvm/llvm-project/pull/96523 Issue #56502 describes an enhancement related to the use of llvm.expect. The request is for a diagnostic mode that can identify branches that would benefit from the use of llvm.expect based on the branch_weights assigned from a PGO or sample profile. To support identify branches(or switches) that would benefit from the use of an llvm.expect intrinsic, we follow a similar checking pattern to that used in MisExpect, but only in cases where MisExpect diagnostics would not be used (i.e., when an llvm.expect intrinsic has already been used). ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[clang] [TBAA] Emit int TBAA metadata on FP math libcalls (PR #96025)
@@ -707,7 +707,36 @@ static RValue emitLibraryCall(CodeGenFunction , const FunctionDecl *FD, const CallExpr *E, llvm::Constant *calleeValue) { CodeGenFunction::CGFPOptionsRAII FPOptsRAII(CGF, E); CGCallee callee = CGCallee::forDirect(calleeValue, GlobalDecl(FD)); - return CGF.EmitCall(E->getCallee()->getType(), callee, E, ReturnValueSlot()); + RValue Call = + CGF.EmitCall(E->getCallee()->getType(), callee, E, ReturnValueSlot()); + + // Check the supported intrinsic. + if (unsigned BuiltinID = FD->getBuiltinID()) { +auto IntrinsicID = [&]() -> unsigned { + switch (BuiltinID) { + case Builtin::BIexpf: + case Builtin::BI__builtin_expf: + case Builtin::BI__builtin_expf128: +return true; + } + // TODO: support more FP math libcalls + return false; +}(); + +const llvm::Triple = CGF.getTarget().getTriple(); +// Restrict to Linux because not all targets set errno, such as MacOS. efriedma-quic wrote: LangOpts.MathErrno https://github.com/llvm/llvm-project/pull/96025 _______ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [TBAA] Emit int TBAA metadata on FP math libcalls (PR #96025)
@@ -707,7 +707,34 @@ static RValue emitLibraryCall(CodeGenFunction , const FunctionDecl *FD, const CallExpr *E, llvm::Constant *calleeValue) { CodeGenFunction::CGFPOptionsRAII FPOptsRAII(CGF, E); CGCallee callee = CGCallee::forDirect(calleeValue, GlobalDecl(FD)); - return CGF.EmitCall(E->getCallee()->getType(), callee, E, ReturnValueSlot()); + RValue Call = + CGF.EmitCall(E->getCallee()->getType(), callee, E, ReturnValueSlot()); + + // Check the supported intrinsic. + if (unsigned BuiltinID = FD->getBuiltinID()) { +auto IntrinsicID = [&]() -> unsigned { + switch (BuiltinID) { + case Builtin::BIexpf: + case Builtin::BI__builtin_expf: + case Builtin::BI__builtin_expf128: +return true; + } + // TODO: support more FP math libcalls + return false; +}(); + +if (IntrinsicID) { + llvm::MDBuilder MDHelper(CGF.getLLVMContext()); + MDNode *RootMD = CGF.CGM.getTBAARoot(); + // Emit "int" TBAA metadata on FP math libcalls. + MDNode *AliasType = MDHelper.createTBAANode("int", RootMD); efriedma-quic wrote: Looked it up; should be `CGM.getTBAATypeInfo(Context.IntTy)`? https://github.com/llvm/llvm-project/pull/96025 ___________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[llvm-branch-commits] [llvm] AMDGPU: Add a subtarget feature for fine-grained remote memory support (PR #96442)
arsenm wrote: > need some tests This does nothing as it is. The real use patches have thousands of tests https://github.com/llvm/llvm-project/pull/96442 ___ 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] AMDGPU: Add subtarget feature for global atomic fadd denormal support (PR #96443)
rampitec wrote: It is worse than that. It behaves differently depending on where atomic is executed. There is no single answer if this instruction supports denorms or not. https://github.com/llvm/llvm-project/pull/96443 ___ 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] AMDGPU: Add subtarget feature for memory atomic fadd f64 (PR #96444)
rampitec wrote: Use it in a predicate when defining pseudos? https://github.com/llvm/llvm-project/pull/96444 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[clang] [llvm] [mlir] [polly] [IR][NFC] Update IRBuilder to use InsertPosition (PR #96497)
357.285 [3503/57/2047] Building CXX object examples/Kaleidoscope/Chapter5/CMakeFiles/Kaleidoscope-Ch5.dir/toy.cpp.o 357.903 [3503/56/2048] Building CXX object tools/clang/tools/clang-linker-wrapper/CMakeFiles/clang-linker-wrapper.dir/ClangLinkerWrapper.cpp.o 358.194 [3503/55/2049] Building CXX object tools/clang/tools/clang-repl/CMakeFiles/clang-repl.dir/ClangRepl.cpp.o 358.250 [3503/54/2050] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/obj.FIRBuilder.dir/Runtime/Support.cpp.o 358.444 [3503/53/2051] Building CXX object tools/clang/lib/Interpreter/CMakeFiles/obj.clangInterpreter.dir/Interpreter.cpp.o 358.538 [3503/52/2052] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/obj.clangCodeGen.dir/ObjectFilePCHContainerOperations.cpp.o 358.638 [3503/51/2053] Building CXX object tools/flang/lib/Optimizer/Dialect/CMakeFiles/obj.FIRDialect.dir/FirAliasTagOpInterface.cpp.o 359.447 [3503/50/2054] Building CXX object tools/flang/lib/Optimizer/CodeGen/CMakeFiles/obj.FIRCodeGen.dir/BoxedProcedure.cpp.o 359.669 [3503/49/2055] Building CXX object tools/flang/lib/Optimizer/Dialect/Support/CMakeFiles/obj.FIRDialectSupport.dir/FIRContext.cpp.o 359.780 [3503/48/2056] Building CXX object tools/flang/lib/Optimizer/Dialect/Support/CMakeFiles/obj.FIRDialectSupport.dir/KindMapping.cpp.o 359.997 [3503/47/2057] Building CXX object tools/flang/lib/Optimizer/Support/CMakeFiles/obj.FIRSupport.dir/DataLayout.cpp.o 360.244 [3503/46/2058] Building CXX object tools/flang/lib/Optimizer/CodeGen/CMakeFiles/obj.FIRCodeGen.dir/PreCGRewrite.cpp.o 360.577 [3503/45/2059] Building CXX object tools/flang/lib/Optimizer/CodeGen/CMakeFiles/obj.FIRCodeGen.dir/TBAABuilder.cpp.o 361.963 [3503/44/2060] Building CXX object tools/flang/lib/Optimizer/CodeGen/CMakeFiles/obj.FIRCodeGen.dir/FIROpPatterns.cpp.o 361.973 [3503/43/2061] Building CXX object tools/flang/lib/Optimizer/CodeGen/CMakeFiles/obj.FIRCodeGen.dir/CodeGenOpenMP.cpp.o 363.030 [3503/42/2062] Building CXX object tools/flang/lib/Optimizer/CodeGen/CMakeFiles/obj.FIRCodeGen.dir/TypeConverter.cpp.o 364.725 [3503/41/2063] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/obj.FIRTransforms.dir/OMPFunctionFiltering.cpp.o 364.966 [3503/40/2064] Building CXX object tools/flang/lib/Optimizer/CodeGen/CMakeFiles/obj.FIRCodeGen.dir/TargetRewrite.cpp.o ``` https://github.com/llvm/llvm-project/pull/96497 ___________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] e6ec366 - [clang][Interp] Fix classifying __builtin_addressof() argument
Author: Timm Bäder Date: 2024-06-24T19:27:28+02:00 New Revision: e6ec3664cb72fd95669cb516b21572da4236fd91 URL: https://github.com/llvm/llvm-project/commit/e6ec3664cb72fd95669cb516b21572da4236fd91 DIFF: https://github.com/llvm/llvm-project/commit/e6ec3664cb72fd95669cb516b21572da4236fd91.diff LOG: [clang][Interp] Fix classifying __builtin_addressof() argument It's an lvalue, so we need to use the classify() taking an expression. Added: Modified: clang/lib/AST/Interp/InterpBuiltin.cpp clang/test/AST/Interp/functions.cpp Removed: diff --git a/clang/lib/AST/Interp/InterpBuiltin.cpp b/clang/lib/AST/Interp/InterpBuiltin.cpp index aeb6ec42eb39e..98928b3c22d7c 100644 --- a/clang/lib/AST/Interp/InterpBuiltin.cpp +++ b/clang/lib/AST/Interp/InterpBuiltin.cpp @@ -609,8 +609,8 @@ static bool interp__builtin_addressof(InterpState , CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) { - PrimType PtrT = - S.getContext().classify(Call->getArg(0)->getType()).value_or(PT_Ptr); + assert(Call->getArg(0)->isLValue()); + PrimType PtrT = S.getContext().classify(Call->getArg(0)).value_or(PT_Ptr); if (PtrT == PT_FnPtr) { const FunctionPointer = S.Stk.peek(); diff --git a/clang/test/AST/Interp/functions.cpp b/clang/test/AST/Interp/functions.cpp index 10c62a43ef33b..f43be1d3c0403 100644 --- a/clang/test/AST/Interp/functions.cpp +++ b/clang/test/AST/Interp/functions.cpp @@ -473,6 +473,10 @@ namespace AddressOf { constexpr _Complex float F = {3, 4}; static_assert(__builtin_addressof(F) == , ""); + + void testAddressof(int x) { +static_assert( == __builtin_addressof(x), ""); + } } namespace std { _______ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang-tools-extra] [compiler-rt] [lldb] [llvm] [Memprof] Adds the option to collect AccessCountHistograms for memprof. (PR #94264)
https://github.com/mattweingarten edited https://github.com/llvm/llvm-project/pull/94264 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[Lldb-commits] [clang-tools-extra] [compiler-rt] [lldb] [llvm] [Memprof] Adds the option to collect AccessCountHistograms for memprof. (PR #94264)
https://github.com/mattweingarten edited https://github.com/llvm/llvm-project/pull/94264 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[clang-tools-extra] [compiler-rt] [lldb] [llvm] [Memprof] Adds the option to collect AccessCountHistograms for memprof. (PR #94264)
https://github.com/mattweingarten updated https://github.com/llvm/llvm-project/pull/94264 error: too big or took too long to generate ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[Lldb-commits] [clang-tools-extra] [compiler-rt] [lldb] [llvm] [Memprof] Adds the option to collect AccessCountHistograms for memprof. (PR #94264)
https://github.com/mattweingarten updated https://github.com/llvm/llvm-project/pull/94264 error: too big or took too long to generate ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[clang] Add support for builtin_verbose_trap (PR #79230)
https://github.com/dwblaikie approved this pull request. https://github.com/llvm/llvm-project/pull/79230 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Add support for builtin_verbose_trap (PR #79230)
@@ -28,7 +29,7 @@ namespace llvm { } // Prefix of the name of the artificial inline frame. -#define CLANG_TRAP_PREFIX "__clang_trap_msg" +inline constexpr llvm::StringRef CLANG_TRAP_PREFIX = "__clang_trap_msg"; dwblaikie wrote: The name should be changed to use the usual variable/constant naming convention (ClangTrapPrefix, I think, in this case). https://github.com/llvm/llvm-project/pull/79230 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Add support for builtin_verbose_trap (PR #79230)
https://github.com/dwblaikie edited https://github.com/llvm/llvm-project/pull/79230 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[Lldb-commits] [lldb] [llvm] Add support for using foreign type units in .debug_names. (PR #87740)
clayborg wrote: An extra character snuck in and messed with the buildbots, fixed with: ``` commit fc066ca1c32b4aef549f3e371dc70589804aba0f (HEAD -> main, origin/main, origin/HEAD) Author: Greg Clayton Date: Mon Jun 24 10:15:55 2024 -0700 Fix buildbots for https://github.com/llvm/llvm-project/pull/87740 ``` https://github.com/llvm/llvm-project/pull/87740 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] fc066ca - Fix buildbots for https://github.com/llvm/llvm-project/pull/87740
Author: Greg Clayton Date: 2024-06-24T10:16:39-07:00 New Revision: fc066ca1c32b4aef549f3e371dc70589804aba0f URL: https://github.com/llvm/llvm-project/commit/fc066ca1c32b4aef549f3e371dc70589804aba0f DIFF: https://github.com/llvm/llvm-project/commit/fc066ca1c32b4aef549f3e371dc70589804aba0f.diff LOG: Fix buildbots for https://github.com/llvm/llvm-project/pull/87740 Added: Modified: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Removed: diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index bd81618ac914d..70aa4b9e1f203 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -1746,7 +1746,7 @@ SymbolFileDWARF *SymbolFileDWARF::GetDIERefSymbolFile(const DIERef _ref) { if (file_index) { // We have a SymbolFileDWARFDebugMap, so let it find the right file -\if (SymbolFileDWARFDebugMap *debug_map = GetDebugMapSymfile()) +if (SymbolFileDWARFDebugMap *debug_map = GetDebugMapSymfile()) return debug_map->GetSymbolFileByOSOIndex(*file_index); // Handle the .dwp file case correctly ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits