mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
6a1c238029
* Change signatures of OptimizeCall and ValidateCalledFunction so they are non-const, allowing the optimization object to be modified. This is in support of caching things used across multiple calls. * Provide two functions for constructing and caching function types * Modify the StrCatOptimization to cache Function objects for strlen and llvm.memcpy so it doesn't regenerate them on each call site. Make sure these are invalidated each time we start the pass. * Handle both a GEP Instruction and a GEP ConstantExpr * Add additional checks to make sure we really are dealing with an arary of sbyte and that all the element initializers are ConstantInt or ConstantExpr that reduce to ConstantInt. * Make sure the GlobalVariable is constant! * Don't use ConstantArray::getString as it can fail and it doesn't give us the right thing. We must check for null bytes in the middle of the array. * Use llvm.memcpy instead of memcpy so we can factor alignment into it. * Don't use void* types in signatures, replace with sbyte* instead. llvm-svn: 21555 |
||
---|---|---|
.. | ||
ArgumentPromotion.cpp | ||
ConstantMerge.cpp | ||
DeadArgumentElimination.cpp | ||
DeadTypeElimination.cpp | ||
ExtractFunction.cpp | ||
FunctionResolution.cpp | ||
GlobalDCE.cpp | ||
GlobalOpt.cpp | ||
Inliner.cpp | ||
Inliner.h | ||
InlineSimple.cpp | ||
Internalize.cpp | ||
IPConstantPropagation.cpp | ||
LoopExtractor.cpp | ||
LowerSetJmp.cpp | ||
Makefile | ||
PruneEH.cpp | ||
RaiseAllocations.cpp | ||
SimplifyLibCalls.cpp | ||
StripSymbols.cpp |