1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/unittests
Serguei Katkov 0e56998fde [SCEV] Be careful with nuw/nsw/exact in InsertBinop
InsertBinop tries to find an appropriate instruction instead of
creating a new instruction. When it checks whether instruction is
the same as we need to create it ignores nuw/nsw/exact flags.

It leads to invalid behavior when poison instruction can be used
when it was not expected. Specifically, for example Expander
expands the SCEV built for instruction
%a = add i32 %v, 1
It is possible that InsertBinop can find an instruction
% b = add nuw nsw i32 %v, 1
and will use it instead of version w/o nuw nsw.
It is incorrect.

The patch conservatively ignores all instructions with any of
poison flags installed.

Reviewers: sanjoy, mkazantsev, sebpop, jbhateja
Reviewed By: sanjoy
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D41576

llvm-svn: 321475
2017-12-27 08:26:22 +00:00
..
ADT Fix APFloat from string conversion for Inf 2017-12-19 04:27:39 +00:00
Analysis [SCEV] Be careful with nuw/nsw/exact in InsertBinop 2017-12-27 08:26:22 +00:00
AsmParser
BinaryFormat [BinaryFormat] Fix out of bounds read. 2017-08-31 12:50:42 +00:00
Bitcode Remove redundant includes from unittests. 2017-12-13 21:31:05 +00:00
CodeGen [CodeGen] Move printing MO_IntrinsicID operands to MachineOperand::print 2017-12-19 21:47:10 +00:00
DebugInfo Recommit "[DWARFv5] Dump an MD5 checksum in the line-table header." 2017-12-18 19:08:35 +00:00
ExecutionEngine [orc][cmake] Check if 8 byte atomics require libatomic for unittest 2017-12-20 22:26:41 +00:00
FuzzMutate [FuzzMutate] Only generate loads and stores to the first class sized types 2017-12-13 11:49:04 +00:00
IR [ConstantRange] Support for ashr in ConstantRange computation 2017-12-18 13:01:32 +00:00
LineEditor
Linker Fix build for LLVM unittests 2017-09-15 21:12:13 +00:00
MC Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
MI Remove redundant includes from unittests. 2017-12-13 21:31:05 +00:00
Object Fix unittest for buildbot with mips host (32bit big endian) from r295174 2017-02-15 16:03:22 +00:00
ObjectYAML
Option [GSoC] Flag value completion for clang 2017-06-20 16:31:31 +00:00
ProfileData Remove redundant includes from unittests. 2017-12-13 21:31:05 +00:00
Support Unbreak the build. Combining chrono with Optional is annoying. 2017-12-22 21:18:50 +00:00
Target Reapply "[GlobalISel] Remove the GISelAccessor API." 2017-08-15 22:31:51 +00:00
tools [CMake] Use PRIVATE in target_link_libraries for executables 2017-12-05 21:49:56 +00:00
Transforms Generalize llvm::replaceDbgDeclare and actually support the use-case that 2017-12-08 21:58:18 +00:00
XRay [XRay][graph] Disambiguate name of type from member name 2017-02-10 06:59:25 +00:00
CMakeLists.txt Reland 'Classify llvm-cfi-verify.' 2017-10-11 20:35:01 +00:00