llvm-6502/lib/IR
Chandler Carruth c57f5dd8bd Hoist the definition of getTypeSizeInBits to be inlinable and in the
header.

This method is called in the hot path for *many* passes, SROA is what
caught my interest. A common pattern is that which branch of the switch
should be taken is known in the callsite and so it is a very good
candidate for inlining and simplification. Moving it into the header
allows the optimizer to fold a lot of boring, repeatitive code in
callers of this routine.

I'm seeing pretty significant speedups in parts of SROA and I suspect
other passes will see similar speedups if they end up working with type
sizes frequently. I've not seen any significant growth of the binaries
as a consequence, but let me know if you see anything suspicious here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177632 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21 09:52:22 +00:00
..
AsmWriter.cpp Remove support for versioned debug info. 2013-03-11 23:39:23 +00:00
AttributeImpl.h Don't add the 'Value' string if there isn't one. 2013-02-28 21:17:03 +00:00
Attributes.cpp Add some additonal attribute helper functions. Test will be on follow 2013-03-13 20:20:08 +00:00
AutoUpgrade.cpp
BasicBlock.cpp
CMakeLists.txt
ConstantFold.cpp IR: Don't constant fold GEP bitcasts between different address spaces 2013-02-27 02:26:42 +00:00
ConstantFold.h
Constants.cpp The testing to ensure a vector of zeros of type floating point isn't misclassified as negative zero can be simplified, as pointed out by Duncan Sands. 2013-03-19 10:16:40 +00:00
ConstantsContext.h
Core.cpp Add multithreading functions and shutdown to the C API. Patch by Moritz 2013-02-17 16:35:51 +00:00
DataLayout.cpp Hoist the definition of getTypeSizeInBits to be inlinable and in the 2013-03-21 09:52:22 +00:00
DebugInfo.cpp Debug info: refactor the first field of DICompileUnit to be a raw file/directory pair 2013-03-20 23:58:12 +00:00
DebugLoc.cpp
DIBuilder.cpp Debug info: refactor the first field of DICompileUnit to be a raw file/directory pair 2013-03-20 23:58:12 +00:00
Dominators.cpp
Function.cpp minor code style cleanup. 2013-03-20 21:04:53 +00:00
GCOV.cpp
Globals.cpp
GVMaterializer.cpp
InlineAsm.cpp Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration. 2013-02-12 21:21:59 +00:00
Instruction.cpp Fix a bug in mayHaveSideEffects. Functions that do not return are now considered as instructions with side effects. 2013-02-19 20:02:09 +00:00
Instructions.cpp Use pre-inc, pre-dec when possible. 2013-03-20 23:56:19 +00:00
IntrinsicInst.cpp
IRBuilder.cpp
LeakDetector.cpp
LeaksContext.h
LLVMBuild.txt
LLVMContext.cpp Memory Dependence Analysis (not mem-dep test) take advantage of "invariant.load" metadata. 2013-03-06 17:48:48 +00:00
LLVMContextImpl.cpp
LLVMContextImpl.h Cache the result of Function::getIntrinsicID() in a DenseMap attached to the LLVMContext. 2013-03-01 18:48:54 +00:00
Makefile
Metadata.cpp Assert to bounds check MDNode::getOperand. 2013-03-08 21:08:23 +00:00
Module.cpp Removed extraneous #include "LLVMContextImpl.h" from lib/IR/Module.cpp 2013-03-01 21:37:24 +00:00
Pass.cpp
PassManager.cpp Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%. 2013-02-26 01:31:59 +00:00
PassRegistry.cpp
PrintModulePass.cpp
SymbolTableListTraitsImpl.h
Type.cpp
TypeFinder.cpp
Use.cpp
User.cpp
Value.cpp Cache the result of Function::getIntrinsicID() in a DenseMap attached to the LLVMContext. 2013-03-01 18:48:54 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00