- Sep 28, 2020
-
-
Valentin Clement authored
This patch remove the detach and delete operands. Those operands represent the detach and delete clauses that will appear in another operation acc.exit_data Reviewed By: kiranktp, kiranchandramohan Differential Revision: https://reviews.llvm.org/D88326
-
Dávid Bolvanský authored
strcat: destination and source shall not overlap. (http://www.cplusplus.com/reference/cstring/strcat/) stpcpy: The strings may not overlap, and the destination string dest must be large enough to receive the copy. (https://man7.org/linux/man-pages/man3/stpcpy.3.html) Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D88335
-
Joseph Huber authored
Summary: Adding a missing directory needed for generating Sphinx documentation without errors. Directory current contains a placeholder image just to populate the directory.
-
Nikita Popov authored
These are no longer necessary since D69686.
-
Nikita Popov authored
Add a flag to getPredicateAt() that allows making use of the block value. This allows us to take into account range information from the current block, rather than only information that is threaded over edges, making the icmp simplification in CVP a lot more powerful. I'm not changing getPredicateAt() to use the block value unconditionally to avoid any impact on the JumpThreading pass, which is somewhat picky about LVI query order. Most test changes here are just icmps that now get dropped (while previously only a result used in a return was replaced). The three tests in icmp.ll show some representative improvements. Some of the folds this enables have been covered by IPSCCP in the meantime, but LVI can reason about some cases which are hard to support in IPSCCP, such as in test_br_cmp_with_offset. The compile-time time cost of doing this is fairly minimal, with a ~0.05% CTMark regression for ReleaseThinLTO: https://llvm-compile-time-tracker.com/compare.php?from=709d03f8af4da4204849a70f01798e7cebba2e32&to=6236fd503761f43c99f4537121e057a01056f185&stat=instructions This is because the block values will typically already be queried and cached by other CVP optimizations anyway. Differential Revision: https://reviews.llvm.org/D69686
-
Fangrui Song authored
If -enable-constraint-elimination is specified, add it to the -O2/-O3 pipeline. (-O1 uses a separate function now.) Reviewed By: fhahn, aeubanks Differential Revision: https://reviews.llvm.org/D88365
-
Benjamin Kramer authored
-
Nikita Popov authored
D69686 will be able to determine that the icmp is always false. As this is not the purpose of the test, use a different modulus that doesn't trivialize the condition.
-
Nikita Popov authored
The lattice value returned by getValueInBlock() holds at the start of the block, not at the end. Also make it clearer what the difference between getValueInBlock() and getValueAt() is.
-
Nikita Popov authored
Require CxtI in getConstant() and getConstantRange() APIs. Accordingly drop the BB parameter, as it is implied by CxtI->getParent(). This makes sure we don't forget to pass the context instruction, and makes the API contract clearer (also clean up the comments to that effect -- the value holds at the context instruction, not the end of the block).
-
- Sep 27, 2020
-
-
Nikita Popov authored
This fold was the only place not passing the context instruction. The tests worked around that fact by introducing a basic block split, which is now no longer necessary.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
To hopefully help improve the codegen delta in D87976
-
Sanjay Patel authored
This is a setting used by SimplifyCFG, LoopUnroll, and InlineCost, but there is apparently no direct test coverage for any of those cost model values.
-
Sanjay Patel authored
As discussed in D87877, instcombine already has this fold, but it was missing from the more general ValueTracking logic. https://alive2.llvm.org/ce/z/PumYZP
-
Sanjay Patel authored
This shows missing analysis in ValueTracking's isKnownNeverInfinity().
-
Aaron Ballman authored
-
Alexey Lapshin authored
Remove usages of special error reporting functions(error(), reportError()). This patch is extracted from D87987. Errors are reported as Expected<>/Error returning values. This part is for COFF subfolder of llvm-objcopy. Testing: check-all. Differential Revision: https://reviews.llvm.org/D88213
-
Tatsuo Nomura authored
RegInfoBasedABI::GetRegisterInfoByName was failing because mips/mips64 ABIs don't use ConstString in their register info array. Reviewed By: #lldb, teemperor Differential Revision: https://reviews.llvm.org/D88375
-
Amara Emerson authored
This was supposed to be done in the first place as is currently the case for G_ASHR and G_LSHR but was forgotten when the original shift legalization overhaul was done last year. This was exposed because we started falling back on s32 = s32, s64 SHLs due to a recent combiner change. Gives a very minor (0.1%) code size -O0 improvement on consumer-typeset.
-
Nikita Popov authored
Use +/-Inf or +/-Largest as neutral element for nnan fmin/fmax reductions. This avoids dropping any FMF flags. Preserving the nnan flag in particular is important to get a good lowering on X86. Differential Revision: https://reviews.llvm.org/D87586
-
Amara Emerson authored
[AArch64][GlobalISel] Use the look-through constant helper for the shift s32->s64 custom legalization. Almost NFC, except it catches more cases and gives a 0.1% CTMark -O0 size win.
-
Fangrui Song authored
-
Craig Topper authored
These are tests to make sure we are able to use the flag directly in a conditional branch after the inline asm.
-
sunshaoce authored
Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D88141
-
Chen Zheng authored
Reviewed By: qcolombet Differential Revision: https://reviews.llvm.org/D86925
-
Robert Widmann authored
It is not a good idea to expose raw constants in the LLVM C API. Replace this with an explicit getter. Differential Revision: https://reviews.llvm.org/D88367
-
Fangrui Song authored
And internalize some classes if I noticed them:)
-
Amy Kwan authored
In D87671, it introduced PPCSubTarget in PPCISelDAGToDAG. This should have been Subtarget instead. This patch changes PPCSubTarget into Subtarget.
-
Aaron Puchert authored
The previous attempt in d34c8c70 didn't help (the problem was missing indentation), and another issue was introduced by a51d51a0.
-
Fangrui Song authored
Delete an implied condition (E.NumIn <= CB.NumIn)
-
Simon Pilgrim authored
-
Russell Yanofsky authored
Previous description didn't actually state the effect the attribute has on thread safety analysis (causing analysis to assume the capability is held). Previous description was also ambiguous about (or slightly overstated) the noreturn assumption made by thread safety analysis, implying the assumption had to be true about the function's behavior in general, and not just its behavior in places where it's used. Stating the assumption specifically should avoid a perceived need to disable thread safety analysis in places where only asserting that a specific capability is held would be better. Reviewed By: aaronpuchert, vasild Differential Revision: https://reviews.llvm.org/D87629
-
Riccardo Bertossa authored
SAVE statement, according to 8.6.14, must apply to the same scoping unit, that excludes nested scoping units. For example, if the SAVE statement is found in a MODULE, the functions contained in that module should not inherit the SAVE attribute. I think that the code was doing this, failing the following source: ``` MODULE pippo SAVE CONTAINS PURE FUNCTION fft_stick_index( ) IMPLICIT NONE INTEGER :: fft_stick_index INTEGER :: mc !error: A pure subprogram may not have a variable with the SAVE attribute END FUNCTION END MODULE ``` Differential Revision: https://reviews.llvm.org/D88279
-
Simon Pilgrim authored
-
Florian Hahn authored
There appears to be a mis-compile with MemorySSA-backed DSE in combination with llvm.lifetime.end. It currently appears like DSE is doing the right thing and the llvm.lifetime.end markers are incorrect. The reverted patch uncovers the mis-compile. This patch temporarily switches back to the legacy DSE implementation, while we investigate. This reverts commit 9d172c8e.
-
Nico Weber authored
-
Jacques Pienaar authored
Was testing on case insensitive config :-/
-
Jacques Pienaar authored
-
- Sep 26, 2020
-
-
Jacques Pienaar authored
-