- Dec 13, 2023
-
-
paperchalice authored
- `CollectorMetadataAnalysis` provides `GCStrategyMap`. - `GCFunctionAnalysis` provides `GCFunctionInfo`. `GCStrategyMap` owns `GCStrategy` pointers and this pass is used by `AsmPrinter` to iterate all GC strategies. Most passes that require `GCModuleInfo` actually require the `GCFunctionInfo`, so add `GCFunctionAnalysis` for convenience.
-
Mariya Podchishchaeva authored
Current context set to where alias was met, not where it is declared caused incorrect access check in case alias referenced private members of the parent class. This is a recommit of 6b1aa319 with a slight modification in order to fix reported regression. Fixes https://github.com/llvm/llvm-project/issues/41693
-
Pierre van Houtryve authored
See https://discourse.llvm.org/t/rfc-make-globalisel-match-table-entries-1-byte-instead-of-8/75411 This helps reduce llc's binary size, at the cost of some added complexity to the MatchTable machinery.
-
Mariya Podchishchaeva authored
Normally warning is not reported when a field has default initializer. Do so for anonymous unions with default initializers as well. No release note since it is a regression in clang 18. Fixes https://github.com/llvm/llvm-project/issues/70384
-
David Green authored
-
Vitaly Buka authored
It's required for hwasan `aliasing` mode.
-
Yeting Kuo authored
Bump to https://github.com/riscv/riscv-cfi/releases/tag/v0.4.0. Actually there is no functional change here.
-
Vitaly Buka authored
This avoids internal libstdc++ leaks.
-
Fangrui Song authored
-
Vitaly Buka authored
-
Sizov Nikita authored
``` CommutativeBinOp(select(V, A, B), select(V, B, A) --> CommutativeBinOp(A, B) CommutativeIntrinsicCall(select(V, A, B), select(V, B, A), ...) --> CommutativeIntrinsicCall(A, B, ...) ``` https://alive2.llvm.org/ce/z/8CDUZ4 Closes #73904
-
Eric authored
Also add links to github actions workflow.
-
serge-sans-paille authored
We only allow for assembly code in naked function, and PGO instrumentation (esp. temporal instrumentation that introduces a function call) can wreak havoc in this. Fix #74573
-
Vitaly Buka authored
Fixes sanitizer-ppc64le-linux bot.
-
Yingchi Long authored
Currently on mcpu=v3 we do not support sdiv, srem instructions. And the backend crashes with stacktrace & coredump, which is misleading for end users, as this is not a "bug" Add llvm bug reporting for sdiv/srem on ISel legalize-op phase. For clang frontend we can get detailed location & bug report. $ build/bin/clang -g -target bpf -c local/sdiv.c local/sdiv.c:1:35: error: unsupported signed division, please convert to unsigned div/mod. 1 | int sdiv(int a, int b) { return a / b; } | ^ 1 error generated. Fixes: #70433 Fixes: #48647 This also improves error handling for dynamic stack allocation: local/vla.c:2:3: error: unsupported dynamic stack allocation 2 | int b[n]; | ^ 1 error generated. Fixes: https://github.com/llvm/llvm-project/issues/57171 -
Matheus Izvekov authored
Reverts llvm/llvm-project#75104 Original commit causes clang to generate invalid IR: ``` mismatched subprogram between llvm.dbg.declare variable and !dbg attachment call void @llvm.dbg.declare(metadata ptr %4, metadata !34468, metadata !DIExpression(DW_OP_plus_uconst, 176)), !dbg !34467 ```
-
Tacet authored
This commit introduces basic annotations for `std::basic_string`, mirroring the approach used in `std::vector` and `std::deque`. Initially, only long strings with the default allocator will be annotated. Short strings (_SSO - short string optimization_) and strings with non-default allocators will be annotated in the near future, with separate commits dedicated to enabling them. The process will be similar to the workflow employed for enabling annotations in `std::deque`. **Please note**: these annotations function effectively only when libc++ and libc++abi dylibs are instrumented (with ASan). This aligns with the prevailing behavior of Memory Sanitizer. To avoid breaking everything, this commit also appends `_LIBCPP_INSTRUMENTED_WITH_ASAN` to `__config_site` whenever libc++ is compiled with ASan. If this macro is not defined, string annotations are not enabled. However, linking a binary that does **not** annotate strings with a dynam...
-
Vitaly Buka authored
-
Matheus Izvekov authored
Add test for https://github.com/llvm/llvm-project/issues/75115
-
paperchalice authored
-
Vitaly Buka authored
They already include workarounds.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Cyndy Ishida authored
This reverts commit aa217eb0. This reverts commit 634feddc. This breaks buildbots by introducing cycle dependency between libObject and TextAPI and breaks gcc compiles on buildbots.
-
Vitaly Buka authored
-
Cyndy Ishida authored
* Reported in buildbot failures
-
Cyndy Ishida authored
Add support for reading binary Mach-o dynamic libraries. It uses libObject APIs for extracting information relavant to TAPI and tbd files. This includes but is not limited to load commands encode data like install names, current/compat versions and symbols.
-
Nico Weber authored
-
Craig Topper authored
Rather than using size_t, use uint32_t. We don't have more than 4 billion intrinsics.
-
Greg Clayton authored
This patch revives the effort to get this Phabricator patch into upstream: https://reviews.llvm.org/D137900 This patch was accepted before in Phabricator but I found some -gsimple-template-names issues that are fixed in this patch. A fixed up version of the description from the original patch starts now. This patch started off trying to fix Module::FindFirstType() as it sometimes didn't work. The issue was the SymbolFile plug-ins didn't do any filtering of the matching types they produced, and they only looked up types using the type basename. This means if you have two types with the same basename, your type lookup can fail when only looking up a single type. We would ask the Module::FindFirstType to lookup "Foo::Bar" and it would ask the symbol file to find only 1 type matching the basename "Bar", and then we would filter out any matches that didn't match "Foo::Bar". So if the SymbolFile f...
-
paperchalice authored
Port `CFGuard` to new pass manager, add a pass parameter to choose guard mechanism.
-
Arthur Eubanks authored
Revert "[X86] Set SHF_X86_64_LARGE for globals with explicit well-known large section name (#74381)" This reverts commit 323451ab. Code with these section names in the wild doesn't compile because support for large globals in the small code model is not complete yet.
-
Aart Bik authored
Separates actual transformation files from supporting utility files in the transforms directory. Includes a bazel overlay fix for the build (as well as a bit of cleanup of that file to be less verbose and more flexible).
-
Stella Laurenzo authored
I was not able to fully triage why this just started failing on one of our bots as it seems that the use was added 4 months ago. I would assume that it was accidentally coming in transitively in some way as the dep was definitely missing. For context, this started failing in [our byo_llvm](https://github.com/openxla/iree/blob/main/build_tools/llvm/byo_llvm.sh) build on a stock build of MLIR on top of an existing LLVM. We were getting: ``` ld.lld: error: undefined symbol: mlir::registerSPIRVDialectTranslation(mlir::DialectRegistry&) >>> referenced by mlir-opt.cpp >>> tools/mlir-opt/CMakeFiles/mlir-opt.dir/mlir-opt.cpp.o:(main) ```
-
Vitaly Buka authored
This allows to remove `asan_init_is_running` which likely had a data race. Simplifies https://github.com/llvm/llvm-project/pull/74086 and reduces a difference between platforms. Reviewers: zacklj89, eugenis, dvyukov Reviewed By: zacklj89, dvyukov Pull Request: https://github.com/llvm/llvm-project/pull/74387
-
Craig Topper authored
-
michaelrj-google authored
This patch adds the bind function to go with the socket function. It also cleans up a lot of socket related data structures.
-
Fangrui Song authored
-
Sam Clegg authored
`importUndefined` is only used a couple of places and both of those already handle `isPIC` separately.
-
Mark de Wever authored
The fix changes the way the validation script determines the qualified name of a declaration. Inline namespaces without a reserved name are now always part of the name. The Clang code only does this when the names are ambigious. This method is often used for the operator""foo for UDLs. Adjusted the newly flagged issue and removed a work-around in the test code that is no longer required. Fixes https://github.com/llvm/llvm-project/issues/72427
-