llvm-project/llvm/lib/IR
Krasimir Georgiev 142919bc23 IR: Optimize StructType::get to perform one hash lookup instead of two, NFCI
Summary:
This function was performing two hash lookups when a new struct type was requested: first checking if it exists and second to insert it. This patch updates the function to perform a single hash lookup in this case by updating the value in the hash table in-place in case the struct type was not there before.

Similar to r345151.

Reviewers: bkramer

Reviewed By: bkramer

Subscribers: llvm-commits

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

llvm-svn: 345264
2018-10-25 13:38:07 +00:00
..
AsmWriter.cpp Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
AttributeImpl.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
Attributes.cpp llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...) 2018-09-27 02:13:45 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp [X86] Modify the the rdtscp intrinsic to return values instead of taking a pointer argument 2018-09-07 19:14:15 +00:00
BasicBlock.cpp [TI removal] Make `getTerminator()` return a generic `Instruction`. 2018-10-15 10:42:50 +00:00
CMakeLists.txt [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
Comdat.cpp [LLVM-C] [bindings/go] Add C and Golang bindings for COMDAT 2018-03-14 18:33:53 +00:00
ConstantFold.cpp [ConstantFolding] improve folding of binops with vector undef operand 2018-08-20 18:19:02 +00:00
ConstantFold.h
ConstantRange.cpp [IR] Strip trailing whitespace. NFC 2018-07-03 12:39:52 +00:00
Constants.cpp [Constants] extend getBinOpIdentity(); NFC 2018-07-06 15:18:58 +00:00
ConstantsContext.h Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
Core.cpp [TI removal] Update the C API for the move away from `TerminatorInst`. 2018-10-18 23:03:55 +00:00
DIBuilder.cpp Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
DataLayout.cpp [NFC] Make getPreferredAlignment honor section markings. 2018-08-29 23:46:26 +00:00
DebugInfo.cpp Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
DebugInfoMetadata.cpp Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
DebugLoc.cpp [IR] Add a boolean field in DILocation to know if a line must covered or not 2018-09-20 08:53:06 +00:00
DiagnosticHandler.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
DiagnosticInfo.cpp This change add's optimization remark in LoopVersioning LICM pass. 2018-01-23 09:47:28 +00:00
DiagnosticPrinter.cpp
DomTreeUpdater.cpp [Dominators] Refine the logic of recalculate() in the DomTreeUpdater 2018-08-03 06:51:35 +00:00
Dominators.cpp [TI removal] Make variables declared as `TerminatorInst` and initialized 2018-10-15 10:04:59 +00:00
Function.cpp Make Function::getInstructionCount const 2018-10-18 19:49:44 +00:00
GVMaterializer.cpp
Globals.cpp Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
IRBuilder.cpp [IRBuilder] Fixup CreateIntrinsic to allow specifying Types to Mangle. 2018-10-08 10:32:33 +00:00
IRPrintingPasses.cpp IR: Skip -print-*-all after -print-* 2018-07-11 23:30:25 +00:00
InlineAsm.cpp Remove trailing space 2018-07-30 19:41:25 +00:00
Instruction.cpp [IR] Replace `isa<TerminatorInst>` with `isTerminator()`. 2018-08-26 09:51:22 +00:00
Instructions.cpp [IR] Fix -Wunused-function after r345052 2018-10-23 17:24:15 +00:00
IntrinsicInst.cpp [DebugInfo] Refactor DbgInfoIntrinsic class hierarchy. 2018-08-06 03:59:47 +00:00
LLVMBuild.txt
LLVMContext.cpp allow custom OptBisect classes set to LLVMContext 2018-04-05 10:29:37 +00:00
LLVMContextImpl.cpp [LLVMContext] Detecting leaked instructions with metadata 2018-06-29 20:13:13 +00:00
LLVMContextImpl.h Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
LegacyPassManager.cpp [New PM][PassInstrumentation] IR printing support for New Pass Manager 2018-09-24 16:08:15 +00:00
MDBuilder.cpp [Metadata] Replace a SmallVector with an array; NFC 2018-08-15 22:15:35 +00:00
Mangler.cpp [IR] Avoid the need to prefix MS C++ symbols with '\01' 2018-03-16 20:13:32 +00:00
Metadata.cpp llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...) 2018-09-27 02:13:45 +00:00
MetadataImpl.h
Module.cpp Pass code-model through Module IR to LTO which will use it. 2018-09-21 18:41:31 +00:00
ModuleSummaryIndex.cpp [ThinLTO] Change parameter type. NFC 2018-10-24 08:59:58 +00:00
Operator.cpp Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
OptBisect.cpp [NFC] OptPassGate extracted from OptBisect 2018-03-27 16:57:20 +00:00
Pass.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
PassInstrumentation.cpp [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
PassManager.cpp
PassRegistry.cpp [Pass] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-06 23:05:38 +00:00
PassTimingInfo.cpp [New PM][PassTiming] implement -time-passes for the new pass manager 2018-10-05 22:32:01 +00:00
ProfileSummary.cpp [ProfileSummary] Move a vector we're about to destroy anyway; NFC 2018-04-12 20:54:05 +00:00
SafepointIRVerifier.cpp [TI removal] Make variables declared as `TerminatorInst` and initialized 2018-10-15 10:04:59 +00:00
Statepoint.cpp
SymbolTableListTraitsImpl.h Remove trailing space 2018-07-30 19:41:25 +00:00
Type.cpp IR: Optimize StructType::get to perform one hash lookup instead of two, NFCI 2018-10-25 13:38:07 +00:00
TypeFinder.cpp Use ranged for loops in TypeFinder.cpp, NFC 2018-02-08 18:02:27 +00:00
Use.cpp
User.cpp Remove redundant includes from lib/IR. 2017-12-13 21:30:52 +00:00
Value.cpp [NFC] Remove magic bool param in RAUW 2018-08-09 18:28:54 +00:00
ValueSymbolTable.cpp Remove trailing space 2018-07-30 19:41:25 +00:00
Verifier.cpp [Intrinsic] Unigned Saturation Addition Intrinsic 2018-10-22 23:08:40 +00:00