mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-28 22:43:29 +00:00
66f10b55ed
target directories themselves. This also means that VMCore no longer needs to know about every target's list of intrinsics. Future work will include converting the PowerPC target to this interface as an example implementation. llvm-svn: 63765
57 lines
1.9 KiB
C++
57 lines
1.9 KiB
C++
//===- IntrinsicEmitter.h - Generate intrinsic information ------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This tablegen backend emits information about intrinsic functions.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef INTRINSIC_EMITTER_H
|
|
#define INTRINSIC_EMITTER_H
|
|
|
|
#include "CodeGenIntrinsics.h"
|
|
#include "TableGenBackend.h"
|
|
|
|
namespace llvm {
|
|
class IntrinsicEmitter : public TableGenBackend {
|
|
RecordKeeper &Records;
|
|
bool TargetOnly;
|
|
std::string TargetPrefix;
|
|
|
|
public:
|
|
IntrinsicEmitter(RecordKeeper &R, bool T = false)
|
|
: Records(R), TargetOnly(T) {}
|
|
|
|
void run(std::ostream &OS);
|
|
|
|
void EmitEnumInfo(const std::vector<CodeGenIntrinsic> &Ints,
|
|
std::ostream &OS);
|
|
|
|
void EmitFnNameRecognizer(const std::vector<CodeGenIntrinsic> &Ints,
|
|
std::ostream &OS);
|
|
void EmitIntrinsicToNameTable(const std::vector<CodeGenIntrinsic> &Ints,
|
|
std::ostream &OS);
|
|
void EmitVerifier(const std::vector<CodeGenIntrinsic> &Ints,
|
|
std::ostream &OS);
|
|
void EmitGenerator(const std::vector<CodeGenIntrinsic> &Ints,
|
|
std::ostream &OS);
|
|
void EmitAttributes(const std::vector<CodeGenIntrinsic> &Ints,
|
|
std::ostream &OS);
|
|
void EmitGCCBuiltinList(const std::vector<CodeGenIntrinsic> &Ints,
|
|
std::ostream &OS);
|
|
void EmitIntrinsicToGCCBuiltinMap(const std::vector<CodeGenIntrinsic> &Ints,
|
|
std::ostream &OS);
|
|
};
|
|
|
|
} // End llvm namespace
|
|
|
|
#endif
|
|
|
|
|
|
|