- Mar 02, 2020
-
-
Craig Topper authored
Select_cc isn't used by all targets. X86 doesn't have optimizations for it. Since we already know the input to the sint_to_fp/uint_to_fp is a setcc we can just emit a plain select using that setcc as the condition. Other DAG combines can turn that into a select_cc on targets that support it. Differential Revision: https://reviews.llvm.org/D75415
-
Lang Hames authored
Apparently LLVM_DEBUG doesn't like dashes in strings.
-
Stefanos Baziotis authored
-
Stefanos Baziotis authored
-
Reid Kleckner authored
CMake doesn't seem to like it when you regex search for "^".
-
- Mar 01, 2020
-
-
Reid Kleckner authored
getFirstInsertionPt's return value must be checked for validity before casting it to Instruction*. Don't attempt to insert casts after a phi in a catchswitch block. Fixes PR45033, introduced in D37832. Reviewed By: davidxl, hfinkel Differential Revision: https://reviews.llvm.org/D75381
-
Sanjay Patel authored
We get the simple cases of this via demanded elements and other folds, but that doesn't work if the values have >1 use, so add a dedicated match for the pattern. We already have this transform in IR, but it doesn't help the motivating x86 tests (based on PR42024) because the shuffles don't exist until after legalization and other combines have happened. The AArch64 test shows a minimal IR example of the problem. Differential Revision: https://reviews.llvm.org/D75348
-
Jun Ma authored
Differential Revision: https://reviews.llvm.org/D75345
-
Jun Ma authored
Differential Revision: https://reviews.llvm.org/D75345
-
Craig Topper authored
[X86] Don't add DELETED_NODES to DAG combine worklist after calling SimplifyDemandedBits/SimplifyDemandedVectorElts. These AddToWorklist calls were added in 84cd968f. It's possible the SimplifyDemandedBits/SimplifyDemandedVectorElts triggered CSE that deleted N. Detect that and avoid adding N to the worklist. Fixes PR45067.
-
Fangrui Song authored
Delete redundant .p2align 2 and improve tests.
-
Mehdi Amini authored
-
Juneyoung Lee authored
Summary: This patch helps getGuaranteedNonFullPoisonOp handle llvm.assume call. Also, a comment about the semantics of branch is removed to prevent confusion. As llvm.assume does, branching on poison directly raises UB (as LangRef says), and this allows transformations such as introduction of llvm.assume on branch condition at each successor, or freely replacing values after conditional branch (such as at loop exit). Handling br is not addressed in this patch. It makes SCEV more accurate, causing existing LoopVectorize/IndVar/etc tests to fail. Reviewers: spatel, lebedev.ri, nlopes Reviewed By: nlopes Subscribers: hiraditya, javed.absar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75397
-
Juneyoung Lee authored
Summary: This patch helps isGuaranteedNotToBeUndefOrPoison return true if the value makes the program always undefined. According to value tracking functions' comments, it is not still in consensus whether a poison value can be bitwise or not, so conservatively only the case with i1 is considered. Reviewers: spatel, lebedev.ri, reames, nlopes, regehr Reviewed By: nlopes Subscribers: uenoku, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75396
-
Juneyoung Lee authored
Summary: This patch defines two freeze instructions to have the same value number if they are equivalent. This is allowed because GVN replaces all uses of a duplicated instruction with another. If it partially rewrites use, it is not allowed. e.g) ``` a = freeze(x) b = freeze(x) use(a) use(a) use(b) => use(a) use(b) // This is not allowed! use(b) ``` Reviewers: fhahn, reames, spatel, efriedma Reviewed By: fhahn Subscribers: lebedev.ri, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75398
-
Craig Topper authored
-
Reid Kleckner authored
Lots of headers pass around MemoryBuffer objects, but very few open them. Let those that do include FileSystem.h. Saves ~250 includes of Chrono.h & FileSystem.h: $ diff -u thedeps-before.txt thedeps-after.txt | grep '^[-+] ' | sort | uniq -c | sort -nr 254 - ../llvm/include/llvm/Support/FileSystem.h 253 - ../llvm/include/llvm/Support/Chrono.h 237 - ../llvm/include/llvm/Support/NativeFormatting.h 237 - ../llvm/include/llvm/Support/FormatProviders.h 192 - ../llvm/include/llvm/ADT/StringSwitch.h 190 - ../llvm/include/llvm/Support/FormatVariadicDetails.h ... This requires duplicating the file_t typedef, which is unfortunate. I sunk the choice of mapping mode down into the cpp file using variable template specializations instead of class members in headers. -
Stephen Neuendorffer authored
This reverts commit 7a6c6897. This breaks the build with cmake 3.13.4, but succeeds with cmake 3.15.3
-
Stephen Neuendorffer authored
This reverts commit c4c8fbde.
-
Stephen Neuendorffer authored
This reverts commit 31e07d71.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
The MachineFunction MF value is not used any more and is always null.
-
Simon Pilgrim authored
-
Stephen Neuendorffer authored
This reverts commit e17d9c11. It breaks the build.
-
Stephen Neuendorffer authored
This reverts commit 777e97cc.
-
Petr Hosek authored
This is the imported target that find_package(ZLIB) defines. Differential Revision: https://reviews.llvm.org/D74176
-
Petr Hosek authored
Using INTERFACE prevents the use of imported libraries as we've done in 00b3d49d because these aren't linked against the target, they're only made part of the interface. This doesn't affect the output since static libraries aren't being linked into, but it enables the use of imported libraries. Differential Revision: https://reviews.llvm.org/D74106
-
Simon Pilgrim authored
This removes everything but int_x86_avx512_mask_vcvtph2ps_512 which provides the SAE variant, but even this can use the fpext generic if the rounding control is the default. Differential Revision: https://reviews.llvm.org/D75162
-
Stephen Neuendorffer authored
Differential Revision: https://reviews.llvm.org/D75308
-
Valentin Churavy authored
Putting this up mainly for discussion on how this should be done. I am interested in MLIR from the Julia side and we currently have a strong preference to dynamically linking against the LLVM shared library, and would like to have a MLIR shared library. This patch adds a new cmake function add_mlir_library() which accumulates a list of targets to be compiled into libMLIR.so. Note that not all libraries make sense to be compiled into libMLIR.so. In particular, we want to avoid libraries which primarily exist to support certain tools (such as mlir-opt and mlir-cpu-runner). Note that the resulting libMLIR.so depends on LLVM, but does not contain any LLVM components. As a result, it is necessary to link with libLLVM.so to avoid linkage errors. So, libMLIR.so requires LLVM_BUILD_LLVM_DYLIB=on FYI, Currently it appears that LLVM_LINK_LLVM_DYLIB is broken because mlir-tblgen is linked against libLLVM.so and and independent LLVM components. Previous version of this patch broke depencies on TableGen targets. This appears to be because it compiled all libraries to OBJECT libraries (probably because cmake is generating different target names). Avoiding object libraries results in correct dependencies. (updated by Stephen Neuendorffer) Differential Revision: https://reviews.llvm.org/D73130
-
Stephen Neuendorffer authored
add_llvm_library and add_llvm_executable may need to create new targets with appropriate dependencies. As a result, it is not sufficient in some configurations (namely LLVM_BUILD_LLVM_DYLIB=on) to only call add_dependencies(). Instead, the explicit TableGen dependencies must be passed to add_llvm_library() or add_llvm_executable() using the DEPENDS keyword. Differential Revision: https://reviews.llvm.org/D74930
-
Stephen Neuendorffer authored
In cmake, it is redundant to have a target list under target_link_libraries() and add_dependency(). This patch removes the redundant dependency from add_dependency(). Differential Revision: https://reviews.llvm.org/D74929
-
Stephen Neuendorffer authored
When compiling libLLVM.so, add_llvm_library() manipulates the link libraries being used. This means that when using add_llvm_library(), we need to pass the list of libraries to be linked (using the LINK_LIBS keyword) instead of using the standard target_link_libraries call. This is preparation for properly dealing with creating libMLIR.so as well. Differential Revision: https://reviews.llvm.org/D74864
-
Mehdi Amini authored
This is avoid the user to shoot themselves in the foot and encounter strange crashes that are confusing until one run with TSAN. Differential Revision: https://reviews.llvm.org/D75399
-
Fangrui Song authored
Similar to AsmPrinter::emitInt{8,16,32,64}.
-
- Feb 29, 2020
-
-
Aaron Puchert authored
Summary: Apparently all users of the function were fine with short-circuiting and none cared to override the default argument. Reviewers: aaron.ballman, rsmith Reviewed By: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75319
-
Sanjay Patel authored
-
Stefan Gränitz authored
Summary: A function that creates JITSymbolFlags from a GlobalValueSummary. Similar functions exist: fromGlobalValue(), fromObjectSymbol() Reviewers: lhames Reviewed By: lhames Subscribers: hiraditya, steven_wu, dexonsmith, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75082
-
Stefanos Baziotis authored
-