forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 5
Bump to llvm green 2b4807 for torch-mlir #54
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
Merged
Merged
Conversation
This file contains hidden or 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
This patch removes some deprecated uses of `{File,Directory}Entry::getName()`. No functional change indended. Depends on D151853. Reviewed By: benlangmuir Differential Revision: https://reviews.llvm.org/D151854
Emit a 4-byte alignment after the .arm directive and a 2-byte alignment after the .thumb directive. The new behavior matches GNU assembler. Fixes llvm#53386 Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D147763
Differential Revision: https://reviews.llvm.org/D151912
After 572cfa3, isUniform now checks VF based uniformity instead of just invariance as before. As follow-up cleanup suggested in D148841, separate the invariance check out and update callers that currently check only for invariance. This also moves the implementation of isUniform from LoopAccessAnalysis to LoopVectorizationLegality, as LoopAccesAnalysis doesn't use the more general isUniform.
Matches behaviour from tsan_interceptors_posix. This is covered by sanitizer_common/TestCases/malloc_hook.cpp (which is currently failing on darwin) I've tested it on an arm-based Mac & also compiled to x86_64 on it. Differential Revision: https://reviews.llvm.org/D151865
Provide an example of how to use this extension and more importantly, document that cleanup functions are run in reverse nested order. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D151732
Despite me being convinced that the use of divide didn't produce any divide instructions, it does in fact add more instructions than using a plain shift operation. This patch simply changes the divide to a shift right, with an assert to check that the "divisor" is a power of two. Reviewed By: kiranchandramohan, tblah Differential Revision: https://reviews.llvm.org/D151880
…ION and COMPILER_OPTIONS intrinsics".
This doc was written 4 years ago, some refresh in the example was overdue I suspect. Differential Revision: https://reviews.llvm.org/D151037
…spect this metadata Sometimes an developer would like to have more control over cmov vs branch. We have unpredictable metadata in LLVM IR, but currently it is ignored by X86 backend. Propagate this metadata and avoid cmov->branch conversion in X86CmovConversion for cmov with this metadata. Example: ``` int MaxIndex(int n, int *a) { int t = 0; for (int i = 1; i < n; i++) { // cmov is converted to branch by X86CmovConversion if (a[i] > a[t]) t = i; } return t; } int MaxIndex2(int n, int *a) { int t = 0; for (int i = 1; i < n; i++) { // cmov is preserved if (__builtin_unpredictable(a[i] > a[t])) t = i; } return t; } ``` Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D118118
A CU can have only one function so CU will have low_pc/high_pc. If this funciton is GCed by LLD low_pc will become 0x0, and BOLT can't map this to output. We kind of were getting away with it in monolithic DWARF, but with split DWARF there is only skeleton CU, so we end up with rnglist with header and array, but no body. This caused LLDB to report an error. Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D151845
In review for https://reviews.llvm.org/D146278, @vzakhari asked to separate -emit-fir and -emit-hlfir. This will allow FIR to be easily outputted after the HLFIR passes have been run. The new semantics are as follows: | Action | -flang-experimental-hlfir? | Result | | =========== | ========================== | =============================== | | -emit-hlfir | N | Outputs HLFIR | | -emit-hlfir | Y | Outputs HLFIR | | -emit-fir | N | Outputs FIR, using old lowering | | -emit-fir | Y | Outputs FIR, lowering via HLFIR | A patch for bbc will follow. Differential Revision: https://reviews.llvm.org/D151088
In review for https://reviews.llvm.org/D146278, @vzakhari asked to separate -emit-fir and -emit-hlfir. This will allow FIR to be easily outputted after the HLFIR passes have been run. The new semantics are as follows: | Action | -hlfir? | Result | | =========== | ======= | =============================== | | -emit-hlfir | N | Outputs HLFIR | | -emit-hlfir | Y | Outputs HLFIR | | -emit-fir | N | Outputs FIR, using old lowering | | -emit-fir | Y | Outputs FIR, lowering via HLFIR | This is tested in flang/test/HLFIR/hlfir-flags.f90 Depends on: D151088 Differential Revision: https://reviews.llvm.org/D151108
The insertion of a space on a line continuation right before a character literal was confusing TokenSequence::ToLowerCase(), that was unable to identify the character literal as such, causing it to be converted to lower case. Fix this by skipping spaces in the beginning and end of each token, before testing for token type. Fixes llvm#62039 Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D151885
…ager C bindings for the new pass manager seem to allow to set any option from LLVMPassBuilderOptions, except InlinerThreshold. Allow to configure it as well. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D151832
Canonicalize !$CUF KERNEL DO loop nests, similar to OpenACC/OpenMP canonicalization. Check statements and expressions in device contexts for usage that isn't supported. Add more tests, and include some tweaks to standard modules needed to build CUDA Fortran modules. Depends on https://reviews.llvm.org/D150159, https://reviews.llvm.org/D150161, https://reviews.llvm.org/D150162, & https://reviews.llvm.org/D150163. Differential Revision: https://reviews.llvm.org/D150164
…urn type for `InsertFunctionStrategy` When there is a function with metadata/token parameter/return type, `InsertFunctionStrategy` will crash. This patch fixes the problem by falling back to create function declaration when the sampled function contains metadata/token parameter/return type. Reviewed By: Peter Differential Revision: https://reviews.llvm.org/D150627
Moved setting supported architecture to parent cmake configuration files so they can be read by both lib and test CMakeList.txt. Fixed issue with check-asan-abi that did not filter for current host architecture which caused x86_64 bots to run Arm64 tests. Added x86_64 as a supported arch to the test cmake file. rdar://110017569 Differential Revision: https://reviews.llvm.org/D151846
…dWrap from AVGFLOOR/CEIL transform. Use computeOverflowForUnsignedAdd and computeOverflowForSignedAdd instead. Unfortunately, this recomputes some known bits and sign bits we may have already computed, but was the easiest fix without a lot of restructuring. This recovers the regressions from D151472. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D151858
There were regressions in the testing framework due to none of the functioning buildbots having a 32 bit long. This allowed the 32 bit version of the strtointeger function to go untested. This patch adds tests for strtoint32 and strtoint64, which are internal testing functions that use constant integer sizes. It also fixes the tests to properly handle these situations. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D151935
Reviewed By: #libc, ldionne Spies: ldionne, libcxx-commits Differential Revision: https://reviews.llvm.org/D151573
Correctly account for the fact that certain targets do not use the generic address space for the implicit VTT argument. This entails adjusting `ItaniumCXXABI::buildStructorSignature`, `ItaniumCXXABI::addImplicitStructorParams` and `ItaniumCXXABI::getImplicitConstructorArgs` to use the target's global variable address space. The associated test is temporarily marked `XFAIL` as additional fixes are needed. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D150746
Before serializing, optimizations on llvm were only called on path to hsaco, and not cubin. Define opt-level for `gpu-to-cubin` pass as well, and move call to optimize llvm to a common place. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D151554
Fix a bug in detecting unknown ids as mods of known ids that was preventing certain fusions. While at this, fix the function signature of `detectAsMod` function to have output as the last argument. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D152055
Reviewed By: skan Differential Revision: https://reviews.llvm.org/D152119
The change implements intrinsics 'get_fpenv', 'set_fpenv' and 'reset_fpenv'. They are used to read floating-point environment, set it or reset to some default state. They do the same actions as C library functions 'fegetenv' and 'fesetenv'. By default these intrinsics are lowered to calls to these functions. The new intrinsics specify FP environment as a value of integer type, it is convenient of most targets where the FP state is a content of some register. Some targets however use long representations. On X86 the size of FP environment is 256 bits, and even half of this size is not a legal ibteger type. To facilitate legalization in such cases, two sets of DAG nodes is used. Nodes GET_FPENV and SET_FPENV are used when FP environment may be represented by a legal integer type. Nodes GET_FPENV_MEM and SET_FPENV_MEM consider FP environment as a region in memory, much like `fesetenv` and `fegetenv` do. They are used when target has long representation for floationg-point state. Differential Revision: https://reviews.llvm.org/D71742
Differential Revision: https://reviews.llvm.org/D151998
…mat in intergrated-as mode." This reverts commit 4054c68. Due to AIX system linker requires DWARF64 for XCOFF64.
This patch splits the GlobalISelEmitter.cpp file, which imports DAG ISel patterns for GISel, into separate "GISelMatchTable.h/cpp" files. The main motive is readability & maintainability. GlobalISelEmitter.cpp was about 6400 lines of mixed code, some bits implementing the match table codegen, some others dedicated to importing DAG patterns. Now it's down to 2700 + a 2150 header + 2000 impl. It's a tiny bit more lines overall but that's to be expected - moving inline definitions to out-of-line, adding comments in the .cpp, etc. all of that takes additional space, but I think the tradeoff is worth it. I did as little unrelated code changes as possible, I would say the biggest change is the introduction of the `gi` namespace used to prevent name conflicts/ODR violations with type common names such as `Matcher`. It was previously not an issue because all of the code was in an anonymous namespace. This moves all of the "match table" code out of the file, so predicates, rules, and actions are all separated now. I believe this helps separating concerns, now `GlobalISelEmitter.cpp` is more focused on importing DAG patterns into GI, instead of also containing the whole match table internals as well. Note: the new files have a "GISel" prefix to make them distinct from the other "GI" files in the same folder, which are for the combiner. Reviewed By: aemerson Differential Revision: https://reviews.llvm.org/D151432
This reverts commit 79caedf.
This carries over the fix previously made for semantic highlighting https://reviews.llvm.org/D92148, to the new inactiveRegions protocol as well. In addition, the directives at the beginning and end of an inactive region are now excluded from the region. Fixes clangd/clangd#1631 Fixes clangd/clangd#773 Differential Revision: https://reviews.llvm.org/D151190
Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D141249
This was missed when the other dialects adopted it. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D151410
To go with D149267 and D149967, this adds predicated mla/mls patterns, selected from select(mask, add(a, mul(b, c)), a) -> mla(a, mask, b, c). The existing patterns are eventually removed by D149967. Differential Revision: https://reviews.llvm.org/D149969
f79f43f
to
62ad0bd
Compare
ttjost
approved these changes
Jun 19, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
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.
Corresponds to #104