1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/unittests
Eli Friedman 5e023f461c [ScalarEvolution] Strictly enforce pointer/int type rules.
Rules:

1. SCEVUnknown is a pointer if and only if the LLVM IR value is a
   pointer.
2. SCEVPtrToInt is never a pointer.
3. If any other SCEV expression has no pointer operands, the result is
   an integer.
4. If a SCEVAddExpr has exactly one pointer operand, the result is a
   pointer.
5. If a SCEVAddRecExpr's first operand is a pointer, and it has no other
   pointer operands, the result is a pointer.
6. If every operand of a SCEVMinMaxExpr is a pointer, the result is a
   pointer.
7. Otherwise, the SCEV expression is invalid.

I'm not sure how useful rule 6 is in practice.  If we exclude it, we can
guarantee that ScalarEvolution::getPointerBase always returns a
SCEVUnknown, which might be a helpful property. Anyway, I'll leave that
for a followup.

This is basically mop-up at this point; all the changes with significant
functional effects have landed.  Some of the remaining changes could be
split off, but I don't see much point.

Differential Revision: https://reviews.llvm.org/D105510
2021-07-09 17:29:26 -07:00
..
ADT [ADT] Follow up to fix bug in "Add makeVisitor to STLExtras.h" 2021-07-01 18:24:49 +00:00
Analysis [ScalarEvolution] Strictly enforce pointer/int type rules. 2021-07-09 17:29:26 -07:00
AsmParser
BinaryFormat
Bitcode
Bitstream PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
CodeGen GlobalISel: Track original argument index in ArgInfo 2021-07-08 13:39:02 -04:00
DebugInfo PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
Demangle
ExecutionEngine [ORC] Add wrapper-function support methods to ExecutorProcessControl. 2021-07-01 18:21:49 +10:00
FileCheck
Frontend
FuzzMutate
InterfaceStub
IR [OpaquePtr] Remove checking pointee type for byval/preallocated type 2021-07-07 14:28:55 -07:00
LineEditor
Linker
MC [AsmParser][SystemZ][z/OS] Support for emitting labels in upper case 2021-06-24 12:50:11 -04:00
MI
MIR CodeGen: Print/parse LLTs in MachineMemOperands 2021-06-30 16:54:13 -04:00
Object
ObjectYAML
Option [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
Passes unittests: Fix library dependency name 2021-07-07 06:56:15 -07:00
ProfileData
Remarks
Support PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
TableGen
Target
TextAPI
tools
Transforms [NFC][OpaquePtr] Use GlobalValue::getValueType() more 2021-07-09 09:55:41 -07:00
XRay
CMakeLists.txt
unittest.cfg.in