- Apr 13, 2024
-
-
Alexey Bataev authored
Created using spr 1.3.5
-
- Apr 12, 2024
-
-
Arthur Eubanks authored
D33412/D33413 introduced this to support a clang pragma to set section names for a symbol depending on if it would be placed in bss/data/rodata/text, which may not be known until the backend. However, for text we know that only functions will go there, so just directly set the section in clang instead of going through a completely separate attribute. Autoupgrade the "implicit-section-name" attribute to directly setting the section on a Fuction.
-
Haojian Wu authored
This file seemed to be added unintentionally in 9434c083.
-
Amir Ayupov authored
Call site information setting was conditioned on branch information presence for a given block. However, it's possible to have sampled profile lacking one or the other for a given basic block. Iterate over branch profiles and call profiles independently to cover all recorded profile data. Depends on https://github.com/llvm/llvm-project/pull/87569 Test Plan: Updated bolt/test/X86/yaml-secondary-entry-discriminator.s Reviewers: ayermolo, dcci, maksfb, rafaelauler Reviewed By: maksfb Pull Request: https://github.com/llvm/llvm-project/pull/87743
-
Amir Ayupov authored
Move BAT parent function lookup outside `getLocationName`, to the scope where we retrieve `FuncBranchData` linked with the function. Previously DataAggregator would store branch profile recorded in the split fragment in `FuncBranchData` associated with the fragment, and perform name translation in `getLocationName` for symbol name only. This works for fdata profile which is printed out as-is, but doesn't work with BAT YAML profile writer which requires a combined profile. The issue necessitated `fixupBATProfile` which partially addressed the issue (reassigned inter-fragment calls back into intra-function branches). However, `fixupBATProfile` fails to address disjoint profiles (i.e. doesn't merge `FuncBranchData` for fragments back into parent). This diff eliminates the need for `fixupBATProfile` by removing the root cause of the issue. Test Plan: NFC for existing tests Reviewers: ayermolo, dcci, rafaelauler, maksfb Reviewed By: maksfb Pull Request: https://github.com/llvm/llvm-project/pull/87569
-
Alexey Bataev authored
-
Alexey Bataev authored
If (f)sub is only operand of llvm.(f)abs or icmp eq/ne 0 (int only), we can consider it as commutative operation, just need to drop wrapping flags for ineteger operation. https://alive2.llvm.org/ce/z/GxvxjB for correctness of abs with dropped flags. Reviewers: RKSimon Reviewed By: RKSimon Pull Request: https://github.com/llvm/llvm-project/pull/86196
-
Nathan Sidwell authored
No need need to special-case zero. Section 0 will map to section 0.
-
XChy authored
Following #85592, add support for nsw/nuw flags of trunc in SCCP.
-
Michael Buch authored
[lldb][ClangExpressionParser] Don't by default enable Objecitve-C support when evaluating C++ expressions (#87767) This patch attempts to decouple C++ expression evaluation from Objective-C support. We've previously enabled it by default (if a runtime existed), but that meant we're opting into extra work we only need to do for Objective-C, which complicates/slows down C++ expression evaluation. Of course there's a valid use-case for this, which is calling Objective-C APIs when stopped in C++ frames (which Objective-C++ developers might want to do). In those cases we should really prompt the user to add the `expr --language objc++` flag. To accomodate a likely frequent use-case where a user breaks in a system C++ library (without debug-symbols) but their application is actually an Objective-C app, we allow Objective-C support in C++ expressions if the current frame doesn't have debug-info. This fixes https://github.com/llvm/llvm-project/issues/75443 and allows us to add more `LangOpts.ObjC` guards around the expression evaluator in the future (e.g., we could avoid looking into the Objective-C runtime during C++ expression evaluation, which we currently do unconditionally). Depends on https://github.com/llvm/llvm-project/pull/87657
-
Michael Buch authored
[lldb][ClangUserExpression][NFCI] Pass the most specific ExecutionContextScope possible into ClangExpressionParser (#87657) The `ClangExpressionParser` takes an `ExecutionContextScope` which it uses to query the `Process`/`Target`/`StackFrame` to set various compiler options in preparation for parsing an expression. However, `TryParse` constructs the parser with a `Process` or `Target`, never a `StackFrame`. So when the parser tries to retrieve the current `StackFrame` from the `exe_scope`, it doesn't succeed. In future patches we want to query the `StackFrame` from within the `ClangExpressionParser` constructor. This patch simplifies `TryParse`, by removing the redundant `exe_scope` parameter, and instead uses the `exe_ctx` to derive the most fitting `exe_scope` to pass into `ClangExpressionParser`. Not entirely sure how to test this. This patch is a prerequisite to get subsequent patches that set `LangOpts` based on the current `StackFrame` to work.
-
Timm Bäder authored
As expected, we need to be a little more careful when the Function* is created from an integer.
-
Vitaly Buka authored
Similar to #88304 SelHWAsan is optimization. We may want to diagnose compiler decisions. Remarks is the tool for that https://llvm.org/docs/Remarks.html.
-
Alexey Bataev authored
This reverts commit 9029e6eb, which was committed by mistake with the wrong message and fails https://lab.llvm.org/buildbot/#/builders/221/builds/21958.
-
Sunil Srivastava authored
Co-authored-by:Sunil Srivastava <sunil.srivastava@sony.com>
-
Fraser Cormack authored
The previous build system was adding custom "OpenCL" and "LLVM IR" languages in CMake to build the builtin libraries. This was making it harder to build in-tree because the tool binaries needed to be present at configure time. This commit refactors the build system to use custom commands to build the bytecode files one by one, and link them all together into the final bytecode library. It also enables in-tree builds by aliasing the clang/llvm-link/etc. tool targets to internal targets, which are imported from the LLVM installation directory when building out of tree. Diffing (with llvm-diff) all of the final bytecode libraries in an out-of-tree configuration against those built using the current tip system shows no changes. Note that there are textual changes to metadata IDs which confuse regular diff, and that llvm-diff 14 and below may show false-positives. This commit also removes a file listed in one of the SOURCEs which didn't exist and which was preventing the use of ENABLE_RUNTIME_SUBNORMAL when configuring CMake.
-
Vincent Lee authored
There's already support for `-print-before-pass-number`, so it makes sense that we also have a `-print-after-pass-number`. This is especially useful if you want to print the IR after the very last pass without resorting to `-print-after-all` and combing through stderr or the IR file directory.
-
Krystian Stasiowski authored
#88139 adds a parameter to `TemplateTemplateParmDecl::Create`, which is called in LLDB. This adds the missing argument for that parameter.
-
Alexey Bataev authored
uitofp. Need to use uitofp for unsigned nodes, which are part of minbitwidth analysis, to correctly handle signedness info.
-
Christopher Di Bella authored
Some of the feedback was also relevant to other files, and has been applied there too.
-
Noah Goldstein authored
`(icmp uge/ugt (and X, Y), C)` implies both `(icmp uge/ugt X, C)` and `(icmp uge/ugt Y, C)`. We can use this to deduce leading ones in `X`. `(icmp ule/ult (or X, Y), C)` implies both `(icmp ule/ult X, C)` and `(icmp ule/ult Y, C)`. We can use this to deduce leading zeros in `X`. Closes #86059
-
Noah Goldstein authored
-
Peiming Liu authored
…r encodings.
-
Krystian Stasiowski authored
This patch adds a `Typename` bit-field to `TemplateTemplateParmDecl` which stores whether the template template parameter was declared with the `typename` keyword.
-
Nick Desaulniers authored
When supporting "overlay" vs "fullbuild" modes, "what ABI are you using?" becomes a fundamental question to have concrete answers for. Overlay mode MUST match the ABI of the system being overlayed onto; fullbuild more flexible (the only system ABI relevant is the OS kernel). When implementing llvm-libc we generally prefer the include-what-you use style of avoiding transitive dependencies (since that makes refactoring headers more painful, and slows down build times). So what header do you include for any given type or function declaration? For any given userspace program, the answer is straightforward. But for llvm-libc which is trying to support multiple ABIs (at least one per configuration), the answer is perhaps less clear. This proposal seeks to add one layer of indirection relative to what's being done today. It then converts users of sigset_t and struct epoll_event and the epoll implemenations over to this convention as an example.
-
Aart Bik authored
In order to support various external frameworks (JAX vs PyTorch) we need a bit more flexibility in [dis]assembling external buffers to and from sparse tensors in MLIR land. This PR adds a direct-out option that avoids the rigid pre-allocated for copy-out semantics. Note that over time, we expect the [dis]assemble operations to converge into something that supports all sorts of external frameworks. Until then, this option helps in experimenting with different options.
-
Timm Bäder authored
We need to handle this when registering global variables.
-
Timm Bäder authored
Test integral pointers as well.
-
Chelsea Cassanova authored
…db-enumerations.h" (#88324)" This reverts commit 9f6d08f2. This broke the build because of a usage of one of the original SBDebugger broadcast bits that wasn't updated in the original commit.
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Alexey Bataev authored
-
abidh authored
This document discusses some options where the debug metadata can be generated. It also goes through various language constructs and explains how the debug metadata will look like for that construct and how we can extract that information. The real point of discussion is how and where to extract the information about various language features to generate the debug metadata. The structure of the metadata itself is mostly settled as that is dictated by the DWARF and structure of LLVM IR metadata. The classic flang and gfortran generate quite similar DWARF for the various language constructs. This document is based on what Kiran posted in https://reviews.llvm.org/D138534 . --------- Co-authored-by:
Tom Eccles <t@freedommail.info> Co-authored-by:
Kiran Chandramohan <kiranchandramohan@gmail.com>
-
Louis Dionne authored
As reported in #86843, we must have #pragma GCC system_header before we use #include_next, otherwise the compiler may not understand that we're in a system header and may issue a diagnostic for our usage of
-
Derek Schuff authored
-
Fraser Cormack authored
The previous build system was adding custom "OpenCL" and "LLVM IR" languages in CMake to build the builtin libraries. This was making it harder to build in-tree because the tool binaries needed to be present at configure time. This commit refactors the build system to use custom commands to build the bytecode files one by one, and link them all together into the final bytecode library. It also enables in-tree builds by aliasing the clang/llvm-link/etc. tool targets to internal targets, which are imported from the LLVM installation directory when building out of tree. Diffing (with llvm-diff) all of the final bytecode libraries in an out-of-tree configuration against those built using the current tip system shows no changes. Note that there are textual changes to metadata IDs which confuse regular diff, and that llvm-diff 14 and below may show false-positives. This commit also removes a file listed in one of the SOURCEs which didn't exist and which was preventing the use of ENABLE_RUNTIME_SUBNORMAL when configuring CMake.
-
- Apr 11, 2024
-
-
Nikolas Klauser authored
Instead of instantiating `__copy_cv` for every combination of `_From` and `_To` this only instantiates `__copy_cv` for every `_From` type, reducing the number of instantiations.
-
Xu Zhang authored
Fixes #87835 This patch added the documentation for the POSIX functions according to [n3096](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf) Section 7.14, and gives the *docgen.py* script a more elegant *is_implemented* function.
-
Simon Pilgrim authored
Support Tremont CPUs which don't have AVX but do have GFNI. Noticed while trying to workout how to clean up the costmodel for GFNI bitreverse
-
Raghu Maddhipatla authored
[Flang] [OpenMP] [MLIR] [Lowering] Add lowering support for IS_DEVICE_PTR and HAS_DEVICE_ADDR clauses on OMP TARGET directive. (#88206) Added lowering support for IS_DEVICE_PTR and HAS_DEVICE_ADDR clauses for OMP TARGET directive and added related tests for these changes. IS_DEVICE_PTR and HAS_DEVICE_ADDR clauses apply to OMP TARGET directive OpenMP spec states The **is_device_ptr** clause indicates that its list items are device pointers. The **has_device_addr** clause indicates that its list items already have device addresses and therefore they may be directly accessed from a target device. Whereas USE_DEVICE_PTR and USE_DEVICE_ADDR clauses apply to OMP TARGET DATA directive and OpenMP spec for them states Each list item in the **use_device_ptr** clause results in a new list item that is a device pointer that refers to a device address Each list item in a **use_device_addr** clause that is present in the device data environment is treated as if it is implicitly mapped by a map clause on the construct with a map-type of alloc Fixed build error caused by Squash merge which needs rebase
-