- Sep 05, 2020
-
-
Wei Wang authored
When checking call sites, give special handling to indirect call, as the callee may be unknown and can lead to nullptr dereference later. Assume conservatively that the ICV always changes in such case. Reviewed By: sstefan1 Differential Revision: https://reviews.llvm.org/D87104
-
- Sep 04, 2020
-
-
Teresa Johnson authored
Addresses post-review comments from D85948, which can be found here: https://reviews.llvm.org/rG7ed8124d46f9.
-
Alex Richardson authored
Currently a test failure always reports a line number inside verifyFormat() which is not very helpful to see which test failed. With this change we now emit the line number where the verify function was called. When using an IDE such as CLion, the output now includes a clickable link that points to the call site. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D86926
-
Alex Richardson authored
Currently clang-format starts overriding the default values at index 0 (keeping the existing values) instead of appending or replacing all values. This patch simply checks the current (IMO surprising) behaviour and does not attempt to change it. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D86941
-
Alex Richardson authored
Before: x = (foo *__ptr32) * v; MACRO(A * __ptr32 a); x = (foo *__ptr64) * v; MACRO(A * __ptr64 a); After: x = (foo *__ptr32)*v; MACRO(A *__ptr32 a); x = (foo *__ptr64)*v; MACRO(A *__ptr64 a); Depends on D86721 (to apply cleanly) Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D86775
-
Muhammad Asif Manzoor authored
Add the functionality to lower SVE rounding operations for passthru variant. Created a new test case file for all rounding operations. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D86793
-
Nico Weber authored
Since this is an internal header, we can just assume static_assert exists. If this doesn't upset any bots, I'll replace all uses of COMPILER_CHECK in a follow-up.
-
Nico Weber authored
This reverts commit 8b8be6f3 and follow-ups 99a93c3a, a9c0bf04, 48ac5b48. It breaks building on Windows, see https://reviews.llvm.org/D86917#2255872
-
Xing GUO authored
This patch enables users to handcraft custom contents for DWARF sections. If we specify the contents of DWARF sections both in the 'DWARF' entry and the 'content', yaml2obj will emit an error message. In addition, this patch helps remove the restriction that only the content of sections whose segname are __DWARF can be specified in the "DWARF" entry. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D87126
-
Bryan Chan authored
As discussed in D86843, -earlycse-debug-hash should be used in more regression tests to catch inconsistency between the hashing and the equivalence check. Differential Revision: https://reviews.llvm.org/D86863
-
Nico Weber authored
This tests what caused the revert in 7b033238.
-
Lei Zhang authored
These fields will be used to choose/influence patterns for SPIR-V code generation. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D87106
-
Nico Weber authored
-
Nico Weber authored
This reverts commit e6393ee8. It breaks Wunreachable for weak attributes, see http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20200831/336645.html
-
Florian Hahn authored
This patch moves the tests for the old MemDepAnalysis based DSE implementation to the MemDepAnalysis subdirectory and updates them to pass -enable-dse-memoryssa=false. This is in preparation for the switch to MemorySSA-backed DSE.
-
Marius Brehler authored
This refactors the standalone-translate executable to use mlirTranslateMain() declared in Translation.h and further applies D87129. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D87131
-
Marius Brehler authored
Drops the include on InitAllDialects.h, as dialects are now initialized in the translation passes. Differential Revision: https://reviews.llvm.org/D87129
-
Florian Hahn authored
In that case, the new MemoryDef needs to be inserted *before* MemInsertPoint.
-
Sanjay Patel authored
-
Max Kazantsev authored
test02_neg is not testing what it claims to test because its starting value -1 lies outside of specified range.
-
Yang Zhihui authored
Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D87077
-
Raphael Isemann authored
TestCPP11EnumTypes is one of the most expensive tests on my system and takes around 35 seconds to run. A relatively large amount of that time is actually doing CPU intensive work it seems (and not waiting on timeouts like other slow tests). The main issue is that this test repeatedly compiles the same source files with different compiler defines. The test is also including standard library headers, so it will also build all system modules with the gmodules debug info variant. This leads to the problem that this test ends up compiling all system Clang modules 8 times (one for each subtest with a unique define). As the system modules are quite large, this causes that this test spends most of its runtime just recompiling all system modules on macOS. There is also the small issue that this test is starting and start-stopping the test process a few hundred times. This rewrites the test to instead just use a macro to instantiate all the enum types in a single source and uses global variables to test the values (which means there is no more need to continue/stop or even start a process). I kept running all the debug info variants (event though it doesn't seem really relevant) to keep this as NFC as possible. This reduced the test runtime by around 1.5 seconds on my system (or in relative numbers, the runtime of this test decreases by 95%).
-
Vaibhav Garg authored
While parsing LateParsedTemplates, Clang assumes that the Global DeclID matches with the Local DeclID of a Decl. This is not the case when we have multiple dependent modules , each having their own LateParsedTemplate section. In such a case, a Local/Global DeclID confusion occurs which leads to improper casting of FunctionDecl's. This commit creates a Vector to map the LateParsedTemplate section of each Module with their module file and therefore resolving the Global/Local DeclID confusion. Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D86514
-
Simon Pilgrim authored
Reduce to forward declaration, add the Register.h include that we still needed, move CCState::ensureMaxAlignment into CallingConvLower.cpp as it was the only function that needed the full definition of MachineFunction. Fix a few implicit dependencies further down.
-
Simon Pilgrim authored
Extends lowerShuffleAsLanePermuteAndPermute to search for opportunities to use vpermq (64-bit cross-lane shuffle) and vpermd (32-bit cross-lane shuffle) to get elements into the correct lane, in addition to the 128-bit full-lane permutes it previously searched for. This is especially helpful in cross-lane byte shuffles, where the alternative tends to be "vpshufb both lanes separately and blend them with a vpblendvb", which is very expensive, especially on Haswell where vpblendvb uses the same execution port as all the shuffles. Addresses PR47262 Patch By: @TellowKrinkle (TellowKrinkle) Differential Revision: https://reviews.llvm.org/D86429
-
David Green authored
This adds a simple tablegen pattern for folding predicate_cast(load) into vldr p0, providing the alignment and offset are correct. Differential Revision: https://reviews.llvm.org/D86702
-
Georgii Rymar authored
We have the `RelSymbol<ELFT>` struct and can use it instead of `std::pair<const Elf_Sym *, std::string>` in a few methods. This is a bit cleaner. Differential revision: https://reviews.llvm.org/D87092
-
Simon Pilgrim authored
Use forward declarations and include the inner dependencies directly.
-
Georgii Rymar authored
This makes the interface cleaner and slightly improves messages reported. Differential revision: https://reviews.llvm.org/D87086
-
Gabor Marton authored
The "restrict" keyword is illegal in C++, however, many libc implementations use the "__restrict" compiler intrinsic in functions prototypes. The "__restrict" keyword qualifies a type as a restricted type even in C++. In case of any non-C99 languages, we don't want to match based on the restrict qualifier because we cannot know if the given libc implementation qualifies the paramter type or not. Differential Revision: https://reviews.llvm.org/D87097
-
Serge Pavlov authored
This change implements pragma STDC FENV_ROUND, which is introduced by the extension to standard (TS 18661-1). The pragma is implemented only in frontend, it sets apprpriate state of FPOptions stored in Sema. Use of these bits in constant evaluation adn/or code generator is not in the scope of this change. Parser issues warning on unsuppored pragma when it encounteres pragma STDC FENV_ROUND, however it makes syntax checks and updates Sema state as if the pragma were supported. Primary purpose of the partial implementation is to facilitate development of non-default floating poin environment. Previously a developer cannot set non-default rounding mode in sources, this mades preparing tests for say constant evaluation substantially complicated. Differential Revision: https://reviews.llvm.org/D86921
-
Raphael Isemann authored
This is one of the most expensive tests and runs for nearly half a minute on my machine. Beside this test just doing a lot of work by iterating 15k times on one ValueObject (which seems to be the point), it also runs this for every debug info variant which doesn't seem relevant to just iterating ValueObject. This marks it as no_debug_info_test to only run one debug info variation and cut down the runtime to around 7 seconds on my machine.
-
Benjamin Kramer authored
-
Vitaly Buka authored
-
David Sherwood authored
I have fixed up some more ElementCount/TypeSize related warnings in the following tests: CodeGen/AArch64/sve-split-extract-elt.ll CodeGen/AArch64/sve-split-insert-elt.ll In SelectionDAG::CreateStackTemporary we were relying upon the implicit cast from TypeSize -> uint64_t when calling MachineFrameInfo::CreateStackObject. I've fixed this by passing in the known minimum size instead, which I believe is fine because the associated stack id indicates whether this is a scalable object or not. I've also fixed up a case in TargetLowering::SimplifyDemandedBits when extracting a vector element from a scalable vector. The result is a scalar, hence it wasn't caught at the start of the function. If the vector is scalable we just bail out for now. Differential Revision: https://reviews.llvm.org/D86431
-
Florian Hahn authored
Some tests depend on DSE removing dead instructions unrelated to any memory optimization. That's not really DSE's job, remove it.
-
Vitaly Buka authored
-
Florian Hahn authored
This patch updates MemCpyOpt to preserve MemorySSA. It uses the MemoryDef at the insertion point of the builder and inserts the new def after that def. In some cases, we just modify a memory instruction. In that case, get the defining access, then remove the memory access and add a new one. If the defining access is in a different block, insert a new def at the beginning of the current block, otherwise after the defining access. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D86651
-
Alex Zinenko authored
Historically, the operations in the MLIR's LLVM dialect only checked that the operand are of LLVM dialect type without more detailed constraints. This was due to LLVM dialect types wrapping LLVM IR types and having clunky verification methods. With the new first-class modeling, it is possible to define type constraints similarly to other dialects and use them to enforce some correctness rules in verifiers instead of having LLVM assert during translation to LLVM IR. This hardening discovered several issues where MLIR was producing LLVM dialect operations that cannot exist in LLVM IR. Depends On D85900 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D85901
-
Raphael Isemann authored
This reverts commit f369d518. The bug this fixes was already fixed by 1c5a0cb1 with the same approach and this commit is now just giving the variable a second fallback value.
-