- Feb 05, 2020
-
-
Simon Pilgrim authored
As detailed on PR43462, clang static analyzer is complaining about a null pointer dereference as we provide a 'host' toolchain fallback if the ToolChain pointer is null, but then use that pointer anyhow to report the triple. Tests indicate the ToolChain pointer is always valid and the 'host' code path is redundant. Differential Revision: https://reviews.llvm.org/D74046
-
Sjoerd Meijer authored
Once we have created a tail-predicated hardware-loop, and thus know the number of elements that are processed, we want to clean-up the iteration count expression of that loop. In D73682, we bailed the analysis on conditionally executed instructions. This adds support for IT-blocks, so that we can handle these cases again. The restriction is that we only support IT blocks containing 1 statement, but that seems to cover most cases and forms of the iteration count expression. Differential Revision: https://reviews.llvm.org/D73947
-
Alexey Bataev authored
-
Alexey Bataev authored
Summary: To use new/delete in NVPTX code we need to define them. Implementation copied from CUDA wrappers. Reviewers: hfinkel, jdoerfert Subscribers: mgorny, guansong, kkwli0, caomhin, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73128
-
Stephan Herhut authored
Summary: It is often needed to map entire ranges rather than single values. To avoid writing the same for loop every time, I have added an overload to the map method. Differential Revision: https://reviews.llvm.org/D73894
-
Artem Dergachev authored
It should now produce valid HTML again. Differential Revision: https://reviews.llvm.org/D73993
-
Momchil Velikov authored
The predicate should be adjacent to the opcode. Differential Revision: https://reviews.llvm.org/D74040
-
Andrea Di Biagio authored
Field NumMicroOpcodes is currently used by mca to model the number of uOPs dispatched from the uOp-Queue to the out of order backend. From a 'dispatch' point of view, an instruction with zero opcodes is still valid; it simply doesn't consume any dispatch group slots. However, mca doesn't expect an instruction with zero uOPs to consume pipeline resources because it is seen as a contradiction. In practice, it only makes sense if such an instruction is eliminated and never really executed. It may be that mca is being too conservative here. However I believe that mca is right, and we should probably check that inconsistency in CodeGenSchedule.cpp (when we also verify scheduling classes in general). This patch removes the check for MayLoad and MayStore in mca. That check is probably too conservative: we are already checking if a zero-uops instruction consumes any processor resources. Note also that instructions with unmodelled side-effects also tend to set the MayLoad/MayStore flags even if - theoretically speaking - they might not even consume any hw resources in practice. In future we may want to implement different checks (possibly outside of mca) and potentially revisit the logic in mca that verifies instructions. For that reason I have raised PR44797.
-
Simon Pilgrim authored
This always gets called at least once.
-
Sam Parker authored
Checking that the use-def chain that performs the loop count isSafeToRemove is not sufficient because it means that we can remove register copies that we need to restore lr to its correct value. This change now prevents the transform from kicking in for the 'remove-elem-moves' test which needs to addressed later on. Differential Revision: https://reviews.llvm.org/D74037
-
Sam Parker authored
While validating each MVE instruction, check that all instructions that touch memory are somehow predicated upon the VCTP. Differential Revision: https://reviews.llvm.org/D73616
-
Raphael Isemann authored
Changing the date2 to an timezone independent value broke the test as the data formatters uses the current time zone for the summary (so changing it to a time zone independent value would again break the test in some time zones). We anyway just care about this for date2 which will be printed in a timezone-independent summary.
-
Haojian Wu authored
Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74025
-
Raphael Isemann authored
-
Michał Górny authored
Introduce support for i386 platform that is shared with amd64 in the same plugin. The concept is partially based on the Linux implementation. The plugin tries to reuse as much code as possible. As a result, i386 register enums are mapped into amd64 values and those are used in actual code. The code for accessing FPU and debug registers is shared, although general-purpose register layouts do not match between the two kernel APIs and need to be #ifdef-ed. This layout will also make it possible to add support for debugging 32-bit programs on amd64 with minimal added code. In order for this to work, I had to add missing data for debug registers on i386. Differential Revision: https://reviews.llvm.org/D73802
-
Raphael Isemann authored
Summary: This test creates its dates with `NSDate dateWithNaturalLanguageString` which is deprecated and uses the current time zone of the machine to interpret the input string. This causes that the created NSDate has a different value depending on the locale of the machine and we hardcoded the value for California's time zone (PST) but the data formatter gives out the GMT value as a string. This just replaces the use with the timezone-independent dateWithTimeIntervalSince1970 (which we also use in the rest of the test) to make this pass independently of the time zone of the machine running the test. Reviewers: mib Reviewed By: mib Subscribers: lldb-commits, JDevlieghere Tags: #lldb Differential Revision: https://reviews.llvm.org/D74038
-
Alexey Sotkin authored
Text of the extension is available here: https://github.com/KhronosGroup/OpenCL-Docs/blob/master/ext/cl_khr_mipmap_image.asciidoc Patch by Ilya Mashkov Differential Revision: https://reviews.llvm.org/D71460
-
Simon Pilgrim authored
We weren't account for load latencies in the SSE42/AES/CLMUL schedule classes
-
Simon Pilgrim authored
-
Ayke van Laethem authored
The disassembler of the AVR backend is incomplete: most instructions do not correctly disassemble yet. This patch is the first in a series to add disassembly support to the AVR backend. It starts with adding disassembler tests for instructions that already disassemble correctly. Differential Revision: https://reviews.llvm.org/D73911
-
Martin Storsjö authored
Revert the part of that change that broke the test Passes/./PluginsTests/PluginsTests.LoadPlugin.
-
Martin Storsjö authored
Differential Revision: https://reviews.llvm.org/D73840
-
Haojian Wu authored
Reviewers: kadircet Reviewed By: kadircet Subscribers: merge_guards_bot, mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73780
-
Raphael Isemann authored
Summary: Currently having a typedef for ObjC types is breaking member access in LLDB: ``` typedef NSString Str; NSString *s; s.length; // OK Str *s; s.length; // Causes: member reference base type 'Str *' (aka 'NSString *') is not a structure or union ``` This works for NSString as there the type building from `NSString` -> `NSString *` will correctly build a ObjCObjectPointerType (which is necessary to make member access with a dot possible), but for the typedef the `Str` -> `Str *` conversion will produce an incorrect PointerType. The reason for this is that our check in TypeSystemClang::GetPointerType is not desugaring the base type, which causes that `Str` is not recognised as a type to a `ObjCInterface` as the check only sees the typedef sugar that was put around it. This causes that we fall back to constructing a PointerType instead which does not allow member access with the dot operator. This patch just changes the check to look at the desugared type instead. Fixes rdar://17525603 Reviewers: shafik, mib Reviewed By: mib Subscribers: mib, JDevlieghere, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D73952
-
Sebastian Neubauer authored
scalar_to_vector takes only one argument, not two. The a16 tests now also check the packing of coordinates into registers Differential Revision: https://reviews.llvm.org/D73482
-
Sebastian Neubauer authored
This should lower the amount of used registers for gfx9. I updated some of the changed tests with the update script because changing them by hand is tedious. Differential Revision: https://reviews.llvm.org/D73884
-
Georgii Rymar authored
Previously the description allowed to describe symbols with use of `Name` and `Index` keys. This patch removes them and now it is still possible to use either names or symbol indexes, but the code is simpler and the format is slightly different. Such a change will be useful for another patches, e.g: https://reviews.llvm.org/D73788#inline-671077 Differential revision: https://reviews.llvm.org/D73888
-
Kadir Cetinkaya authored
-
Djordje Todorovic authored
We currently only handle mem instructions with a single define. Avoid the call site parameter debug info when we find the case with multiple defs, rather than throwing an assert. Differential Revision: https://reviews.llvm.org/D73954
-
Kadir Cetinkaya authored
Solves this issue: https://github.com/clangd/clangd/issues/157 This is my first contribution to an llvm project, so I hope I'm doing it right! Patch by @topisani (Tobias Pisani)! Reviewers: kadircet, klimek Differential Revision: https://reviews.llvm.org/D73811
-
Craig Topper authored
[X86] Add a DAG combine for (i32 (sext (i8 (x86isd::setcc_carry)))) -> (i32 (x86isd::setcc_carry)) and remove isel patterns. Same for any_extend though we don't have coverage for that. The test changes are because isel didn't check one use of the setcc_carry. So in isel we would end up with two different sized setcc_carry instructions. And since it clobbers the flags we would need to recreate the flags for the second instruction. This code handles additional uses by truncating the new wide setcc_carry back to the original size for those uses.
-
Petr Hosek authored
When building the default builtin and runtimes target, set the CMAKE_SYSTEM_NAME to the current one. This is not necessary on Linux and Darwin, but it appears to be necessary on Windows, otherwise CMake fails. Differential Revision: https://reviews.llvm.org/D73811
-
Petr Hosek authored
XRay builds uses llvm-config to obtain the ldflags and libs and then passes those to CMake. Unfortunately, this breaks on Windows because CMake tries to interpret backslashes followed by certain characters as flags. We need to rewrite these into forward slashes that are used by CMake (even on Windows). Differential Revision: https://reviews.llvm.org/D73523
-
Paula Toth authored
Reviewers: abrachet Reviewed By: abrachet Subscribers: mgorny, MaskRay, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D74008
-
Jan Vesely authored
The old version might be faster on EG (RECIP_IEEE is Trans only), but it'd need extra corner case checks. This gives correct corner case behaviour and saves a register. Fixes OCL CTS sqrt test (1-thread, scalar) on Turks. Reviewer: arsenm Differential Revision: https://reviews.llvm.org/D74017
-
Thomas Lively authored
Summary: For now, this ABI simply expands all possible aggregate arguments and returns all possible aggregates directly. This ABI will change rapidly as we prototype and benchmark a new ABI that takes advantage of multivalue return and possibly other changes from the MVP ABI. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72972
-
Thomas Lively authored
Summary: This reverts commit 3ef169e5. The purpose of this commit was to allow stack machines to perform instruction selection for instructions with variadic defs. However, MachineInstrs fundamentally cannot support variadic defs right now, so this change does not turn out to be useful. Depends on D73927. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73928
-
Jason Molenda authored
Explicitly check for a request to attach to a pid that doesn't exist, to attach to a pid that is already being debugged, unify the SIP process check, and an attempt at checking if developer mode is enabled on the system (which isn't working in debugserver, for some reason; I can't get the authorization record which should be an unprivileged operation and works in a standalone program I wrote). I'll debug the developer mode check later, but I wanted to land it along with everything else; right now it will claim that developer mode is always enabled so it's harmless to include as-is.
-
Kern Handa authored
This binplaces `mlir-translate`, `mlir-cuda-runner`, and `mlir-cpu-runner` when building the CMake install target. Differential Revision: https://reviews.llvm.org/D73986
-
Matt Arsenault authored
This was incorrectly rounding up to the next power of 2. v4f32 was rounding up to v8f32, which was just wrong. There are also v3i16/v3f16 available in MVT, so we don't even need to round the f16 cases anymore. Additionally, this field is really an EVT so we don't even need to consider this. Also switch some asserts to return invalid. We should have an IR verifier for these intrinsic return types, but for now it's better to not assert on IR that passes the verifier. This should also probably be fixed to consider that dmask is really eliminating some of the loaded components.
-