profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/swift-ci/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

push eventapple/llvm-project

Mats Larsen

commit sha 981233900597d4eae9c70111c411db87837f901f

[NFC] Test commit to verify commit access

view details

push time in 13 minutes

push eventapple/swift

Alex Hoppen

commit sha fec7f6c3c0ece948d31d8d20325ed44e50b9bb37

[CodeCompletion] Fix issue causing the completion status to not be set correctly for pattern completion We weren’t setting the code completion token status correctly when parsing patterns with code completion tokens. Because of this, in the added test case, the `searchSubject` gets added as a member of `Foo` twice - once in the first pass and once in the second pass, causing an assertion failure. Fixes rdar://80575116 [SR-14687]

view details

Alex Hoppen

commit sha 77cb4b639cd6e07b73a70e4830084b10bdbd85be

Merge pull request #38559 from ahoppen/pr/dont-add-members-twice [CodeCompletion] Fix issue causing the completion status to not be set correctly for pattern completion

view details

swift-ci

commit sha 6e654a786143fac038f270c352976c0f005454da

Merge remote-tracking branch 'origin/main' into rebranch

view details

push time in 36 minutes

push eventapple/llvm-project

Fangrui Song

commit sha 6da3d8b19c32c76bb503b1a71fc167a0487ef200

[llvm] Replace LLVM_ATTRIBUTE_NORETURN with C++11 [[noreturn]] [[noreturn]] can be used since Oct 2016 when the minimum compiler requirement was bumped to GCC 4.8/MSVC 2015. Note: the definition of LLVM_ATTRIBUTE_NORETURN is kept for now.

view details

push time in 38 minutes

push eventapple/llvm-project

Alex Zinenko

commit sha c1f719d1a749eaf4a4964292e3eed6ab2766f2c5

[mlir] harden result type verification in llvm.call The verifier of the llvm.call operation was not checking for mismatches between the number of operation results and the number of results in the signature of the callee. Furthermore, it was possible to construct an llvm.call operation producing an SSA value of !llvm.void type, which should not exist. Add the verification and treat !llvm.void result type as absence of call results. Update the GPU conversions to LLVM that were mistakenly assuming that it was fine for llvm.call to produce values of !llvm.void type and ensure these calls do not produce results. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D106937

view details

Alex Zinenko

commit sha 49f745f59cbe1eda4653d917cc7d8d0b586fc6a4

[mlir] run the verifier before translating a module In translation from MLIR to another IR, run the MLIR verifier on the parsed module to ensure only valid modules are given to the translation. Previously, we would send any module that could be parsed to the translation, including semantically invalid modules, leading to surprising errors or lack thereof down the pipeline. Depends On D106937 Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D106938

view details

push time in an hour

push eventapple/llvm-project

Craig Topper

commit sha 3106f85945468970b81d86c296d37b485415a398

[RISCV] Fix grammar in a comment. NFC

view details

Raphael Isemann

commit sha 83c752bfa6071f34c8c4564a379d99b1b94f604a

Revert "[lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure" This reverts commit 5db8e232126fc4c0f5d5b0339bdc5a49830268d1. The test has been disabled since then on the bot and we got the logs we wanted.

view details

Jessica Clarke

commit sha 6e8660a7d65a30e3abcb4c588047c1328ab7d28e

[NFC][PowerPC] Fix spe.ll to work with update_llc_test_checks.py again Using split-file does not work with update_llc_test_checks.py. It's also mostly redundant, as the single and double tests can just use a single llc and FileCheck invocation for each FPU type using -check-prefixes rather than -check-prefix, and update_llc_test_checks.py will merge what it can. Only test_dasmconst needs to be SPE-only and so is pulled out into its own mall file (rather than using sed to preprocess the file and keep it commented out for EFPU2, which would work, but is ugly). As well as cutting down on the number of RUN lines, this also results in test_fma's CHECK lines being merged for both FPUs. Reviewed By: kiausch Differential Revision: https://reviews.llvm.org/D106969

view details

push time in an hour

push eventapple/llvm-project

Craig Topper

commit sha 54588bcc052e5b08f90e672c33d0c1ad4eda2424

[RISCV] Restrict performANY_EXTENDCombine to prevent an infinite loop. The sign_extend we insert here can get turned into a zero_extend if the sign bit is known zero. This can enable a setcc combine that shrinks compares with zero_extend. This reduces the use count of the zero_extend allowing other combines to turn it back into an any_extend. This restricts the combine to only cases where the result is used by a CopyToReg. This works for my original motivating case. I hope the CopyToReg use will prevent any converted extends from turning back into an any_extend. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D106754

view details

push time in an hour

push eventapple/swift

Joe Groff

commit sha bc258d0de1eb0c3765c92aa8c801b293b6673c8a

SILGen: Don't reabstract a member ref we're about to directly apply. SILGenApply can work with a function value at any abstraction level, so if we're loading a member out of an aggregate that's stored at a different abstraction level than the substituted abstraction level, we can just apply it the way it is without reabstracting.

view details

Joe Groff

commit sha 4434ee99420338ddd7f3e7808509c0bebbc3cd74

Merge pull request #38658 from jckarter/avoid-reabstracting-applied-member-ref SILGen: Don't reabstract a member ref we're about to directly apply.

view details

swift_jenkins

commit sha d2561a23a57793404264e3eca5951dea5ab6478c

Merge remote-tracking branch 'origin/main' into next

view details

push time in an hour

push eventapple/llvm-project

Mark de Wever

commit sha 4e65688571221565cf1a5c1e4bb58ee2ab7c9c83

[libc++][nfc] Improve error diagnostics. The error message for disabled filesystem and locale support is now done in the same fashion as ranges and format in D106763. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D106935

view details

push time in an hour

push eventapple/swift

Joe Groff

commit sha bc258d0de1eb0c3765c92aa8c801b293b6673c8a

SILGen: Don't reabstract a member ref we're about to directly apply. SILGenApply can work with a function value at any abstraction level, so if we're loading a member out of an aggregate that's stored at a different abstraction level than the substituted abstraction level, we can just apply it the way it is without reabstracting.

view details

Joe Groff

commit sha 4434ee99420338ddd7f3e7808509c0bebbc3cd74

Merge pull request #38658 from jckarter/avoid-reabstracting-applied-member-ref SILGen: Don't reabstract a member ref we're about to directly apply.

view details

swift-ci

commit sha 547a52999ada90b1abbf3a7e1be4ebfd707ac584

Merge remote-tracking branch 'origin/main' into rebranch

view details

push time in an hour

push eventapple/llvm-project

Chris Jackson

commit sha 399289604348e2194120890e0632e2cbc35077f5

Revert "[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR" Reverted due to buildbot failures. This reverts commit d675b594f4f1e1f6a195fb9a4fd02cf3de92292d.

view details

push time in an hour

push eventapple/llvm-project

Dmitry Vyukov

commit sha 89edd1e95f5cc274c0e33cf45ffc85c37b3214f0

tsan: fix warnings in tests Compilers don't like attributes in this position: warning: GCC does not allow 'noinline' attribute in this position on a function definition error: attributes are not allowed on a function-definition Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106951

view details

Dmitry Vyukov

commit sha 9ef9d01a5046f4f58b51b59d658e4c05f41344a1

tsan: extend signal_malloc test Test that we report the warning for free() and ensure the test finishes as we usually do with "DONE". Depends on D106951. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106952

view details

Dmitry Vyukov

commit sha acbb4fcd5e664ddfb515785f1839afc8f2570035

tsan: increase max number of threads supported by test-only barrier Currently the barrier supports only 256 threads, this does not allow to write reliable tests that use more threads. Bump max number of threads to 1024 to support writing good stress tests. Also replace sched_yield() with usleep(100) on the wait path. If we write tests that create hundreds of threads (and dozens of tests can run in parallel), yield would consume massive amounts of CPU time for spinning. Depends on D106952. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106953

view details

Dmitry Vyukov

commit sha bfb597b24c311f8a03ad9530adef3b3c1e5ff853

tsan: improve lots_of_threads test The current 10 threads is not particularly "lots" and not stressful. Create 10x300 threads and ensure they all are running at the same time. Depends on D106953. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106954

view details

push time in 2 hours

push eventapple/llvm-project

Chris Jackson

commit sha d675b594f4f1e1f6a195fb9a4fd02cf3de92292d

[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR Reapply commit 796b84d26f4d461fb50e7b4e84e15a10eaca88fc that was reverted due to reports of crashes. A minor change now guards against getVariableLocationOperand() returning a nullptr. Differential Revision: https://reviews.llvm.org/D106659

view details

push time in 2 hours

push eventapple/llvm-project

Sanjay Patel

commit sha 5b83261c1518a39636abe094123f1704bbfd972f

[DivRemPairs] make sure we have a valid CFG for hoisting division This transform was added with e38b7e894808ec2 and as shown in: https://llvm.org/PR51241 ...it could crash without an extra check of the blocks. There might be a more compact way to write this constraint, but we can't just count the successors/predecessors without affecting a test that includes a switch instruction.

view details

push time in 2 hours

push eventapple/llvm-project

Jessica Clarke

commit sha 0e79a94836d7127a87c36fdca43ffaf6a17d8964

[Utils] Support class template specializations in update_cc_test_checks ClassTemplateSpecializationDecl not within a ClassTemplateDecl represents an explicit instatiation of a template and so should be handled as if it were a normal CXXRecordDecl. Unfortunately, having an equivalent for FunctionTemplateDecl remains a TODO in ASTDumper's VisitFunctionTemplateDecl, with all the explicit instantiations just being emitted inside the FunctionTemplateDecl along with all the other specializations, meaning we can't easily support explicit function instantiations in update_cc_test_checks. Reviewed By: arichardson Differential Revision: https://reviews.llvm.org/D106243

view details

Jessica Clarke

commit sha 40080e7e7f42857c8edac4a53e476a68563f1a98

[Clang interpreter] Avoid storing pointers at unaligned locations The Clang interpreter's bytecode uses a packed stream of bytes representation, but also wants to have some opcodes take pointers as arguments, which are currently embedded in the bytecode directly. However, CHERI, and thus Arm's upcoming experimental Morello prototype, provide spatial memory safety for C/C++ by implementing language-level (and sub-language-level) pointers as capabilities, which track bounds, permissions and validity in hardware. This uses tagged memory with a single tag bit at every capability-aligned address, and so storing pointers to unaligned addresses results in the tag being stripped, leading to a tag fault when the pointer is ultimately dereferenced at a later point. In order to support a stricter C/C++ implementation like CHERI, we no longer store pointers directly in the bytecode, instead storing them in a table and embedding the index in the bytecode. Reviewed By: nand Differential Revision: https://reviews.llvm.org/D97606

view details

Guillaume Chatelet

commit sha d3c70d9f7765f8e731c0b892aea74b21d330d230

[libc] Simplify implementation of benchmarks This also allows to run the distribution benchmarks in other frameworks like the Google Benchmark facility.

view details

push time in 2 hours

push eventapple/llvm-project

Jeremy Morse

commit sha 8612417e5a54cfef941ab45de55e48b4a0c4e8b4

[DebugInfo][InstrRef] Don't break up ret-sequences on debug-info instrs When we have a terminator sequence (i.e. a tailcall or return), MIIsInTerminatorSequence is used to work out where the preceding ABI-setup instructions end, i.e. the parts that were glued to the terminator instruction. This allows LLVM to split blocks safely without having to worry about ABI stuff. The function only ignores DBG_VALUE instructions, meaning that the two debug instructions I recently added can end terminator sequences early, causing various MachineVerifier errors. This patch promotes the test for debug instructions from "isDebugValue" to "isDebugInstr", thus avoiding any debug-info interfering with this function. Differential Revision: https://reviews.llvm.org/D106660

view details

push time in 2 hours

push eventapple/llvm-project

Melanie Blower

commit sha 66ddac22e2a7f268e91c26d694112970dfa607ae

[CLANG][PATCH][FPEnv] Add support for option -ffp-eval-method and extend #pragma float_control similarly The Intel compiler ICC supports the option "-fp-model=(source|double|extended)" which causes the compiler to use a wider type for intermediate floating point calculations. Also supported is a way to embed this effect in the source program with #pragma float_control(source|double|extended). This patch extends pragma float_control syntax, and also adds support for a new floating point option "-ffp-eval-method=(source|double|extended)". source: intermediate results use source precision double: intermediate results use double precision extended: intermediate results use extended precision Reviewed By: Aaron Ballman Differential Revision: https://reviews.llvm.org/D93769

view details

push time in 2 hours

push eventapple/llvm-project

Lei Zhang

commit sha 23326b9f1723a398681def87c80e608fa94485f2

[mlir][spirv] Fix a few issues in ModuleCombiner - Fixed symbol insertion into `symNameToModuleMap`. Insertion needs to happen whether symbols are renamed or not. - Added check for the VCE triple and avoid dropping it. - Disabled function deduplication. It requires more careful rules. Right now it can remove different functions. - Added tests for symbol rename listener. - And some other code/comment cleanups. Reviewed By: ergawy Differential Revision: https://reviews.llvm.org/D106886

view details

push time in 3 hours

push eventapple/llvm-project

Whisperity

commit sha 60e2a503e05a6e061ad75c1e9b69bbb00352926f

[clang-tidy][docs][NFC] Fix broken link and ordering in ReleaseNotes.rst

view details

push time in 3 hours

push eventapple/llvm-project

Kazu Hirata

commit sha aa6340cf87d7e1bbb894cf6357f859e5afb8a335

[AsmParser] Remove unused declaration parseOptionalCommaInAlloca (NFC)

view details

push time in 3 hours

push eventapple/llvm-project

Jun Ma

commit sha ca0fe3447fb85762838468537d93d4ef82c5a1af

[InstSimplify] Simplify llvm.vscale when vscale_range attribute exists Reduce llvm.vscale to constant based on vscale_range attribute. Differential Revision: https://reviews.llvm.org/D106850

view details

push time in 3 hours

push eventapple/swift

Alastair Houghton

commit sha 6ccfe0348163045245fddc023ceea1c663c482df

[Runtime] Static constructors and destructors should be an error here. Except for a handful of places we know about, there should be no static constructors or destructors in the runtime; they're undesirable because they inflate start up or shut down times, and in the case of destructors we can't even guarantee that they will actually run (e.g. if the program declares that it supports fast termination, they just won't). It should be OK to change the warnings to errors as a result. rdar://80965245

view details

Alastair Houghton

commit sha 9a48cf9247676cc34341f5d3067834eddf4fa54a

Merge pull request #38562 from al45tair/problem/80965245 [Runtime] Static constructors and destructors should be an error here.

view details

swift_jenkins

commit sha 70b47b920503c41e29cd4165457e789036451631

Merge remote-tracking branch 'origin/main' into next

view details

push time in 4 hours

push eventapple/llvm-project

Alexey Bataev

commit sha 3ad6437fcced9122d8b0ef24b2cb6af5925e626e

[SLP]Fix build on MacOS, NFC.

view details

push time in 4 hours

push eventapple/swift

Alastair Houghton

commit sha d70e93b92eb85917ef5a1e89863f08f18cdb49a1

[Demangler] Fix OldRemangler to cope with single argument functions. The Demangler can sometimes output ArgumentTuples containing a single argument without placing that argument inside a Tuple node. OldRemangler failed to take account of this and either crashed or failed with an assertion failure depending on whether assertions were enabled or not. rdar://63678072

view details

Alastair Houghton

commit sha d57cedd7d8cefc03a504f2c124368cafbde4b9f8

Merge branch 'main' into problem/63678072

view details

Alastair Houghton

commit sha 52ec3d195aac43f7eeea8d8b03ca019a70e20b82

Merge branch 'main' into problem/63678072

view details

Alastair Houghton

commit sha c23d2f45c447743005ca4402e7bb5b4ae4e04d00

[Demangler] Fix NULL dereference on malformed mangled class name. The (invalid) type name '__TJO' caused a NULL dereference. Fix that and add a test case. rdar://80602920

view details

Alastair Houghton

commit sha 6ccfe0348163045245fddc023ceea1c663c482df

[Runtime] Static constructors and destructors should be an error here. Except for a handful of places we know about, there should be no static constructors or destructors in the runtime; they're undesirable because they inflate start up or shut down times, and in the case of destructors we can't even guarantee that they will actually run (e.g. if the program declares that it supports fast termination, they just won't). It should be OK to change the warnings to errors as a result. rdar://80965245

view details

Alastair Houghton

commit sha 95be0d65039b5ca7a57c271c5524de45529e0fde

Merge pull request #37997 from al45tair/problem/63678072 [Demangler] Fix OldRemangler to cope with single argument functions.

view details

Alastair Houghton

commit sha f15c2a784882097929763d79b81da99cabaab558

Merge pull request #38429 from al45tair/problem/80602920 [Demangler] Fix NULL dereference on malformed mangled class name.

view details

Alastair Houghton

commit sha 9a48cf9247676cc34341f5d3067834eddf4fa54a

Merge pull request #38562 from al45tair/problem/80965245 [Runtime] Static constructors and destructors should be an error here.

view details

swift-ci

commit sha 6f83955d7b7d148363caec6b69e0b4ba24678930

Merge remote-tracking branch 'origin/main' into rebranch

view details

push time in 4 hours

push eventapple/swift

Alastair Houghton

commit sha d70e93b92eb85917ef5a1e89863f08f18cdb49a1

[Demangler] Fix OldRemangler to cope with single argument functions. The Demangler can sometimes output ArgumentTuples containing a single argument without placing that argument inside a Tuple node. OldRemangler failed to take account of this and either crashed or failed with an assertion failure depending on whether assertions were enabled or not. rdar://63678072

view details

Alastair Houghton

commit sha d57cedd7d8cefc03a504f2c124368cafbde4b9f8

Merge branch 'main' into problem/63678072

view details

Alastair Houghton

commit sha 52ec3d195aac43f7eeea8d8b03ca019a70e20b82

Merge branch 'main' into problem/63678072

view details

Alastair Houghton

commit sha 96dce956e822048733af4e8f57301c75b427f0a9

[RemoteMirror] Add swift_reflection_interop_projectEnumValue() Added a counterpart to the swift_reflection_projectEnumValue() API for the legacy interop support in SwiftRemoteMirrorLegacyInterop.h. Also updated the test to use it to extract information from an enum. rdar://62128103

view details

Alastair Houghton

commit sha c3df37cff338f4a57fc981783a02ae12f7614bd4

[RemoteMirror] Move interop test to the test directory, run it automatically. Added a run of the interop test as part of the test suite.

view details

Alastair Houghton

commit sha c23d2f45c447743005ca4402e7bb5b4ae4e04d00

[Demangler] Fix NULL dereference on malformed mangled class name. The (invalid) type name '__TJO' caused a NULL dereference. Fix that and add a test case. rdar://80602920

view details

Alastair Houghton

commit sha 030e0ff47978a2275ba398b0511ce44556bf398e

Merge pull request #38332 from al45tair/problems/62128103 [RemoteMirror] Add swift_reflection_interop_projectEnumValue()

view details

Alastair Houghton

commit sha 95be0d65039b5ca7a57c271c5524de45529e0fde

Merge pull request #37997 from al45tair/problem/63678072 [Demangler] Fix OldRemangler to cope with single argument functions.

view details

Alastair Houghton

commit sha f15c2a784882097929763d79b81da99cabaab558

Merge pull request #38429 from al45tair/problem/80602920 [Demangler] Fix NULL dereference on malformed mangled class name.

view details

swift_jenkins

commit sha 747339278b4d3c3c05ab2a5f481bf236df617852

Merge remote-tracking branch 'origin/main' into next

view details

push time in 4 hours

push eventapple/llvm-project

Dmitry Vyukov

commit sha 960cb490dd16961c61b541efbcc95eb085464ad8

sanitizer_common: replace RWMutex/BlockingMutex with Mutex Mutex supports reader access, OS blocking, spinning, portable and smaller than BlockingMutex. Overall it's supposed to be better than RWMutex/BlockingMutex. Replace RWMutex/BlockingMutex with Mutex. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106936

view details

Sanjay Patel

commit sha 4c41caa2871095cf1e936b0eea10079c60f864dc

[x86] improve CMOV codegen by pushing add into operands, part 3 In this episode, we are trying to avoid an x86 micro-arch quirk where complex (3 operand) LEA potentially costs significantly more than simple LEA. So we simultaneously push and pull the math around the CMOV to balance the operations. I looked at the debug spew during instruction selection and decided against trying a later DAGToDAG transform -- it seems very difficult to match if the trailing memops are already selected and managing the creation of extra instructions at that level is always tricky. Differential Revision: https://reviews.llvm.org/D106918

view details

push time in 4 hours

push eventapple/swift

Alastair Houghton

commit sha 96dce956e822048733af4e8f57301c75b427f0a9

[RemoteMirror] Add swift_reflection_interop_projectEnumValue() Added a counterpart to the swift_reflection_projectEnumValue() API for the legacy interop support in SwiftRemoteMirrorLegacyInterop.h. Also updated the test to use it to extract information from an enum. rdar://62128103

view details

Alastair Houghton

commit sha c3df37cff338f4a57fc981783a02ae12f7614bd4

[RemoteMirror] Move interop test to the test directory, run it automatically. Added a run of the interop test as part of the test suite.

view details

Alastair Houghton

commit sha 030e0ff47978a2275ba398b0511ce44556bf398e

Merge pull request #38332 from al45tair/problems/62128103 [RemoteMirror] Add swift_reflection_interop_projectEnumValue()

view details

swift-ci

commit sha 49d056af6033915fbc360ce5756e1f5f3860157f

Merge remote-tracking branch 'origin/main' into rebranch

view details

push time in 4 hours

push eventapple/llvm-project

Simon Pilgrim

commit sha 124d58638275d1b98b2c3162ae292810b23cbee9

[X86][AVX] Move VPERM2F128 defs above VINSERTF128 defs. NFC. This will be necessary for a future patch to lower VINSERTF128 custom folds to VPERM2F128

view details

David Spickett

commit sha 6eded00e0c6b4e06225df74292c078030556b8ce

[lldb] Add "memory tag write" --end-addr option The default mode of "memory tag write" is to calculate the range from the start address and the number of tags given. (just like "memory write" does) (lldb) memory tag write mte_buf 1 2 (lldb) memory tag read mte_buf mte_buf+48 Logical tag: 0x0 Allocation tags: [0xfffff7ff9000, 0xfffff7ff9010): 0x1 [0xfffff7ff9010, 0xfffff7ff9020): 0x2 [0xfffff7ff9020, 0xfffff7ff9030): 0x0 This new option allows you to set an end address and have the tags repeat until that point. (lldb) memory tag write mte_buf 1 2 --end-addr mte_buf+64 (lldb) memory tag read mte_buf mte_buf+80 Logical tag: 0x0 Allocation tags: [0xfffff7ff9000, 0xfffff7ff9010): 0x1 [0xfffff7ff9010, 0xfffff7ff9020): 0x2 [0xfffff7ff9020, 0xfffff7ff9030): 0x1 [0xfffff7ff9030, 0xfffff7ff9040): 0x2 [0xfffff7ff9040, 0xfffff7ff9050): 0x0 This is implemented using the QMemTags packet previously added. We skip validating the number of tags in lldb and send them on to lldb-server, which repeats them as needed. Apart from the number of tags, all the other client side checks remain. Tag values, memory range must be tagged, etc. Reviewed By: omjavaid Differential Revision: https://reviews.llvm.org/D105183

view details

Dmitry Vyukov

commit sha 56debbf52ed31e0ea83265e0f87e15c3ac15de05

sanitizers: switch BlockingMutex(LINKER_INITIALIZED) to Mutex Mutex does not support LINKER_INITIALIZED support. As preparation to switching BlockingMutex to Mutex, proactively replace all BlockingMutex(LINKER_INITIALIZED) to Mutex. All of these are objects with static storage duration and Mutex ctor is constexpr, so it should be equivalent. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106944

view details

Dmitry Vyukov

commit sha 48cbcb909d9b539680da6b3b8997e3620d085f4e

sanitizer_common: prohibit Mutex(LINKER_INITIALIZED) Mutex does not support LINKER_INITIALIZED ctor. But we used to support it with BlockingMutex. To prevent potential bugs delete LINKER_INITIALIZED Mutex ctor. Also mark existing ctor as explicit. Depends on D106944. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106945

view details

push time in 4 hours

push eventapple/llvm-project

Alexey Bataev

commit sha e408d1dfab42b27d0aa51b221e50fa6390fb5ed1

[SLP]Improve graph reordering. Reworked reordering algorithm. Originally, the compiler just tried to detect the most common order in the reordarable nodes (loads, stores, extractelements,extractvalues) and then fully rebuilding the graph in the best order. This was not effecient, since it required an extra memory and time for building/rebuilding tree, double the use of the scheduling budget, which could lead to missing vectorization due to exausted scheduling resources. Patch provide 2-way approach for graph reodering problem. At first, all reordering is done in-place, it doe not required tree deleting/rebuilding, it just rotates the scalars/orders/reuses masks in the graph node. The first step (top-to bottom) rotates the whole graph, similarly to the previous implementation. Compiler counts the number of the most used orders of the graph nodes with the same vectorization factor and then rotates the subgraph with the given vectorization factor to the most used order, if it is not empty. Then repeats the same procedure for the subgraphs with the smaller vectorization factor. We can do this because we still need to reshuffle smaller subgraph when buildiong operands for the graph nodes with lasrger vectorization factor, we can rotate just subgraph, not the whole graph. The second step (bottom-to-top) scans through the leaves and tries to detect the users of the leaves which can be reordered. If the leaves can be reorder in the best fashion, they are reordered and their user too. It allows to remove double shuffles to the same ordering of the operands in many cases and just reorder the user operations instead. Plus, it moves the final shuffles closer to the top of the graph and in many cases allows to remove extra shuffle because the same procedure is repeated again and we can again merge some reordering masks and reorder user nodes instead of the operands. Also, patch improves cost model for gathering of loads, which improves x264 benchmark in some cases. Gives about +2% on AVX512 + LTO (more expected for AVX/AVX2) for {625,525}x264, +3% for 508.namd, improves most of other benchmarks. The compile and link time are almost the same, though in some cases it should be better (we're not doing an extra instruction scheduling anymore) + we may vectorize more code for the large basic blocks again because of saving scheduling budget. Differential Revision: https://reviews.llvm.org/D105020

view details

push time in 4 hours

push eventapple/llvm-project

Whisperity

commit sha 21832121e112d97f1e197b35959867f3a99226ee

[clang-tidy] Fix crash on "reference-to-array" parameters in 'bugprone-easily-swappable-parameters' An otherwise unexercised code path related to trying to model "array-to-pointer decay" resulted in a null pointer dereference crash when parameters of type "reference to array" were encountered. Fixes crash report http://bugs.llvm.org/show_bug.cgi?id=50995. Reviewed By: aaron.ballman Differential Revision: http://reviews.llvm.org/D106946

view details

push time in 4 hours

push eventapple/llvm-project

Wael Yehia

commit sha 9559bd19908bf6421f2abed1578219dacdc49169

[LTO][Legacy] Add new API to check presence of ctor/dtor functions. On AIX, the linker needs to check whether a given lto_module_t contains any constructor/destructor functions, in order to implement the behavior of the -bcdtors:all flag. See https://www.ibm.com/docs/en/aix/7.2?topic=l-ld-command for the flag's documentation. In llvm IR, constructor (destructor) functions are added to a special global array @llvm.global_ctors (@llvm.global_dtors). However, because these two symbols are artificial, they are not visited during the symbol traversal (using the lto_module_get_[num_symbols|symbol_name|symbol_attribute] API). This patch adds a new function to the libLTO interface that checks the presence of one or both of these two symbols. Reviewed By: steven_wu Differential Revision: https://reviews.llvm.org/D106887

view details

push time in 4 hours