llvm/lib
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
..
Analysis [PM/LCG] Teach the LazyCallGraph to maintain reference edges from every 2017-07-15 08:08:19 +00:00
AsmParser Enhance synchscope representation 2017-07-11 22:23:00 +00:00
BinaryFormat Revert "Revert "Revert "Revert "Switch external cvtres.exe for llvm's own resource library."""" 2017-07-08 03:06:10 +00:00
Bitcode Enhance synchscope representation 2017-07-11 22:23:00 +00:00
CodeGen Strip trailing whitespace. NFCI 2017-07-15 19:29:19 +00:00
DebugInfo [CodeView] Dump BuildInfoSym and ProcSym type indices 2017-07-15 18:10:39 +00:00
Demangle [ItaniumDemangle] Fix a exponential string copying bug 2017-05-28 23:24:52 +00:00
ExecutionEngine [ORC] Errorize the ORC APIs. 2017-07-07 02:59:13 +00:00
Fuzzer [libFuzzer] remove stale code 2017-07-15 01:31:40 +00:00
IR [IR] Implement Constant::isNegativeZeroValue/isZeroValue/isAllOnesValue/isOneValue/isMinSignedValue for ConstantDataVector without going through getElementAsConstant 2017-07-15 22:06:19 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LineEditor
Linker [Linker] Add directives to support mixing ARM/Thumb module-level inline asm. 2017-07-12 11:52:28 +00:00
LTO Use DenseMap instead std::map for GVSummaryMapTy. 2017-07-10 20:12:54 +00:00
MC Simplify interface now that we don't need to pass IsPCRel. NFC. 2017-07-11 23:56:10 +00:00
Object [WebAssembly] Expose the offset of each data segment 2017-07-12 00:24:54 +00:00
ObjectYAML [WebAssembly] Expose the offset of each data segment 2017-07-12 00:24:54 +00:00
Option [Bash-autocompletion] Auto complete cc1 options if -cc1 is specified 2017-07-08 17:48:59 +00:00
Passes [PM] Enable registration of out-of-tree passes with PassBuilder 2017-07-10 10:57:55 +00:00
ProfileData llvm-profdata: Reduce memory usage by using Error callback rather than member 2017-07-10 03:04:59 +00:00
Support Put std::mutex usage behind #ifdefs to pacify the sanitizer buildbot 2017-07-13 16:56:24 +00:00
TableGen [BinaryFormat, Option, TableGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-16 00:43:26 +00:00
Target [mips] Handle the long-calls feature flags in the MIPS backend 2017-07-15 07:14:25 +00:00
Testing Mark LLVMTestingSupport as not installed in LLVMBuild. 2017-06-19 22:01:50 +00:00
ToolDrivers [GSoC] Flag value completion for clang 2017-06-20 16:31:31 +00:00
Transforms [InstCombine] Improve the expansion in SimplifyUsingDistributiveLaws to handle cases where one side doesn't simplify, but the other side resolves to an identity value 2017-07-15 21:49:49 +00:00
XRay Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
CMakeLists.txt [gtest] Create a shared include directory for gtest utilities. 2017-06-14 16:41:50 +00:00
LLVMBuild.txt [gtest] Create a shared include directory for gtest utilities. 2017-06-14 16:41:50 +00:00