- Jan 29, 2021
-
-
Nico Weber authored
-
Haojian Wu authored
This is useful to experiment/develop syntax trees. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D95526
-
Abhina Sreeskantharajan authored
On z/OS, the following error message is not matched correctly in lit tests. ``` EDC5129I No such file or directory. ``` This patch uses a lit config substitution to check for platform specific error messages. Reviewed By: muiez, jhenderson Differential Revision: https://reviews.llvm.org/D95246
-
Nikita Popov authored
This only affects the MemorySSA-based implementation.
-
Florian Hahn authored
splitCodeGen does not need to take ownership of the module, as it currently clones the original module for each split operation. There is an ~4 year old fixme to change that, but until this is addressed, the function can just take a reference to the module. This makes the transition of LTOCodeGenerator to use LTOBackend a bit easier, because under some circumstances, LTOCodeGenerator needs to write the original module back after codegen. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D95222
-
Nico Weber authored
-
Martin Storsjö authored
The MS STL does even more cleanup (corresponding to lexically_normal I think), but this seems to be the very minimum needed for making the symlinks work when the target path contains non-native paths. Differential Revision: https://reviews.llvm.org/D91145
-
Martin Storsjö authored
Use the corresponding wchar functions, named "_wfunc" instead of "func", where feasible, or reimplement functions with native windows APIs. Differential Revision: https://reviews.llvm.org/D91143
-
Martin Storsjö authored
Differential Revision: https://reviews.llvm.org/D91142
-
Martin Storsjö authored
While the windows CRTs (the modern UCRT, and the legacy msvcrt.dll that mingw still often defaults to) do provide stat functions, they're a bit lacking - they only provide second precision on the modification time, lack support for symlinks and a few other details. Instead reimplement them using a couple windows native functions, getting exactly the info we need. (Technically, the implementation within the CRT calls these functions anyway.) If we only need a few fields, we could also do with fewer calls, as a later optimization. Differential Revision: https://reviews.llvm.org/D91141
-
Thomas Preud'homme authored
Clang test Driver/macos-apple-silicon-slice-link-libs-darwin-only.cpp assumes the target is darwin when the host is darwin which is not necessarily the case, causing the test to fail when it is not. This commit adds a -triple argument to the clang invocation to ensure the target is darwin. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D94396
-
AndreyChurbanov authored
Replace VLA with dynamic allocation using alloca(). This fixes https://bugs.llvm.org/show_bug.cgi?id=48919. Differential Revision: https://reviews.llvm.org/D95627
-
serge-sans-paille authored
-
Tres Popp authored
This segfault could occur from out of bounds accesses when simplifying tensor.extract with a constant index and a tensor created by tensor.from_elements. This IR is not necesarilly invalid as it might conditionally be never executed. Differential Revision: https://reviews.llvm.org/D95535
-
Cheng Wang authored
-
serge-sans-paille authored
Fail gracefully instead. Prevent further misuse by enforcing the factory builder instead of the constructor. Differential Revision: https://reviews.llvm.org/D94420
-
Rafik Zurob authored
This patch replaces use of deprecated gethostbyname by getaddrinfo. Author: Rafik Zurob Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D95477
-
Cheng Wang authored
-
Georgii Rymar authored
Fixes https://bugs.llvm.org/show_bug.cgi?id=43543 Currently we report "The file was not recognized as a valid object file" for BC files. Also, we terminate dumping. Instead we could report a better warning and try to continue dumping other files. This is what this patch implements. Differential revision: https://reviews.llvm.org/D95605
-
Björn Schäpers authored
This reverts commit 078f30e0.
-
Haojian Wu authored
Differential Revision: https://reviews.llvm.org/D95439
-
Yang Fan authored
GCC warning: ``` /llvm-project/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp: In function ‘void scalarizeMaskedStore(llvm::CallInst*, llvm::DomTreeUpdater*, bool&)’: /llvm-project/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp:295:15: warning: variable ‘IfBlock’ set but not used [-Wunused-but-set-variable] 295 | BasicBlock *IfBlock = CI->getParent(); | ^~~~~~~ /llvm-project/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp: In function ‘void scalarizeMaskedScatter(llvm::CallInst*, llvm::DomTreeUpdater*, bool&)’: /llvm-project/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp:555:15: warning: variable ‘IfBlock’ set but not used [-Wunused-but-set-variable] 555 | BasicBlock *IfBlock = CI->getParent(); | ^~~~~~~ ``` -
Artem Dergachev authored
NSAssert and NSCAssert are Objective-C Foundation's standard assert macros. Differential Revision: https://reviews.llvm.org/D95519
-
Artem Dergachev authored
Drop redundant "found", specify what exactly is wrong with side effects in assert conditions. Differential Revision: https://reviews.llvm.org/D95515
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
Various *TargetStreamer.h need formatted_raw_ostream but rely on a forward declaration of formatted_raw_ostream in MCStreamer.h. This patch adds forward declarations right in *TargetStreamer.h. While we are at it, this patch removes the one in MCStreamer.h, where it is unnecessary.
-
Björn Schäpers authored
Differential Revision: https://reviews.llvm.org/D92257
-
Wei Mi authored
iterating the same PHI/LABEL/Debug instructions repeatedly. We run into a compiling timeout problem when building a target after its SampleFDO profile is updated. It is because some very large blocks with a bunch of PHIs at the beginning. LiveDebugVariables::emitDebugValues called during VirtRegRewriter phase searchs the insertion point for those large BBs repeatedly in SkipPHIsLabelsAndDebug, and each time SkipPHIsLabelsAndDebug needs to go through the same set of PHIs before it can find the first non PHI/Label/Debug instruction. This patch adds a cache to save the last position for the sequence which has been checked in the previous call of SkipPHIsLabelsAndDebug. Differential Revision: https://reviews.llvm.org/D94981
-
Max Kazantsev authored
We use `EquivalenceClasses` to cache the notion that two SCEVs are equivalent, so save time in situation when `A` is equivalent to `B` and `B` is equivalent to `C`, making check "if `A` is equivalent to `C`?" cheaper. We also return `0` in the comparator when we reach max analysis depth to save compile time. After doing this, we also cache them as being equivalent. Now, imagine the following situation: - `A` is proved equivalent to `B`; - `C` is proved equivalent to `D`; - Comparison of `A` against `D` is proved non-zero; - Comparison of `B` against `C` reaches max depth (and gets cached as equivalence). Now, before the invocation of compare(`B`, `C`), `A` and `D` belonged to different equivalence classes, and their comparison returned non-zero. After the the invocation of compare(`B`, `C`), equivalence classes get merged and `A`, `B`, `C` and `D` all fall into the same equivalence class. So the comparator will change its behavior for couple `A` and `D`, with weird consequences following it. This comparator is finally used in `std::stable_sort`, and this behavior change makes it crash (looks like it's causing a memory corruption). Solution: this patch changes `CompareSCEVComplexity` to return `None` when the max depth is reached. So in this case, we do not cache these SCEVs (and their parents in the tree) as being equivalent. Differential Revision: https://reviews.llvm.org/D94654 Reviewed By: lebedev.ri
-
Christudasan Devadasan authored
This patch allows targets to define multiple cost values for each register so that the cost model can be more flexible and better used during the register allocation as per the target requirements. For AMDGPU the VGPR allocation will be more efficient if the register cost can be associated dynamically based on the calling convention. Reviewed By: qcolombet Differential Revision: https://reviews.llvm.org/D86836
-
Jonas Devlieghere authored
Explicitly compare to None when checking the triple's components so we don't bail out when one of them is the empty string.
-
Yang Fan authored
GCC warning: ``` /llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp: In member function ‘llvm::Expected<long unsigned int> llvm::dwarf::CFIProgram::Instruction::getOperandAsUnsigned(const llvm::dwarf::CFIProgram&, uint32_t) const’: /llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp:425:1: warning: control reaches end of non-void function [-Wreturn-type] 425 | } | ^ /llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp: In member function ‘llvm::Expected<long int> llvm::dwarf::CFIProgram::Instruction::getOperandAsSigned(const llvm::dwarf::CFIProgram&, uint32_t) const’: /llvm-project/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp:477:1: warning: control reaches end of non-void function [-Wreturn-type] 477 | } | ^ ``` -
Yang Fan authored
-
Amy Huang authored
with fix to test case and stringrefs. Currently (for codeview) lambdas have a string like `<lambda_0>` in their mangled name, and don't have any display name. This change uses the `<lambda_0>` as the display name, which helps distinguish between lambdas in -gline-tables-only, since there are no linkage names there. It also changes how we display lambda names; previously we used `<unnamed-tag>`; now it will show `<lambda_0>`. I added a function to the mangling context code to create this string; for Itanium it just returns an empty string. Bug: https://bugs.llvm.org/show_bug.cgi?id=48432 Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D95187 This reverts 9b21d4b9
-
Casey Carter authored
...and rename from `version.pass.cpp` to `version.compile.pass.cpp` to follow the new convention.
-
Michael Jones authored
Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D95646
-
Casey Carter authored
... so that comparisons with an `int` LHS and `MoveOnly` RHS are valid, as is necessary for the `partial_sort_copy` test to pass with an implementation that doesn't force a conversion to the type of the RHS as libc++ does.
-
Carl Ritson authored
SCC was not correctly preserved when entering WWM. Current lit test was unable to detect this as entry block is handled differently. Additionally fix an issue where SCC was unnecessarily preserved when exiting from WWM to Exact mode. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D95500
-