llvm-project/llvm/test
Max Kazantsev 34ae308c73 [SCEV] Use context to strengthen flags of BinOps
Sometimes SCEV cannot infer nuw/nsw from something as simple as
```
  len in [0, MAX_INT]
...
  iv = phi(0, iv.next)
  guard(iv <s len)
  guard(iv <u len)
  iv.next = iv + 1
```
just because flag strenthening only relies on definition and does not use local facts.
This patch adds support for the simplest case: inference of flags of `add(x, constant)`
if we can contextually prove that `x <= max_int - constant`.

In case if it has negative CT impact, we can add an option to switch it off. I woudln't
expect that though.

Differential Revision: https://reviews.llvm.org/D129643
Reviewed By: apilipenko
2022-08-03 14:08:57 +07:00
..
Analysis [TTI][AArch64][SLP] Sets the cost of an ADD reduction 2xi64 to 2. 2022-08-01 13:03:14 -07:00
Assembler [IR] Don't use blockaddresses as callbr arguments 2022-07-15 10:18:17 +02:00
Bindings [IR] Remove support for float binop constant expressions 2022-07-12 09:40:49 +02:00
Bitcode [LegacyPM] Remove NameAnonGlobalLegacyPass 2022-07-17 14:38:29 -07:00
BugPoint
CodeGen [AMDGPU] Add CL option for max-ilp scheduler. 2022-08-02 16:52:14 -07:00
DebugInfo [GlobalISel][DebugInfo] salvageDebugInfo analogue for gMIR 2022-08-01 11:14:53 +02:00
Demangle
Examples [Examples] Fix SimplifyCFG example 2022-08-01 07:22:35 +02:00
ExecutionEngine [JITLink][COFF] Handle COMDAT symbol with offset. 2022-07-31 09:09:48 +09:00
Feature [WinEH] Apply funclet operand bundles to nounwind intrinsics that lower to function calls in the course of IR transforms 2022-07-26 17:52:43 +02:00
FileCheck
Instrumentation [test] Update BoundsChecking/simple.ll 2022-08-02 10:49:38 -07:00
Integer
JitListener
LTO [libLTO] Set data-sections by default in libLTO. 2022-07-27 09:39:39 -05:00
Linker [IR] Allow absence for Min module flags and make AArch64 BTI/PAC-RET flags backward compatible 2022-07-18 09:35:12 -07:00
MC [AMDGPU][MC] Verify selection of LDS MUBUF opcodes 2022-08-01 16:44:39 +03:00
MachineVerifier
Object [AIX] support read global symbol of big archive 2022-07-18 10:43:30 -04:00
ObjectYAML [obj2yaml] Add -o to specify output filename 2022-07-14 00:32:48 -07:00
Other [StandardInstrumentations] Assign names to basic blocks without names 2022-08-02 11:04:01 -07:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen [TableGen] Add a location for a class definition that was forward-declared 2022-07-20 15:56:17 +02:00
ThinLTO/X86 [WPD] Use new llvm.public.type.test intrinsic for potentially publicly visible classes 2022-07-26 08:01:08 -07:00
Transforms [SCEV] Use context to strengthen flags of BinOps 2022-08-03 14:08:57 +07:00
Unit
Verifier [MemProf] Basic metadata support and verification 2022-07-20 15:30:55 -07:00
YAMLParser
tools oops-- I pushed previous commit from a fresh checkout and forgot to 2022-08-02 22:27:28 -06:00
.clang-format
CMakeLists.txt [Reland][Debuginfo][llvm-dwarfutil] llvm-dwarfutil dsymutil-like tool for ELF. 2022-07-19 15:11:36 +03:00
TestRunner.sh
lit.cfg.py [llvm-ar] Add object mode option -X for AIX 2022-07-22 09:55:21 -04:00
lit.site.cfg.py.in [llvm] add zstd to `llvm::compression` namespace 2022-07-19 10:54:36 -07:00