llvm-project/llvm/lib/IR
Sanjay Patel d799190851 [ConstantFold] fold fsub -0.0, undef to undef rather than NaN
A question about this behavior came up on llvm-dev:
http://lists.llvm.org/pipermail/llvm-dev/2020-February/139003.html
...and as part of backend improvements in D73978, but this is an IR
change first because we already have fairly thorough tests in place
here.

We decided not to implement a more general change that would have
folded any FP binop with nearly arbitrary constant + undef operand
to undef because that is not theoretically correct (even if it is
practically correct).

Differential Revision: https://reviews.llvm.org/D74713
2020-02-21 08:03:19 -05:00
..
AbstractCallSite.cpp [Attributor] Use abstract call sites to determine associated arguments 2019-12-31 01:33:22 -06:00
AsmWriter.cpp [Assembler] Emit summary index flags 2020-02-18 17:49:54 +03:00
AttributeImpl.h [NFC] Factor out function to detect if an attribute has an argument. 2020-02-03 22:27:24 +01:00
Attributes.cpp [NFC] Factor out function to detect if an attribute has an argument. 2020-02-03 22:27:24 +01:00
AutoUpgrade.cpp [X86] Correct the implementation of the avx512 masked fmsubadd autoupgrade code to not leave the negate unconnected. 2020-02-07 15:27:05 -08:00
BasicBlock.cpp [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
CMakeLists.txt [Remarks] Extend the RemarkStreamer to support other emitters 2020-02-04 17:16:02 -08:00
Comdat.cpp
ConstantFold.cpp [ConstantFold] fold fsub -0.0, undef to undef rather than NaN 2020-02-21 08:03:19 -05:00
ConstantFold.h Add FNeg IR constant folding support 2019-05-05 16:07:09 +00:00
ConstantRange.cpp [ConstantRange] Respect destination bitwidth for cast results. 2019-12-27 17:38:34 +00:00
Constants.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00
ConstantsContext.h Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Core.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00
DIBuilder.cpp [IRBuilder] Delete copy constructor 2020-02-17 18:14:48 +01:00
DataLayout.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
DebugInfo.cpp [DebugInfo] Merge DebugInfoFinder::{processDeclare,processValue} into processVariable 2020-02-01 23:00:21 -08:00
DebugInfoMetadata.cpp Move the sysroot attribute from DIModule to DICompileUnit 2020-01-17 12:55:40 -08:00
DebugLoc.cpp
DiagnosticHandler.cpp
DiagnosticInfo.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00
DiagnosticPrinter.cpp
Dominators.cpp [Dominators] Use Instruction::comesBefore for block-local queries, NFC 2020-02-20 16:41:51 -08:00
FPEnv.cpp Add missing newlines at EOF; NFC 2020-02-12 15:57:25 +00:00
Function.cpp Add <128 x i1> as an intrinsic type 2020-02-19 09:38:13 -06:00
GVMaterializer.cpp
Globals.cpp Implement -fsemantic-interposition 2020-01-31 14:02:33 +01:00
IRBuilder.cpp Reapply [IRBuilder] Always respect inserter/folder 2020-02-19 20:51:38 +01:00
IRPrintingPasses.cpp [PassInstrumentation] Remove excess newline for the new pass manager 2019-11-28 17:20:17 -08:00
InlineAsm.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Instruction.cpp [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
Instructions.cpp Reapply: [SVE] Fix bug in simplification of scalable vector instructions 2020-02-05 10:00:09 -08:00
IntrinsicInst.cpp [FPEnv] Divide macro INSTRUCTION into INSTRUCTION and DAG_INSTRUCTION, 2020-01-27 10:38:05 +08:00
LLVMBuild.txt [Remarks] Add string deduplication using a string table 2019-04-24 00:06:24 +00:00
LLVMContext.cpp [Remarks] Fix gcc build 2020-02-04 17:43:59 -08:00
LLVMContextImpl.cpp Make dropTriviallyDeadConstantArrays not quadratic 2020-01-21 16:06:46 +01:00
LLVMContextImpl.h [Remarks] Fix gcc build 2020-02-04 17:43:59 -08:00
LLVMRemarkStreamer.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
LegacyPassManager.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
MDBuilder.cpp Reland "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2019-09-11 16:19:50 +00:00
Mangler.cpp Standardize on MSVC behavior for triples with no environment 2019-07-08 21:05:20 +00:00
Metadata.cpp [WPD/VFE] Always emit vcall_visibility metadata for -fwhole-program-vtables 2020-01-23 11:36:01 -08:00
MetadataImpl.h
Module.cpp RNG: Take pass name as argument instead of pass pointer. 2020-01-31 14:21:40 -05:00
ModuleSummaryIndex.cpp [Assembler] Emit summary index flags 2020-02-18 17:49:54 +03:00
Operator.cpp
OptBisect.cpp Fix IR/Analysis layering issue with OptBisect 2019-02-28 04:00:55 +00:00
Pass.cpp [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
PassInstrumentation.cpp
PassManager.cpp Add PassManagerImpl.h to hide implementation details 2020-02-03 11:15:55 -08:00
PassRegistry.cpp
PassTimingInfo.cpp [Legacy][TimePasses] allow -time-passes reporting into a custom stream 2019-03-22 23:11:08 +00:00
ProfileSummary.cpp [PGO] Context sensitive PGO (part 2) 2019-02-28 19:55:07 +00:00
SafepointIRVerifier.cpp [Support] Split MallocAllocator out of Allocator.h 2020-01-24 17:29:32 -08:00
Statepoint.cpp [CallSite removal] Migrate the statepoint GC infrastructure to use the 2019-02-11 07:42:30 +00:00
SymbolTableListTraitsImpl.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
Type.cpp [SVE][IR] Scalable Vector size queries and IR instruction support 2019-10-08 12:53:54 +00:00
TypeFinder.cpp [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Use.cpp
User.cpp Reinstate MSan suppression of PR24578. 2019-11-22 11:25:24 -08:00
Value.cpp Fix MSAN failure on Function destruction 2020-02-06 15:09:58 -08:00
ValueSymbolTable.cpp
Verifier.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00