mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
Add memoization for getSCEVAtScope results for instructions
which are not analyzed with SCEV techniques, which can require brute-forcing through a large number of instructions. This fixes a massive compile-time issue on 400.perlbench (in particular, the loop in MD5Transform). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71259 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -271,6 +271,11 @@ namespace llvm {
|
||||
/// exit value.
|
||||
std::map<PHINode*, Constant*> ConstantEvolutionLoopExitValue;
|
||||
|
||||
/// ValuesAtScopes - This map contains entries for all the instructions
|
||||
/// that we attempt to compute getSCEVAtScope information for without
|
||||
/// using SCEV techniques, which can be expensive.
|
||||
std::map<Instruction *, std::map<const Loop *, Constant *> > ValuesAtScopes;
|
||||
|
||||
/// createSCEV - We know that there is no SCEV for the specified value.
|
||||
/// Analyze the expression.
|
||||
SCEVHandle createSCEV(Value *V);
|
||||
|
||||
Reference in New Issue
Block a user