mirror of
https://github.com/RPCSX/llvm.git
synced 2025-03-03 02:17:41 +00:00
The new isel passes all tests, time to start making it go fast.
Also add an easy macro at the top of DAGISelEmitter.cpp to enable it. Lets see if I can avoid accidentally turning it on :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97029 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
95b6b9ae75
commit
91c6a822ba
@ -11,6 +11,7 @@ add_executable(tblgen
|
||||
DAGISelEmitter.cpp
|
||||
DAGISelMatcherEmitter.cpp
|
||||
DAGISelMatcherGen.cpp
|
||||
DAGISelMatcherOpt.cpp
|
||||
DAGISelMatcher.cpp
|
||||
DisassemblerEmitter.cpp
|
||||
EDEmitter.cpp
|
||||
|
@ -24,6 +24,9 @@
|
||||
#include <iostream>
|
||||
using namespace llvm;
|
||||
|
||||
//#define ENABLE_NEW_ISEL
|
||||
|
||||
|
||||
static cl::opt<bool>
|
||||
GenDebug("gen-debug", cl::desc("Generate debug code"), cl::init(false));
|
||||
|
||||
@ -1791,6 +1794,9 @@ void DAGISelEmitter::EmitInstructionSelector(raw_ostream &OS) {
|
||||
|
||||
OS << "// The main instruction selector code.\n"
|
||||
<< "SDNode *SelectCode(SDNode *N) {\n"
|
||||
#ifdef ENABLE_NEW_ISEL
|
||||
<< " return SelectCode2(N);\n"
|
||||
#endif
|
||||
<< " MVT::SimpleValueType NVT = N->getValueType(0).getSimpleVT().SimpleTy;\n"
|
||||
<< " switch (N->getOpcode()) {\n"
|
||||
<< " default:\n"
|
||||
@ -1946,7 +1952,7 @@ void DAGISelEmitter::run(raw_ostream &OS) {
|
||||
// definitions. Emit the resultant instruction selector.
|
||||
EmitInstructionSelector(OS);
|
||||
|
||||
#if 0
|
||||
#ifdef ENABLE_NEW_ISEL
|
||||
MatcherNode *Matcher = 0;
|
||||
|
||||
// Add all the patterns to a temporary list so we can sort them.
|
||||
@ -1977,7 +1983,7 @@ void DAGISelEmitter::run(raw_ostream &OS) {
|
||||
Matcher = new PushMatcherNode(N, Matcher);
|
||||
}
|
||||
|
||||
// OptimizeMatcher(Matcher);
|
||||
OptimizeMatcher(Matcher);
|
||||
//Matcher->dump();
|
||||
EmitMatcherTable(Matcher, OS);
|
||||
delete Matcher;
|
||||
|
@ -26,7 +26,7 @@ namespace llvm {
|
||||
|
||||
MatcherNode *ConvertPatternToMatcher(const PatternToMatch &Pattern,
|
||||
const CodeGenDAGPatterns &CGP);
|
||||
|
||||
void OptimizeMatcher(const MatcherNode *Matcher);
|
||||
void EmitMatcherTable(const MatcherNode *Matcher, raw_ostream &OS);
|
||||
|
||||
|
||||
|
19
utils/TableGen/DAGISelMatcherOpt.cpp
Normal file
19
utils/TableGen/DAGISelMatcherOpt.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
//===- DAGISelMatcherOpt.cpp - Optimize a DAG Matcher ---------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file implements the DAG Matcher optimizer.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "DAGISelMatcher.h"
|
||||
using namespace llvm;
|
||||
|
||||
void llvm::OptimizeMatcher(const MatcherNode *Matcher) {
|
||||
// Nothing yet.
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user