- Nov 16, 2020
-
-
Thorsten authored
-
Thorsten authored
-
Vassil Vassilev authored
Original commit message: " Move the test compiler setup in a common place. NFCI This patch reduces the copy paste in the unittest/CodeGen folder by moving the common compiler setup phase in a header file. Differential revision: https://reviews.llvm.org/D91061 " This patch includes a fix for the memory leaks pointed out by @vitalybuka
-
Dmitry Preobrazhensky authored
Partially fixes bug 47518 (https://bugs.llvm.org/show_bug.cgi?id=47518) Reviewers: rampitec Differential Revision: https://reviews.llvm.org/D91412
-
Max Kazantsev authored
-
Caroline Concatto authored
This patch fixes the function isWideningInstruction for scalable vectors. Now the cost model can check the widening pattern for SVE. Differential Revision: https://reviews.llvm.org/D91260
-
Matthew Malcomson authored
In `GetGlobalSizeFromDescriptor` we use `dladdr` to get info on the the current address. `dladdr` returns 0 if it failed. During testing on Linux this returned 0 to indicate failure, and populated the `info` structure with a NULL pointer which was dereferenced later. This patch checks for `dladdr` returning 0, and in that case returns 0 from `GetGlobalSizeFromDescriptor` to indicate failure of identifying the address. This occurs when `GetModuleNameAndOffsetForPC` succeeds for some address not in a dynamically loaded library. One example is when the found "module" is '[stack]' having come from parsing /proc/self/maps. Differential Revision: https://reviews.llvm.org/D91344
-
Vitaly Buka authored
There is memory leaks This reverts commit 23cc8380. This reverts commit 888d06df.
-
Vitaly Buka authored
-
Max Kazantsev authored
-
Michał Górny authored
Create a helper GetOffsetRegSetData() method to get pointer to the regset data accounting for the necessary offset. Establish the offsets in the constructor and store them in the structure. This avoids having to add new Get*Offset() methods and combines some common code. Differential Revision: https://reviews.llvm.org/D91411
-
Michał Górny authored
Eliminate the remaining swith-case code for register getters, and migrate YMM registers to regset-oriented model. Since these registers are recombined from XMM and YMM_Hi128 XSAVE blocks, while LLDB gdb-server protocol transmits YMM registers whole, the offset-based model will not work here. Nevertheless, some improvement was possible. Replace generic 'XSaveRegSet' along with sub-sets for XSAVE components with 'YMMRegSet' (and more regsets in the future as further components are implemented). Create a helper GetYMMSplitReg() method that obtains pointers to the appropriate XMM and YMM_Hi128 blocks to reduce code duplication. Differential Revision: https://reviews.llvm.org/D91293
-
Michał Górny authored
Use offset-based method to access x86 debug registers. This also involves adding a test for the correctness of these offsets, and making GetDR() method of NativeRegisterContextWatchpoint_x86 public to avoid duplicate code. Differential Revision: https://reviews.llvm.org/D91268
-
Michał Górny authored
Use offset-based method to access base x87 FPU registers, using offsets relative to the position of 'struct FPR', as determined by the location of first register in it (fctrl). Change m_fpr to use a fixed-size array matching FXSAVE size (512 bytes). Add unit tests for verifying RegisterInfo offsets and sizes against the FXSAVE layout. Differential Revision: https://reviews.llvm.org/D91248
-
Dmitry Preobrazhensky authored
Partially fixes bug 47518 (https://bugs.llvm.org/show_bug.cgi?id=47518) Reviewers: rampitec Differential Revision: https://reviews.llvm.org/D91408
-
Dmitry Preobrazhensky authored
Partially fixes bug 47518 (https://bugs.llvm.org/show_bug.cgi?id=47518) Reviewers: rampitec Differential Revision: https://reviews.llvm.org/D91407
-
Michał Górny authored
Read and write registers from m_gpr using offsets from RegisterInfo rather than explicit switch-case. This eliminates a lot of redundant code, and avoids mistakes such as type mismatches seen recently (wrt segment registers). The same logic will be extended to other register sets in the future. Make m_gpr an uint8_t std::array to ease accesses. Ideally, we could avoid including <machine/reg.h> entirely in the future and instead get the correct GPR size from Utility/RegisterContextFreeBSD_* somehow. While at it, modify register set logic to use an explicit enum with llvm::Optional<>, making the code cleaner and at the same time enabling compiler warnings for unhandled sets. Since now we're fully relying on 'struct GPR' defined in Utility/RegisterContextFreeBSD_* being entirely in sync with the system structure, add unit tests to verify the field offsets and sizes. Differential Revision: https://reviews.llvm.org/D91216
-
Nicolas Vasilache authored
scf.parallel is currently not a good fit for tiling on tensors. Instead provide a path to parallelism directly through scf.for. For now, this transformation ignores the distribution scheme and always does a block-cyclic mapping (where block is the tile size). Differential revision: https://reviews.llvm.org/D90475
-
Kazushi (Jam) Marukawa authored
Add pfchv intrinsic instructions and a regression test. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D91522
-
Vitaly Buka authored
Make test order agnostic as it can change with platform.
-
Benjamin Kramer authored
-
Florian Hahn authored
This patch updates Clang's IRGen to add !annotation nodes with an "auto-init" annotation to all stores for auto-initialization. As discussed in 'RFC: Combining Annotation Metadata and Remarks' (http://lists.llvm.org/pipermail/llvm-dev/2020-November/146393.html) this allows using optimization remarks to track down where auto-init code was inserted (and not removed by optimizations). There are a few cases in the tests where !annotation gets dropped by optimizations. Those optimizations will be updated in subsequent patches. This patch is based on a patch by Francis Visoiu Mistrih. Reviewed By: thegameg, paquette Differential Revision: https://reviews.llvm.org/D91417
-
Sjoerd Meijer authored
Widen the IV to the widest available and legal integer type, which makes this transformations always safe so that we can skip overflow checks. Motivation is to let this pass trigger on 64-bit targets too, and this is the last patch in a serie to achieve this: D90402 moves pass LoopFlatten to just before IndVarSimplify so that IVs are not already widened, D90421 factors out widening from IndVarSimplify into Utils/SimplifyIndVar so that we can also use it in LoopFlatten. Differential Revision: https://reviews.llvm.org/D90640
-
David Penry authored
This patch adds the SchedMachineModel for Cortex-M7. It also adds test cases for the scheduling information. Details of the pipeline and descriptions are in comments in file ARMScheduleM7.td included in this patch. Differential Revision: https://reviews.llvm.org/D91355
-
Mikhail Goncharov authored
Otherwise it fails in some setups when creation of "out.wasm" is not possible. Differential Revision: https://reviews.llvm.org/D91521
-
Joachim Protze authored
This introduces the new `ARCHER_OPTIONS` flag `ignore_serial=0|1` to disable analysis and logging of memory accesses in the sequential part of the OpenMP application. In the sequential part of an OpenMP program no data race is possible, unless there is non-OpenMP concurrency (such as pthreads, MPI, ...). For the latter reason, this is not active by default. Besides reducing the runtime overhead for the sequential part of the program, this reduces the memory overhead for sequential initialization. In combination with `flush_shadow=1` this can allow analysis of applications, which run close to the limit of available memory, but only access smaller parts of shared memory during each OpenMP parallel region. A problem for this approach is that Archer only gets active, when the OpenMP runtime gets initialized, which might be after serial initialization of the application. In such case, it helps to call for example `omp_get_max_threads()` at the beginning of main. Differential Revision: https://reviews.llvm.org/D90473
-
Fraser Cormack authored
Similar to the X86 and AMDGPU targets, this uses a macro to cut down on repetitive and error-prone code when converting RISCVISD node names to strings in getTargetNodeName. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D91414
-
Kazushi (Jam) Marukawa authored
Change dl to DL in VEFrameLowering.cpp. And clean some comments. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D91490
-
Simon Moll authored
Use the less surprising shorthand OPC instead of OC.
-
Jan Svoboda authored
This enables automatically parsing and generating CC1 arguments for options where two flags control the same field, e.g. -fexperimental-new-pass-manager and -fno-experimental new pass manager. Reviewed By: Bigcheese, dexonsmith Original patch by Daniel Grumberg. Differential Revision: https://reviews.llvm.org/D83071
-
Lang Hames authored
Patch by Elena Kovanova. Thanks Elena! Problem: LLVM already has a feature to profile the JIT-compiled code with VTune. This is done using Intel JIT Profiling API (https://github.com/intel/ittapi). Function information is captured by VTune as soon as the function is JIT-compiled. We tried to use the same approach to report the function information generated by the MCJIT engine – read parsing the debug information for in-memory ELF module and report it using JIT API. As the results, we figured out that it did not work properly for the following cases: inline functions, the functions located in multiple source files, the functions having several bodies (address ranges). Solution: To overcome limitations described above, we have introduced new APIs as a part of Intel ITT APIs to report the entire in-memory ELF module to be further processed as regular ELF binaries with debug information. This patch 1. Switches LLVM to open ...
-
Simon Moll authored
The VE backend represents vector instructions with an explicit 'i32' vector length operand. In the VE ISA, the vector length is always read from the VL hardware register. The LVLGen pass inserts 'lvl' instructions as necessary to set VL to the right value before each vector instruction. Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D91416
-
Max Kazantsev authored
The bug should be fixed now.
-
Kazu Hirata authored
This patch teaches the jump threading pass to call BPI->eraseBlock when it folds a conditional branch. Without this patch, BranchProbabilityInfo could end up with stale edge probabilities for the basic block containing the conditional branch -- one edge probability with less than 1.0 and the other for a removed edge. This patch is one of the steps before we can safely re-apply D91017. Differential Revision: https://reviews.llvm.org/D91511
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
QingShan Zhang authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-