llvm/lib/IR
Craig Topper fce917909c [IR] Implement Constant::isNegativeZeroValue/isZeroValue/isAllOnesValue/isOneValue/isMinSignedValue for ConstantDataVector without going through getElementAsConstant
Summary:
Currently these methods call ConstantDataVector::getSplatValue which uses getElementsAsConstant to create a Constant object representing the element value. This method incurs a map lookup to see if we already have created such a Constant before and if not allocates a new Constant object.

This patch changes these methods to use getElementAsAPFloat and getElementAsInteger so we can just examine the data values directly.

Reviewers: spatel, pcc, dexonsmith, bogner, craig.topper

Reviewed By: craig.topper

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D35040

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308112 91177308-0d34-0410-b5e6-96231b3b80d8
2017-07-15 22:06:19 +00:00
..
AsmWriter.cpp Enhance synchscope representation 2017-07-11 22:23:00 +00:00
AttributeImpl.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-06-19 22:05:08 +00:00
Attributes.cpp Define behavior of "stack-probe-size" attribute when inlining. 2017-06-22 23:22:36 +00:00
AttributesCompatFunc.td Provide a way to specify inliner's attribute compatibility and merging. 2015-12-22 23:57:37 +00:00
AutoUpgrade.cpp [AVX-512] Remove and autoupgrade the masked integer compare intrinsics 2017-06-22 20:11:01 +00:00
BasicBlock.cpp Restrict the definition of loop preheader to avoid EH blocks 2017-06-22 23:27:16 +00:00
CMakeLists.txt [SafepointIRVerifier] Add verifier pass for finding GC relocation bugs 2017-07-05 01:16:29 +00:00
Comdat.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ConstantFold.cpp [Constants] Replace calls to ConstantInt::equalsInt(0)/equalsInt(1) with isZero and isOne. NFCI 2017-07-06 18:39:49 +00:00
ConstantFold.h IR: Introduce inrange attribute on getelementptr indices. 2016-11-10 22:34:55 +00:00
ConstantRange.cpp [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-06-19 22:05:08 +00:00
Constants.cpp [IR] Implement Constant::isNegativeZeroValue/isZeroValue/isAllOnesValue/isOneValue/isMinSignedValue for ConstantDataVector without going through getElementAsConstant 2017-07-15 22:06:19 +00:00
ConstantsContext.h [IR] Stop deleting other signatures of User::operator new when we override one signature in a class derived from User 2017-06-12 23:25:15 +00:00
Core.cpp Enhance synchscope representation 2017-07-11 22:23:00 +00:00
DataLayout.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DebugInfo.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DebugInfoMetadata.cpp Align definition of DW_OP_plus with DWARF spec [3/3] 2017-06-14 13:14:38 +00:00
DebugLoc.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DiagnosticInfo.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DiagnosticPrinter.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DIBuilder.cpp Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
Dominators.cpp [Dominators] Implement incremental deletions 2017-07-14 21:58:53 +00:00
Function.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
GCOV.cpp [gcov] Sort file info before printing it 2017-04-26 00:16:10 +00:00
Globals.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
GVMaterializer.cpp [Layering] Move GVMaterializer.h into the IR library where its 2014-03-06 03:50:29 +00:00
InlineAsm.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Instruction.cpp Enhance synchscope representation 2017-07-11 22:23:00 +00:00
Instructions.cpp Enhance synchscope representation 2017-07-11 22:23:00 +00:00
IntrinsicInst.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
IRBuilder.cpp [Atomics] Rename and change prototype for atomic memcpy intrinsic 2017-06-16 14:43:59 +00:00
IRPrintingPasses.cpp Implement getPassName() for IR printing passes. 2017-03-10 07:09:20 +00:00
LegacyPassManager.cpp [PM] Use range-based for loops in LegacyPassManager.cpp (NFC). 2017-07-13 10:52:00 +00:00
LLVMBuild.txt Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
LLVMContext.cpp Fix unused variable warnings 2017-07-12 00:15:53 +00:00
LLVMContextImpl.cpp Enhance synchscope representation 2017-07-11 22:23:00 +00:00
LLVMContextImpl.h Enhance synchscope representation 2017-07-11 22:23:00 +00:00
Mangler.cpp Move llvm::emitLinkerFlagsForGlobalCOFF() to Mangler. 2017-03-31 04:46:50 +00:00
MDBuilder.cpp Add function importing info from samplepgo profile to the module summary. 2017-02-28 18:09:44 +00:00
Metadata.cpp [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-06-19 22:05:08 +00:00
MetadataImpl.h DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
Module.cpp Have Module::createRNG return a unique_ptr 2017-07-12 08:03:44 +00:00
ModuleSummaryIndex.cpp [cfi] CFI-ICall for ThinLTO. 2017-06-16 00:18:29 +00:00
Operator.cpp [IR] Remove some unneeded includes from Operator.h and fix cpp files that were transitively depending on it. NFC 2017-03-20 05:08:41 +00:00
OptBisect.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Pass.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
PassManager.cpp [PM] Introduce an analysis set used to preserve all analyses over 2017-01-15 06:32:49 +00:00
PassRegistry.cpp [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
ProfileSummary.cpp Reapply r271728 after adding move cobstructor for ProfileSummaryInfo 2016-06-03 22:54:26 +00:00
SafepointIRVerifier.cpp [SafepointIRVerifier] Avoid false positives in GC verifier for compare between pointers 2017-07-07 13:02:29 +00:00
Statepoint.cpp [Statepoint] Add helper functions for GCRelocate and GCResult 2017-06-20 20:54:57 +00:00
SymbolTableListTraitsImpl.h ADT: Remove external uses of ilist_iterator, NFC 2016-09-03 01:22:56 +00:00
Type.cpp [IR] Add Type::isIntOrIntVectorTy(unsigned) similar to the existing isIntegerTy(unsigned), but also works for vectors. 2017-07-09 07:04:03 +00:00
TypeFinder.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Use.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
User.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Value.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
ValueSymbolTable.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ValueTypes.cpp [MVT] add v1i1 MVT 2017-05-18 11:29:41 +00:00
Verifier.cpp Add element atomic memset intrinsic 2017-07-12 21:57:23 +00:00