- Jan 23, 2021
-
-
Bjorn Pettersson authored
Most of CGExprConstant.cpp is using the CharUnits abstraction and is using getCharWidth() (directly of indirectly) when converting between size of a char and size in bits. This patch is making that abstraction more consistent by adding CharTy to the CodeGenTypeCache (honoring getCharWidth() when mapping from char to LLVM IR types, instead of using Int8Ty directly). Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D94979
-
Bjorn Pettersson authored
When using getByteArrayType the requested size is calculated in char units, but the type used for the array was hardcoded to the Int8Ty. This patch is using getCharWIdth a bit more consistently by using getIntNTy in combination with getCharWidth, instead of explictly using getInt8Ty. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D94977
-
River Riddle authored
This revision adds support for using either operand or result types to anchor an optional group. It also removes the arbitrary restriction that type directives must refer to variables in the same group, which is overly limiting for a declarative format syntax. Fixes PR#48784 Differential Revision: https://reviews.llvm.org/D95109
-
Julian Lettner authored
Remove a few of my own TODOs that I will not have time to fix from lit code.
-
Nikita Popov authored
If the call result is unused, we should let it get DCEd rather than replacing it. Also, don't try to replace an existing sincos with another one (unless it's as part of combining sin and cos). This avoids an infinite combine loop if the calls are not DCEd as expected, which can happen with D94106 and lack of willreturn annotation in hand-crafted IR.
-
Louis Dionne authored
This is meant to unblock Chrome, as discussed in https://llvm.org/D74489. Differential Revision: https://reviews.llvm.org/D95177
-
Jacques Pienaar authored
Differential Revision: https://reviews.llvm.org/D95201
-
MaheshRavishankar authored
Differential Revision: https://reviews.llvm.org/D93086
-
Mark de Wever authored
During the review of https://reviews.llvm.org/D93912 we failed to notice the implementation status wasn't updated. This rectifies the issue.
-
MaheshRavishankar authored
representing dependence from producer result to consumer. With Linalg on tensors the dependence between operations can be from the result of the producer to the consumer. This change just does a NFC refactoring of the LinalgDependenceGraphElem to allow representing both OpResult and OpOperand*. Differential Revision: https://reviews.llvm.org/D95208
-
Hongtao Yu authored
Adding a lld option to support emitting pseudo probe metadata in LTO mode. Reviewed By: MaskRay, wmi, wenlei Differential Revision: https://reviews.llvm.org/D95056
-
peter klausler authored
* Remove an unimplemented and unused member function declaration * Remove a misleading comment about an unrelated constraint number * Fix a comment * Add f18 crash message to "flang" driver script Differential Revision: https://reviews.llvm.org/D95180
-
Abhina Sreeskantharajan authored
This is a continuation of https://reviews.llvm.org/D94239. I missed some other spellings of the same error. Reviewed By: muiez Differential Revision: https://reviews.llvm.org/D95246
-
peter klausler authored
Correct the analysis of references to transformational intrinsic functions that have different semantics based on the presence or absence of a DIM= argument; add shape analysis for UNPACK(). Differential Revision: https://reviews.llvm.org/D94716
-
Sanjay Patel authored
In the motivating cases from https://llvm.org/PR48816 , we have a trailing trunc. But that is not required to reduce the abs width: https://alive2.llvm.org/ce/z/ECaz-p ...as long as we clear the int-min-is-poison bit (nsw). We have some existing tests that are affected, and I'm not sure what the overall implications are, but in general we favor narrowing operations over preserving nsw/nuw. If that causes problems, we could restrict this transform based on type (shouldChangeType() and/or vector vs. scalar). Differential Revision: https://reviews.llvm.org/D95235
-
Sanjay Patel authored
https://llvm.org/PR48816
-
Lei Zhang authored
spv.Ordered/spv.Unordered are meant for OpenCL Kernel capability. For Vulkan Shader capability, we should use spv.IsNan to check whether a number is NaN. Add a new pattern for converting `std.cmpf ord|uno` to spv.IsNan and bumped the pattern converting to spv.Ordered/spv.Unordered to a higher benefit. The SPIR-V target environment will properly select between these two patterns. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D95237
-
peter klausler authored
Expressions emitted to module files and error messages sometimes contain conversions of integer results of inquiry intrinsics; these are usually not needed, and can conflict with "int" in the user's namespace. Improve folding so that these conversions don't appear, and do some other clean-up in adjacent code. Differential Revision: https://reviews.llvm.org/D95172
-
Lei Zhang authored
Previously we only autogen the availability for ops that are direct instantiating `SPV_Op` and expected other subclasses of `SPV_Op` to define aggregated availability for all ops. This is quite error prone and we can miss capabilities for certain ops. Also it's arguable to have multiple levels of subclasses and try to deduplicate too much: having the availability directly in the op can be quite explicit and clear. A few extra lines of declarative code is fine. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D95236
-
Shafik Yaghmour authored
ObjCBOOLSummaryProvider was incorrectly treating BOOL as unsigned and this is now fixed. Also adding tests for one bit bit-fields of BOOL and unsigned char.
-
Eugene Zhulenev authored
This PR only has coro intrinsics needed for the Async to LLVM lowering. Will add other intrinsics as needed in the followup PRs. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D95143
-
Wolfgang Pieb authored
-
Louis Dionne authored
-
Joseph Schuchart authored
The buckets are initialized in __kmp_dephash_create but when they are extended the memory is allocated but not NULL'd, potentially leaving some buckets uninitialized after all entries have been copied into the new allocation. This commit makes sure the buckets are properly initialized with NULL before copying the entries. Differential Revision: https://reviews.llvm.org/D95167
-
Fangrui Song authored
If foo is referenced in any object file, bitcode file or shared object, `__wrap_foo` should be retained as the redirection target of sym (f96ff3c0). If the object file defining foo has foo references, we cannot easily distinguish the case from cases where foo is not referenced (we haven't scanned relocations). Retain `__wrap_foo` because we choose to wrap sym references regardless of whether sym is defined to keep non-LTO/LTO/relocatable links' behaviors similar https://sourceware.org/bugzilla/show_bug.cgi?id=26358 . If foo is defined in a shared object, `__wrap_foo` can still be omitted (`wrap-dynamic-undef.s`). Reviewed By: andrewng Differential Revision: https://reviews.llvm.org/D95152
-
Hanhan Wang authored
- Fix arguments name for subview and subtensor. - Fix a typo in a comment of subtensor's method. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D95211
-
Arjun P authored
[MLIR] Add support for extracting an integer sample point (if one exists) from an unbounded FlatAffineConstraints. With this, we have complete support for finding integer sample points in FlatAffineConstraints. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D95047
-
Yaxun (Sam) Liu authored
This patch implements codegen for __managed__ variable attribute for HIP. Diagnostics will be added later. Differential Revision: https://reviews.llvm.org/D94814
-
Abhina Sreeskantharajan authored
On z/OS, the following error message is not matched correctly in lit tests. This patch updates the CHECK expression to match the end period successfully. ``` EDC5129I No such file or directory. ``` Differential Revision: https://reviews.llvm.org/D94239
-
Simon Pilgrim authored
Fold vperm2x128(movddup(x),movddup(y)) -> movddup(vperm2x128(x,y))
-
- Jan 22, 2021
-
-
Simon Pilgrim authored
[X86][AVX] canonicalizeLaneShuffleWithRepeatedOps - handle unary vperm2x128(permute/shift(x,c),undef) cases Fold vperm2x128(permute/shift(x,c),undef) -> permute/shift(vperm2x128(x,undef),c)
-
Simon Pilgrim authored
Simplify vperm2x128(concat(X,Y),concat(Z,W)) folding. Use collectConcatOps / ISD::INSERT_SUBVECTOR to find the source subvectors instead of hardcoded immediate matching.
-
Peter Steinfeld authored
The title says it all. Differential Revision: https://reviews.llvm.org/D95233
-
Florian Hahn authored
The existing code did not deal with atomic loads correctly. Such loads are represented as MemoryDefs. Bail out on any MemoryAccess that is not a MemoryUse.
-
Florian Hahn authored
-
Arnold Schwaighofer authored
Because we were not looking for the llvm.coro.id.async intrinsic in the early coro pass which triggers follow-up passes we relied on the llvm.coro.end intrinsic being present. This might not be the case in functions that end in unreachable code. Differential Revision: https://reviews.llvm.org/D95144
-
Jon Chesterfield authored
[libomptarget][devicertl] Drop templated atomic functions The five __kmpc_atomic templates are instantiated a total of seven times. This change replaces the template with explictly typed functions, which have the same prototype for amdgcn and nvptx, and implements them with the same code presently in use. Rolls in the accepted but not yet landed D95085. The unsigned long long type can be replaced with uint64_t when replacing the cuda function. Until then, clang warns on casting a pointer to one to a pointer to the other. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D95093
-
Roman Lebedev authored
Does not build in XCode: http://green.lab.llvm.org/green/job/clang-stage1-RA/17963/consoleFull#-1704658317a1ca8a51-895e-46c6-af87-ce24fa4cd561 This reverts commit aabed371.
-
Roman Lebedev authored
Iff we know we can get rid of the inversions in the new pattern, we can thus get rid of the inversion in the old pattern, this decreasing instruction count. Note that we could position this transformation as just hoisting of the `not` (still, iff y is freely negatible), but the test changes show a number of regressions, so let's not do that.
-
Roman Lebedev authored
Iff we know we can get rid of the inversions in the new pattern, we can thus get rid of the inversion in the old pattern, this decreasing instruction count.
-