mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
922033d119
instructions. It attempts to create high-level multi-operand GEPs, though in cases where this isn't possible it falls back to casting the pointer to i8* and emitting a GEP with that. Using GEP instructions instead of ptrtoint+arithmetic+inttoptr helps pointer analyses that don't use ScalarEvolution, such as BasicAliasAnalysis. Also, make the AddrModeMatcher more aggressive in handling GEPs. Previously it assumed that operand 0 of a GEP would require a register in almost all cases. It now does extra checking and can do more matching if operand 0 of the GEP is foldable. This fixes a problem that was exposed by SCEVExpander using GEPs. llvm-svn: 72093 |
||
---|---|---|
.. | ||
AddrModeMatcher.cpp | ||
BasicBlockUtils.cpp | ||
BasicInliner.cpp | ||
BreakCriticalEdges.cpp | ||
CloneFunction.cpp | ||
CloneLoop.cpp | ||
CloneModule.cpp | ||
CloneTrace.cpp | ||
CMakeLists.txt | ||
CodeExtractor.cpp | ||
DemoteRegToStack.cpp | ||
InlineCost.cpp | ||
InlineFunction.cpp | ||
InstructionNamer.cpp | ||
LCSSA.cpp | ||
Local.cpp | ||
LoopSimplify.cpp | ||
LowerAllocations.cpp | ||
LowerInvoke.cpp | ||
LowerSwitch.cpp | ||
Makefile | ||
Mem2Reg.cpp | ||
PromoteMemoryToRegister.cpp | ||
SimplifyCFG.cpp | ||
UnifyFunctionExitNodes.cpp | ||
UnrollLoop.cpp | ||
ValueMapper.cpp |