- Oct 11, 2020
-
-
Krzysztof Parzyszek authored
-
Fangrui Song authored
This decreases 7 lines as the result of packing more bits on one line.
-
Simon Pilgrim authored
Move the undef element handling into the getLogBase2 helper instead of pre-empting with replaceUndefsWith.
-
Alex Denisov authored
The following code doesn't compile uint64_t i = x.load(std::memory_order_relaxed); return 0; when CMAKE_C_FLAGS set to -Werror -Wall, thus incorrectly breaking the CMake configuration step: -- Looking for __atomic_load_8 in atomic -- Looking for __atomic_load_8 in atomic - not found CMake Error at cmake/modules/CheckAtomic.cmake:79 (message): Host compiler appears to require libatomic for 64-bit operations, but cannot find it. Call Stack (most recent call first): cmake/config-ix.cmake:360 (include) CMakeLists.txt:671 (include) -
Simon Pilgrim authored
In all the getLogBase2 uses, the specified Type is always the same as the constant being folded.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Fixes regression raised on D88834 for 32-bit triple + 64-bit cpu cases (which apparently is a thing).
-
Krzysztof Parzyszek authored
-
Martin Storsjö authored
These became unused in 51117e3c.
-
Martin Storsjö authored
Also remove superfluous 'virtual' in overridden methods.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Noticed while triaging regression report on D88834
-
Michał Górny authored
-
Michał Górny authored
Use PT_KILL to kill the stopped process. This ensures that the process termination is reported properly and fixes delay/error on killing it. Differential Revision: https://reviews.llvm.org/D89182
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D89181
-
Philip Reames authored
Resigning from security group as Azul representative as I have left Azul. Previously communicated via email with security group. Differential Revision: https://reviews.llvm.org/D88933
-
Tim Renouf authored
At AMD, in an internal audit of our code, we found some corner cases where we were not quite differentiating targets enough for some old hardware. This commit is part of fixing that by adding three new targets: * The "Oland" and "Hainan" variants of gfx601 are now split out into gfx602. LLPC (in the GPUOpen driver) and other front-ends could use that to avoid using the shaderZExport workaround on gfx602. * One variant of gfx703 is now split out into gfx705. LLPC and other front-ends could use that to avoid using the shaderSpiCsRegAllocFragmentation workaround on gfx705. * The "TongaPro" variant of gfx802 is now split out into gfx805. TongaPro has a faster 64-bit shift than its former friends in gfx802, and a subtarget feature could be set up for that to take advantage of it. This commit does not make that change; it just adds the target. V2: Add clang changes. Put TargetParser list in order. V3: AMDGCNGPUs table in TargetParser.cpp needs to be in GPUKind order, so fix the GPUKind order. Differential Revision: https://reviews.llvm.org/D88916 Change-Id: Ia901a7157eb2f73ccd9f25dbacec38427312377d
-
- Oct 10, 2020
-
-
Florian Hahn authored
Add a test case where we fail to compute a tight max backedge taken count, due to the step being != 1. This is part of the issue with PR40961.
-
Florian Hahn authored
Handle ULE predicate in similar fashion to ULT predicate in applyLoopGuards.
-
Florian Hahn authored
-
Nikita Popov authored
We can't shorten the memset if there's a throwing call in between and the destination is non-local.
-
David Green authored
There are a number of places in RDA where we assume the block will not be empty. This isn't necessarily true for tail predicated loops where we have removed instructions. This attempt to make the pass more resilient to empty blocks, not casting pointers to machine instructions where they would be invalid. The test contains a case that was previously failing, but recently been hidden on trunk. It contains an empty block to begin with to show a similar error. Differential Revision: https://reviews.llvm.org/D88926
-
Alok Kumar Sharma authored
This patch adds support for DWARF attribute DW_AT_rank. Summary: Fortran assumed rank arrays have dynamic rank. DWARF attribute DW_AT_rank is needed to support that. Testing: unit test cases added (hand-written) check llvm check debug-info Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D89141
-
Benjamin Kramer authored
These are private glibc headers containing parts of the implementation of stdint.h.
-
David Green authored
-
David Green authored
This just moves some newlines to the expected places.
-
Tatiana Shpeisman authored
Fixes a bug in formation and simplification of an epilogue loop generated during loop unroll of scf::ForOp (https://bugs.llvm.org/show_bug.cgi?id=46689) Differential Revision: https://reviews.llvm.org/D87583
-
Nikita Popov authored
MemCpyOpt can hoist stores while load+store pairs into memcpy. This hoisting can currently result in stores being executed that weren't guaranteed to execute in the original problem. Differential Revision: https://reviews.llvm.org/D89154
-
Denis Antrushin authored
Currently we allow passing pointers from deopt bundle on VReg only if they were seen in list of gc-live pointers passed on VRegs. This means that for the case of empty gc-live bundle we spill deopt bundle's pointers. This change allows lowering deopt pointers to VRegs in case of empty gc-live bundle. In case of non-empty gc-live bundle, behavior does not change. Reviewed By: skatkov Differential Revision: https://reviews.llvm.org/D88999
-
Zi Xuan Wu authored
This patch introduce files that just enough for lib/Target/CSKY to compile. Notably a basic CSKYTargetMachine and CSKYTargetInfo. Differential Revision: https://reviews.llvm.org/D88466
-
Fangrui Song authored
Caught by multipliers LONG_MAX (after +1) and LONG_MIN (after -1) in CodeGen/PowerPC/mul-const-i64.ll
-
Xiang1 Zhang authored
-
Valentin Clement authored
This patch introduces the acc.exit_data operation that represents an OpenACC Exit Data directive. Operands and attributes are derived from clauses in the spec 2.6.6. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D88969
-
Sean Silva authored
Context: https://llvm.discourse.group/t/what-is-the-strategy-for-tensor-memref-conversion-bufferization/1938/14 Differential Revision: https://reviews.llvm.org/D89174
-
Walter Erquinigo authored
With the feedback I was getting in different diffs, I realized that splitting the parsing logic into two classes was not easy to deal with. I do see value in doing that, but I'd rather leave that as a refactor after most of the intel-pt logic is in place. Thus, I'm merging the common parser into the intel pt one, having thus only one that is fully aware of Intel PT during parsing and object creation. Besides, based on the feedback in https://reviews.llvm.org/D88769, I'm creating a ThreadIntelPT class that will be able to orchestrate decoding of its own trace and can handle the stop events correctly. This leaves the TraceIntelPT class as an initialization class that glues together different components. Right now it can initialize a trace session from a json file, and in the future will be able to initialize a trace session from a live process. Besides, I'm renaming SettingsParser to SessionParser, which I think is a better name, as the json object represents a trace session of possibly many processes. With the current set of targets, we have the following - Trace: main interface for dealing with trace sessions - TraceIntelPT: plugin Trace for dealing with intel pt sessions - TraceIntelPTSessionParser: a parser of a json trace session file that can create a corresponding TraceIntelPT instance along with Targets, ProcessTraces (to be created in https://reviews.llvm.org/D88769), and ThreadIntelPT threads. - ProcessTrace: (to be created in https://reviews.llvm.org/D88769) can handle the correct state of the traces as the user traverses the trace. I don't think there'll be a need an intel-pt specific implementation of this class. - ThreadIntelPT: a thread implementation that can handle the decoding of its own trace file, along with keeping track of the current position the user is looking at when doing reverse debugging. Differential Revision: https://reviews.llvm.org/D88841
-
Aart Bik authored
There is an atomic_rmw and a generic_atomic_rmw operation. The doc of the latter incorrectly referred to former though. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D89172
-
Fangrui Song authored
-
Stella Stamenova authored
They are currently marked as unsupported when windows is part of the triple, but they actually fail when they are run on Windows, so they are unsupported on system-windows Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D89169
-
Changpeng Fang authored
Summary: The current instruction sink pass uses findNearestCommonDominator of all users to find block to sink the instruction to. However, a user may be in a dead block, which will result in unexpected behavior. This patch handles such cases by skipping dead blocks. This patch fixes: https://bugs.llvm.org/show_bug.cgi?id=47415 Reviewers: MaskRay, arsenm Differential Revision: https://reviews.llvm.org/D89166
-
Joao Moreira authored
The notrack prefix is a relaxation of CET policies which makes it possible to indirectly call targets which do not have an ENDBR instruction in the landing address. To emit a call with this prefix, the special attribute "nocf_check" is used. When used as a function attribute, a CallInst targeting the respective function will return true for the method "doesNoCfCheck()", no matter if it is a direct call (and such should remain like this, as the information that the to-be-called function won't perform control-flow checks is useful in other contexts). Yet, when emitting an X86ISD::NT_CALL, the respective CallInst should be verified for its indirection, allowing that the prefixed calls are only emitted in the right situations. Update the respective testing unit to also verify for direct calls to functions with ''nocf_check'' attributes. The bug can also be reproduced through compiling the following C code using the -fcf-protection=full flag. int __attribute__((nocf_check)) foo(int a) {}; int main() { foo(42); } Differential Revision: https://reviews.llvm.org/D87320
-