forked from MaxMood96/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pull] main from MaxMood96:main #741
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
If the location ptr to be killed is in no loop and the Function does not have irreducible loops, then we can regard it as loop invariant. Differential Revision: https://reviews.llvm.org/D135369
Differential Revision: https://reviews.llvm.org/D135533
The current decomposition for GEPs did not correctly handle cases where GEPs access different source types. Adjust the constraints by including the indexed type-size as coefficients. Further generalization to allow GEPs with more than one index is a needed general follow-up improvement.
…d(lsl(val1,small-shift), lsl(val2,large-shift)). Ideally, add operand with smaller shift should be RHS. In that way, smaller-shift is folded into ADD. - Also add another test case when 'lsl(val1,small-shift)' has one than one use, to show the (planned) optimization won't regress this case.
…val1,small-shmt), lsl(val2,large-shmt)) On many aarch64 processors (Cortex A78, Neoverse N1/N2/V1, etc), ADD with LSL shift (shift-amount <= 4) has smaller latency and higher throughput than ADD with larger shift (shift-amunt > 4). This is at least no-op for the rest of the processors. Differential Revision: https://reviews.llvm.org/D135208
Fixed error ``` compiler-rt/lib/tsan/go/buildgo.sh: 62: [: unexpected operator ``` Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D135537
Zve32* does not support SEW=64. Or any LMUL smaller than 32/SEW. Reviewed By: eopXD Differential Revision: https://reviews.llvm.org/D135519
…gistrar. Now that ExecutionSession objects alway have ExecutorProcessControl (EPC) objects attached we can use EPCEHFrameRegistrar by default, rather than InProcessEHFrameRegistrar. This allows LLJIT to work out-of-the-box with remote EPCs on platforms that use JITLink, without requiring a custom ObjectLinkingLayerCreator to override the eh-frame registrar.
Null source/destination pointers are ok for zero-sized messages.
reference 0fbe71e. Also add testcase for addi. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D135538
This patch updates the fir.convert operation's verifier to allow conversion from !fir.box<!fir.type<T>> to !fir.class<!fir.type<T>>. Other conversion involving fir.class are likely needed but will be added when lowering needs them. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D135445
Implements rule ES.75 of C++ Core Guidelines. Differential Revision: https://reviews.llvm.org/D132461
We can use the new DenseArrayStrictlySorted constraint. Differential Revision: https://reviews.llvm.org/D135246
Remove the unmaintained Go bindings per https://discourse.llvm.org/t/rfc-remove-the-go-bindings/65725. The tinygo project provides maintained Go bindings at https://github.com/tinygo-org/go-llvm. Differential Revision: https://reviews.llvm.org/D135436
When determining the initial value of the object, use the constant folding API to load a given type at a given offset in the global initializer. This makes it work for cases where the load doesn't directly correspond to an aggregate member. Differential Revision: https://reviews.llvm.org/D135435
…le values Differential Revision: https://reviews.llvm.org/D135431
This fixes the case where callees with SVE arguments outside of the z0-z7 range were incorrectly deduced as SVE calling convention functions
Differential Revision: https://reviews.llvm.org/D135568
Previously we had a bit of a mix of "signed char" "unsigned char" and "char". This adds seperate min and max checks for all three types. Depends on D135170 Reviewed By: Michael137 Differential Revision: https://reviews.llvm.org/D135352
…with auto return types **Summary** The primary motivation for this patch is to make sure we handle the step-in behaviour for functions in the `std` namespace which have an `auto` return type. Currently the default `step-avoid-regex` setting is `^std::` but LLDB will still step into template functions with `auto` return types in the `std` namespace. **Details** When we hit a breakpoint and check whether we should stop, we call into `ThreadPlanStepInRange::FrameMatchesAvoidCriteria`. We then ask for the frame function name via `SymbolContext::GetFunctionName(Mangled::ePreferDemangledWithoutArguments)`. This ends up trying to parse the function name using `CPlusPlusLanguage::MethodName::GetBasename` which parses the raw demangled name string. `CPlusPlusNameParser::ParseFunctionImpl` calls `ConsumeTypename` to skip the (in our case auto) return type of the demangled name (according to the Itanium ABI this is a valid thing to encode into the mangled name). However, `ConsumeTypename` doesn't strip out a plain `auto` identifier (it will strip a `decltype(auto) return type though). So we are now left with a basename that still has the return type in it, thus failing to match the `^std::` regex. Example frame where the return type is still part of the function name: ``` Process 1234 stopped * thread #1, stop reason = step in frame #0: 0x12345678 repro`auto std::test_return_auto<int>() at main.cpp:12:5 9 10 template <class> 11 auto test_return_auto() { -> 12 return 42; 13 } ``` This is another case where the `CPlusPlusNameParser` breaks us in subtle ways due to evolving C++ syntax. There are longer-term plans of replacing the hand-rolled C++ parser with an alternative that uses the mangle tree API to do the parsing for us. **Testing** * Added API and unit-tests * Adding support for ABI tags into the parser is a larger undertaking which we would rather solve properly by using libcxxabi's mangle tree parser Differential Revision: https://reviews.llvm.org/D135413
…VectorInst's mask This commit fixes llvm#57326. Currently we would take a Mask out and directly use it by doing auto Mask = SVI->getShuffleMask(); However, if the mask is undef, this Mask is not initialized. It might be a vector of -1 or random integers. This would cause an Out-of-bound read later when trying to find a StartMask. This change checks if all indices in the Mask is in the allowed range, and fixes the out-of-bound accesses. Differential Revision: https://reviews.llvm.org/D132634
This should address the issues found in: https://lab.llvm.org/buildbot/#/builders/115/builds/35504
Summary: This test started failing locally due to a misspelling of `-save-temps` for the linker wrapper and the `ls` command not having the glob arguments put in a string. This patch should fix it.
These instructions already had errors for operands that could not share the same register: VCMUL, VMULL, VQDMULL. This extends that to a few others: VREV64, VQDMULLqr, VCADD and VHCADD. Only the i32 types require the error. Differential Revision: https://reviews.llvm.org/D135560
This patch introduces the `vector.mask` operation and the MaskableOpInterface as described in https://discourse.llvm.org/t/rfc-vector-masking-representation-in-mlir/64964. The `vector.mask` operation is used to predicate the execution of operations implementing the MaskableOpInterface. This interface will be implemented by maskable operations and provides information about its masking constraints and semantics. For now, only vector transfer and reduction ops implement the MaskableOpInterface for illustration and testing purposes. Reviewed By: nicolasvasilache, rriddle Differential Revision: https://reviews.llvm.org/D134939
The sysconf function has many options, this patch adds the basic funtion and the pagesize option. More options will be added in future patches. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D135409
…IVREMByConstant." This reverts commit d4facda. This has been reported to cause failures. Reverting while I investigate.
The patch fixes lowering of anonymous functions, removes file/linkage info for builtin call demangling, and adds relevant test demonstrating a fixed problem. Differential Revision: https://reviews.llvm.org/D135390
The main aim of this patch is to delete the remaining instances of code reaching into the internals of `TypeCategoryImpl`. I made the following changes: - Add some more methods to `TieredFormatterContainer` and `TypeCategoryImpl` to expose functionality that is implemented in `FormattersContainer`. - Add new overloads of `TypeCategoryImpl::AddTypeXXX` to make it easier to add formatters to categories without reaching into the internal `FormattersContainer` objects. - Remove the `GetTypeXXXContainer` and `GetRegexTypeXXXContainer` accessors from `TypeCategoryImpl` and update all call sites to use the new methods instead. Differential Revision: https://reviews.llvm.org/D135399
This was introduced by https://reviews.llvm.org/D134933 This change also cleans up a dump&release method which had become a misnomer after prior bufferization improvement. Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D135623
The isatty function uses the side effects of an ioctl call to determine if a specific file descriptor is a terminal. I chose TIOCGETD (get line discipline of terminal) because it didn't require any new structs. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D135618
…le_assertions" This reverts commit 0f19c60. This didn't actually do anything. llvm_unreachable() under `#ifndef NDEBUG` is always supposed to report an error regardless of LLVM_UNREACHABLE_OPTIMIZE. I can't reproduce the issue I was originally seeing with this reverted, not sure what was happening back then, manually verified by messing around with various binaries/configurations.
In the isatty test it was assumed that /dev/tty existed, but that's not always the case. Now we check for that. Differential Revision: https://reviews.llvm.org/D135626
When Index is variable but still trivially known to be equal we can use Value from before the insertion, possibly eliminating the vector. Reverts a functional change from: Author: Philip Reames <listmail@philipreames.com> Date: Wed Dec 8 12:21:10 2021 -0800 [instcombine] A couple style tweaks to visitExtractElementInst [nfc] Thanks to Michele Scandale for identifying the bug Differential Revision: https://reviews.llvm.org/D135625
The tosa to linalg generic ops indexingMaps rank use is wrong. Find this bug in gpt2 pytorch model lowering to tosa. issue link is here llvm#58154 Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D135343
Errno wasn't getting reset between tests, causing cascading failures. Differential Revision: https://reviews.llvm.org/D135627
Some headers hadn't been added, this fixes that and improves the ordering. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D135629
We used to have a big switch statement over the type categories and kinds inside Minloc/Maxloc. After D133051 the switch grew bigger, and this changed inlining decisions made by GCC (the build compiler). Some of the simple methods stopped being inlined, and this caused slight performance regression in Polyhedron/gas_dyn2. This change adds separate entries for real/integer data types to let them be optimized separately. Differential Revision: https://reviews.llvm.org/D135610
This is information that the compiler already has, and should be exposed so that the library doesn't need to reimplement the exact same functionality. This was originally a part of D116280. Differential Revision: https://reviews.llvm.org/D135175
…ble` ... as builtins. This is information that the compiler already has, and should be exposed so that the library doesn't need to reimplement the exact same functionality. This was originally a part of D116280. Depends on D135175. Differential Revision: https://reviews.llvm.org/D135177
This makes it possible to be used in all modes, instead of just when `-fms-extensions` is enabled. Also moves the `-fms-extensions`-exclusive traits into their own file so we can check the others aren't dependent on this flag. This is information that the compiler already has, and should be exposed so that the library doesn't need to reimplement the exact same functionality. This was originally a part of D116280. Depends on D135177. Differential Revision: https://reviews.llvm.org/D135339
According to the support of fir::ConvertOp conversion in CodeGen.cpp, it also supports integer to pointer conversion and pointer to integer conversion. The entity can be array, and the conversion type can be pointer to array. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D135571
Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D135570
File-level dependency should not be used on files generated during the build. The next command may execute before the generating command finishes writing the file. Use add_custom_target and use target-level dependency. Differential Revision: https://reviews.llvm.org/D135630
The GNU extension intrinsic IARGC is equivalent to COMMAND_ARGUMENT_COUNT, and the GETARG is similar to GET_COMMAND_ARGUMENT, but with less arguments. Reuse the runtime of COMMAND_ARGUMENT_COUNT and GET_COMMAND_ARGUMENT for IARGC and GETARG. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D133558
This solves the issue where a case statement inside a macro greedily adds preprocessor lines such as #include to the macro even if they are not a part of the macro to begin with. Fixes llvm#58214. Differential Revision: https://reviews.llvm.org/D135422
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )