- Oct 31, 2022
-
-
Chuanqi Xu authored
modules From the discussion in https://discourse.llvm.org/t/how-should-we-support-dependency-scanner-for-c-20-modules/66027, we get a consensus that we want to support clang modules and c++ modules at the same time. This patch documents this intention. Reviewed By: bruno Differential Revision: https://reviews.llvm.org/D136221
-
Haojian Wu authored
-
Michael Platings authored
This permits using the <locale> header with newlib or picolibc when LIBCXX_ENABLE_WIDE_CHARACTERS=FALSE. Since D136682 the __support/xlocale headers themselves include the headers they require, respecting the LIBCXX_ENABLE_WIDE_CHARACTERS option. Differential Revision: https://reviews.llvm.org/D136947
-
Yuanfang Chen authored
This is flicky for buildbots (for example, https://lab.llvm.org/buildbot/#/builders/188/builds/21560) because of the short timeout. The test coverage is not reduced because the stdout check is performed in other googtest-* unit tests.
-
Yuanfang Chen authored
Per wordings in - https://eel.is/c++draft/over.match#best.general-2.6 - https://eel.is/c++draft/temp.constr.order - https://eel.is/c++draft/temp.constr#atomic-1 constraints partial ordering should use the unsubstituted template parameters of the constrained entity, not the instantiated entity. Fix #56154 Reviewed By: erichkeane, royjacobson, mizvekov Differential Revision: https://reviews.llvm.org/D136545
-
Yuanfang Chen authored
follow up https://github.com/llvm/llvm-project/commit/d30e2eefc3cf8dfd2210aefd62f13a6e7c011b43 Reviewed By: mizvekov Differential Revision: https://reviews.llvm.org/D136744
-
esmeyi authored
Summary: We currently optimize the comparison only in SSA, therefore we will miss some optimization opportunities where the input of comparison is lowered from COPY in post-RA. Ie. ExpandPostRA::LowerCopy is called after PPCInstrInfo::optimizeCompareInstr. This patch optimizes the comparison in post-RA and only the cases that compare against zero can be handled. D131374 converts the comparison and its user to a compare against zero with the appropriate predicate on the branch, which creates additional opportunities for this patch. Reviewed By: shchenz, lkail Differential Revision: https://reviews.llvm.org/D131873
-
Lang Hames authored
This brings the aarch64 edges into alignment with the naming scheme for the x86-64 edges. Edge behavior is mostly unchanged, but some irrelevant assertions and errors have been removed.
-
Weining Lu authored
Print $zero register if operand is zero, otherwise print it normally. Clang is highly compatible [1] with GCC inline assembly extensions, allowing the same set of constraints, modifiers and operands as GCC inline assembly. This patch tries to make it compatible regarding LoongArch specific operand modifiers. GCC supports many modifiers [2], but it seems that only x86 and msp430 are documented [3][4]. I don't know if any other modifiers are being used except the 'z' in Linux [5]. [1]: https://clang.llvm.org/compatibility.html#inline-asm [2]: https://github.com/gcc-mirror/gcc/blob/master/gcc/config/loongarch/loongarch.cc#L4884-L4911 [3]: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#x86Operandmodifiers [4]: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#msp430Operandmodifiers [5]: https://github.com/torvalds/linux/blob/master/arch/loongarch/include/asm/cmpxchg.h#L17 Differential Revision: https://reviews.llvm.org/D136841
-
gonglingqin authored
If `__builtin_frame_address` or `__builtin_return_address` is invoked with non-zero argument, show an error message instead of a crash. Reference: https://reviews.llvm.org/rG83b88441ad951fe99c30402930ef3cd661f2fd2b Differential Revision: https://reviews.llvm.org/D136917
-
Weining Lu authored
'J' is defined in GCC [1] but not documented [2] while Linux [3] has already used it in LoongArch port. [1]: https://github.com/gcc-mirror/gcc/blob/master/gcc/config/loongarch/constraints.md#L61 [2]: https://gcc.gnu.org/onlinedocs/gccint/Machine-Constraints.html [3]: https://github.com/torvalds/linux/blob/master/arch/loongarch/include/asm/cmpxchg.h#L19 Differential Revision: https://reviews.llvm.org/D136835
-
Peter Klausler authored
A statement function in Fortran may be called, but it may not be the target of a procedure pointer or passed as an actual argument.
-
Sheng authored
-
Kshitij Jain authored
This commit adds support for 32 bit absolute and pc relative relocations in ELF/i386 objects, along with simple regression tests. Reviewed By: sgraenitz, lhames Differential Revision: https://reviews.llvm.org/D135523
-
Peter Klausler authored
Some of the circumstances that require that a procedure have an explicit interface at a point of call due to a characteristic of a dummy argument apply to dummy procedures, too. Differential Revision: https://reviews.llvm.org/D136994
-
Sanjoy Das authored
for (I = Start; I < End; I += 1) always terminates so mark {scf|affine}.for as RecursivelySpeculatable when step is known to be 1. Reviewed By: chelini Differential Revision: https://reviews.llvm.org/D136376 -
Lang Hames authored
This is a vestige of the original MachO-specific edge set and was never used as a generic aarch64 edge kind.
-
Peter Klausler authored
Disable the test that corresponds to a semantic check that was disabled to work around an MSVC build problem.
-
Peter Klausler authored
A Fortran program may not specify a particular attribute multiple times for the same entity in a scope. Differential Revision: https://reviews.llvm.org/D136991
-
Patrick Walton authored
Currently, InstCombine can elide a memcpy from a constant to a local alloca if that alloca is passed as a nocapture parameter to a *function* that's readnone or readonly, but it can't forward the memcpy if the *argument* is marked readonly nocapture, even though readonly guarantees that the callee won't mutate the pointee through that pointer. This patch adds support for detecting and handling such situations, which arise relatively frequently in Rust, a frontend that liberally emits readonly. A more general version of this optimization would use alias analysis to check the call's ModRef info for the pointee, but I was concerned about blowing up compile time, so for now I'm just checking for one of readnone on the function, readonly on the function, or readonly on the parameter. Differential Revision: https://reviews.llvm.org/D136822
-
James Player authored
As mentioned in https://discourse.llvm.org/t/rfc-extend-ranges-infrastructure-to-better-match-c-20/65377 Lambda objects are not copy assignable, and therefore neither are iterator types which hold a lambda. STL code require iterators be copy assignable. Users may not use mapped_iterator with a std::deque for example: https://godbolt.org/z/4Px7odEEd This blog post [1] explains the problem and solution. We define a wrapper class to store callable objects with two specialization. 1. Specialization for non-function types - Use a std::optional as storage for non-function callable. - Define operator=() implementation(s) which use std::optional::emplace() instead of the assignment operator. 2. Specialization for function types - Store as a pointer (even if template argument is a function reference). - Default construct pointer to nullptr. This Callable wrapper class is now default constructible (with invalid state) and copy/move assignable. With these new properties available on the callable object, mapped_iterator can define a default constructor as well. [1] https://www.fluentcpp.com/2019/04/16/an-alternative-design-to-iterators-and-ranges-using-stdoptional/ Reviewed By: kazu Differential Revision: https://reviews.llvm.org/D134675
-
Peter Klausler authored
When a dummy argument is a procedure pointer without INTENT(IN), any actual argument must also be a procedure pointer, whether the dummy procedure pointer's interface is explicit or not. Differential Revision: https://reviews.llvm.org/D136989
-
Florian Hahn authored
Also invalidate block and loop dispositions during non-trivial unswitching. Fixes #58564.
-
Peter Klausler authored
We implemented 19.3.4p1 literally in name resolution: A component name has the scope of its derived-type definition. Outside the type definition, it may also appear within a designator of a component of a structure of that type or as a component keyword in a structure constructor for that type. and within the derived-type definition would resolve the "bare" names of components in specification inquiries and other contexts to those components, not to any symbols in the enclosing scopes. It turns out that most Fortran compilers resolve only "bare" names thus when they are type parameters, and the names of data and procedure components do not shadow exterior symbols. Adjust name resolution to follow that precedent rather than what seems to be clear language in the standard. Differential Revision: https://reviews.llvm.org/D136984
-
Peter Klausler authored
Make a requested change to the wording of a fatal I/O error message. Differential Revision: https://reviews.llvm.org/D136984
-
Daniel Thornburgh authored
This was previously attempted in 2016 by colinl's D18770, but LLD tests were missed, which caused the change to be reverted. Setting --print-imm-hex by default brings llvm-objdump's behavior closer in line with objdump, and it makes it easier to read addresses and alignment from the disassembly. It may make non-address immediates harder to interpret, but it still seems the better default, barring more context-sensitive base selection logic. Differential Revision: https://reviews.llvm.org/D136972
-
Daniel Thornburgh authored
This prepares for an upcoming change to make --print-imm-hex the default behavior of llvm-objdump. A few newly-added tests were missed the first time around. See D136972 for details.
-
Kazu Hirata authored
This patch fixes: lld/MachO/SyntheticSections.cpp: In member function ‘virtual void lld::macho::ChainedFixupsSection::writeTo(uint8_t*) const’:
-
Peter Klausler authored
Previous attempt to work around a bogus error from MSVC 14 on code from a recent patch failed, so add an #ifdef and disable the feature for MSVC builds to get the build bot back up.
-
Kazu Hirata authored
This patch fixes: lld/MachO/OutputSegment.cpp:50:43: warning: enumerated and non-enumerated type in conditional expression [-Wextra]
-
Kazu Hirata authored
This reverts commit 95eaefd0. I accidentally committed a patch to add a redundant typename.
-
Patrick Walton authored
The current test in printf-5.c appears to try to emit a volatile memcpy for the format string, but it doesn't because the volatile qualifier is implicitly casted away. Using a string literal instead preserves the volatile qualifier. This is a follow-up to D137031 and is a prerequisite for D136822, which elides memcpys in more instances and would otherwise break this test. Differential Revision: https://reviews.llvm.org/D137042
-
Kazu Hirata authored
-
Kazu Hirata authored
This patch fixes: llvm/lib/Target/AMDGPU/SIInstrInfo.cpp:7383: warning: enumerated mismatch in conditional expression: ‘llvm::AMDGPU::UfmtGFX11::UnifiedFormat’ vs ‘llvm::AMDGPU::UfmtGFX10::UnifiedFormat’
-
Kazu Hirata authored
This patch fixes: llvm/lib/Target/Mips/MipsInstrInfo.cpp:71:52: warning: enumerated and non-enumerated type in conditional expression [-Wextra]
-
Peter Klausler authored
Recode a recent patch in an attempt to dodge a nonsensical error from MSVC 14.
-
Kazu Hirata authored
This patch fixes: llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:1554:6: warning: ‘llvm::Value* {anonymous}::HexagonVectorCombine::simplify(llvm::Value*) const’ defined but not used [-Wunused-function] -
Kazu Hirata authored
This patch fixes: llvm/utils/unittest/googletest/include/gtest/gtest.h:1526:11: error: comparison of integers of different signs: 'const unsigned long' and 'const int' [-Werror,-Wsign-compare]
-
Nicolai Hähnle authored
[Re-submit after earlier revert due to a test failure. Commit dce78646 ("clang-tblgen build: avoid duplicate inclusion of libLLVMSupport") is believe to address the root cause of the test failure.] Follow the pattern used in MLIR for the cl::opt instances. v2: - make DebugCounter::isCountingEnabled public so that the DebugCounterOwner doesn't have to be a nested class. This simplifies later changes v3: - remove the indirection via DebugCounterOwner::instance() Differential Revision: https://reviews.llvm.org/D129116
-
Kazu Hirata authored
This patch fixes: flang/lib/Evaluate/fold-integer.cpp:613:25: error: lambda capture 'name' is not used [-Werror,-Wunused-lambda-capture]
-