
This patch adds initial vector extension support to RISC-V's exegesis. The strategy here is to enumerate all RVV _pseudo_ opcodes as their MC opcode counterparts are kind of useless under this circumstance. We also enumerate all possible VTYPE operands in each CodeTemplate configuration. Various of MachineFunction Passes are used for post processing the snippets, like inserting VSETVLI instructions. See https://llvm.org/devmtg/2024-10/slides/techtalk/Hsu-RVV-Exegesis.pdf for more technical details.
20 lines
693 B
C++
20 lines
693 B
C++
//===- RISCVExegesisPasses.h - RISC-V specific Exegesis Passes --*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_TOOLS_EXEGESIS_LIB_RISCV_RISCVEXEGESISPASSES_H
|
|
#define LLVM_TOOLS_EXEGESIS_LIB_RISCV_RISCVEXEGESISPASSES_H
|
|
namespace llvm {
|
|
class FunctionPass;
|
|
|
|
namespace exegesis {
|
|
FunctionPass *createRISCVPreprocessingPass();
|
|
FunctionPass *createRISCVPostprocessingPass();
|
|
} // namespace exegesis
|
|
} // namespace llvm
|
|
#endif
|