llvm-project/llvm/test
Sanjay Patel 6a77e36975 [SDAG] adjust isNegatibleForFree calculation to avoid crashing
This is an alternate fix for the bug discussed in D70595.
This also includes minimal tests for other in-tree targets to show the problem more
generally.

We check the number of uses as a predicate for whether some value is free to negate,
but that use count can change as we rewrite the expression in getNegatedExpression().
So something that was marked free to negate during the cost evaluation phase becomes
not free to negate during the rewrite phase (or the inverse - something that was not
free becomes free). This can lead to a crash/assert because we expect that everything
in an expression that is negatible to be handled in the corresponding code within
getNegatedExpression().

This patch adds a hack to work-around the case where we probably no longer detect
that either multiply operand of an FMA isNegatibleForFree which is assumed to be
true when we started rewriting the expression.

Differential Revision: https://reviews.llvm.org/D70975
2019-12-17 13:49:15 -05:00
..
Analysis [BasicAA] Use GEP as context for computeKnownBits in aliasGEP. 2019-12-12 17:18:04 +00:00
Assembler [DebugInfo] Remove the DIFlagArgumentNotModified debug info flag 2019-11-20 13:18:40 +01:00
Bindings Updated the OCaml/bitwriter.ml test for OCaml 4.06+ 2019-11-30 13:35:23 +01:00
Bitcode Add support for multi-module bitcode files to llvm-dis 2019-11-14 10:40:41 -08:00
BugPoint [Bugpoint] Do not create illegal function attribute combos 2019-12-16 10:32:35 -06:00
CodeGen [SDAG] adjust isNegatibleForFree calculation to avoid crashing 2019-12-17 13:49:15 -05:00
DebugInfo [ObjC][DWARF] Emit DW_AT_APPLE_objc_direct for methods marked as __attribute__((objc_direct)) 2019-12-17 09:40:36 +01:00
Demangle
Examples Revert "[Examples] Add IRTransformations directory to examples." 2019-12-01 22:20:20 +00:00
ExecutionEngine [ORC][JITLink] Add support for weak references, and improve handling of static 2019-11-28 13:30:49 -08:00
Feature This adds constrained intrinsics for the signed and unsigned conversions 2019-12-17 10:06:51 -05:00
FileCheck [FileCheck] Given multiple -dump-input, prefer most verbose 2019-12-03 14:21:13 -05:00
Instrumentation hwasan: add tag_offset DWARF attribute to optimized debug info 2019-12-12 16:18:54 -08:00
Integer
JitListener
LTO [LTO] Support for embedding bitcode section during LTO 2019-12-12 12:34:19 -08:00
Linker [IRMover] Set Address Space for moved global values 2019-11-05 16:32:48 -08:00
MC [ MC ] Match labels to existing fragments even when switching sections. 2019-12-17 08:49:25 -08:00
MachineVerifier [MachineVerifier] Improve checks of target instructions operands. 2019-12-03 10:20:52 +01:00
Object [llvm-readelf/llvm-readobj] - Improved the error reporting in a few method related to versioning. 2019-12-10 13:08:18 +03:00
ObjectYAML
Other Revert "[VectorUtils] Introduce the Vector Function Database (VFDatabase)." 2019-12-13 19:42:04 +00:00
Reduce
SafepointIRVerifier
Support
SymbolRewriter
TableGen [gicombiner] Process the MatchDag such that every node is reachable from the roots 2019-12-17 17:03:24 +00:00
ThinLTO/X86 [ThinLTO] Add option to disable readonly/writeonly attribute propagation 2019-12-05 16:33:54 -08:00
Transforms [InstCombine][AMDGPU] Trim more components of *buffer_load 2019-12-17 17:50:07 +01:00
Unit
Verifier Verifier: Check frame-pointer attribute values 2019-12-11 19:53:49 +05:30
YAMLParser
tools [DebugInfo] Only print a single blank line after an empty line table 2019-12-17 12:04:09 +00:00
.clang-format
CMakeLists.txt Introduce llvm-install-name-tool 2019-11-19 23:42:37 -08:00
TestRunner.sh
lit.cfg.py Introduce llvm-install-name-tool 2019-11-19 23:42:37 -08:00
lit.site.cfg.py.in