{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":75821432,"defaultBranch":"main","name":"llvm-project","ownerLogin":"llvm","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-12-07T09:39:33.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/17149993?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717402437.0","currentOid":""},"activityList":{"items":[{"before":"bf4eaec44054fa3908d50898f572e15d89119c67","after":"910098e40572f9fe6bfde161eafd1b390a356043","ref":"refs/heads/main","pushedAt":"2024-06-03T10:12:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lukel97","name":"Luke Lau","path":"/lukel97","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2488460?s=80&v=4"},"commit":{"message":"[RISCV] Match strided vector bases in RISCVGatherScatterLowering (#93972)\n\nCurrently we only match GEPs with a scalar base pointer, but a common\r\npattern that's emitted from the loop vectorizer is a strided vector base\r\nplus some sort of scalar offset:\r\n\r\n %base = getelementptr i64, ptr %p, %step\r\n %gep = getelementptr i64, %base, i64 %offset\r\n\r\nThis is common for accesses into a struct e.g. f[i].b below:\r\n\r\n struct F { int a; char b; };\r\n\r\n void foo(struct F *f) {\r\n for (int i = 0; i < 1024; i += 2) {\r\n f[i].a++;\r\n f[i].b++;\r\n }\r\n }\r\n\r\nThis patch handles this case in RISCVGatherScatterLowering by recursing\r\non the base pointer if it's a vector.\r\n\r\nWith this we can convert roughly 80% of the indexed loads and stores\r\nemitted to strided loads and stores on SPEC CPU 2017, -O3\r\n-march=rva22u64_v","shortMessageHtmlLink":"[RISCV] Match strided vector bases in RISCVGatherScatterLowering (#93972"}},{"before":"4f2dba3c0b4e5f11b968a840b5f70070f5288cfe","after":"bf4eaec44054fa3908d50898f572e15d89119c67","ref":"refs/heads/main","pushedAt":"2024-06-03T09:55:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcauberer","name":"Marc Auberer","path":"/marcauberer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59527509?s=80&v=4"},"commit":{"message":"[llvm] Replace deprecated aligned_storage with aligned byte array (#94169)\n\n`std::aligned_storage` is deprecated with C++23, see\r\n[here](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1413r3.pdf).\r\n\r\nThis replaces the usages of `std::aligned_storage` within llvm (only one\r\nin ADT and one in Support) with an aligned `std::byte` array.\r\nI will provide patches for other subcomponents as well.","shortMessageHtmlLink":"[llvm] Replace deprecated aligned_storage with aligned byte array (#9…"}},{"before":"e28b07019b47d3ca820ee9305b4b673f61febfec","after":"4f2dba3c0b4e5f11b968a840b5f70070f5288cfe","ref":"refs/heads/main","pushedAt":"2024-06-03T09:47:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Endilll","name":"Vlad Serebrennikov","path":"/Endilll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12883766?s=80&v=4"},"commit":{"message":"[clang] Add tests for some CWG issues from 2024-05-31 telecon (#94167)\n\nThis patch adds tests for some CWG issues that were discussed at\r\n2024-05-31 telecon. While all of them are tentatively ready at the\r\nmoment, I'm expecting them to be moved to DRs without changes. CWG\r\nissues that are expected to have follow-ups are not included in this PR.\r\n\r\nI also realized that `cwg28xx.cpp` has been testing without\r\n`-pedantic-errors`. I fixed that. Fortunately, no existing tests had\r\nanything hidden by the lack of this flag.\r\n\r\nThe following CWG issues are covered:\r\n[CWG2877](https://cplusplus.github.io/CWG/issues/2877.html) \"Type-only\r\nlookup for _using-enum-declarator_\"\r\n[CWG2882](https://cplusplus.github.io/CWG/issues/2882.html) \"Unclear\r\ntreatment of conversion to `void`\"\r\n[CWG2883](https://cplusplus.github.io/CWG/issues/2883.html) \"Definition\r\nof \"odr-usable\" ignores lambda scopes\"\r\n[CWG2885](https://cplusplus.github.io/CWG/issues/2885.html)\r\n\"Non-eligible trivial default constructors\"\r\n[CWG2886](https://cplusplus.github.io/CWG/issues/2886.html) \"Temporaries\r\nand trivial potentially-throwing special member functions\"","shortMessageHtmlLink":"[clang] Add tests for some CWG issues from 2024-05-31 telecon (#94167)"}},{"before":"a5641f106affc3afb899eee42eb40c2ded81f411","after":"e28b07019b47d3ca820ee9305b4b673f61febfec","ref":"refs/heads/main","pushedAt":"2024-06-03T09:42:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"llvmgnsyncbot","name":null,"path":"/llvmgnsyncbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55391611?s=80&v=4"},"commit":{"message":"[gn build] Port 8918d35dbde1","shortMessageHtmlLink":"[gn build] Port 8918d35"}},{"before":"5bfc444524d74b714b9efb2dc00c7bc36a3838e2","after":"a5641f106affc3afb899eee42eb40c2ded81f411","ref":"refs/heads/main","pushedAt":"2024-06-03T09:35:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Keenuts","name":"Nathan Gauër","path":"/Keenuts","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4282252?s=80&v=4"},"commit":{"message":"[SPIR-V] Add pass to merge convergence region exit targets (#92531)\n\nThe structurizer required regions to be SESE: single entry, single exit.\r\nThis new pass transforms multiple-exit regions into single-exit regions.\r\n\r\n```\r\n +---+\r\n | A |\r\n +---+\r\n / \\\r\n +---+ +---+\r\n | B | | C | A, B & C belongs to the same convergence region.\r\n +---+ +---+\r\n | |\r\n +---+ +---+\r\n | D | | E | C & D belongs to the parent convergence region.\r\n +---+ +---+ This means B & C are the exit blocks of the region.\r\n \\ / And D & E the targets of those exits.\r\n \\ /\r\n |\r\n +---+\r\n | F |\r\n +---+\r\n```\r\n\r\nThis pass would assign one value per exit target:\r\nB = 0\r\nC = 1\r\n\r\nThen, create one variable per exit block (B, C), and assign it to the\r\ncorrect value: in B, the variable will have the value 0, and in C, the\r\nvalue 1.\r\n\r\nThen, we'd create a new block H, with a PHI node to gather those 2\r\nvariables, and a switch, to route to the correct target.\r\n\r\nFinally, the branches in B and C are updated to exit to this new block.\r\n\r\n```\r\n +---+\r\n | A |\r\n +---+\r\n / \\\r\n +---+ +---+\r\n | B | | C |\r\n +---+ +---+\r\n \\ /\r\n +---+\r\n | H |\r\n +---+\r\n / \\\r\n +---+ +---+\r\n | D | | E |\r\n +---+ +---+\r\n \\ /\r\n \\ /\r\n |\r\n +---+\r\n | F |\r\n +---+\r\n```\r\n\r\nNote: the variable is set depending on the condition used to branch. If\r\nB's terminator was conditional, the variable would be set using a\r\nSELECT.\r\nAll internal edges of a region are left intact, only exiting edges are\r\nupdated.\r\n\r\n---------\r\n\r\nSigned-off-by: Nathan Gauër ","shortMessageHtmlLink":"[SPIR-V] Add pass to merge convergence region exit targets (#92531)"}},{"before":"6b7444964a8d028989beee554a1f5c61d16a1cac","after":"5bfc444524d74b714b9efb2dc00c7bc36a3838e2","ref":"refs/heads/main","pushedAt":"2024-06-03T09:33:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ergawy","name":"Kareem Ergawy","path":"/ergawy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433755?s=80&v=4"},"commit":{"message":"[flang] Emit `argNo` debug info only for `func` block args (#93921)\n\nFixes a bug uncovered by\r\n[pr43337.f90](https://github.com/llvm/llvm-test-suite/blob/main/Fortran/gfortran/regression/gomp/pr43337.f90)\r\nin the test suite.\r\n\r\nIn particular, this emits `argNo` debug info only if the parent op of a\r\nblock is a `func.func` op. This avoids DI conflicts when a function\r\ncontains a nested OpenMP region that itself has block arguments with DI\r\nattached to them; for example, `omp.parallel` with delayed privatization\r\nenabled.","shortMessageHtmlLink":"[flang] Emit argNo debug info only for func block args (#93921)"}},{"before":"d00731cb7fcc91047531069e029964a39935a5bb","after":"6b7444964a8d028989beee554a1f5c61d16a1cac","ref":"refs/heads/main","pushedAt":"2024-06-03T09:27:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dtcxzyw","name":"Yingwei Zheng","path":"/dtcxzyw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15650457?s=80&v=4"},"commit":{"message":"[RISCV] Remove experimental from Zabha (#93831)\n\nThe Zabha extension was ratified in April 2024.\r\n\r\nCo-authored-by: Alexandre Ghiti ","shortMessageHtmlLink":"[RISCV] Remove experimental from Zabha (#93831)"}},{"before":"6abf361953e9c5d019a72fd83765498d269eb080","after":"d00731cb7fcc91047531069e029964a39935a5bb","ref":"refs/heads/main","pushedAt":"2024-06-03T09:24:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"[lldb] s/assertEquals/assertEqual in TestDAP_variables_children","shortMessageHtmlLink":"[lldb] s/assertEquals/assertEqual in TestDAP_variables_children"}},{"before":"770b6c792472e1ff87e8598728d37c516861218e","after":"6abf361953e9c5d019a72fd83765498d269eb080","ref":"refs/heads/main","pushedAt":"2024-06-03T09:18:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"DavidSpickett","name":"David Spickett","path":"/DavidSpickett","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/974874?s=80&v=4"},"commit":{"message":"[lldb][test] Fix D lang mangling test on Windows (#94196)\n\nOn Windows the function does not have a symbol associated with it:\r\nFunction: id = {0x000001c9}, name = \"_Dfunction\", range =\r\n[0x0000000140001000-0x0000000140001004)\r\n LineEntry: <...>\r\n\r\nWhereas it does on Linux:\r\nFunction: id = {0x00000023}, name = \"_Dfunction\", range =\r\n[0x0000000000000734-0x0000000000000738)\r\n LineEntry: <...>\r\nSymbol: id = {0x00000058}, range =\r\n[0x0000000000000734-0x0000000000000738), name=\"_Dfunction\"\r\n\r\nThis means that frame.symbol is not valid on Windows.\r\n\r\nHowever, frame.function is valid and it also has a \"mangled\" attribute.\r\n\r\nSo I've updated the test to check the symbol if we've got it, and the\r\nfunction always.\r\n\r\nIn both cases we check that mangled is empty (meaning it has not been\r\ntreated as mangled) and that the display name matches the original\r\nsymbol name.","shortMessageHtmlLink":"[lldb][test] Fix D lang mangling test on Windows (#94196)"}},{"before":"6a217307641972e27f9eee1adb80e649e10f229f","after":"770b6c792472e1ff87e8598728d37c516861218e","ref":"refs/heads/main","pushedAt":"2024-06-03T09:16:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DavidSpickett","name":"David Spickett","path":"/DavidSpickett","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/974874?s=80&v=4"},"commit":{"message":"[lldb][test] Add missing import in D lang mangling test","shortMessageHtmlLink":"[lldb][test] Add missing import in D lang mangling test"}},{"before":"8918d35dbde126c95350b674a2bb102692d90260","after":"6a217307641972e27f9eee1adb80e649e10f229f","ref":"refs/heads/main","pushedAt":"2024-06-03T09:16:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tblah","name":"Tom Eccles","path":"/tblah","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3716681?s=80&v=4"},"commit":{"message":"[flang][OpenMP][NFC] Reduce FunctionFiltering pass boilerplate (#93951)\n\nThe pass constructor can be generated automatically.\r\n\r\nThis pass doesn't need to be adapted to support other top level\r\noperations because it is specifically supposed to filter functions. We\r\ndon't need to filter non-function top level operations because without\r\nuse inside of functions they shouldn't lead to any codegen.","shortMessageHtmlLink":"[flang][OpenMP][NFC] Reduce FunctionFiltering pass boilerplate (#93951)"}},{"before":"6f5ef386997e1ed02643c485d7af3d12eafd602e","after":"65b9481829c850ec00d5c41f4faf565ee63a639c","ref":"refs/heads/users/matthias-springer/greedy_pattern_composition","pushedAt":"2024-06-03T09:11:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthias-springer","name":"Matthias Springer","path":"/matthias-springer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2033320?s=80&v=4"},"commit":{"message":"Update mlir/include/mlir/IR/PatternMatch.h\n\nCo-authored-by: Markus Böck ","shortMessageHtmlLink":"Update mlir/include/mlir/IR/PatternMatch.h"}},{"before":"09c0607919c958c1a816acd58cc6c6585aec51a6","after":"8918d35dbde126c95350b674a2bb102692d90260","ref":"refs/heads/main","pushedAt":"2024-06-03T09:09:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cor3ntin","name":"cor3ntin","path":"/cor3ntin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1409019?s=80&v=4"},"commit":{"message":"[clang][Modules] Move `ASTSourceDescriptor` into its own file (#67930)","shortMessageHtmlLink":"[clang][Modules] Move ASTSourceDescriptor into its own file (#67930)"}},{"before":"763b96c86d81d51d0db430791a61fd1e8a406bce","after":"09c0607919c958c1a816acd58cc6c6585aec51a6","ref":"refs/heads/main","pushedAt":"2024-06-03T09:02:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DavidSpickett","name":"David Spickett","path":"/DavidSpickett","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/974874?s=80&v=4"},"commit":{"message":"[lldb][test] Skip D lang mangling test on Windows\n\nWhile the fix is reviewed.","shortMessageHtmlLink":"[lldb][test] Skip D lang mangling test on Windows"}},{"before":"ce73e17e3ab5ccfa33a977843e82a9bbfb6b4ce3","after":"763b96c86d81d51d0db430791a61fd1e8a406bce","ref":"refs/heads/main","pushedAt":"2024-06-03T08:34:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"labath","name":"Pavel Labath","path":"/labath","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3129331?s=80&v=4"},"commit":{"message":"[lldb] Avoid (unlimited) GetNumChildren calls when printing values (#93946)\n\nFor some data formatters, even getting the number of children can be an\r\nexpensive operations (e.g., needing to walk a linked list to determine\r\nthe number of elements). This is then wasted work when we know we will\r\nbe printing only small number of them.\r\n\r\nThis patch replaces the calls to GetNumChildren (at least those on the\r\n\"frame var\" path) with the calls to the capped version, passing the\r\nvalue of `max-children-count` setting (plus one)","shortMessageHtmlLink":"[lldb] Avoid (unlimited) GetNumChildren calls when printing values (#…"}},{"before":"264b1b24869eb45463a98d70e9b9e991092acc28","after":"ce73e17e3ab5ccfa33a977843e82a9bbfb6b4ce3","ref":"refs/heads/main","pushedAt":"2024-06-03T08:34:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"VyacheslavLevytskyy","name":"Vyacheslav Levytskyy","path":"/VyacheslavLevytskyy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89994100?s=80&v=4"},"commit":{"message":"[SPIR-V] Validate type of the last parameter of OpGroupWaitEvents (#93661)\n\nThis PR fixes invalid OpGroupWaitEvents emission to ensure that SPIR-V\r\nBackend inserts a bitcast before OpGroupWaitEvents if the last argument\r\nis a pointer that doesn't point to OpTypeEvent.","shortMessageHtmlLink":"[SPIR-V] Validate type of the last parameter of OpGroupWaitEvents (#9…"}},{"before":"b71434f8b33b6538554a092155c7e8477b2899e1","after":"264b1b24869eb45463a98d70e9b9e991092acc28","ref":"refs/heads/main","pushedAt":"2024-06-03T08:31:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"davemgreen","name":"David Green","path":"/davemgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12527554?s=80&v=4"},"commit":{"message":"[ARM] Convert vector fdiv+fcvt fixed-point combine to fmul.\n\nInstcombine will convert fdiv by a power-2 to fmul, this converts the\nPerformVDIVCombine that converts fdiv+fcvt to fixed-point fcvt to fmul+fcvt.\nThe fdiv tests will look worse, but won't appear in practice (and should be\nimproved again by #93882).","shortMessageHtmlLink":"[ARM] Convert vector fdiv+fcvt fixed-point combine to fmul."}},{"before":"ccb73e882b2d727877cfda42a14a6979cfd31f04","after":"b71434f8b33b6538554a092155c7e8477b2899e1","ref":"refs/heads/main","pushedAt":"2024-06-03T08:22:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sdesmalen-arm","name":"Sander de Smalen","path":"/sdesmalen-arm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36851054?s=80&v=4"},"commit":{"message":"[AArch64] Avoid NEON ORR when NEON and SVE are unavailable (#93940)\n\nFor streaming-compatible functions with only +sme, we can't use\r\na NEON ORR (aliased as 'mov') for copies of Q-registers, so\r\nwe need to use a spill/fill instead.\r\n\r\nThis also fixes the fill, which should use the post-incrementing\r\naddressing mode.","shortMessageHtmlLink":"[AArch64] Avoid NEON ORR when NEON and SVE are unavailable (#93940)"}},{"before":"8b7a650e128d6f2bfec9b0768169cf4aaa4af337","after":null,"ref":"refs/heads/users/ChuanqiXu9/NoTransitiveDeclChange","pushedAt":"2024-06-03T08:13:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ChuanqiXu9","name":"Chuanqi Xu","path":"/ChuanqiXu9","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68680648?s=80&v=4"}},{"before":"84742cd867b0e7e76da6bdc08cc7c56beac86168","after":"ccb73e882b2d727877cfda42a14a6979cfd31f04","ref":"refs/heads/main","pushedAt":"2024-06-03T08:13:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ChuanqiXu9","name":"Chuanqi Xu","path":"/ChuanqiXu9","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68680648?s=80&v=4"},"commit":{"message":"[serialization] no transitive decl change (#92083)\n\nFollowing of https://github.com/llvm/llvm-project/pull/86912\r\n\r\n#### Motivation Example\r\n\r\nThe motivation of the patch series is that, for a module interface unit\r\n`X`, when the dependent modules of `X` changes, if the changes is not\r\nrelevant with `X`, we hope the BMI of `X` won't change. For the specific\r\npatch, we hope if the changes was about irrelevant declaration changes,\r\nwe hope the BMI of `X` won't change. **However**, I found the patch\r\nitself is not very useful in practice, since the adding or removing\r\ndeclarations, will change the state of identifiers and types in most\r\ncases.\r\n\r\nThat said, for the most simple example,\r\n\r\n```\r\n// partA.cppm\r\nexport module m:partA;\r\n\r\n// partA.v1.cppm\r\nexport module m:partA;\r\nexport void a() {}\r\n\r\n// partB.cppm\r\nexport module m:partB;\r\nexport void b() {}\r\n\r\n// m.cppm\r\nexport module m;\r\nexport import :partA;\r\nexport import :partB;\r\n\r\n// onlyUseB;\r\nexport module onlyUseB;\r\nimport m;\r\nexport inline void onluUseB() {\r\n b();\r\n}\r\n```\r\n\r\nthe BMI of `onlyUseB` will change after we change the implementation of\r\n`partA.cppm` to `partA.v1.cppm`. Since `partA.v1.cppm` introduces new\r\nidentifiers and types (the function prototype).\r\n\r\nSo in this patch, we have to write the tests as:\r\n\r\n```\r\n// partA.cppm\r\nexport module m:partA;\r\nexport int getA() { ... }\r\nexport int getA2(int) { ... }\r\n\r\n// partA.v1.cppm\r\nexport module m:partA;\r\nexport int getA() { ... }\r\nexport int getA(int) { ... }\r\nexport int getA2(int) { ... }\r\n\r\n// partB.cppm\r\nexport module m:partB;\r\nexport void b() {}\r\n\r\n// m.cppm\r\nexport module m;\r\nexport import :partA;\r\nexport import :partB;\r\n\r\n// onlyUseB;\r\nexport module onlyUseB;\r\nimport m;\r\nexport inline void onluUseB() {\r\n b();\r\n}\r\n```\r\n\r\nso that the new introduced declaration `int getA(int)` doesn't introduce\r\nnew identifiers and types, then the BMI of `onlyUseB` can keep\r\nunchanged.\r\n\r\nWhile it looks not so great, the patch should be the base of the patch\r\nto erase the transitive change for identifiers and types since I don't\r\nknow how can we introduce new types and identifiers without introducing\r\nnew declarations. Given how tightly the relationship between\r\ndeclarations, types and identifiers, I think we can only reach the ideal\r\nstate after we made the series for all of the three entties.\r\n\r\n#### Design details\r\n\r\nThe design of the patch is similar to\r\nhttps://github.com/llvm/llvm-project/pull/86912, which extends the\r\n32-bit DeclID to 64-bit and use the higher bits to store the module file\r\nindex and the lower bits to store the Local Decl ID.\r\n\r\nA slight difference is that we only use 48 bits to store the new DeclID\r\nsince we try to use the higher 16 bits to store the module ID in the\r\nprefix of Decl class. Previously, we use 32 bits to store the module ID\r\nand 32 bits to store the DeclID. I don't want to allocate additional\r\nspace so I tried to make the additional space the same as 64 bits. An\r\npotential interesting thing here is about the relationship between the\r\nmodule ID and the module file index. I feel we can get the module file\r\nindex by the module ID. But I didn't prove it or implement it. Since I\r\nwant to make the patch itself as small as possible. We can make it in\r\nthe future if we want.\r\n\r\nAnother change in the patch is the new concept Decl Index, which means\r\nthe index of the very big array `DeclsLoaded` in ASTReader. Previously,\r\nthe index of a loaded declaration is simply the Decl ID minus\r\nPREDEFINED_DECL_NUMs. So there are some places they got used\r\nambiguously. But this patch tried to split these two concepts.\r\n\r\n#### Overhead\r\n\r\nAs https://github.com/llvm/llvm-project/pull/86912 did, the change will\r\nincrease the on-disk PCM file sizes. As the declaration ID may be the\r\nmost IDs in the PCM file, this can have the biggest impact on the size.\r\nIn my experiments, this change will bring 6.6% increase of the on-disk\r\nPCM size. No compile-time performance regression observed. Given the\r\nbenefits in the motivation example, I think the cost is worthwhile.","shortMessageHtmlLink":"[serialization] no transitive decl change (#92083)"}},{"before":"f4a7f81a914ca8aceddd9b7a71e36bb0828ae052","after":"84742cd867b0e7e76da6bdc08cc7c56beac86168","ref":"refs/heads/main","pushedAt":"2024-06-03T08:08:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"philnik777","name":"Nikolas Klauser","path":"/philnik777","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31891256?s=80&v=4"},"commit":{"message":"[libc++][test] Mark `optional` test functions as `TEST_CONSTEXPR_CXX20` (#94172)\n\n[P2231R1](https://wg21.link/P2231R1) \"Missing `constexpr` in\r\n`std::optional` and `std::variant`\" was accepted as a C++20 Defect\r\nReport, not a C++17 Defect Report. Accordingly, `test_empty_emplace()`\r\nand `check_reset()` should be marked as `TEST_CONSTEXPR_CXX20`. Note\r\nthat their `static_assert`s are properly guarded:\r\n\r\n\r\nhttps://github.com/llvm/llvm-project/blob/4ce65423be0ba1d90c11b6a79981d6314e1cf36d/libcxx/test/std/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp#L270-L272\r\n\r\n\r\nhttps://github.com/llvm/llvm-project/blob/4ce65423be0ba1d90c11b6a79981d6314e1cf36d/libcxx/test/std/utilities/optional/optional.object/optional.object.mod/reset.pass.cpp#L53-L55\r\n\r\nFound while running libc++'s tests with MSVC's STL, as we activate our\r\n`constexpr` here for C++20 and above.","shortMessageHtmlLink":"[libc++][test] Mark optional test functions as `TEST_CONSTEXPR_CXX2…"}},{"before":"5b4445e5e5d09b4bdf0e3c1fab52719bfb3f75e2","after":"f4a7f81a914ca8aceddd9b7a71e36bb0828ae052","ref":"refs/heads/main","pushedAt":"2024-06-03T08:04:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"owenca","name":"Owen Pan","path":"/owenca","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6434360?s=80&v=4"},"commit":{"message":"[clang-format][doc] Minor cleanup","shortMessageHtmlLink":"[clang-format][doc] Minor cleanup"}},{"before":"a41a20bd47968b16bb84761578628752080e9f24","after":"5b4445e5e5d09b4bdf0e3c1fab52719bfb3f75e2","ref":"refs/heads/main","pushedAt":"2024-06-03T08:03:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"davemgreen","name":"David Green","path":"/davemgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12527554?s=80&v=4"},"commit":{"message":"[AArch64] Add a test for converting fdiv by constant to fmul. NFC","shortMessageHtmlLink":"[AArch64] Add a test for converting fdiv by constant to fmul. NFC"}},{"before":"12c85cd31088f64a1afbc5b2133dde2e1d2516d3","after":"a41a20bd47968b16bb84761578628752080e9f24","ref":"refs/heads/main","pushedAt":"2024-06-03T07:48:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ChuanqiXu9","name":"Chuanqi Xu","path":"/ChuanqiXu9","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68680648?s=80&v=4"},"commit":{"message":"[NFC] [C++20] [Modules] [Reduced BMI] Reorder Emitting reduced BMI and normal BMI for named modules\n\nWhen we generate the reduced BMI on the fly, the order of the emitting\nphase is different within `-emit-obj` and `-emit-module-interface`.\nAlthough this is meant to be fine, we observed it in\nhttps://github.com/llvm/llvm-project/issues/93859 (that the different phase order may cause problems).\nAlso it turns out to be a different fundamental reason to the orders.\n\nBut it might be fine to make the order of emitting reducing BMI at first\nto avoid such confusions in the future.","shortMessageHtmlLink":"[NFC] [C++20] [Modules] [Reduced BMI] Reorder Emitting reduced BMI an…"}},{"before":"ef4c91c44311f96f174609219e126011ec085d1f","after":"12c85cd31088f64a1afbc5b2133dde2e1d2516d3","ref":"refs/heads/main","pushedAt":"2024-06-03T07:23:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hokein","name":"Haojian Wu","path":"/hokein","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2557445?s=80&v=4"},"commit":{"message":"[bazel]: port for the libc change 142afde0eba4940f2b331274e9a3535fee960f35","shortMessageHtmlLink":"[bazel]: port for the libc change 142afde"}},{"before":"a68638bf6a6a5cb60947753ccaf7d1de80f6c89e","after":"ef4c91c44311f96f174609219e126011ec085d1f","ref":"refs/heads/main","pushedAt":"2024-06-03T07:23:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"davemgreen","name":"David Green","path":"/davemgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12527554?s=80&v=4"},"commit":{"message":"[ARM] Rewrite vdiv_combine.ll test. NFC\n\nInstcombine will convert the fdiv by constant to fmul. This cleans up the\nvdiv_combine.ll test and adds fmul variants of the existing fdiv test.","shortMessageHtmlLink":"[ARM] Rewrite vdiv_combine.ll test. NFC"}},{"before":"5161a3f6e5e92c78c33aed5e38e0680a1a9b088e","after":"a68638bf6a6a5cb60947753ccaf7d1de80f6c89e","ref":"refs/heads/main","pushedAt":"2024-06-03T06:59:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ChuanqiXu9","name":"Chuanqi Xu","path":"/ChuanqiXu9","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68680648?s=80&v=4"},"commit":{"message":"[C++20] [Modules] [Reduced BMI] Handling Deduction Guide in reduced BMI\ncarefully\n\nClose https://github.com/llvm/llvm-project/issues/93859\n\nThe direct pattern of the issue is that, in a reduced BMI, we're going\nto wrtie a class but we didn't write the deduction guide. Although we\nhandled deduction guide, but we tried to record the found deduction\nguide from `noload_lookup` directly.\n\nIt is slightly problematic if the found deduction guide is from AST.\ne.g.,\n\n```\nmodule;\nexport module m;\nimport xxx; // Also contains the class and the deduction guide\n...\n```\n\nThen when we writes the class in the current file, we tried to record\nthe deduction guide, but `noload_lookup` returns the deduction guide\nfrom the AST file then we didn't record the local deduction guide. Then\nmismatch happens.\n\nTo mitiagte the problem, we tried to record the canonical declaration\nfor the decution guide.","shortMessageHtmlLink":"[C++20] [Modules] [Reduced BMI] Handling Deduction Guide in reduced BMI"}},{"before":"aaa4ff88d6a2ef69053211e7bbee623f24723b51","after":"5161a3f6e5e92c78c33aed5e38e0680a1a9b088e","ref":"refs/heads/main","pushedAt":"2024-06-03T06:59:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"martinboehme","name":null,"path":"/martinboehme","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/29098113?s=80&v=4"},"commit":{"message":"[clang][dataflow] Rewrite `getReferencedDecls()` with a `RecursiveASTVisitor`. (#93461)\n\nWe previously had a hand-rolled recursive traversal here that was\nexactly what\n`RecursiveASTVistor` does anyway. Using the visitor not only eliminates\nthe\nexplicit traversal logic but also allows us to introduce a common\nvisitor base\nclass for `getReferencedDecls()` and `ResultObjectVisitor`, ensuring\nthat the\ntwo are consistent in terms of the nodes they visit. Inconsistency\nbetween these\ntwo has caused crashes in the past when `ResultObjectVisitor` tried to\npropagate\nresult object locations to entities that weren't modeled becasue\n`getReferencedDecls()` didn't visit them.","shortMessageHtmlLink":"[clang][dataflow] Rewrite getReferencedDecls() with a `RecursiveAST…"}},{"before":"10e7671d9adf1da2f08d67fde6585c707ac4c1d2","after":"aaa4ff88d6a2ef69053211e7bbee623f24723b51","ref":"refs/heads/main","pushedAt":"2024-06-03T06:49:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ChuanqiXu9","name":"Chuanqi Xu","path":"/ChuanqiXu9","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68680648?s=80&v=4"},"commit":{"message":"[clang][Modules] Remove unnecessary includes of `Module.h` (#93417)","shortMessageHtmlLink":"[clang][Modules] Remove unnecessary includes of Module.h (#93417)"}},{"before":"f367eaa4647404414ab256d2ac3c4d4f6c6d1363","after":"10e7671d9adf1da2f08d67fde6585c707ac4c1d2","ref":"refs/heads/main","pushedAt":"2024-06-03T06:24:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nikic","name":"Nikita Popov","path":"/nikic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216080?s=80&v=4"},"commit":{"message":"Reland \"[InstCombine] Fold (sub nuw X, (Y << nuw Z)) >>u exact Z --> (X >>u exact Z) sub nuw Y\" (#93571)\n\nThis is the same fold as ((X << nuw Z) sub nuw Y) >>u exact Z --> X sub\r\nnuw (Y >>u exact Z), but with the sub operands swapped.\r\n\r\nAlive2 Proof:\r\nhttps://alive2.llvm.org/ce/z/pT-RxG","shortMessageHtmlLink":"Reland \"[InstCombine] Fold (sub nuw X, (Y << nuw Z)) >>u exact Z --> …"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWsm7kQA","startCursor":null,"endCursor":null}},"title":"Activity · llvm/llvm-project"}