- Oct 14, 2020
-
-
Jeremy Morse authored
When given the -experimental-debug-variable-locations option (via -Xclang or to llc), have SelectionDAG generate DBG_INSTR_REF instructions instead of DBG_VALUE. For now, this only happens in a limited circumstance: when the value referred to is not a PHI and is defined in the current block. Other situations introduce interesting problems, addresed in later patches. Practically, this patch hooks into InstrEmitter and if it can find a defining instruction for a value, gives it an instruction number, and points the DBG_INSTR_REF at that <instr, operand> pair. Differential Revision: https://reviews.llvm.org/D85747
-
Haojian Wu authored
we need add a "this->" inside the lambda body to workaround it. Rewrite it to normal for-range loop.
-
Roman Lebedev authored
Revert "Reland "[SCEV] Model ptrtoint(SCEVUnknown) cast not as unknown, but as zext/trunc/self of SCEVUnknown"" and it's follow-ups While we haven't encountered an earth-shattering problem with this yet, by now it is pretty evident that trying to model the ptr->int cast implicitly leads to having to update every single place that assumed no such cast could be needed. That is of course the wrong approach. Let's back this out, and re-attempt with some another approach, possibly one originally suggested by Eli Friedman in https://bugs.llvm.org/show_bug.cgi?id=46786#c20 which should hopefully spare us this pain and more. This reverts commits 1fb61042, 73246166, aaafe350, e92a8e0c. I've kept&improved the tests though.
-
Pavel Labath authored
This patch adds support for the _M and _m gdb-remote packets, which (de)allocate memory in the inferior. This works by "injecting" a m(un)map syscall into the inferior. This consists of: - finding an executable page of memory - writing the syscall opcode to it - setting up registers according to the os syscall convention - single stepping over the syscall The advantage of this approach over calling the mmap function is that this works even in case the mmap function is buggy or unavailable. The disadvantage is it is more platform-dependent, which is why this patch only works on X86 (_32 and _64) right now. Adding support for other linux architectures should be easy and consist of defining the appropriate syscall constants. Adding support for other OSes depends on the its ability to do a similar trick. Differential Revision: https://reviews.llvm.org/D89124
-
Pavel Labath authored
replace char*+length combo with llvm::Error
-
Serge Guelton authored
Harmonize usage of LLVM components througout Flang. Explicit LLVM Libs where used across several CMakeFIles, which led to incompatibilities with LLVM shlibs. Fortunately, the LLVM component system can be relied on to harmoniously handle both cases. Differential Revision: https://reviews.llvm.org/D87893
-
Kadir Cetinkaya authored
Differential Revision: https://reviews.llvm.org/D89307
-
Gabor Marton authored
During the import of attributes we forgot to set the spelling list index. This caused a segfault when we wanted to traverse the AST (e.g. by the dump() method). Differential Revision: https://reviews.llvm.org/D89318
-
Gabor Marton authored
During the import of FormatAttrs we forgot to import the type (e.g `__scanf__`) of the attribute. This caused a segfault when we wanted to traverse the AST (e.g. by the dump() method). Differential Revision: https://reviews.llvm.org/D89319
-
Haojian Wu authored
so that we could start experiment for C. Previously, these flags in clangd were only meaningful for C++. We need to flip them for C, this patch repurpose these flags. - if true, just set it. - if false, just respect the value in clang. this would allow us to keep flags on for C++, and optionally flip them on for C. Differential Revision: https://reviews.llvm.org/D89233
-
Carl Ritson authored
Generate (at runtime) the table used to drive getSubRegFromChannel, base on AMDGPUSubRegIdxRanges from TableGen data. The is a step closer to it being staticly generated by TableGen and allows getSubRegFromChannel handle all bitwidths in the mean time. Reviewed By: rampitec, arsenm, foad Differential Revision: https://reviews.llvm.org/D89217
-
Juneyoung Lee authored
This patch updates `isGuaranteedNotToBeUndefOrPoison` to use `llvm.assume`'s `noundef` operand bundle. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D89219
-
Tim Northover authored
Recently we started looking into sret parameters, though the issue could crop up elsewhere. If the pointee type is opaque, we should not try to compute its size because that leads to an assertion failure.
-
Nicolas Vasilache authored
This revision adds a programmable codegen strategy from linalg based on staged rewrite patterns. Testing is exercised on a simple linalg.matmul op. Differential Revision: https://reviews.llvm.org/D89374
-
Simon Pilgrim authored
-
sameeran joshi authored
The OpenMP 5.0 standard restricts nowait clause to appear only once on sections directive. See OpenMP 5.0 - 2.8.1 - point 3 in restrictions. Added a test with fix. Reviewed By: DavidTruby Differential Revision: https://reviews.llvm.org/D88556
-
Jeremy Morse authored
-
Max Kazantsev authored
-
Rainer Orth authored
This relands commit 53b3873c. The failure of `ConvertUTFTest.UTF16WrappersForConvertUTF16ToUTF8String` detected the first time is fixed. Differential Revision: https://reviews.llvm.org/D88824
-
Vinay Madhusudan authored
Differential Revision: https://reviews.llvm.org/D89365
-
Jeremy Morse authored
This patch defines the MIR format for debug instruction references: it's an integer trailing an instruction, marked out by "debug-instr-number", much like how "debug-location" identifies the DebugLoc metadata of an instruction. The instruction number is stored directly in a MachineInstr. Actually referring to an instruction comes in a later patch, but is done using one of these instruction numbers. I've added a round-trip test and two verifier checks: that we don't label meta-instructions as generating values, and that there are no duplicates. Differential Revision: https://reviews.llvm.org/D85746
-
Evgeniy Brevnov authored
LV fails with assertion checking that UF > 0. We already set UF to 1 if it is 0 except the case when IC > MaxInterleaveCount. The fix is to set UF to 1 for that case as well. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D87679
-
Simon Pilgrim authored
Replace m_SpecificInt with m_APIntAllowUndef to matching splats containing undefs, then use ConstantExpr::mergeUndefsWith to merge the undefs together in the result. The undef funnel shift amounts are getting replaced with zero later on - I'll address this in a later patch, otherwise we lose potential shift by splat value patterns.
-
Eduardo Caldas authored
-
Eduardo Caldas authored
* Add assertions to other `MutationsImpl` member functions * `findPrevious` is a free function Differential Revision: https://reviews.llvm.org/D89314
-
Eduardo Caldas authored
* Add assertions for other preconditions. * If nothing is modified, don't mark it. Differential Revision: https://reviews.llvm.org/D89303
-
Sjoerd Meijer authored
-
Michał Górny authored
Add a test to verify that 'register read' and 'register write' commands work correctly in a multithreaded program, in particular that they read or write registers for the correct thread. The tests use locking to ensure that events are serialized and the test can execute reliably. Differential Revision: https://reviews.llvm.org/D89248
-
sameeran joshi authored
`OmpStructureChecker` is supposed to work only with `parser::OmpClause` after tablegen changes for OpenMP and OpenACC were introduced. Hence `OmpMemoryOrderClause`, `OmpAtomicMemoryOrderClause` and similar ones were failing to catch semantic errors, inspite of having code for semantic checks. This patch tries to change parser for `OmpMemoryOrderClause` and similar dependent ones and use `OmpClauseList` which resides/comes from common tablegen for OpenMP/OpenACC eventually using `parser::OmpClause`. This patch also tries to : 1. Change `OmpCriticalDirective` in `openmp-parsers.cpp` to support `OmpClauseList`. 2. Check-flang regresses when changes were introduced due to missing semantic checks in OmpCritical, patch implements them at the minimal level to pass the regression. 3. Change tablegen to support Hint clause. 4. Adds missing source locations `CharBlock Source` in each atomic construct. 5. Remove dead code realted to `memory-order-clauses` after moving to `OmpClauseList`. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D88965
-
David Sherwood authored
When passing SVE types as arguments to function calls we can run out of hardware SVE registers. This is normally fine, since we switch to an indirect mode where we pass a pointer to a SVE stack object in a GPR. However, if we switch over part-way through processing a SVE tuple then part of it will be in registers and the other part will be on the stack. This is wrong and we'd like to avoid any silent ABI compatibility issues in future. For now, I've added a fatal error when this happens until we can get a proper fix. Differential Revision: https://reviews.llvm.org/D89326
-
Aden Grue authored
Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D89338
-
Raphael Isemann authored
Currently one can redefine a persistent variable and LLDB will just silently ignore the second definition: ``` (lldb) expr int $i = 1 (lldb) expr int $i = 2 (lldb) expr $i (int) $i = 1 ``` This patch makes this an error and rejects the expression with the second definition. A nice follow up would be to refactor LLDB's persistent variables to not just be a pair of type and name, but also contain some way to obtain the original declaration and source code that declared the variable. That way we could actually make a full diagnostic as we would get from redefining a variable twice in the same expression. Reviewed By: labath, shafik, JDevlieghere Differential Revision: https://reviews.llvm.org/D89310
-
sstefan1 authored
D85703 will need to create shallow wrappers in order to track the spmd icv. We need to make it available. Differential Revision: https://reviews.llvm.org/D89342
-
Haojian Wu authored
Instead of collecting all specializations and doing a post-filterin, we can just get all targeted specializations from getPartialSpecializationsizations. Differential Revision: https://reviews.llvm.org/D89220
-
Luqman Aden authored
Fixes http://lab.llvm.org:8011/#/builders/119/builds/92
-
Dominik Montada authored
Remove check for standalone and shared library mode in libcxxabi to allow including tests in said mode. This check prevented running the tests in standalone mode with static libraries, which is the case for baremetal targets. Fix check-unwind target trying to use a non-existent llvm-lit executable in standalone mode. Copy the HandleOutOfTreeLLVM logic from libcxxabi to libunwind in order to make the tests work in standalone mode. Reviewed By: ldionne, #libc_abi, #libc Differential Revision: https://reviews.llvm.org/D86540
-
Evgeny Leviant authored
Differential revision: https://reviews.llvm.org/D89308
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
Currently we only strip the Python extension when the file exists on disk because we assumed that if it didn't exist it was a module. However, with the change from D89334 this is no longer the case as we want to be able to import a relative path to a .py as a module. Since we always import a scripting module as a "python module" we should always strip the extension if present. Differential revision: https://reviews.llvm.org/D89352
-
Jonas Paulsson authored
This reverts commit c78da037. Temporarily reverted due to https://bugs.llvm.org/show_bug.cgi?id=47837.
-