- Oct 11, 2021
-
-
Ben Dunbobbin authored
I noticed that we had this case in our internal testsuite but couldn't find it in LLD's tests. This adds that case. Differential Revision: https://reviews.llvm.org/D110716
-
Michał Górny authored
Rewrite the register reading/writing tests to use explicit qRegisterInfo packets rather than relying on ARM registers being hardcoded in LLDB. While at it, use x86_64 for tests -- since it was easier for me to get the register lists from that architecture. Differential Revision: https://reviews.llvm.org/D111496
-
Eric Schweitz authored
Update .clang-tidy file with the value used in fir-dev. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: rovka Differential Revision: https://reviews.llvm.org/D111525 Co-authored-by:
Valentin Clement <clementval@gmail.com>
-
Andrzej Warzynski authored
This patch adds a new abstract class for frontend actions: `PrescanAndSemaDebugAction`. It's almost identical to `PrescanAndSemaAction`, but in the presence of semantic errors it does not skip the corresponding `ExecuteAction` specialisation. Instead, it runs it as if there were no semantic errors. This class is for developer actions only (i.e. front-end driver options). The new behaviour does not affect the return code from `flang-new -fc1` when the input file is semantically incorrect. The return code is inferred from the number of driver diagnostics generated in `CompilerInstance::ExecuteAction` and this patch does not change that. More specifically, the semantic errors are still reported and hence the driver is able to correctly report that the compilation has failed (with a non-zero return code). This new base class is meant for debug actions only and `DebugDumpAllAction` is updated to demonstrate the new behaviour. With this change, `flang-new -fc1 -fdebug-dump-all` dumps the parse tree and symbols for all input files, regardless of whether any semantic errors were found. This patch addresses https://bugs.llvm.org/show_bug.cgi?id=52097. Differential Revision: https://reviews.llvm.org/D111308
-
Raphael Isemann authored
This adds support for parsing DW_AT_calling_convention in the DWARF parser. The generic DWARF parsing code already support extracting this attribute from A DIE and TypeSystemClang already offers a parameter to add a calling convention to a function type (as the PDB parser supports calling convention parsing), so this patch just converts the DWARF enum value to the Clang enum value and adds a few tests. There are two tests in this patch.: * A unit test for the added DWARF parsing code that should run on all platforms. * An API tests that covers the whole expression evaluation machinery by trying to call functions with non-standard calling conventions. The specific subtests are target specific as some calling conventions only work on e.g. win32 (or, if they work on other platforms they only really have observable differences on a specific target). The tests are also highly compiler-specific, so if GCC or Clang tell us that they don't support a specific calling convention then we just skip the test. Note that some calling conventions are supported by Clang but aren't implemented in LLVM (e.g. `pascal`), so there we just test that if this ever gets implemented in LLVM that LLDB works too. There are also some more tricky/obscure conventions that are left out such as the different swift* conventions, some planned Obj-C conventions (`Preserve*`), AAPCS* conventions (as the DWARF->Clang conversion is ambiguous for AAPCS and APPCS-VFP) and conventions only used for OpenCL etc. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D108629
-
Raphael Isemann authored
The current code just prints to the System's 'error log' which is usually stderr (+ some other log backend). Printing to stderr however just interferes with LLDB's console UI, so when this code is triggered during for example command completion it just breaks the LLDB console interface until the next redraw. Instead just use the normal LLDB log which is by default hidden and is what users usually attach to bug reports. The only known bug that triggers this is https://bugs.llvm.org/show_bug.cgi?id=46775 Reviewed By: labath Differential Revision: https://reviews.llvm.org/D111149
-
Bradley Smith authored
The lowering for EXTRACT_SUBVECTOR should not be called during type legalization, only as part of lowering, hence return SDValue() when called on illegal types. This also adds missing tests for extracting fixed types from illegal scalable types. Differential Revision: https://reviews.llvm.org/D111412
-
Pavel Labath authored
I believe this is a more natural behavior, and it also matches what gdb does. Differential Revision: https://reviews.llvm.org/D111399
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D111408
-
Michał Górny authored
Combine m_read_sp and m_write_sp into a single m_io_sp. In all currently existing code paths, they are pointing to the same object anyway. Differential Revision: https://reviews.llvm.org/D111396
-
Muhammad Omair Javaid authored
TestInferiorAssert.py test_inferior_asserting_disassemble passes after upgrading LLDB AArch64/Linux buildbot to Ubuntu Focal.
-
Qiu Chaofan authored
As for 128-bit floating points on PowerPC, compiler should have three machine modes: - IFmode, always IBM extended double - KFmode, always IEEE 754R 128-bit floating point - TFmode, matches the semantics for long double This commit adds support for IF mode with its complex variant, IC mode. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D109950
-
Andrew Savonichev authored
AAPCS requires i1 argument to be zero-extended to 8-bits by the caller. Emit a new AArch64ISD::ASSERT_ZEXT_BOOL hint (or AssertZExt for GlobalISel) to enable some optimization opportunities. In particular, when the argument is forwarded to the callee, we can avoid zero-extension and use it as-is. Differential Revision: https://reviews.llvm.org/D107160
-
Clement Courbet authored
-
David Sherwood authored
This patch adds further support for vectorisation of loops that involve selecting an integer value based on a previous comparison. Consider the following C++ loop: int r = a; for (int i = 0; i < n; i++) { if (src[i] > 3) { r = b; } src[i] += 2; } We should be able to vectorise this loop because all we are doing is selecting between two states - 'a' and 'b' - both of which are loop invariant. This just involves building a vector of values that contain either 'a' or 'b', where the final reduced value will be 'b' if any lane contains 'b'. The IR generated by clang typically looks like this: %phi = phi i32 [ %a, %entry ], [ %phi.update, %for.body ] ... %pred = icmp ugt i32 %val, i32 3 %phi.update = select i1 %pred, i32 %b, i32 %phi We already detect min/max patterns, which also involve a select + cmp. However, with the min/max patterns we are selecting loaded values (and hence loop variant) in the loop. In addition we only support certain cmp predicates. This patch adds a new pattern matching function (isSelectCmpPattern) and new RecurKind enums - SelectICmp & SelectFCmp. We only support selecting values that are integer and loop invariant, however we can support any kind of compare - integer or float. Tests have been added here: Transforms/LoopVectorize/AArch64/sve-select-cmp.ll Transforms/LoopVectorize/select-cmp-predicated.ll Transforms/LoopVectorize/select-cmp.ll Differential Revision: https://reviews.llvm.org/D108136
-
David Spickett authored
Due to reported failures in a local build. FAIL: Something is wrong in the test framework. Converting character sets: Invalid argument. (was enabled in https://reviews.llvm.org/D111138)
-
Valentin Clement authored
Add pass that convert abstract result to function argument. This pass is needed before the conversion to LLVM IR. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D111146 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Clement Courbet authored
Now that PR52104 is fixed.
-
Muhammad Omair Javaid authored
This is failing on Arm and AArch64 Linux buildbots since the time it was comitted. https://lab.llvm.org/buildbot/#/builders/96/builds/12628 Differential Revision: https://reviews.llvm.org/D107585
-
Clement Courbet authored
We were using the type of the loop back edge count to represent the store size. This failed for small loop counts (e.g. in the added test, the loop count was an i2). Use the index type instead. Fixes PR52104. Differential Revision: https://reviews.llvm.org/D111401
-
Andrew Browne authored
Test sometimes fails on buildbot (after two non-Origins executions): /usr/bin/ld: warning: Cannot export local symbol 'dfsan_flush' RSS at start: 4620, after mmap: 107020, after mmap+set label: 209424, after fixed map: 4624, after another mmap+set label: 209424, after munmap: 4624 /usr/bin/ld: warning: Cannot export local symbol 'dfsan_flush' RSS at start: 4620, after mmap: 107020, after mmap+set label: 209424, after fixed map: 4624, after another mmap+set label: 209424, after munmap: 4624 /usr/bin/ld: warning: Cannot export local symbol 'dfsan_flush' RSS at start: 4620, after mmap: 107020, after mmap+set label: 317992, after fixed map: 10792, after another mmap+set label: 317992, after munmap: 10792 release_shadow_space.c.tmp: /b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/dfsan/release_shadow_space.c:91: int main(int, char **): Assertion `after_fixed_mmap <= before + delta' failed. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D111522
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Uday Bondhugula authored
Fix affine loop unroll for zero trip count loops. Add missing check. Differential Revision: https://reviews.llvm.org/D111375
-
Lang Hames authored
These calls were left out of 4d7cea3d. In the InPlaceDispatcher test case the operation is a no-op, but it's good form to include it. In the DynamicThreadPoolTaskDispatcher test the shutdown call is required to ensure that we don't exit the test (and tear down the dispatcher) before the thread running the dispatch has completed.
-
Lang Hames authored
The callWrapperAsync and callSPSWrapperAsync methods take a handler object that is run on the return value of the call when it is ready. The new RunPolicy parameters allow clients to control how these handlers are run. If no policy is specified then the handler will be packaged as a GenericNamedTask and dispatched using the ExecutorProcessControl's TaskDispatch member. Callers can use the ExecutorProcessControl::RunInPlace policy to cause the handler to be run directly instead, which may be preferrable for simple handlers, or they can write their own policy object (e.g. to dispatch as some other kind of Task, rather than GenericNamedTask).
-
Lang Hames authored
-
Esme-Yi authored
Summary: This patch improves the error message context of the XCOFF interfaces by providing more details. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D110320
-
Qiu Chaofan authored
The SSE4 header (smmintrin.h) should include SSSE3 (tmmintrin.h) instead of SSE2 (emmintrin.h). Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D111482
-
Lang Hames authored
f3411616 introduced a dependence (for builds with LLVM_ENABLE_THREADS) on pthreads. This commit updates the CMakeLists.txt file to include a LINK_LIBS entry for pthreads.
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Lang Hames authored
These were accidentally left out of f3411616.
-
Arthur O'Dwyer authored
Differential Revision: https://reviews.llvm.org/D110735
-
Lang Hames authored
ExecutorProcessControl objects will now have a TaskDispatcher member which should be used to dispatch work (in particular, handling incoming packets in the implementation of remote EPC implementations like SimpleRemoteEPC). The GenericNamedTask template can be used to wrap function objects that are callable as 'void()' (along with an optional name to describe the task). The makeGenericNamedTask functions can be used to create GenericNamedTask instances without having to name the function object type. In a future patch ExecutionSession will be updated to use the ExecutorProcessControl's dispatcher, instead of its DispatchTaskFunction.
-
Arthur Eubanks authored
Use Module& wherever possible. Since every reduction immediately turns Chunks into an Oracle, directly pass Oracle instead. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D111122
-
Amara Emerson authored
-