{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":521075862,"defaultBranch":"main","name":"clangir","ownerLogin":"llvm","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-08-04T00:48:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/17149993?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719861588.0","currentOid":""},"activityList":{"items":[{"before":"600e7f6ecccf050db204ddc0f8089ecd76a2f458","after":"d0479472a4d67039f8f0816a5a2818364420fa2a","ref":"refs/heads/main","pushedAt":"2024-07-24T02:32:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][CIRGen][FlattenCFG] Exceptions: incremental work for handling catch clauses\n\n- Introduce a new operation: `cir.inflight_exception`, which returns a opaque\nexception object value. This will later be decomposed into selector and exception\npointer.\n- Add a still incomplete basic block flattening for catch clauses, but enough\nto add tests.","shortMessageHtmlLink":"[CIR][CIRGen][FlattenCFG] Exceptions: incremental work for handling c…"}},{"before":"4d1608032d15f793c3a1c081bcb74731feea930f","after":"600e7f6ecccf050db204ddc0f8089ecd76a2f458","ref":"refs/heads/main","pushedAt":"2024-07-24T01:06:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][CIRGen][NFC] Exceptions: remove exception ptr alloca, not used anymore\n\nAll this information is now implicit as part of using cir.try. Note that\nwe still keep the cir.eh.info around, since it will be used when we\nexpand catch clauses.","shortMessageHtmlLink":"[CIR][CIRGen][NFC] Exceptions: remove exception ptr alloca, not used …"}},{"before":"d573a0bbee6fbf91f4c0c8f9dcf0e7b9fcb05675","after":"4d1608032d15f793c3a1c081bcb74731feea930f","ref":"refs/heads/main","pushedAt":"2024-07-24T01:00:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][CIRGen][NFC] Exceptions: tide up lexical scope information needed\n\nAlso cleanup usage of that information and rename to more updated terms.","shortMessageHtmlLink":"[CIR][CIRGen][NFC] Exceptions: tide up lexical scope information needed"}},{"before":"4a9df2044f68f675dac00785463add65fc994cc9","after":"d573a0bbee6fbf91f4c0c8f9dcf0e7b9fcb05675","ref":"refs/heads/main","pushedAt":"2024-07-24T00:40:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][CIRGen][NFC] Exceptions: Remove cir.try in favor of cir.call exception\n\nPart of cleaning up for CFG flattening and LLVM lowering","shortMessageHtmlLink":"[CIR][CIRGen][NFC] Exceptions: Remove cir.try in favor of cir.call ex…"}},{"before":"7fc592aec8e6ce3977471c844ecca36377c1023e","after":"4a9df2044f68f675dac00785463add65fc994cc9","ref":"refs/heads/main","pushedAt":"2024-07-23T23:21:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR] Add support for unary complex operations (#750)\n\nThis PR adds support for unary operations on complex numbers, namely\r\nplus(+), minus(-), and conjugate(~). This PR also adds support for the\r\n`__builtin_conj` builtin function which computes the conjugate of the\r\ninput.","shortMessageHtmlLink":"[CIR] Add support for unary complex operations (#750)"}},{"before":"4ea2ec38638391b964e88b77f926e0892b350e04","after":"7fc592aec8e6ce3977471c844ecca36377c1023e","ref":"refs/heads/main","pushedAt":"2024-07-23T04:03:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][CIRGen][NFC] Exceptions: redesign cir.catch in terms of cir.try\n\nSimplify things a bit and remove the propagation of exception in terms of a\nreturned exception value. This also merges cir.catch as part of cir.try and\nremove the former.\n\nEverything that didn't work still doesn't work, nothing new added here. The\nCatchOp parsing was wrong even before this commit, so for now add an XFAIL with\nthe complete testcase we want to be able to parse soon (incremental work will\nfix this) in clang/test/CIR/IR/exceptions.cir.\n\nMore cleanups to come as well, this is just the first part.","shortMessageHtmlLink":"[CIR][CIRGen][NFC] Exceptions: redesign cir.catch in terms of cir.try"}},{"before":"3e00be7f4061c0f9b23780036c83bc8db1ff34c9","after":"4ea2ec38638391b964e88b77f926e0892b350e04","ref":"refs/heads/main","pushedAt":"2024-07-18T19:21:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR] Add support for complex related intrinsics (#748)\n\nThis PR adds CIRGen for the following complex related intrinsics:\r\n\r\n - `__builtin_complex`,\r\n - `__builtin_creal`, and\r\n - `__builtin_cimag`.\r\n\r\nThe generated CIR does not include any new ops so LLVM IR lowering is\r\nalready done.","shortMessageHtmlLink":"[CIR] Add support for complex related intrinsics (#748)"}},{"before":"a1c3cc589614d63c255ff7a2a15ab7d9c3a94c60","after":"3e00be7f4061c0f9b23780036c83bc8db1ff34c9","ref":"refs/heads/main","pushedAt":"2024-07-18T19:21:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][CodeGen][NFC] Refactor `performAddrSpaceCast` to consume CIR address space attributes (#747)\n\nOriginally `TargetCodeGenInfo::performAddrSpaceCast` consumes two\r\n*unused* parameters typed `clang::LangAS`. This PR changes its type to\r\n`mlir::cir::AddressSpaceAttr` to better fit the need of CIRGen.\r\n\r\nIn [D32248: CodeGen: Cast alloca to expected address\r\nspace](https://reviews.llvm.org/D32248), the author explained why these\r\nAS parameters are not used:\r\n\r\n> This is just the default implementation. The idea is that targets that\r\nneed to do something more complex on a particular conversion — e.g. to\r\nmake sure that null pointers are translated correctly when they have\r\ndifferent bit-patterns — can easily do so.\r\n\r\nFurther more, I'm confident that the CIR AS is also capable of providing\r\ncustom behaviors like above for those targets.","shortMessageHtmlLink":"[CIR][CodeGen][NFC] Refactor performAddrSpaceCast to consume CIR ad…"}},{"before":"b7ff719ce5f57700e5d9f743fdf3e4e1d25b403f","after":"a1c3cc589614d63c255ff7a2a15ab7d9c3a94c60","ref":"refs/heads/main","pushedAt":"2024-07-17T23:43:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][Builder][NFC] Refactor `getPointerTo` considering AddressSpaceAttr (#746)\n\nAfter switching to a separate address space attribute in CIR, we need\r\nbetter helper methods in CIR builder.\r\n\r\nThis PR provides:\r\n* two versions of `getPointerTo`, consuming `LangAS` or\r\n`AddressSpaceAttr`.\r\n* an extra helper method `getAddrSpaceAttr(LangAS)` that is used by\r\n`getPointerTo(LangAS)` and other potential use cases (mainly about\r\naddress space cast in the future).\r\n\r\nCalls to `getPointerTo` without addrspace will invoke the version\r\nconsuming `AddressSpaceAttr` and return a type with null addrspace\r\nattribute, which should be exactly what we expect for CIRBuilder.","shortMessageHtmlLink":"[CIR][Builder][NFC] Refactor getPointerTo considering AddressSpaceA…"}},{"before":"48196fd01d92ceb3394251bce905220a5d6e9c5c","after":"b7ff719ce5f57700e5d9f743fdf3e4e1d25b403f","ref":"refs/heads/main","pushedAt":"2024-07-17T23:42:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][DirectToLLVM][NFC] Add include of target lowering library to DirectToLLVM (#745)\n\nTargetLowering should also serve for DirectToLLVM for target-specific\r\ninformation. The library is already linked against DirectToLLVM, but we\r\nhave to write dirty includes like `#include\r\n\"../../Dialect/Transforms/TargetLowering/LowerModule.h\"`.\r\n\r\nThis PR adds a private include directory\r\n`clang/lib/CIR/Dialect/Transforms/TargetLowering` to the target\r\nDirectToLLVM. Then we can simplify the include directive above to\r\n`#include \"LowerModule.h\"`.","shortMessageHtmlLink":"[CIR][DirectToLLVM][NFC] Add include of target lowering library to Di…"}},{"before":"8adfe26ffb01590cbb8fa4a37672ddc4a41641f6","after":"48196fd01d92ceb3394251bce905220a5d6e9c5c","ref":"refs/heads/main","pushedAt":"2024-07-17T23:41:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR] Add MLIR visibility for weak and weak_odr linkage (#744)","shortMessageHtmlLink":"[CIR] Add MLIR visibility for weak and weak_odr linkage (#744)"}},{"before":"c1141526a5f7556e8adbe46b98f6b827a7d971db","after":"8adfe26ffb01590cbb8fa4a37672ddc4a41641f6","ref":"refs/heads/main","pushedAt":"2024-07-17T23:39:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][Transforms][TargetLowering][NFC] Add SPIR-V skeleton (#737)\n\nThis NFC PR adds the SPIR-V `TargetLoweringInfo` with ABI stuff\r\nunimplemented. It's useful for other target-specific information to land\r\nfirst.","shortMessageHtmlLink":"[CIR][Transforms][TargetLowering][NFC] Add SPIR-V skeleton (#737)"}},{"before":"dc9f39d2a3c440cba75a9c1198d37657722200b4","after":"c1141526a5f7556e8adbe46b98f6b827a7d971db","ref":"refs/heads/main","pushedAt":"2024-07-17T23:38:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR] Add support for binary arithmetic operations on complex numbers (#730)\n\nThis PR adds support for complex number binary arithmetic operations.\r\nSpecifically, CIRGen for the following operations on complex numbers are\r\nadded:\r\n\r\n - Binary arithmetic operations: add, sub, mul, and div.\r\n - ~Unary arithmetic operations: plus, minus, and conjugate.~\r\n\r\nA new operation `cir.complex.binop` is added to represent binary\r\noperations on complex number operands. The new operation contains\r\ncomplex-number-specific attributes for correct lowering to LLVM IR.\r\n\r\n~I'll add LLVM IR lowering in later PRs as this PR is already large\r\nenough.~ This PR also includes LLVM IR lowering support. It introduces\r\ntwo new operations `cir.complex.real` and `cir.complex.imag` to aid for\r\nLLVM IR lowering. These two new operations extract the real and\r\nimaginary part of a complex value, which is useful during lowering\r\nprepare, during which phase the complex arithmetic operations are broken\r\ndown to a series of scalar arithmetic operations on the real and\r\nimaginary parts of the complex operands.","shortMessageHtmlLink":"[CIR] Add support for binary arithmetic operations on complex numbers ("}},{"before":"a944884b3cd928e0d49f0ff06245844d4e34e5c5","after":"dc9f39d2a3c440cba75a9c1198d37657722200b4","ref":"refs/heads/main","pushedAt":"2024-07-17T19:35:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR] Add support and enable MLIR's mem2reg for flat CIR (#659)\n\nThis is PR enables generic MLIR's mem2reg pass for the flat CIR code. \r\nI submit this draft PR if someone wants to play with mem2reg right now\r\nand to define the next incremental steps if necessary.\r\n\r\nBriefly, what's important:\r\n1) I used llvm dialect implementation for the inspiration\r\n2) I did not implement interfaces for some of the operations, e.g. for\r\n`cir.get_member`, since looks like mem2reg doesn't handle them - it's\r\nmore about SROA pass.\r\n3) simple tests are added \r\n4) mem2reg is disabled by default, so one need to use it explicitly,\r\nwith the `-fclangir-mem2reg` option\r\n5) There are a couple bugs fixed in the code . The most important is\r\ntablegen for `BranchOp` that assumed same sized operands for branches\r\n(it was extremely hard to detect!).\r\n\r\nNote, that this `mem2reg` implementation work with flat CIR only. First\r\nof all, the MLIR's mem2reg knows how to propagate (and remove) memory\r\nslots only when we can build a graph of blocks (e.g. dom tree is a bread\r\nand butter of mem2reg). Also, given that phi nodes are represents as\r\nblocks with arguments in MLIR, there is no chance to transfer control\r\nflow and `call` a block from another region (and pass some values as\r\nwell).\r\n\r\nThe last one is important and has some relation to `canonicalizer` - may\r\nbe you remember I mentioned this problem once somewhere, when\r\nconditional branch verification fails on target block arguments number\r\nand branch operands number mismatch.\r\n\r\nfinally, short example to play with:\r\n``` \r\nint return_42() {\r\n int y = 42;\r\n return y; \r\n}\r\n```\r\nFirst, without mem2reg enabled `clang tmp.c -fclangir -emit-llvm -S -o\r\n-` :\r\n```\r\ndefine dso_local i32 @return_42() #0 !dbg !3 {\r\n %1 = alloca i32, i64 1, align 4, !dbg !7\r\n %2 = alloca i32, i64 1, align 4, !dbg !8\r\n store i32 42, ptr %2, align 4, !dbg !8\r\n %3 = load i32, ptr %2, align 4, !dbg !9\r\n store i32 %3, ptr %1, align 4, !dbg !10\r\n %4 = load i32, ptr %1, align 4, !dbg !10\r\n ret i32 %4, !dbg !10\r\n}\r\n\r\n```\r\nand with mem2reg enabled `clang tmp.c -fclangir -fclangir-mem2reg\r\n-emit-llvm -S -o -`:\r\n```\r\ndefine dso_local i32 @return_42() #0 !dbg !3 {\r\n ret i32 42, !dbg !7\r\n}\r\n```\r\n\r\n\r\nSo. What do you think? Which steps do you expect me to perform? I can\r\ntry to split this PR into parts and add interfaces one-by-one, but I'n\r\nnot sure the tests will work without all of them implemented.","shortMessageHtmlLink":"[CIR] Add support and enable MLIR's mem2reg for flat CIR (#659)"}},{"before":"dafb6eb5a33b38d9c33d29edf253ed0cdd33c618","after":"a944884b3cd928e0d49f0ff06245844d4e34e5c5","ref":"refs/heads/main","pushedAt":"2024-07-15T22:17:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR] Atomic builtins with non-const memory order (#736)\n\nFix #731\r\n\r\nImplement atomic built-in operations where the memory order argument is\r\na runtime value rather than a compile-time constant. This is necessary\r\nto support `std::atomic`. The ClangIR atomic operations don't support\r\nruntime memory orders, so this is implemented during CodeGen by\r\ngenerating a switch statement that effectively converts the runtime\r\nmemory order into a compile-time memory order.\r\n\r\nA new file, atomic-runtime.cpp, was added to the ClangIR CodeGen tests\r\nto cover this situation.","shortMessageHtmlLink":"[CIR] Atomic builtins with non-const memory order (#736)"}},{"before":"b365964449293b677b58e03e0f50b7e99824730b","after":"dafb6eb5a33b38d9c33d29edf253ed0cdd33c618","ref":"refs/heads/main","pushedAt":"2024-07-15T21:24:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][Dialect] Add minimal definitions of unified address space `offload_*` cases (#738)\n\nThis PR adds definitions of unified address space cases `offload_*`\r\ndiscussed in [this RFC\r\nthread](https://discourse.llvm.org/t/rfc-clangir-unified-address-space-design-in-clangir/79728).\r\n\r\nIt also refactors the `getValueFromLangAS` method in tablegen to a\r\nhand-written method, because it should be a non-trivial map for unified\r\nAS.\r\n\r\n---------\r\n\r\nCo-authored-by: Julian Oppermann ","shortMessageHtmlLink":"[CIR][Dialect] Add minimal definitions of unified address space `offl…"}},{"before":"5d9732a3dda4565934b10b3dbf3f1e6c88ffc336","after":"b365964449293b677b58e03e0f50b7e99824730b","ref":"refs/heads/main","pushedAt":"2024-07-13T02:57:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][CIRGen] cir.try: handle trivial ones and fix crash\n\nOG codegen does not generate any exception related content when there are not\ncalls happening inside the try block. For now we mimic OG and do the same,\nuntil we see a concrete use case that would have used emitting this code.","shortMessageHtmlLink":"[CIR][CIRGen] cir.try: handle trivial ones and fix crash"}},{"before":"d6005d15ca533973145cd5d57e2ea1658b1ef124","after":"5d9732a3dda4565934b10b3dbf3f1e6c88ffc336","ref":"refs/heads/main","pushedAt":"2024-07-12T19:46:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][CIRGen] More on dsolocal: visibility improvements (#735)\n\nIn this PR, we \r\n1. implement defaultVisibility as far as dsolocal is concerned,\r\ncurrently is either MLIR::Visibility isPublic() or isPrivate(). Now, we\r\ndon't handle hiddenVisibility and protectedVisibility from AST. I put\r\nmissFeature assert so that If in anyway we translate hiddenVisibility or\r\nprotectedVisibility into mlir::SymbolTable::Visibility::Private\r\n(hopefully not for it'd be confusing), then we need to revise this\r\ndefaultVisibility setting.\r\n2. call setNonAliasAttributes on global op upon discovery of its\r\ninitialization, thus we have globals dso_local correctly set.\r\n\r\nStill missing is lots of function should have dso_local set, but the all\r\ndepend on comDat implementation, which will come from next PR within the\r\nnext few days.","shortMessageHtmlLink":"[CIR][CIRGen] More on dsolocal: visibility improvements (#735)"}},{"before":"fa1e9b5844dc95c8cceefe657cd06cca0ccabb74","after":"d6005d15ca533973145cd5d57e2ea1658b1ef124","ref":"refs/heads/main","pushedAt":"2024-07-12T18:28:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][ABI][NFC] Make `createLowerModule` public (#734)\n\nAlthough currently LowerModule is not ready for formal usage, we need it\r\nfor target-specific lowering to LLVM. This PR temporarily public the\r\nsymbol `createLowerModule` to reuse the logic of preparing a\r\n`LowerModule`, making it easier for future refactor (making\r\n`TargetLoweringInfo` available for most stages in CIR Lowering).","shortMessageHtmlLink":"[CIR][ABI][NFC] Make createLowerModule public (#734)"}},{"before":"96b06285a76f0c3d39d8392fc631af6ec4c671a2","after":"fa1e9b5844dc95c8cceefe657cd06cca0ccabb74","ref":"refs/heads/main","pushedAt":"2024-07-12T18:17:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][ABI][NFC] AppleARM64 CXXABI handling in TargetLowering library (#733)\n\nIn [this\r\ncommit](https://github.com/llvm/clangir/commit/e5d840b72c1bdb3276094960e9746e413c6f4456),\r\nminimal support for Darwin aarch64 triples was added. But\r\nTargetLoweringInfo was not updated correspondingly.\r\n\r\nThis could lead to a failure of the test `driver.c` with\r\nCallConvLowering pass enabled (or `LowerModule` used in some other\r\nways).\r\n\r\nThis PR fixes the inconsistency and adds an extra missing feature flag\r\nfor it.","shortMessageHtmlLink":"[CIR][ABI][NFC] AppleARM64 CXXABI handling in TargetLowering library (#…"}},{"before":"42a4292c4d73bc6195c88ee6d59529374288cf0c","after":"96b06285a76f0c3d39d8392fc631af6ec4c671a2","ref":"refs/heads/main","pushedAt":"2024-07-12T18:12:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][IR] Fix parsing of dsolocal in cir.func (#732)\n\nas title. document will be in another PR as it seems to be a different\r\nupstream branch","shortMessageHtmlLink":"[CIR][IR] Fix parsing of dsolocal in cir.func (#732)"}},{"before":"965a3bc003b856c37e8fefc1116ea6a261ec54d7","after":"42a4292c4d73bc6195c88ee6d59529374288cf0c","ref":"refs/heads/main","pushedAt":"2024-07-12T00:59:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][NFCI] cir.try: improve docs and be more flexible on the region","shortMessageHtmlLink":"[CIR][NFCI] cir.try: improve docs and be more flexible on the region"}},{"before":"c1e7b871a393738f2d08ad7dc0e64b68354bf425","after":"965a3bc003b856c37e8fefc1116ea6a261ec54d7","ref":"refs/heads/main","pushedAt":"2024-07-12T00:44:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][Lowering] Exceptions: Add support for flattening cir.try\n\nFor now only handle the cir.try part, cir.catch is coming next. Using flat cir\nfor tests make this easy to incrementally build.","shortMessageHtmlLink":"[CIR][Lowering] Exceptions: Add support for flattening cir.try"}},{"before":"dd9353b3a76b8d393c45b6338549a34c9e63cbf7","after":"c1e7b871a393738f2d08ad7dc0e64b68354bf425","ref":"refs/heads/main","pushedAt":"2024-07-11T21:53:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][Fix] FP builtins should lower directly to LLVM builtins (#670)\n\nLLVM lowering for the following operations is introduced in #616 and\r\n#651: `cos`, `exp`, `exp2`, `log`, `log10`, `log2`, `sin`, `sqrt`,\r\n`fmod`, and `pow`. However, they are not lowered to their corresponding\r\nLLVM intrinsics; instead they are transformed to libc calls during\r\nlowering prepare. This does not match the upstream behavior.\r\n\r\nThis PR tries to correct this mistake. It makes all CIR FP intrinsic ops\r\nlower to their corresponding LLVM intrinsics (`fmod` is a special case\r\nand it is lowered to the `frem` LLVM instruction).","shortMessageHtmlLink":"[CIR][Fix] FP builtins should lower directly to LLVM builtins (#670)"}},{"before":"c8492103f1f15e89e101be3ef87a9421eff3842e","after":"dd9353b3a76b8d393c45b6338549a34c9e63cbf7","ref":"refs/heads/main","pushedAt":"2024-07-10T20:31:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][ThroughMLIR] Lower CIR IV load with SCF IV move operation (#729)\n\nPreviously, when lowering induction variable in forOp, we removed the IV\r\nload and replaced the users with SCF.IV.\r\n\r\nThe CIR IV users might still CIR operations during lowering forOp. It\r\ncaused the issue that CIR operation contained SCF.IV as operand which is\r\nMLIR integer type instead CIR type.\r\n\r\nThis comment lower\r\n CIR load IV_ADDR\r\nwith\r\n ARITH addi SCF.IV, 0\r\n\r\nSo SCF.IV can be propagated by OpAdaptor when lowering individual IV\r\nusers. This simplifies the lowering and fixes the issue. The redundant\r\narith.addi can be removed by later MLIR passes.","shortMessageHtmlLink":"[CIR][ThroughMLIR] Lower CIR IV load with SCF IV move operation (#729)"}},{"before":"271018836ee26f652288bd4afc23be7183b63a6f","after":"c8492103f1f15e89e101be3ef87a9421eff3842e","ref":"refs/heads/main","pushedAt":"2024-07-10T19:41:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR] Extend -cir-mlir-scf-prepare to support hoisting loop invariant BinOp (#720)\n\nThis commit extends the pass to support loop invariant BinOp hoisting as\r\nSCF forOp boundary.\r\n\r\nE.g.\r\n // (100 - 1) should be hoisted out of loop.\r\n // So the boundary could be input operand to generate SCF forOp.\r\n for (int i = 0; i < 100 - 1; ++i) {}","shortMessageHtmlLink":"[CIR] Extend -cir-mlir-scf-prepare to support hoisting loop invariant…"}},{"before":"7c4d03a87adee529988ada0dde4cc396f20a9fd0","after":"271018836ee26f652288bd4afc23be7183b63a6f","ref":"refs/heads/main","pushedAt":"2024-07-10T19:35:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][Dialect] Emit OpenCL kernel metadata (#705)\n\nThis PR introduces a new attribute `OpenCLKernelMetadataAttr` to model\r\nthe OpenCL kernel metadata structurally in CIR, with its corresponding\r\nimplementations of CodeGen, Lowering and Translation.\r\n\r\nThe `\"TypeAttr\":$vec_type_hint` part is tricky because of the absence of\r\nthe signless feature of LLVM IR, while SPIR-V requires it. According to\r\nthe spec, the final LLVM IR should encode signedness with an extra `i32`\r\nboolean value.\r\n\r\nIn this PR, the droping logic from CIR's `TypeConverter` is still used\r\nto avoid code duplication when lowering to LLVM dialect. However, the\r\nsignedness is then restored (still capsuled by a CIR attribute) and\r\ndropped again in the translation into LLVM IR.","shortMessageHtmlLink":"[CIR][Dialect] Emit OpenCL kernel metadata (#705)"}},{"before":"80e1a10002fce76d0880ef15ff8f481dcad626c1","after":"7c4d03a87adee529988ada0dde4cc396f20a9fd0","ref":"refs/heads/main","pushedAt":"2024-07-10T18:35:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][NFC] Fix bug in MLIR lowering of cir.call (#728)\n\nThis PR fixes the bug described as in\r\nhttps://github.com/llvm/clangir/issues/727#issuecomment-2219515908. It\r\nshould resolve the crash reported in #727 .","shortMessageHtmlLink":"[CIR][NFC] Fix bug in MLIR lowering of cir.call (#728)"}},{"before":"58d5f0beac714ab9d49964f556e0576aebe7d7ea","after":"80e1a10002fce76d0880ef15ff8f481dcad626c1","ref":"refs/heads/main","pushedAt":"2024-07-09T02:34:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR][LLVMLowering] Add LLVM lowering for complex operations (#723)\n\nThis PR adds LLVM lowering for the following operations related to\r\ncomplex numbers:\r\n\r\n- `cir.complex.create`,\r\n- `cir.complex.real_ptr`, and\r\n- `cir.complex.imag_ptr`.\r\n\r\nThe LLVM IR generated for `cir.complex.create` is a bit ugly since it\r\nincludes the `insertvalue` instruction, which typically is not generated\r\nin upstream CodeGen. Later we may need further CIR canonicalization\r\npasses to try folding `cir.complex.create`.","shortMessageHtmlLink":"[CIR][LLVMLowering] Add LLVM lowering for complex operations (#723)"}},{"before":"5792eb0f594c40758db884fd79a1d0f95fc0e862","after":"58d5f0beac714ab9d49964f556e0576aebe7d7ea","ref":"refs/heads/main","pushedAt":"2024-07-09T02:29:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bcardosolopes","name":"Bruno Cardoso Lopes","path":"/bcardosolopes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7115212?s=80&v=4"},"commit":{"message":"[CIR] Fix for __atomic_compare_exchange weak arg (#721)\n\nClangIR was failing on\r\n```\r\n__atomic_compare_exchange_n(&a, &old, 42, true, 5, 5);\r\n```\r\nThe `true` was the problem. It would work with a literal `0` or `1`, but\r\nnot with a literal `true` or `false`.\r\n\r\nThe bug was in `isCstWeak` in CIRGenAtomic.cpp, which was only looking\r\nfor an integral constant. It didn't recognize a boolean constant and was\r\nfalling back on the non-constant path, which isn't implemented yet.\r\n\r\nRewrite `isCstWeak` to check for both intergral and boolean constants.","shortMessageHtmlLink":"[CIR] Fix for __atomic_compare_exchange weak arg (#721)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEh3WBeAA","startCursor":null,"endCursor":null}},"title":"Activity · llvm/clangir"}