mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 15:17:25 +00:00
Added alias analysis.
Fixed many many bugs. This now works on almost all Singlesource , and most of MultiSource. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20780 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
#include "MSchedGraph.h"
|
||||
#include <vector>
|
||||
#include <set>
|
||||
|
||||
namespace llvm {
|
||||
|
||||
@@ -30,7 +31,7 @@ namespace llvm {
|
||||
bool resourcesFree(MSchedGraphNode*, int);
|
||||
|
||||
//Resulting kernel
|
||||
std::vector<std::pair<MSchedGraphNode*, int> > kernel;
|
||||
std::vector<std::pair<MachineInstr*, int> > kernel;
|
||||
|
||||
//Max stage count
|
||||
int maxStage;
|
||||
@@ -44,8 +45,8 @@ namespace llvm {
|
||||
bool insert(MSchedGraphNode *node, int cycle);
|
||||
int getStartCycle(MSchedGraphNode *node);
|
||||
void clear() { schedule.clear(); resourceNumPerCycle.clear(); kernel.clear(); }
|
||||
std::vector<std::pair<MSchedGraphNode*, int> >* getKernel() { return &kernel; }
|
||||
bool constructKernel(int II, std::vector<MSchedGraphNode*> &branches);
|
||||
std::vector<std::pair<MachineInstr*, int> >* getKernel() { return &kernel; }
|
||||
bool constructKernel(int II, std::vector<MSchedGraphNode*> &branches, std::map<const MachineInstr*, unsigned> &indVar);
|
||||
int getMaxStage() { return maxStage; }
|
||||
|
||||
|
||||
@@ -56,8 +57,8 @@ namespace llvm {
|
||||
schedule_iterator end() { return schedule.end(); };
|
||||
void print(std::ostream &os) const;
|
||||
|
||||
typedef std::vector<std::pair<MSchedGraphNode*, int> >::iterator kernel_iterator;
|
||||
typedef std::vector<std::pair<MSchedGraphNode*, int> >::const_iterator kernel_const_iterator;
|
||||
typedef std::vector<std::pair<MachineInstr*, int> >::iterator kernel_iterator;
|
||||
typedef std::vector<std::pair<MachineInstr*, int> >::const_iterator kernel_const_iterator;
|
||||
kernel_iterator kernel_begin() { return kernel.begin(); }
|
||||
kernel_iterator kernel_end() { return kernel.end(); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user