mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
LoopVectorize: Make iteration over induction variables not depend on pointer values.
MapVector is a bit heavyweight, but I don't see a simpler way. Also the InductionList is unlikely to be large. This should help 3-stage selfhost compares (PR14647). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170528 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fc8657be34
commit
8b7c89f2d4
@ -47,12 +47,12 @@
|
|||||||
#define LV_NAME "loop-vectorize"
|
#define LV_NAME "loop-vectorize"
|
||||||
#define DEBUG_TYPE LV_NAME
|
#define DEBUG_TYPE LV_NAME
|
||||||
|
|
||||||
#include "llvm/Analysis/ScalarEvolution.h"
|
|
||||||
#include "llvm/ADT/SmallVector.h"
|
|
||||||
#include "llvm/ADT/DenseMap.h"
|
#include "llvm/ADT/DenseMap.h"
|
||||||
|
#include "llvm/ADT/MapVector.h"
|
||||||
#include "llvm/ADT/SmallPtrSet.h"
|
#include "llvm/ADT/SmallPtrSet.h"
|
||||||
|
#include "llvm/ADT/SmallVector.h"
|
||||||
|
#include "llvm/Analysis/ScalarEvolution.h"
|
||||||
#include "llvm/IRBuilder.h"
|
#include "llvm/IRBuilder.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
@ -304,7 +304,7 @@ public:
|
|||||||
|
|
||||||
/// InductionList saves induction variables and maps them to the
|
/// InductionList saves induction variables and maps them to the
|
||||||
/// induction descriptor.
|
/// induction descriptor.
|
||||||
typedef DenseMap<PHINode*, InductionInfo> InductionList;
|
typedef MapVector<PHINode*, InductionInfo> InductionList;
|
||||||
|
|
||||||
/// Returns true if it is legal to vectorize this loop.
|
/// Returns true if it is legal to vectorize this loop.
|
||||||
/// This does not mean that it is profitable to vectorize this
|
/// This does not mean that it is profitable to vectorize this
|
||||||
|
Loading…
Reference in New Issue
Block a user