- Sep 04, 2021
-
-
Matheus Izvekov authored
See PR51708. Attempting copy elision in dependent contexts with invalid variable, such as a variable with incomplete type, would cause a crash when attempting to calculate it's alignment. The fix is to just skip this optimization on invalid VarDecl, as otherwise this provides no benefit to error recovery: This functionality does not try to diagnose anything, it only calculates a flag which will affect where the variable will be allocated during codegen. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: rtrieu Differential Revision: https://reviews.llvm.org/D109191
-
Stanislav Mekhanoshin authored
-
Louis Dionne authored
_LIBCPP_HAS_NO_LONG_LONG was only defined on FreeBSD. Instead, use the using_if_exists attribute to skip over declarations that are not available on the base system. Note that there's an annoying limitation that we can't conditionally define a function based on whether the base system provides a function, so for example we still need preprocessor logic to define the abs() and div() overloads. Differential Revision: https://reviews.llvm.org/D108630
-
Louis Dionne authored
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97675 has now been resolved in GCC 11, so we can remove those workarounds. Differential Revision: https://reviews.llvm.org/D109188
-
David Green authored
As an extension to D107866, this adds store(fptosisat(..)) patterns, similar to the existing fptosi patterns, to prevent unnecessarily moving into gpr regs where we can use fp stores directly. Differential Revision: https://reviews.llvm.org/D108378
-
Nico Weber authored
Ran `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format`.
-
Jinsong Ji authored
The file is requiring x86, but using llc without triple. This will cause problem on non-x86 platforms, as the default triple will not be x86. eg: On PowerPC le, it will emit warnings as: 'x86-64' is not a recognized processor for this target (ignoring processor) '+cx8' is not a recognized feature for this target (ignoring feature) '+fxsr' is not a recognized feature for this target (ignoring feature) '+mmx' is not a recognized feature for this target (ignoring feature) '+sse' is not a recognized feature for this target (ignoring feature) .. On some other platform, it may even crash -- if some of the feature are with same name (eg: soft-float). Add the triple as this was the intention test target.
-
Alexandre Rames authored
Per the comments, `hash_code` values "are not stable to save or persist", so are unsuitable for the module hash, which must persist across compilations for the implicit module hashes to match. Note that in practice, today, `hash_code` are stable. But this is an implementation detail, with a clear `FIXME` indicating we should switch to a per-execution seed. The stability of `MD5` also allows modules cross-compilation use-cases. The `size_t` underlying storage for `hash_code` varying across platforms could cause mismatching hashes when cross-compiling from a 64bit target to a 32bit target. Note that native endianness is still used for the hash computation. So hashes will differ between platforms of different endianness. Reviewed By: jansvoboda11 Differential Revision: https://reviews.llvm.org/D102943
-
Peter Klausler authored
Move the closure of the subset of flang/runtime/*.h header files that are referenced by source files outside flang/runtime (apart from unit tests) into a new directory (flang/include/flang/Runtime) so that relative include paths into ../runtime need not be used. flang/runtime/pgmath.h.inc is moved to flang/include/flang/Evaluate; it's not used by the runtime. Differential Revision: https://reviews.llvm.org/D109107
-
Jinsong Ji authored
On some platform (eg: AIX), diff will complain about newline. diff: Missing newline at the end of file .../llvm/test/tools/llvm-profdata/Inputs/cs-sample.proftext.
-
LLVM GN Syncbot authored
-
Med Ismail Bennani authored
This patch splits the previous `ScriptedProcessPythonInterface` into multiple specific classes: 1. The `ScriptedInterface` abstract class that carries the interface instance object and its virtual pure abstract creation method. 2. The `ScriptedPythonInterface` that holds a generic `Dispatch` method that can be used by various interfaces to call python methods and also keeps a reference to the Python Script Interpreter instance. 3. The `ScriptedProcessInterface` that describes the base Scripted Process model with all the methods used in the underlying script. All these components are used to refactor the `ScriptedProcessPythonInterface` class, making it more modular. This patch is also a requirement for the upcoming work on `ScriptedThread`. Differential Revision: https://reviews.llvm.org/D107521 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Jessica Paquette authored
Revert "[analyzer][NFCI] Allow clients of NoStateChangeFuncVisitor to check entire function calls, rather than each ExplodedNode in it" This reverts commit a375bfb5. This was causing a bot to crash: https://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/23380/
-
Louis Dionne authored
Differential Revision: https://reviews.llvm.org/D109120
-
David Green authored
This extends D107865 to the VFP insructions, lowering llvm.fptosi.sat and llvm.fptoui.sat to VCVT instructions that inherently perform the saturate. Differential Revision: https://reviews.llvm.org/D107866
-
Jessica Paquette authored
-
Nico Weber authored
We end up calling resolveBranchVA(), which asserts for Undefineds. As fix, just return early in Writer::run() if there are any diagnostics after processing relocations (which is where undefined symbol errors are emitted). This matches what the ELF port does. Differential Revision: https://reviews.llvm.org/D109079
-
Craig Topper authored
This patch changes the register class to avoid accidentally setting the AVL operand to X0 through MachineIR optimizations. There are cases where we really want to use X0, but we can't get that past the MachineVerifier with the register class as GPRNoX0. So I've use a 64-bit -1 as a sentinel for X0. All other immediate values should be uimm5. I convert it to X0 at the earliest possible point in the VSETVLI insertion pass to avoid touching the rest of the algorithm. In SelectionDAG lowering I'm using a -1 TargetConstant to hide it from instruction selection and treat it differently than if the user used -1. A user -1 should be selected to a register since it doesn't fit in uimm5. This is the rest of the changes started in D109110. As mentioned there, I don't have a failing test from MachineIR optimizations anymore. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D109116
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D109230
-
- Sep 03, 2021
-
-
Chris Bieneman authored
This is a pretty small bit of CMake goop to generate code coverage reports. I always forget the right script invocation and end up fumbling around too much. Wouldn't it be great to have targets that "Just Work"? Well, I thought so. At present this only really works correctly for LLVM, but I'll extend it in subsequent patches to work for subprojects. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D109019
-
David Goldman authored
This helps improve the syntax highlighting for Objective-C code, although it currently doesn't work well in VS Code with methods/properties/ivars since we don't currently include the proper decl context (e.g. class). Differential Revision: https://reviews.llvm.org/D108584
-
Aart Bik authored
The sparse index order must always be satisfied, but this may give a choice in topsorts for several cases. We broke ties in favor of any dense index order, since this gives good locality. However, breaking ties in favor of pushing unrelated indices into sparse iteration spaces gives better asymptotic complexity. This revision improves the heuristic. Note that in the long run, we are really interested in using ML for ML to find the best loop ordering as a replacement for such heuristics. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D109100
-
Marius Brehler authored
-
V Donaldson authored
Flang front end function DumpHexadecimal generates a string representation of a REAL value. When the value is a NaN, the string contains a blank, as in "NaN 0x7fc00000". This function is used by lowering to generate a string that is then passed to llvm Support function convertFromStringSpecials, which does not expect a blank in the string. Remove the blank to allow correct recognition of a NaN by this llvm function. Note that function DumpHexadecimal is not exercised by the front end itself. This functionality is only exercised by code that is not yet present in llvm.
-
Ben Shi authored
Reviewed By: fodinabor Differential Revision: https://reviews.llvm.org/D109232
-
Michał Górny authored
-
Michał Górny authored
-
Nico Weber authored
This reverts commit 91eda9c3. Breaks tests on macOS, both intel and arm. See e.g. https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8837137028177680097/+/u/package_clang/stdout?format=raw https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8837137028177680081/+/u/package_clang/stdout?format=raw http://45.33.8.238/macm1/17258/step_7.txt http://45.33.8.238/mac/35004/step_7.txt
-
Kim-Anh Tran authored
This patch considers the CU index entry when reading the .debug_rnglists.dwo section. Reviewed By: jankratochvil Differential Revision: https://reviews.llvm.org/D107456
-
Nico Weber authored
This reverts commit da47c271. 6fe2beba was reverted in 88596404.
-
Vassil Vassilev authored
This reverts commit 6fe2beba which fails on clang-hexagon-elf
-
Nico Weber authored
-
David Spickett authored
While a fix for flaky results is being reviewed.
-
David Spickett authored
These instances don't have an obvious way to fail nicely so I've just asserted they are within range. Fixes the Arm 32 bit builds.
-
Vassil Vassilev authored
Original commit message: " Original commit message:" The current infrastructure in lib/Interpreter has a tool, clang-repl, very similar to clang-interpreter which also allows incremental compilation. This patch moves clang-interpreter as a test case and drops it as conditionally built example as we already have clang-repl in place. Differential revision: https://reviews.llvm.org/D107049 " This patch also ignores ppc due to missing weak symbol for __gxx_personality_v0 which may be a feature request for the jit infrastructure. Also, adds a missing build system dependency to the orc jit. " Additionally, this patch defines a custom exception type and thus avoids the requirement to include header <exception>, making it easier to deploy across systems without standard location of the c++ headers. Differential revision: https://reviews.llvm.org/D107049 -
LLVM GN Syncbot authored
-
Kristóf Umann authored
[analyzer][NFCI] Allow clients of NoStateChangeFuncVisitor to check entire function calls, rather than each ExplodedNode in it D105553 added NoStateChangeFuncVisitor, an abstract class to aid in creating notes such as "Returning without writing to 'x'", or "Returning without changing the ownership status of allocated memory". Its clients need to define, among other things, what a change of state is. For code like this: f() { g(); } foo() { f(); h(); } We'd have a path in the ExplodedGraph that looks like this: -- <g> --> / \ --- <f> --------> --- <h> ---> / \ / \ -------- <foo> ------ <foo> --> When we're interested in whether f neglected to change some property, NoStateChangeFuncVisitor asks these questions: ÷×~ -- <g> --> ß / \$ @&#* --- <f> --------> --- <h> ---> / \ / \ -------- <foo> ------ <foo> --> Has anything changed in between # and *? Has anything changed in between & and *? Has anything changed in between @ and *? ... Has anything changed in between $ and *? Has anything changed in between × and ~? Has anything changed in between ÷ and ~? ... Has anything changed in between ß and *? ... This is a rather thorough line of questioning, which is why in D105819, I was only interested in whether state *right before* and *right after* a function call changed, and early returned to the CallEnter location: if (!CurrN->getLocationAs<CallEnter>()) return; Except that I made a typo, and forgot to negate the condition. So, in this patch, I'm fixing that, and under the same hood allow all clients to decide to do this whole-function check instead of the thorough one. Differential Revision: https://reviews.llvm.org/D108695 -
Max Kazantsev authored
As noticed in https://reviews.llvm.org/D105688, it would be great to move handling of ICmpInst which was in canProveExitOnFirstIteration() to getValueOnFirstIteration(). Patch by Dmitry Makogon! Differential Revision: https://reviews.llvm.org/D108978 Reviewed By: reames
-
Konstantin Schwarz authored
This allows constructing a MemDesc from a MachineMemoryOperand, a pattern that starts to show up more frequently. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D109161
-
Simon Pilgrim authored
SLM PBLENDVB is just as bad as BLENDVPD/PS - so model it as such, fixing the rr vs rm uops diff as well. The Intel AoM appears to have a copy+paste typo with PBLENDW, it doesn't match Agner or InstLatX64. Noticed while investigating some of the weird discrepancies reported by the D103695 helper script (SLM had much better vector shift throughputs than it should).
-