profile
viewpoint
Brian Gesiak modocache Jersey City, NJ https://modocache.io Compiler engineer @facebook.

apple/swift 54793

The Swift Programming Language

apple/swift-evolution 11765

This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.

apple/swift-package-manager 8122

The Package Manager for the Swift Programming Language

llvm/llvm-project 7288

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Note: the repository does not accept github pull requests at this moment. Please submit your patches at http://reviews.llvm.org.

apple/swift-corelibs-foundation 4096

The Foundation Project, providing core utilities, internationalization, and OS independence

apple/swift-corelibs-libdispatch 1957

The libdispatch Project, (a.k.a. Grand Central Dispatch), for concurrency on multicore hardware

luisobo/Nocilla 1844

Testing HTTP requests has never been easier. Nocilla: Stunning HTTP stubbing for iOS and Mac OS X.

apple/swift-corelibs-xctest 871

The XCTest Project, A Swift core library for providing unit test support

apple/swift-llbuild 819

A low-level build system, used by Xcode and the Swift Package Manager

push eventllvm/llvm-project

Utkarsh Saxena

commit sha d5047d762f391c94939d67fc84cae25b24125694

[clangd] Update CC Ranking model with better sampling. A better sampling strategy was used to generate the dataset for this model. New signals introduced in this model: - NumNameInContext: Number of words in the context that matches the name of the candidate. - FractionNameInContext: Fraction of the words in context matching the name of the candidate. We remove the signal `IsForbidden` from the model and down rank forbidden signals aggresively. Differential Revision: https://reviews.llvm.org/D94697

view details

push time in a minute

push eventllvm/llvm-project

Andrzej Warzynski

commit sha b6e06a740c26b2b9d91455ad49a5009335089242

[flang][driver] Copy test file into a temp dir when testing (nfc) The following driver invocation will generate an output file in the same directory as the input file: ``` flang-new -fc1 -test-io test-input.f90 ``` This is the desired behaviour. However, when testing we need to make sure that we don't pollute the source directory. To this end, copy the input file into a temporary directory before testing. This is similar to https://reviews.llvm.org/D94243.

view details

push time in 2 minutes

push eventllvm/llvm-project

Craig Topper

commit sha 4c5066b0789d9c38d6362a684346b68261911d29

[TargetLowering] Don't speculatively call ComputeNumSignBits. NFC These methods are recursive so a little costly. We only look at the result in one place in this function and it's conditional. We also only need the second call if the first had enough returned enough sign bits.

view details

push time in 3 minutes

pull request commentllvm/circt

[rtl] Add basic dead wire elimination

Actually, wait a second, that doesn't make sense. Hardware doesn't use imperative control flow for connects. It is perfectly ok to CSE:

%x = read_inout %wire connect %wire %y = read_inout %wire

So I'm not sure that CSE will be the thing we need in the long term.

-Chris

youngar

comment created time in 9 minutes

push eventllvm/llvm-lnt

Thomas Preud'homme

commit sha 161ab162b98b1fb2bb653dcdfabd4c584cc1ab2a

F841: local variable assigned to but never used tests/server/reporting/analysis.py: - Ignore unused variables spike and slow which commented code further down refers to lnt/server/ui/api.py: - Local variable machine_name and ts in function put() were seemingly introduced from copy/paste and were never used lnt/server/ui/views.py: - Local variable comparison_start_run stopped being used from commit 465d5fdbf640b8e53f0f3d773f335e2c4825dd4f - Local variable session in function v4_latest_runs_report() was seemingly introduced from copy/paste and was never used lnt/server/ui/profile_views.py: - Local variables idx and tlc in function v4_profile_ajax_getFunctions() were seemingly introduced from copy/paste and were never used - Local variable profileDir in function v4_profile() was seemingly introduced from copy/paste and was never used - Local variables profile1 and profile2 in function v4_profile() have never been used lnt/server/ui/regression_views.py: - Local variable e in exception block of function v4_regression_detail() has never been used - Local variable new_regression_id in function v4_make_regression() has never been used lnt/server/reporting/summaryreport.py: - Local variables run and datapoints in function _build_data_table() have never been used lnt/server/db/testsuitedb.py: - Local variable testsuitedb in the constructor has never been used lnt/server/db/fieldchange.py: - Local variable deleted in function regenerate_fieldchanges_for_run() has never been used lnt/server/db/migrations/upgrade_14_to_15.py: - Local variable trans in function update_testsuite() was seemingly introduced from copy/paste from other migration scripts and was never used tests/testing/profilev1impl.py: - Local variable s in function test_serialize() has never been used tests/testing/profilev2impl.py: - Local variable s in function test_serialize() was seemingly introduced from copy/past eof the v1 version and was never used Reviewed By: tnfchris Differential Revision: https://reviews.llvm.org/D94757

view details

push time in 9 minutes

pull request commentllvm/circt

[rtl] Add basic dead wire elimination

Aha, ok that makes sense. AndrewY, can you please split that out to a separate patch with its own testcase? Thanks!

youngar

comment created time in 10 minutes

Pull request review commentllvm/circt

[FIRRTL] Deal with truncations before connects

 ParseResult FIRStmtParser::parseLeadingExpStmt(Value lhs, SubOpVector &subOps) {       parseOptionalInfo(info, subOps))     return failure(); -  if (kind == FIRToken::less_equal)+  if (kind == FIRToken::less_equal) {+    // Some operations, dshl for example, have implicit truncations, even in lo+    // firrtl.  Handle truncations in a connect here.+    if (lhs.getType() != rhs.getType()) {+      auto lhsType =+          lhs.getType().cast<FIRRTLType>().getPassiveType().dyn_cast<IntType>();+      auto rhsType =+          rhs.getType().cast<FIRRTLType>().getPassiveType().dyn_cast<IntType>();+      if (lhsType && rhsType && lhsType.hasWidth() && rhsType.hasWidth() &&+          lhsType.getWidthOrSentinel() < rhsType.getWidthOrSentinel()) {+        rhs = builder.create<TailPrimOp>(+            info.getLoc(),+            IntType::get(builder.getContext(), false,+                         lhsType.getWidthOrSentinel()),+            rhs, lhsType.getWidthOrSentinel());+        if (lhsType.isSigned()) // rhs is unsigned+          rhs = builder.create<AsSIntPrimOp>(info.getLoc(), lhsType, rhs);

I was thinking about turning this into a partial connect, but it seems like partial connects are suppose to be whole elements of structs or arrays, not some bits of a primitive type (that way lies madness!). If we can I'd like to keep distinct and clear partial connect semantics, thus inserting the truncation is seeming the correct thing.

darthscsi

comment created time in 12 minutes

Pull request review commentllvm/circt

[rtl] Add basic dead wire elimination

 def ConnectOp : RTLOp<"connect", [InOutTypeConstraint<"src", "dest">]> {     ```     }]; -  let arguments = (ins InOutType:$dest, RTLValueType:$src);+  let arguments = (ins Arg<InOutType, "", [MemWrite]>:$dest, RTLValueType:$src);

They are being used to get CSE to delete read-only wires. Whether that should just be folded into the explicit code is a different question.

youngar

comment created time in 14 minutes

push eventllvm/llvm-project

Peter Steinfeld

commit sha 1e1a011b09d0e6e9ff62b37721906485c386708c

[flang] Disallow INTENT attribute on procedure dummy arguments C843 states that "An entity with the INTENT attribute shall be a dummy data object or a dummy procedure pointer." This change enforces that and fixes some tests that erroneously violated this rule. Differential Revision: https://reviews.llvm.org/D94781

view details

push time in 16 minutes

push eventllvm/llvm-project

Peter Steinfeld

commit sha 1e1a011b09d0e6e9ff62b37721906485c386708c

[flang] Disallow INTENT attribute on procedure dummy arguments C843 states that "An entity with the INTENT attribute shall be a dummy data object or a dummy procedure pointer." This change enforces that and fixes some tests that erroneously violated this rule. Differential Revision: https://reviews.llvm.org/D94781

view details

push time in 21 minutes

push eventllvm/llvm-project

Simon Pilgrim

commit sha be69e66b1cd826f499566e1c3dadbf04e872baa0

[X86][SSE] Attempt to fold shuffle(binop(),binop()) -> binop(shuffle(),shuffle()) If this will help us fold shuffles together, then push the shuffle through the merged binops. Ideally this would be performed in DAGCombiner::visitVECTOR_SHUFFLE but getting an efficient+legal merged shuffle can be tricky - on SSE we can be confident that for 32/64-bit elements vectors shuffles should easily fold.

view details

push time in 32 minutes

push eventllvm/llvm-project

Simon Pilgrim

commit sha be69e66b1cd826f499566e1c3dadbf04e872baa0

[X86][SSE] Attempt to fold shuffle(binop(),binop()) -> binop(shuffle(),shuffle()) If this will help us fold shuffles together, then push the shuffle through the merged binops. Ideally this would be performed in DAGCombiner::visitVECTOR_SHUFFLE but getting an efficient+legal merged shuffle can be tricky - on SSE we can be confident that for 32/64-bit elements vectors shuffles should easily fold.

view details

push time in 36 minutes

issue commentcplusplus/papers

P2216 std::format improvements

Please add that to the proposal.

Will do.

wg21bot

comment created time in an hour

CommitCommentEvent

issue commentcplusplus/papers

P2216 std::format improvements

Billy Baker pointed out that C++23 should include an Annex C entry calling out the difference from C++20. Please add that to the proposal.

wg21bot

comment created time in an hour

push eventllvm/llvm-project

Sam Tebbs

commit sha 1a497ae9b83653682d6d20f1ec131394e523375d

[ARM][Block placement] Check the predecessor exists before processing it Not all machine loops will have a predecessor. so the pass needs to check it before continuing. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D94780

view details

push time in an hour

push eventllvm/llvm-project

Jan Svoboda

commit sha 383262933045e1c138362105be4ee4d1b62ab4cc

[clang][cli] NFC: Add PIE parsing for precompiled input and IR This patch effectively reverts a small part of D83979. When we stop parsing `LangOpts` unconditionally in `parseSimpleArgs` (above the diff) and move them back to `ParseLangArgs` (called in `else` branch) in D94682, `LangOpts.PIE` would never get parsed in this `if` branch. This patch ensures this doesn't happen. Right now, this causes `LangOpts.PIE` to be parsed twice, but that will be immediately corrected in D94682. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D94679

view details

Jan Svoboda

commit sha a7dcd3aeb0fb58ad774bc89428ed6c925f31f8aa

[clang][cli] NFC: Parse some LangOpts after the defaults are set This patch ensures we only parse the necessary options before calling `setLangDefaults` (explained in D94678). Because neither `LangOpts.CFProtectionBranch` nor `LangOpts.SYCLIsDevice` are used in `setLangDefaults`, this is a NFC. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D94680

view details

Jan Svoboda

commit sha 1744f4c676411ebd2e38afd5a6b56e5dd533c6ac

[clang][cli] NFC: Promote ParseLangArgs and ParseCodeGenArgs to members This patch promotes `ParseLangArgs` and `ParseCodeGenArgs` to members of `CompilerInvocation`. That will be useful in the following patch D94682, where we need to access protected members of `LangOptions` and `CodeGenOptions`. Both of those classes already have `friend CompilerInvocation`. This is cleaner than keeping those functions freestanding and having to specify the exact signature of both in extra `friend` declarations. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D94681

view details

push time in an hour

push eventllvm/llvm-project

Sam Tebbs

commit sha 1a497ae9b83653682d6d20f1ec131394e523375d

[ARM][Block placement] Check the predecessor exists before processing it Not all machine loops will have a predecessor. so the pass needs to check it before continuing. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D94780

view details

push time in an hour

push eventllvm/llvm-project

Jan Svoboda

commit sha 383262933045e1c138362105be4ee4d1b62ab4cc

[clang][cli] NFC: Add PIE parsing for precompiled input and IR This patch effectively reverts a small part of D83979. When we stop parsing `LangOpts` unconditionally in `parseSimpleArgs` (above the diff) and move them back to `ParseLangArgs` (called in `else` branch) in D94682, `LangOpts.PIE` would never get parsed in this `if` branch. This patch ensures this doesn't happen. Right now, this causes `LangOpts.PIE` to be parsed twice, but that will be immediately corrected in D94682. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D94679

view details

Jan Svoboda

commit sha a7dcd3aeb0fb58ad774bc89428ed6c925f31f8aa

[clang][cli] NFC: Parse some LangOpts after the defaults are set This patch ensures we only parse the necessary options before calling `setLangDefaults` (explained in D94678). Because neither `LangOpts.CFProtectionBranch` nor `LangOpts.SYCLIsDevice` are used in `setLangDefaults`, this is a NFC. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D94680

view details

Jan Svoboda

commit sha 1744f4c676411ebd2e38afd5a6b56e5dd533c6ac

[clang][cli] NFC: Promote ParseLangArgs and ParseCodeGenArgs to members This patch promotes `ParseLangArgs` and `ParseCodeGenArgs` to members of `CompilerInvocation`. That will be useful in the following patch D94682, where we need to access protected members of `LangOptions` and `CodeGenOptions`. Both of those classes already have `friend CompilerInvocation`. This is cleaner than keeping those functions freestanding and having to specify the exact signature of both in extra `friend` declarations. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D94681

view details

push time in 2 hours

push eventllvm/llvm-project

Michael Munday

commit sha bf1aa5db5c76d187df8dfef28bc5b8889fb53c4b

[RISCV][NFC] Fix order of parameters in cmov ge/le tests The first parameter should be selected if the condition is true and the last parameter if the condition is false. Prior to this change it was the other way round which was confusing. Differential Revision: https://reviews.llvm.org/D94729

view details

push time in 2 hours

push eventllvm/llvm-project

Michael Munday

commit sha bf1aa5db5c76d187df8dfef28bc5b8889fb53c4b

[RISCV][NFC] Fix order of parameters in cmov ge/le tests The first parameter should be selected if the condition is true and the last parameter if the condition is false. Prior to this change it was the other way round which was confusing. Differential Revision: https://reviews.llvm.org/D94729

view details

push time in 2 hours

push eventllvm/llvm-project

Guillaume Chatelet

commit sha 5bf47e142b6ebe1baf0cab257800c27a1a3bbde7

[libc] CopyAlignedBlocks can now specify alignment on top of block size This has been requested in D92236 Differential Revision: https://reviews.llvm.org/D94770

view details

push time in 2 hours

push eventllvm/llvm-project

Valentin Clement

commit sha cf0173de69a760d1b17f8ef5b2c3b4f2b6f58966

[mlir] Add better support for f80 and f128 Add builtin f80 and f128 following @schweitz proposition https://llvm.discourse.group/t/rfc-adding-better-support-for-higher-precision-floating-point/2526/5 Reviewed By: ftynse, rriddle Differential Revision: https://reviews.llvm.org/D94737

view details

push time in 2 hours

push eventllvm/llvm-project

Guillaume Chatelet

commit sha 5bf47e142b6ebe1baf0cab257800c27a1a3bbde7

[libc] CopyAlignedBlocks can now specify alignment on top of block size This has been requested in D92236 Differential Revision: https://reviews.llvm.org/D94770

view details

push time in 2 hours

push eventllvm/llvm-project

Valentin Clement

commit sha cf0173de69a760d1b17f8ef5b2c3b4f2b6f58966

[mlir] Add better support for f80 and f128 Add builtin f80 and f128 following @schweitz proposition https://llvm.discourse.group/t/rfc-adding-better-support-for-higher-precision-floating-point/2526/5 Reviewed By: ftynse, rriddle Differential Revision: https://reviews.llvm.org/D94737

view details

push time in 2 hours

push eventllvm/llvm-project

Simon Pilgrim

commit sha 46aa3c6c331c20b8a4c358488fefab96f944e814

[DAG] visitVECTOR_SHUFFLE - MergeInnerShuffle - improve shuffle(shuffle(x,y),shuffle(x,y)) merging MergeInnerShuffle currently attempts to merge shuffle(shuffle(x,y),z) patterns into a single shuffle, using 1 or 2 of the x,y,z ops. However if we already match 2 ops we might be able to handle the third op if its also a shuffle that references one of the previous ops, allowing us to handle some cases like: shuffle(shuffle(x,y),shuffle(x,y)) shuffle(shuffle(shuffle(x,z),y),z) shuffle(shuffle(x,shuffle(x,y)),z) etc. This isn't an exhaustive match and is dependent on the order the candidate ops are encountered - if one of the matched ops was a shuffle that was peek-able we don't go back and try to split that, I haven't found much need for that amount of analysis yet. This is a preliminary patch that will allow us to later improve x86 HADD/HSUB matching - but needs to be reviewed separately as its in generic code and affects existing Thumb2 tests. Differential Revision: https://reviews.llvm.org/D94671

view details

push time in 2 hours

push eventllvm/llvm-project

Simon Pilgrim

commit sha 46aa3c6c331c20b8a4c358488fefab96f944e814

[DAG] visitVECTOR_SHUFFLE - MergeInnerShuffle - improve shuffle(shuffle(x,y),shuffle(x,y)) merging MergeInnerShuffle currently attempts to merge shuffle(shuffle(x,y),z) patterns into a single shuffle, using 1 or 2 of the x,y,z ops. However if we already match 2 ops we might be able to handle the third op if its also a shuffle that references one of the previous ops, allowing us to handle some cases like: shuffle(shuffle(x,y),shuffle(x,y)) shuffle(shuffle(shuffle(x,z),y),z) shuffle(shuffle(x,shuffle(x,y)),z) etc. This isn't an exhaustive match and is dependent on the order the candidate ops are encountered - if one of the matched ops was a shuffle that was peek-able we don't go back and try to split that, I haven't found much need for that amount of analysis yet. This is a preliminary patch that will allow us to later improve x86 HADD/HSUB matching - but needs to be reviewed separately as its in generic code and affects existing Thumb2 tests. Differential Revision: https://reviews.llvm.org/D94671

view details

push time in 2 hours

push eventllvm/llvm-project

Jamie Schmeiser

commit sha 17d0fb7f574ebc8a6449382983d91715b6977c32

Set option default for enabling memory ssa for new pass manager loop sink pass to true. Summary: Set the default for the option enabling memory ssa use in the loop sink pass to true for the new pass manager. Author: Jamie Schmeiser <schmeise@ca.ibm.com> Reviewed By: asbirlea (Alina Sbirlea) Differential Revision: https://reviews.llvm.org/D92486

view details

push time in 2 hours

push eventllvm/llvm-project

Jamie Schmeiser

commit sha 17d0fb7f574ebc8a6449382983d91715b6977c32

Set option default for enabling memory ssa for new pass manager loop sink pass to true. Summary: Set the default for the option enabling memory ssa use in the loop sink pass to true for the new pass manager. Author: Jamie Schmeiser <schmeise@ca.ibm.com> Reviewed By: asbirlea (Alina Sbirlea) Differential Revision: https://reviews.llvm.org/D92486

view details

push time in 2 hours

push eventllvm/llvm-lnt

Danila Malyutin

commit sha 2e93cbd17fd5eb4b2e3773e5022186feac554d7c

[LNT] add __pycache__ to ignored files Fixes WARNING: ignoring item '__pycache__' ... warnings Differential Revision: https://reviews.llvm.org/D94775

view details

push time in 2 hours

more